PixaBay
An android app built using Kotlin that consumes Pixabay API to display images.It has been built following Clean Architecture Principle, Repository Pattern, MVVM Architecture in the presentation layer as well as Jetpack components.
Libraries.
-
Koin - Dependency Injection library.
-
- Android KTX - Provide concise, idiomatic Kotlin to Jetpack and Android platform APIs.
- AndroidX - Major improvement to the original Android Support Library, which is no longer maintained.
- Lifecycle - Perform actions in response to a change in the lifecycle status of another component, such as activities and fragments.
- ViewModel - Designed to store and manage UI-related data in a lifecycle conscious way. The ViewModel class allows data to survive configuration changes such as screen rotations.
- View Binding - A feature that allows you to more easily write code that interacts with views.
- Navigation Component-Component that allows easier implementation of navigation from simple button clicks to more complex patterns.
-
Retrofit - Type-safe http client and supports coroutines out of the box.
-
GSON - JSON Parser,used to parse requests on the data layer for Entities and understands Kotlin non-nullable and default parameters.
-
OkHttp-Logging-Interceptor - Logs HTTP request and response data.
-
Coroutines - Library Support for coroutines.
-
Flow - Flows are built on top of coroutines and can provide multiple values. A flow is conceptually a stream of data that can be computed asynchronously.
-
Expresso - Library used to write concise, beautiful, and reliable Android UI tests.
-
Truth - Assertions Library,provides readability as far as assertions are concerned.
-
Mockito - Mocking framework for tests.
-
Roboelectric - Framework used to quickly and reliably run unit tests quick using the JVM.
CI/CD
- GitHub Actions - GitHub actions is used in this project to run the continuous intergration and continuous deployment when a code is pushed to the master branch.
- Fastlane - Fastlane is an open source platform aimed at simplifying Android and iOS deployment. fastlane lets you automate every aspect of your development and release workflow.
- Firebase App Distribution - Makes distributing your apps to trusted testers painless.