You are previewing iPhone Applications Tune-Up.
O'Reilly logo
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