Six Reasons I Develop for Android

I wrote these up quickly for a friend who needed some bullet points for a proposal, and so I thought I’d just share them here, as well. Please comment with your own experiences with Android #WINs and #FAILs.

  • Development SDK is free, open-source and officially supported for Windows, Linux and Mac OS (iPhone is Mac OS only basically)
  • Java is the foundation for Android development vs. Objective-C on iPhone: many more Java developers and more affordable; ALSO a number of existing open-source Java libraries can run on Android, specifically Apache Commons client library code
  • Android devices have removable batteries and SIM cards and can be unlocked for use on other networks w/o breaking the law
  • Android devices have Micro SD based storage that can be easily removed; good for both application data distribution and security reasons
  • Android hardware supports a true digital compass (your software knows which direction your user is facing, not just GPS lat/lon), as well as (at least with G1 device) auto-focus 3 megapixel camera capable of barcode, fingerprint and human iris scanning
  • Finally, custom version of the Android OS can be built that are purpose-built, stripped down and customized for certain applications

Quick Hack: PhoneGap + FourSquare = FourDroid

You may or may not have heard of a new service called: FourSquare, but I am sure at some point in the next year, you will!

It’s from the guy who made (and sold!) Dodgeball (a pre-Twitter mobile social service) along with another super-sharp mobile guy in NYC, and it’s launching at SXSW…. well, at least the iPhone app is.

Feeling left out, I decided there should at least be a basic offering for Android, and realized I could just wrap and tweak the mobile web service they offer at

Hence, FourDroid was (quickly) born, thanks to the always awesome PhoneGap Framework and the built-in WebKit browser on Android.

fourdroid = foursquare for android fourdroid = foursquare for android fourdroid = foursquare for android

The benefit the “app” version has over just pointing your browser at the site:

  • the app keeps its state/page separate from any web browsing you might do
  • You can easily add the app icon to your home screen for quick access
  • the browser font size is increased by default (the size for the mobile site is very small)
  • a bottom button/tab bar provides quick links to often used screens
  • it is just so much hotter to have an “app” than to try to explain how to type in a mobile URL

At some point, PhoneGap can also be used to tie in GPS location detection, photo upload, accelerometer and more, but for now, I’ll just settle for the benefits listed above.

The best part of this whole story is that I wrote the app this evening while I was waiting for other work (well paying work) to compile… so about two hours total interleaved into what I was actualy supposed to be doing. Yay, for PhoneGap on Android!

Search for “fourdroid” or “foursquare” in the Android Market today to try the app out for yourself

gReporter for Android code is up….

Still some work to do, cleanup and some better javadocs, but if you are looking for Android code to help you record audio, take photos, get GPS location, upload via HTTP and more, then this is the project for you.

Git Code Repository (source access and zip/gzip download):

Slide overview download:

Here’s the slides I presented today at Columbia University on this topic…

eWeek coverage of NYLUG Android Event

Darryl K. Taft, a reporter from eWeek magazine, was in the room at the NYLUG event last week, and I didn’t even know it! I am still working on getting some audio, video and slides up from that talk, but in the meantime, some good quotes from the evening below, and after the link…

Freitas, who has worked at Palm as a program manager building Java code, said he appreciates Android as “the first open mobile platform. There’s really a lot to hack on. It’s really the first open platform developer-tools-wise. No one’s ever put the effort into delivering a fully cross-platform development environment.”

and this….

Making a comparison to the iPhone development environment, Freitas said, “There’s a big difference between APIs and a thoughtful platform…The iPhone is a beautiful device and a great user experience.”

However, the iPhone world does not focus as much on providing an ecosystem of services for developers like Android does, Freitas said, noting the site, which is a place to collect, design and implement open intents and interfaces to make Android mobile applications work more closely together. In addition, Freitas mentioned the PhoneGap project, which is a development tool that allows Web developers to take advantage of the core features in the iPhone, Android, and BlackBerry SDK using JavaScript.

Read the full story on eWeek

NYLUG (Linux Users Group)

Thanks to the kind invitation of Brian Gupta, I’ll be part of his presentation on Android next week at the New York Linux Users Group (NYLUG). I met Brian at the Android Meetup, where I had given a short talk on “Android Dev 101”. Brian runs the #androidnyc channel on freenode, and is a great fan of hacking the lower levels of the Android platform.

Here’s a taste of what we’ll be talking about:

The talk will start with a review of the internal architecture of the Android platform, breaking down the various components, and examine how they work. Then we will review the latest status of the open source project, including how to get and build the source code, and how to get involved.

At this point there will be a short session introducing application development on the Android platform, walking through the open-source tool chain, including the command line tools and the IDE based environment. The core application components will be broken down, including the XML-based formats for resources and user interface design. The required “Hello, World!” app will be shown, along with a more complex “Geo Report” app which utilizes more advanced features such as GPS location and the Camera. Finally, application deployment either via the Android Market or through direct web or physical distribution will be demonstrated.

You can find out more about the event, and if you do want to attend, make sure you RSVP… IBM is hosting, and it is mandatory to get in.