How to start iOS Development: tips & guide for developers
In this article, I want to show you some tips on how to get started with iOS development. I've drawn from my own beginnings, but also from the experience of our team. We'll show you what iOS development entails, what you'll need to do it both technically and personally, and much more.
What does iOS development really mean?
When we think about iOS development, we think about app creation for mobile devices such as iPhone, but that's not the whole story.
At first glance, position of iOS developer does not only include the creation of applications for iPhone, but most iOS developers also create or have experience in creating applications for other operating systems in the Apple ecosystem. These include iPadOS, which is the operating system for iPad devices, watchOS for Apple Watch, the equally well-known tvOS for AppleTV, and of course macOS for Macbook / iMac devices.
Every single operating system in this Apple ecosystem has its specifics, differences, and complexity of development, but they all have something in common and that is, that they are implemented using the same programming language (Swift or Objective-C) and the same programming environment. (IDE). If you have experience of creating an application for iOS, creating, and publishing an application for iPadOS or WatchOS, it is not difficult at all. This is also because of Apple itself, which in recent years has come up with several solutions for publishing an application to multiple operating systems, without any major intervention in an existing project.
For example, Mac Catalyst, which allows you to install an application that is built for iOS to be installed on macOS. In the last 3 years, Apple has introduced another great tool, SwiftUI, which makes it easier for programmers to work with UI elements, so the programmer can easily adapt UI applications to watchOS or tvOS. It creates only one application and then you can fully run it on different devices with different OS. Majority of the code is shared, and the programmer only cares about how to display this information on the device.
Requirements for a developer may differ from the application or tool you are working on, from your position, or from the company you work for.
The basic requirement has always been to have at least a little programming experience, analytical thinking, and a desire to learn and work on yourself. But this is a general lesson not only for iOS programmers.
The first and most important thing in development that discourages programmers to start developing iOS applications is a large financial investment in equipment. Unfortunately, without an iMac or Macbook, you can't do anything, but the advantage is that if you believe in yourself and your abilities (which you should have, because you want to become a programmer), then the investment will pay off very quickly.
Another problem that may discourage you from iOS development is that you don't have a design feel, in other words, a "Feel for the User Interface". But here you need to realize that as an iOS developer, you don't just have to deal with creating screens or elements that appear on your phone and must look nice. Development also includes the creation of libraries, which subsequently assist in the development, design and implementation of various algorithms and the like. The sense of design can be learned in part, although it will never be as if you had an innate one.
Prepare for development
In the next part, we will write about what needs to be done in order to start developing in the iOS ecosystem.
Macbook (alias Mac) or iMac
As I wrote above, this investment needs to be made. But do you know the advantage of some companies like GoodRequest? The fact that you get such a device on arrival, and it is completely free.
"Well, certainly won't get a free MacBook if you are a beginner."
That's not true! If you join iOS Academy, you get your laptop on day one.
When developing applications, it is always necessary to have a development environment. This is exactly the environment with the Xcode IDE. More experienced iOS programmers will tell you that there is an alternative such as AppCode, but for starters, we definitely recommend working in the Xcode IDE. It is an environment directly optimized by Apple, it is constantly being developed and it is a tool designed directly for the development of apps for the Apple ecosystem.
After buying a new Macbook, you will say that you will definitely have another investment in your mobile phone. Yes, we also recommend that every iOS programmer have their own personal iPhone for the simple reason that there is nothing easier than working on an app and having experience with how that operating system works. How things are animated on it, how they show or just how they behave.
On the other hand, in the beginning, it will be enough for you to work on a simulator, which you can easily run with Xcode, without having to own an iPhone. The simulator emulates the behavior of a real device. Of course, this has its limits, but it is enough when creating most applications.
I'll take a look at another platform, but you may have noticed that Google switched from the Java programming language to Kotlin in the development of Android mobile applications. The same thing happened on iOS, where a few years ago the Swift programming language was introduced, which replaced the previously used Objective-C.
Swift is in itself a very modern programming language that resembles Kotlin syntactically, and therefore in writing. Of course, everyone has their own specifics, but it's nice to know that if you learn Swift, you will probably be able to read the code written in Kotlin. It goes without saying that it is open-source, so you can also take part in the development and progress of the language.
If you are hesitant to create iOS applications and would like to learn the programming language first and then invest in a "Mac", for example, there's also a way to try this programming language on Linux or some online tool, so you won't need a Mac at all. For example, just type "Swift online compiler" into Google.
But it should be mentioned that an experienced iOS programmer will certainly meet Objective-C, but in the future, it will become less frequent.
The AppStore is used to make the application successful and available to the public. AppStore is basically a trusted place where programmers upload their applications and then users can safely download them from there. Each uploaded application is then reviewed and checked by Apple; therefore, it cannot happen that there is an application that has not been verified.
For us as programmers to be able to developand run applications on real devices, it is necessary to have an AppleIDcreated, on which one personal document (Apple Developer Agreement) must beconfirmed. But it doesn't end here, and if you want to upload the applicationto the AppStore, you must pay an annual membership. This applies to bothcorporate and individual accounts.
The distribution of the application itself after creating the account is very simple and the upload of the new application can be done directly via the Xcode IDE. This is another advantage of why use Xcode. It will guide you through the entire process of uploading the application to the AppStore. Of course, there are alternative solutions, but knowing this basic process is best at the beginning. The same procedure applies to iOS, iPadOS but also the MacOS app.
On the 4th of July we are opening our iOS Academy, don't miss your opportunity!
How to become an iOS developer
As I mentioned, in the beginning, it's very important to own a macOS device, then have the Xcode IDE installed, and you can start developing. If you start programming on iOS yourself and you don't have anyone around you, we definitely recommend the following sources of information, from which we also drew.
Courses & Video Lectures
Surely most know the Udemy, and if not, then it is necessary to know it. It is a website where you will find courses of various kinds, including the development of iOS apps. Our top course includes iOS & Swift - The Complete iOS App Development.
Standford lectures and the equally well-known Paul Hegarty were an integral part of our beginnings. He has been working on SwiftUI for the last two years.
If you also want to get acquainted with UIKit, here is the iOS 11 course from him.
But we definitely recommend looking at the following:
Books and Blogs
From personal experience, the best thing we have done to improve and learn the Swift programming language is to read book "The Swift Programming Language (Swift 5.5)", definitely, a must-have for everyone:
For more advanced, we also recommend the following:
- Modern Concurrency in Swift By Marin Todorov
- Combine: Asynchronous Programming with Swift By Florent Pillet, Shai Mishali, Scott Gardner and Marin Todorov
There are also many well-known blogs in the iOS community, including:
- SwiftLee - A weekly blog about Swift, iOS and Xcode Tips and Tricks
- Swift by Sundell - Articles, podcasts and news about Swift development, by John Sundell.
- Sarunw - A weekly blog about iOS development
- Sean Allen
If you are new to iOS in addition to other jobs or responsibilities, we recommend this tutorial. For 100 days, a challenge will be waiting for you every day, and the result will be that you learn the basics.
Other practical links
Quite a practical explanation at the vulgar addresses 🙂
- How Do I Declare a Closure in Swift?
- How Do I Write Multiple Trailing Closures in Swift?
- How Do I Write If Case Let in Swift?
- Fucking SwiftUI - Cheat Sheet
- Why The Failure, Auto Layout?
And others we use in development:
- NSDateFormatter.com - Date formats validation
- App.quicktype.io - Quick creation of Swift Model structures from JSON
- Screensizes.app - Everything you need to know about equipment parameters in one place
SwiftUI or UIKit?
This is a question that every iOS developer asks whether he is a complete beginner or an experienced iOS programmer. At GoodRequest, we will address this topic in more detail in future articles. But our recommendations are to start with UIKit. Why? More advanced UI elements are not yet directly included in SwiftUI, so you will have to program the element in UIKit and then link it to SwiftUI. The simplest example is the SearchBar in the application navigation. Although SwiftUI for iOS 15 contains a simple solution for adding it to the navigation, our applications must be backward compatible with iOS 13 or iOS 14. Therefore, it is necessary to create or configure an element in UIKit and then connect it to SwiftUI. We could also compare it to the situation when it came to iOS Swift as a programming language. Although it has been here for more than 5 years, you will still encounter a project where things are written in Objective-C. It will be the same with UIKit and SwiftUI.
Everyone who draws info from a community should bring something to that community. That is why, within GoodRequest, we also focused on educating iOS beginners. We have prepared an internal course for them, where we focus on the basics of creating iOS applications. It's a great opportunity if you're hesitant to go or not. Every iOS Academy participant will receive a "Mac" from us, which they can develop on, so they don't have to worry about investing a lot in the beginning.
We are currently in the third round of the iOS Academy in one year, so don't hesitate and if you are considering starting development or know someone like that, I definitely recommend you to follow us on Facebook or LinkedIn.
Tips & Tricks
In addition to the iOS Academy, we also try to contribute to the community by writing articles and instructions. For starters, we recommend reading our Medium series.
We also prepared for you list of our most used shortcuts on the Xcode IDE, I recommend this article:
For more experienced programmers, we also bring a series of articles on how to prepare a template that streamlines project creation and accelerates its subsequent development.
Of course, it also prepares new and more interesting articles about our approach to iOS navigation, working with localization, architecture and design patterns, and many other interesting topics that you can look forward to. If you want to be regularly informed about our news. We recommend subscribing to our newsletter.
Being an iOS developer, like Android or a Web developer, has certain advantages and disadvantages. Each platform and programming language has its specifics and pros and cons. But the important thing is that becoming an iOS developer is as challenging as becoming any other developer. It's all about setting up your mind, what you want to accomplish, and what passion you have for a given technology. If iOS attracts you, you definitely need to try it. If you find that this is not for you, you have certainly not made a mistake, no one will take your knowledge and perspective from you. We keep our fingers crossed and wish you a lot of strength. If you have any questions, do not hesitate to write to us.