Finally its done! I have developed my first app and published it on App Store. It’s been four months since I started on my many online courses(udemy and stackskills) i signed up previously but not touching them.(Seems to be an issue with me to click Buy! on promotion 90% off courses limited time only…ch-ching$$ udemy stackskills). It has always been one of my hobby to write codes to make life better for myself and others.(check out some of the things i have done in my blog). I was never a programmer by profession although i did studied programming during my school days, i was too playful during school days to be serious about it(not sure how i passed those programming subjects).

I have learnt a lot during the course of these four months and would like to share(or vent depends on how you want to interpret it) it with you. My app, Calc Classic, is a basic calculator app which do the four common operations of math with some delicate touches of enhancing the experience without losing its simplicity. But even something so basic posted a lot of challenges to me to help me grow as an independent app developer.

It would be impossible for me to tell everything in a single blog post (TLDR yawn..!). So I try to cut short on my long windedness(pardon me, the man in his mid-thirties)

My Skill Level

As I have mentioned earlier, I do have some programming background from my school days(with borderline passes) and is doing some small utilities coding to help make my life and others better, codes for these small utilities are googled out, analysed, brain cracked then piece together and modified to suit my needs, i think i am slightly better than a power user. I am a Windows User who did not touch a Mac other than in a Apple Store before until now. So I would say I am at the one of the lower level points where you will want to learn to be an app developer for iOS.

How I learnt iOS App development To learn iOS App development, the thing to learn will be either Swift Language or Objective-C. I took the Swift route because Objective-C is really too difficult for me, i cannot get over the syntax they use which seems better to confuse me than convince me! If you are at my skill level, i think you will probably prefer Swift to Objective-C as well.

I took up three online courses in order to master the basics of iOS programming. Udemy courses The Complete iOS 11 & Swift Developer Course - Build 20 Apps by Rob Percival, iOS 11 & Swift 4 - The Complete iOS App Development Bootcamp by Angela Yu from London App Brewery and Stackskill course iOS 10 & Swift 3 - Complete Developer Course by Aaron Caines. I started off with Rob Percival because it was the first that alerted me with a 90% discount in price from Udemy. Then course from Stackskill by Aaron Caines which i think i got it via a Stacksocial Learn to Code Bundle and finally Angela’s.

Going through the courses, i realised the best course to start off is actually Angela’s because of her thorough explanation of concepts with pictures and illustrations before moving on to Aaron’s and Rob’s courses which are more creating real app examples which helps to improve upon foundation. Too bad the 90% discount alert for Angela’s course came much later for me so i ended up with a lot more question marks while going through Rob’s and Aaron’s course. Reading books, looking at Apple’s documentation are out of me, as i tend to understand moving things better. Stackoverflow? The way questions are answered, most of them I still cannot understand(even now after I have an app in app store. I am that bad!)

Start off with small step

My mind is filled with a lot of ideas that I want to implement in my app but one thing i find very meaningful during my onlines course is to create a MVP - Minimum Viable Product. My app would probably be another year from completion if i have not set out my heart to release what i have that is working because after writing one part of the app, i would have think of something to add on. Also an MVP means you can get feedback from people about how your product is and how it can be better. This will mean better reception over it rather than relying on your ego-driven self-perception of what is it that everyone wants.

Another advantage of starting off with a small step is with regards to submit your app to iTunes Connect for review to determine if it can be fit for App Store. Imagine you are going to submit an app for the first time and have went through painstaking hours to create it with some much features that you expect it to be the iTunes App Store Top 10 for the next 10 years , only for it to be rejected in the review process. That will mean you will have to go through a lot of effort of rectifying what is wrong which might be huge because your first submission is huge. Keep it as a smaller release for better management.(Mine got accepted on first attempt because it is quite small :v:). Just don’t go submit an app that just say Hello World!, it will be rejected.

Remember:

A journey of a thousand miles begins with a single step. - Lao Tzu

Take feedback constructively It took me 3 months before I got something I felt worthy to show to others. And of course, the first you wanna show would be those closest to you. For me, its my wife. And after playing with it for 1 min, she did a calculation and asked me why 2 + 1 X 3 = 9 (calculation done in sequential order) but not 5 (calculation done in arithemetic order multiplication and division before addition and subtraction). That put me off and started ranting at her(sorry wifey) as to why she would think this way after I put in so much effort to create this. She told me that is her perception of how a calculator will behave. Thinking through what she said, I redesign my calculator to have it in arithmetic order and in the process added something I called focused calculation so people will know which calculation result is shown (eg 1 + 2 X 5 X will show result 10 and 2 X 5 X will be highlighted). If I have just brushed off my wife’s remarks as simply to put down my efforts, i would not have the chance to improve on my Calc Classic App and it would look exactly like every basic calculator out there.

So same goes to everyone to take feedback positively no matter how negative they are (granted that there will always be a small minority of people who will be unhappy with everything) because

Your most unhappy customers are your greatest source of learning. - Bill Gates

Enjoy the experience

Just to add a disclaimer to everyone, this post is not about someone who have created an App and have made tons of money(don’t think my app will achieve that, you will probably need to scroll a lot of times down to find my app in App Store) but about someone who truly enjoy the experience of going through from Zero to create an App. I believe most independant app developer will want to think that they will be able to earn a lot of money or get a lot of downloads from their apps because there are people who achieved it(just go google for it, there will be many posts about people making lots of money from an app). Sadly that will never be the case most of the times, so if you are unable to do it don’t get disillusioned and wanna give up. You must understand that

For every Mark Zuckerberg, Larry Page, Steve Jobs that are being highlighted for being overwhelming successful, there will tens of thousand of other people named Mark, Larry and Steve who people don’t know because no one tells us their story - Me

So if you cannot get tons of downloads for your app, you are not a failure, you are a majority. Instead enjoy the experience and good things do come to people who enjoy and persist with what they are doing.

Final Thoughts

Thanks for taking time to read about my experience(cough…cough…ranting). My simple and basic calculator app is available on App Store. Do take a look at it and give any feedback on how I can improve it (The design is abit plain but it seems to be able to get my son’s attention to fiddle with it every now and then). My code are also available on GitHub. You are welcome to take a look and improve on it.