Just ask anyone who owns an iPhone: You will learn that it is humankind’s greatest invention, better than fire, the wheel, agriculture and espresso combined. And it’s the only item on the planet worthy of camping out for—for days on end—to get the latest version.
With that fact-check-proof statement out of the way, let’s get down to business.
Suppose, for the sake of supposing, you have an idea for a mobile app. An app so stupendously fabulous that it will take the iPhone world by storm, rivaling the iPhone itself in its cool factor, and make you, personally, so obscenely wealthy that you could buy a new $999 iPhone 8 for literally everyone on your contact list, and two for your mom.
Where do you start?
(In this discussion, we’ll assume you want this app to be available for iOS only, because it’s simply too awesome for any other platform.)
First, of course, you need to fully scope out the functionality of this superfantabulous app: what it will do, how users will interact with it and what features of the iOS hardware platform it will exploit. Oh, and the revenue model (direct sales, in-app purchases, in-app ads, “freemium” model, …), which will drive some of the design decisions. Some sketches of the user interface would be helpful, too.
Then, or preferably even before you’ve finished the first step, if you aren’t an accomplished iOS developer yourself or have such a beast on staff, you need to find one. (At AndPlus, by the way, we have whole teams of them. Just saying.)
In order to communicate effectively with your developer, it helps to understand some key iOS development concepts:
- Model-View-Controller paradigm. The MVC paradigm is the foundation of every iOS app. It separates the app into three distinct areas: the model, or data objects; the view, or user interface; and the controller, which dictates the app’s behavior and guides the flow of data between the model and the view. Keeping these three areas separate simplifies the code design and makes it easier to maintain and enhance.
- Frameworks. These are the nuts and bolts that implement each module in the MVS paradigm. You will hear terms such as “Foundation framework” (used to build the model) and “Cocoa Touch Foundation” (used to build the controller).
- Events. We’re not talking weddings and reunions. These are things that trigger the app to do something. Typically an event is a user action of some kind, although there are other types of events, such as an incoming message.
- Language. Apps for iOS are developed in one of two languages: Objective-C and Swift. Objective-C was the original iOS programming language; Swift was introduced in 2014.
Objective-C vs. Swift
That last point bears some unpacking. Although Swift is not specifically designed as a replacement for Objective-C, and both are officially supported in the iOS ecosystem, choosing one or the other, or a mixture, can have implications, both now and down the road.
Swift has a number of advantages over Objective-C. The syntax is simpler, less code is required to accomplish the same things, the code runs faster, it’s more secure and memory management is better.
However, if you have a large project or you’re on a tight deadline, you might consider going all Objective-C. Developers working with iOS generally have more experience with the older language and are more comfortable with it. Switching from Objective-C to Swift, for a developer, is similar to switching from C++ to Visual Basic—not impossible, but there are some significant syntax differences that can introduce a bit of a learning curve for an experienced Objective-C developer. Generally speaking, you don’t want a developer to use your project to learn a new programming language.
The Objective-C-only approach can introduce some risks later on, however. Although Swift is 100 percent compatible with Objective-C, over time it will probably eclipse the older language as more developers become accustomed to it. This will make ongoing maintenance of code in Objective-C more difficult, because fewer developers will be familiar with it.
(At AndPlus, we’re quite comfortable in both languages. Just saying.)
The Cool Factor
Part of the iPhone’s success is a self-fulfilling prophecy: It’s cool because people think it’s cool. And as long as Apple sticks to its core principles in intuitive interface design, sleek look-and-feel and ease of use, it will continue to be popular in the marketplace. The evolution from Objective-C to Swift shows that Apple is committed to maintaining its reputation as the coolest smartphone maker in the world.
And that should fit in perfectly with your great app idea. So now that you know how to start, get going!