Skip to content

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

License

Notifications You must be signed in to change notification settings

zfoltin/twittererer

Repository files navigation

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

  • Log in with Twitter
  • View last 20 tweets on home timeline
  • Pull to refresh
  • Post tweet

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

  • Activities

  • Adapters

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

About

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

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages