Here's an overview of material you should have mastered by day 1 of the iOS program. Feel free to skip any material you already know or you already covered in Lambda's "Intro to iOS" course.
Make sure you don't skimp on the command line and version control material. You'll need all these skills right from the start but these two in particular are fundamental to working through daily challenges.
Your computer should be ready to begin development on day one:
- Your Mac should be running the latest operating system.
- Establish an Apple ID. Visit http://appleid.apple.com.
- Install and run the latest version of Xcode. Visit https://developer.apple.com/download/. Make sure to run Xcode, confirm that it works, and allow it to install supplemental command line tools.
- Confirm that Xcode has installed
git: open a terminal window (/Applications/Utilities/Terminal.app) and enteringgit --versionat the command line. You should be running git version 2.18 or later. - Test the simulator: create a new empty project, compile, and run it.
- Create a free GitHub account. Visit github.com. (https://www.youtube.com/watch?v=GeyDJAwTEO8)
- Set up your git identity (https://www.youtube.com/watch?v=U5flh0sRGBU) and global ignore file on your computer (https://www.youtube.com/watch?v=0fzNSluYjNM).
Train your essential cross-platform skills: Command line, Version control, Markdown, and Being your own expert.
The text-based command line is a common platform for most development environments. Learning how to use this text-based interface enables you to interact directly with your computer's file system and access many developer-facing tools. Lambda's track focuses on the bash shell.
- Type and edit text into the bash command line interpreter shell https://youtu.be/mq2RWXEfJ6s
- Explain what the command line is and the advantages it offers https://youtu.be/tCrkdcDycjA
- Understand, navigate, and use shell history to repeat previous commands https://youtu.be/urz7sdC556s
- Navigate through the Unix file system and list directory files. https://www.youtube.com/watch?v=mFh4vbOH81Q
- Perform basic file and directory management tasks https://www.youtube.com/watch?v=wvTTkiPyjCs
- Command line cheat sheet (via Tower): https://www.git-tower.com/blog/command-line-cheat-sheet/
- The Unix Family Tree: https://www.computerworld.com/article/2524660/operating-systems/the-unix-family-tree.html
Version control manages the distributed development of software, enabling collaboration, safe feature development, and snapshotted backups. Lambda's track uses the git revision control system and GitHub.com hosting.
- Understand and explain the goals of version control https://www.youtube.com/watch?v=aKmW0oe_aEU&t=0s
- Create a project starting at GitHub https://www.youtube.com/watch?v=txRu0pWqR_c
- Connect an existing project to GitHub https://www.youtube.com/watch?v=D7ytcVKsSB0
- Fork and contribute to a project https://www.youtube.com/watch?v=ggP3jBpWZwQ
- Create good commits https://www.youtube.com/watch?v=0jO9BUQUcsY
- Git cheat sheet (via Tower): https://www.git-tower.com/blog/git-cheat-sheet
- 19 Git Tips for Everday Use: https://www.alexkras.com/19-git-tips-for-everyday-use/
Markdown defines a plain-text format used across the industry for writing rich text documents. Lambda's track uses the Common Mark standard from commonmark.org.
- Learn Markdown Basics: https://youtu.be/rU7KfaEvYD4
- Common Mark: https://commonmark.org/help/
- MacDown open source Markdown editor: https://macdown.uranusjr.com
New developers often ask for help, mostly for technical issues, and often for material they are already capable of finding on their own. Finding your own answers and helping yourself is a skill set that nutures your own capabilities. Building these competencies involves insight into understanding what you've already tried, good search skills, and the ability to meticulously self-inspect. Problem solving isn't a human quality one is born with, it is a skill set that is nutured and grown.
- Smart Questions http://www.catb.org/%7Eesr/faqs/smart-questions.html
- Getting Answers http://www.mikeash.com/getting_answers.html
- What Have you Tried http://whathaveyoutried.com
- Rubber Duck Problem Solving https://blog.codinghorror.com/rubber-duck-problem-solving
Master your basic Lambda Skills. Understand how the 15-week iOS curriculum works and be able to use Zoom to communicate with PMs and Instructors:
- Understand how the 15-week iOS Curriculum works. https://youtu.be/P7qKjBbDkcY
- Master the Zoom online meeting tool. Watch these videos: Join a Zoom meeting: https://support.zoom.us/hc/en-us/articles/201362193-How-Do-I-Join-A-Meeting- and Zoom meeting controls: https://support.zoom.us/hc/en-us/articles/206618765-Zoom-Video-Tutorials.
Become familiar as possible with your base iOS tool set: Xcode, Playground, Simulator, and IB.
- Getting Started with iOS Development: https://developer.apple.com/library/archive/referencelibrary/GettingStarted/DevelopiOSAppsSwift/
- I Have This Idea for An App: https://developer.apple.com/videos/play/wwdc2018/203/
- Getting the Most out of Playgrounds in Xcode: https://developer.apple.com/videos/play/wwdc2018/402/
Swift is the primary iOS development language. Practice your skills and grow your language mastery with these Swift resources.
- The Swift Programming Language (iBooks, free)
- Using Swift with Cocoa and Objective C (iBooks, free)
- Everyone Can Code: App Development with Swift (iBooks, free)
- Learn to Code (iPad only, Swift Playgrounds for iOS, free)