Movie explore featuring modularization and latest trends on Android.
- Android Developer folks
- Koltin fans
- Want to learn a real usage of a tool
- Interested in the architecture in use
- Want to participate on crafting a great app
- Beginners/Intermediates/Advanced developers
- Just here to copy-past?!
AIO stand for All In One. it's there because I wanted to say you might find everything at one place (no surprises!)
AIO is Kotlin-First. so everything you see here in this repository will be in Kotlin.
For now I'm using TMDB as backend and API source.
Architecture is MVI/UDF Using RxJava.
Using Bitrise for CI/CD. Release generation is all automatic and human less. every push to master causes a new release.
I try to explain every path I take every workaround I make and all and all anything interesting on my Blog : worldsnas.com
- Setup a Side-Project
- Why I chose Dagger, A Dagger Story
- Deep Dive in Dagger Setup
- Setting up a CI server
make sure to have a look there for a detailed explanation.
- First create a local.properties in root folder
- Get a TMDB API-Key and add to the properties file with "API_KEY" tag
- Add a empty field for these keys:
- keyStorePass
- aioAlias
- keyPass
- keyStoreAddress
- Fabric_API_KEY
- Lastly disable GoogleServices plugin by commenting
apply plugin: 'com.google.gms.google-services'
inapp/build.gradle
file
Now you can open the project in AndroidStudio and build/Test/Run it.
The project has not yet been published on google play. but you can grab the latest release in two ways:
- Using Telegram: AIO Release Channel
- Github Release page: Releases
All the detail of project Milestones/Features/Progress/Done can be found on Github Project for this Repository. I try to keep it updated and as detailed as possible.
- Conductor: A small, yet full-featured framework that allows building View-based Android applications.
- Dagger2: Dependency Injection framework for both Java and Android.
- ButterKnife: View Binding into fields.
- RxJava: A library for composing asynchronous and event-based programs by using observable sequences.
- Epoxy: Epoxy is an Android library for building complex screens in a RecyclerView.
- DynamicFeatures: Deliver code to Android onDemand.
- Retrofit: Type-safe HTTP client for Android and Java.
- OkHttp: An HTTP client for Android, Kotlin, and Java.
- Fresco: An Android library for managing images and the memory they use.
- LeakCanary: LeakCanary is a memory leak detection library for Android.
- AssertJ: Fluent assertions for java.
- Mockk: Mocking library for Kotlin.
- MockWebServer: A scriptable web server for testing HTTP clients.
- Robolectric: Running Android Tests on JVM.
- Androidx Test: Helper libraries for Android Tests.
There are a ton of stuff that you can contribute to.
- Readme!
- Reporting issues with the app (by creating new issues on this repo)
- New cool feature in mind? add it to the Project page.
- Like to add documentation just send a PR
- Like to see a feature in the app quicker? try to implement it yourself and send a PR
- A typo? sure why not?
- Bug Fix? shoot it!
- Different approach to some implementation? I'm all open.
- Something bothers in this repo? open a discussion issue so we can talk.