iApp development – getting started
So I got a call from someone needing a iPad app on short notice…
Building for iPhone/iPad/Android is something that I’ve been wanting to get into, but haven’t had the time to dedicate to learning because of a million other things. That’s always how it works I suppose. Anyway, a couple of months ago I got an opportunity and although I wasn’t really ready, I decided (was pushed a bit, actually) to take it on and see what could be done. Luckily, the app itself seemed very simple. I already was registered as an app developer with Apple from a while back, you just need to renew it every year. I had downloaded all the tools from Apple, although I had done almost nothing with them. So I went through some of the tutorial videos, read a lot and came to the conclusion that this was going to be a total pain in the a$$. And I really need to learn Objective-C.
Way too much time and learning for such a small project. So, lazy person that I am, I looked at other options for just getting this one out the door. I came across two promising options: PhoneGap and Titanium Studio from Appcelerator. Based on not much more than a few reviews and comparisons, I went with Titanium Studio. They’re both free, so no biggie if you dump the first one you try. And huge advantage in my book, they’ll both work on more than just Apple devices. Here’s a quick overview of my experience getting started…
Even though I read everything I could find and decided on one of the tools, I still had no idea what I was getting into. The problem (to me) is that there are many parts that have to be coordinated, and I didn’t understand which parts were which and how it all fit together. I didn’t realize when I downloaded Titanium studio that you still need Apple’s Xcode involved. Essentially, Titanium Studio is a combination of tools, some of which you have seen before if you use tools like Eclipse from Aptana. You code in the IDE, then test on the iPad or iPhone emulator that is part of the Apple toolset. Then you use Xcode and iTunes to get everything to the device for testing. At least that’s how it worked for me. I’m sure that all seems obvious to any Apple developer, but as a newbie it wasn’t clear to me at all.
Getting into the Titanium Studio IDE, setting up a project and testing it is not too painful. Within a day of installing, reading, trying out the sample apps they provide, and doing some rudimentary coding, I already had 75% of my first app done (keep in mind it was a very small and simple app). I probably had not built it in the most elegant way, but what showed up in the test environment was what the client asked for, which is a great start in my book.
The pain came when I had to actually get it onto a device for testing. All I can say is Apple’s process is tedious, and even though they give solid documentation and lots of info, it is still not very clear – to me at least. A major problem is that I’m one of those that tosses the manual aside and just starts hitting buttons. That won’t work with the Apple registration process unless you’re extremely lucky. It took me several tries to get everything just right, get my phone registered as a development device, and get it properly associated with the project I was building. It took a lot of jumping back and forth between Titanium Studio, Xcode and the Apple development site before it finally worked. My main problem was that it wasn’t clear to me what parts were responsible for what, so I had no idea where the problem was. I kept messing within Titanium Studio thinking I had done something wrong, when it turned out that I needed to be messing with the Apple developer site because the registrations weren’t correct yet. It literally took me 3 or 4 times longer to figure all of that out and get it working than it did to install the tools and build the silly app!
Thanks to all the other people on forums that had similar problems, I puzzled through it. There was no magic answer, sadly. My solution was a combination of bits and pieces of what other people came across. They had other issues I wasn’t seeing, some that sounded scary compared to mine. After lots of reading, resetting things, removing and re-adding information on the Apple site, I got it installed so I could test on a real device. And it worked! wOOt!
Getting it onto someone else’s device for testing… well, a whole ‘nother level of complexity. Actually, once you get the basic idea of setting up the test devices and projects on the Apple dev site, it’s not too bad adding more. The problem is that now you have to get device info from anyone else who is going to test, register those devices with Apple and the project, and then go through the install with them. Which takes a few tries.
The second app went much quicker, but it’s still sticky for me. All too new still. I’m not 100% sold on Titanium Studio, but it was quick to get started and it all made sense to me. Ok, most if it made sense. A few little niggles here and there, like any development tool.
All in all, a pretty positive experience, but Objective-C and the standard Apple tools are the way to go for i-Only development. So my current plan of attack is to keep using Titanium Studio for the time being, because I have more iApps to work on right now, and as I can I’ll keep diving into Objective-C and see what I can do there. My thought is that I’ll eventually transition to using Apple’s tools exclusively for their devices, but that will depend on the market. Right now iPad is king in the market I’m doing most of my work for, so that’s an easy choice, but it’s always prone to change.