A simple Android App which rings an alarm when one is about to reach a destination.
A slight peek at the progress so far.
Note: The Video to GIF convertor made the GIF skip the video frames (look laggy).
- ViewBinding, LiveData, DataStore, Room, ViewModel, FragmentStateAdapter, Foreground and Bound Service, Property Animation Framework and Preference library.
- Views: Motion, Constraint, Linear and Frame Layouts,
Spinner, RecyclerView, SearchView,TabLayoutBottomNavigationView, ViewPager2, SwitchCompatand OnBoardSupportFragment. - Google Maps SDK (FusedLocationProvider API, Geofencing API)
- Timber
- TSnackbar
- Kotlin: Scope functions, Flow, Co-routines
✍️ Reflection
- Learned a gradle way to hide API key from this google codelab.
- Google Map ApiDemos repository by Google; Although some parts were obsolete, it gave me gotchas on the usage of the API alongside with
ViewGroup
s such asRecyclerView
. XML style for makingBottomSheetDialog
have rounded corners is adapted from this SO answer.Prevented the dismissal ofBottomSheetDialogFragment
upon touching outside/pulling it down via this method.- Used a Custom ViewPager2 Transition via this answer.
ExpandingBottomSheetDialogFragment
to a custom height was done with the help of this answer- The code for finding LatLng bounds of the area of interest from this answer is used.
- The method of persisting a single instance of the repository w/o singleton pattern is based on this codelab.
- Flaticon for a few awesome icons.
Note: It will be easier to do the following via a phone.
- Install the APK.
- Allow App Installations from Unknown Sources, if requested.