Creating the "NZiPhone.com and NZMac.com News" app - I've wanted to create an iPhone app for NZiPhone.com and NZMac.com for some time. In fact, since NZiPhone.com first launched in June of 2008, I've been looking at various ways for a non-coder like me to get an app on to iTunes. This follows on from the superb success and international recognition (and no, I'm not joking...I still get emails!) of the NZMac.com RSS and Radio widgets, which only came to fruition due to the support of a number of very talented and creative people. At first I created web-based apps for the iPhone, but these require a dedicated folder on the server, the user to always have Wi-Fi or data access, required users to navigate to a web-page to add the app on to their phone, and...well, don't hold the status that having an actual iPhone app has. Since then, various options have come up, but some are exceedingly complex, have hidden costs or don't publish under your name, and many appear to be web-based apps in iPhone app's clothing. After exploring various web-based and do-it-yourself options, I decided that nothing really compares to the robustness of the TapLynx framework, which allows a non-coder like me (and with an Apple iPhone Developer account) to get my app onto iTunes. Thanks to the TapLynx framework and those clever people at NewsGator Technologies, I now have my own iPhone app. What follows is the first of five articles that explain about the process from the start, to submitting the app, its appearance on the App Store, and the things I discovered on the way.
First, some background about me, as this is the "Homegrown" Kiwi section of NZiPhone.com after all. I use the word "non-coder" quite liberally to describe myself, and I think it's important to understand why I selected TapLynx, my level (or lack) of skill and understanding, and why I find myself amused at now being an iPhone developer when the reality is that TapLynx does virtually all of it for me.
The truth is that I have a Post-Graduate Diploma in Computer Science, but my focus of my study was as much removed from coding as I could get. I'm not as uncomfortable with computers as I might be trying to make out...nor web development either. But it's ironic that I somehow managed to get through my diploma without doing much coding (god bless group projects and other members of my team). My ability to code is virtually nonexistent. It's a bit like when I learned French and German at High School. Ask me to say anything in either language and I can't...but show me a bit of writing in either language, and I might (emphasis on might) just be able to figure out what is being said.
It's the same with coding. I can't even open a text file and start to code a standard HTML page without getting confused as to when and where the TITLE and META tags should go (thank you Dreamweaver, you're great). So there is absolutely no way that I could ever create the most simplest of "Hello World" programs in any programming language unless all of the instructions were there in front of me. Conversely, show me a piece of complex PHP and I can sometimes figure out what is going on. My mantra is "I'm a hacker, not a coder", as I can hack code now and then (mostly with help) to solve issues...but I certainly can't write code myself.
What I have learned over the years is that there are some amazingly talented people out there with some amazing skills. I'm not one of them. But I am someone who not only appreciates their skill, but understands a lot of what they do because of my past experiences and study. And this is where TapLynx comes in. It would be wrong to say you need to understand coding...absolutely wrong. But you need to have sufficient understanding to appreciate what it is you are doing. You need to understand a little about RSS feeds and app development in order to succeed...and you gradually need to find your way around Xcode and (with Apple's guidance) around the notion of keychains, certificates and provisioning files. I hope in some part, these articles might also help those who find it all a bit too confusing at first.
As I mentioned, I had been following a number of sites with interest that were working on similar frameworks or services. I had also scoured the net looking for open source code to help develop an application...I'd even found some great sites that started to talk about developing RSS reader apps (which is kinda what I wanted) but most of these sites never truly completed their projects. And it was the completion that I so desperately needed. Unless they told me what to do, I had no idea how to do it.
TapLynx is a framework that helps with the issue that I was facing. Let's start by looking (in my terms) as to what "framework" means. Well basically, it's the heart of the development work that was needed to build the iPhone app I wanted. Think of the framework library as the pre-baked information that Xcode needs, that you simply add the icing too...visual changes, design touches, RSS feeds etc...and you end up with your final product.
The TapLynx framework has been created by the makers of the NetNewsWire and NetNewsWire Premium apps, the latter of which I own and use constantly on my iPhone, as well as owning their Mac desktop client NetNewsWire. If you use either of the two iPhone applications, you'll see similarities with the app that I develop over the course of these articles as I believe that these apps were also built using the TapLynx framework.
The cool thing is, if you want to get started trying TapLynx out, you can easily download it for free and get started. Even better, until you want to publish to the iTunes app store or to your phone for testing, you can also sign up to an Apple Developer Account and download Xcode completely free, with the ability to create iPhone apps in it. So you can have a great play with both TapLynx and Xcode for free to a certain point...and you'll see a lot of this here.
Speaking of money, I need to make it clear that you won't be able to put the app on your iPhone (even to test out) until you spend money. So for the most part, the images and/or video you see in these articles will be with the free Xcode and, effectively, the demo version of TapLynx. When you're serious about proceeding, you'll then need a subscription to the iPhone Developer Scheme (which is $99 USD per year) and you'll need to purchase a license for TapLynx at $599 USD at the time of writing. Now, as you can see, it's a lot of money and that cost is only per app. Build a second application and you need to pay for a second license. But what I've learned from people looking into custom iPhone development who have emailed me asking advice, that amount of money is pretty small compared to the amount of time and coding you'd need to spend to produce what you end up with.
So, thanks to TapLynx, I was then able to start looking at the functionality that my application would have. Let's take a look at the features listed on their Features page...
The third option didn't interest me. I didn't want to sell the app or have ads on the app. The second option is pretty neat, but the first option was the one that I wanted. What is listed there on that first bullet point is pretty big...the ability to combine multiple RSS feeds in the app, including news feeds, Twitter feeds, YouTube feeds, Flickr and more. Even better, the app would pull all the items off the net and then store them...meaning you didn't always need to be connected to use the application. Brilliant!
In its simplest form, to start with I think you need 4 things....
1. Xcode - The easiest way to get this is to sign up for a free Apple Developer Account at http://developer.apple.com/products/membership.html. You're going to need to download the correct version of Xcode (it looks like there is one that isn't for iPhone developers, or at least that is what I found) so once you register, login and download the latest version of Xcode at http://developer.apple.com/technology/xcode.html. Make sure it is the one that says it is for iPhone development, as you see in the image here...
It's a fairly hefty download, but once you've downloaded it, install it on to your Mac. Unlike other applications on a Mac, Xcode and a lot of other material will get installed onto the top level of your hard drive in a folder called "Developer". I'd leave everything there rather than move it anywhere.
2. TapLynx - Go to http://www.taplynx.com/ and download the SDK from the front page. This is a disk image and from the disk image, you need to grab 3 things in my opinion....a sample app in a folder called "iPhoneApp", and the two very very important Taplynx libraries...which are just a couple of very nondescript looking files.
3. Feeds - You're going to be turning your RSS feeds from your site (or sites) into tabs on your iPhone app, so it's important to get those listed and ready. My app is going to combine both NZMac.com and NZiPhone.com feeds, so it's a good time to think about how your app might be structured and what those feeds will entail. Here's what I came up with for my tabs (the tabs are the buttons at the bottom of an iPhone app by the way), and the feeds that I intend to use. Note that in a lot of instances I am using RSS feeds passed through feedburner. This is for two main reasons...feedburner does a great job at cleaning up my feeds and I can change feed details from my sites (but within feedburner) without having to publish a new version of the iPhone app...
4. Images - The final part to get ready is the set of images that you are going to need for your application, although the sample app that TapLynx provides has some images in it. The best place to find out about what images you need is on the TapLynx support wiki page. Note that this page also lists the additional images that you'll need when submitting your application to iTunes.
One of the things that I struggled with was the Tab icons. I tried creating some, but I'm not that skilled and seemed to have trouble getting them to work properly. In the end, I turned to the net to find some great icons to use at http://blog.twg.ca/2009/09/free-iphone-toolbar-icons/ and http://glyphish.com/ (please ensure you read their licenses and attribute their work accordingly)
So you have the images you need, the feeds you are going to use, Taplynx and Xcode are installed...time to get to work. Here's a clip that shows you how to get set up for development. Note that a lot of what follows is taken from http://developer.newsgator.com/wiki/index.php?title=Creating_an_App
P.S. These articles are going to be published over the next few days. There are five in total and Part 4 and 5 will features bugs and fixes I had to make in my development process. Even in the clip above you may have noticed a mistake with the length of the app name, so you'll learn about these fixes in Part 4. I say that only in case you're chomping at the bit to get going...go for it...but there may be changes that you read about later on.