C2DM

Android Reference Implementation - Droid Twit

In order to learn Android, we have created an Android application. This android application will help us get actual hands on experience in all the aspects of Android Development. The way we have developed this application is to thing of the design first, implement and keep refactoring the design, until the application gets better. Ofcourse we try to use the best practices mentioned on the Android.

We call this application as Droid Twit application, which is the reference implementation of Twitter on Android.
The application is developed in two parts
1. Small samples to understand a particular android feature or api
2. Integration of the feature or api in the Droid Twit application
The above approach helps developers to learn android
We have created an OpenSource Project

Please note this application is still under development, so please bear with us

Introduction

This is an Implement of Android Twitter client. This is a reference implementation showcasing how to use all the components of Android to create a Twitter client.

Rohit Ghatol and Saurabh Gangarde are the lead developers of this project. Both of them work for QuickOffice and Synerzip Softech.

This Reference Implementation is build to train developers in Pune for one of the TechNext Technical Talks.

Tutorial

The tutorial on how to build a twitter client is available at DroidTwitTutorial

Hello World Tutorial

Source Code

http://code.google.com/p/droidtwit/source/browse/#svn%2Ftrunk%2Ftutorials%2FHelloWorld

Video Tutorial

Part 1

Part 2

List Activity and Async Task Tutorial

Tutorial for List Activity and Async Task

Features

The Android Client uses

  • Alarm Manager to repeatedly fetch tweets from Twitter
  • There is a back ground service for fetching twits and storing it in database
  • There is use of OAuth for authentication
  • Notification Manager is used for notifying users about newer twits
  • Battery Drain is monitored and Twitter Service is closed to help save battery, and when battery is charged then again Twitter Service is started. (Yet to be implemented- Coming soon)
  • In UI side we use shapes and drawable states for background and button images

Download Demo APK

Disclaimer: Since the application is under development and not gone through entire QA cycle, there could be some crashes in the application. We are striving hard to get you a stable version soon. Meanwhile please focus on the application architecture.

Please Download our apk from http://droidtwit.googlecode.com/files/DroidTwit.apk and try it.

Demo Video

Screenshots

Architectural Diagrams

Proposed Architecture


Screen Flow


Overall Architecture

Note Phone Boot Receiver, Low Battery Receiver and Alarm Receiver are all Android BroadCast? Receiver.


OAuth Authentication


First Time Launch


Activity Asking Service to fetch tweets


Alarm Manager Triggering Service every n minutes


When Phone Boots, Broadcast Receiver registers Alarm Manager and Battery BroadCast? Receiver


Battery BroadCast? Receiver controls Alarm Manager