- How to Become an iOS Developer, Bob
- Originally written by Bob Lee
- The Nuggets translation Project
- Translator: thanksdanny
- Proofreader: Zhouzihanntu, Xuxiaokang
IOS development is not easy, but don’t be afraid to go for it.
But this is not my desktop
The driven
I get emails and personal messages like this all the time,
“Bob, how do I become a cool developer?”
“Bob, I want to change careers. I love your articles and videos. How do I become an iOS developer?”
“Bob, I don’t know how to start. And I’ve never written code before. Can you help me?”
Okay, I know. But I will be honest. I try to answer these general questions. I call these questions “What’s the weather like today?” . These (questions) make no sense. It just shows a lack of preparation. I find myself repeating myself.
If I were one of my closest friends and asked, I would probably hate them,
“Dude, did you oogle yourself? If you have, keep googling.” – I
That said, I realize I can share a few small insights with this article. This way, when someone asks me a similar question, I can just say, “read my article first and ask me if you have any more questions :)”.
Disclaimer: this article is just my personal opinion, there may be some mistakes, because I sometimes have some bias. I can only share a few experiences with Swift, which is my first programming language. Believe it or not
I’ve been there, too. When I first learned iOS, I could only imagine it was like a behemoth. I bought some online courses and some books – “Let you make 18 apps and be the only course for paid iOS developers!” – I was hooked! This is awesome!
Before I knew nothing about super! ,? “, “as”, “if let”, I became a programming ape, writing code like a zombie. If you’re at this stage, learn Swift first, although it doesn’t have much to do with iOS. But it’s laying the foundation for later learning. In the same way, before you can write a book, you must learn grammar and the alphabet. Believe me, you can get this book published if you insist!
If you’re not familiar with the concepts in Swift, look at the red flags on the left side of Xcode. Make sure you understand,
delegate
extension
Protocol
optionals
super
generics
type casting
error handling
enum
closures
completion handlers
property observer
override
class vs struct
Don’t worry, I’ve summed up all the essentials of being an iOS developer here.
resources
All tutorials are available in the Personal Journey Note
If you haven’t mastered object-oriented programming, don’t try to learn functional programming, protocol oriented programming.
It really depends on how familiar you are with the core concepts of Swift, especially if you are learning the iOS ecosystem.
You don’t need to know everything in iOS. In fact, the amount of knowledge is too great. It’s hard enough to learn so many classes and frameworks, and they’re not open source, so we developers don’t really know the implementation details.
So, I compare iOS development to operating a microwave oven. All you have to do is read the manual, but read the manual only if you can understand the meaning of the words and discover the unique mode of operation.
For example, when you go to heat it up, you press a few buttons and the dial starts to spin, and a yellow light starts to shine on the wall of the stove. That’s the way it works, because apple engineers have designed it to work. But as an iOS developer, it’s your job to figure out why they’re doing it. For another example, I ask, “How does this spinning plate heat the food?” . Like this, you don’t really need to know the ins and outs of electromagnetism, although it does help.
To finish with a couple more examples, I’ll ask, why did the Apple engineers implement the Delegate pattern and MVC? Learn to discover their motivations. If you get results from Google, stick with it!
3. Work with apis and documentation
API documentation becomes easier to read once you are familiar with concepts like delegate and protocol. Most guides, such as the Bundle Programming Guide, are written in Objective-C.
Don’t worry, you can easily switch from Objective-C to Swift. Check it out here.
I often say that learning an API is like learning how to drive a variety of vehicles. For example, UITableView versus UICollectionView is like driving a bike versus a motorcycle. Using NSURLSession to upload and download data feels like driving a BMW. Creating an open source project is like flying a big plane.
In fact, all types of transportation follow a common basic function/mode. For example, we operate with handlebars and brakes, engines that bring power and gasoline.
Finding those similar patterns is hard, but well worth the time. The more difficult the task, the greater the sense of accomplishment you will feel when you complete it. For example, people are desperate to climb Mount Everest despite the threat of death. When the score is 5-0, people leave the game disappointed, just when you come back. There are already too many familiar patterns and answers you know – Google, learn, apply, cycle after cycle.
Don’t use open source projects unless you have the ability to implement the same functionality yourself
IOS developers rely on open source projects to implement the web, animation, and UI. However, beginners usually download these libraries directly to use them. It makes everything so easy that they can’t learn anything.
That’s the problem. Imagine that you only need to do a very simple task and you need to import a huge library. It’s like opening a tiny bottle of soda with a sharp Swiss Army knife. There’s no need to be overqualified. But when you have to add this library, your project becomes bloated.
If you don’t know how to make these features and effects, study them. This is the spirit of “open source”, download their code and start dissecting it, and if necessary, copy it “aboveboard”.
To do this successfully, you must understand Access Control and have a deep understanding of object-oriented programming.
Don’t get me wrong, I use these open source libraries a lot, but I use them because I know how to implement them without them. More importantly, using these open source libraries saves me a lot of time to do what I want to do.
I like to open my hands when I ride my bike. I really enjoy it. Once the critical moment, I can quickly grasp the handle to control the direction. If I didn’t know how to ride a bike, this would all be ridiculous.
5. Protocol-oriented thinking
Assuming you are already familiar with OOP (Object-oriented programming), I recommend that you consider using POP (protocol Oriented programming) to design a feature in the first place. I’ve written a few guidelines here to show you how cool POP (protocol oriented programming) can be. You can start learning in Part 1 and Part 2.
We need to know the difference between ViewDidLoad, ViewWillAppear, ViewDidDisappear. Also understand why we use ViewWillAppear instead of ViewDidLoad for network logic.
Learn what UIApplicataion does and why AppDelegate exists at all. I’ve uploaded a video about it on YouTube.
On the App lifecycle (YouTube)
7. Don’t worry about the server.
If you’re still struggling with Swift and iOS, don’t worry about designing a server and database. Just use Firebase, which is a server backend that allows you to store data in less than ten lines of code.
If your app is very popular, has grown to 100 million users, you can hire a developer to do the background. An old guard once said that if you try to catch two rabbits with your colleagues, you will end up catching neither. Of course, if you think you’ve learned enough about the iOS ecosystem, it’s time to move on to other areas.
I often say that learning an API is like memorizing words. In college I had to learn thousands of words for exams. Of course, even though I’ve forgotten all about it now, I’m pretty confident about how well I learned.
Some people don’t know where to take notes. You don’t need a special website, just look at it first. You can share them on Medium, or upload your notes on GitHub. Make a Youtube video, even if it’s private, and practice on your computer.
This is not just a place where you store information, but also a place where others can search for your articles and help others with the same problem. I believe what goes around comes around, not to mention building your personal brand and expanding your market.
I’m sure you’d like to know how I started blogging
What I’ve Learned in 10 Weeks of blogging (LinkedIn)
9. How to ask for help
There’s a blogger on Facebook who runs a page called iOS Developers and has nearly 30,000 followers. I’ve found that there are a lot of related soft skills that I believe will be of great help to the questioner.
As a frequent questioner and questioner, I would like to share with you some of my ways of asking questions and some effective methods.
First OF all, I’m not going to say my problem right away, I’m going to write a few sentences about who I am and how I found him. Then I started to list all the answers or solutions I could find. So I don’t ask questions that don’t matter. I’ll give you a hint. If I really want my problems to be completely answered, I’ll inspire others by showing that I’m happy to share solutions when they come up.
But before you ask, do at least 10 pages of Google research. You’ll be surprised at what you can find by searching this question.
Usually, we look to the great gods for guidance and help. However, when faced with a problem, it is ok to try to avoid it, because then you will find that it is not the best solution.
Learning is on your own. If you rely on tutorials all the time, you will lose your ability to fish. I mean, while it’s fine for you to continue with my tutorials, if you want to be a sustainable iOS developer, you should learn to document what you’ve learned yourself. Try reading the API guidelines provided by Apple and try to challenge yourself. Sometimes you just need to constantly read documents to beat yourself up to improve.
In fact, I’ve been able to read Swift’s official documentation cover to cover more than three times and memorize its various examples. Learning by reading documents is also a learning skill.
Tutorials are often packaged in a way that students can easily understand, but there is no doubt that they don’t cover much of the basics. For example, I would not have been able to fully learn the Swift Foundation library by just going through the tutorial.
Reading the tutorial is ok. I used to do it all the time. However, if you find a better way to learn, keep your eyes open. As the mentor of this blog, I can say that my approach is not necessarily the best, because no one is perfect.
The last word
For those iOS developers who want to give up, you can always give up, there are so many developers out there, and we don’t want any more mediocre developers in 2017.
If we are provided with plenty of drinks, good Internet access and three meals a day, we can hardly complain. If I was able to learn Swift and iOS in six months without a computer science degree from Google when I was 20, I’m sure you can too!
I’m sorry if reading this article made you feel arrogant. I feel frustrated that there are such negative and complaining voices to discourage the year 2017, which is full of luck and blessings in our reality. This is not 1523 anymore. As a final statement, I’d like to share one of my favorite quotes from a blind person.
“The only thing worse than not seeing is seeing without a vision.” – Helen Keller
I hope this is my first and last post without emoji. See you next time.