Comment on page
About this Textbook
This textbook was written for Cornell AppDev's course–Intro to iOS Development.
Currently, this textbook is still under construction! Please keep that in mind while reading any textbook entries–whether they are marked under construction or not. That being said, if you find major errors please feel free to reach out! We will be adding a feedback form soon!
This textbook ultimately has one goal: to encapsulate as much Swift knowledge into individual and understandable sections. Note that this is Swift knowledge, not UIKit, SwiftUI, or any other framework.
I want this to be a place where if you are uncomfortable with a general concept, you can come here. Stack Overflow is a great place to have specific questions answered, but it can be hard to grasp Swift concepts from them.
As you will find, Swift features have a bit of a chicken and egg problem. It is often impossible to fully understand one topic with a slight grasp on another. Once you get one advanced topic down, you may be able to revisit an older topic and get more out of it.
Consequently, this textbook is meant to be as modular as possible. Hence, you will see references to other sections often to aid in one's understanding and topics are often broken up into general and "advanced" sections. You can get by making iOS apps without many of these advanced topics, but they can make life a lot easier. For this course, you will not need to understand many of the advanced topics.
Sometimes, even for general topics, you will see references to other topics. Usually, these are not required, but there certainly are some sections that are simply incomprehensible without learning another piece of the language. For example, one cannot fully appreciate dictionaries without understanding optionals and it is basically implied that you understand typing and variables for all other sections.
As you become more comfortable with Swift, this guide will hopefully be easier to follow. That being said, if one were to learn Swift completely from scratch using this textbook there is an order I would follow; read all main articles first, afterward go back and read sub-articles and advanced topics because these are usually more niche.
All of the pages are written by Noah Pikielny with a few exceptions which are noted accordingly. All of these articles are edited by our wonderful course staff. All of this was done in the winter of 2021-2022, so it may be outdated in a few years.
The style of this textbook, as well as my (Noah's) attitude towards teaching, has been heavily influenced by professor Michael Clarkson's functional programming class. You will notice his influence, especially in advanced topics like
indirect enums that are more functional in nature.