• If I have one month to learn iOS: How would I spend it?
  • Quang Nguyen
  • The Nuggets translation Project
  • Translator: Gocy
  • Reviewer: REid3290, ZHAOchuanxing

Getting started with iOS in a month: How can I Learn?

Photo credit: unsplash.com/@firmbee

Until last year, I had been working on Android. At the time, I had no concept of iOS development and had never even used an Apple product. But that’s all in the past, and I’m now able to work on both iOS and Android apps.

Today, looking back at my learning time, I want to share a one-month introduction to iOS development syllabus that I developed myself. From my own experience, I highly recommend Android developers learn iOS app development. As weird as this sounds, don’t get me wrong. Because: Reading widely can give you insight into your field.

“If you’ve done something and it’s working well, you should move on to the next great thing and not dwell on it for too long. Just figure out what’s next.” – Steve Jobs

To get back to the point, let’s start with my own one-month study plan. Rest assured, all the resources in this article are completely free.

Introduction to Swift,

You can certainly learn Objective-C but I highly recommend Swift. It is very friendly and easy to use. (Translator’s note: Foreign Swift atmosphere is relatively good, if you are in China, please carefully consider the first language)

The first site I went to was the Official Apple source. Read through the basic concepts and follow the documentation to practice them in Xcode.

In addition, you can also try yoda’s Swift learning program. Although the website says it takes about three weeks to study, you can actually complete the course in a few days (a few hours a day).

I spent about a week learning Swift. If you have more time, check out these resources:

  • Swift-playgrounds learn basic grammar
  • Swift tutorial by Raywenderlich
  • Design patterns in Swift

Use UIKit to draw the application interface

Now let’s look at the interesting visual part. UIKit allows your apps to display and interact with each other on iOS devices. Sounds good, doesn’t it?

I was searching for a free course on YouTube, and I found it — UIKit Basics.

At first, iOS Auto Layout bothered me. Because when I develop Android apps, I use XML files for interface and visual inspection, and almost never use drag and drop. But on iOS, the process is completely different. After spending some time practicing and understanding the mechanics of Auto Layout, I found it great that I learned something new outside of the everyday Android design style.

In addition, you can simply drag and connect two views (screens) in Xcode’s Storyboard to complete view transitions, which on Android can only be done by code.

There are many more features you can explore.

In addition, you can find more tutorials on iOS UIKit in the “Core Concepts” section of Raywenderlich’s iOS directory.

Understand data persistence in iOS

Once you’re comfortable with UIKit, you can present data to users and get data from them. Great.

The next step is to store the data so that even if the app is shut down, users can still access it the next time they use it. By this I mean storing data on the user’s device, not on a remote server.

In iOS apps, you have the following options:

  • NSUserDefaults: Key-value stores, similar to SharePreferences in Android
  • NSCoding/NSKeyedArchiver: Converts compatible classes to data representations and stores them in File System or NSUserDefaults
  • Core Data: A powerful framework for iOS
  • Others: SQLite, Realm, and more.

Although many iOS developers today prefer to use Realm rather than Core Data, I recommend learning Core Data because it’s the official iOS persistence framework, and once you understand its Core architecture and implementation, you’ll be better off. SQLite, Realm, or Core Data is a debate that has been going on for a long time.

The resources I have looked at include:

  • IOS persistence and Core Data in Yoda City
  • Some Core Data tutorials on Youtube
  • NSCoding/NSKeyedArchiver by Mattt Thompson

Interact with the world using aN iOS network connection

We live on the Internet, so your app should be able to connect to the outside world and exchange data with others. Let’s move on to the next lesson: iOS connectivity. You’ll learn how to use the REST API in iOS. At this stage, you must not use third-party libraries. Let’s use the built-in iOS framework to do this.

You’ll have plenty of opportunities to use cool HTTP networking libraries like Alamofire later in your development, but we’re learning now. Before trying something sophisticated, we need to know the basics provided by the authorities.

I recommend the following courses and tutorials:

  • NSURLProtocol tutorial on RayWenderlich
  • NSURLSession tutorial on RayWenderlich
  • Basic online courses at Yoda

Create your own amazing app

“Knowing is not enough. We must apply. – Leonardo da Vinci

By the end of the above study, you have a wealth of knowledge. You can program in Swift, build iOS app interfaces with storyboards and UIKit, store data on local devices, and exchange information with the outside world using aN iOS network connection.

That’s great, big brother. Go for anything you can think of.

We developers, we create cool and valuable tools to make this complex world simple. So, you can try making an app that improves your daily life, helps your family, or even solves a global problem. Finally, I recommend publishing your app on the Apple Store. This will give you positive feedback and help you stick with it.

Three years ago, I released my first Android app (a note-taking app) on Google Play after a month of learning Android. A year ago, I also released my first iOS app (a weather app) on the Apple Store after a month of self-education. They all started out simple and rough, but they always encouraged me to keep going.

I bet you can do it better than ME. So let’s create something worth showing off to the world.

Note: There are many other great resources you can search for through Google. The tutorials and courses mentioned above are only my personal recommendations.

I hope this article will help you.