Projects

Projects

Read and complete each exercise through Chapter 21 of the Swift Big Nerd Ranch Guide. You will need to purchase a copy of this book.

  • Module 1 - Swift Big Nerd Ranch Guide
  • Use a paid account or free trial to complete the Team Treehouse Learn Swift course.

  • Module 2 - Team Treehouse Introduction to Swift
  • Use the guide to complete the Food Tracker application.

  • Module 3 - Food Tracker
  • Learn about Git, Github, and GitHub Desktop. Use GitHub Desktop to upload your Food Tracker project to GitHub.

  • Module 4 - GitHub Desktop
  • Use Slack to schedule a precourse code review with one of the mentors. This must be completed before the first day of class.

  • Module 5 - Precourse Code Review
  • Students will build a simple Flashlight app to practice working with IBOutlets, IBActions, and UIControlEvents.

  • Module 6 - Views, View Controllers, User Interaction, View Hierarchies, Segues, Stack Views, Size Classes
  • About Me is an opportunity for students to introduce themselves via their first app. Students will explore Storyboards, use a variety of UIKit elements, add images, and use Xcode to install the application on an iOS device.

  • Module 6 - Views, View Controllers, User Interaction, View Hierarchies, Segues, Stack Views, Size Classes
  • Students will work with table views, learn about protocols, and implement the UITableViewDataSource and UITableViewDelegate protocols to build a Solar System directory.

  • Module 7 - Tableviews, Protocols (DataSource, Delegate)
  • Students will build a simple Journal app to practice MVC separation, protocols, master-detail interfaces, table views, and persistence.

    Journal is an excellent app to practice basic Cocoa Touch princples and design patterns. Students are encouraged to repeat building Journal regularly until the principles and patterns are internalized and the student can build Journal without a guide.

  • Module 8 - MVC, Model Objects, Model Object Controllers
  • Module 9 - Persistence using Codable
  • This assessment is designed to help you practice using what you learned in this Unit. You will have to use UITableViewControllers, different UIKit elements, segues, outlets, actions, and persistence with NSUserDefaults.

  • Module 10 - Source Control with Git
  • Students will build a simple alarm app to practice intermediate table view features, protocols, the delegate pattern, NSCoding, UILocalNotifications, and UIAlertControllers.

  • Module 11 - Delegate Pattern, Intermediate Tableviews
  • Students will build a simple alarm app to practice intermediate table view features, protocols, the delegate pattern, NSCoding, UILocalNotifications, and UIAlertControllers.

  • Module 12 - Alert Controllers, Local Alerts
  • Students will build a simple task tracking app to practice project planning, progress tracking, MVC separation, intermediate table view features, and Core Data.

  • Module 13 - Persistence with Core Data - Task
  • Students will build a simple task tracking app to practice project planning, progress tracking, MVC separation, intermediate table view features, and Core Data.

  • Module 14 - Intermediate Core Data
  • This assessment is designed to help you practice using what you learned in this Unit. You will have to use UIAlertControllers, Core Data, and intermediate table view concepts, including a custom UITableViewCell and a protocol.

  • Module 15 - Flex - Debugging
  • Post is a simple global messaging service. Students will review MVC principles and work with NSURLSession, JSON parsing, and closures to build an app that lists and submits posts to a global feed.

  • Module 16 - Closures, Grand Central Dispatch, URLSession (HTTP GET) Failable initializers
  • Post is a simple global messaging service. Students will review MVC principles and work with NSURLSession, JSON parsing, and closures to build an app that lists and submits posts to a global feed.

  • Module 17 - URLSession (HTTP GET/PUT/POST) init? and dictionaryRepresentation
  • Students will build an app to get the current weather in a user-requested city to practice asyncronous network requests, working with JSON data, and closures.

    Students will build an app to get the representives (law makers) in a user-requested state to practice asyncronous network requests, working with JSON data, closures, and intermediate table views.

  • Module 18 - Codable (Decoder) - Introduction
  • Students will build a reverse polish notation calculator that demonstrates auto layout, stacks, target-actions on UIButtons, programatic views.

    This assessment is designed to help you practice using what you learned in this Unit. To complete it you will need to be familiar with closures and asynchronous calls, NSURLSession, failable initializers, parsing through the returned data from network APIs, and working with network API documentation.

  • Module 20 - Flex - Swifty Swift
  • Timeline is a simple photo sharing service. Students will bring in many concepts that they have learned, and add complex data modeling, Image Picker, Collection Views, NSURLSession, Firebase, and protocol-oriented programming,

    This is a Capstone Level project spanning many class days and concepts. Most concepts will be covered during class, others are introduced during the project. Not every instruction will outline each line of code to write, but lead the student to the solution.

  • Module 21 - CloudKit I - CKContainer, CKRecord, CKAsset, CKQuery
  • Module 22 - CloudKit II - CKSubscription, Discoverability
  • Module 23 - CloudKit III - Users
  • Module 24 - CloudKit IV - Review
  • Students will build a simple Journal app to practice MVC separation, protocols, master-detail interfaces, table views, and persistence.

    Journal is an excellent app to practice basic Cocoa Touch princples and design patterns. Students are encouraged to repeat building Journal regularly until the principles and patterns are internalized and the student can build Journal without a guide.

  • Module 31 - Objective-C I - Fundamentals
  • Students will build a Calculator app to practice skills and concepts learned so far, with an emphasis on this week's content: UX/UI design, and the development process.

    Calculator is a mini-capstone project where students are given direction on required and optional features. It is the job of the student to turn that list of requirements into an application by going through market research, prototyping, designing a solution, evaluating different technologies, architecting the application, implementing the features, and submitting the project to TestFlight or the App Store.

  • Module 26 - UX Design - MVP Planning, Prototyping, User Interviews/Testing
  • Module 27 - UI Design - Breaking Down, Implementing Design
  • Module 28 - Implementing UI - Animation, Programmatic Views, Autolayout
  • Module 29 - Calculator Work Day
  • Students will practice writing in Objective-C by building an app that allows users to search for open source libraries using the libraries.io API. This app requires students to use concepts and APIs they already know, including MVC, property "observers", NSNotifications, NSURLSession, and JSON parsing. The challenge is learning to use these concepts in Objective-C instead of Swift.

    Students will practice writing in Objective-C by building an app that allows a user to browse images provided by the NASA Mars Rover API. This app requires students to use concepts and APIs they already know, including MVC, table and collection views, custom model objects, property "observers", NSNotifications, NSURLSession, JSON parsing, etc.

  • Module 32 - Objective-C II - Swift and Objective-C Interoperability
  • Module 33 - Objective-C III - Properties, Q&A
  • Module 34 - Memory Management in Objective-C and Swift
  • In response to Christopher Burke's answer to the question 'What is the difference between a programmer, a good programmer, and a great programmer?' we have built this technical challenge to assess where you are at after six weeks.

  • Module 35 - Flex - Six Week Challenge
  • Students will build a timer/alarm app, similar to Apple's Clock app, using NSTimer, StackViews, UIAppearance, UITabBarController, UIPickerViews, UIButtons.

  • Module 49 - UIAppearance, NSNotificationCenter
  • Students will build an app to get the posts in a user-requested subreddit to practice asyncronous network requests, working with JSON data, Codable, closures, and intermediate table views.

  • Module 19 - Intermediate Rest APIs - Intermediate Codable