iOS App Development - Key Learnings

Thursday, December 31, 2015

As 2015 unwinds, it’s time to reflect upon on a key learning that kept me busy during my spare time - iOS App development.

It started during summer 2014 when I took the iOS game development course during my part time Masters in CMU. Developed a Cricket game during that course in Objective-C, then Apple introduced Swift Programming which increased my curiosity to learn more about app development through a simple - yet powerful language. Let me share some key learnings from my experience developing an app. Hopefully this will inspire you to develop an app in 2016.

1. The way you think about programming will change - This to me is a key learning when I coded in Swift. The mistakes I did were mostly due to the assumptions made from my experience working with a general purpose programming language like Python, Java and applying it to a language like Swift. The thing is you need to think asynchronously when you get into something like Swift as compared to sequential execution of code in a general purpose programming language (of course they do have threads, but not implicit). Knowing this early would give a good foundation to app development. For example, do research about how closures work in Swift when you get into it.


2. App development requires a lot of imagination - This is one reason you should consider developing an app. The kind of games my fellow class students presented during the end of that course was simply mind boggling and that’s the time I observed it’s all about creativity and imagination that leads to powerful apps with an appealing User Interface, be it 2D or 3D.


3. It’s Fun
- it really is, during the initial phases of my learning, I was venturing into a totally different territory, going through different gaming libraries and how the front end gets hooked up to classes that control them. Once I got a hold of it, it simply empowered me to believe that anything I could scribble on a paper, say a game or an idea could easily be translated into an app with the kind of tools and libraries that support app development these days. Knowing this fact is the key reason for my persistence with app development, which is why it’s fun.


4. Release and Testing Process
- Releasing early and releasing frequently should be the motto of an app developer. The testing process for an app is also an important learning experience. My teaching faculty recommended that you give your app to someone, observe the way he/she uses the app while you keep quite and take notes, never interrupting them unless they have any questions or need your help. Believe it or not, doing that exercise uncovered a lot of surprises and nullified my assumptions about how a novice user would use my app. The discovery from that exercise helped improve my course app by leaps and bounds. So Release Early, Frequently and discover more about the usage of your app through testing with novice users.


Hope you got some idea about app development. If you had plans to learn and develop an app in your TODO list and 2015 is not the year you got started, get going in 2016. Who knows your app could be the next big thing.

References:

1. https://www.udemy.com/the-complete-ios-9-developer-course/ - One of the best learning investments I made, especially knowing how to develop a clone of famous apps like Instagram, Snapchat.

2. https://www.makeschool.com - The folks who taught this course, start with the free stuff there and think about taking it further.

3. Apple Swift Programming Reference - a complete reference for Swift.

4. http://www.spritebuilder.com - Mainly to support game development, should make game development easier.

Good luck on your app and Happy New Year 2016.


Copyright © 2016 Prasanna Seshadri, www.prasannatech.net, All Rights Reserved.
No part of the content or this site may be reproduced without prior written permission of the author.