It can be good to be an iOS app developer, but not easy to be a great one (we’ll talk about that later in this article). There are many opportunities for app programmers looking to work as employees for companies. There are plenty of opportunities for developers who prefer freelancing. It’s frustrating, trying to come up with novel apps that generate any significant revenue, when it seems that every idea under the sun has already been turned into an app by “someone else.” Apple continues to push out buggy versions of iOS, the iOS SDK, and Xcode — especially in early versions of new products. Yet most of us would agree that Apple’s hardware and software, even their development tools, continue to be elegant and cutting edge. It’s hard to argue with the bottom line as “Apple App Store developers raked in $20 billion in 2016, up 40% year over year,” according to an article from CNBC:
Apple (AAPL) reported Thursday that developers raked in $20 billion on its App Store in 2016, a 40 percent jump since 2015. …
“2016 was an amazingly great year for the App Store,” Philip Schiller, Apple’s senior vice president of worldwide marketing, told CNBC. “We continue to advance what is available for developers to create. And our catalog of apps grew 20 percent to 2.2 million.” …
The tech giant said its biggest day of sales on the App Store was on Jan. 1, 2017, when customers spent a record $240 million. The top grossing markets included the U.S, U.K., Japan and China, which saw 90 percent year-over-year growth. …
According to App Annie, which provides market data for the app economy, Google Play’s worldwide downloads were 115 percent higher than Apple’s App Store downloads in the third quarter, which is the latest data available.
However, Apple maintained its advantage in revenue. In the third quarter, App Store revenue was 100 percent higher than Google Play’s.
I often am asked by entry-level app developers for advice on how to get started in iOS app development. One young programmer recently asked me what it takes to be a great app developer. I have no magic pills, but after years of successful software development, I can offer some good tips.
The best way to get started and thrive in software development is to learn by doing — and be willing to work hard, spending some time studying even if you already have a full-time position. It did help me to have a formal education in computer science, as learning the fundamental principles of software engineering is indispensable for developing production applications. With the growth of online “informal” training sites, knowledge bases, and forums (e.g., Stack Overflow), people can get the prerequisite knowledge about basic software development principles without relying solely on formal educational institutions.
There’s great value in the massive amount of collective intelligence, forming a sort of worldwide neural network, which has been aggregated on the Internet. Yes, there are bad answers to good questions out there, but with so many people involved, social Darwinian selection often leads to the bad answers being corrected by smart players/observers.
I first got up to speed on iOS programming using Ray Wenderlich’s “iOS by Tutorials” series of products. He and his staff produce well-written and logically organized do-it-yourself tutorials that had me writing code from the get-go — learning the hard way (which is often the best way). Their tutorials include complete projects in Objective-C and now mostly Swift. The accompanying written materials walked me through building working apps from start to finish. As Wenderlich’s company and website evolved, they added video versions of tutorials which can often express concepts more succinctly than solely written guides. I credit Wenderlich with helping me publish my first app. I also started getting audio/visual iOS training through Udemy and have found some of their instructors and classes to be very illuminating.
Don’t get consumed by technical niches and perfectionism. Design and develop a real iOS app and submit it to the App Store as soon as possible. Having knowledge of the whole app development life cycle, not just writing code, but learning about things like the app submission and review process — even marketing an app — is an essential skill set. You can start becoming the a great app developer by nurturing complex problem solving and trouble-shooting skills. Being able to solve seemingly intractable problems using hard-earned instincts will make you the best of the best. The only way to become a good developer is to continually practice and learn.
One way to practice and cultivate good problem solving skills is to sign up (for free) at a site like Hackerrank. The good people there have set up a site with thousands of coding/algorithm challenges in sorting, searching, graph theory, dynamic programming, bit manipulation, recursion, complexity (i.e., NP-complete), mathematics, SQL, data structures, etc. They’ve written an elaborate virtual environment that allows you to solve challenges in almost any language (C++, Java, Swift, Perl, PHP, Ruby, R — you name it, they’ve got it). Hackerrank has virtual compilers or interpreters for all these languages, so you can continually check your work. When you finally get an algorithm working, their site runs your code against a robust set of input values — and then times the execution of your programs, grading you on how efficient your code runs. They encourage you to remember that optimization is an important part of development.
So work hard, keep learning, stay up to date on the latest meaningful trends, and practice, practice, practice, practice. You’ll become a better programmer… And you might develop the next blockbuster app — or at least earn a decent living.