mochadwi / android-news-app

A simple modular approach for News Mobile Apps (Kotlin + MVP + AAC + RxJava + Room + LiveData + Micro-apps)

Home Page:https://medium.com/@mochadwi

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

android-news-app

News Mobile Apps (Kotlin + MVP + RxJava + Realm + Micro-apps)

How to run

1. $: git clone https://github.com/mochadwi/android-news-app.git
2. $: git submodule update --init --recursive
3. $: git submodule foreach git pull origin master

FAQ

  • Why sudmodule?

ANS: multi repo due to micro-apps architecture my articles

  • Why product flavours?

ANS: For ease of use to change the environment without affecting production environment (separate build config, static files, etc)

What this repo contains

  • The codebase was written in Kotlin language by love

  • Glide (Image loading on articles)

  • RxJava (Implemented on SearchView)

  • Retrofit + Okthttp (Unsafe SSL client included, implement rest client endpoint and generator)

  • Realm (Store the actual API response to the local database, implement custom model Serializer to support Gson & Realm side by side: original article)

  • ButterKnife (View binding omit the bloated findViewById)

  • Koda Time (Ease of use LocalDate than traditional java.util.Date)

  • Gson (Ease of use to convert JSON to POJO & vice versa)

  • RelativeTimeTextView (Show the actual time articles has been published: "Published Now, Published 2 Hours Ago, etc")

  • ReadMore (To trim long text view)

  • Using Flavour dimension to switch between prod & dev environment (Separate actual codebase, and to allow multiple installation on the same phone, due to different package so it isn't conflicted each other)

  • CardView (Material Design-ish)

  • ConstraintLayout (Ease of use building xml layout)

  • Gitlab CI (CI / CD on Gitlab using .gitlab-ci.yml, for develop branch, previously this is my private project on gitlab)

  • UI & Unit Test not implemented (I'm still figuring it out why it is error with Realm when running the test: Reference)

What patterns I've used

Downloadable APK

  • Source code (available on this repo)

  • APK (attached here gdrive link to this email, zipped, signed version)

About

A simple modular approach for News Mobile Apps (Kotlin + MVP + AAC + RxJava + Room + LiveData + Micro-apps)

https://medium.com/@mochadwi


Languages

Language:Kotlin 100.0%