Monday, May 31, 2010

Android Development

I approached developing the Android application for android2cloud with a few expectations in mind. Not all of them were met. Let's run through my naive list of presumptions, and then we can compare them with reality.

  1. Developing for Android was simply writing Java. I assumed that writing an Android application would simply be writing a Java application, with a few conventions, and plenty of tools that made things easier for me.
  2. There was an open-source application that did something similar. I expected there to be an open-source Android application that had implemented the Share Intent, an application that had made a POST request to a server, and an application that integrated OAuth.
  3. I could curate the code of these applications. Rather than writing the entire application from scratch, I could re-use the code written in the applications mentioned in 2 to create android2cloud, which would save me a lot of time in getting a prototype out the door.
Reality, however, decided it didn't want to meet my expectations. All of them, at least.
  1. Android != Java. Android is, as best I can explain it, a framework built on top of Java. You write using Java, but you're not writing a Java application. You're writing an Android application. There's a whole new way of thinking, several new paradigms, and a new system you need to understand. Fortunately, the documentation is wonderful, so as long as you actually learn what you're trying to do, instead of taking shortcuts, you'll be fine.
  2. The Android community is wonderful. There were indeed several different applications that had implemented everything I wanted to implement already. They had POST requests, they had OAuth, they had the Share Intent. I could simply stitch them together, and have android2cloud.
  3. I could not simply stitch them together and have android2cloud. As I mentioned in 1, as long as you actually learn what you're trying to do, instead of taking shortcuts, you'll be fine. Unfortunately, stitching together components of other code is a major shortcut. Which is why it's appealing. So for a new developer on the Android platform, it really helps to write everything from scratch. Follow the tutorials, ask questions, and write your own code. Later (as long as what you're doing is legal and ethical) you'll be able to curate your code without any problems.
Those are my findings on Android development so far: taking longer than I'd hoped. But, thinking about it, I'd rather spend the time doing it properly. It makes sense that, for my first foray, I should "own my code".

1 comment:

  1. You'll get there!
    Sounds like its the same frustrations i have when i attempt to learn a new language & framework at the same time.
    Patience will get you there.

    ReplyDelete