Weather application example with Android Architecture components and Clean Architecture
Weather application example with Android Architecture components and Clean Architecture
Weather app that shows how to architect an android app in a clean architecture with kotlin
coroutines. It simply shows a list of weather forecast that is fetched from open
api : Open Weather Map
Technical
Libraries
Android Jetpack
-
ViewBinding A feature that allows
you to more easily write code that interacts with views.. -
Navigation Navigation refers to the interactions
that allow users to navigate across, into, and back out from the different pieces of content
within your app. -
LiveData Build data objects
that notify views when the underlying database changes. -
ViewModel Store UI-related
data that isn’t destroyed on app rotations. Easily schedule asynchronous tasks for optimal
execution.
Database
- Room The Room persistence library
provides an abstraction layer over SQLite to allow fluent database access while harnessing the
full power of SQLite
HTTP
-
Retrofit2 Type-safe HTTP client for Android and Java by
Square, Inc. -
OkHttp An HTTP+HTTP/2 client for Android and Java
applications.
Coroutines
- Kotlin Coroutines Coroutines is a rich library for
coroutines developed by JetBrains. It contains a number of high-level coroutine-enabled primitives
that this guide covers, including launch, async and others.
DI
- Koin A pragmatic lightweight dependency injection framework for Kotlin
developers.
Unit Test
-
Mockk MockK is a library for mocking written in Kotlin.As a native library,
it helps our teams to write clean and concise code on testing Kotlin applications instead of using
incommodious wrappers of Mockito or PowerMock -
Junit JUnit is a
simple framework to write repeatable tests. It is an instance of the xUnit architecture for unit
testing frameworks.
Checklist
- Programming language: Kotlin
- Design app ‘s architecture (MVVM – Clean Architecture)
- Apply LiveData mechanism
- UI should be looks like in attachment.
- Write Unit Tests
- Acceptance Tests
- Exception handling
- Caching handling
- Secure Android app from:
- Decompile APK
- Rooted device
- Data transmission via network
- Encryption for sensitive information
- Accessibility for Disability Supports:
- Talkback: Use a screen reader. b. Scaling Text: Display size and font size: To change the size
- items on your screen, adjust the display size or font size.
- Entity relationship diagram for the database and solution diagrams for the components,
infrastructure design if any. - Readme file includes:
- Brief explanation for the software development principles,patterns & practices being applied
- Brief explanation for the code folder structure and the key Java/Kotlin libraries and
frameworks being used - All the required steps in order to get the application run on local computer
- Checklist of items the candidate has done.