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
- Android SDK, JDK 1.8 and Kotlin
- Reactive programming with RxJava2 for asynchronous tasks
- Retrofit - for simple REST implementation
Project uses Gradle as build system. You can find main gradle config for Android app module here: app/build.gradle
- All or no arguments should be named when pass to function, partial naming is not allowed
- Order of declarations inside class or file:
val,var,constructor,init,fun,private fun
- 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
- All lib and gradle plugin versions should be stored in root
build.gradlefile.
- Subscribing to observable allowed only with
subscribeByorbindSubscribeextension methods.