Coder Social home page Coder Social logo

erfansn / siliconecalculator Goto Github PK

View Code? Open in Web Editor NEW
159.0 2.0 9.0 23.32 MB

๐ŸŽจ Simple but attractive graphic a calculator built with Jetpack Compose

License: Apache License 2.0

Kotlin 100.00%
calculator jetpack-compose kotlin mad neumorphism architecture benchmark testing android

siliconecalculator's Introduction

App banner

License API API

It's a cloned version of the Apple calculator with Jetpack Compose, but with more attractive graphics, history for calculations, and dark and light theme support.

Design by SINTHAI with a slight change.

๐Ÿ“ท Preview

drawing drawing drawing

๐Ÿ›๏ธ Architecture

The architecture used in this project is Android recommended architecture, which I personally believe is a combination of some layers and principles of three architectures MVVM, MVI and Clean, which makes it great.

๐Ÿงช Testing

For this project, unit, integration, end-to-end tests have been written based on the pyramid test in the Android test codelab, and in addition, a benchmark test has been written for the app startup states to measure the effectiveness of using the Baseline Profile.

๐Ÿ› ๏ธ Tech Stack

  • UI layer
    • Jetpack Compose
    • ViewModel component
    • Constraint Layout
    • Compose Navigation
    • Material 2
  • Data layer
    • Room database
    • Dagger Hilt
    • Kotlinx Coroutine
    • Mxparser
    • Kotlinx datatime
  • Testing
    • Truth
    • Turbine
    • Mockk
    • Robolectric
    • Androidx Benchmark
  • Other
    • Profiler
    • Desugar jdk libs

๐Ÿ’ฏ MAD Score

summary

License

Copyright 2022 Erfan Sn
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

siliconecalculator's People

Contributors

dependabot[bot] avatar erfansn avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

siliconecalculator's Issues

Quick Setting Tile

Could you add a quick setting tile that allows the calculator to be used from the lockscreen?

being able to edit the signs and digits would be awesome

sometimes when adding a lot of things i don't realise while making mistake but only while cross checking i find it
so being able to edit the digits in the middle that i entered in the very begining and also signs would be awesome

Migrate to Baseline Profiler generator plugin

  • Add Baseline Profile Gradle plugin
  • Bump Benchmark macro junit4 version to 1.2.4
  • Remove benchmark build-type
  • Config baseline profile
  • Modify Baseline Profile generator
  • Add Startup Profile generator
  • Save Baseline Profile Generator run configuration

Vibration feedback for button clicks

Vibration feedback on clicking buttons would be helpful
saves from continuously looking if click was registered or not and gives great peace of mind

Use lifecycle-aware stuffs

  • Use lifecycle-aware collection for StateFlow
  • Use lifecycle-aware callback for on click events triggers navigation

Enable Predicative Back Support

  • Bump Navigation Compose version to 2.8.0-beta01 2.7.7
  • Enable on back invoked callback flag in Manifest
  • Migrate BackHandler to PredictiveBackHandler inside of HistoryScreen
  • Set custom pop transition for Navigation Compose

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.