O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Learning Mobile App Development: A Hands-on Guide to Building Apps with iOS and Android

Book Description

The Only Tutorial Covering BOTH iOS and Android—for students and professionals alike!

Now, one book can help you master mobile app development with both market-leading platforms: Apple’s iOS and Google’s Android. Perfect for both students and professionals, Learning Mobile App Development is the only tutorial with complete parallel coverage of both iOS and Android. With this guide, you can master either platform, or both—and gain a deeper understanding of the issues associated with developing mobile apps.

You’ll develop an actual working app on both iOS and Android, mastering the entire mobile app development lifecycle, from planning through licensing and distribution.

Each tutorial in this book has been carefully designed to support readers with widely varying backgrounds and has been extensively tested in live developer training courses. If you’re new to iOS, you’ll also find an easy, practical introduction to Objective-C, Apple’s native language.

All source code for this book, organized by chapter, is available at https://github.com/LearningMobile/BookApps

Coverage includes

  • Understanding the unique design challenges associated with mobile apps

  • Setting up your Android and iOS development environments

  • Mastering Eclipse development tools for Android and Xcode 5 tools for iOS

  • Designing interfaces and navigation schemes that leverage each platform’s power

  • Reliably integrating persistent data into your apps

  • Using lists (Android) or tables (iOS) to effectively present data to users

  • Capturing device location, displaying it, and using it in your apps

  • Accessing hardware devices and sensors

  • Publishing custom apps internally within an organization

  • Monetizing your apps on Apple’s AppStore or the Google Play marketplace, as well as other ways of profiting from app development, such as consulting and developer jobs

  • Table of Contents

    1. About This eBook
    2. Title Page
    3. Copyright Page
    4. Dedication Page
    5. Contents
    6. Preface
      1. Your Roadmap to Android/iOS Development
      2. How This Book Is Organized
      3. About the Sample Code
      4. Getting the Sample Code
      5. Contacting the Authors
    7. Acknowledgments
      1. Acknowledgments from Jakob Iversen
      2. Acknowledgments from Michael Eierman
    8. About the Authors
    9. Part I: Overview of Mobile App Development
      1. 1. Why Mobile Apps?
        1. Transformative Devices
        2. Reaching Customers
        3. Changing Business Process
        4. Making Money
        5. Summary
        6. Exercises
      2. 2. App Design Issues and Considerations
        1. App Design
          1. Operating System Design Issues
          2. Screen Size and Orientation Issues
          3. Connectivity Issues
          4. Battery Issues
          5. Hardware Issues
        2. Device Differences
          1. Android
          2. iOS
        3. Introducing Your First App
          1. Contact Screen
          2. Contact List Screen
          3. Map Screen
          4. Settings Screen
        4. Summary
        5. Exercises
    10. Part II: Developing the Android App
      1. 3. Using Eclipse for Android Development
        1. Starting a New Project
          1. Setting Up the Workspace
          2. Creating the Project
          3. Components of the IDE
          4. The Android Manifest
          5. Configuring the Emulator
        2. Coding the Interface
        3. Coding App Behavior
          1. Adding Code
        4. Summary
        5. Exercises
      2. 4. Android Navigation and Interface Design
        1. Activities, Layouts, and Intents
          1. The Activity Class
          2. Layout
          3. Intents
        2. Creating the Interface
          1. Create the Project
          2. Create the Navigation Bar
          3. Create the Contact Layout
        3. Activating the Interface
          1. Code the Navigation Bar
          2. Code the Toggle Button
          3. Code the DatePicker Dialog
        4. Summary
        5. Exercises
      3. 5. Persistent Data in Android
        1. Preferences, Files, and Database
          1. Preferences
          2. Files
          3. Database
        2. Creating the Database
          1. Create the Database Helper Class
          2. Create the Data Source Class
        3. Using the Database
          1. Capture User-Entered Data
          2. Save User-Entered Data
          3. Use the Debugger
        4. Using Preferences
          1. Create the Settings Layout
          2. Code the Page’s Behavior
        5. Summary
        6. Exercises
      4. 6. Lists in Android: Navigation and Information Display
        1. Lists and Adapters
          1. Lists
          2. Adapters
        2. Simple Lists
          1. Create the Data Source Method
          2. Create the Layout
          3. Code the Activity
        3. Complex Lists
          1. Create the Data Source Method
          2. Create the Layout
          3. Create the Custom Adapter
          4. Code the Activity
          5. Add Delete Functionality
        4. Completing the ContactList Activity
          1. Populating the ContactActivity Screen
          2. Coding the Add Button
          3. Sort the Contacts List
          4. Set ContactListActivity as the Default Activity
          5. Set ContactActivity as Default Activity with no Contacts in Database
        5. Summary
        6. Exercises
      5. 7. Maps and Location in Android
        1. Location Sensors, Maps, and Fragments
          1. Location Sensors
          2. Maps
          3. Fragments
        2. Setting Up for Maps
          1. Passing Data Between Controllers
        3. Finding Your Location
          1. Geocoding: Get Coordinates from an Address
          2. Get Coordinates from the GPS Sensor
          3. Get Coordinates from Network Sensor
          4. Get Coordinates from the Map
        4. Displaying Your Contacts’ Locations
        5. Summary
        6. Exercises
      6. 8. Access to Hardware and Sensors in Android
        1. Sensors, Managers, and Other Hardware
          1. Sensors
          2. Managers
          3. Other Hardware
        2. Monitoring the Battery
        3. Using Sensors to Create a Compass
        4. Using the Phone
        5. Using the Camera
        6. Summary
        7. Exercises
    11. Part III: Developing the iOS App
      1. 9. Using Xcode for iOS Development
        1. Creating the Xcode Project
          1. Project Settings
          2. Creating the User Interface
          3. Running the App in the Simulator
          4. Adding App Behavior
        2. Dismissing the Keyboard
          1. App Icons and Launch Images
        3. Summary
        4. Exercises
      2. 10. iOS Navigation and Interface Design
        1. Views and Controllers
          1. View Controller
          2. Tab Bar Controller
          3. Navigation Controller
        2. Creating the Interface
          1. Creating the Project
          2. Creating the Views
          3. Design the Contacts Screen
          4. Add Navigation Controller for the Date Screen
        3. Activating the Interface
        4. Summary
        5. Exercises
      3. 11. Persistent Data in iOS
        1. File Data Storage
        2. User Defaults
        3. Core Data
        4. Setting Up Core Data
          1. Creating the Project
          2. Designing Data Structure
          3. Passing Data Between Controllers
          4. Saving Data to Core Data
        5. Storing the Settings
          1. Creating the Settings Interface
          2. Working with NSUserDefaults Object
          3. Activating the Settings Interface
          4. Global Constants
        6. Summary
        7. Exercises
      4. 12. Tables in iOS: Navigation and Information Display
        1. Overview of Tables
        2. Setting Up Tables
          1. Populate the Table with Data
          2. Retrieve Data from Core Data
          3. Adding Contact Data
          4. Display Detailed Data
          5. Save Changes to Records
          6. Deleting Records
          7. Accessory Buttons
          8. Alert View
          9. Show Subtitles in the Table
          10. Sort the Table
        3. Summary
        4. Exercises
      5. 13. Maps and Location in iOS
        1. Overview of Location and Mapping
          1. Hardware and Sensors
          2. Core Location
          3. MapKit
        2. Adding Location Information to the App
          1. Finding Location
          2. Adding a Map
        3. Summary
        4. Exercises
      6. 14. Access to Hardware and Sensors in iOS
        1. Getting Device Information
        2. Monitoring Battery Status
        3. Controlling the Camera
        4. Calling a Phone Number
          1. Long Press Gesture
          2. Adding Long Press to Enabled Text Field
        5. Using Core Motion for Accelerometer Data
        6. Summary
        7. Exercises
    12. Part IV: Business Issues
      1. 15. Monetizing Apps
        1. App Monetization Strategies
          1. Paid Apps
          2. Ad Supported Apps
          3. In-App Purchases
          4. Understanding the Economics of App Stores
        2. Owning Your Own Business
          1. Create an LLC
          2. Plan Your Business
        3. Other Income Possibilities
        4. Choosing a Platform
        5. Summary
        6. Exercises
      2. 16. Publishing Apps
        1. App Distribution Through the App/Play Stores
          1. Android Play Store Distribution
          2. iOS App Store Distribution
        2. App Distribution for the Enterprise
          1. Android Enterprise Distribution
          2. iOS Enterprise Distribution
        3. Testing and Fragmentation
        4. Keeping Up with the Platform
        5. Summary
        6. Exercises
    13. Part V: Appendixes
      1. A. Installing Eclipse and Setup for Android Development
        1. Setting up Java and Eclipse
          1. Download and Install Java SE SDK
          2. Downloading Eclipse
          3. Installing Eclipse on Windows
          4. Installing Eclipse on Mac
        2. Installing Android
        3. Setting Up the Classroom
      2. B. Installing Xcode and Registering Physical Devices
        1. Download and Install Xcode
        2. Apple Developer Programs
        3. Setting Up the Classroom
        4. Deploying Apps to Real Devices
          1. Creating Developer Accounts
          2. Backing Up the Development Certificate
          3. Registering Devices
          4. Checking the Development Environment
      3. C. Introduction to Objective-C
        1. A Brief History of Objective-C
        2. Two Languages in One
        3. Objects and Classes
          1. Properties in Detail
          2. Declaring and Calling Methods
          3. Inheritance and Protocols
        4. Memory Management
    14. Index