A native android application built in kotlin with it's UI entirely in Jetpack Compose.
Chronos demonstrates modern Android development with Hilt, Coroutines, Flow, Jetpack (Room, ViewModel, Jetpack Compose), and is based on MVVM architecture. It is a timezone converter app that lets the user save live time of different locations as well as convert time from one location to another. It also displays live time of the user's location.
- Minimum SDK level 23
- Kotlin, 100% Jetpack Compose, Coroutines + Flow for asynchronous programming
- Jetpack
- Jetpack Compose: Android’s modern toolkit for building native UI
- Navigation Compose: Navigate between composables while leveraging of the Navigation component’s infrastructure and features
- ViewModel: Encapsulates related business logic and manage UI data in a lifecycle-aware fashion
- Room: Persistence library provides an abstraction layer over SQLite to allow fluent database access while harnessing the full power of SQLite
- Hilt: Standard way to incorporate Dagger dependency injection into an Android application that reduces boilerplate code
- Architecture
- MVVM Architecture
- Repository pattern
- Retrofit2: Type-safe REST client for Android and Java
- Gson: Java library that can be used to convert Java Objects into their JSON representation and vice versa
- LocalDateTime: Immutable date-time object that represents a date-time
- ZonedDateTime: Immutable representation of a date-time with a time-zone
Chronos follows Google's official architecture guidance. It is based on the MVVM architecture and the Repository pattern.
Chronos uses the Abstract Timezone API for RESTful API services.
It makes use of the current_time
an convert_time
endpoints from the API.
Chronos also makes use of Google's Places API. It uses the place autocomplete service to get place predictions
Apache License
Copyright 2022 Ezichi Amarachi
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
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.