It allows you to quickly understand and master how to develop iOS skills and ios development skills.

Source: Internet
Author: User

It allows you to quickly understand and master how to develop iOS skills and ios development skills.

 

First, you need to spend some time learning objective-C language. After all, this is the basis for iOS development (you can also try Swift, but this project is only for OC ), programming routines are almost the same. I want to write more and practice more. I will not discuss how to set up the environment. This part of content can be explained by Baidu or Google;

For a new entry, I always want to have a complete project that can be run directly and learn how to develop the function modules. This project was first recognized to present common function modules, it also contains some basic knowledge introduction. If you can probably read the code in the project, there should be no problem in writing an iOS project. The commonly used code is also sorted out in the project, hope to help you;

 

Effect display:

 

 

 

I. Overall Project Construction

The Code architecture and hierarchy in the project are clear, which can meet the needs of most small and medium-sized projects and adopt the traditional MVC model, the modules, resources, assistants, categories, and macro definition files are stored in corresponding locations. Of course, the project hierarchy is based on the project requirements and personal preferences; the project also defines macros to differentiate different environments and add different environments as required;

 

Ii. Common assistant code

Some common functional codes in the project have been encapsulated and can be used in real projects to simplify project activation. The Assistants will not be described one by one; you can download the source code to view it;

 

III. Basic knowledge points

1: viewController Lifecycle

2: Use of RunTime knowledge includes some common RunTime instances, some of which are briefly introduced.

3: multi-thread knowledge using various instance implementations including NSThread multithreading, GCD multithreading, NSOperation multithreading, and synchronization lock knowledge

4: How to decouple the Protocol implementation class

5: Block memory release knowledge points common memory processing problems include block loops, object release, etc.

6: TableViewDataSource Extraction

7. CADisplayLink knowledge application

8: knowledge application of CAShapeLayer and UIBezierPath

9: CGContext knowledge point usage

This module is a summary of some common knowledge points in iOS. Each basic point has corresponding examples and code annotations, especially for runtime knowledge points, multithreading, and actions; it is still common in the normal development process; it will be more in-depth than the basic knowledge points of the entry;

 

4. Module knowledge points

1: integrate Baidu map (version 3.0.0). Currently, Baidu positioning function (ThirdMacros. h to modify the corresponding key value) is available)

2: integrate umeng statistics (ThirdMacros. h to modify the corresponding key value)

3: Integrated CocoaLumberjack Logging

4: Introduce a third-party inputAccessoryView to add an input response to some controls without an input source. Such as buttons, cells, and views.

5: Integrate the PUSH message function (ThirdMacros. h to modify the corresponding key value). The certificate must also use your own message certificate;

6: integrated with umeng sharing SDK, and implemented three third-party logon functions (QQ, Sina) on the login page (ThirdMacros. h to modify the corresponding key value)

7: integration with third-party sharing of umeng (QQ space sharing, circle of friends, Sina Weibo sharing, QQ Weibo sharing, and friends)

8: added the CocoaLumberjack log record display and viewing page

9: The Baidu Map Display page function is added to display several coordinate points on the map, and customize the coordinate points icon and pop-up Prompt window content to locate the points and draw a road map;

10: added FLEX, Which is enabled in the local test version. FLEX is a set of debugging tools officially released by Flipboard for iOS development. It can work well on simulators and physical devices, developers do not need to connect to LLDB/Xcode or other remote debugging servers to directly view or modify the status of each running App.

11: added the FCUIID help class for obtaining device IDs.

12: added the hot update JSPatch plug-in, and added corresponding help classes and test functions (JSPatchViewController)

13: Integrate the ad activation function module. If you do not need the function, you can inject it in AppDelegate.

14. Integrate the CYLTabBarController plug-in to add four TabBar menus at the bottom of the project

15: Introduce LKDBHelper and add the help class for creating databases to map entities directly to database tables.

16: integrates the boot page function module for the first startup

17: integrates the LBXScan plug-in to implement the two-dimensional code function module, including scanning the two-dimensional code Display Results, reading the two-dimensional code results from the image album

18: encapsulate the MBProgressHUD extension class and define some common prompts. For details, see the MBProgressHUD + MP class.

19: Development of Image Upload, including selecting a photo, taking a photo, browsing a big image, obtaining a picture GPS, picture name, picture taking time, converting and adjusting the image while uploading, compressing the image, and displaying the image

20: develop progress effects on image uploading, store the photos in the sandbox, and delete the uploaded files. Introduce the M13ProgressSuite plug-in to display the progress slice effect, and use the ReactiveCocoa knowledge;

21: compile an iPhone 5 font to adapt to the screen and be compatible with the iPhone 6 + effects. If you are not an iPhone 5, you can modify the corresponding macro definition, which is now based on iPhone 5.

22: Write A UITableViewCell countdown function. Because the instance does not have a server interface, the time is based on the local time. The official project time must be obtained from the server;

23: Introduce WebViewJavascriptBridge for H5 interaction and annotate the instances on the official website.

24: added a three-level linkage help class for provinces, cities, and cities. You can set the binding default value, view the current pop-up window status, and implement its small instance.

25: added a help class in the Custom pop-up window to simulate the UIAlertView effect of the system. added a pop-up effect with UITextView and created other custom views based on the project;

26: the example of YYText Rich Text is simple to implement the application of YYText, and contains some small instances.

27: Expand and hide the list rows to display the List Group, and then display and contract each group;

28: common form row types common form implementation methods, including input, selection, multi-row input, and time selection;

29: Integrated facial recognition SDK for registration and verification to achieve facial recognition sign-in;

30: JavaScriptCore uses instances combined with h5.

31: The Masonry layout instance lists some common la S.

32: How to customize the view height when the keyboard pops up during keyboard processing

33

34: when the list is displayed, only the SDWebImage of the Cell is loaded. The image of the row is not loaded when the list is quickly rolled. The image is not loaded until it is stopped, so as to optimize the display.

35: Long-Press the row in the list to drag a row in the list and insert it to another position.

36: Custom date pop-up control, filtering does not meet the maximum time and minimum time range;

This module is also the largest part of the project, which already contains common features. In fact, each of them is a real function implementation. I believe these features are sufficient for you to develop an APP; you can view each function point;

 

Iv. Plug-ins

Abstract_target 'leleprojectdefault 'do pod 'afnetworking', '~> 3.0 'pod 'reactivecocoa ',' ~> 2.5 'pod 'sdwebimage', '~> 3.7.5 'pod 'jsonmodel', '~> 1.0.1 'pod 'masonry', '~> 0.6.1 'pod 'FMDB/common',' ~> 2.5 'pod 'FMDB/SQLCipher', '~> 2.5 'pod 'coalumberjack', '~> 2.0.0-rc 'pod 'BaiduMapKit' # Baidu map SDK pod 'umenganalytics-NO-IDFA '# umengsocial ', '~> 4.3 '# umeng social sharing and third-party login pod 'flex', '~> 2.0 ',: deployments => ['debug'] pod 'actionsheetpicker-3.0 'pod 'jspatch 'pod' XAspect 'pod 'cyltabbarcontroller' pod 'lkdbhelper 'pod 'regexkitlite ', '4. 0 'pod 'iqkeyboardmanager', '~> 3.3.7' # compatible with IOS7 pod 'lbxscan', '~> 1.1.1 'pod 'mbprogresshud ',' ~> 0.9 'pod 'mwphotobrowser 'pod 'm13progresssuite ',' ~> 1.2.7 'pod 'webviewjavascriptbridge ',' ~> 5.0 'pod 'yytext' pod 'lazyscroll 'pod 'zfplay' pod 'tzimagepickercontroller' # select the browser pod 'uitableview + FDTemplateLayoutCell 'target 'leleproject _ local' do pod 'mleaksfinder '# you can put it in the target of MobileProject_Local so that it will not affect the product environment end target 'leleproject' do target 'leleprojecttest' do inherit!: Search_paths pod 'Kiwi ',' ~> 2.3.1 'end endend

 

The above is a third-party mainstream plug-in introduced through the Pod. Of course, hot updates should be removed. Currently, Apple does not support this plug-in. This is just to let you know how to use it;

Many details and functional code of the overall project are not listed in detail. If you are interested in this project, you can download it on your own;

 

The code for this project has been shared on github: https://github.com/wujunyang/MobileProject

 

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.