Skip to content

Commit

Permalink
chore: Generate an app bundle for the Play Store
Browse files Browse the repository at this point in the history
  • Loading branch information
yassineAbou committed Sep 5, 2023
1 parent 8eea3d8 commit 3e5245d
Show file tree
Hide file tree
Showing 7 changed files with 266 additions and 288 deletions.
87 changes: 57 additions & 30 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,40 +1,45 @@
<div align="center">
<img src="https://drive.google.com/uc?export=view&id=1E69KrlktI_A5W2QVcp9f3M6hbHO6vaJy" alt="Calculator" style="width: 100px; height: 100px; object-fit: contain; margin-right: 10px;">
<div align="center">
<img src="https://i.imgur.com/hVfvB0H.png" alt="Calculator" style="width: 100px; height: 100px; object-fit: contain; margin-right: 10px;">
<h1 style="display: inline-block; margin: 0; vertical-align: middle;">Calculator</h1>
</div>

<p align="center">
<a href="https://kotlinlang.org/"><img src="https://img.shields.io/badge/Kotlin-v1.8.0-blue.svg" alt="Kotlin"></a>
<a href="https://developer.android.com/about/versions/oreo/android-8.0"><img src="https://img.shields.io/badge/Min%20SDK-24-green.svg" alt="Minimum SDK Version"></a>
<a href="https://gradle.org/releases/">
<img src="https://img.shields.io/badge/Gradle-8-red.svg"
alt="Gradle Version 8"
style="border-radius: 3px; padding: 2px 6px; background-color: #FF0000; color: #fff;">
<a href="https://kotlinlang.org/">
<img src="https://img.shields.io/badge/Kotlin-1.8.21-blue?logo=kotlin" alt="Kotlin version 1.8.21">
</a>
<a href="https://gradle.org/releases/">
<img src="https://img.shields.io/badge/Gradle-8.0.2-white?logo=gradle" alt="Gradle version 8.0.2">
</a>
<a href="https://developer.android.com/studio">
<img src="https://img.shields.io/badge/Android%20Studio-Flamingo-orange?logo=android-studio" alt="Android Studio Flamingo">
</a>
<a href="https://developer.android.com/studio/releases/platforms#7.0">
<img src="https://img.shields.io/badge/Android%20min%20version-7-brightgreen?logo=android" alt="Android min version 7">
</a>
</p>

This app simplifies all the mathematical needs from basic to complex functions.
It allows the user to save and reference his previous calculations at any time.
Plus, it can easily handle EMI calculations, compare results, and share them with other apps


<p align="center">
<a href="https://github.com/yassineAbou"><img alt="Get it on Google Play" src="https://play.google.com/intl/en_us/badges/images/generic/en_badge_web_generic.png" height="80px"/></a>
<a href="https://github.com/yassineAbou"><img alt="Get it on F-Droid" src="https://f-droid.org/badge/get-it-on.png" height="80px"/></a>
<a href="https://play.google.com/store/apps/details?id=com.yassineabou.calculator"><img alt="Get it on Google Play" src="https://play.google.com/intl/en_us/badges/images/generic/en_badge_web_generic.png" height="80px"/></a>
</p>

## Screenshots

<div style="display:flex; flex-wrap:wrap;">
<img src="https://drive.google.com/uc?export=view&id=1vl5EFw15Y93e3yQSfnDcKhwuuKTqY8UA" alt="Normal mode" style="flex:1; margin:5px;" height="450">
<img src="https://drive.google.com/uc?export=view&id=1q0RvSDkcVkF7nTH7-RRnVoXHFnmdcLsr" alt="Scientific mode" style="flex:1;" height="225">
<img src="https://drive.google.com/uc?export=view&id=1PCpXI92FGr9_BB1nTrFiHU7sMC6q2lbP" alt="History" style="flex:1;" height="450">
<img src="https://drive.google.com/uc?export=view&id=1kGDjg9XyKcKJFjz8YrlMkUyT-GekNmsk" alt="Emi calculator" style="flex:1; margin:5px;" height="450">
<img src="https://drive.google.com/uc?export=view&id=1AvrE-1smc4rDj1ztM7IAT8yXCKqJtNe3" alt="Emi calculation" style="flex:1; margin:5px;" height="450">
<img src="https://drive.google.com/uc?export=view&id=11qs_glysq1UPWNA0VrBfAr8SNB8nWFqS" alt="Compare" style="flex:1; margin:5px;" height="450">
<img src="https://drive.google.com/uc?export=view&id=1PMHNiVY9PZBTFEpjGBWx0SnziJk2DCCe" alt="Night theme 1" style="flex:1; margin:5px;" height="450">
<img src="https://drive.google.com/uc?export=view&id=1TNbIG0QLEgU0j26N-r7L9yd0yxqNRAiu" alt="Night theme 2" style="flex:1; margin:5px;" height="450">
<img src="https://i.imgur.com/7WHkTHI.jpg" style="flex:1; margin:5px;" height="450">
<img src="https://i.imgur.com/uSw9JmW.jpg" style="flex:1; margin:5px;" height="225">
<img src="https://i.imgur.com/ZTUjq7h.jpg" style="flex:1; margin:5px;" height="450">
<img src="https://i.imgur.com/wHxuU7S.jpg" style="flex:1; margin:5px;" height="450">
<img src="https://i.imgur.com/jSxeAb0.jpg" style="flex:1; margin:5px;" height="450">
<img src="https://i.imgur.com/eYofXob.jpg" style="flex:1; margin:5px;" height="450">
<img src="https://i.imgur.com/fQHjr71.jpg" style="flex:1; margin:5px;" height="450">
<img src="https://i.imgur.com/AXxQt2e.jpg" style="flex:1; margin:5px;" height="450">
</div>


## Architecture
The architecture of this application relies and complies with the following points below:
* A single-activity architecture, using the [Navigation Components](https://developer.android.com/guide/navigation) to manage fragment operations.
Expand All @@ -43,17 +48,39 @@ The architecture of this application relies and complies with the following poin

<p align="center"><a><img src="https://raw.githubusercontent.com/mayokunthefirst/Instant-Weather/master/media/final-architecture.png" width="700"></a></p>

## Libraries
## Package Structure
```
com.yassineabou.calculator # Root Package
├── data # For handling all data operations
│ ├── local # For handling data on a local level
│ ├── model # Contains data classes/structures
│ └── repository # For accessing and managing data
|
├── di # Dependency Injection: Contains the dependency injection setup
├── ui # UI Layer: Activities, Fragments, ViewModels
│ ├── calculator # Contains logic and UI for the calculator
│ ├── emi # Contains logic and UI for the EMI calculator
│ └── MainActivity # The main activity which hosts the other UI elements
|
├── utils # Contains utility classes and Kotlin extensions
└── CalculatorApplication # The application class
```

## Built With 🧰

- [Navigation](https://developer.android.com/topic/libraries/architecture/navigation) (Fragment transitions)
- [Data Binding](https://developer.android.com/topic/libraries/data-binding) (Bind views)
- [ViewModel](https://developer.android.com/topic/libraries/architecture/viewmodel) (Store and manage UI-related data)
- [Kotlin Coroutine](https://github.com/Kotlin/kotlinx.coroutines) (Light-weight threads)
- [Hilt](https://dagger.dev/hilt/) (Dependency Injection for Android)
- [Room](https://developer.android.com/topic/libraries/architecture/room) (Abstraction layer over SQLite)
- [Sdp](https://github.com/intuit/sdp) (Scalable size unit)
- [Ssp](https://github.com/intuit/ssp) (Scalable size unit for texts)
- [MxParser](https://github.com/mariuszgromada/MathParser.org-mXparser) (Math expression parser)
- [Baseline Profiles](https://developer.android.com/topic/performance/baselineprofiles/overview) (Performance optimization tool)
- [Navigation](https://developer.android.com/topic/libraries/architecture/navigation) (Fragment transitions)
- [Data Binding](https://developer.android.com/topic/libraries/data-binding) (Bind views)
- [ViewModel](https://developer.android.com/topic/libraries/architecture/viewmodel) (Store and manage UI-related data)
- [Kotlin Coroutine](https://github.com/Kotlin/kotlinx.coroutines) (Light-weight threads)
- [Hilt](https://dagger.dev/hilt/) (Dependency Injection for Android)
- [Room](https://developer.android.com/topic/libraries/architecture/room) (Abstraction layer over SQLite)
- [Sdp](https://github.com/intuit/sdp) (Scalable size unit)
- [Ssp](https://github.com/intuit/ssp) (Scalable size unit for texts)
- [MxParser](https://github.com/mariuszgromada/MathParser.org-mXparser) (Math expression parser)

## Contribution
We welcome contributions to our project! Please follow these guidelines when submitting changes:
Expand All @@ -79,4 +106,4 @@ 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.
limitations under the License.
7 changes: 5 additions & 2 deletions app/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -73,8 +73,8 @@ dependencies {
implementation("androidx.room:room-ktx:$roomVersion")
kapt("androidx.room:room-compiler:$roomVersion")
// hilt
implementation("com.google.dagger:hilt-android:2.46.1")
kapt("com.google.dagger:hilt-compiler:2.46.1")
implementation("com.google.dagger:hilt-android:2.47")
kapt("com.google.dagger:hilt-compiler:2.47")
}
android {
buildTypes {
Expand All @@ -84,4 +84,7 @@ android {
isDebuggable = false
}
}
defaultConfig {
signingConfig = signingConfigs.getByName("debug")
}
}
Binary file added app/release/app-release.aab
Binary file not shown.
Loading

0 comments on commit 3e5245d

Please sign in to comment.