My Experience Programming Jewish Shabbat Times App for Android

Published March 23, 2010

Now that we hired a full-time iPhone developer, I have more time to try new things out. My plate is always full of these goodies and it was time for me to try Android.

The first thing I do is get an Android device to play with. Barry purchased Google's device called the Nexus One. It is a really swift device. Much better then the failed Palm Pre. I quickly downloaded every type of app out there to see how people use the OS. There was one thing missing - Hebrew.

The device has zero Hebrew support. Oy! The next few weeks I spent trying to see how I can get Hebrew working without rooting the phone. I was able to apply a Hebrew typeface to all components EXCEPT a web view. This is a major issue because Siddur and many of my other apps rely on web views to do most of their layout. Anywho, I didn't dwell on this, I decided to write an app that has Hebrew but does not require a web view. That was it, Shabbat Shalom for Android was set it motion.

Android has some real brains behind it's organization. It has a whole lot of widgets, access rules, forwarding and the like that the iPhone SDK does not have. Starting off though proved challanging.

I quickly figured out that porting the way the app worked on iPhone will not be the same on Android. For example, I spent a week of time trying to get a flip screen working just like iPhone. I got it working but it was never as fluid. This is because Android apps work differently. They have menu buttons and activities and all sorts of other things. I scraped that flicking interface and made a menu based interface. Then it was off to geocoding, translating my objective-c Jewish calendar, holidays, sedra, and zmanim classes to Java. The good news is that it was super straightforward.

Half of the classes were already available in Java or even in Android, the rest were pretty much a one-to-one conversion (sans the memory handling stuff - java ain't do that). After all the code was ready to use, I worked on the design of the app.

Wow wow wow. What a pain it is going from iPhone - where everything is guaranteed to be the exact same screen size - vs Android - where the AbsoluteLayout is now deprecated. I used it anyway. Building these interface in eclipse's interface builder is really time consuming and doesn't yield the elegant results of Apple's equivelent. If I would change one thing about the dev tools, it would be pumpin up a really nice interface builder. Even Microsoft has better tools.

I completed the app today and quickly prepped it for uploading. Very easy process and zero wait time. My app was on the catalog a split second after I published it. I was shocked. But then again I'm used to waiting in line with the iTunes submission process. However, there are side-effects of not having a review process. The app could be broken, it could harm your phone in some way or it could just be really low quality.

I'll be sure to post a followup after I get some stats in. Checkout the screens and let me know what you think. If your on an Android device, click here to download the app.

1 COMMENT

Ronnie Schwartz is the CTO and founder of RustyBrick, an agile web & mobile development firm that creates effective applications and focuses on finding the right balance between time to production and software quality to get clients in front of their customers quickly and effectively. Ronnie brings over twenty years of innovative design, programming and management expertise to the table.