Books & Videos

Table of Contents

  1. Chapter 1 Getting Started: Going Mobile with iOS

    1. So, you want to build an iOS app...

    2. ...‘cause everyone wants one!

    3. Apps live in an iTunes universe

    4. Time to make a decision

    5. It all starts with the iOS SDK

    6. Take a look around

    7. Xcode includes app templates to help you get started

    8. Xcode is a full-featured IDE

    9. Xcode is the hub of your iOS project

    10. Build your interface within Xcode

    11. Add the button to your view

    12. The iOS simulator lets you test your app on your Mac

    13. iDecide’s logic

    14. Changing the button text

    15. You’re using the Model View Controller pattern

    16. iDecide is actually a little simpler

    17. What happened?

    18. Use the GUI editor to connect UI controls to code

    19. A component can trigger certain events

    20. Connect your events to methods

    21. You’ve built your first iPhone app!

    22. Your iOS Toolbox

  2. Chapter 2 iOS App Patterns: Hello, Renee!

    1. First, we need to figure out what Mike (really) wants

    2. App design rules—the iOS HIG

    3. HIG guidelines for pickers and buttons

    4. Create a new View-based project for InstaEmail

    5. The life of a root view

    6. We need data

    7. Use pickers when you want controlled input

    8. Pickers get their data from a datasource...

    9. That pattern is back

    10. First, declare that the controller conforms to both protocols

    11. The datasource protocol has two required methods

    12. Connect the datasource just like actions and outlets

    13. There’s just one method for the delegate protocol

    14. Actions, outlets, and events

    15. Connect the event to the action

    16. Add the IBOutlet and property to your view controller

    17. Next, synthesize the property...

    18. Connect the picker to our outlet

    19. Use your picker reference to pull the selected values

    20. Your iOS Toolbox

  3. Chapter 3 Objective-C for iOS: Email needs variety

    1. Renee is catching on....

    2. Make room for custom input

    3. Header files describe the interface to your class

    4. Auto-generated accessors also handle memory management

    5. To keep your memory straight, you need to remember just two things

    6. But when Mike’s finished typing...

    7. Customize your UITextField

    8. Components that use the keyboard ask it to appear...

    9. Ask the UITextField to give up focus

    10. Messages in Objective-C use named arguments

    11. Use message passing to tell our View Controller when the Done button is pressed

    12. Where’s the custom note?

    13. Your Objective-C Toolbox

  4. Chapter 4 Multiple Views: A table with a view

    1. So, how do these views fit together?

    2. The navigation template pulls multiple views together

    3. The table view is built in

    4. A table is a collection of cells

    5. Just a few more drinks...

    6. Plists are an easy way to save and load data

    7. Arrays (and more) have built-in support for plists

    8. Use a detail view to drill down into data

    9. A closer look at the detail view

    10. Use the Navigation Controller to switch between views

    11. Navigation Controllers maintain a stack of View Controllers

    12. Dictionaries store information as key-value pairs

    13. Debugging—the dark side of iOS development

    14. First stop on your debugging adventure: the console

    15. Interact with your application while it’s running

    16. Xcode supports you after your app breaks, too

    17. The Xcode debugger shows you the state of your application

    18. Your iOS Toolbox

  5. Chapter 5 Plists and Modal Views: Refining your app

    1. It all started with Sam...

    2. Use the debugger to investigate the crash

    3. Update your code to handle a plist of dictionaries

    4. The Detail View needs data

    5. The other keys are key

    6. We have a usability problem

    7. Use a disclosure button to show that there are more details available

    8. Sales were going strong

    9. Use Navigation Controller buttons to add drinks

    10. The button should create a new view

    11. We need a view...but not necessarily a new view

    12. The View Controller defines the behavior for the view

    13. A nib file contains the UI components and connections...

    14. You can subclass and extend view controllers like any other class

    15. Modal views focus the user on the task at hand...

    16. Any view can present a modal view

    17. Our modal view doesn’t have a navigation bar

    18. Create the Save and Cancel buttons

    19. Write the Save and Cancel actions

    20. Your iOS Toolbox

  6. Chapter 6 Saving, Editing, and Sorting Data: Everyone’s an editor...

    1. Sam is ready to add a Red-Headed School Girl...

    2. ...but the keyboard is in the way

    3. Wrap your content in a scroll view

    4. The scroll view is the same size as the screen

    5. The keyboard changes the visible area

    6. iOS notifies you about the keyboard

    7. Register with the default notification center for events

    8. Keyboard events tell you the keyboard state and size

    9. The table view doesn’t know its data has changed

    10. The array is out of order, too

    11. Table views have built-in support for editing and deleting

    12. Your iOS Development Toolbox

  7. Chapter 7 Migrating to iPad: We need more room

    1. DrinkMixer on the iPad

    2. The iPad simulator

    3. The HIG covers iPads, too

    4. Use Xcode to build your Universal app

    5. Check your devices

    6. Rotation is key with iPad

    7. A persistent view problem

    8. Don’t forget the tableview

    9. Your iOS Development Toolbox

  8. Chapter 8 Tab Bars and Core Data: Enterprise apps

    1. HF bounty hunting

    2. A new iPhone control

    3. Choose a template to start iBountyHunter

    4. There’s a different structure for universal apps

    5. Drawing how iBountyHunter iPhone works...

    6. ...and how it fits with the universal app

    7. Build the fugitive list view

    8. Next up: the Captured view

    9. A view’s contents are actually subviews

    10. After a quick meeting with Bob...

    11. Core Data lets you focus on your app

    12. Core Data needs to know what to load

    13. Core Data describes entities with a Managed Object Model

    14. Build your Fugitive entity

    15. Use an NSFetchRequest to describe your search

    16. Bob’s database is a resource

    17. Back to the Core Data stack

    18. The template sets things up for a SQLite DB

    19. iOS Apps are read-only

    20. The iPhone’s application structure defines where you can read and write

    21. Copy the database to the Documents directory

    22. Your Core Data Toolbox

  9. Chapter 9 Migrating and Optimizing with Core Data: Things are changing

    1. Bob needs documentation

    2. Everything stems from our object model

    3. The data hasn’t been updated

    4. Data migration is a common problem

    5. Migrate the old data into the new model

    6. Xcode makes it easy to version your data model

    7. Core Data can “lightly” migrate data

    8. Here’s what you’ve done so far...

    9. Bob has some design input

    10. Your app has a lifecycle all its own...

    11. Multitasking rules of engagement

    12. A quick demo with Bob

    13. Use predicates for filtering data

    14. We need to set a predicate on our NSFetchRequest

    15. Core Data controller classes provide efficient results handling

    16. Time for some high-efficiency streamlining

    17. Create the new FetchedResultsController getter method

    18. We need to refresh the data

    19. Your Data Toolbox

  10. Chapter 10 Camera, Map Kit, and Core Location: Proof in the real world

    1. For Bob, payment requires proof

    2. The way to the camera...

    3. There’s a method for checking

    4. Prompt the user with action sheets

    5. Bob needs the where, in addition to the when

    6. Core Location can find you in a few ways

    7. Add a new framework

    8. Just latitude and longitude won’t work for Bob

    9. Map Kit comes with iOS

    10. A little custom setup for the map

    11. Annotations require a little more work finesse

    12. Fully implement the annotation protocol

    13. Your Location Toolbox

  11. Chapter 11 iPad UI: Natural interfaces

    1. Bob needs that iPad app, too...

    2. iOS HIG user experience guidelines

    3. Iterate your interface, too

    4. BountyHunterHD is based on a Split View Controller

    5. Unifying the custom stuff

    6. It seems we have a problem...

    7. UIWebview has lots of options

    8. HTML, CSS, and Objective-C

    9. Using UIWebView

    10. Your NUI Toolbox

  1. Appendix Leftovers: The top 4 things (we didn’t cover)

    1. #1. Internationalization and Localization

    2. Localizing string resources

    3. #2. View animations

    4. #3. Accelerometer

    5. Understanding device acceleration

    6. #4. A word or two about gaming...

    7. Quartz and OpenGL

  2. Appendix Preparing an App for Distribution: Get ready for the App Store

    1. Apple has rules

    2. The Provisioning Profile pulls it all together

    3. Keep track in the Organizer