Applications for IOS & Android, Windows Device.
Start Developing iOS Apps Today is the perfect starting point for creating apps that run on iPad, iPhone, and iPod touch. View this guide’s four short modules as a gentle introduction to building your first app—including the tools you need and the major concepts and best practices that will ease your path.
Defining the Concept
Every great app starts with a concept. You don’t need a completely polished and finished concept to start developing your app. You do need an idea of where you’re going and what you need to do to get there.
Designing a User Interface
A user needs to interact with an app interface in the simplest way possible. Design the interface with the user in mind, and make it efficient, clear, and straightforward.
Storyboards let you design and implement your interface in a graphical environment. You see exactly what you’re building while you’re building it, get immediate feedback about what’s working and what’s not, and make instantly visible changes to your interface.
Defining the Interaction
iOS apps are based on event-driven programming. That is, the flow of the app is determined by events: system events and user actions. The user performs actions on the interface, which trigger events in the app. These events result in the execution of the app’s logic and manipulation of its data. The app’s response to user action is then reflected back in the interface. Because the user, rather than the developer, is in control of when certain pieces of the app code get executed, you want to identify exactly which actions a user can perform and what happens in response to those actions.
You define much of your event-handling logic in view controllers. Controllers are objects that support your views by responding to user actions and populating the views with content. Controller objects are a conduit through which views interact with the data model. Views are notified of changes in model data through the app’s controllers, and controllers communicate user-initiated changes—for example, text entered in a text field—to model objects. Whether they’re responding to user actions or defining navigation, controllers implement your app’s behavior.
Incorporating the Data
After you implement your app’s behavior, you create a data model to support your app’s interface. An app’s data model defines the way you maintain data in your app. Data models can range from a basic dictionary of objects to complex databases. A good data model makes it easier to build a scalable app, improve functionality, and make changes to your features.
Your app’s data model is composed of your data structures and (optionally) custom business logic needed to keep that data in a consistent state. You never want to design your data model in total isolation from your app’s user interface. You do, however, want to implement your data model objects separately, without relying on the presence of specific views or view controllers. When you keep your data separate from your user interface, you’ll find it easier to implement a universal app—one that can run on both iPad and iPhone—and easier to reuse portions of your code later.
Using Design Patterns
A design pattern solves a common software engineering problem. Patterns are abstract designs, not code. You use them to help you define the structure of your data model and its interaction with the rest of your app. When you adopt a design, you adapt its general pattern to your specific needs. No matter what type of app you’re creating, it’s good to know the fundamental design patterns used in the frameworks. Understanding design patterns helps you use frameworks more effectively and allows you to write apps that are more reusable, more extensible, and easier to change.
Working with Foundation
As you begin writing Objective-C code for your app, you’ll find many frameworks that you can take advantage of. Of particular importance is the Foundation framework, which provides basic services for all apps. The Foundation framework includes value classes representing basic data types such as strings and numbers, as well as collection classes for storing other objects. You’ll be relying on value and collection classes to write much of the code for your ToDoList app.
Writing a Custom Class
As you develop iOS apps, you’ll find many occasions when you need to write your own custom classes. Custom classes are useful when you need to package custom behavior together with data. In a custom class, you can define your own behaviors for storing, manipulating, and displaying your data.
For example, consider the World Clock tab in the iOS Clock app. The cells in this table view need to display more content than a standard table view cell. This is a good opportunity to implement a subclass that extends the behavior of UITableViewCell to let you display additional custom data for a given table view cell. If you were designing this custom class, you might add outlets for a label to display the hours ahead information and an image view to display the custom clock on the right of the cell.
You’ve just learned how to write an app with a simple user interface and basic behavior. At this point, you may be thinking about implementing additional behavior that will turn your project into a full-featured app.
As you consider which features you want to add, remember that you don’t have to implement everything from scratch. iOS provides frameworks that define particular sets of functionality—from gaming and media to security and data management—which you can integrate into your app. You’ve already used the UIKit framework to design your app’s user interface, and the Foundation framework to incorporate common data structures and behavior into your code. These are two of the most common frameworks used in iOS app development, but there are many more available to you.
As you develop your app, you’ll want the information you’ve learned—and more—at your fingertips. You can get all the information you need without leaving Xcode.
Xcode comes with a large documentation suite containing general and conceptual guides, framework and class references, focused help articles, and more. You can access this documentation by Control-clicking on a UI element of Xcode to learn how to use it, opening the Quick Help pane in the main project window for context-aware code help, or searching in the documentation viewer to find guides and full API reference.
Where to Go from Here
In Start Developing iOS Apps Today, you learned the basics of iOS app development. At this point, you’re ready to start developing your first full-featured app. Although taking an app from a simple concept to the App Store isn’t a small task, the process and practices you’ve learned in this document will guide you in the right direction.