I recently got an opportunity to venture into mobile application development at work. I had 2 months to develop an Android app for a client. During those 2 months, I had to build a website to manage the data that would be pulled into the app, an API to get the data from the website to the app and send data from the app back to the website, AND the Android app itself. Did I mention that this was my first foray into Android development?
Android apps are written in Java (with layouts, menus, and resources written in XML). With my experience with php, I was luckily able to pick up Java fairly easily. I did buy a couple books on Android development, and I was able to get through the first one and part of the second one before I had to start coding this app. That meant I was able to figure out some of the basics before I had to write a line of code for the app.
To my surprise, I was managed to get the website, API, and Android app done before the deadline … with a couple of days to spare (I won’t talk about the amount of overtime I put in to meet that deadline [too bad I don't get paid overtime]). We launched the app on Monday (I actually published it last Friday, but there were some issues with the Android Market that kept the app from being available until Monday … that’s another post entirely). If you’re curious to see my handiwork, you can find it here: JL Beers on the Android Market
The project for this client also includes an iOS app. I’m the one who gets to develop that one as well. :nailbite: I actually have an iMac on my desk at work (along side my Windows machine).
I had time to learn some basics before starting the Android app. Now that the Android app is out, I’m sure the client (and iPhone users in the area and my bosses) want the iOS version sooner rather than later. That’s leaving me feeling a lot of (probably mostly imagined) pressure. Ideally, I’d like to get a book to learn the basics and run through some online tutorials. But I don’t feel like I have the luxury of taking the time to do that.
I have been going through some tutorials to try to figure out some of the basics, but I’m feeling very overwhelmed. iOS apps are written in Objective-C, and I have no experience in that. It’s nothing like php or Java. In php and Java, you have 1 file for a class. In Objective-C, you need 2 files to create 1 class. And that’s just the start. We want the iOS app to be as similar to the Android app as possible. Trying to figure out how to do some of the stuff that I did in the Android app in the iOS app is making my head hurt.
It’s not that I don’t want to learn how to develop iOS apps. I would love to add that to my resume. Adding iOS to my php and sql (both MySQL and MSSQL) experience, and my newly acquired Android experience would make me a force to recon with (or so I’d like to think).
There is no set deadline for the iOS app, but I know everyone wants it done as soon as (humanly) possible (or at least that’s how I feel). And I think that’s the biggest issue. I feel like I’m wasting time reading through tutorials and not doing billable work. But working through tutorials is how I learn. That’s how I taught myself php and sql. I’ve never taken a day of programming classes in my life (well, I did take a C programming class in college, but that was HOW long ago … and it was only a basic class). I learn by doing … by actually writing the code and running it and finding the errors/mistakes and fixing them and running it and …
If I could just get a handle on the basics, I think that would help. It doesn’t help that this app has some more advanced functionality. If it had been a basic app, then I wouldn’t be so stressed out (then again …). Of course, most of that stress is caused by me.
I need to figure out how to get myself to calm down. I’ll figure it out … I always do. I’m just afraid that this time it’s going to take me longer than it has in the past. I don’t want to let anyone (client, co-workers, bosses) down.