At the beginning of this year, I decided to learn a new programming language. My 2 choices were Ruby/Rails and Objective-C. Ruby is something I have been trying to get into for quite a while now and I have heard lots of good things about it. However, until you do a real commercial project, you dont’t really gain the confidence to say that I am a “Ruby developer”. The other language I’ve been trying to get into is Objective-C, because I always wanted to get into app development and wanted to build a native app for iOS without using any of the hybrid frameworks that are available these days. I actually have made some good progress in both but Objective-C wins in terms of productivity, purely because I was lucky enough to get a commercial project which I could work on. I have been working on this project for the past 6 months or so and I am happy to announce that the project is now LIVE on the App Store.
The App is called Gallery Assistant and it is an iPad only app. The target audience for this app is art galleries and artists (or anyone who has anything to do with galleries/artists etc), so it won’t be much use to you if you if you are not a customer of Managed Artwork (the company this app is built for), although you are free to download the app, login and play around using the guest account. Managed Artwork provides web-based management art gallery software tailored exclusively to the needs of fine art galleries. Over 700 fine arts professionals use their gallery software daily managing their SEO, inventory, contacts, transactions, consignments, marketing, website, iPad Sync, and more. It makes perfect sense for Managed Artwork to provide their clients with an app like this so their clients can browser/display their inventory offline at their own convenience, which is the primary motive of this app.
The Gallery Assistant is a powerful sales tool for art galleries and artists, providing you with the information that you need at the moment you need it.
The Gallery Assistant™ was built specifically for clients of Managed Artwork. You must have an established account with Managed Artwork in order for this App to work properly. This application works in conjunction with the Artwork Manager™, seamlessly syncing all active artists, bodies of work and available artwork inventory to your iPad. Once you are synced there no need for a wifi connection enabling you to take the Gallery Assistant™ everywhere you go.
Things I learned
Since, this was my first experience developing/publishing an iOS app, I’d like to highlight some of the things I learnt along the way :-
- The tools provided by Apple (Xcode IDE, Simulators, Organizer etc) are more than enough to take you through the entire process of developing, testing and publishing your app to the App Store. You don’t need any other tools unless you want to. I think, of all the IDEs I have used to date, I have liked XCode the most. It is fast, it is complete, has all the features you normally need and does not hang/crash a lot at all.
- There are numerous resources available to learn iOS development and Objective-C as a langauge. Lots of books, lots of articles etc. But if you are like me and prefer interactive/visual learning over books, I’d highly recommend Paul Hegarty’s Stanford CS193P course on iPad and iPhone Application Development. The course is available on iTunesU for free and I would go as far as saying that, without this course, I would have taken a lot longer to understand and develop this app. This course will teach you all you need and prepare you for real world application development if you watch all the lecture videos. I particularly liked the ones related to Core Data (Lecture 14), since Core Data is being used heavily in this app.
- If you are serious about iOS development, you better be damn serious about going through the iOS Human Interface Guidelines (PDF link here). You need to spend time to read and understand these guidelines as your app is most likely to be rejected by Apple App review team if you miss out on any of the guidelines in there.
- There is a vast ecosystem of iOS developers out there who are ready to help and answer your questions (if any). There are lots of open source libraries (this link on github should give you an idea) out there that are pretty reliable and production ready. And most of them are regularly maintained. It’s just good to know as a developer that there is help/code available out there if you ever get stuck.
Here are some screenshots of the app for those who are interested.
I think there is no harm in saying that, I am now officially available for iOS development work as I now have the confidence and the skills to execute such a project. Although there are lots of parts of iOS SDK that I haven’t even looked at, I would be confident in taking on any iOS project that does not involve game development.