iOS Application Design
Starting the Design Process for Your Application
Designing an iOS application requires at least a basic understanding of a few key principles:
- The UIKit framework provides the core infrastructure for managing and running your application. Application customization comes primarily through interactions with the classes of this framework.
- The system frameworks use well-defined design patterns. Understanding those design patterns (which are documented in Cocoa Fundamentals Guide) is essential for interacting with the system frameworks and is often useful for implementing your own code, too.
- Most other frameworks provide services or additional features that you can incorporate as needed. Some frameworks (such as Foundation and Core Graphics) are included in all Xcode projects, but most others must be added to your project explicitly. For a list of available technologies and the documents that show you how to use them, see iOS Technology Overview.
The focus of this document is on the core infrastructure provided by UIKit and how it runs your application. Understanding this infrastructure is crucial to creating applications that work well within the system. This document also addresses the things you must do outside of UIKit, such as in your Xcode project, to make your application run smoothly. For example, this document discusses the configuration metadata that needs to accompany every application.
A good starting point for learning about application development is to learn a little about the environment in which applications must run. You can find this information in “The Application Runtime Environment.” After that, you should proceed to “The Core Application Design” to learn about the core objects and behaviors (such as multitasking) found in an iOS application.
Supporting Common Application Behaviors
There are a handful of common behaviors that iOS applications can implement. These features are independent of the type of the application you are creating and are more closely related to the design goals you have for that application. For example, both games and productivity applications can be launched into a landscape orientation. And all applications need to be responsive to low-memory warnings coming from the system.
Deciding which behaviors you want to support is important to consider when designing your application. The amount of work required to implement each behavior is usually not large but such a feature might inspire you to rework part of your design to take better advantage of it.
- You can find steps for how to implement many common application behaviors in “Implementing Standard Application Behaviors.”
- If your application has specific needs that require it to run in the background, you should read “Executing Code in the Background” for guidance on examples of how to implement your application.
- For information on how to write iOS applications to support devices with high resolution screens, see “Supporting High-Resolution Screens.”
- For information on how to support user-configurable preferences, read “Implementing Application Preferences.”
Meeting the App Store and System Requirements
Configuration of your application’s information property list file (Info.plist
) and bundle are essential steps of the development process. The Info.plist
file contains crucial information about your application’s configuration and supported features. The system relies heavily on this file to obtain information about your application and the location of key resource files needed to launch it. Also, bundles provide the fundamental structure for organizing your application’s resources and localized content. Knowing where to put things is important to building a running application. To learn about the structure of iOS applications, and the steps you must take to configure them, read “Build-Time Configuration Details.”
Tuning Performance for the Underlying Device
In iOS, good application performance is particularly important and can mean the difference between success and failure. If your application is slow or consumes resources that prevent other applications from running smoothly, users are unlikely to want to buy it. And because resources such as memory are more constrained on iOS-based devices, it is imperative that you factor in system constraints to your design.Power usage is a particularly important area of performance tuning when it comes to iOS applications. Many features require the system to enable specific bits of hardware. Disabling features that you are not using at the moment gives the system the opportunity to power down the associated hardware and extend battery life.
For information about techniques for improving performance and managing power usage, see “Tuning for Performance and Responsiveness.”
See Also
After reading this document, you should also consult the following documents for information about how to implement different parts of your application.- For information about user interface design and how to create effective applications using iOS, see iPhone Human Interface Guidelines and iPad Human Interface Guidelines.
- For information about handling touch and motion-related events, see Event Handling Guide for iOS.
- For information about how to manage your application’s user interface, see View Controller Programming Guide for iOS.
- For information about windows, views, and drawing custom custom content, see View Programming Guide for iOS.
- For information about the text management facilities, see Text and Web Programming Guide for iOS.
- For information about how to incorporate audio and video into your applications, see Multimedia Programming Guide.
- For general information about all iOS technologies, see iOS Technology Overview.
No comments:
Post a Comment