Read this before working on your first iOS app

September 4, 2022



iOS development is booming. The number of developers working on iOS apps has grown from 1 million in 2015 to 2.8 million in 2022, and isn’t showing any signs of slowing down.

I considered myself as a seasoned developer, but developing for iOS is such a radically different experience that does not share with other platforms. In this post, I would like to share a few things that I wish I knew in the beginning. I will mostly stick to the technical side of thing and leave the business side (which is equally if not more important) to another time.

The language

Swift is not your only choice

Although Swift is the official language for creating iOS applications, there are a number of cross-platform frameworks (such as Ionic, React Native, and Flutter) that you may use. These frameworks let you create a single code base for both iOS and Android devices.

You would want to pick Swift if you only develop for Apple devices or need to run native for performance reason. Swift is a beautiful language. It is intuitive and full of features a modern language should have. Since it is the path I picked, I will only write about using Swift in the rest of this article.

Learning Swift

I learned Swift from the website Hacking with Swift. If you are writing a new App, you should learn SwiftUI, Apple’s new toolkit for creating cross-device interface. (Apple devices only of course) I used 100 Days of SwiftUI to learn Swift from scratch. I did not go through all 100 days – that takes too much time. I stopped perhaps near the 50-day mark when I feel I had learned enough to write the app I wanted, and had confidence to figure out the rest along the way. You may want to go through all of them to build a solid foundation if you are a new programmer.

Don’t forget to look at timestamp when searching for solutions

Swift is constantly changing language. Most languages value backward compatibility and won’t make change to existing interface when updated. Not with Apple. On the internet, it is not uncommon to see a list of answers based on the Swift version. You should pay particular attention to the time when the information was posted. There’s a good chance that the information is already outdated.

App Store Connect

App Store Connect is Apple’s developer portal. You will need an account to publish and manage apps.

Sign up for Apple developer program

While you are learning Swift, you should start the process of enrolling in Apple’s developer program. Two options

  1. As individual developer
  2. As a company

There are a lot of apps published by individual developers in App Store. But it is a bad idea. As in any business, selling and letting people use your app creates opportunities of being sued. You should shield yourself and your family from the liability by forming a company, which is exactly what these legal entities for. Incorporating could take time and it’s better to start early.

App Store Small Business Program

New developers should take advantage of Apple’s small business program which reduces the commission fee from 30% to 15%, up to 1 million USD in earning per year. Make sure you sign up way before monetization – Apple processes the applications very slowly.

App development

XCode is the editor where you spend most of your time programming. And yes it only runs on Mac. My overall experience with XCode is positive. It is an editor I would choose even IF there are other alternatives. I especially like its tight integration with App Store Connect, Apple’s developer portal. You can build and upload your app to App Store right within XCode.

Test your codes with emulator and physical devices

XCode comes with a nice iOS emulator that you can run your code in. As a first stop, you should test your codes with at minimum two iPhone simulators, one with Home button (e.g. iPhone 6) and one without (e.g. iPhone 13).

You should always test your app with a physical device, especially when you add a new feature. It is not uncommon to see the behavior on a physical device different from that on a simulator. The easiest way to test with a physical device is to physically connect (using a cable) the device to the Mac you are running XCode on. After successful connection and some security stuff, you will see an option in XCode to run the App on your connected device, the same way you run on a simulator.

Launching the app

Test Flight

After you are happy with the build, you should archive it which will give you an option to upload to the App Store. But don’t submit the build for review yet! You should use the Test Flight App to install and test the build on physical devices. That allow you to test a build directly downloaded from App Store and test other integration with App Store such as In App Purchase. More on this later.

Submit for review

If the testing looks good, it’s time to submit your app! It is common to get rejection in first-time submission. A few important points to get app approval:

  • Read the rejection note carefully. Most of the time it clearly states the problem. (Although it’s up to you to figure out the solution.)
  • Reproduce the problem on your end. Some problems can only be created on a physical device. It can be build issues that you may not see because you are using a different iOS version or device. Inspect the build setting carefully to make sure they are correct.
  • In rare cases, the reviewer may make mistake. You can reply to the reviewer with clear instruction to demonstrate there’s no issue.

How to earn money with the App

You should think about monetization in the very beginning, not as an afterthought. The reason is that it affects how your app is built. Here are three main ways.

  1. Free app with Ads. App is free to use. Showing banner or full screen apps for monetization.

  2. Charge up front, a.k.a. paid app. User need to pay before download.

  3. In-app purchase, a.k.a. the freemium model. You let people download and use the app for free, and provide ways to unlock feature in the app for a price.

In general, you should go with either 1 or 3. Charging up front does not make sense any more in the hyper-competitive App Store. You always want to get more downloads which at least have the benefit of improving your ranking (more on this later). Another way to think about it is if you are able to convince people to pay before they use the app, you can probably convince them to pay in the app. Exactly which way makes sense is a big topic and we can talk more about it later.

Summary

So here are the high-level summary and things I learned when launching the first app. There are many things I didn’t mention for the sake of brevity. If there are enough interest, I will write more on specific steps in detail.


Try our free Markdown keyboard on iPhone!


Download in App Store