{"id":13609507,"url":"https://github.com/erfansn/SiliconeCalculator","last_synced_at":"2025-04-12T20:32:08.045Z","repository":{"id":40516642,"uuid":"492686872","full_name":"erfansn/SiliconeCalculator","owner":"erfansn","description":"🎨 Simple but attractive graphic a calculator built with Jetpack Compose","archived":false,"fork":false,"pushed_at":"2024-05-23T09:20:49.000Z","size":10786,"stargazers_count":139,"open_issues_count":8,"forks_count":9,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-05-23T09:54:38.374Z","etag":null,"topics":["android","architecture","benchmark","calculator","jetpack-compose","kotlin","mad","neumorphism","testing"],"latest_commit_sha":null,"homepage":"","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/erfansn.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-05-16T04:48:30.000Z","updated_at":"2024-06-08T17:40:38.282Z","dependencies_parsed_at":"2024-05-28T15:39:56.212Z","dependency_job_id":null,"html_url":"https://github.com/erfansn/SiliconeCalculator","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/erfansn%2FSiliconeCalculator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/erfansn%2FSiliconeCalculator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/erfansn%2FSiliconeCalculator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/erfansn%2FSiliconeCalculator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/erfansn","download_url":"https://codeload.github.com/erfansn/SiliconeCalculator/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248629789,"owners_count":21136315,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","architecture","benchmark","calculator","jetpack-compose","kotlin","mad","neumorphism","testing"],"created_at":"2024-08-01T19:01:35.472Z","updated_at":"2025-04-12T20:32:03.027Z","avatar_url":"https://github.com/erfansn.png","language":"Kotlin","funding_links":[],"categories":["Kotlin"],"sub_categories":[],"readme":"![App banner](media/banner.png)\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://opensource.org/licenses/Apache-2.0\"\u003e\u003cimg alt=\"License\" src=\"https://img.shields.io/badge/License-Apache%202.0-blue.svg\"/\u003e\u003c/a\u003e\n  \u003ca href=\"https://android-arsenal.com/api?level=21\"\u003e\u003cimg alt=\"API\" src=\"https://img.shields.io/badge/API-21%2B-brightgreen.svg?style=flat\"/\u003e\u003c/a\u003e\n  \u003ca href=\"https://android-arsenal.com/api?level=21\"\u003e\u003cimg alt=\"API\" src=\"https://img.shields.io/github/v/release/ErfanSn/SiliconeCalculator?display_name=release\u0026include_prereleases\u0026sort=date\"/\u003e\u003c/a\u003e\n\u003c/p\u003e\n\nIt's a cloned version of the [Apple calculator](https://apps.apple.com/us/app/calculator/id1069511488) with [Jetpack Compose](https://developer.android.com/jetpack/compose), but with more attractive graphics, history for calculations, and dark and light theme support.\n\nDesign by [SINTHAI](https://www.behance.net/gallery/130717085/The-calculator-) with a slight change.\n\n## 📷 Preview\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"media/preview0.gif\" alt=\"drawing\" width=\"270\" /\u003e\n  \u003cimg src=\"media/preview1.png\" alt=\"drawing\" width=\"270\" /\u003e\n  \u003cimg src=\"media/preview2.png\" alt=\"drawing\" width=\"270\" /\u003e\n\u003c/p\u003e\n\n## 🏛️ Architecture\nThe architecture used in this project is [Android recommended architecture](https://developer.android.com/courses/pathways/android-architecture),\nwhich I personally believe is a combination of some layers and principles of three architectures MVVM, MVI and Clean, which makes it great.\n\n## 🧪 Testing\nFor this project, **unit**, **integration**, **end-to-end** tests have been written based on the pyramid test in the Android test [codelab](https://developer.android.com/codelabs/advanced-android-kotlin-training-testing-test-doubles#2), and in addition,\na **benchmark** test has been written for the app startup states to measure the effectiveness of using the Baseline Profile.\n\n## 🛠️ Tech Stack\n- **UI layer**\n    - Jetpack Compose\n    - ViewModel component\n    - Constraint Layout\n    - Compose Navigation\n    - Material 2\n- **Data layer**\n    - Room database\n    - Dagger Hilt\n    - Kotlinx Coroutine\n    - Mxparser\n    - Kotlinx datatime\n- **Testing**\n    - Truth\n    - Turbine\n    - Mockk\n    - Robolectric\n    - Androidx Benchmark\n- **Other**\n    - Profiler\n    - Desugar jdk libs\n\n## 💯 MAD Score\n![summary](media/summary.png)\n\n## License\n```\nCopyright 2022 Erfan Sn\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ferfansn%2FSiliconeCalculator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ferfansn%2FSiliconeCalculator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ferfansn%2FSiliconeCalculator/lists"}