iOS Bootcamp (full-time)
Learn to program fluently in Swift and/or Objective C. You will use the iOS tools with confidence and build
fully functional iOS apps of virtually any complexity.
iOS Bootcamp
Immersive 16-Weeks
WHAT YOU WILL LEARN
We’ll start you off by teaching you programming fundamentals through a series of challenging practice problems. Then we’ll help you gain an in-
depth understanding of object-oriented programming. Once you have a strong grasp of these important topics, you will move on to developing
apps. At the completion of the course, you will have developed a strong skill set with a focus on:
- OS architecture
- Computer Science fundamentals
- Fundamentals of UI/UX design on iOS (animation, user interaction, buttons, tabs, maps, etc.)
- Data: Storing data in the cloud using AWS as well as on the mobile device using SQLite.
- Interacting with web services and APIs such as social networks and review sites
- creating your own web services using AWS
- Using iOS device features like camera and GPS
- Relatively advanced topics such as security, app performance, asynchronous programming, design patterns, and testing
COMPUTER SCIENCE FUNDAMENTALS
Fundamental Programming Skills
- Strings
- Arrays
- Sets
- Linked Lists
- Stacks
- Queues
- Sorting
- Searching
- Analysis of Algorithms
MOBILE DEVELOPMENT
Fundamental Programming Skills
- 100 challenging programming problems in Objective-C (or Swift if you prefer)
- Emphasis on fundamentals and consistency
- Tooling essentials: XCode, LLVM, and Clang
- Source control using Git
Digital Leash: Build a small but complete mobile application with a cloud backend
- Major iOS Classes for app dev
- The delegation pattern in iOS
- HTTP and JSON for device-cloud communication
- End to end debugging techniques (iOS, network, Backend, Memory)
- Parent- Child Geolocation app (Two apps, one for parent and one for child). The goal of this project is to learn about
Interface builder, Geolocation, Async network connections, JSON Obj-C conversions and validation
UI and Essential Classes for iOS
- Collections
- UITableView and UICollectionView
- NSURLConnection
- Delegate pattern in various contexts
- Simple UITableView
- NavController with Network connectivity and Object-Oriented design
- Goal: Learn about the following:
- The Navigation controller hierarchy
- View lifecycle- viewDidLoad, viewDidAppear
- UITableView, UICollectionView – delete, selections, best data structure for UITableView and reloading of Data
- Robust Async Network calls
- Object-oriented design and abstraction of the data layer and view layer
Data Persistence
- Options for persisting data on device – NSUserDefaults, SQLite
- Core Data persistence framework
- Relational database design and the concept of normalization
- – NavController- add persistence using sqlite, user defaults, core-data
More iOS Essentials
- Creating UI programmatically
- UIWebVIew, WKWebView – back and forth communication with native code
- NSTimer
- Maps
- NSNoticationCenter
- UIImagePickerController for camera
- Social framework for Facebook posts and Twitter tweets
- Animation essentials – build your own game!
- Small projects involving all of the above
Media and The Cloud
- Creating a backend with Firebase
- Integrate backend with iOS using JSON
- Camera app with advanced features such as cloud storage using Amazon S3
- Video camera app with slow motion
INTERNSHIP PROJECT
There are a variety of technology options depending on the project we work on. But most will include the following:
- An iOS App
- RESTful services using a Java backend (typically Tomcat, Spring)
- HTTP and JSON for device-cloud communication
- Design and Architecture–database modeling, service design and system architecture
- Our systems are typically deployed on Amazon EC2 and we use S3 for storage. We may use other Amazon services such
as SNS/SQS/MySQL where applicable.