CircleCI

Twittererer

A simplistic Android Twitter client demonstrating the use of the MVP pattern, unit tests with pure JUnit4 and Robolectric, UI testing using UI Automator and Espresso, usage of various libraries such as Dagger 2, RxJava, Retrofit, Twitter SDK, RecyclerView, Butter Knife, Picasso, Joda-Time, etc

Screenshot 1 Screenshot 2

Functionality

Architecture

The project uses the MVP pattern for clear separation of concerns and to maximise testability

Models

Simple model classes to represent the relevant information for the app

Presenters

The only presenter for now is the TimelinePresenter, responsible to manage data loading/saving, update the view and handle user interaction events

Services

TwitterService handles communication with the Twitter API

Here the callback interfaces have been converted to RxJava Observables and the Twitter SDK objects converted to our models

UI

All UI related classes live here

Utils

TimelineConverter converts from cumbersome Tweets to our TimelineItem models

Views

View interfaces implemented by Activities


Testing on Android

The project demonstrates different testing techniques


The wonderful libraries that made everything jolly-good

Not in any particular order

Special thanks to Twitter for Fabric