| At a glance: Notes | |||
|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
- 1. Creating an Xcode Project
- 2. Model View Controller
- 3. Interface Builder
- 4. Building the Interface
- 5. Creating View Objects
- 6. Configuring View Objects
- 7. Running on the Simulator
- 8. A brief introduction to Auto Layout
- 9. Making connections
- 10. Declaring outlets
- 11. Setting outlets
- 12. Defining action methods
- 13. Setting target and actions
- 14. Summary of connections
- 15. Creating the Mordel Layer
- 16. Implementing action methods
- 17. Loading the first question
- 18. Building the Finished Application
- 19. Application icons
- 20. Launch Screen
- 21. App Execution
| At a glance: Notes | |
|---|---|
![]() |
![]() |
- 1. Types in Swift
- 2. Using Standard Types
- 3. Inferring Types
- 4. Specifying Types
- 5. Number and Boolean Types
- 6. Collection Types
- 7. Literals and Subscripting
- 8. Initializers
- 9. Properties
- 10. Instance Methods
- 11. Optionals
- 12. Subscripting dictionaries
- 13. Loops and String Interpolation
- 14. Enumerations and the Switch statement
- 15. Enumerations and raw values
- 16. Exploring Apple's Documentation
This app converts values between degrees Fahrenheit and degrees Celsius.
| Notes | Code | Diagrams | xcodeproj |
|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
- 1. View Basics
- 2. The View Hierarchy
- 3. Creating a New Project
- 4. View and Frames
- 5. customizing the labels
- 6. The Auto Layout System
- 7. The alignment rectangle and layout attributes
- 8. Constraints
- 9. Adding Constraints in Interface Builder
- 10. Intrinsic Content Size
- 11. Misplaced views
- 12. Adding more constraints
- 13. Bronze Challenge: More Auto Layout Practice
| At a glance: Notes | |||
|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
- 1. Text Editing
- 2. Keyboard attributes
- 3. Responding to text field changes
- 4. Dismissing the keyboard
- 5. Implementing the Temperature Conversion
- 6. Number formatters
- 7. Delegation
- 8. Conforming to a protocol
- 9. Using a Delegate
- 10. More on protocols
- 11. Bronze Challenge: Disallow Alphabetic Characters
| At a glance: Notes | |||
|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
- 1. The View of a View Controller
- 2. Setting the Initial ViewController
- 3. UITabBarController
- 4. Tab bar items
- 5. Loaded and Appearing Views
- 6. Accessing subviews
- 7. Interacting with View Controllers and Their Views
- 8. Silver Challenge: Dark Mode
- 9. For the more curious: Retina Display
- 10. Silver Challenge: Dark Mode
- 11. For the More Curious: Retina Display
| At a glance: Notes | |||
|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
- 1. Creating a View Programmaticallu
- 2. Programmatic Constraints
- 3. Anchors
- 4. Activating Constraints
- 5. Layout guides
- 6. Margins
- 7. Explicit constraints
- 8. Programmatic Controls
- 9. Bronze Challenge: Another Tab
- 10. For the More Curious: NSAutoresizingMaskLayoutConstraint
- 11. Silver Challenge: User's Location
- 12. Gold Challenge: Dropping Pins
| At a glance: Notes | |||
|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
- 1. Internationalization
- 2. Formatters
- 3. Base internationalization
- 4. Preparing for localization
- 5. Localization
- 6. NSLocalizedString and strings tables
- 7. Bronze Challenge: Another Localization
- 8. For the More Curious: Bundle’s Role in Internationalization
- 9. For the More Curious: Importing and Exporting as XLIFF
| At a glance: Notes | |
|---|---|
![]() |
![]() |
- 1. Basic animations
- 2. Closures
- 3. Another Label
- 4. Animation Completion
- 5. Animating Constraints
- 6. Timing Functions
- 7. Bronze Challenge: Spring Animations
- 8. Silver Challenge: Layout Guides
| At a glance: Notes | |
|---|---|
![]() |
![]() |
- 1. A buggy project
- 2. Debugging Basics
- 3. interpreting Consolo messages
- 4. Fixing the firs bug
- 5. Caveman debugging
- 6. The Xcode Debugger: LLDB
- 7. Setting breakpoints
- 8. Stepping through code
- 9. The LLDB console
It keeps an inventory of all your possessions. It records name, serial number, value and a picture of your possession.
| Notes | Code | Diagrams | xproj |
|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
- 1. Beginning the Homepwner Application
- 2. UITableViewController
- 3. Subclassing UITableViewController
- 4. Creating the Item Class
- 5. Custom Initializers
- 6. UITableView's Data Source
- 7. Giving the controller access to the Store
- 8. Implementing data source methods
- 9. UITableViewCells
- 10. Creting and retrieving UITableViewCells
- 11. Reusing TableViewCells
- 12. Content Insets
- 13. Bronze Challenge: Sections
- 14. Silver Challenge: Constant Rows
- 15. Gold Challenge: Customizing the Table
| At a glance: Notes | |||
|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
- 1. Editing Mode
- 2. Adding Rows
- 3. Deleting Rows
- 4. Moving Rows
- 5. Displaying User Alerts
- 6. Design Patterns
- 7. Bronze Challenge: Renaming the Delete Button
- 8. Silver Challenge: Preventing Reordering
- 9. Gold Challenge: Really Preventing Reordering
| At a glance: Notes | |||
|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
- 1. Creating ItemCell
- 2. Exposing the Properties of ItemCell
- 3. Using ItemCell
- 4. Dynamic Cell Heights
- 5. Dynamic Type
- 6. Responding to User changes
- 7. In case you use a xib, registered first
- 8. Bronze Challenge: Cell Colors
| At a glance: Notes | |||
|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
- 1. Using UIStackView
- 2. Implicit Constraints
- 3. Content Hugging Priorities
- 4. Content Compression resistence priorities
- 5. Stack View Distribuition
- 6. Nested Stack Views
- 7. Stack View Spacing
- 8. Segues
- 9. Hooking Up The Content
- 10. Passing data around
- 11. Bronze Challenge: More Stack Views
| At a glance: Notes | |||
|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
- 1. UINavigationController
- 2. Navigating with UINavigationController
- 3. Appearing and Disappearing Views
- 4. Dismissing the keyboard
- 5. Event handling basics
- 6. Dismissing by pressing the Return key
- 7. Dismissing by tapping elsewhere
- 8. UINavigationBar
- 9. Adding buttons to the Navigation bar
- 10. Bronze Challenge: Displaying a Number Pad
- 11. Silver Challenge: A Custom UITextField
- 12. Gold Challenge: Pushing More View Controllers
- 13. Solve the ItemCell.xib to display correct cell heigh
| At a glance: Notes | |||
|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
- 1. Displaying Images and UIImageView
- 2. Adding a camera button
- 3. Taking Pictures and UIImagePickerController
- 4. Setting the image picker's sourceType
- 5. Setting the image picker's delegate
- 6. Presenting the image picker modally
- 7. Permissions
- 8. Saving the image
- 9. Creating image store class
- 10. Giving View Controllers Access to the Image Store
- 11. Creating and Using Keys
- 12. Wrapping Up ImageStore
- 13. Bronze Challenge: Editing an Image
- 14. Silver Challenge: Removing an Image
- 15. Gold Challenge: Camera Overlay
- 16. For the More Curious: Navigating Implementation Files
| At a glance: Notes | |||
|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
- 1. Archiving
- 2. Application Sandbox
- 3. Constructing a file URL
- 4. NSKeyedArchiver and NSKeyedUnarchiver
- 5. Loading files
- 6. Application States and Transitions
- 7. Writing to the FileSystem with Data
- 8. Error Handling
- 9. Bronze Challenge: PNG
- 10. For the More Curious: Application State Transitions
- 11. For the More Curious: Reading and Writing to the FileSystem
- 12. For the More Curious: The Application Bundle
| At a glance: Notes | |||
|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
An app that lets the user draw by touching the screen
| Notes | Code | Diagrams | xcodeproj |
|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
- 1. Touch Events
- 2. Creating the TouchTracker Application
- 3. Creating the Line Struct
- 4. Value types vs reference types
- 5. Creating DrawView
- 6. Drawing with DrawView
- 7. Turning Touches into Lines
- 8. Handling multiple touches
- 9. @IBInspectable
- 10. For more curious: The responder chain
- 11. For the More Curious: UIControl
| At a glance: Notes | |||
|---|---|---|---|
![]() |
![]() |
![]() |
- 0. UIGestureRecognizer and UIMenuController - Intro
- 1. UIGestureRecognizer Subclasses
- 2. Detecting Taps with UITapGestureRecognizer
- 3. Multiple Gesture Recognizer
- 4. UIMenuController
- 5. More Gesture Recognizers
- 6. UILongPressGestureRecognizer
- 7. UIPanGestureRecognizer and simultaneous recognizers
- 8. More on UIGestureRecognizer
- 9. Silver Challenge: Mysterious Lines
- 10. Gold Challenge: Speed and Size
- 11. Platinum Challenge: Colors
- 12. For the More Curious: UIMenuController and UIResponderStandarEditActions
Photorama App make a web service request to get interesting photos from Flickr.
| Notes | Code | Diagrams | xproj |
|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
- Starting the Photorama Application
- Building the URL
- Formatting URLs and requests
- URLComponents
- Sending the Request
- URLSession
- Modeling the Photo
- JSON Data
- JSONSerialization
- Enumerations and associated values
- Parsing JSON data
- Downloading and Displaying the Image Data
- The Main Thread
- Bronze Challenge: Printing the Response Information
- Silver Challenge: Fetch Recent Photos from Flickr
- For the More Curious: HTTP
| At a glance: Notes | |||
|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
- 1. Displaying the Grid
- 2. Collection View Data Source
- 3. Customizing the Layout
- 4. Creating a Custom UICollectionViewCell
- 5. Downloading the Image Data
- 6. Extensions
- 7. Image caching
- 8. Navigating to a Photo
- 9. Silver Challenge: Updated Item Sizes
- 10. Golden Challenge: Creating a Custom Layout
| At a glance: Notes | |||
|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
- 1. Object Graphs
- 2. Entities
- 3. Modeling Entities
- 4. Transformable attributes
- 5. NSManagbleObject and subclasses
- 6. NSPersistentContainer
- 7. Updating Items
- 8. Inserting into the context
- 9. Saving changes
- 10. Updating the Data Source
- 11. Fetch requests and predicates
- 12. Bronze Challenge: Photo View Count
- 13. For the More Curious: The Core Data Stack
- 14. Responsibilities of each class Summary
















































































