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

iPhone Applications Tune-Up

Book Description

High performance tuning guide for real-world iOS projects

  • Tune up every aspect of your iOS application for greater levels of stability and performance
  • Improve the users' experience by boosting the performance of your app
  • Learn to use Xcode's powerful native features to increase productivity
  • Profile and measure every operation of your application for performance
  • Integrate powerful unit-testing directly into your development workflow
  • Learn everything from architecture and syntax to memory, network, and animation performance

In Detail

The best iPhone applications are the ones that demonstrate smooth, fast, efficient and optimal performance. An application should be designed to run at 200 mph, but operate just as smoothly as it would at 5 mph. Developing an application that supports such a wide range of performance needs is no small task and requires an understanding of the basic elements of performance as well as a strong strategy.

This book covers every aspect of tuning, optimizing, and squeezing every last bit of performance out of an iOS project. From application architecture and design to development and deployment, readers will be guided through the entire process of tuning an iOS application for high performance.

Every line of code presents an opportunity to improve upon the effective performance of an application. This book begins with the fundamentals of performance, demonstrating the impact poor performance can have on the success of an application. Apple's App Store is riddled with applications that fall just short of success and it isn't too much of a stretch to attribute many of these failures to a lack of optimization. Readers will be lead through each chapter, learning every aspect of performance tuning from simple syntax tips and tricks to advanced process management, and network and memory optimizations.

In addition to theories, syntax, and detailed code examples, readers will learn to take advantage of Apple's powerful performance measurement and benchmarking utilities to identify the specific components of an iOS project that might need attention.

Learn the fundamentals of performance driven development to remedy existing performance related issues or design high performance iOS applications from start to finish

Table of Contents

  1. iPhone Applications Tune-Up
    1. iPhone Applications Tune-Up
    2. Credits
    3. About the Author
    4. About the Reviewers
    5. www.PacktPub.com
      1. Support files, eBooks, discount offers and more
        1. Why Subscribe?
        2. Free Access for Packt account holders
    6. Preface
      1. What this book covers
      2. What you need for this book
      3. Who this book is for
      4. Conventions
      5. Reader feedback
      6. Customer support
        1. Downloading the example code
        2. Errata
        3. Piracy
        4. Questions
    7. 1. Performance, Bottlenecks, and Fundamentals
      1. Success and performance
      2. Perception of performance
      3. Performance fundamentals
      4. Approaching performance
      5. Process management
      6. Memory
      7. Storage
      8. Network
      9. User interface
      10. Be a good neighbor
      11. Application design and architecture
      12. Application performance
      13. Summary
    8. 2. Design for Performance
      1. Preparing the project
      2. Project organization
      3. Project structure
      4. Groups and files
      5. Code structure
      6. Summary
    9. 3. Maintainability
      1. Variable naming conventions
      2. Method naming conventions
      3. Camel case
      4. Syntax efficiency
      5. Readability versus compactness
      6. Dot syntax
      7. Re-factoring
      8. Library bloat
      9. LIPO
      10. Comments
      11. Documentation
      12. Summary
    10. 4. Reliability
      1. Exception handling
      2. Error checking
      3. Unit testing
      4. Preparing a project for logic unit testing
      5. Preparing a project for application unit testing
      6. Summary
    11. 5. Performance Measurement and Benchmarking
      1. Static analyzer
      2. Instruments
      3. Summary
    12. 6. Syntax and Process Performance
      1. Iteration loops
      2. Object reuse
      3. Bitmasks
      4. Sorting
      5. Bubble sort
      6. Selection sort
      7. Bucket sort
      8. Quicksort
      9. Run loops
      10. Timers
      11. Semaphores
      12. Summary
    13. 7. Network Performance
      1. Sockets
      2. Streams
      3. Protocols
      4. Bandwidth
      5. Compression
      6. Façade pattern
      7. Summary
    14. 8. Memory Performance
      1. Garbage collection
      2. Alloc
      3. Dealloc
      4. Copy
      5. Retain
      6. Release
      7. Autorelease
      8. didReceiveMemoryWarning
      9. Summary
    15. 9. Application and Object Lifecycles
      1. Mise en place
      2. Application lifecycle
      3. Application startup sequence
      4. Application execution
      5. Application termination sequence
      6. Application init
      7. awakeFromNib
      8. application: didFinishLaunchingWithOptions
      9. applicationDidBecomeActive
      10. applicationWillEnterForeground
      11. applicationWillResignActive
      12. applicationDidEnterBackground
      13. applicationWillTerminate
      14. Object lifecycle
      15. Object init
      16. Summary
    16. 10. Animation, View, and Display Performance
      1. View performance
      2. Animated content
      3. Core Animation
      4. Item renderers
      5. Summary
    17. 11. Database and Storage Performance
      1. Disk
      2. Cache
      3. Compression
      4. SQLite
      5. Core Data
      6. Summary
    18. 12. Common Cocoa Design Patterns
      1. Why design patterns are critical
      2. Singleton
      3. Mediator
      4. Delegate
      5. Adaptor
      6. Decorator
      7. Model-View-Controller
      8. Summary
    19. 13. The Xcode Advantage
      1. Distributed builds
      2. Dead code stripping
      3. Compiler
      4. Debugger
      5. Source code management
      6. Summary