GithubHelp home page GithubHelp logo

sergtsaeb / seattle-ios-401d8 Goto Github PK

View Code? Open in Web Editor NEW

This project forked from codefellows/seattle-ios-401d8

0.0 2.0 0.0 455 KB

Class repository for seattle-iOS-401d8, with lead instructor Adam Wallraff

License: MIT License

seattle-ios-401d8's Introduction

iOS 401

Course Specific Resources

The main repository for the 10 week iOS 401 Course.

We’re delighted to have you as a member of our Code 401: Advanced Software Development in iOS course. It'll be a lot of work and a lot of fun. In this course you will study professional techniques and practices as you advance your skills in iOS development. This course includes professional development curriculum to get you ready for your job search, plus job search assistance after graduation.This is the course layout for the 401 iOS Course at Code Fellows. The first 4 weeks of the course we'll be studying Swift. This will be followed by a week long project built by students and written in Swift. The next 4 weeks we'll be studying Objective-C. This will be followed with a week long project build by student teams and written in Objective-C.

Instructional Staff

  • Adam Wallraff - Lead Instructor
  • Erica Winberry - Lead TA
  • Jeremy Moore - TA
  • TBD - TA

At the end of this course, you will be able to:

  • Create mobile apps in Objective-C and Swift 3.
  • Use industry tools and frameworks such as Cocoa, Xcode, UIKit, Git, and more.
  • Understand and know how to properly use UIKit, asynchronous code, CoreImage, NSURLSession and JSON, MapKit and CoreLocation, AutoLayout, Source Control, Core Data, Animation, and the app submission process.
  • Create a successful online brand, network, create an impressive resume, succeed in personal and technical interviews, and conduct a successful job search.

Learn with Stacked Modules

Concepts in each of our courses are taught using stacked modules, where a new concept is introduced in each class session, building upon what came before it. This is a challenging style that requires persistence, practice, and collaboration, but allows more concepts to be introduced over the length of the course. This method helps students learn and retain more information in a short period of time.

5 Tips for Success

Get ready to tackle some seriously ambitious material! You'll have the most success if you:

  • Take notes, or keep a blog, throughout the duration of the class
  • Keep up with all daily assignments
  • Research topics that are new or confusing
  • Speak up when you're stuck for more than 15 minutes
  • AND: Above all else, attention to detail.

Required Materials:

  • A Mac laptop running Yosemite, or newer, with plenty of free space on the hard drive
  • Xcode from the Mac App Store with the command line tools
  • SourceTree
  • A subscription to the Apple Developer Program - $99/year
  • A GitHub account

Required Textbook:

Course Reminders:

  • Students will build from scratch, and present, a project during weeks 5 and 10.
  • We will have individual/group Whiteboarding exercises on Fridays.
  • There will be daily reading assignments that will be reviewed in class.
  • One of the weekly assignments will be to fill out and submit your weekly surveys. This is to be done by Monday each week.
  • Students will be required to be present each day. Maintaining a 90% attendance rate is required for graduation.
    • If it is necessary to miss a class, students must discuss with Instructor prior to missing class.

Course Outline:

Week 1: ToDo List

We will be building A ToDo List application to kick off the course!

  • Class 1: Variables, Numeric Types, Strings, Decisions, Functions, Closures, Optionals
  • Class 2: Arrays, Dictionaries, Sets
  • Class 3: Structures, Classes, Enums, Methods, Properties, POP
  • Class 4: Error Handling, Generics, Functional Programming
  • Class 5: Data Structures and Whiteboarding

Week 2: Twitter Clone

We will build a Twitter Clone. Our Twitter clone will utilize the Twitter API, Parse the returning JSON, and create the appropriate Model objects. We will display the Tweets to the user.

  • Class 6: MVC, Classes, Structs, JSON
  • Class 7: Accounts and Social Frameworks, HTTP Status Codes, Switch Statements, MainQueue
  • Class 8: Autolayout, Passing Information between ViewControllers, Navigation Controller
  • Class 9: Lazy Properties, Additional API Endpoints, Nibs/Xibs
  • Class 10: Data Structures and Whiteboarding

Week 3: Instagram Clone

We will build our own version of a photo filtering app. We will utilize CoreImage to apply different filters to images taken with the camera.

  • Class 11: Parse, Auto Layout(cont.), UIImagePickerController
  • Class 12: Resizing Images, UIAlertController, CIFilters
  • Class 13: UICollectionView, Lazy Load Images, Property Observers
  • Class 14: UIPinchGestureRecogizer, Constraint Animations
  • Class 15: Data Structures and Whiteboarding

Week 4: GitHub Client

We will build our own GitHub Client that will. We will utilize OAuth, our AppDelegate, and UISearchBar to navigate the GitHub API.

  • Class 16: Custom App URL Schemes, OAuth, HTTP & Rest API, NSURLSession
  • Class 17: Static Table View, KeyChain, Generics, Ternary Operator, App Delegate/Root ViewController, Big O
  • Class 18: Animation in iOS, Transforms, Custom View Controller Transitions
  • Class 19: WebView, Safari View Controller, REGEX and Input Validation, Swift Extensions
  • Class 20: Data Structures and Whiteboarding

Week 5: Project Week

Students will build an application from scratch.

Swift Project Week Projects:

TBD.

Week 6: Understanding Objective-C

Introduction to Objective-C.

  • Class 26: Intro to Objective-C. Classes, Setters and Getters, Looping.
  • Class 27: Foundation, Numbers and Strings, Working with Files, ARC/MRC
  • Class 28: Memory Management & Balloons, App Distribution, Multiple Storyboards, KVO
  • Class 29: Instruments & Stack Trace, Obj-c Runtime, Run Loops, Messaging Nil
  • Class 30: Professional Development Day 1

Week 7: Location Reminders

We will build a Reminders app that uses locations to create reminders. This application will utilize CoreLocation and MapKit.

  • Class 31: Objective-C, MapKit
  • Class 32: Blocks, Objective-C Constants, CoreLocation, Map Annotations, Parse GeoPoints
  • Class 33: Object Equality, PFSubclassing, MKMapViewDelegate, Notification Center, App State, Local & Push Notifications.
  • Class 34: Local Notifications, MKMapViewOverlay, PFUser, Linked Lists
  • Class 35: Data Structures and Whiteboarding

Week 8: Core Data Hotel

Students will be creating a Hotel Service, allowing them to book hotel rooms, see different hotels, etc.

  • Class 36: Programmatic Layout, Relational Databases, CoreData
  • Class 37: UIDatePicker, UIPickerView, Advanced Fetching
  • Class 38: Unit Testing, TDD, NSFetchedResultsController, Existing Projects and CoreData
  • Class 39: Testing CoreData, Version Migration, iCloud, Multiple Contexts, Binary Search Tree
  • Class 40: Professional Development Day 2

Week 9: Cross-platform ToDo List

We will create a Cross-platform ToDo list.

  • Class 41: Container ViewControllers, OAuth with WebViews, NSError
  • Class 42: CocoaPods, AFNetworking, GCD
  • Class 43: Project Pitches
  • Class 44: Project Week groups announced
  • Class 45: Data Structures and Whiteboarding, Project Preparations

Week 10: Project Week

Instructors will pick the project Students work on for this Project Week.

Objective-C Project Week Project Ideas

TBD.

seattle-ios-401d8's People

Contributors

adamwallraff avatar damoores avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.