You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
App that connects to nytimes & openweathermap APIs to display a list of news & weather items.
Architecture (MVP - Model View Presenter)
Model: This layer is responsible for data retrieval from any data provider (Cloud, Database... etc). This layer contains implementation for the Repository pattern which is defined in the presentation layer, this pattern represents the communication point between the Model and the Presenter
Presenter: This layer is responsible for communication with the Model to retrieve the model, format its values and manipulate the View to show the data accordingly
View: This layer contains Android Framework classes that are used to present the UI to the user (Activity, Fragment, Adapters and Android Views). Implemented through an interface which provides abstraction between the View layer and the Presenter layer
Build Requirements
Android studio v3
Build tools version 26.1.0
API level 26
MinSdk 17
Third party libraries
Android support libraries v4 - v7: used mainly for backward compatability support for Fragments, Styling and Appcompat Theme
Retrofit: used for making HTTP requests and parsing results in an interface looking way
OkHttp: used for making the actual HTTP requests by Retrofit
Gson: used for parsing network calls responses by Retrofit and is used through Retrofit's ConverterFactory
RxJava: adding a reactive flavor for the glue between our layers, all communication through Repository, Model and Presenter are through RxJava's Observables
Picasso: used for image loading and caching in memory and on disk
LeakCanary: used for detecting memory leaks [Only in debug mode]