iOS

What is iOS?

Developing apps for Apple's mobile platform

iOS is a mobile operating system used on iPhones, thus the second most popular mobile OS following Android. It is a very popular platform to build and develop apps. iPhone applications are written in Objective C or Swift, but Swift is more intuitive for beginners; and like its name, Swift is designed to be swift. You can learn more about Swift programming with the official documentation here.

Xcode is the official development tool designed by Apple. As Xcode is only a Mac App, it requires developers to possess a macOS-running machine. You will also need a developer account by enrolling your Apple ID in the Apple Developer Program here or at developer.apple.com/. You can download Xcode from the App Store, create a new Xcode project, choose from the preset application modules, and take time to explore the File Navigator, Code Editor, Interface Builder, Inspector Panel, and more. Apple has developed a great Xcode documentation guide if you encounter any problem during your development.

Planning

The first step of app development is to determine the presentation, data collected, and user interaction of the app. A common practice is design wireframe/mockups on the app either on paper or with applications (Great for collaboration). Though they might seem repetitive, app mockups provide a great visual aid to focus on improving user experience without distractions from complex logic. Some popular applications include Figma (Free web version) and Adobe Software (XD or Illustrator on paid plans).

Development

Xcode utilizes the Model, View, Control (MVC) framework to separate data (Model), user interface (View), and application logic (Controller). The model layer contains all your app’s data including network code, parsing code, helpers, constants, etc. The view layer contains all the graphic components, and the controller layer controls all the logic that updates between the model and the view. SwiftUI, since Xcode 11, allows users to build declarative UI. Compared to UIKit, an imperative user interface builder where you have to implement every action, SwiftUI handles under-the-hood implementation from your declaration in the swift code. Watch this WWDC video to compare imperative and declarative UI.

Test

With the free developer’s account, you can build and run the app on your iOS device. If you signed up for the paid developer plan, you can use TestFlight to push your latest development for over-the-air installation and testing. If you want your app to interface with different operating systems (Android and iOS), you don’t have to start from scratch. There are a variety of third-party SDKs for native app development. Flutter is one of the most popular platforms developed by Google that you can deploy to Xcode and Android Studio. Take a look at the documentation here.

Resources