# Cookpit Flickr API implementation for Android with C++ core ## Requirement * Android Studio * android ndk and `ndk-build` on your PATH to build for android * setup your ndk path in `local.properties` file at root of folder `Cookpit/local.properties` For example: ```bash ndk.dir= sdk.dir= ``` ## Installation * Run `make android` at root folder by default, it focuses only 2 architectures which are `APP_ABI := armeabi-v7a,x86` * Optionally, run `make android ARCH=all` for all available Android architectures ## Building * Import `Cookpit/` into Android Studio ## Bridging Code * `Cookpit/java_gen` and `Cookpit/jni_gen` contains all bridging code in Java/JNI generated by djinni's interface files in `djinni/` ## Architecture * MVVM - Model(M) is sharing between iOS and Android with C++ code. VM(View Model) is a class on Kotlin provide necessary data for application to render. V (View) is purely on Android with Kotlin. V and VM are glued together with reactive paradigm in this project we use [RxJava](https://github.com/ReactiveX/RxJava). ## Folder structure ```bash Cookpit ├── app/ # app module for Android app ├── gradle/ # gradle tool ├── java_gen/ # bridging code (untrack) ├── jni/ # jni configuration Android.mk & Application.mk ├── jni_gen/ # bridging code (untrack) └── build.gradle # gradle configuration file ```