Top 15 knowledge and skill points that an iOS senior engineer must have, (how much do you know?)

Foreword:

With the development of the Internet and the arrival of the Internet of Things in the future, a large number of mobile development talents are needed. When a developer goes higher and farther, he must stand on the shoulders of his ancestors, and he must continue to specialize in new technologies, stand tall and see far, and see a bright future.

The rapid development of the mobile Internet is flooding out, more and more people are interested in learning mobile development, and the competition is getting bigger and bigger. There are many things to learn. How to stand out in the fierce competition of mobile developers and become a truly qualified senior iOS development engineer? Here is a summary of the fifteen skills that must be mastered to become a mobile iOS developer.

Follow the author's other articles and have the Great God Gathering Club:

As a developer, it is very important to have a learning atmosphere and a communication circle. Whether you are a novice or a big cow, you are welcome to join, share BAT, Ali interview questions, interview experience, discuss technology, and let’s communicate, learn and grow together!

1. Advanced C language, C++ language

  C language is the language (Objective-C) basis for iOS development, and it will also be covered in the course of iOS development training. It should be emphasized that it is not necessary for students to be proficient in C/C++, but to master the core content of C/C++ used in iOS development.

2. Objective-C language

  Objective-C is the standard language for iOS development, and it is also a standard recognized by many iphone development engineers, which needs to be mastered by students.

3. iOS SDK Xcode integrated development

  The iOS SDK is the core of iOS development. In this part, students should not only master the essence of Xcode, but also master iOS development tools such as Instruments, iOS simulator, Printer simulator, Accessibility inspector, Filemerge, and Application loader.

4. Data persistence

  Everyone knows that there are four ways to persist data in iOS: property list, object archive, SQLite and Core Data. During the development of APP, the requirements for data are very high, and the persistence technology can be automatically optimized to reduce the need for the database. Visits, improve the efficiency of the APP program;

5. Multi-threaded development

  Multi-threaded development is especially hard work, even if you are an engineer with years of development experience. To make multithreading accessible to junior iOS developers, while simplifying complexity. It is recommended to avoid direct manipulation of threads when possible, and use mechanisms such as NSOperationQueue. Operation objects, GCD, Idle–time notifications, Asynchronous functions, timers, Separate processes, etc.;

6. iOS Design Patterns

  MVC, KVO, Notification, Target...action, Sigleton, Delegate, etc. These are all iOS design patterns that need to be understood in the process of iphone application development.

7. Network programming

  Network programming is a programming skill that must be mastered for learning iOS development, which involves synchronization, asynchrony, Http, Https, Socket, front-end and back-end interaction, etc. The degree of standardization handled in this part directly affects the review of Apple's AppStore.

8. UI programming

  In the iOS development process, most of the APPs are completed with multi-view design. For example single view controller, multiple view controller, etc. In the process of iOS game development, we still have commonly used game physics engines such as COCOS2D-X or Unity3D, BOX2D, etc., which can be cross-platform;


9. Operating System

iOS memory management and tuning

iOS file system and sandboxing mechanism

iOS multi-threaded programming (Thread, GCD, NSOperation)

iOS network and server programming (NSURLConnection, NSURLSession)

Various security mechanisms of the iOS system

10. Network programming

iOS network sending mechanism adjustment and optimization (NSURLSession)

Socket programming

Various guarantees in network transmission

Tuning and optimization of the transmission protocol

11. Database, persistence scheme

Conventional persistence schemes (Keychain, NSUserDefaults, Sqlite, CoreData)

Database usage and design (Sqlite)

Data structure optimization, Sql tuning

12. Graphical Image Programming

Drawing of UIKit, Core Animation and Core Text

Core Graphics, Quartz 2D, Media Player, AV Foundation

OpenGL ES, GLKit, SpriteKit, SceneKit, Metal

13. Data Structures, Algorithms

Basic algorithms and data structures (sorted search algorithms, arrays, queues)

Flexible application of more complex data structures (binary trees, graphs, etc.)

Complex specialized algorithms (image recognition algorithms, topological localization, etc.)

14. Security Plan

Local data storage security (Keychain)

Authorization and Authentication

Transport security (symmetric, asymmetric, SSL)

App code security

15. Business Capability

Analysis and realization of general business function requirements

Demand analysis and realization of important business modules

Architecture, system design and implementation of small and medium scale products

Architecture, system design and implementation of large-scale products or product lines

Platform-level product architecture, system design and implementation

As a developer, it is very important to have a learning atmosphere and a communication circle. Whether you are a novice or a big cow, you are welcome to join, share BAT, Ali interview questions, interview experience, discuss technology, and let’s communicate, learn and grow together!

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=325467773&siteId=291194637