Phát triển ứng dụng cho iPhone và iPad - part 4 potx

10 291 0
Phát triển ứng dụng cho iPhone và iPad - part 4 potx

Đang tải... (xem toàn văn)

Thông tin tài liệu

PROFESSIONAL iPhone® and iPad™ Database Application Programming Flast.indd xxixFlast.indd xxix 9/17/10 6:56:36 PM9/17/10 6:56:36 PM Flast.indd xxxFlast.indd xxx 9/17/10 6:56:36 PM9/17/10 6:56:36 PM PART I Manipulating and Displaying Data on the iPhone and iPad CHAPTER 1: Introducing Data-Driven Applications CHAPTER 2: The iPhone and iPad Database: SQLite CHAPTER 3: Displaying Your Data: The UITableView CHAPTER 4: iPad Interface Elements     CH001.indd 1CH001.indd 1 9/18/10 11:06:27 AM9/18/10 11:06:27 AM CH001.indd 2CH001.indd 2 9/18/10 11:06:31 AM9/18/10 11:06:31 AM Introducing Data - Driven Applications WHAT ’ S IN THIS CHAPTER? Creating a view - based application using Xcode Building a very simple data model Neatly displaying your data in a table using the UITableView control Data is the backbone of most applications. This is not limited only to business applications. Games, graphics editors, and spreadsheets alike all use and manipulate data in one form or another. One of the most exciting things about the iPhone is that it enables you and your customers to take your data anywhere. The mobility of the device gives the developer an amazing platform for developing applications that work with that data. You can use the power of existing data to build applications that use that data in new ways. In this book, you will learn how to display data, create and manipulate data, and fi nally, to send data over the Internet. In this chapter, you learn how to build a simple data - driven application. By the end of this chapter, you will be able to create a view - based application using Xcode that displays your data using the UITableView control. You will also gain an understanding of the Model - View - Controller architecture that underlies most iPhone applications. BUILDING A SIMPLE DATA - DRIVEN APPLICATION Many applications that you will build for the iPhone will need to handle data in one form or another. It is common to display this data in a table. In this section, you learn how to build an application that displays your data in a table in an iPhone application. ➤ ➤ ➤ 1 CH001.indd 3CH001.indd 3 9/18/10 11:06:31 AM9/18/10 11:06:31 AM 4 ❘ CHAPTER 1 INTRODUCING DATA - DRIVEN APPLICATIONS Creating the Project In order to build applications for the iPhone, you need to use the Xcode development environment provided by Apple. Xcode is a powerful integrated development environment that has all of the features of a modern IDE. It integrates many powerful features including code editing, debugging, version control, and software profi ling. If you do not have Xcode installed, you can install it either from your OS X installation DVD or by downloading it from the Apple developer web site at http://developer.apple.com/technology/xcode.html . To get started, start up Xcode and select File ➪ New Project. A dialog box appears that displays templates for the various types of applications that you can create for the iPhone and Mac OS X, as shown in Figure 1 - 1. FIGURE 1 - 1: New Project dialog Each option presented provides you with the basic setup needed to start developing your application. When building data - centric applications, you will often use one of the following templates: Navigation - based Application: Use this template for applications where you want to use a Navigation Controller to display hierarchical data using a navigable list of items. The iPhone ’ s native Contacts application is an example of a navigation - based application. The user selects from a list with the intention of drilling down deeper for more details. The Navigation Controller provides the capability to navigate up and down through a stack of controls. ➤ CH001.indd 4CH001.indd 4 9/18/10 11:06:34 AM9/18/10 11:06:34 AM Tab Bar Application: This template is for applications where you want to provide navigation using a tab bar at the bottom of the screen. The iPod application is an example of a Tab Bar application in which the tab bar displays your various media types. View - based Application: This is a generic template used to start applications based on a single view. Calculator is a View - based application. There is no built - in navigation; the application is one screen with one very specifi c function. For this sample application, you are going to use the straightforward View - based Application template. Select View - based Application from the dialog box and click the Choose button. Set the name of your project to SampleTableProject, select a location to save your project, and click the Save button. Xcode will create your project and present the project window. You are now ready to get started! Xcode now displays the project window, as in Figure 1 - 2. In the project window, you will see an organizer in the left - hand pane. You can use the organizer to navigate through the fi les in your project. Feel free to click on any of the folders, smart folders, or icons in the organizer to explore how Xcode organizes your project. You can add additional folders at any time to help keep your code and other project assets such as images, sound, and text fi les under control. ➤ ➤ FIGURE 1 - 2: Xcode project window Building a Simple Data - Driven Application ❘ 5 CH001.indd 5CH001.indd 5 9/18/10 11:06:35 AM9/18/10 11:06:35 AM 6 ❘ CHAPTER 1 INTRODUCING DATA - DRIVEN APPLICATIONS The top - right pane is a fi le list. This pane contains a list of fi les in the container that you have selected in the organizer pane. If you select the Classes folder in the organizer pane, you will see a list of all of the classes in your project in the fi le list pane. The bottom - right pane is the code window. Selecting a code fi le, one that ends with the .m extension for implementation fi les or .h for header fi les, causes the source code for that fi le to appear in the code pane. Double - clicking on a code fi le opens the code in a separate window. This can make your code easier to work with. You can dedicate more room to your code in the Xcode project window by selecting View ➪ Zoom Editor In or by pressing CMD - SHIFT - E. This command makes the fi le list disappear and fi lls the right side of Xcode with your source code. Adding a UITableView The most common control used to display data on the iPhone is the UITableView . As the name suggests, the UITableView is a view that you can use to display data in a table. You can see the UITableView in action in the iPhone ’ s Contacts application. The application displays your list of contacts in a UITableView control. You learn much more about the UITableView control in Chapter 3. Typically, when developing the interface for your iPhone applications, you will use Apple ’ s Interface Builder. This tool is invaluable for interactively laying out, designing, and developing your user interface. However, the focus of this chapter is not on designing a beautiful interface; it is on getting data displayed on the iPhone. So instead of using Interface Builder to design the screen that will hold a TableView , you will just create and display it programmatically. In order to create the TableView , you will be modifying the main View Controller for the sample project. Model - View - Controller Architecture Before I move on with the sample, it ’ s important that you understand the basic architecture used to build most iPhone applications: Model - View - Controller. There are three parts to the architecture, shown in Figure 1 - 3. As you can probably guess, they are the model, the view, and the controller. The model is the class or set of classes that represent your data. You should design your model classes to contain your data, the functions that operate on that data, and nothing more. Model classes should not need to know how to display the data that they contain. In fact, think of a model class as a class that doesn ’ t know about anything else except its own data. When the state of the data in the model changes, the model can send out a notifi cation to anyone interested, informing the listener of the state change. Alternatively, controller classes can observe the model and react to changes. Controller ViewModel FIGURE 1 - 3: Model - View - Controller architecture CH001.indd 6CH001.indd 6 9/18/10 11:06:36 AM9/18/10 11:06:36 AM In general, model objects should encapsulate all of your data. Encapsulation is a very important object - oriented design principle. The idea of encapsulation is to prevent other objects from changing your object ’ s data. To effectively encapsulate your data, you should implement interface methods or properties that expose the data of a model class. Classes should not make their data available through public variables. A complete discussion of object - oriented programming is beyond the scope of this book, but there are many very good resources for learning all about OOP. I have included some sources in the “ Further Exploration ” section at the end of this chapter. Suffi ce it to say that encapsulating your data in model objects will lead to good, clean, object - oriented designs that can be easily extended and maintained. The view portion of the MVC architecture is your user interface. The graphics, widgets, tables, and text boxes present the data encapsulated in your model to the user. The user interacts with your model through the view. View classes should contain only the code that is required to present the model data to the user. In many iPhone applications, you won ’ t need to write any code for your view. Quite often, you will design and build it entirely within Interface Builder. The controller is the glue that binds your model to your view. The controller is responsible for telling the view what to display. It is also responsible for telling your model how to change based on input from the user. The controller contains all of the logic for telling the view what to display. Almost all of the code in your iPhone applications will be contained in controller classes. To quickly summarize, the model is your application data, the view is the user interface, and the controller is the business logic code that binds the view to the model. In the sample application, you will be creating a class that acts as the model for the data. Xcode creates a default controller for the application as a part of the view - based code template, and you are going to add a TableView as the view so that you can see the data contained in the model. You will then code the controller to bind the view and model. Adding the TableView Programmatically Now that you have a basic understanding of the MVC architecture, you can move ahead and add the TableView to the application. Open up the Classes folder in the left - hand organizer pane by clicking on the disclosure triangle to the left of the folder. Select the SampleTableProjectViewController.m fi le to display its code in the code window, or double - click on it to bring it up in a larger editor. Remove the /* and */ comment block tokens from around the loadView method. You are going to insert code into the loadView method so that when the View Controller tries to load the view, it will create an instance of the UITableView class and set its view property to the newly created view. Type the following code into the loadView method: - (void)loadView { CGRect cgRct = CGRectMake(0, 20, 320, 460); UITableView * myTable = [[UITableView alloc] initWithFrame:cgRct]; self.view = myTable; } SampleTableProjectViewController.m Building a Simple Data - Driven Application ❘ 7 CH001.indd 7CH001.indd 7 9/18/10 11:06:37 AM9/18/10 11:06:37 AM 8 ❘ CHAPTER 1 INTRODUCING DATA - DRIVEN APPLICATIONS The fi rst line creates a CGRect , which is a Core Graphics structure used to specify the size and location for the TableView . You set it to have its origin at (0, 20), and be 320 pixels wide by 460 pixels high. The TableView will cover the entire screen, but start 20 pixels from the top, below the status bar. The next line creates an instance of a UITableView and initializes it with the dimensions that you specifi ed in the previous line. Just creating the TableView instance is not enough to get it to display in the view. You have to inform the View Controller about it by setting the View Controller ’ s view property to the TableView that you just created. You can go ahead and click on the Build and Run icon in the toolbar at the top of the Xcode window to run the project. You will see that your application compiles successfully and starts in the simulator. You should also see a bunch of gray lines in the simulator, as shown in Figure 1 - 4. That is your TableView ! Those gray lines divide your rows of data. Unfortunately, there is no data for your TableView to display yet, so the table is blank. You can, however, click in the simulator and drag the TableView . You should see the lines move as you drag up and down and then snap back into position as you let go of the mouse button. Retrieving Data A table is useless without some data to display. To keep this fi rst example simple, you are going to create a very simple data model. The data model will be a class that contains a list of names that you would like to display in the table. The model class will consist of an array to hold the list of data, a method that will return the name for any given index and a method that will return the total number of items in the model. To create a new class in your project, begin by clicking on the Classes folder in the left pane in Xcode. Then, select File ➪ New File. You will see the New File dialog that shows all of the types of fi les that you can create in an Xcode project. Select Cocoa Touch Class in the left pane of the dialog box and select Objective - C Class as the type of fi le that you want to create. Then select NSObject in the drop - down box next to “ Subclass of. ” The template allows you to create Objective - C classes that are subclasses of NSObject , UITableViewCell , or UIView . In this case, you want to create a subclass of NSObject , so just leave NSObject selected. Click Next to create your class. In the New NSObject subclass dialog, you can name your fi le. Name your new fi le DataModel.m . Ensure that the “ Also create ‘ DataModel.h ’ ” checkbox is selected. This will automatically create the header for your new class. The other options in this dialog allow you to specify the project to contain your new class and the build target to compile your fi le. Leave both of these options at their defaults and click Finish to have Xcode generate your new class fi le. FIGURE 1 - 4: Running an application with TableView CH001.indd 8CH001.indd 8 9/18/10 11:06:38 AM9/18/10 11:06:38 AM . Data on the iPhone and iPad CHAPTER 1: Introducing Data-Driven Applications CHAPTER 2: The iPhone and iPad Database: SQLite CHAPTER 3: Displaying Your Data: The UITableView CHAPTER 4: iPad Interface. of the Model - View - Controller architecture that underlies most iPhone applications. BUILDING A SIMPLE DATA - DRIVEN APPLICATION Many applications that you will build for the iPhone will. Model - View - Controller Architecture Before I move on with the sample, it ’ s important that you understand the basic architecture used to build most iPhone applications: Model - View - Controller.

Ngày đăng: 04/07/2014, 21:20

Tài liệu cùng người dùng

Tài liệu liên quan