Index
A
- address section
- creating / Creating our address section
- annotations
- creating / Creating and adding annotations
- adding / Creating and adding annotations
- API / What is an API?
- API Manager
- creating / Creating an API Manager
- API Manager file
- exploring / Exploring the API Manager file
- Apple
- supported intents / Supported intents
- apply filter view controller
- creating / Creating our apply filter view controller
- apps
- drag, accepting from / Accepting drag from other apps
- App Store listing
- creating / Creating an App Store listing
- archive build
- creating / Creating an archive build
- array
- about / Arrays
- empty array, creating / Creating an empty array
- creating, with initial values / Creating an array with initial values
- mutable array, creating / Creating a mutable array
- items, adding / Adding items to an array
- element count, checking / Checking the number of elements in an array
- empty array, checking / Checking for an empty array
- value, retrieving / Retrieving a value from an array
- iterating / Iterating over an array
- items, removing / Removing items from an array
- Auto Layout
- adding, to Explore header / Adding Auto Layout to the Explore header
- adding, to Explore cell / Adding Auto Layout to the Explore cell
- adding, to Restaurant cell / Adding Auto Layout to the Restaurant cell
- adding, to headers / Adding Auto Layout to the headers
- adding, to photos section / Adding Auto Layout to the photos section
- adding, to Review cells / Adding Auto Layout to the Review cells
- adding, for Photo Filter View / Adding Auto Layout for the Photo Filter View
- adding, to Photo Filter cell / Adding Auto Layout to our Photo Filter cell
- adding, to cell / Adding Auto Layout
- auto layout / Auto Layout
B
- basic notifications / Starting with the basics
- Boolean
- about / Booleans
- creating / Creating a Boolean
- bugs
- detecting / Debug and print() – detecting your bugs
- bundle identifier
- creating / Creating a bundle identifier
- buttons
- adding, to notifications / Adding buttons
C
- cell
- setting up / Setting up our cell, Setting up cells
- connecting to / Connecting to our cell
- cell UI
- setting up / Setting up the cell UI
- certificate signing request (CSR)
- creating / Creating a certificate signing request
- classes / Controllers and classes
- closed Range / Closed range
- code
- organizing / Organizing your code
- Collection View cells
- about / Understanding Collection View controllers and Collection View cells
- data, obtaining / Getting data into Collection View
- Collection View Controller
- about / Collection View Controller, Understanding Collection View controllers and Collection View cells
- adding / Adding a Collection View Controller
- outlets, hooking up / Hooking up our outlets
- cell, setting up / Setting up our cell
- comments / Comments – leaving yourself notes or reminders
- comparison operators / Comparison operators
- constants
- about / Variables and constants – where data is held
- versus variables / Why constants versus variables?
- control flow
- about / Control flow
- for...in loop / The for...in loop
- while loop / The while loop
- repeat...while loop / The repeat...while loop
- controllers
- about / Controllers and classes
- creating / Creating our controller
- Collection View controllers / Understanding Collection View controllers and Collection View cells
- Collection View cells / Understanding Collection View controllers and Collection View cells
- data, obtaining into Collection View / Getting data into Collection View
- data source / Understanding the data source
- Core Data / What is Core Data?
- Core Data manager
- updating / Updating our Core Data manager
- custom annotations
- creating / Creating custom annotations
- custom color
- creating / Creating a custom color
- custom initializer / ExploreItem.swift
- custom UI
- adding, to notifications / Custom UI in notifications
D
- 3D Touch quick actions
- adding / Adding 3D Touch quick actions
- static / Adding 3D Touch quick actions
- dynamic / Adding 3D Touch quick actions
- data
- obtaining / Getting data
- adding, to property list / Adding data to our property list
- passing, to restaurant detail / Passing data to restaurant detail
- displaying, in static Table View / Displaying data in our static Table View
- data manager
- working with / Working with our data manager
- data model
- creating / Creating a data model
- data source
- adding, to Table View / Adding the data source and delegate
- data types
- about / Data types – where it all starts
- strings / String
- integers / Integer data type
- floating-point numbers / Floating-point numbers
- Booleans / Booleans
- Debug panel / Debug and print() – detecting your bugs
- decrement operation / Increment and decrement
- delegate
- adding, to Table View / Adding the data source and delegate
- development certificate
- development provisioning profile
- creating / Creating a Development Provisioning Profile
- dictionary
- about / Dictionaries
- creating / Creating a dictionary
- elements, adding / Adding and updating dictionary elements
- elements, updating / Adding and updating dictionary elements
- item, accessing / Accessing an item in a dictionary
- values, iterating over / Iterating over dictionary values, Iterating over dictionary keys and values
- keys, iterating over / Iterating over dictionary keys, Iterating over dictionary keys and values
- items count, checking / Checking the number of items in a dictionary
- items, removing / Removing items from a dictionary
- drag
- accepting, from apps / Accepting drag from other apps
- accepting, from user / Accepting drag from other apps
- DRY (don't repeat yourself) / Creating our Map Data Manager
E
- empty array
- creating / Creating an empty array
- checking / Checking for an empty array
- Explore / Explore
- Explore cell
- Auto Layout, adding to / Adding Auto Layout to the Explore cell
- Explore Collection View cell
- setting up / Setting up the Explore cell
- ExploreData.plist / ExploreData.plist
- ExploreDataManager
- refactoring / Refactoring ExploreDataManager
- ExploreDataManager.swift / ExploreDataManager.swift
- Explore header
- setting up / Setting up the Explore header
- Auto Layout, adding to / Adding Auto Layout to the Explore header
- ExploreItem.swift / ExploreItem.swift
- Explore tab
- storyboard, creating for / Creating a new storyboard for the Explore tab
- ExploreViewController
- refactoring / Refactoring ExploreViewController
- extension / ExploreItem.swift
- external testing / External testing
F
- favorites
- adding / Adding favorites
- model object, creating / Creating a new model object
- files
- creating / Starting from scratch
- filter cell
- creating / Creating a filter cell
- filter items
- dragging / Dragging and dropping filter items
- dropping / Dragging and dropping filter items
- filters / Understanding filters
- filter scroller
- creating / Creating our filter scroller
- floating-point numbers
- about / Floating-point numbers
- adding / Adding floating-point numbers
- folders
- creating / Creating folders
- food reviews
- about / Getting started with reviews
- ratings, displaying in custom UIControl / Displaying ratings in our custom UIControl
- touch events, adding / Adding our touch events
- unwind segues setup / Setting up the unwind segues
- rating control setup / Setting up our rating control
- review form controller creation / Creating our review form controller
- for...in loop / The for...in loop
- functions
G
- grid
- updating / Updating the grid
H
- half-closed Range / Half-closed range
- headers
- Auto Layout, adding to / Adding Auto Layout to the headers
- Hungarian notation / Hungarian notation
I
- IBOutlets
- UI, hooking with / Hooking up our UI with IBOutlets
- UI elements, hooking up / Hooking up our UI with IBOutlets
- if statements / The if statements – having fun with logic statements
- iMessages
- about / Understanding iMessages
- extension, creating / Creating our extension
- assets, updating / Updating our assets
- framework, creating / Creating a framework
- message cell, connecting / Connecting our message cell
- restaurants, displaying / Showing restaurants
- crashing / iMessage crashing
- reservations, sending / Sending reservations
- increment operation / Increment and decrement
- inheritance / Classes and structures
- integers
- about / Integer data type
- variables, creating with / Creating a variable with an integer (Int)
- internal testing / Internal testing
- items
- adding, to array / Adding items to an array
- array, adding / Adding items to an array
- removing, from array / Removing items from an array
- accessing, in dictionary / Accessing an item in a dictionary
- count, checking / Checking the number of items in a dictionary
- removing, from dictionary / Removing items from a dictionary
- removing, from set / Removing items from a set
J
- JSON file / Understanding a JSON file
L
- Let's Eat app
- about / App tour
- Explore tab / Explore tab
- Locations view / Locations
- Restaurant listings / Restaurant listings
- Restaurant detail / Restaurant detail
- Map tab / Map tab
- setup / Project setup
- creating / Creating a new project
- let constant / Adding floating-point numbers
- local sessions / Accepting drag from other apps
- location
- adding, to Table View / Adding locations to our Table View
- setting / Selecting a location
- location cell / Location cell
- location data manager
- creating / Creating our location data manager
- location list
- about / Location list
- Header view, adding / Adding a Header view
- selected location, passing to Explore View / Passing a selected location back to Explore View
- Done button, unwinding / Unwinding our Done button
- last selected location, obtaining / Getting the last selected location
- location listing / Location listing
- Location View Controller
- Table View, connecting with / Connecting our Table View with our Location View Controller
- Location View Controller class
- creating / Creating our Location View Controller class
M
- managed object context (moc) / Core Data manager
- managed object model
- about / What is Core Data?
- creating / Creating a data model
- entity auto-generation / Entity auto-generation
- Restaurant Photo Entity / Restaurant Photo Entity
- item review / Review item
- Core Data manager / Core Data manager
- map annotations
- setting up / Setting up map annotations
- MKAnnotation / What is an MKAnnotation?
- restaurant annotation / Creating a restaurant annotation
- Map Data Manager, creating / Creating our Map Data Manager
- base class, creating / Creating a base class
- code, refactoring / Refactoring code
- Map Data Manager
- creating / Creating our Map Data Manager
- Map Kit View / Map Kit View
- Map tab
- storyboard, creating for / Creating a new storyboard for the Map tab
- map to restaurant detail
- about / Map to restaurant detail, Map to restaurant detail
- storyboard reference, creating / Creating a storyboard reference
- MapViewController
- refactoring / Refactoring MapViewController
- Map View Controller
- creating / Creating our Map View Controller
- MARK comment
- using / Using the MARK comment
- Messages UI
- implementing / Implementing our Messages UI
- Auto Layout, adding to cell / Adding Auto Layout to our cell
- MKAnnotation / What is an MKAnnotation?
- modal
- adding / Adding a modal
- Bar Button Items, updating / Updating Bar Button Items
- Cancel button, unwinding / Unwinding our Cancel button
- first Table View, adding / Adding our first Table View
- model
- about / Model
- ExploreData.plist / ExploreData.plist
- ExploreItem.swift / ExploreItem.swift
- ExploreDataManager.swift / ExploreDataManager.swift
- Model View Controller (MVC)
- about / Useful terms, Model View Controller (MVC)
- architecture / Understanding the Model View Controller architecture
- Model camp / Understanding the Model View Controller architecture
- View camp / Understanding the Model View Controller architecture
- Controller camp / Understanding the Model View Controller architecture
- setting up / Getting familiar with the setup
- classes / Classes and structures
- structures / Classes and structures
- mutable array
- creating / Creating a mutable array
N
- navigation button
- adding / Adding a navigation button
- Navigation Controller / Navigation Controller
- no data
- handling / Handling no data
- non-local sessions / Accepting drag from other apps
- notifications
- permission, obtaining / Getting permission
- setting up / Setting up notifications
- displaying / Showing notifications
- customizing / Customizing our notifications
- images, embedding / Embedding images
- buttons, adding / Adding buttons
- custom UI, adding to / Custom UI in notifications
O
- one-sided Range operator / One-sided range
- operations, integers
- about / Operations with our integers
- increment / Increment and decrement
- decrement / Increment and decrement
- comparison operators / Comparison operators
- optional binding / Optionals and optional bindings
- optionals
- about / Optionals and optional bindings
- adding, to Playgrounds / Optionals and optional bindings
- need for / Why optionals?
- overall rating
- adding / Adding an overall rating
P
- permission
- obtaining / Getting permission
- persistent store coordinator / What is Core Data?
- Photo Filter cell
- Auto Layout, adding to / Adding Auto Layout to our Photo Filter cell
- Photo Filter View
- adding / Adding our Photo Filter View
- Auto Layout, adding for / Adding Auto Layout for the Photo Filter View
- Photo Filter View cell
- creating / Creating the Photo Filter View cell
- photos
- saving / Saving photos
- photos section
- about / Photos section
- Auto Layout, adding to / Adding Auto Layout to the photos section
- Playground project
- Playgrounds / Playgrounds – an interactive coding environment
- print() / Debug and print() – detecting your bugs
- production certificate
- production provisioning profile
- creating / Creating a production provisioning profile
- property list (plist)
- creating / Creating our first property list (plist)
- data, adding to / Adding data to our property list
R
- Ranges
- about / Ranges
- closed Range / Closed range
- half-closed Range / Half-closed range
- repeat...while loop / The repeat...while loop
- restaurant annotation
- creating / Creating a restaurant annotation
- Restaurant cell
- setting up / Setting up the Restaurant cell
- Auto Layout, adding to / Adding Auto Layout to the Restaurant cell
- restaurant cell class
- creating / Creating our restaurant cell class
- restaurant data manager
- creating / Creating a restaurant data manager
- restaurant detail
- data, passing to / Passing data to restaurant detail
- updating / Updating restaurant details
- restaurant list
- location, passing to / Passing location and cuisine to the restaurant list
- restaurant list cell outlets
- setting up / Setting up restaurant list cell outlets
- restaurant listing / Restaurant listing, Restaurant listing
- Restaurant List View
- adding / Adding our Restaurant List View
- outlets, hooking up / Hooking up our outlets
- cell, setting up / Setting up our cell
- RestaurantViewController
- refactoring / Refactoring RestaurantViewController
- Review cells
- Auto Layout, adding to / Adding Auto Layout to the Review cells
- reviews
- creating / Creating reviews
- saving / Saving reviews
- Reviews section
- about / Reviews section
- reservation times cells, updating / Updating the reservation times cells
- reservation information / Reservation information
- reservation header / Reservation header
- reviews section / Reviews section
- Review storyboard
- setting up / Setting up the Review storyboard
- Reviews View
- adding / Adding Reviews View
- reviews, viewing / Viewing reviews
S
- section headers
- about / Section header
- creating / Creating our section headers
- segue / Segue
- sets
- about / Sets
- empty set, creating / Creating an empty set
- creating, with array literal / Creating a set with an array literal
- mutable set, creating / Creating a mutable set
- items, adding / Adding items into a set
- checking, for item content / Checking if a set contains an item
- iterating over / Iterating over a set
- intersecting / Intersecting two sets
- joining / Joining two sets
- items, removing / Removing items from a set
- Siri
- about / Understanding SiriKit
- capabilities, enabling / Enable Siri capabilities
- users, creating / Creating users
- intent handler, updating / Updating our intent handler
- testing / Testing Siri
- static Table View
- Review form, creating / Creating a Review form
- Reviews cell, updating / Updating the Review cells
- cell, updating / Updating our first cell
- UI elements, positioning / Positioning UI elements
- Auto Layout, adding for reviews creation / Adding Auto Layout for creating reviews
- data, displaying in / Displaying data in our static Table View
- storyboard
- about / Storyboard
- setting up / Storyboard setup
- app assets, adding / Adding our app assets
- updating / Storyboards
- launch screen, creating / Creating our launch screen
- app logo, adding onto screen / Creating our launch screen
- Navigation Controller, adding / Adding a Navigation Controller
- refactoring / Refactoring the storyboard
- creating, for Map tab / Creating a new storyboard for the Map tab
- creating, for Explore tab / Creating a new storyboard for the Explore tab
- storyboard reference / Creating a new storyboard for the Map tab
- string interpolation / String interpolation
- strings
- about / String
- variables, creating with / Creating a variable with a string
- concatenating / Concatenating strings
- Swift / Type safety and type inference
- Swift types / Classes and structures
T
- Tab Bar Controller / Tab Bar Controller
- Table View
- connecting, with Location View Controller / Connecting our Table View with our Location View Controller
- code / Digging into our Table View code
- data source, adding / Adding the data source and delegate
- delegate, adding / Adding the data source and delegate
- locations, adding to / Adding locations to our Table View
- Table View Controller / Table View Controller
- TestFlight app / Internal and external testing
- testing
- internal testing / Internal testing
- external testing / External testing
- type inference / Type safety and type inference
- type safety / Type safety and type inference
U
- UI elements
- hooking up, with IBOutlets / Hooking up our UI with IBOutlets
- UI setup
- terms / Useful terms
- View Controller / View Controller
- Table View Controller / Table View Controller
- Collection View Controller / Collection View Controller
- Navigation Controller / Navigation Controller
- Tab Bar Controller / Tab Bar Controller
- storyboard / Storyboard
- segue / Segue
- auto layout / Auto Layout
- Model View Controller (MVC) / Model View Controller (MVC)
V
- value
- retrieving, from array / Retrieving a value from an array
- value type / Classes and structures
- variables
- about / Variables and constants – where data is held
- creating, with strings / Creating a variable with a string
- creating, with integers / Creating a variable with an integer (Int)
- versus constants / Why constants versus variables?
- View Controllers
- about / View Controller
- setting up / Setting up our View Controllers
W
- while loop / The while loop
X
- Xcode
- downloading / Getting started
- launching / Getting started
- Xcode interface
- about / The Xcode interface
- navigator panel / Navigator panel
- standard editor / Standard editor
- utilities panel / Utilities panel
- debug panel / Debug panel
- toolbar / Toolbar
- Generic iOS Device / Generic iOS device
- iOS Device / iOS device
- wireless connection / Connecting wirelessly
- window pane controls / Window pane controls