Skip to content

A movie explore App featuring MVI, Modularization, and other latest trends on mobile development.

License

Notifications You must be signed in to change notification settings

seyedjafariy/AIO

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AIO

Build Status ktlint License Awesome Kotlin Badge

Movie explore featuring modularization and latest trends on Android.

Who is it for?

  • 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?!

Images of AIO

AIO demo

AIO main 1

AIO main 2

AIO detail

AIO search

About

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

make sure to have a look there for a detailed explanation.

Installing/Running

  • 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' in app/build.gradle file

Now you can open the project in AndroidStudio and build/Test/Run it.

Latest Release

The project has not yet been published on google play. but you can grab the latest release in two ways:

Features and Goals

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.

Technologies

  • 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.

Contribution

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.