According to Statista, the App Store had over 2.2 million iOS apps available for download as of March 2017 and these number are still growing. Also the demand for apps and experienced iOS application developers is only going to grow in the future.
If you want to develop iOS app the only tool required is Xcode. You will find all the required modules in it. The other tool required for distribution is AppStore Connect. All the other tools are optional, but may safe you a lot of time and headaches.
Here are the tools required to be used for iOS application development and also other great tools, that will help you with debugging, profiling or just speeding up your development process.
Table of Contents
- Xcode (Required)
- AppStore Connect (Required)
- Package Manager
- Xcode Cloud
- iOS Elements
As the official integrated development environment (IDE) for all iOS applications, Xcode always seems to top the list of preferred tools for developers. You can also use AppCode as substitute, but more people prefer Xcode over AppCode.
In Xcode you have all the tools required to create a iOS app. If it's your first application you may find useful also the article how to create ios app step by step.
Tools you will for sure use are:
When you want to run your app you have basically two options. Real device as is iPhone or iPad or simulator. Running app on real device is much more convenient and it also safes your computer resources, but in some cases, as is debugging for different screen sizes or for different iOS version, simulator is the way to go. You can find more about simulator and how to use it here in documentation.
When you want to distribute the app you have to bundle it. For this purpose there is archiver. You just simply select general target and click Product -> Archive. This will create distributable .ipa file, which you can side load (not recommended) or distribute through the App Store Connect.
Here is whole documentation for Xcode.
When you are done with the development and you want to distribute your app, the best way to do it is through the AppStore Connect. The standard way for most use cases. You can also use Business Manager, but that is more suitable for enterprise grade apps. You can compare these two methods here.
To be able to distribute the apps through the AppStore Connect you need to get yourself developer account. This costs around $99/year. This may seem as a lot of money, but the service provided is actually pretty good.
Tool you may find also useful and which is part of the AppStore connect is TestFlight. This is the place where you can add testers to test your app before releasing it to the App Store.
Swift Packages Manager
Swift packages are reusable components of Swift, Objective-C, Objective-C++, C, or C++ code that you can use in your project. They bundle source files, binaries, and resources in a way that you can easily import to your app’s project.
Xcode supports creating and publishing Swift packages, as well as adding, removing, and managing package dependencies. Its support for Swift packages is built on top of the open source Swift Package Manager project.
To search for particular packages you can use Swift Package Index.
Swift Packages are successor of CocoaPods project, which is still maintained and you can also find here some great libraries to be used in your project.
You can use the XCTest framework to write unit tests for your Xcode projects that integrate seamlessly with Xcode's testing workflow.
Tests assert that certain conditions are satisfied during code execution, and record test failures (with optional messages) if those conditions aren’t satisfied. Tests can also measure the performance of blocks of code to check for performance regressions, and can interact with an application's UI to validate user interaction flows.
Instruments allows you to monitor the performance of all you app. Handy dashboards let you keep track of your stats and metrics, including CPU and disk usage, memory usage, frames per second, bandwidth, and more.
As this is more advanced tool, I highly recommend the Apple WWDC video Getting Started with Instruments to get better understanding.
(image taken from apple blog)
Xcode Cloud is continuous integration and continuous delivery (CI/CD) service, build into Xcode. As a Apple developer you can use it to accelerate you development and delivery and also to increase the quality and consistency of your releases. It can help you build apps, run automated tests in parallel, deliver apps to testes and also manage feedback.You can read more about Xcode Cloud in the article About Continuous Integration and Delivery with Xcode Cloud.
iOS Elements is Xcode starter project made to speed up your development flow. It contains all the blocks needed to create quality app fast and also to customize it freely. By using code created by experience developers you can get valuable know-how and also get your project working seamless.
Use EDUELEMENTS discount code to get iOS Elements for $29.70 (70% off)
There are literally hundreds of other useful tools available for iOS development. Each developer has their own personal preference for what tools and environments they work with. The Official Apple tools are the way how to play it safe, but for some use cases other third party tools may speed up your process.
As the demand for iOS applications continues to grow, the pool of platforms and solutions that help save developers time while helping to produce higher quality apps will continue to increase as well.
If you mean it serious with creating an iOS app. You will need a lot of determination. Here are some great free & paid resources to learn how to develop an iOS apps.