
The Stanford course
“Developing iOS 9 Apps with Swift” is now available on iTunes. This is a long-awaited update of the previous course on
iOS 8 and Swift .
In order to use this content, you need to have only Mac - Macbook Pro, MacBook Air, iMac. All software is free.
This course is taught by Professor Paul Hegerty for 10 weeks. It not only highlights the many nuances of the iOS operating system and Swift programming language, which are not so easy to find in the documentation, but also provides you with iOS programming techniques that you will not find in any book (maybe WWDC 2011, 2012 , 2013, 2014, 2015). He will shorten your path of learning many times. Actually, he is a genius in teaching iOS programming.
In the first lecture after reviewing the structure of iOS software, Professor Paul Hegerty plunges into a demo — a calculator, but this is not the
RPN calculator that was on the last course. This time it is a simple and simpler calculator, it does not have a recursive method call. Using the example of this calculator, the professor talks in great detail about the syntax of Swift 2.2 and about the capabilities of Xcode 7.3. Literally explains each character. And it can be a deceptive impression that this is a course for beginners. But he deliberately does this so that further, when explaining protocols, closures, animation, multithreading, Autolayout (markup), Core Data object-oriented database, Dynamic Animation, etc., never go back to this, and start talking only about complicated things. Therefore, the first 3-4 lectures - just a godsend for those who are just starting to develop iOS applications on Swift. He himself says that the task of the first two weeks of the course is to give his students a “rocket” start in learning the Swift language. Therefore, he complements the course with 3 tasks to read Swift documentation. It is during this period that students perform Homework Programming 1 and 2 (there are, as a rule, only 6 of them in all), which are fairly easy.
But after 2 weeks the situation changes dramatically: the course material becomes more complicated, and the difficulty of Homework Programming tasks grows exponentially.
To successfully complete the course, Professor Paul Hegerty emphasizes the importance of becoming familiar with object-oriented programming, as a mandatory requirement for the course. This is a top-level course on programming, so it is advisable to first take some basic programming courses, such as the Stanford courses CS16A and B or CS16X and then CS107, although this is not quite an Object-Oriented course, but this is a very hard and good course. programming.
The CS108 course is a wonderful Object Oriented course, so if you take the CS108 you will really be well prepared. The course CS110 is also not exactly an Object-Oriented course, but a huge programming practice, because the main classes in this course are programming.
')
There is an exemplary course program:
1 - Introduction to iOS 9, Xcode 7.3 and Swift 2.2
2 - MVC; iOS, Xcode and Swift demo
3 - Swift 2.2 in detail
4 - Views. Drawing
5 - Interface Builder, FaceView Controller, Multitouch Gesture Control (gestures), combining MVCs
6 - Combining MVCs; segues; "Life cycle" View Controller
7 - Closures; Extensions; Protocols (protocols); Delegation; Scrollview
8 - Multithreading (multithreading); Text Field (text field)
9 - Table View
10 - Core Data
11 - Core Data Demo
12 - Autolayout (Autolayout system)
13 - NSTimer and Animation (animation)
14 - Animation and Core Motion
15 - “Life cycle” of the application; Alerts; Cloud kit
16 - Notification and Cloud Kit
17 - Segues; Core Location; Maps (maps)
18 - Persistence (permanent storage)
It is evident that one more lectures than the last time. Now there are 18, instead of the previous 17. There is Core Data, but there is no Localization, which has always been the final lecture, and with which you can get acquainted at the last course, there is no Air Drop.
In my opinion, it will be very interesting.
If someone wants to read the material in Russian, I offer my unauthorized lecture notes in Russian. Posted
Lecture 1 CS193P Spring 2016 - Course overview and introduction to iOS, Xcode and Swift. (part 1)Lecture 1 CS193P Spring 2016 - Course overview and introduction to iOS, Xcode and Swift. (part 2)Lecture 2 CS193P Spring 2016 - Applying MVC.Lecture 3 CS193P Spring 2016 - More Swift and Framework Foundation .
Lecture 4 CS193P Spring 2016 - ViewsLecture 5 CS193P Spring 2016 - Interface Builder, FaceView Controller, Gestures and Multiple MVCsLecture 6 CS193P Spring 2016 - Multiple MVCs, Segues, FaceIt and View ControllerLecture 7 CS193P Spring 2016 - Closures, Extensions, Protocols, Delegation and ScrollViewLecture 8 CS193P Spring 2016 - Multithreading and Text Field (Multithreading and Text Fields)Lecture 9 CS193P Spring 2016 - Table View (Tabular Data View).Lecture 10 CS193P Spring 2016 - Core Data (Object-Oriented Database).Lecture 11 CS193P Spring 2016 - Core Data Demo (Demo Application).Lecture 12 CS193P Spring 2016 - Autolayout (Automatic Marking).
Lecture 13 CS193P Spring 2016 - NSTimer and animation.
Lecture 14 CS193P Spring 2016 - Animation and Core Motion.Lecture 15 CS193P Spring 2016 - Application Lifecycle (application "life cycle"), Alerts and Cloud Kit.Lecture 16 CS193P Spring 2016 - Notification and Cloud Kit.Lecture 17 CS193P Spring 2016 - Segues, Core Location and MapKit.Lecture 18 CS193P Spring 2016 - Persistence (permanent data storage).The most fascinating thing is the Homework solution. They will be 6:
Task 1cs193p Spring 2016 Calculator. Decision. Mandatory and optional items. The final code for Task 1 is on
Github .
Task 2 cs193p Spring 2016 "Smart" Calculator. Decision. Mandatory and optional items. The final code of Task 2 is on
Github and
Github .
Task 3 cs193p Spring 2016 Graphing Calculator. The decision of the required items Tasks. Required items for Task 3 on
GithubTask 3 cs193p Spring 2016 Graphing Calculator. Solving additional points. Additional items for Task 3 on
GithubTask 4. CS193P Spring 2016. Smashtag Mentions (Twitter client). Solution - mandatory items 1-7.Task 4. CS193P Spring 2016. Smashtag Mentions (Twitter client). Solution - mandatory items 8-10.Task 4. CS193P Spring 2016. Smashtag Mentions (Twitter client). The solution is additional points 1-5.Task 4. CS193P Spring 2016. Smashtag Mentions (Twitter client). The solution is an additional item 6. UICollectionView and moving cells.Task 4. CS193P Spring 2016. Smashtag Mentions (Twitter client). The solution is an additional item 6. UICollectionView with the location of the cells of the WaterFall type and switching between Layouts.Task 5 cs193p Spring 2016 Smashtag Mentions Popularity (Twitter client). Decision.Task 5 cs193p Spring 2016 Smashtag Mentions Popularity. The solution of additional point 4 (deletion of old information from Core Data).Task 6 cs193p Spring 2016 Task VI: Breakout Game. Animation.Task 6. Animation. Decision. Feel the magic of Swift 3 in the simplest Breakout game with Dynamic Animation.All these materials are posted on the
iOS Application Development website.
The objective of this project is to bring novice developers of iOS applications to a high enough level of programming, when you can freely communicate with experts and understand everything that is said at WWDC, as well as follow the creation of Swift 3 and Swift 4 on
Swift.org , and not “hang out” forever in educational materials. After high-quality self-programming of the CS193P Course Tasks without copy-paste, no training courses will be needed.