iOS development knowledge system

iOS development knowledge system

[[142566]]

I have read a blog before, where the blogger sorted out a mind map of the knowledge and ability system of iOS development. Click here to transfer. The author sorted it out very well but expanded it a lot. If it is for beginners, it will be scared away. Here I will try to sort out the knowledge system for iOS beginners.

Development Environment

Mac

Mac mini, Mac book, iMac, Hackintosh, OS X virtual machine are all fine, but if you really want to do iOS development, you'd better not use Hackintosh and virtual machine, which will directly affect your interest in iOS development. Similarly, if you use a MacBook, it will greatly increase your interest in iOS development (MacBook is the best programmer computer). PS: How to use Mac elegantly

Xcode

Go to the Apple Developer Center to download and install. You can now start directly from Xcode 6.
Here's how to use Xcode

So far you have been able to quietly develop a "Hello world" running on the iOS simulator

Developer Account

It is not necessary, but if you want to run your own program on the iPhone, it is indispensable. Of course, if you are not an independent application developer, your company should generally have it. Just let the Agent or Admin invite you to join.
Here's how to understand the developer account

Development Language

For any new technology, I think learning its language is definitely necessary and the first priority, and iOS development is no exception. For now, you should have some understanding of the three languages ​​​​Objective-C, C language, and Swift, of course, the focus is still Objective-C.

Objective-C is the most important thing, you must learn it thoroughly.

C language is necessary for beginners to understand and is a must for advanced learners.

Swift is a future star, and it will be a success sooner or later.

iOS SDK

Learning iOS SDK may be the most time-consuming knowledge for beginners. Because there are a large number of libraries that we need to learn and master. The most basic ones are:

Foundation.framework

When you are learning to use iOS, you will encounter a large number of class libraries with the prefix "NS". These class libraries basically belong to Foundation.framework, which is the core library for iOS development, including: common data structures (NSArray/NSDictionary/NSString, etc.), networks (NSURL../NSHTTP..), multithreading (NSThread/NSNSOperation), etc.

UIKit.framework

Libraries with the prefix "UI" are included in this framework. Most of them are UI-level controls of the system, such as UIViewController, UIView, UIButton, UILabel, etc. Only by using these controls can a complete APP be built.

QuartzCore.framework

The gorgeous and smooth animation effects in iOS are a great tool to attract people. If you want to create such effects, you have to understand this library. The core animation APIs of iOS are all included in this framework. Learning to use it can make your APP more eye-catching.


Of course, there are many frameworks in the iOS SDK, each of which is responsible for its own part. For beginners, if they can understand the APIs of the above frameworks clearly, they can already make a complete APP of their own.

How to learn these frameworks?

1. Active learning, the first entrance is of course the most original.

img

Find the corresponding framework in the Xcode navigation bar and expand the Header to see the corresponding header files of each category. Click on it to see the public methods of each class with detailed comments.

2. Passive learning: During the development or learning process, if you see certain methods but don’t know their specific meaning and usage, you can use ⌘ + click the current method in Xcode to jump to the defined header file to view the usage, or search through the iOS Developer Library.

network

The network part does not only mean learning how to use the network API calls in the SDK, but also means understanding network programming.
You need to know the HTTP protocol message structure, GET/POST methods, the meaning of common status codes, and Request/Response.
You also need to know the data formats used to communicate with the server, such as json and xml.

database

For database, you need to know the basic SQL statements select/update/insert/delete operations;
Need to know how to join tables for query: outer join, inner join, self join, etc.;
You need to know how to design database tables for one-to-one, one-to-many, and many-to-many relationships between entity data.

GitHub

iOS has a strong open source spirit. There are many excellent open source projects on GitHub. In the actual development process, some well-known open source libraries are also widely used. For example:

AFNetworking

SDWebImage

MJRefresh

EGOTableViewPullRefresh

JDStatusBarNotification

There are still a lot of excellent codes in the open source community. We can not only use these codes directly to improve our development efficiency, but also learn the coding style and implementation ideas of excellent iOS developers.

<<:  Google internal summary of the reasons for Google+'s failure: mobile layout was too slow

>>:  Git's good partner: SourceTree & BeyondCompare

Recommend

How to advertise in Douyin?

1. Traffic dividend channels Any place with traff...

2019, new marketing promotion begins!

Zhihu's Liu Haoran article—— Did you know? Do...

Open source, SaaS and API, who will be the final winner?

Today, software development has reached a new hei...

Will the little ducks who were born in the wrong place really be excluded?

Produced by: Science Popularization China Author:...

On 520 Valentine’s Day, shall we say sweet words in the copywriting?

After being in the arena for a long time You will...

Why do Toutiao always know what you like to watch?

There are many apps like Toutiao and Qingmang Rea...

Case Study: Branding and IP-based Operation Practice of User Communities

Due to the impact of the epidemic, businesses are...

Frost Descent | Why does frost-bitten cabbage taste better?

=================================================...

Seven Reasons to Use AngularJS to Develop Your Next Web App

[[149184]] Original text: 7 Reasons to use Angula...