Log In
Or create an account -> 
Imperial Library
  • Home
  • About
  • News
  • Upload
  • Forum
  • Help
  • Login/SignUp

Index
Title Page Acknowledgments Table of Contents Introduction
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
1. 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
2. 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
3. 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
4. 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
5. 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
6. 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
7. 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
8. Controlling Animations
Basic Animations
Closures
Another Label Animation Completion Animating Constraints Timing Functions Bronze Challenge: Spring Animations Silver Challenge: Layout Guides
9. 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
10. 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
11. 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
12. Subclassing UITableViewCell
Creating ItemCell Exposing the Properties of ItemCell Using ItemCell Dynamic Cell Heights Dynamic Type
Responding to user changes
Bronze Challenge: Cell Colors
13. 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
14. 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
15. 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:
16. 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
17. Size Classes
Modifying Traits for a Specific Size Class Bronze Challenge: Stacked Text Field and Labels
18. 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
19. 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
20. 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
21. 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
22. 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
23. Core Data Relationships
Relationships Adding Tags to the Interface Background Tasks Silver Challenge: Favorites
24. Accessibility
VoiceOver
Testing VoiceOver Accessibility in Photorama
25. Afterword
What to Do Next Shameless Plugs
Index
  • ← Prev
  • Back
  • Next →
  • ← Prev
  • Back
  • Next →

Chief Librarian: Las Zenow <zenow@riseup.net>
Fork the source code from gitlab
.

This is a mirror of the Tor onion service:
http://kx5thpx2olielkihfyo4jgjqfb7zx7wxr3sd4xzt26ochei4m6f7tayd.onion