πππ ππππππππππππ ππ πππ πππππππππππ ππ πππππ, πππππ’ πππ ππππππππ’ ππππππππ π πππ ππππ ππ πππ ππππππ πππ π» ππππππ
πΏοΈ
SlNo |
Description |
---|---|
1 |
A single-activity architecture, using the Navigation component to manage fragment operations. |
2 |
Android architecture components, part of Android Jetpack for give to project a robust design, testable and maintainable. |
3 |
Pattern Model-View-ViewModel (MVVM) facilitating a separation of development of the graphical user interface. |
4 |
S.O.L.I.D design principles intended to make software designs more understandable, flexible and maintainable. |
5 |
Modular app architecture allows to be developed features in isolation, independently from other features. |
πΌππππππππ£πππππ ππππππππππ ππππ
π¦¨
Name |
Description |
---|---|
Reusability |
Keeping code reusable so same code snippets are utilized in different parts of the code |
Parallel Building |
Modular approach reduces the build time |
Strict visibility control |
Modules restrict to expose dedicated components and access to other layers, so it prevents they're being used outside the module |
Decentralized focusing |
Each developer team can assign their dedicated module and they can focus on their own modules |
This application is used to track the user distance traveled and the time taken to travel the distance.
Features with Description |
Wiki |
Demo |
---|---|---|
Location-Tracking : With this feature users can start the tracking from a source and travel to destination. Then measure the distance travelled and time taken for the journey with a visual display on the map using hte polyline . Users will be able to track the distance even when the app is not in the foreground or background using a foreground service . |
Documentation | |
Splash API : With this API there is no need of creating a separate activity to customise the splash screen. The system will automatically create one for you. It also allows you to have a new launch animation for your apps and ability to perform a long running operation. |
||
In-App updates : Using this API, users will be able to update the application in an eligant way thus keeping the app always up-to-date. |
Documentation | |
App-reviews : This API lets you prompt users to submit Play Store ratings and reviews without the inconvenience of leaving your app. |
||
Network Observer : This is used to observe the network change if connected/disconnected to user |
Documentation | |
Toggling dark/light mode from app : This application supports system dark/light mode along with it user can force the toggling of modes in android |
Documentation | |
Changing the map style : We can dynamically change the map style of android to provide a different user experience |
Publisher subscriber pattern using flow API
Kotlin serilization for serilization of API and model objects
Okhttp interceptors to modify the netwrok requests
Scoped storage in android
Setting UI using view-groups
Storing data offline in application
Elegant way to handle recycler view on-click
- Jetpack-Androidx: Major improvement to the original Android Support Library, which is no longer maintained.
- View-Binding: Allows you to more easily write code that interacts with views. An instance of a binding class contains direct references to all views that have an ID in the corresponding layout.
- Lifecycle: Perform actions in response to a change in the lifecycle status of another component, such as activities and fragments.
- LiveData: lifecycle-aware, meaning it respects the lifecycle of other app components, such as activities, fragments, or services.
- Navigation: helps you implement navigation, from simple button clicks to more complex patterns, such as app bars and the navigation drawer.
- Timber: a logger with a small, extensible API which provides utility on top of Android's normal Log class.
- DataStore: iData storage solution that allows you to store key-value pairs.
- Fused location provider: Get location data for your app based on combined signals from the device sensors using a battery-efficient API.
- Google play core: Download additional language resources, Manage delivery of feature modules, Manage delivery of asset packs, Trigger in-app updates, Request in-app reviews
- Coroutines: A coroutine is a concurrency design pattern that you can use on Android to simplify code that executes asynchronously
To maintain the style and quality of the code, are used the bellow static analysis tools.
Tools | Config file | Check command | Fix command |
---|---|---|---|
detekt | /.detekt | ./gradlew detekt |
- |
ktlint | - | ./gradlew ktlint |
./gradlew ktlintFormat |
spotless | /.spotless | ./gradlew spotlessCheck |
./gradlew spotlessApply |
lint | /.lint | ./gradlew lint |
- |
What | How |
---|---|
π ππππ πΈππππππππ (π°ππππππ) | πΉππππππ π²ππππππ , π°πππππππ’+ππΌπ» |
π π°πππππππππππ | π²ππππ π°πππππππππππ |
π π³πΈ (π°ππππππ) | π·πππ |
π π°ππ’ππ | π²πππππππππ + Flow |
π π³πππππππ | ππππ |
If you feel like support me a coffee for my efforts, I would greatly appreciate it.
Read contribution guidelines for more information regarding contribution.
Feature requests are always welcome, File an issue here.
Support it by clicking the β button on the upper right of this page. βοΈ
This project is licensed under the Apache License 2.0 - see the LICENSE file for details