MyPage is a personalized page based on your interests.The page is customized to help you to find content that matters you the most.

I'm not curious

Swift and iOS from scratch: coding like a pro

Course Summary

iOS App Development - build apps like a professional. Do not just use the language and API, understand it.

  • +

    Course Syllabus

    • A first app
      • A project based course
      • ViewController, Project Navigation, UI Labels and simulating an iPhone
      • Changing metrics: placeholder and keyboard type
      • Interface Builder, UIButtons, and binding events with @IBActions
      • Variables and String interpolation
      • Language feature discussion: type inference
      • Binding UI components with @IBOutlet, properties and optionals
      • Summing up
    • The swift language
      • The language, why?
      • The playground: Strings and the console
      • Constants with let, "redefining" variables
      • Code smell: Comments
      • Meal: String and Int types, type inference
      • Item: Double and Bool types
      • Defining, invoking and the result of functions
      • Function with parameters
      • Summing up
    • Arrays
      • Defining, initializing and randomly accessing arrays
      • The for loop
      • Iterating over an array with several for constructs
      • Returning values from a function and implicit typing issues
      • Code smell: Implicit typed arrays
      • Summing up
    • User Interface: Tables
      • Classes, objects and properties: our meal
      • Constants and objects
      • Optional properties with ?
      • When is being optional a bad thing?
      • If/else, extracting and checking for optional values
      • The if let construct, a safer way to access optional values
      • Defining optionals with !
      • XCode bugs and why swift non-optional default is amazing
      • Optionals on method returns
      • Summing up
    • Object oriented programming
      • Good practice: the good citizen and initializers
      • Good citizen: Item
      • One to many relationship and methods
      • Instantiating our meal and items
      • Summing up
    • Language good practices applied to our project
      • Creating our Meal and Item
      • Constants for constant valids
      • Organizing our project into groups
      • Using objects and testing for optionals
      • Summing up: good practices applied
    • UI Tables
      • Tables and Static cells
      • UITableViewController and class inheritance
      • Tables and Dynamic prototypes
      • Summing up: the power of programmaticaly creating the UI
    • Tables and Navigation
      • A MealsTableViewController and selecting the application entry point
      • NavigationViewController, Segue and the view stack
      • Navigating programmaticaly
      • Summing up
    • Delegating
      • The Delegate pattern and advanced segues
      • Reloading a table's data
      • Good practice: Protocols and loose coupling
      • Good practice: domain driven naming
      • Summing up
    • Dealing with tables
      • Creating an UITableView and setting up a custom data source
      • Accessory styles and checking cells
      • The override keyword, inheritance and tight coupling
      • Allowing the user to deselect multiple items
      • Keeping track of selected items in a table
      • Equatable protocol, manipulating arrays
      • Summing up: manipulating arrays and multiple selectable items in a table
    • Programmatic UI: we might be young, but we should act as pros
      • Programmatic API versus the storyboard
      • Creating xib files like a pro
      • Creating an UI button like a pro
      • Instantiating controllers with XIB files and pushing them programatically
      • Data conversion using the old API
      • Summing up: programmatic configuring an application
    • Programmatic configuration++
      • Creating a new delegate protocol and adopting it
      • Programmatic configuration x Prepare for Segue
      • Implementing initializers for view controllers
      • IBOutleting an UITableView
      • Summing up: Programmatic configuration
    • Gesture: long press and the observer pattern
      • Detecting gestures and the UILongPressGestureRecognizer
      • Detecting which View was long pressed
      • Summing up: Long press and the Observer Pattern
    • Alerts
      • Creating an UIAlertController
      • Adding UIAlertActions
      • Encapsulating behavior
      • Summing up: alerts and caring about encapsulation
    • Optional: good or bad?
      • Smelly :( or good practice :) Optionals usage
      • Code smell: "Optional!" is as dangerous as it gets
      • Optional Chaining
      • Bug: infinitely losing money
      • Code smell: "Optional?Chaining" is as dangerous as it gets
      • I don't wan't to be the bad guy, do you?
      • the optionals rule: avoid defining, use if let as much as possible
      • Good practice: optionals, if let and alerts messages
      • Summing up: avoiding optionals, showing meaningful error messages
    • Even more good practices and questioning
      • Dont repeat yourself (DRY)
      • Good practice: refactor extract method/class
      • Default parameters
      • Invoking the refactored method
      • Code smell: if/else/elses and switch are nasty boys
      • Refactor: isolating nasty code
      • Good practice: thinking after coding, should we refactor further?
      • Summing up: avoiding copy and paste mess and simple refactor power
    • Functions, methods or closures?
      • ActionStyles: Cancel or Destructive?
      • Functional programming intro: passing functions as arguments
      • Code smell: Using properties as global variables
      • Vanilla functions: it is just a function
      • Updating the data source and redrawing the table
      • Defining a closure and passing it as an argument
      • Receiving closures as a parameter
      • Summing up: Spaguetti Code, and Closures
    • Serialization: saving data to the file system
      • Serializing with NSCoding and writing to the file system
      • Locating the file in our simulator file system
      • Saving the files, copy and pasting code :(
      • Summing up: saving to disk and serialization
    • Single Responsibility Principle and Data Access Object (DAO)
      • Single Responsibility Principle (SRP) and Data Access Object (DAO)
      • Thinking out loud: method naming (aka items items item, meals meals meal)

Course Fee:
USD 149

Course Type:


Course Status:



1 - 4 hours / week

Attended this course?

Back to Top

Awards & Accolades for MyTechLogy
Winner of
Top 100 Asia
Finalist at SiTF Awards 2014 under the category Best Social & Community Product
Finalist at HR Vendor of the Year 2015 Awards under the category Best Learning Management System
Finalist at HR Vendor of the Year 2015 Awards under the category Best Talent Management Software
Hidden Image Url

Back to Top