Developing Enterprise iOS Applications

Book description

If you plan to develop iOS applications in a corporate setting—for internal consumption or for sale to end users—you need to read this book. Veteran developer James Turner shares best practices and lessons learned from his recent on-the-ground experience planning, building, and shipping an iOS application in an enterprise environment.

With lots of examples and solid advice, you’ll learn how to use Xcode, Objective-C, and other Apple development tools within the confines of enterprise software methodologies. Don’t be deterred by Apple’s development philosophy. If you’re familiar with Xcode, this guide will help you build and launch enterprise iOS apps successfully.

  • Get Xcode’s single-developer model to work in a concurrent development environment
  • Integrate Xcode builds into tools such as Ant and Hudson
  • Use open source libraries to connect iOS with SOAP and other backend services
  • Set up a framework to test iOS apps for code coverage and CCN metrics
  • Manage the legal, marketing, and production issues involved when interacting with iTunes Connect
  • Meet iTunes’ requirements for provisioning and distributing your app
  • Provide long-term support by sidestepping Apple’s distribution limitations

Publisher resources

View/Submit Errata

Table of contents

  1. Preface
    1. Who This Book Is For
    2. How This Book Is Organized
    3. Conventions Used in This Book
    4. Using Code Examples
    5. Safari® Books Online
    6. How to Contact Us
    7. Acknowledgments
  2. 1. Enterprise iOS Applications
    1. Apple Developers—An Army of One
    2. Build Automation Is a Bit of a Challenge
    3. Objective-C Doesn’t Play Well with Others
    4. Code Coverage Is for Weenies
    5. iTunes Connect Is a Great Way to Keep Your Legal Staff Employed
    6. You Can Have Any Style of Distribution, as Long as it’s iTunes
    7. The Road Is Long and Winding
    8. A Few Caveats
  3. 2. Concurrent Development with iOS
    1. A Little Ditty ‘bout Tom and Diane
    2. More Merge Mayhem
    3. Workspaces and Static Libraries
      1. Make Sure All Dependent Projects Do Their Own Unit Testing
      2. You Need to Plan Out Common Resource Issues
      3. You Can Still End Up Stepping on Each Other’s Feet
    4. Let’s Be Careful Out There
  4. 3. Automating iOS Builds
    1. Introducing Hudson
    2. Breaking the News to Your IT Department
    3. Provisioning Your Build Machine
    4. Installing Hudson
    5. Creating the Build Job
      1. The Main Configuration Screen
        1. Discard old builds
        2. This build is parameterized
        3. Disable build
        4. Execute concurrent builds
        5. Advanced options
      2. Source Code Management with Hudson
      3. Trying Your First Build
    6. Creating an Ant Build File
    7. Testing xcodebuild
    8. Integrating xcodebuild into an Ant Script
    9. Calling the Ant Script from Hudson
    10. Getting Fancy with Hudson
      1. Running a Nightly Build
      2. Include the Build Number Directly into the Application Version
      3. Parameterize the Build Script
  5. 4. Integrating iOS Applications into Enterprise Services
    1. The Rules of the Road
      1. Rule 1: Insist on Contract-Driven Development
      2. Rule 2: Be Neither Chunky Nor Chatty
    2. First Things First: Getting a Connection
    3. Using NSURLConnection—The BuggyWhip News Network
    4. Something a Little More Practical—Parsing XML Response
    5. Generating XML for Submission to Services
    6. Once More, with JSON
    7. SOAP on a Rope
    8. A Final Caution
  6. 5. Testing Enterprise iOS Applications
    1. Unit Testing iOS Applications
    2. Setting Up an OCUnit Target
    3. Generating Code Coverage Metrics
    4. Generating Code Complexity Metrics
    5. Creating UI Tests (The Old and Painful Way)
    6. UI Testing Using OCUnit
  7. 6. Enterprises and the iTunes App Store
    1. Things to Start Worrying About Immediately
      1. Legal Considerations
      2. Marketing Considerations
      3. Production Considerations
      4. Bonus Considerations
    2. Things to Worry About a Month Before Launch
      1. Get a Binary into Review
      2. Double-Check App Store Readiness
      3. Have a Chat With Your Support Group About Bug Reports
    3. Things to Worry About Two Weeks Before Launch
      1. Upload the Final Version to iTunes Connect
    4. Things to Worry About One Week Before Launch
      1. When to Pull the Trigger
    5. Things to Worry About on Launch Day
    6. Things to Worry About in the Month After Launch
  8. 7. Distributing Enterprise iOS Applications
    1. Testing Applications with Ad Hoc Profiles
    2. A Better Mousetrap for Ad Hoc Infrastructure
      1. Advanced Testflight-Fu
    3. Enterprise Distribution
      1. A Gotcha With Enterprise-Based Development
    4. The Long Haul
  9. 8. Long Term Maintenance of iOS Enterprise Applications
    1. Option 1: The Perpetually Compatible Application
    2. (Non-)Option 2: The Perpetually Compatible Server
    3. Option 3: App Store Version Roulette
    4. Option 4: Exotic Distribution Methods
    5. Option 5: The Swiss Army App
    6. Welcome to the Club, We Have Jackets
  10. About the Author
  11. Copyright

Product information

  • Title: Developing Enterprise iOS Applications
  • Author(s): James Turner
  • Release date: December 2011
  • Publisher(s): O'Reilly Media, Inc.
  • ISBN: 9781449311483