All Projects → aliumujib → Artic

aliumujib / Artic

Licence: other
A take on dynamic feature modularization, kotlin coroutines, MVI and unidirectional data flow. WIP

Programming Languages

kotlin
9241 projects

Projects that are alternatives of or similar to Artic

MVI-Architecture-Android-Beginners
This repository contains a beginner sample app that implements MVI architecture
Stars: ✭ 199 (+323.4%)
Mutual labels:  mvi, architecture-components
JsonPlaceholderApp
This was originally a code challenge for a company, but now is an example of MVI on Android.
Stars: ✭ 26 (-44.68%)
Mutual labels:  mvi
AndroidCleanArchitecture
Android Project with clean android architecture contain Dagger, Retrofit, Retrofit, Android archtecture components, LiveData with MVVM architecture
Stars: ✭ 22 (-53.19%)
Mutual labels:  architecture-components
DaggerExoPlayer
This repository demonstrates ExoPlayer injection with Dagger2
Stars: ✭ 58 (+23.4%)
Mutual labels:  architecture-components
Tracktor-ComposeUI
Track the progress of anything in one place
Stars: ✭ 25 (-46.81%)
Mutual labels:  mvi
Pokehub
This is a sample project that uses Graphql API's with Rx implementation.
Stars: ✭ 40 (-14.89%)
Mutual labels:  architecture-components
arkitekt
Arkitekt is a set of architectural tools based on Android Architecture Components, which gives you a solid base to implement the concise, testable and solid application.
Stars: ✭ 114 (+142.55%)
Mutual labels:  architecture-components
android-kotlin-mvvm-architecture
Sample login project using Kotlin and DataBinding pattern with Live Data
Stars: ✭ 45 (-4.26%)
Mutual labels:  architecture-components
Retrogamer-Compose
Retro games implemented using Jetpack Compose
Stars: ✭ 113 (+140.43%)
Mutual labels:  mvi
LiveData-DataBinding-Kotlin
Sample to practice LiveData + DataBinding
Stars: ✭ 89 (+89.36%)
Mutual labels:  architecture-components
android-room-example
Android Kotlin app showcasing the Room persistence library
Stars: ✭ 45 (-4.26%)
Mutual labels:  architecture-components
Superhero-App
🦸🏻‍♂️🦹🏻‍♀️Superhero app built with Kotlin, ViewModel, LiveData, ViewBinding, Room, and Hilt
Stars: ✭ 27 (-42.55%)
Mutual labels:  architecture-components
waylan android
A dictionary concept for Android ~ Making words and their meanings available through a natural and beautiful experience
Stars: ✭ 13 (-72.34%)
Mutual labels:  architecture-components
Starwars
A sample modular Android app written in Kotlin using Rx, Koin, Coroutines, Dagger 2 and Architecture components
Stars: ✭ 41 (-12.77%)
Mutual labels:  architecture-components
RickAndMortyApp
A hobby project that showcases key android concepts
Stars: ✭ 41 (-12.77%)
Mutual labels:  architecture-components
BottomNavArchDemo
The demo project for Bottom Navigation with Navigation Architecture Components article
Stars: ✭ 53 (+12.77%)
Mutual labels:  architecture-components
kmm
Rick & Morty Kotlin Multiplatform Mobile: Ktor, Sqldelight, Koin, Flow, MVI, SwiftUI, Compose
Stars: ✭ 52 (+10.64%)
Mutual labels:  mvi
Android-Clean-Architecture
🚀A basic sample android application to understand Clean Architecture in a very simple way and is written in Kotlin.
Stars: ✭ 39 (-17.02%)
Mutual labels:  architecture-components
Lastik
Kotlin Multiplatform + Jetpack Compose pet project, based on www.last.fm/api (in development)
Stars: ✭ 37 (-21.28%)
Mutual labels:  mvi
Rick-and-Morty
The Rick And Morty - MVVM with a clean architecture approach using some of the best practices in Android Development.
Stars: ✭ 45 (-4.26%)
Mutual labels:  architecture-components

HitCount

Artic

Artic is an attempt to build a full featured android app that pulls news articles from a Wordpress blog using dynamic feature modularization, kotlin coroutines and unidirectional data flow.

UI

The UI was graciously designed by dikethelmak.

Architecture

The app leverages uni-directional data flow the in building a predictable state machine for every screen. To achieve this, the ViewModel class of the Android Architecture Components and Kotlin Flow were used. A lot of the architecture decisions were inspired by the talk detailed in these slides.

Source: Building MVI apps with Roxie.


Another interesting part of the architecture is the use of dynamic feature modularisation to seperate feature related code into the appropriate modules and Dagger 2 for dependency injection in the feature modules.

Source: Android Components Architecture in a Modular Word.

Libraries

Dagger2 - Dagger2 was used for dependency injection.
Kotlin Flow - Flow was used for threading and data stream management.
Retrofit2 - Network calls
AndroidKtx - For cool extensions to Android classes.
Architecture Components - For Lifecycle managment in the presentation layer, persistence.
MockK - For mocking test dependencies.
Truth - For Unit test assertions etc.
Konveyor - For generating random data for tests.
Espresso - For UI testing.

Todo

I had a lot of fun building this. There are some improvements I intend to make.

  • More tests.
  • Build settings screen with Jetpack Compose
  • Complete article search
  • Animations
  • Dark mode

Build Instructions

  • Clone repository.
  • Run with Android Studio 4.0 canary 3 and above.

References

License

Copyright 2020 Abdul-Mujeeb Aliu

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.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].