Skip to content

Android MVP app which communicates with DuckDuckGo search engine

License

Notifications You must be signed in to change notification settings

teeeeeegz/DuckDuckDefine-Android

Repository files navigation

DuckDuckDefine - Android

Originally an iOS MVC project ripped apart then put back together with MVP, and translated to the Android framework, sharing common business logic between iOS and Android app architectures.

My inspiration for this project was to refamiliarise my understanding of iOS development, bringing across refined architecture concepts and workflows used for developing Android apps, to bridge my knowledge-gap of iOS development. I was unable to find an iOS boilerplate project which combined MVP with Rx, Dependency Injection, near-auto JSON serialisation, and image loading & caching, all of which is commonly found in Android MVP boilerplate projects, and are mandatory in the Android apps I develop.

This project will benefit those who develop for either Android or iOS, and intend to transition to the other at some stage. I have shared the iOS-alterative to this project with common libraries found in production apps today. Both projects share the same business logic and will aid in understanding the differences between Swift & Java syntax, and iOS & Android frameworks, learning through example.

The Kotlin-alternative project can be found here

The iOS-alternative project can be found here

Libraries:

The following libraries were used, most of which have an iOS alternative:

  • RxJava to provide a reactive programming standard VERY similar to RxSwift implementation
  • Retrofit and OkHttp for API communication. Alternative to Alamofire
  • Moshi to serialise JSON to POJO's, and vice-versa. Alternative to Gloss
  • Dagger for dependency injection. Alternative to Swinject
  • Picasso for image caching and loading. Alternative to Kingfisher
  • Android Support Library to provide common frameworks backportable to earlier versions of Android
  • ButterKnife for enabling view binding for fields and methods
  • RxAndroid which provides RxJava bindings relative to the Android framework
  • Retrolambda bring lambda support to Java <= 7
  • Timber an improved logger which has an extensible API
  • Arrow which provides many useful methods found in the Guava/Apache Commons libraries
  • Dexcount to keep tabs on your method reference count for each build

Original iOS project downloaded from Ray Wenderlich's site, here.

About

Android MVP app which communicates with DuckDuckGo search engine

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages