This learning material is prepared for iOS beginners, aiming to help iOS beginners quickly find the learning materials that suit them, save their time searching for materials, and enable them to better plan their iOS learning route, get started faster, and more accurately locate their current position. [[126078]] This document will be continuously updated. We also welcome more experienced iOS developers to share their commonly used tools, learning materials, learning experiences, etc. I will regularly filter and merge them. If there are still some imperfections in the document, please feel free to point them out. Thank you for your contribution to iOS. Let us work together to make domestic iOS better. Thank you. If you want to help improve this document, please send a PR on GitHub https://github.com/Aufree/trip-to-iOS Video tutorial (English) video | Introduction |
---|
Developing iOS 7 Apps for iPhone and iPad | One of the Stanford open courses. The course mainly explains some iOS development tools and APIs as well as the use of iOS SDK. It belongs to the iOS basic video | iPad and iPhone Application Development | The course instructor, Paul Hegarty, is a professor of software engineering at Stanford University. The video content is in-depth and authoritative, and is well received. | Advanced iPhone Development-Fall 2010 | Advanced iOS development course, starting to involve the application of Core Animation, Core Data, OpenGL and other frameworks | iOS Dev Center | iOS learning videos provided by Apple | Lynda | Lynda has a lot of learning materials on iOS and Object-C, ranging from beginner to advanced, covering a wide range of topics. No matter what level you are at in iOS, you can choose a course that suits you. | Code School | There aren't many iOS courses on CodeSchool, but the quality is good and some of the courses are quite interesting. | Udemy | Udemy helps beginners plan a video learning route, from beginner to advanced, with detailed |
Video tutorial (Chinese) video | Introduction |
---|
iOS 7 App Development | A series of videos of the old man with a white beard from Stanford. All videos have been translated. The videos are relatively new and the translation quality is also very high. | iPhone Development Tutorial Winter 2010 | All videos have been translated. They explain iPhone development in depth. The videos are suitable for people who have a certain foundation in Object-C. | Practical application of iOS 8 App development using Swift | The video on MOOC.com mainly talks about some basic uses of Swift, and makes several small apps during the explanation. ***It also talks about making a share button with Sketch | Conquering Objective-C | The video is not finished yet, it talks about some basic syntax of C and Object-C, suitable for people with zero foundation |
books Book Title | Recommended reason |
---|
Objective-C Programming | The content is not much, but it is all the essence. With a little knowledge of C language, you can read this book quickly. It takes about a day to finish it. After reading it, you can have a basic impression of iOS development. | iOS Programming | Another excellent introductory book for iOS. For detailed evaluation, please see the comments of this book below on Douban | Cocoa Design Patterns | Suitable for people who want to learn more about Cocoa | Learn Objective-C | Short and concise, suitable for people with programming basics to have a certain understanding of Object-C in half an hour | Programming with Objective-C | After reading Learn Obj-C, you can continue to read this official introduction to Object-C for a more in-depth introduction. | iPhone Programming | This book is rated as the best book for iOS beginners on Quora. | Objective-C Basics Tutorial | The author of this book, Scott Knaster, is a legend in the Mac development community. Most of the books he has published at Google have been well received by many programmers. This book is suitable for iOS developers who want to jump from beginner to intermediate level. | Advanced iOS Development | The author of this book, Tang Qiao, is a well-known figure in the domestic iOS development community. He has participated in the development of many well-known software. The book is currently on pre-sale. The content of the book is from the simplest to the most complex, introducing readers to iOS step by step. It is also suitable for beginners to intermediate iOS developers. | Programming in Objective-C | This book is very popular on Amazon, and it explains Object-C in great detail. | iOS Testing Guide | The author of this book is an employee of Douban. Most of the content in the book is the testing experience distilled by the author in his daily work practice. It focuses on the specific practical methods of each testing stage and connects the activities of each testing stage through continuous integration. | Objective-C Programming | A pioneering work on iOS analysis, it introduces in detail the operation process of MVC on Cocoa Touch. This book is suitable for intermediate iOS developers. | Objective-C Advanced Programming | This book mainly introduces iOS and OS X multithreading and memory management, deeply analyzes the source code officially released by Apple, and tells you some knowledge that will not appear in Apple's official documents. It is suitable for intermediate and above iOS developers. | Effective Objective C 2.0 | The book contains 52 effective methods for writing high-quality iOS and OS X code, suitable for advanced use in iOS development | Swift Fundamentals | It is estimated that this book will become a classic introductory book for Swift in the future. Its number of stars speaks for itself. | The Swift Programming Language | The Chinese version of Swift programming language translated by Liang Jie, a post-90s developer |
blog Blog address | Blogger Information |
---|
OneV's Den | Wang Wei (喵神), currently living in Japan, works for LINE, is a well-known iOS developer. Most of his articles are easy to understand and cover a wide range of topics. The Swifter he is currently maintaining is also worth collecting. | Tang Qiao's Technical Blog | Tang Qiao, a well-known iOS developer in China, currently works at Yuantiku. The iOS mobile development weekly report launched by his blog is very popular and updated frequently. | txx's blog | A post-90s iOS developer, known as the Shrimp God. Most of the articles are easy to understand and worth reading. | The Shipwreck House | The blogger is also an iOS master, and he often updates some iOS tutorials. The quality of the articles is very high and it is worth reading. | NSHipster | NSHipster's Chinese website, mainly translating NSHipster's English website, the blog posts are written by Mattt, most of the articles are very in-depth and detailed, updated every Monday | Limboy No Network Left | Li Zhong, a former Zhihu employee, is currently in charge of iOS development for Huaban. Many of his articles introduce his personal learning methods, allowing readers to master learning skills while learning technology. | Nianxi's Blog | A goddess in the iOS circle, her articles on security issues are all worth reading. Since the new blog has just been launched, there are not many articles at present. You can go to her previous blogs | iOS Technology Weekly | Wu Fawei, senior software development engineer at Tmall, publishes iOS technology weekly report every Monday, pushing some iOS tips, code base, design and other information. | iWangKe.me | Wang Ke, founder of IndieBros Studio, an excellent iOS development engineer, writes articles that are easy to understand, analyzes many issues thoroughly, and is very organized | More | Tang Qiao's collection of Chinese iOS/Mac development blogs, frequently updated, worth collecting |
article title | Introduction |
---|
Learn Objective C: The Path to iPhone Development | Articles written by Udemy, explaining some prerequisites for learning Objective C, the history of Objective C, learning methods and learning resources | I Want to Write iOS Apps. Where Do I Start? | It mainly introduces the development environment of iOS, and involves the learning of Swift, the precautions for iOS listing, the design, testing, code hosting of iOS, etc. The explanation is relatively extensive, and a lot of learning resources are also provided. | How to become a professional iOS developer | The article is well-organized. It repeatedly emphasizes the importance of version control systems. The main content is to give your own suggestions from learning iOS development to getting a job. | Learning iOS Programming | The author summarizes some of the lessons he learned from learning iOS, and gives some good learning suggestions | Become an iOS Developer | The author lists some methods and commonly used libraries for learning iOS, as well as some suggestions for self-studying iOS. | How to improve iOS development | An article written by Tang Qiao, mainly a summary of the improvement of iOS technology, many resources, tools, and learning methods in the article | Some experience in self-studying iOS development | The article is divided into three stages, from entry-level to advanced, and systematically explains the problems that developers may encounter during the entire iOS learning process, and provides solutions, contributing a lot of good tools, resources and valuable learning experience. | How to learn iOS development from scratch | The author gives the process of learning iOS and provides some good learning resources | If I could relearn iOS development | The author gives some suggestions for learning in the article and also talks about his own learning methods. | Some suggestions for iOS development learning paths | The article talks about the importance of English, as well as the benefits of writing blogs and reading source code | Getting Started with iOS Development | The author shares his experience and resources in learning iOS | Mac and iOS development resources summary | Summary of resources released by Broken Boat House |
Related Website website | Introduction |
---|
tutsplus | Update some iOS tutorials from time to time | WWDC | Apple's official annual WWDC video, you can learn about the content of iOS releases over the years | ASCIIwwdc | Text version of WWDC | Awesome Swift | This website collects a lot of learning materials and news about Swift. | Appcoda | They often publish some iOS programming tutorials, which are updated frequently. If you want to learn more, you can check out the About page of the website. | NSHipster | NSHipster is a journal of the overlooked bits in Objective-C, Swift, and Cocoa. Updated weekly. | Think and Build | Some tutorials about Core Graphic and Core Animation. | Tutorials | There are tons of Objective-C, Swift, and iOS tutorials, and they are all free. Raywenderlich is really the conscience of the industry. Thumbs up! |
Community Community | Introduction |
---|
CocoaChina | The world's largest Chinese community for Apple developers | code4app | Frequently updated with some great iOS code snippets and some iOS resources | objc | Regularly publish some high-quality articles about Objective-C | objc China | The translation website of objc.io organized by Miaoshen aims to promote the overall level of the domestic technology circle. The translation quality is very high. | DevDiv | Publish some iOS *** consultation and tutorials | Cocos2d-x | Cocos2d-x Forum | iPhone Dev SDK | A well-known foreign iOS developer forum | Learn Cocoa and iOS Development Forum | The official forums for the books Learn Cocoa on the Mac and Beginning iOS 7 Development have high user activity. | Apple Developer Forums | Apple's official developer forum |
Tools/Plugins Tools/Plugins | Introduction |
---|
CocoaPods | A dependency management tool for third-party libraries for developing OS X and iOS applications. It is a Ruby gem that greatly simplifies the Objective-C development process. | Alcatraz | Alcatraz is a tool for managing Xcode plugins, templates, and color configurations | XcodeColors | Make Xcode debug console more colorful | xctool | Facebook open source iOS compilation and testing tool | XToDo | A comment auxiliary plug-in, mainly used to collect and list TODO , FIXME , ??? , !!! in the project | KSImageNamed-Xcode | A plugin that automatically completes image naming | VVDocumenter | A tool for automatically generating code comments | ImageOptim | A tool for compressing pictures | 75 Essential iOS Tools | It contains a lot of useful tools, involving design, analysis, deployment, etc., and the summary is very detailed, with Chinese translation | More | Tang Qiao summarizes some graphical application tools, command line tools, Xcode plug-ins, and introduces some basic usage |
Introduction to GitHub Top 50 This article mainly gives a brief introduction to the top 50 projects on GitHub, so that beginners can quickly understand the current situation of Objective-C on GitHub. Project Name | Project Information |
---|
AFNetworking | The author is a blogger of NSHipster, a great figure in iOS development, graduated from Carnegie Mellon University, and has open-sourced many awesome projects, this is one of them. AFNetworking uses NSURLConnection + NSOperation, mainly to facilitate data exchange with server API, simple operation, powerful functions, and now many people use it to replace ASIHTTPRequest | 2. GPUImage | A powerful image filter tool that supports custom filters and can be used to process images and video streams in real time. The author is the CTO of SonoPlot, who started programming at a very young age. His answers on SO are also worth reading. The GPUImage project started in 2012 and is written using the OpenGL graphics programming interface. It has very good performance. Now many iOS programmers use it to achieve iOS blur effects. | 3. three20 | An iPhone framework derived from the Facebook iOS client, with many rich functions built in, rich interface, convenient operation of the underlying, saving developers a lot of time, but now it has stopped updating, a PR deleted the code completely, don't be curious to click on Files changed, the page was stuck when I clicked it, one of the authors of three20 created Nimbus, which is a substitute for three20 | 4. RestKit | Mainly used for network communication on iOS, allowing interaction with RESTful Web services, often used to process APIs, parse JSON, map response objects, etc. It is simple and easy to use, allowing you to focus all your energy on data operations. | 5. SDWebImage | The author Olivier Poitrey is the CTO of Dailymotion and has many good open source projects. This project is often used to cache images received from the Web. It is an extension of UIImageView and is relatively simple to use. | 6. ReactiveCocoa | A new functional responsive programming framework developed by GitHub engineers for iOS and OS X development. Matt called it "An open source project that exemplifies this brave new era for Objective-C". Some people also say it is the future of Cocoa. For details, please see this article written by Tang Qiao. | 7. MBProgressHUD | The author Matej Bukovinski is a full-stack engineer and UI/UX designer. This project is a third-party library for prompt boxes to help developers quickly apply it to projects) | 8. MagicalRecord | The author is an iOS engineer at Coursera. This project was inspired by Ruby on Rails' Active Record. It is mainly designed to facilitate the operation of CoreData, help clear the code referenced by CoreData, and facilitate the work of CoreData. | 9. FMDB | A library that encapsulates SQLite, easy to use and simple | 10. ASIHTTPRequest | A lightweight iOS network communication library, developed based on the CFNetwork framework, but now it has stopped updating, and most developers use AFNetworking instead) | 11. Mantle | The author is a GitHub employee, and the document is very clear: Mantle makes it easy to write a simple model layer for your Cocoa or Cocoa Touch application, mainly used to model JSON data into Model objects. Changba also switched to Mantle some time ago. | 12. FlatUIKit | A collection of many iOS components with flat UI for easy use | 13. Facebook SDK for iOS | Facebook's official iOS SDK makes it easy for developers to integrate some of Facebook's features into their own iOS apps. | 14. JSONKit | Mainly used for parsing JSON, suitable for environments below iOS6. Since iOS5, Apple officially provided the NSJSONSerialization API, and everyone has used the official one since then. | 15. Slate | A window management application, but it stopped being updated two years ago | 16. Nimbus | The author Jeff has done a lot of good things for Facebook and Google, and is also a member of three20. After three20 stopped updating, he created this framework to replace three20, with complete documentation | 17. FastImageCache | An iOS library produced by Path. The author, Mallory Paine, is a former Apple employee. This type of library is suitable for quickly displaying images while scrolling. High speed and persistence are its most important features. | 18. SVProgressHUD | Another lightweight iOS third-party control, used to display the animation when the task is loading, very light and easy to use | 19. Shimmer | Facebook has launched a third-party widget with a flashing effect for its Paper application. The installation and use process is very simple. | 20. CocoaLumberjack | This is a powerful logging framework for Mac and iOS. It is easy to configure, multi-threaded, and provides more advanced logging functions. It can be used to replace the default NSLog statement. | 21. ViewDeck | An open source iOS activity panel component that restores the side-slide effect of Path 2.0. The author stopped updating it two years ago due to time constraints. | 22. Alcatraz | Alcatraz is a tool for managing Xcode plugins, templates, and color configurations. It can be integrated into Xcode's graphical interface. Installation and deletion are just a few commands away, which is very convenient. It supports developing your own plugins and uploading them. | 23. OpenEmu | A powerful game simulator, a must for game development, the official website is also very good | 24. AsyncDisplayKit | Facebook open-sourced an iOS UI framework, which is used by Paper. In addition, the framework also uses Facebook's early open-source Pop animation engine. | 25. Xctool | It is a command line tool open sourced by Facebook, which is used to replace Apple's XcodeBuild tool. It greatly facilitates the construction and testing of iOS. The error message output is also relatively friendly. It is praised by many iOS developers. It is often used with OCUnit, Travis CI, OCLint and other testing tools. | 26. iCarousel | The author is the founder of Charcoal Design in the UK. He has made a lot of contributions to the open source field. This project is one of them. It is a third-party control that can realize the carousel view switching effect on iOS and provide a variety of switching effects. | 27. FLEX | This is a set of in-app debugging tools officially released by Flipboard specifically for iOS development. Developers do not need to connect it to LLDB/Xcode or other remote debugging servers, and can run it directly in the App. | 28. Cocos2D Swift | This is the Swift version of the Cocos2D game development engine. The core developer is Ricardo Quesada, who has contributed about 1 million lines of code to the project. It is updated frequently on GitHub. | 29. TapkuLibrary | The author is Devin Ross. This is a powerful UI effect library on iOS that can achieve a variety of cool effects. It is still being updated. | 30. Masonry | A lightweight layout framework that supports both iOS and Mac OS X. It has elegant syntax and helps developers quickly adapt to iOS devices with different resolutions. | 31. AwesomeMenu | The author is a Chinese. This project mainly uses CoreAnimation to restore the animation effect of Path menu. | 32. PonyDebugger | An excellent iOS application network debugging tool launched by Square. Users can see the application's network requests in real time and can also remotely debug the core data stack of iOS applications. | 33. NewsBlur | The author Samuel Clay made a news reader called NewsBlur alone. Many people call it a replacement for Google Reader. Here is its source code | 34. JVFloatLabeledTextField | The author is the co-founder of Thumb Labs. JVFloatLabeledTextField is a subclass of UITextField. It mainly implements the floating effect of input box labels. The creation inspiration comes from Dribbble. There are multiple ported versions. | 35. Json Framework | A framework for parsing JSON data. However, most people choose to use NSJSONSerialization to parse JSON in iOS 5 and above. The project is now rarely updated on GitHub. | 36. The Physical Web | A project led by the Chrome team, which aims to connect the world with URLs to facilitate users to receive data. It is currently in the experimental stage. | 37. Reachability | Reachablity is a library for detecting the network environment of iOS devices | 38. RESideMenu | The author Roman Efimov is an iOS engineer at Yahoo. This project implements the menu sliding effect on iOS. The idea comes from dribbble. This project supports iOS8 | 39. CocoaAsyncSocket | A powerful, easy-to-use asynchronous socket communication library that supports TCP and UDP protocols and can be used on Mac and iOS devices. The author Robbie Hanson is a senior software engineer at Deusty. | 40. ECSlidingViewController | A view controller container that divides subviews into two layers and handles layer switching by sliding. The creation is inspired by Facebook and Path apps, and the author is a Cleveland employee. | 41. SWTableViewCell | A subclass of UITableViewCell that implements left and right sliding to display information views and call out buttons | 42. TTTAttributedLabel | A replacement for UILabel, making the Label function on iOS more functional, supporting functions such as link embedding | 43. Canvas | A library that allows you to create cool animation effects without coding. Even designers can get started quickly. | 44. SocketRocket | Square's open source WebSocket client is stable and easy to use. It is often used in real-time applications and is popular among developers. | 45. Tweaks | A tool that Facebook has open-sourced to help iOS developers iterate applications faster and facilitate users to dynamically adjust parameters. Yes, Paper also uses it. | 46. JSQMessagesViewController | Elegant iOS messaging library, often used in chat applications, highly customizable | 47. PNChart | The author Zhou Kaiwen is a post-90s, the founder of Miaoshi. This project is a chart control with animation effects, simple and easy to use, and is loved by many developers. | 48. VVDocumenter-Xcode | The author is Wang Wei, a famous iOS developer in China, known as the Meow God. He currently works at LINE in Japan. This project helps developers easily generate annotation documents, saving a lot of work. | 49. Appirater | A tool to remind users to rate your app | 50. BlocksKit | An open source foundational framework that is tightly integrated with Cocoa |
Email Subscription- iOS Dev Weekly (weekly, mostly GitHub projects, articles, tools, etc. worth noting this week)
- iOS Design Weekly (Tips, news and inspiration delivered each week)
document- iOS Developer Library (Must read for iOS development, this document is enough, the content is very detailed)
guide- Start Developing iOS Apps Today
- App Programming Guide for iOS
- Get started with your iOS developer program
- Teamtreehouse
- A map for iOS development
- App Store Review Guidelines
- Swift Language Guide
Awesome Series- Awesome iOS
- Awesome-Swift(1)
- Awesome-Swift(2)
Discussions on Zhihu- How can we systematically learn iOS development and understand some rules and deep-level mechanism principles?
- How to quickly learn iOS development without C and Objective-C foundation?
- How to get started with iOS development?
- What knowledge do you need to learn to get started with iOS development, and how long does it take to go from knowing nothing to being proficient?
- How to get started with iOS programming at the age of 12?
- What iOS open source projects on GitHub are worth paying attention to and learning?
Discussion on Quora- What are the best resources to learn iOS development?
- What are the best new resources for learning iOS development in 2014?
Contributors Click this link to view all contributors to this project License The above content is licensed under CC BY-NC-SA 3.0. Please indicate the source when reprinting. The copyright belongs to me and all contributors. |