#GreenDroid
 
GreenDroid is a development library for the Android platform. It is intented to make UI developments easier and consistent through your applications. A complete description is given on [my personal blog][personal_blog].

[![](http://lh4.ggpht.com/_OHO4y8YcQbs/TQFWEpSo-UI/AAAAAAAAMpc/DzAbSkhOx3I/s800/greendroid_logo.png)](http://lh4.ggpht.com/_OHO4y8YcQbs/TQFWEpSo-UI/AAAAAAAAMpc/DzAbSkhOx3I/s800/greendroid_logo.png)

Keep in mind this is still a work in progress. There are thousands of things to do and I hope I'll have enough time to develop all of the features I have in mind :)

[![](http://lh4.ggpht.com/_OHO4y8YcQbs/TQFQZTft6OI/AAAAAAAAMpY/hAloaii6kRA/s288/gd7.png)](http://lh4.ggpht.com/_OHO4y8YcQbs/TQFQZTft6OI/AAAAAAAAMpY/hAloaii6kRA/s800/gd7.png)
[![](http://lh5.ggpht.com/_OHO4y8YcQbs/TQFQZWFmWII/AAAAAAAAMpU/MDUQi5mW60o/s288/gd6.png)](http://lh5.ggpht.com/_OHO4y8YcQbs/TQFQZWFmWII/AAAAAAAAMpU/MDUQi5mW60o/s800/gd6.png)
[![](http://lh4.ggpht.com/_OHO4y8YcQbs/TQFQSXwRv1I/AAAAAAAAMpA/f2XR1qr1KfI/s288/gd1.png)](http://lh4.ggpht.com/_OHO4y8YcQbs/TQFQSXwRv1I/AAAAAAAAMpA/f2XR1qr1KfI/s800/gd1.png)
[![](http://lh6.ggpht.com/_OHO4y8YcQbs/TQFQTfazM2I/AAAAAAAAMpQ/lgPpIKImdZw/s288/gd5.png)](http://lh6.ggpht.com/_OHO4y8YcQbs/TQFQTfazM2I/AAAAAAAAMpQ/lgPpIKImdZw/s800/gd5.png)
[![](http://lh3.ggpht.com/_OHO4y8YcQbs/TQFQS5hyrKI/AAAAAAAAMpM/4hqL9y_tVgM/s288/gd4.png)](http://lh3.ggpht.com/_OHO4y8YcQbs/TQFQS5hyrKI/AAAAAAAAMpM/4hqL9y_tVgM/s800/gd4.png)

A sample application can be downloaded on the [Android Market][gd_catalog_market]

##Contacts

Feel free to contact me for any question related to GreenDroid: bug report, questions about the library, etc. I don't have time to provide personal support but I'll try to look at bug reports and important talks about the GreenDroid philosophy.

##Using GreenDroid in your projects

***Note :*** The previous `greendroid.py` method has been removed from the library. Indeed, this Python script was perfectly functional but wasn't user-friendly (especially for Windows users). Creating libraries for Android is now handled by the ADT plugin.

In order to use GreenDroid you have to do the following steps:

1. Download the GreenDroid library on your computer with a simple: `git clone http://github.com/cyrilmottier/GreenDroid.git`.
   As usual, Git will clone the GreenDroid repository and create a folder GreenDroid that contains a 3 folders:
   * GreenDroid: the core library. This is the code that will be mostly linked to your code
   * GreenDroid-GoogleAPIs: GreenDroid's extension including Google APIs related features (GDMapActivity for instance)
   * GDCatalog: the demonstration application. This project contains a lot of snippet of code showing you how to use GreenDroid.

2. Since [May 2010][adt_history], the ADT plugin added an amazing new feature: the ability to work with library projects.
   Using GreenDroid consists on applying the GreenDroid project as a library to your application. A complete description on how
   to use library projects is given on the [Android documentation website][library_project_doc]. Make sure your
   development environment uses the latest tools and platforms, since older releases of the tools and platforms do not support
   building with library project.
   * In case you want to use some Google APIs features, make sure you are using the GreenDroid-GoogleAPIs library. GreenDroid-GoogleAPIs is base on GreenDroid. As a result, you don't need to link GreenDroid as an Android library to your project.

3. By default, the GreenDroid theme inherits from `@android:style/Theme`. If your project inherits from a different theme, 
   you'll have to modify the GreenDroid library on your own (and do that everytime you are updating GreenDroid as updating 
   deletes all of your changes - still working on a way to overcome that problem). Open the `res/values/gd_themes.xml` and
   replace the parent theme `@android:style/Theme` with your own theme.

4. A lot of GreenDroid's feature (`GDActivity`, `GDListActivity` or `GDTabActivity` for instance) requires your application 
   to be a `GDApplication` so make sure your application is a `GDApplication` class. In order to do that, simply 
   add `android:name="greendroid.app.GDApplication` (where `greendroid.app.GDApplication` may be replaced by  your own class 
   that inherits from `GDApplication`) in the application tag of your `AndroidManifest.xml`.

5. You finally need to make your project use the GreenDroid base theme. In your `AndroidManifest.xml`, go to the application tag 
   and add `android:theme="@style/Theme.GreenDroid"` as a new attribute.

##Using the GDCatalog application

The GreenDroid project includes a demo projet called GDCatalog. This project shows some of the GreenDroid's features. I strongly encourage you to look at it as it's a great way to apprehend the library and understand how to use it in a correct manner.

GDCatalog obviously uses the GreenDroid library. As a result, it won't build until GreenDroid has been applied to it. If your IDE is up-to-date you'll have nothing particular to do. Simply press the "Play" button!

##Software Requirements

GreenDroid has been designed for Android 1.6 and greater. It may work on Android 1.5 but I don't want to provide support for this platform as it's way too old ... It has been developed using the following software:

  * Eclipse IDE 3.6
  * Android SDK 4 (android-4)
  * Android Development Tools (ADT) 8.0.1

Go the [Android Developers website][android_developers_website] for complete installation instructions.

##Credits

Copyright © Cyril Mottier <cyril@cyrilmottier.com>

[android_developers_website]: http://d.android.com/sdk/installing.html
[personal_blog]: http://android.cyrilmottier.com/?p=240
[adt_history]: http://d.android.com/sdk/eclipse-adt.html#notes
[library_project_doc]: http://d.android.com/guide/developing/eclipse-adt.html#libraryProject
[gd_catalog_market]: http://market.android.com/details?id=com.cyrilmottier.android.gdcatalog
