Git Product home page Git Product logo

calculator-compose-multiplatform's Introduction

Calculator-Compose-MultiPlatform

这是一款完全使用 Compose MultiPlatform (Compose-jb)实现的跨平台计算器 APP。

支持移动端(Android)和桌面端(Windows、macOS、Linux),后续 Compose 支持 iOS 后也将跟进支持 iOS。

核心代码迁移自:calculatorCompose

因此核心功能与其保持一致。

功能特性

是否支持 功能
基础四则运算(标准、程序员)
无限输入(标准)
% , 1/x , x² , √x 扩展运算(标准)
运算过程历史记录(标准)
二进制、八进制、十进制、十六进制随意切换并实时换算(程序员)
位运算:左移、右移(程序员)
逻辑运算:AND、OR、NOT、XOR(程序员)
无限连续计算(标准、程序员)
支持悬浮窗计算器,可调整位置、大小、透明度(标准)
符合人体握持习惯的横屏键盘
旋转手机自动切换标准和程序员键盘
深色模式
酷炫的数字动效与振动反馈

注意:

  1. 标准模式使用 BigDecimal 计算,所以理论支持无限位数数字计算
  2. 程序员模式因为涉及到二进制计算,所以采用 64 位储存大小,故不支持无限位数计算
  3. 程序员模式不支持带小数运算,如果运算结果有小数,则会直接抛弃小数部分

桌面端与手机端的差异部分

  1. 桌面端不支持振动反馈
  2. 桌面端历史记录储存于运行内存中,因此关闭程序后历史记录将自动清除
  3. 桌面端的悬浮窗功能采用固定窗口为顶部模式实现
  4. 桌面端添加对硬件键盘输入的支持

截图

Android 端:

浅色 深色
1
标准模式
2
标准模式
3
历史记录
4
历史记录
5
程序员模式
6
程序员模式
5
悬浮窗
6
悬浮窗

桌面端:

浅色 深色
1 3
2 4

如何使用

我在 releases 提供了安卓 APK 安装包和 macOS 的 ARM 安装包,可以直接下载使用。

其他平台(macOS x86、Windows、Linux)需要自己 clone 项目后编译。

将项目 clone 到本地后,使用 IDEA 或者 Android Studio 打开项目,等待项目 Sync 完成后。

运行:

./gradlew run

打包:

./gradlew packageReleaseDistributionForCurrentOS

你也可以直接在 IDE 的 Gradle 侧栏中找到以上两个 TASK 直接双击执行:

5

其他

处理逻辑参考了 微软计算器

布局参考了 小米计算器微软计算器

实现细节:

  1. 使用 Jetpack Compose 实现一个计算器APP
  2. Kotlin & Compose Multiplatform 跨平台(Android端、桌面端)开发实践之使用 SQLDelight 将数据储存至数据库

calculator-compose-multiplatform's People

Contributors

equationl avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.