Tải bản đầy đủ (.doc) (109 trang)

Xây dựng ứng dụng tìm kiếm đa phương tiện trên điện thoại iphone

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.73 MB, 109 trang )

PHIẾU GIAO NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP
1. Thông tin về sinh viên
Họ và tên sinh viên: .
Điện thoại liên lạc:
học chính quy

Lớp: CNPM

Hệ đào tạo: Đại

Đồ án tốt nghiệp được thực hiện tại: Đại học Bách Khoa Hà Nội
Thời gian làm ĐATN: Từ ngày 28 /02/2010 đến

28/05 /2010

2. Mục đích nội dung của ĐATN
- Tìm hiểu môi trường lập trình trên điện thoại iPhone
- Tìm hiểu mô hình cổng thông tin tìm kiếm trực tuyến trên điện thoại di
động
- Xây dựng ứng dụng hỗ trợ người dùng trên điện thoại (thành phần
client)
3. Các nhiệm vụ cụ thể của ĐATN
Từ các mục đích nội dung, các nhiệm vụ cụ thể của đồ án sẽ thực hiện
- Tìm hiểu về lập trình trên điện thoại di động
- Tìm hiểu về iPhone
- Tìm hiểu công cụ, ngôn ngữ, nền tảng lập trình cho điện thoại iPhone
- Tìm hiểu lập trình mạng, multithreading, media cho iPhone
- Tìm hiểu mô hình hệ thống Mobile Portal
- Xây dựng ứng dụng tìm kiếm đa phương tiện trên điện thoại iPhone

CNPM



1


4. Lời cam đoan của sinh viên:
Tôi - An Thị Hồng - cam kết ĐATN là công trình nghiên cứu của bản thân tôi
dưới sự hướng dẫn của Thạc sĩ Lương Mạnh Bá.
Các kết quả nêu trong ĐATN là trung thực, không phải là sao chép toàn văn của
bất kỳ công trình nào khác.

Hà Nội, ngày 24 tháng 05 năm 2010
Tác giả ĐATN

5. Xác nhận của giáo viên hướng dẫn về mức độ hoàn thành của ĐATN và cho
phép bảo vệ:

Hà Nội, ngày tháng năm
Giáo viên hướng dẫn

Ths Lương Mạnh Bá

CNPM

2


TÓM TẮT NỘI DUNG ĐỒ ÁN TỐT NGHIỆP
Nhận thức được nhu cầu tìm kiếm thông tin trên di động, hệ thống cổng thông
tin di động Mobile Portal đã ra đời và bắt đầu đi vào hoạt động. Mobile Portal sử dụng
công nghệ tìm kiếm của máy tìm kiếm Socbay (trang chủ www.socbay.com) được

phát triển bởi Công ty Cổ phần dịch vụ công nghệ thông tin Naiscorp với khả năng
đem lại cho người dùng những thông tin đã được sàng lọc, lựa chọn và chuẩn hóa riêng
cho thiết bị di động.
Trọng tâm của đồ án xin trình bày thành phần client của hệ thống Mobile Portal
- Ứng dụng Petto được phát triển trên nền tảng iPhone. Các phần chính của báo cáo:
Phần 1: Nền tảng công nghệ
Chương 1: Tìm hiểu về môi trường lập trình trên di động, tổng quan về
lập trình iPhone. Giới thiệu ngôn ngữ, công cụ lập trình. Tìm hiểu lập trình mạng,
mutithread, core audio.
Chương 2: Đưa ra mô hình tổng quan về cổng thông tin tìm kiếm trực
tuyến. Từ đó đưa ra ứng dụng mà đồ án xây dựng là “xây dựng ứng dụng tìm kiếm đa
phương tiện trên điện thoại iPhone” – thành phần đóng vai trò client trong mô hình.
Phần 2: Xây dựng chương trình
Chương 3: Giới thiệu các loại ứng dụng trên iPhone, phát biểu bài toán
cần giải quyết.
Chương 4: Xây dựng các dịch vụ tìm kiếm đa phương tiện. Phân tích,
thiết kế ứng dụng.

CNPM

3


MỤC LỤC
PHIẾU GIAO NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP.......................................................................................1
TÓM TẮT NỘI DUNG ĐỒ ÁN TỐT NGHIỆP............................................................................................ 3
DANH MỤC HÌNH............................................................................................................................... 7
DANH MỤC BẢNG.............................................................................................................................. 8
LỜI NÓI ĐẦU...................................................................................................................................... 9
ĐỒ ÁN TỐT NGHIỆP NÀY ĐÃ ĐƯỢC HOÀN THÀNH SAU MỘT THỜI TÌM HIỂU, XÂY DỰNG TẠI CÔNG TY CỔ PHẦN DỊCH VỤ

CÔNG NGHỆ THÔNG TIN NAISCORP. NGOÀI SỰ CỐ GẮNG VÀ NỖ LỰC CỦA BẢN THÂN, CÒN CÓ SỰ GIÚP ĐỠ CỦA NHIỀU NGƯỜI ĐỂ
EM CÓ THỂ HOÀN THÀNH ĐƯỢC ĐỒ ÁN NHƯ NGÀY NAY.
9
TRƯỚC HẾT, EM XIN ĐƯỢC GỬI LỜI CẢM ƠN SÂU SẮC ĐẾN THS LƯƠNG MẠNH BÁ - BỘ MÔN CÔNG NGHỆ PHẦN
MỀM, VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG, TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI ĐÃ HẾT LÒNG GIÚP ĐỠ, ĐỊNH
HƯỚNG VÀ CHỈ DẠY TẬN TÌNH GIÚP EM VƯỢT QUA NHỮNG KHÓ KHĂN TRONG QUÁ TRÌNH EM LÀM ĐỒ ÁN TỐT NGHIỆP.
9
EM XIN ĐƯỢC GỬI LỜI CẢM ƠN TỚI CÁC THẦY CÔ GIÁO TRONG TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI NÓI CHUNG VÀ
CÁC THẦY CÔ TRONG VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG, BỘ MÔN CÔNG NGHỆ PHẦN MỀM NÓI RIÊNG ĐÃ TẬN
TÌNH GIẢNG DẠY, TRUYỀN ĐẠT CHO EM NHỮNG KIẾN THỨC, NHỮNG KINH NGHIỆM QUÝ BÁU TRONG SUỐT 5 NĂM HỌC TẬP VÀ RÈN
LUYỆN TẠI TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI.
9
PHẦN I: NỀN TẢNG CÔNG NGHỆ....................................................................................................... 10
CHƯƠNG 1: TÌM HIỂU MÔI TRƯỜNG LẬP TRÌNH TRÊN IPHONE
10
1.1 Tổng quan về lập trình trên di động..........................................................................................10
1.1.1 Thị trường lập trình trên di động.....................................................................................................10
1.1.2. Những khó khăn khi lập trình cho di động......................................................................................11

1.2 Tổng quan về lập trình iPhone...................................................................................................12
1.2.1 Giới thiệu về iPhone........................................................................................................................12
1. Cuộc cách mạng về công nghệ trên điện thoại di động mang tên iPhone.......................................12
2. Giới hạn của iPhone........................................................................................................................14
1.2.2 Các nền tảng phát triển di động hứa hẹn trong năm 2010..............................................................14
1.2.3. Môi trường lập trình iPhone...........................................................................................................16
1.2.4. iPhone SDK:....................................................................................................................................16
1. Phân tích một ứng dụng:................................................................................................................16
2. Cài đặt iPhone SDK:.........................................................................................................................20
3. iPhone Simulator:...........................................................................................................................22
1.2.5 Xcode...............................................................................................................................................23

1.Mô hình MVC ( Model - View - Controller).......................................................................................23
2. Các template thường dùng.............................................................................................................24
3. Sự bố trí của một project trong Xcode............................................................................................24
1.2.6 Interface Builder..............................................................................................................................26
1. Mở Interface Builder:......................................................................................................................26
2. Tạo file Interface Builder.................................................................................................................26
3. Cửa sổ tài liệu.................................................................................................................................28

1.3 Công cụ lập trình.......................................................................................................................32
1.3.1 Ngôn ngữ Objective-C......................................................................................................................32

CNPM

4


1. Lịch sử của ngôn ngữ Objective-C...................................................................................................32
2. Lớp, đối tượng và thông điệp.........................................................................................................33
3. Định nghĩa một lớp.........................................................................................................................37
1.3.4 Lập trình mạng................................................................................................................................43
1. Tổng quan:......................................................................................................................................43
2. Lập trình mạng với CFNetwork........................................................................................................44
1.3.5 MultiThreading................................................................................................................................54
1. Về lập trình thread..........................................................................................................................54
2. Quản lý thread................................................................................................................................60
3. Run loop.........................................................................................................................................66
1.3.6. Core Audio......................................................................................................................................70
1. Core Audio là gì?.............................................................................................................................70
2. Cơ bản về Core Audio.....................................................................................................................72


CHƯƠNG 2: TỔNG QUAN VỀ HỆ THỐNG TÌM KIẾM MOBILE PORTAL
78
2.1 Hệ thống Mobile Portal.............................................................................................................78
2.2 Máy tìm kiếm Socbay (Socbay Search Engine)..........................................................................79
2.3.1. Thu thập dữ liệu cho các dịch vụ....................................................................................................80
2.3.2 Phân tích truy vấn ngắn dựa trên thói quen người dùng.................................................................81

2.4 Tầng giao diện di động (Mobile Interface)................................................................................81
2.4.1 Quá trình chuẩn hóa dữ liệu cho thiết bị di động:...........................................................................82
2.4.2 Thiết kế module kết nối tại client và server.....................................................................................83

2.5 Ứng dụng Petto.........................................................................................................................83
PHẦN II: XÂY DỰNG CHƯƠNG TRÌNH............................................................................................... 84
CHƯƠNG 3: ỨNG DỤNG TRÊN IPHONE
84
3.1 Các loại ứng dụng trên iPhone..................................................................................................84
3.2 Phát biểu bài toán.....................................................................................................................84
CHƯƠNG 4: XÂY DỰNG CÁC DỊCH VỤ TÌM KIẾM ĐA PHƯƠNG TIỆN DỰA TRÊN MÁY TÌM KIẾM
SOCBAY
86
4.1 Xác định yêu cầu hệ thống:.......................................................................................................86
4.2 Đặc tả user case:.......................................................................................................................87
4.2.1. Tin tức............................................................................................................................................87
4.2.2. Đọc truyện......................................................................................................................................88
4.2.3. Địa điểm.........................................................................................................................................89
4.2.4. Cẩm nang tư vấn.............................................................................................................................90
4.2.5. Hình ảnh.........................................................................................................................................91
4.2.6. Nhạc MP3.......................................................................................................................................92

4.3 Các vấn đề kỹ thuật, thuật toán................................................................................................93

4.3.1. Việc kết nối, truyền nhận dữ liệu giữa client và server:..................................................................93
4.3.2. Hiển thị...........................................................................................................................................94
4.3.3. MP3 streaming...............................................................................................................................94

4.4 Thiết kế giao diện:.....................................................................................................................96
4.4.1. Giao diện chính:..............................................................................................................................96
4.4.2. Dịch vụ Tin Tức:..............................................................................................................................97
4.4.3. Dịch vụ Truyện:...............................................................................................................................97
4.4.4. Dịch vụ Địa Điểm:...........................................................................................................................98
4.4.5. Dịch vụ Cẩm Nang Tư Vấn:..............................................................................................................98
4.4.6. Dịch vụ Hình Ảnh:...........................................................................................................................99

CNPM

5


4.4.7. Dịch vụ Nhạc MP3:.........................................................................................................................99

4.5 Thiết kế lớp:.............................................................................................................................100
4.5.1. Tầng Cocoa Touch Application......................................................................................................100
1. Lớp ứng dụng:...............................................................................................................................100
2. Dịch vụ Tin Tức:.............................................................................................................................102
3. Dịch vụ nhạc MP3.........................................................................................................................104
4.5.2. Tầng Mobile Interface:..................................................................................................................105
4.5.3. Quan hệ giữa tầng Mobile Interface và Cocoa Touch Application:................................................106

TỔNG KẾT ĐÁNH GIÁ..................................................................................................................... 107
1. Một số kết quả đạt được...........................................................................................................107
2 Nhược điểm................................................................................................................................107

3 Hướng phát triển:.......................................................................................................................108
TÀI LIỆU THAM KHẢO..................................................................................................................... 109

CNPM

6


DANH MỤC HÌNH
HÌNH 1.1 CÁC NỀN TẢNG LẬP TRÌNH DI ĐỘNG..................................................................................11
HÌNH 1.2 APPLE DEV CENTER........................................................................................................... 21
HÌNH 1.3 XCODE - NEW PROJECT...................................................................................................... 23
HÌNH 1.4 XCODE EDITOR.................................................................................................................. 25
HÌNH 1.5 INTERFACE BUILDER - NEW FILE......................................................................................... 27
HÌNH 1.6. CỬA SỔ TÀI LIỆU INTERFACE BUILDER...............................................................................29
HÌNH 1.7 CỬA SỔ THƯ VIỆN INTERFACE BUILDER.............................................................................30
HÌNH 1.8 CỬA SỔ THUỘC TÍNH INTERFACE BUILDER.........................................................................31
HÌNH 1.9 BẢNG KẾT NỐI CỦA INTERFACE BUILDER............................................................................32
HÌNH 1.10 CẤU TRÚC FILE GIAO DIỆN CỦA MỘT LỚP........................................................................39
HÌNH 1.11 CẤU TRÚC FILE THỰC THI CỦA MỘT LỚP..........................................................................40
HÌNH 1.12 CFNETWORK VÀ CÁC LỚP PHẦN MỀM KHÁC TRONG MAC OS X........................................45
HÌNH 1.13 CẤU TRÚC CFSTREAM API................................................................................................ 47
HÌNH 1.14 CẤU TRÚC VÀ NGUỒN CỦA RUNLOOP..............................................................................67
HÌNH 1.15 KIẾN TRÚC CORE AUDIO CỦA MAC OS X...........................................................................71
HÌNH 1.16. KIẾN TRÚC CORE AUDIO CỦA HỆ ĐIỀU HÀNH IPHONE.....................................................72
HÌNH 1.17 BA LỚP API CỦA CORE AUDIO.......................................................................................... 73
HÌNH 1.18 CẤU TRÚC CORE AUDIO CỦA HỆ ĐIỀU HÀNH IPHONE.......................................................74
HÌNH 2.1 MÔ HÌNH HỆ THỐNG MOBILE PORTAL...............................................................................78
HÌNH 2.1 MÔ HÌNH ĐƠN GIẢN CỦA SOCBAY SEARCH ENGINE...........................................................79
HÌNH 4.1 USERCASE TỔNG THỂ CỦA HỆ THỐNG................................................................................86

HÌNH 4.2 MP3 STREAMING.............................................................................................................. 95
HÌNH 4.3 GIAO DIỆN CHÍNH CỦA ỨNG DỤNG...................................................................................96
HÌNH 4.4 GIAO DIỆN CHÍNH CỦA DỊCH VỤ TIN TỨC...........................................................................97
HÌNH 4.5 GIAO DIỆN CHÍNH CỦA DỊCH VỤ TRUYỆN...........................................................................97
HÌNH 4.6 GIAO DIỆN CHÍNH CỦA ĐỊA ĐIỂM......................................................................................98
HÌNH 4.7 GIAO DIỆN CHÍNH CỦA DỊCH VỤ CẨM NANG TƯ VẤN.........................................................98
HÌNH 4.8 GIAO DIỆN CHÍNH CỦA DỊCH VỤ HÌNH ẢNH.......................................................................99
HÌNH 4.9 GIAO DIỆN CHÍNH CỦA DỊCH VỤ NHẠC MP3......................................................................99

CNPM

7


HÌNH 4.10 BIỂU ĐỒ LỚP CỦA TẦNG ỨNG DỤNG COCOA TOUCH......................................................100
HÌNH 4.11 BIỂU ĐỒ LỚP CỦA LỚP ỨNG DỤNG................................................................................101
HÌNH 4.12 BIỂU ĐỒ LỚP CỦA DỊCH VỤ TIN TỨC..............................................................................102
HÌNH 4.13 BIỂU ĐỒ LỚP CỦA DỊCH VỤ NHẠC MP3..........................................................................104
HÌNH 4.14 BIỂU ĐỒ LỚP CỦA TẦNG MOBILE INTERFACE..................................................................105

DANH MỤC BẢNG
BẢNG 1.1 CÁC TEMPLATE ỨNG DỤNG THƯỜNG DÙNG....................................................................24
BẢNG 1.2 CÁC TEMPLATE CỦA INTERFACE BUILDER..........................................................................28
BẢNG 1.3 CÁC PHƯƠNG THỨC QUẢN LÝ BỘ NHỚ CỦA OBJECTIVE-C.................................................41
BẢNG 1.4 PROPERTY ATTRIBUTE...................................................................................................... 42
BẢNG 1.5 CÁC CÔNG NGHỆ CÓ THỂ SỬ DỤNG THAY THẾ THREAD TRONG ỨNG DỤNG......................57
BẢNG 1.6 CÁC LOẠI THREAD............................................................................................................ 57
BẢNG 1.7 GIAO TIẾP GIỮA CÁC THREAD........................................................................................... 60
BẢNG 1.8 CHI PHÍ SỬ DỤNG THREAD............................................................................................... 62
BẢNG 1.9 CẤU HÌNH THREAD........................................................................................................... 64

BẢNG 1.10 CÁC CHẾ ĐỘ RUN LOOP.................................................................................................. 68
BẢNG 2.1 CÁC DỊCH VỤ.................................................................................................................... 81
BẢNG 4.2 ĐẶC TẢ USERCASE DỊCH VỤ TIN TỨC.................................................................................88
BẢNG 4.3 ĐẶC TẢ USERCASE DỊCH VỤ TRUYỆN.................................................................................89
BẢNG 4.4 ĐẶC TẢ USERCASE DỊCH VỤ ĐỊA ĐIỂM...............................................................................90
BẢNG 4.5 ĐẶC TẢ USERCASE DỊCH VỤ CẨM NANG TƯ VẤN...............................................................91
BẢNG 4.6 ĐẶC TẢ USERCASE DỊCH VỤ HÌNH ẢNH.............................................................................92
BẢNG 4.7 ĐẶC TẢ USERCASE DỊCH VỤ NHẠC MP3.............................................................................93

CNPM

8


LỜI NÓI ĐẦU
Đồ án tốt nghiệp này đã được hoàn thành sau một thời tìm hiểu, xây dựng tại Công
ty Cổ phần dịch vụ công nghệ thông tin Naiscorp. Ngoài sự cố gắng và nỗ lực của
bản thân, còn có sự giúp đỡ của nhiều người để em có thể hoàn thành được đồ án như
ngày nay.
Trước hết, em xin được gửi lời cảm ơn sâu sắc đến ThS Lương Mạnh Bá - Bộ
môn Công nghệ phần mềm, Viện Công nghệ Thông tin và Truyền thông, trường Đại
học Bách Khoa Hà Nội đã hết lòng giúp đỡ, định hướng và chỉ dạy tận tình giúp em
vượt qua những khó khăn trong quá trình em làm đồ án tốt nghiệp.
Em xin được gửi lời cảm ơn tới các thầy cô giáo trong trường Đại học Bách Khoa
Hà Nội nói chung và các thầy cô trong viện Công nghệ Thông tin và Truyền thông, Bộ
môn Công nghệ phần mềm nói riêng đã tận tình giảng dạy, truyền đạt cho em những
kiến thức, những kinh nghiệm quý báu trong suốt 5 năm học tập và rèn luyện tại trường
Đại học Bách Khoa Hà Nội.
Ngoài ra, em cũng xin gửi lời cảm ơn đến anh Nguyễn Xuân Tài, anh Mai Đình
Thắng và các anh chị em công ty Naiscorp đã tạo điều kiện để em có thể hoàn thành

sản phẩm và cũng là đồ án của mình.

CNPM

9


PHẦN I: NỀN TẢNG CÔNG NGHỆ
CHƯƠNG 1: TÌM HIỂU MÔI TRƯỜNG LẬP TRÌNH TRÊN
IPHONE
1.1 Tổng quan về lập trình trên di động
1.1.1 Thị trường lập trình trên di động
Số lượng thiết bị di động ngày càng tăng ở Việt Nam, nhiều người đã coi điện
thọai di động như một vật không thể thiếu trong cuộc sống hằng ngày. Cùng với sự
phát triển mạnh mẽ của công nghệ thông tin trong thời đại mới, người sử dụng di động
bắt đầu hướng tới những nhu cầu cao cấp hơn. Không chỉ nghe-gọi, nhắn tin mà giờ
đây họ còn muốn sở hữu một chiếc điện thoại có khả năng truy cập mạng và thực hiện
mọi ứng dụng như một chiếc máy tính bỏ túi.
Để có thể thực hiện được các tính năng cao cấp như đọc báo, tiểu thuyết, tra từ
điển, bản đồ và nhất là thế giới giải trí với ca nhạc, xem phim, chơi game… thì ngoài
nền tảng phần cứng do nhà sản xuất điện thoại cung cấp còn cân phải có các phần mềm
chuyên dụng cài đặt trên di động để thực hiện các chức năng trên.
Tuy nhiên, thị trường di động là một thị trường rất sôi động với đủ loại thiết bị
di động của các nhà sản xuất có kiểu dáng, tính năng, tốc độ xử lý, bộ nhớ trong, màn
hình giao diện…. khác nhau. Và cũng vì có nhiều nhà sản xuất mà lại không có một
chuẩn công nghệ (về mặt phần mềm) nào được áp dụng chung cho tất cả các máy điện
thoại di động nên công việc lập trình cho điện thoại di động đúng là một bài toán khó
cho các lập trình viên.
Việc lựa chọn một nền tảng phát triển cho điện thoại di động cũng là một vấn đề
nan giải. Hiện nay có thể kể tên các nền tảng di động phổ biến: iPhone, Window

Mobile, Android, J2ME, Symbian. Nhìn vào hình dưới đây có thể thấy được phần nào
sự phong phú của thị trường này.

CNPM

10


Hình 1.1 Các nền tảng lập trình di động

1.1.2. Những khó khăn khi lập trình cho di động
So với chiếc máy tính để bàn hay laptop, chỉ với bộ nhớ trong vài GB, RAM cao
nhất là 256 MB, bộ nhớ của chiếc điện thoại di động quả là quá nhỏ. Hơn nữa, một
phần bộ nhớ này lại đã được sử dụng để chạy hệ điều hành, xử lý đồ họa… Do đó khi
viết ứng dụng, lập trình viên phải chú ý nhiều đến bộ nhớ. Có thể nói rằng lập trình cho
di động giống như việc đẩy các lập trình viên về với thời kỳ đầu của lập trình cho máy
tính cá nhân, phải tiết kiệm từng KB bộ nhớ một nếu không muốn xảy ra tình trạng tràn
bộ nhớ.
Người sử dụng ứng dụng trên di động đòi hỏi tốc độ phải nhanh, ví như mở một
game, người ta không thể ngồi chờ cả chục phút để game load xong. Do đó, quá trình
đóng, mở ứng dụng phải diễn ra nhanh chóng. Hơn nữa, dù có thông minh đến mấy,
nhiều chức năng đến mấy, chiếc điện thoại di động cũng phải là “chiếc điện thoại”
trước đã. Vậy khi đang chạy ứng dụng, bất thình lình có một tin nhắn hay một cuộc gọi
CNPM

11


đến thì sao? Ứng dụng phải được đóng tạm thời một cách nhanh chóng, lưu trữ lại
trạng thái trước khi đóng, cho người dùng nhận tin nhắn, cuộc gọi (nếu người dùng lựa

chọn nhận), sau đó lại cho phép người dùng trở lại ứng dụng với trạng thái trước đó.
Sức hấp dẫn của Internet là không thể chối cãi. Người dùng muốn truy cập
internet mọi lúc mọi nơi, người lập trình thì muốn tạo ra các ứng dụng có khả năng
khai thác nguồn tài nguyên vô tận của internet. Tuy nhiên không phải thiết bị di động
nào cũng có khả năng truy nhập internet. Vì vậy, cần phải hiểu về các dịch vụ phần
cứng của thiết bị đó hỗ trợ.
Tư tưởng “code một chỗ, dùng ở mọi nơi” khó mà áp dụng được cho lĩnh vực
lập trình di động. Ví dụ như với các dòng máy cho phép cài đặt các ứng dụng viết bằng
ngôn ngữ Java. Về lý thuyết, chương trình Java được xây dựng xong có thể đem đi mọi
nơi có máy ảo Java để chạy. Nhưng các thiết bị di động của các hãng khác nhau lại có
bộ nhớ cùng với tốc độ xử lý khác nhau, phải hiểu rõ sự khác nhau này thì mới có thể
điều chỉnh cho ứng dụng có thể chạy trên các dòng máy khác nhau. Hơn nữa, màn hình
hiển thị của các thiết bị di động cũng “trăm hoa đua nở” với kích thước, độ phân giải
màn hình… không theo một chuẩn nhất định nên chắc chắc sẽ không ra kết quả như
mong muốn khi cài đặt cùng một ứng dụng lên các thiết bị khác nhau mà không có sự
sửa đổi hiển thị đầu ra cho phù hợp. Mặt khác, các thiết bị di động cũng tiếp nhận
tương tác của người dùng rất khác nhau: qua bàn phím, chuột, bút, cảm ứng… nên lập
trình viên cũng cần phải lưu ý đến điều này.
Màn hình của các thiết bị di động rất bé so với máy tính để bàn hay máy tính
xách tay nên các ứng dụng cũng không thể có giao diện quá phức tạp bởi như thế sẽ
làm rối mắt người sử dụng.

1.2 Tổng quan về lập trình iPhone
1.2.1 Giới thiệu về iPhone
1. Cuộc cách mạng về công nghệ trên điện thoại di động mang tên iPhone
Tháng 6 năm 2007, chiếc iPhone thế hệ đầu tiên ra mắt và mở đầu cho cơn sốt
iPhone trên toàn thế giới. Không hổ danh là công ty luôn đi đầu về công nghệ, Apple
đã tạo ra thay đổi mang tính cách mạng với chiếc điện thoại di động khi giới thiệu một
giao diện người dùng hoàn toàn mới trên nền tảng màn hình cảm ứng đa điểm và phần
mềm mới có tính tiên phong. Hệ điều hành của iPhone giúp người dùng có thể điều

khiển chiếc điện thoại của họ chỉ bằng một thao tác nhấn, gảy hoặc chụm tay.
CNPM

12


Đến năm 2008, Apple lại cho ra mắt iPhone 3G cùng với App Store - một “cửa
hàng” các ứng dụng cho iPhone.
iPhone có màn hình cảm ứng đa điểm, bàn phím ảo hoàn toàn thay thế bàn phím
thật và có một gia tốc kế bên trong. Màn hình cảm ứng đa điểm tận dụng xúc giác tự
nhiên của khách hàng mà không thông qua bút stylus. Các thao tác trên máy được thực
hiện dễ dàng chỉ bằng cách đặt ngón tay lên màn hình nhấn, kéo, thả… iPhone loại bỏ
hoàn toàn sự xuất hiện của bàn phím thật, thay vào đó là bàn phím thông minh hoạt
động trên cơ sở phần mềm. Bàn phím ảo này cho phép người dùng chuyển đổi qua lại
giữa 40 dạng bàn phím quốc tế và có phần mềm nhận dạng ký tự cho phép người dùng
viết các ký tự Trung Hoa bằng ngón tay rồi nhấn chọn kết quả thích hợp.
iPhone phản ứng với các chuyển động bằng một gia tốc kế lắp bên trong. Khi
người dùng quay iPhone từ phương đứng sang phương ngang, gia tốc kế phát hiện ra
chuyển động này và thay đổi màn hình, cho xem toàn bộ chiều rộng của trang web,
hình ảnh, tin nhắn, hoặc bản ghi chú gia tốc kế cũng được sử dụng để kiểm soát việc
chơi game hay đảo ngược hành động trước đó (như lệnh “Shake to Undo”).
Với iPhone 3GS, người dùng có thể tự điều chỉnh và sắp xếp các biểu tượng trên
màn hình Chủ (Home screen), kể cả các biểu tượng trên Thanh Công Cụ theo ý muốn
của mình.
iPhone phân tích các cú gõ để đề nghị các từ mà người dùng gõ vào, và học
được những từ người dùng thường hay gõ nhất – kể cả tên riêng và thông tin trong sổ
liên lạc (contact list) của họ.
Nhấn và giữ nút Home để mở chế độ Voice Control (Điều Khiển Bằng Khẩu
Lệnh), rồi đọc vào tên hay số điện thoại của một người liên lạc để gọi điện. iPhone
cũng mở nhạc và tạo ra các danh mục mở (playlist), bằng cách chỉ việc dùng khẩu

lệnh. Đây là một trong các tính năng mới được thêm vào sau này của iPhone
iPhone 3GS được chuẩn hóa bằng các tính năng tiếp cận sử dụng (accessibility)
hỗ trợ cho người khuyết tật.
iPhone cung cấp các dữ liệu vị trí để tìm đến các ứng dụng cài đặt sẵn và Cửa
Hàng Ứng Dụng (App Store). Khi chụp ảnh bằng camera iPhone có thể gắn thẻ địa lý
(geotag), ghi các thông tin về địa điểm GPS (Hệ Thống Định Vị Toàn Cầu) cho nó.
Nhờ vậy, khi người dùng chia sẻ hình ảnh trên mạng, bạn bè và gia đình có thể biết
được địa điểm của hình chụp.
CNPM

13


2. Giới hạn của iPhone
Bộ nhớ và tốc độ xử lý: Mặc dù Apple không tiết lộ thông tin về tốc độ sử lý và
bộ nhớ nhưng hacker Craig Hockenberry trên trang furborg.org đã đánh giá iPhone có
tốc độ xử lý tầm 600 MHz và 128MB bộ nhớ vật lý. Bộ nhớ và tốc độ xử lý này quá
giới hạn so với các máy tính cá nhân hiện nay hiện nay.
Màn hình nhỏ: màn hình của iPhone có độ phân giải 480 x 320 pixel. Không có
nhiều không gian để làm việc cùng. Kích thước màn hình nhỏ cũng dẫn tới việc chỉ có
duy nhất 1 cửa sổ có thể hiển thị tại một thời điểm.
Bảo mật: chỉ có thể đọc và ghi vào thư mục là một phần của gói ứng dụng.
Vùng có thể truy nhập trong một ứng dụng được gọi là sandbox. Không thể đọc file
được tạo bởi ứng dụng khác. Không thể ghi vào bất cứ nơi nào ngoài sandbox của ứng
dụng.
Ứng dụng có vòng đời ngắn: các ứng dụng iPhone không thể thường trú trong
bộ nhớ. Các ứng dụng thường trú trong bộ nhớ là ứng dụng có thể chạy ẩn trong khi
người dùng chạy ứng dụng khác. iPhone chỉ cho phép 1 chương trình chạy tại một thời
điểm đo đó cần lưu ý tới các trường hợp như đang chạy ứng dụng thì có tin nhắn, điện
thoại… Tuy nhiên, hạn chế này sẽ sớm được khắc phục khi Apple đang dự kiến cho ra

mắt iPhone 4.0 với hệ điều hành đa nhiệm trong năm nay.
Tự quản lý bộ nhớ do iPhone không có bộ gom rác (garbage collection).
1.2.2 Các nền tảng phát triển di động hứa hẹn trong năm 2010
Năm 2010 sẽ đánh dấu một năm đầy sôi động với sự ra mắt của iPhone 4.0, các
nền tảng Symbian, Windows Phone và BlackBerry mới. Smartphone ngày một chiếm
thị phần lớn trên tổng số điện thoại di động bán ra, song song, cuộc chiến giữa các nền
tảng ngày một nóng bỏng hơn.
Palm OS, Windows Mobile, Symbian đã có một quá khứ thành công, tuy nhiên
việc chậm thay đổi, đã làm cho iPhone, Android thay đổi cục diện khi liên tục gia tăng
thị phần trong hai năm gần đây. Chưa bao giờ, làng di động lại có nhiều hệ điều hành
cho smartphone như hiện tại. Nokia sau khi sở hữu Symbian, tiếp tục phát triển Maemo
và gần đây là kết hợp với Intel để xây dựng thành MeeGo. Palm sau khi về tay HP,
đang có kế hoạch nâng cấp webOS lên phiên bản mới, ngoài ra Android cũng sắp được
Google nâng cấp bản 2.2. Dưới đây là 5 nền tảng di động đã được các nhà sản xuất
thông báo chính thức, và sẽ có mặt trên thị trường trong thời gian tới.
CNPM

14


• iPhone 4.0
Có thể nói iPhone 4.0 là nền tảng được mong chờ nhất hiện nay, cùng với hệ
điều hành này, một phiên bản di động thế hệ thứ tư của Apple gần như chắc chắn sẽ có
mặt vào tháng 6 tới. So với các phiên bản trước, iPhone OS 4.0 đã có thể chạy đa
nhiệm, thay đổi được coi là đáng kể nhất. Sự thành công của iPhone không chỉ bởi nền
tảng có giao diện đơn giản, những chiếc di động thiết kế đẹp, mà Apple đã xây dựng
một "hệ sinh thái" với vô số ứng dụng trong App Store. Nền tảng mới sẽ xuất hiện mùa
hè năm nay và cho phép cài đặt lên các mẫu iPhone từ 3G, 3GS và iPod Touch.
• Symbian^3
Symbian^3 là bản nâng cấp từ S60 phiên bản thứ 5, và được xem là nền tảng

tạm thời, trước khi Nokia trình làng Symbian^4. Nokia N8 là thiết bị đầu tiên sử dụng
hệ điều hành này. So với S60, Symbian^3 không có nhiều thay đổi từ Menu, cách bố trí
màn hình Home, các biểu tượng.
Tuy nhiên, sự khác biệt là hệ điều hành này có thêm 3 màn hình Home, cho
phép trượt và chuyển đổi cùng công nghệ cảm ứng đa điểm. N8 sẽ ra mắt vào quý III,
model mạnh mẽ, các tính năng giải trí đa phương tiện, chụp ảnh 12 Megapixel.
• Windows Phone 7
Windows Mobile là một trong những nền tảng khai sinh smartphone với nhiều
ứng dụng. Tuy nhiên, sự xuất hiện của iPhone đã mang tới cho người dùng những suy
nghĩ mới, theo đó điện thoại thông minh cần đơn giản, dễ dùng, trong khi Windows
Mobile ngược lại, khá rắc rối. Sau phiên bản Windows Mobile 6.5 ra mắt năm ngoái,
tháng 2 vừa rồi, Microsoft giới thiệu Windows Phone 7, hệ điều hành sẽ có mặt trên di
động vào cuối năm nay.
Gần như, Windows Phone không có sự kế thừa nào so với nền tảng trước của
hãng về giao diện, tất cả đều được làm mới, từ các hub chứa ứng dụng đến các bố trí
icon. Hiện tại, HTC, LG, Acer... và nhiều thương hiệu khác cam kết sẽ ra mắt di động
chạy Windows Phone 7 vào cuối năm. Microsoft cũng đang tích cực phát triển gian
ứng dụng Market Place và công cụ cho các lập trình viên xây dựng phần mềm.
• BlackBerry 6
BlackBery OS 6 được RIM công bố tại sự kiện Wireless Enterprise Symposium
(diễn ra từ 27 đến 29/4 tại Mỹ). RIM chưa đưa ra chi tiết về hệ điều hành mới, ngoài
CNPM

15


một đoạn video quảng cáo khá ấn tượng. Theo những thông tin đầu tiên, nhiều cải tiến
từ giao diện, màn hình Home mới, menu pop-up, khả năng chuyển dịch, trình duyệt
web mới dựa trên nền tảng WebKit tương thích HTML5. Ngoài ra, BlackBerry OS 6
hỗ trợ khả năng điều khiển trên màn hình cảm ứng đa điểm tốt hơn.

• Samsung Bada
Samsung từng sản xuất di động chạy Windows Mobile, Android... Bada là nền
tảng của hãng phát triển riêng, với giao diện có nhiều đường nét của TouchWiz. Bada
dành cho màn hình cảm ứng, nhấn mạnh vào các yếu tố như giải trí, kết nối. Samsung
Wave S8500 là model đầu tiên chạy nền tảng này, máy sẽ bán ra trong quý này.
Hiện tại, Bada đang được Samsung hoàn thiện, hãng cũng đã giới thiệu công cụ
lập trình, các nhà phát triển có thể viết các ứng dụng về giao diện Flash, điều khiển
web, điều khiển chuyển động, nhận dạng khuôn mặt, thời tiết... và các ứng dụng nhập
vai, tương tác.
1.2.3. Môi trường lập trình iPhone
Hệ điều hành: MacOS hoặc OS X 10.5.* trở lên.
Môi trường: iPhone SDK. iPhone SDK có thể download miễn phí từ trang
/>IDE: Xcode
Ngôn ngữ lập trình: Ojective – C
1.2.4. iPhone SDK:
1. Phân tích một ứng dụng:
Hệ điều hành OS X của Apple là một platform xây dựng dựa trên nền tảng
UNIX nên kế thừa các quy ước cơ bản của UNIX về file. Nhìn vào bất kỳ ứng dụng
Mac nào cũng sẽ thấy rằng phần mở rộng .app không phải biểu diễn một file mà là một
thư mục. Đây là thư mục của ứng dụng. Trong đó là một cấu trúc có tổ chức chứa các
tài nguyên mà ứng dụng cần cũng như các thuộc tính mang thông tin về ứng dụng và
file thực thi nhị phân của ứng dụng.
iPhone SDK build file thực thi nhị phân cho chương trình và gửi các file nó cần
vào thư mục chương trình này. Do vậy, để xây dựng một ứng dụng hoàn thiện, các file
hỗ trợ cần được cài đặt phải được chỉ ra cho Xcode IDE. Ứng dụng chỉ được thực thi
CNPM

16



bên trong “sandbox” của iPhone. Thuật ngữ “sandbox” dùng để chỉ vùng giới hạn ngăn
không có các ứng dụng truy xuất vào các tài nguyên không được cho phép. Một trong
các chức năng của nó là ngăn chặn bất kỳ hoạt động đọc hay ghi nào ở bên ngoài thư
mục home đã được chỉ định cho 1 ứng dụng. Tất cả những gì một chương trình cần để
chạy phải được chứa trong thư mục home. Hơn nữa, ứng dụng sẽ không biết được nơi
nó được cài đặt mà đây sẽ là định danh duy nhất được thêm vào đường dẫn của ứng
dụng mỗi lần cài đặt. Muốn tìm ra đường dẫn cài đặt chỉ có cách duy nhất là sử dụng
các hàm như là NSHomeDirectory hay lớp như là lớp NSBundle.
Mỗi ứng dụng iPhone có một thư mục home riêng chứa thư mục Library và
Documents, và thư mục tmp để chứa các file tạm.Thư mục chương trình của ứng dụng
iPhone có cấu trúc đơn giản hơn của ứng dụng Mac cho máy tính để bàn, và tất cả các
tài nguyên của ứng dụng đều được lưu trữ ở gốc của thư mục chương trình .app.
Ví dụ một thư mục home hoàn chỉnh của một ứng dụng iPhone:
drwxr-xr-x
drwxr-xr-x
drwxr-xr-x
drwxr-xr-x
drw-r--r-rw-r--r-rw-r--r-rw-r--r-rwxr-xr-x
-rw-r--r-rw-r--r-rw-r--rdrwxr-xr-x

mobile mobile
mobile mobile
mobile mobile
mobile mobile
mobile mobile
mobile mobile
mobile mobile
mobile mobile
mobile mobile
mobile mobile

mobile mobile
mobile mobile
mobile mobile

Documents/
Library/
Preferences/
MyApp.app/
_CodeSignature
Default.png
icon.png
Info.plist
MyApp
pie.png
PkgInfo
ResourceRules.plist
tmp/

Danh sách này phản ánh một ứng dụng iPhone rất cơ bản có tên MyApp:
Documents: thư mục đặc biệt chứa các tài liệu của ứng dụng được tạo bởi người
dùng. Nó không chia sẻ tài liệu với các ứng dụng khác.
Library: thư mục chứa các thiết lập (setting) và các tài nguyên khác được tạo ra
sau khi cài đặt. Thư mục này còn chứa một thư mục con là Preferences chứa các ưu
tiên (preference) của ứng dụng.

CNPM

17



MyApp.app: thư mục ứng dụng biểu diễn ứng dụng thực sự. Thư mục này chứa
file nhị phân thực thi và tất cả các tài nguyên hỗ trợ đáng tin.
_CodeSignature: thư mục chứa chữ ký cho mỗi file trong ứng dụng để đảm bảo
rằng ứng dụng không bị sửa đổi từ dạng ban đầu của nó. Tất cả ứng dụng phải được
“ký” mới có thể chạy trên iPhone.
Default.png: file ảnh được hiển thị ở màn hình khi ứng dụng bắt đầu được mở ra
và giữ cho đến khi ứng dụng khởi động xong. Đây là một file ảnh có kích thước 320 x
480 pixel.
icon.png: ảnh đại diện cho ứng dụng hiển thị lên màn hình home của iPhone.
Apple khuyên nên sử dụng một biểu tượng có kích thước 57 x 57 pixel. File này có thể
có tên tùy thích miễn là nó được chỉ rõ trong file Info.plist.
Info.plist: danh sách các thuộc tính chứa thông tin về ứng dụng. Trong đó quan
trọng nhất là tên file thực thi nhị phân và một định danh gói ( bundle identifier), sẽ
được gọi khi ứng dụng bắt đầu mở
pie.png: một ảnh được sử dụng làm ví dụ. iPhone framework cung cấp nhiều
phương thức để lấy được tài nguyên vì vậy lập trình viên không cần truy xuất trực tiếp
các tài nguyên này thông qua đường dẫn. Xcode IDE sẽ lấy tất cả các file có trong thư
mục Resoure và đặt vào thư mục chương trình của ứng dụng khi project được cài đặt.
PkgInfo: file này chứa 8 byte mô tả loại file cho cho ứng dụng.
Khi tự xây dựng ứng dụng không cần sự trợ giúp của Xcode, phát triển viên cần
phải tạo một thư mục khung .app để chứa ứng dụng. Khung .app cung cấp tất cả các
thông tin cần thiết cho iPhone biết về sự tồn tại của ứng dụng như là một gói, nên nó có
thể được chạy từ màn hình home của iPhone.
Nếu xây dựng ứng dụng bằng Xcode, bộ khung này sẽ được Xcode sinh ra tự
động. Ví dụ, sau khi biên dịch một ứng dụng có tên MyExample , Xcode tạo ra thư mục
của MyExample bên trong thư mục Build của project và đặt file thực thi nhị phân và tài
nguyên của nó vào trong thư mục của ứng dụng. Nếu làm bằng tay thì phải tạo ra thư
mục đó:
$ mkdir MyExample.app


CNPM

18


Sau đó, Xcode sẽ sao chép danh sách thuộc tính vào thư mục ứng dụng để mô tả
ứng dụng và cách thức nó được mở ra. File Info.plist biểu diễn thông tin đưới dạng
XML:
<?xml version="1.0" encoding="UTF-8"?>
plist
PUBLIC
"-//Apple//DTD
PLIST
1.0//EN"
"
/DTDs/PropertyList-1.0.dtd">

<dict>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleDisplayName</key>
<string>${PRODUCT_NAME}</string>
<key>CFBundleExecutable</key>
<string>${EXECUTABLE_NAME}</string>
<key>CFBundleIconFile</key>
<string>icon.png</string>
<key>CFBundleIdentifier</key>
<string>com.yourcompany.${PRODUCT_NAME:identifier}</string>
<key>CFBundleInfoDictionaryVersion</key>

<string>6.0</string>
<key>CFBundleName</key>
<string>${PRODUCT_NAME}</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleResourceSpecification</key>
<string>ResourceRules.plist</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>1.0</string>
<key>LSRequiresIPhoneOS</key>
<true/>
</dict>
</plist>
CNPM

19


Các thuộc tính quan trọng là CFBundleDisplayName, CFBundleExecutable,
CFBundleIconFile,
CFBundleIdentifier

CFBundleName.
Thuộc
tính
CFBundleExecutable đặc biệt quan trọng vì nó chỉ ra tên của file thực thi nhị phân
trong thư mục ứng dụng. File này sẽ được thực thi khi ứng dụng được mở ra.
CFBundleIdentifier chỉ ra định danh duy nhất của ứng dụng. Bất cứ khi nào mở

ứng dụng, ứng dụng sẽ được tham chiếu tới sử dụng định danh này. Bởi vì định danh
này là duy nhất nên nó thường được hợp nhất với một URL.
Các file icon.png và Default.png cũng được sao chép vào thư mục chương trình.
Tuy nhiên nếu file icon.png và Default.png không tồn tại hay không được chỉ ra trong
file Info.plist, iPhone sẽ sử dụng hình mặc định của nó.
2. Cài đặt iPhone SDK:
iPhone cho phép người dùng có thể download miễn phí iPhone SDK từ trang
Tuy nhiên, trước khi download cần phải đăng ký
trở thành một người phát triển ứng dụng cho iPhone. Để đăng ký, truy nhập vào trang
trên, tìm đường link tới chỗ download bản SDK mới nhất.

CNPM

20


Hình 1.2 Apple Dev Center

Bấm vào link, trang đăng ký sẽ mở ra với 3 tùy chọn:
- Miễn phí: sử dụng Apple ID của mình để download SDK. Nếu không có
Apple ID, có thể bấm vào nút Create Apple ID để tạo và đăng nhập vào. Khi đã đăng
nhập, người dùng không chỉ download được SDK mà còn tìm thấy nhiều link hữu ích
chứa tài liệu, video, code mẫu… để phát triển ứng dụng trên iPhone.

CNPM

21


- Standard: với giá 99$. Nó cung cấp một host các công cụ, tài nguyên, hỗ trợ kỹ

thuật, phân phối ứng dụng qua App Store của Apple và quan trọng nhất là khả năng
kiểm tra và gỡ lỗi trên máy iPhone thực sự chứ không chỉ là trên simulator.
- Enterprise: giá 299$ được thiết kế cho các công ty phát triển độc quyền,
các ứng dụng cho iPhone và iPod touch trong nhà và cho những ứng dụng phát triển
cho App Store và có nhiều hơn một nhà phát triển làm việc trong một dự án.
Một trong những phần tử quan trọng nhất của iPhone SDK là Xcode, môi
trường phát triển tích hợp của Apple. Xcode gồm các công cụ để tạo, gỡ lỗi source
code, biên dịch ứng dụng và thực thi ứng dụng. Bản SDK miễn phí cũng bao gồm cả
simulator cho phép người phát triển có thể chạy hầu hết các chương trình iPhone trên
máy Mac.
3. iPhone Simulator:
iPhone Simulator là giả lập của iPhone cho phép người dùng triền khai và kiểm
thử các ứng dụng iPhone trên máy tính để bàn. Simulator cung cấp môi trường giống
với iPhone với tùy chọn menu để giả lập khóa, xoay màn hình… Tuy nhiên nó cũng có
một số giới hạn nhất định do desktop không có các phần cứng cần thiết để thực hiện
các tác vụ đó.
Một số chức năng quan trọng không có trong simulator:
Không có API đo gia tốc
Chỉ giới hạn với một số cử chỉ tương tác với màn hình cảm ứng, và không hỗ trợ
nhiều hơn 2 ngón tương tác lên màn hình cảm ứng.
Ứng dụng sẽ không nhận điện thoại gọi đến.
Không thể truy nhập mạng EDGE/3G
Không có chức năng ghi hình và ghi âm.
Chỉ có sẵn một số ứng dụng của iPhone: Contacts, Safari, Photos và Settings.
Không thể thấy tác động của ứng dụng lên CPU và bộ nhớ của iPhone bởi máy
desktop có nhiều tài nguyên hơn để chạy ứng dụng. Đồ họa chậm hay các vấn đề khác
chỉ có thể phát hiện ra khi kiểm thử trên máy thật.

CNPM


22


1.2.5 Xcode
Sau khi mở Xcode, chọn File/New Project. Một cửa sổ xuất hiện nhắc người
dùng chọn template cho project của mình. Bên dưới tiêu đề iPhone OS, chọn mục
Application, phía bên phải sẽ hiện ra một số template để chọn.

Hình 1.3 Xcode - New Project

1.Mô hình MVC ( Model - View - Controller)
Phần mềm phát triển trên iPhone phải tuân theo mô hình MVC. Mục đích của
mô hình này là tách rời phần nghiệp vụ (business logic) ra khởi dữ liệu và các quy tắc
áp dụng lên dữ liệu này khỏi các phần tử giao diện được hiển thị cho người dùng thấy.
Model biểu diễn dữ liệu và nghiệp vụ (business logic) cho ứng dụng.
View biểu diễn các phần tử giao diện hiển thị cho người dùng và cho phép
người dùng tương tác với chúng.
CNPM

23


Controller là cầu nối giữa Model và View.
2. Các template thường dùng

Template
View - based application
Navigation - based application
Utility application
OpenGL ES application

Tab bar application

Window-based application

Ứng dụng
Áp dụng với những ứng dụng chỉ có một view (cảnh). Một
controller quản lý view chính của ứng dụng.
Áp dụng với những ứng dụng phải sử dụng nhiều view và
cần một navigation trung gian giữa chúng.
Áp dụng với những ứng dụng sử dụng tới đồ họa, 3D game.
Cung cấp một controller đặc biệt hiển thị một nút bên dưới
màn hình. Đây là template thích hợp cho các ứng dụng kiểu
cho iPod hay là Mobile Phone.
Framework cơ bản nhất. Áp dụng với những ứng dụng
không thích hợp với bất kỳ template nào ở trên

Bảng 1.1 Các template ứng dụng thường dùng
3. Sự bố trí của một project trong Xcode
Sau khi tạo một project mới, màn hình project sẽ mở ra:

CNPM

24


Hình 1.4 Xcode editor

Một project đóng gói nguồn, framework và các tài nguyên của ứng dụng. Trong
một project bao gồm:
Classes: Chứa các lớp Objective-C mà ứng dụng cần sử dụng: đối tượng

delegate, view controller, và các đối tượng khác người dùng tạo ra. Khi muốn thêm
một lớp mới vào ứng dụng của mình, lập trình viên sẽ thêm lớp mới của mình vào đây
Other sources: các nguồn khác được biên dịch vào ứng dụng. Mặc định, Other
sources sẽ chứa các header tiền biên dịch và hàm main.
Resources: Các tài nguyên của ứng dụng mà không được biên dịch vào trong
source code nhưng được sao chép vào thư mục chương trình khi ứng dụng build lên.
Các tài nguyên này bao gồm: ảnh, âm thanh, game level hay các file quan trọng khác.
Frameworks: chứa các framework mà ứng dụng có liên kết. Các thư viện này
được liên kết lúc build.
Products: build target cho ứng dụng
CNPM

25


×