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!