Sign up
Forgot password?
FAQ: Login

Keur C., Hillegass A. iOS Programming: The Big Nerd Ranch Guide

  • pdf file
  • size 28,01 MB
  • added by
  • info modified
Keur C., Hillegass A. iOS Programming: The Big Nerd Ranch Guide
6th Edition. — Big Nerd Ranch Guides, 2017. — 480 p. — ISBN: 978-0134687445
Updated for Xcode 8, Swift 3, and iOS 10, iOS Programming: The Big Nerd Ranch Guide leads you through the essential concepts, tools, and techniques for developing iOS applications. After completing this book, you will have the know-how and the confidence you need to tackle iOS projects of your own. Based on Big Nerd Ranch's popular iOS training and its well-tested materials and methodology, this bestselling guide teaches iOS concepts and coding in tandem. The result is instruction that is relevant and useful.
Throughout the book, the authors explain what's important and share their insights into the larger context of the iOS platform. You get a real understanding of how iOS development works, the many features that are available, and when and where to apply what you've learned.
Prerequisites
What Has Changed in the Sixth Edition?
Our Teaching Philosophy
How to Use This Book
Using an eBook
How This Book Is Organized
Style Choices
Typographical Conventions
Necessary Hardware and Software
A Simple iOS Application
Creating an Xcode Project
Model-View-Controller
Designing Quiz
Interface Builder
Building the Interface
Creating view objects
Configuring view objects
Running on the simulator
A brief introduction to Auto Layout
Making connections
Declaring outlets
Setting outlets
Defining action methods
Setting targets and actions
Summary of connections
Creating the Model Layer
Implementing action methods
Loading the first question
Building the Finished Application
Application Icons
Launch Screen
The Swift Language
Types in Swift
Using Standard Types
Inferring types
Specifying types
Number and Boolean types
Collection types
Literals and subscripting
Initializers
Properties
Instance methods
Optionals
Subscripting dictionaries
Loops and String Interpolation
Enumerations and the Switch Statement
Enumerations and raw values
Exploring Apple’s Swift Documentation
Views and the View Hierarchy
View Basics
The View Hierarchy
Creating a New Project
Views and Frames
Customizing the labels
The Auto Layout System
The alignment rectangle and layout attributes
Constraints
Adding constraints in Interface Builder
Intrinsic content size
Misplaced views
Adding more constraints
Bronze Challenge: More Auto Layout Practice
Text Input and Delegation
Text Editing
Keyboard attributes
Responding to text field changes
Dismissing the keyboard
Implementing the Temperature Conversion
Number formatters
Delegation
Conforming to a protocol
Using a delegate
More on protocols
Bronze Challenge: Disallow Alphabetic Characters
View Controllers
The View of a View Controller
Setting the Initial View Controller
UITabBarController
Tab bar items
Loaded and Appearing Views
Accessing subviews
Interacting with View Controllers and Their Views
Silver Challenge: Dark Mode
For the More Curious: Retina Display
Programmatic Views
Creating a View Programmatically
Programmatic Constraints
Anchors
Activating constraints
Layout guides
Margins
Explicit constraints
Programmatic Controls
Bronze Challenge: Another Tab
Silver Challenge: User’s Location
Gold Challenge: Dropping Pins
For the More Curious: NSAutoresizingMaskLayoutConstraint
Localization
Internationalization
Formatters
Base internationalization
Preparing for localization
Localization
NSLocalizedString and strings tables
Bronze Challenge: Another Localization
For the More Curious: Bundle’s Role in Internationalization
For the More Curious: Importing and Exporting as XLIFF
Controlling Animations
Basic Animations
Closures
Another Label
Animation Completion
Animating Constraints
Timing Functions
Bronze Challenge: Spring Animations
Silver Challenge: Layout Guides
Debugging
A Buggy Project
Debugging Basics
Interpreting console messages
Fixing the first bug
Caveman debugging
The Xcode Debugger: LLDB
Setting breakpoints
Stepping through code
The LLDB console
UITableView and UITableViewController
Beginning the Homepwner Application
UITableViewController
Subclassing UITableViewController
Creating the Item Class
Custom initializers
UITableView’s Data Source
Giving the controller access to the store
Implementing data source methods
UITableViewCells
Creating and retrieving UITableViewCells
Reusing UITableViewCells
Content Insets
Bronze Challenge: Sections
Silver Challenge: Constant Rows
Gold Challenge: Customizing the Table
Editing UITableView
Editing Mode
Adding Rows
Deleting Rows
Moving Rows
Displaying User Alerts
Design Patterns
Bronze Challenge: Renaming the Delete Button
Silver Challenge: Preventing Reordering
Gold Challenge: Really Preventing Reordering
Subclassing UITableViewCell
Creating ItemCell
Exposing the Properties of ItemCell
Using ItemCell
Dynamic Cell Heights
Dynamic Type
Responding to user changes
Bronze Challenge: Cell Colors
Stack Views
Using UIStackView
Implicit constraints
Content hugging priorities
Content compression resistance priorities
Stack view distribution
Nested stack views
Stack view spacing
Segues
Hooking Up the Content
Passing Data Around
Bronze Challenge: More Stack Views
UINavigationController
UINavigationController
Navigating with UINavigationController
Appearing and Disappearing Views
Dismissing the Keyboard
Event handling basics
Dismissing by pressing the Return key
Dismissing by tapping elsewhere
UINavigationBar
Adding buttons to the navigation bar
Bronze Challenge: Displaying a Number Pad
Silver Challenge: A Custom UITextField
Gold Challenge: Pushing More View Controllers
Camera
Displaying Images and UIImageView
Adding a camera button
Taking Pictures and UIImagePickerController
Setting the image picker’s sourceType
Setting the image picker’s delegate
Presenting the image picker modally
Permissions
Saving the image
Creating ImageStore
Giving View Controllers Access to the Image Store
Creating and Using Keys
Wrapping Up ImageStore
Bronze Challenge: Editing an Image
Silver Challenge: Removing an Image
Gold Challenge: Camera Overlay
For the More Curious: Navigating Implementation Files
// MARK:
Saving, Loading, and Application States
Archiving
Application Sandbox
Constructing a file URL
NSKeyedArchiver and NSKeyedUnarchiver
Loading files
Application States and Transitions
Writing to the Filesystem with Data
Error Handling
Bronze Challenge: PNG
For the More Curious: Application State Transitions
For the More Curious: Reading and Writing to the Filesystem
For the More Curious: The Application Bundle
Size Classes
Modifying Traits for a Specific Size Class
Bronze Challenge: Stacked Text Field and Labels
Touch Events and UIResponder
Touch Events
Creating the TouchTracker Application
Creating the Line Struct
Structs
Value types vs reference types
Creating DrawView
Drawing with DrawView
Turning Touches into Lines
Handling multiple touches
@IBInspectable
Silver Challenge: Colors
Gold Challenge: Circles
For the More Curious: The Responder Chain
For the More Curious: UIControl
UIGestureRecognizer and UIMenuController
UIGestureRecognizer Subclasses
Detecting Taps with UITapGestureRecognizer
Multiple Gesture Recognizers
UIMenuController
More Gesture Recognizers
UILongPressGestureRecognizer
UIPanGestureRecognizer and simultaneous recognizers
More on UIGestureRecognizer
Silver Challenge: Mysterious Lines
Gold Challenge: Speed and Size
Platinum Challenge: Colors
For the More Curious: UIMenuController and UIResponderStandardEditActions
Web Services
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
Collection Views
Displaying the Grid
Collection View Data Source
Customizing the Layout
Creating a Custom UICollectionViewCell
Downloading the Image Data
Extensions
Image caching
Navigating to a Photo
Silver Challenge: Updated Item Sizes
Gold Challenge: Creating a Custom Layout
Core Data
Object Graphs
Entities
Modeling entities
Transformable attributes
NSManagedObject and subclasses
NSPersistentContainer
Updating Items
Inserting into the context
Saving changes
Updating the Data Source
Fetch requests and predicates
Bronze Challenge: Photo View Count
For the More Curious: The Core Data Stack
NSManagedObjectModel
NSPersistentStoreCoordinator
NSManagedObjectContext
Core Data Relationships
Relationships
Adding Tags to the Interface
Background Tasks
Silver Challenge: Favorites
Accessibility
VoiceOver
Testing VoiceOver
Accessibility in Photorama
What to Do Next
Shameless Plugs
Explore
Tour
Pricing
Enterprise
Government
Education
Queue App
  • Sign up or login using form at top of the page to download this file.
  • Sign up
Up