In this section I would like to briefly talk about the required tools. There are not many mandatory tools, in fact we just need macOS and Xcode, but as you will see later some tools are just invaluable and working without them will be much harder.
Xcode is an IDE for creating apps for iPhone, iPad, Mac, Apple Watch, and Apple TV. It’s an official IDE supported by Apple, but not the only one. We will always be using the latest available version, sometimes even a beta versions. Read more about Xcode here.
AppCode is also an IDE but it’s not officially supported by Apple. AppCode will help you to write code much more efficient and also provide additional tools for code refactor. Unfortunately it’s not so great with Swift as it used to be with Objective-C. Even though it’s still worth to give it a try, there is a 30 days free trial. Read more about AppCode here.
This one is a must have for UI debugging! I really like this app, it helped me so many times. Reveal lets you inspect all of yours app’s UI elements that are currently on the screen. It will even let you change constraints on the fly and see results in the simulator. Read more about Reveal here.
When we will be working with API this one will be really essential. mitmproxy is a program that lets you inspect all of the traffic that is happening on your iPhone. It will tell you what kind of data your app sends and receives so you will be sure what’s going on. mitmproxy is a console program, if you prefer to work with GUI, try Charles proxy. Read more about Mitmproxy here.
Sketch is this missing app that designers always wanted. This app is dedicated for designers to create user interface, don’t worry it’s not required for development 😊 It may help, but if you are not interested in changing UI, you don’t have to install Sketch at all. Read more about Sketch here.
Zeplin is a very small and smart app that lets you preview Sketch files and download necessary assets. But there is a catch. You need Sketch to upload files to Zeplin first. It usually works this way: designer will prepare UI in Sketch, select all necessary icons for export, and then he will export all the artboards to Zeplin. After that you need to get invitation to that project.
To use Sketch files for this project, you can just download a trial version of Sketch and export all files by yourself or just contact me, I will invite you to a project on Zeplin that already has all of the files.
Read more about Zeplin here.
Remember that even if you are the only person working on a project you should always use git or any other version control system. It will help you to manage your code and it’s a great backup. You can use git inside a terminal or try popular GUI based apps like SourceTree. Also there is a very interesting approach for using git: GitFlow. I highly recommend you to give it a try.
Liya is a lightweight GUI that can access MySQL, PostgreSQL & SQLite3 databases. It’s very helpful when you are working with CoreData. You can pick exactly what’s inside the database. Read more about Liya here.
This is a very simple app that will help you to explore application folders while developing for iOS, watchOS or tvOS. If you would like to see what’s inside cache directory or inspect database it will help you find that directory. Read more about SimSim here.
Here I would like to mention two more tools that are maybe not directly related to coding, but they are also very useful.
Even if you are not a big fan of a terminal it’s worth to install this. It will boost your productivity and maybe you will fall in love with command line 😊 Read more about oh-my-zsh here.
Is it hard for you to focus and get the job done? Have you ever tried Pomodoro Technique? This app will help you to break down work into intervals, you know what they say:
"By the yard it's hard, but inch by inch, anything is a cinch." - Brian Tracy. Read more about Tomato One here.
I hope that those tools will help you during the development. If you have any favorite tools that I didn’t mention here, feel free to share them in comments section below.
In the next step we will talk about TDD/BDD process for iOS development.