Skip to content

Latest commit

ย 

History

364 ๆไบค

Folders and files

NameName
Last commit message
Last commit date
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

ไป“ๅบ“ files navigation

cover

Distance-Tracker ๐Ÿงžโ€

Android Best practices Kotlin Coroutines DaggerHilt Firebase Timber Orhanobut Google Material Crashlytics Fused Location Service OkHttp OkHttp-interceptors Kotlin-Serialization

๐™ฐ๐š›๐šŒ๐š‘๐š’๐š๐šŽ๐šŒ๐š๐šž๐š›๐šŽ ๐ŸŽˆ

๐™ฑ๐š•๐š˜๐šŒ๐š” ๐™ณ๐š’๐šŠ๐š๐š›๐šŠ๐š–

dev_logo

๐™ผ๐š…๐š…๐™ผ-๐™ฐ๐š™๐š™๐š›๐š˜๐šŠ๐šŒ๐š‘

dev_logo

๐šƒ๐š‘๐šŽ ๐šŠ๐š›๐šŒ๐š‘๐š’๐š๐šŽ๐šŒ๐š๐šž๐š›๐šŽ ๐š˜๐š ๐š๐š‘๐šŽ ๐šŠ๐š™๐š™๐š•๐š’๐šŒ๐šŠ๐š๐š’๐š˜๐š— ๐š’๐šœ ๐š‹๐šŠ๐šœ๐šŽ๐š, ๐šŠ๐š™๐š™๐š•๐šข ๐šŠ๐š—๐š ๐šœ๐š๐š›๐š’๐šŒ๐š๐š•๐šข ๐šŒ๐š˜๐š–๐š™๐š•๐š’๐šŽ๐šœ ๐š ๐š’๐š๐š‘ ๐šŽ๐šŠ๐šŒ๐š‘ ๐š˜๐š ๐š๐š‘๐šŽ ๐š๐š˜๐š•๐š•๐š˜๐š ๐š’๐š—๐š ๐Ÿป ๐š™๐š˜๐š’๐š—๐š๐šœ ๐Ÿฟ๏ธ

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 ็ปดๅŸบ 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.
็ฝ‘็ปœ 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

Useful learnings ๐Ÿ’ก

๐™ณ๐šŽ๐š™๐šŽ๐š—๐š๐šŽ๐š—๐šŒ๐š’๐šŽ๐šœ๐Ÿงต

  • 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.
Buy Me A Coffee

๐™ฒ๐š˜๐š—๐š๐š›๐š’๐š‹๐šž๐š๐šŽ ๐Ÿ™‹โ€โ™‚๏ธ

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. โœŒ๏ธ

๐™ป๐š’๐šŒ๐šŽ๐š—๐šœ๐šŽ Licence ๐Ÿš”

This project is licensed under the Apache License 2.0 - see the LICENSE file for details

ๅ…ณไบŽ

๐Ÿ—บ๏ธ Tacking the user distance traveled and time taken using the google maps API

Topics

Resources

Code of conduct

Contributing

Stars

12 stars

ๅ…ณๆณจ่€…

1 watching

ๅคๅˆปs

Used by

่ดก็Œฎ่€…

Languages