Syllabus ios 1
This page describes the structure of the course. For a simple list of major
technologies taught during the course, see iOS: Technologies Used.
Prerequisites
No prior coding experience required
A Mac with a high-speed internet connection
25 hours of pre-course study is encouraged, but not required. See our iOS pre-course
roadmaps for more details.
Before You Start
Orientation with a Bloc Program Coordinator
Introduction to your Mentor and membership to the Hacker Club community
Introduction to Bloc?s project-based approach to learning
Build a Development Environment
Learn how to use Xcode proficiently
Master version control and code management with Git and GitHub
Learn basic iOS controls like buttons, labels, and text fields
iOS Fundamentals: Objective-C
Basic Objective-C Syntax
Numbers, variables, and strings
If / else statements, different types of equality
Loops, arrays, dictionaries, simple data types vs. objects
Properties and scope
iOS Fundamentals: Swift
Introduction to Swift
Compare basics in Swift and Objective-C: properties, strings, arrays, dictionaries,
loops, functions
New concepts in Swift like tuples and closures
Beginner iOS App: Build a Calculator
Your first simple iOS app is an alcohol calculator that converts alcohol content for
beer, whiskey, and wine.
Learn how to build an app with storyboards, outlets, and actions
Understand the impacts of proper sizing and styling with the UIViewController
Learn basic navigation principles with the UINavigationController
Build tabbed navigation with the UITabBarController
Intermediate iOS App: Build a Web Browser
Your second iOS app is a web browser with a colorful, floating toolbar. The web
browser enhances your privacy by purging all browser history when you switch apps.
Build a web browser app using WKWebView and delegation
Learn how to clear browser history with UIApplicationDelegate
Add a new toolbar by subclassing UIView and incorporating touch events
Learn to recognize gesture events in your app
Move and resize a floating toolbar using gesture recognizers
Use gesture recognizers to respond to different touch patterns and respond accordingly
Advanced iOS App: Build a Replica of Instagram
Master the basics: - Learn how to display a dynamic list of images in a feed - Crate
user accounts and display usernames and captions - Implement infinite scroll and
pull-to-refresh - Learn how to leverage an API and connect to Instagram to display
your friends' actual photos, captions, and comments - Understand data persistence with
Keychain - remember images and login between launches
Apply intermediate programming techniques: - Add full-screen photo viewing and saving
(custom UIViewController transitions) - Build a fancy "like" button (intro to Core
Animation) - Post images to Instagram (interacting with other apps) - Customize your
app for iPad
Build advanced features and prepare for deployment: - Write unit tests - What is
Test-Driven Development? - Check for logic errors (static analysis) - Install
analytics and crash handling services - Set your app icons and launch images - Create
your app on iTunes Connect
Phase Two Build real apps
Syllabus ios 2
Technical Projects
You will complete at least two projects during the Project Phase. Projects are
prescriptive yet open to interpretation and creativity. They are designed to challenge
you while providing guidance to keep you on track. A project is completed when all its
requirements are implemented and approved by your mentor.
Blocstagram Watch
Build upon the Instagram app you created in the Foundation Phase to add an Apple Watch
extension.
Translate your app from Objective-C to Swift
Pong Replica
Build a working replica of Pong
Learn how to use UIKit Dynamics; a physics-based animation engine that?s used for
moving around basic views
Add cool features like a bonus mode that catapults your Pong ball (inspired by
AngryBirds!) so that you learn to use powerful physics
Add Artificial Intelligence to your pong app so that you can play against the computer
and crush its robotic spirit
To-Do List App (Evernote Replica)
Build a note-taking app that syncs with iCloud
Learn to work with Core Data - a powerful Apple framework for storing information and
relationships between information
Integrate Core Data with iCloud, so that when your data syncs between all your iOS
devices
Add a feature that employs Data Detectors - when you click on a phone number, date, or
link, it can open the Phone, Calendar, or Browser app
Airplane Chat App
A Wi-fi / Bluetooth chat app that allows you to message friends without needing an
internet connection
Uses the same technology as AirDrop
Teaches the multi-peer connectivity framework
It?s great for camping and exploring outer space
Quora Replica
Build an app that allows users to ask questions, write answers, and upvote the best
answers
This app teaches you to work with Parse - the most popular mobile backend-as-a-service
Parse provides developers with an easy-to-use backend for your iOS app. (It's a place
to store questions and answers in the cloud so that the app downloads them from the
cloud.)
Foursquare Replica
BlocSpot uses Apple Maps to discover new places and exciting adventures
Search for places you want to visit, add them to a list, and get notifications when
you get close to a place you?ve bookmarked
This project teaches you to use Apple?s Core Location API to get updates when the user
changes location. It also teaches local notifications, which are like push
notifications that don?t require a backend
Swiftris 2
Build Swiftris, Bloc?s famous Tetris replica
Add new features to Swiftris including high scores
Integrate Game Center, and learn to use Game Center Challenges, Leaderboards, and
Achievements
Game Center Challenges let you send friends your high score and challenge them to beat
it. Practice writing trash talk
Swiftris 2 features a revolutionary new game feature called ?pause?: when you switch
to another app, the game pauses
Capstone
Bring your product idea to life. Use your capstone project as an opportunity to hone
your skills in a particular area of interest, or as a springboard to launch a new
product
Build your idea from scratch, while learning best practices for application scoping,
design, and architecture
Publish your app to iTunes, and we'll help you promote it