-
Notifications
You must be signed in to change notification settings - Fork 117
Development Tutorial
You want to help us developing Mirakel? Great! We changed our development process a bit to improve our code quality and to support the old android versions furthermore.
We use gerrit to review patches.
-
Install the android sdk
-
Create an account on our gerrit instance, add your public key
-
Add the following lines to your
~/.ssh/config
:
Host gerrit.azapps.de
IdentityFile ~/.ssh/[YOUR KEY-FILE]
User [YOUR GERRIT-USERNAME]
- Clone the source code and add the commit hook for gerrit.
$ git clone https://YOUR-GERRIT-USERNAME@gerrit.azapps.de/r/MirakelX/mirakel-android && scp -p -P 29418 YOUR-GERRIT-USERNAME@gerrit.azapps.de:hooks/commit-msg mirakel-android/.git/hooks/
- Add some configurations:
- copy
mirakel-android/local.properties.dist
tomirakel-android/local.properties
and change the path to the sdk directory in this configuration file - copy
mirakel-android/new_ui/local.properties.dist
tomirakel-android/new_ui/local.properties
- copy your debug keystoreto
mirakel-android/new_ui/debug.keystore
andmirakel-android/dashclock/debug.keystore
That's it. You should now have a fully working Mirakel-environment and you can start developing!
Get the Android SDK and Android Studio from here
File
→ Import Project
Start developing ;)
Do not use Eclipse. We do not support Eclipse anymore
The simplest way to build Mirakel using Gradle is:
$ ./gradlew build
Of course there are some more tasks you can do:
$ ./gradlew tasks
Now you should see all the possible tasks. Just select one and build it with gradle [taskname]
Happy hacking!
This part could be not up to date. Last change: 2015-06-14
We have structured our code in the following projects:
This stuff you mostly do not need to touch. It is working fine.
- /changelog/ Show the changelog on startup after an update.
- /colorpicker/
- /colorpickerpreference/ The colorpicker for using in the preferences.
- /date-time-picker/ A modified picker for pick a date and a time simultaneously
- /donationslib/ Donation library supporting Paypal, Flattr and Google Play
- /ilovefs-android/ An information dialog displayed on the I love FS day
The main part of Mirakel containing the new UI.
Here you can find our models. They are responsible for communicating with the database and represents our data structures.
Everything which has something to do with the taskwarrior sync.
Everything which has something to do with the settings part of mirakel.
Everything for the widget. Because Android < 3 has bad support for widgets there are some hacks needed.
Here is everything which we may need in other places. It would be nice to restructure this library.
Third party stuff:
-
au.com.bytecode.opencsv The OpenCSV library for parsing CSV Files
-
org.dmfs.provider.tasks The tasks provider used for the CalDAV sync
-
de.azapps.tools
- FileUtils Stuff for working with files
- Log A wrapper for the Android Log class. Supports writing Logs to files. Use this class when you want to log something.
-
de.azapps.mirakel.helper
- error Classes for improved error handling
- *.java specialized helper classes for different purposes
Tools we use for developing:
Suggestions for more/better tools are welcome!
- Android Studio We use Android Studio, because it will be the future of android developing.
- Gradle For building Mirakel
- Gerrit For Code review. Our gerrit instance you can find here: https://gerrit.azapps.de/r/
- Github For publishing the source code and Issue tracker