Archetype
Archetype copied to clipboard
[DEPRECATED]Badass MVVM architecture.
Archetype
Badass MVVM architecture.
At the moment Archetype contains implementation of Android Dev podcast player.
Official Telegram chat https://t.me/archetype_android
Mobius Russia 2017 Talk https://www.youtube.com/watch?v=M3fTMBfmBqU&t=1380s
Main libraries and concepts
- Android SDK, JDK 1.8 and Kotlin
- Reactive programming with RxJava2 for asynchronous tasks
- Retrofit - for simple REST implementation
Build
Project uses Gradle as build system. You can find main gradle config for Android app module here: app/build.gradle
Code organisation rules:
Basic
- All or no arguments should be named when pass to function, partial naming is not allowed
Kotlin
- Order of declarations inside class or file:
val,var,constructor,init,fun,private fun
DataBindings
- All general function's annotated with
@BindingAdaptershould be stored in*.databindingspackage, filename should be'ViewName'Bindings.kt. @BindingAdapterfunctions that couldn't be reused should be stored in file that contains related VM or should be grouped in separate file named'Feature'Bindings.kt- All all bindings in xml should start with
bind:prefix - All ViewModels in XML should be named
vm
Gradle
- All lib and gradle plugin versions should be stored in root
build.gradlefile.
Rx
- Subscribing to observable allowed only with
subscribeByorbindSubscribeextension methods.