The basic tools of iOS app development

This post is going to be part of a series I'm starting called "iOS development tech and tools explained".

One thing that I realized as I talked to nontechnical founders is that they don't know what the tools of the trades are. It's then tough for them to have a productive conversation with their developer because they quickly get lost in jargon. 
So the goal of this series is to give you a high-level view of technology you'll be working with when you create an iOS app.

Today, I'm going to start with the developer tools and cover the three most used tools. Those are the apps provided by Apple that a developer will use throughout the creation of an iPhone app.

xcode-2015.png

Xcode

This is the big one, it is the app in which your developer will write all the code for your application. It provides a lot of features to help your developer. 
It includes:
- an interface editor (used to be referred to as Interface Builder)
- a debugger (something to inspect the internal state of your application as it run to see exactly what the application is doing and identify the root cause of a bug)
- tools to send your application to the AppStore
- a version control tool: to keep track of all the changes which have been made to the application over time.
- and much more, but you'd get bored with the rest

 

ios-simulator-icon-b0e5413bbfafce4cb73924fe6e92d2c9.png

iOS Simulator

This is where your developer will run the app on their computer. The simulator can behave just like any past iPhones running any version of iOS. This is a great tool to test your application without having to buy a whole slew of devices. It has limitation though and for certain technology cannot be used (ARKit apps, apps using the camera, BLE applications)

instruments_app_icon_2x.png

Instruments

Another staple in the developer tools. This is the application that your developer will use to track down performance issue. If your app runs slow, and you don't know why. Ask your developer to fire up Instruments and you'll quickly find out why. If your app needs to optimize battery usage for some reason, you'll also use this tool.
For the Fluke app, for example, we were having performance issues. When the main screen was scrolled, the scrolling would be choppy. I fired up this tool and quickly identify a bad architecture decision that was slowing down the display. And when fixing bug half the battle is finding the root cause.