Tải bản đầy đủ (.pdf) (82 trang)

Xây dựng ứng dụng IOS kết hợp webservice

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.06 MB, 82 trang )

Trường ĐH Giao Thông Vận Tải Tp.HCM
KHOA CÔNG NGHỆ THÔNG TIN

LUẬN VĂN TỐT NGHIỆP
Đề tài: XÂY DỰNG ỨNG DỤNG IOS KẾT HỢP WEBSERVICE

Ngành
:
Chuyên ngành :

Công nghệ thông tin

GVHD : THS. NGUYỄN LƯƠNG ANH TUẤN
SVTH : NGUYỄN VĂN ĐƯỜNG
ĐỖ TUẤN ANH
Lớp
: CN08

Tp. Hồ Chí Minh năm 2012


LỜI MỞ ĐẦU
 Nhu cầu thực tế và lý do chọn đề tài
Với sự ra đời của máy tính bảng (tablet) cùng những dòng điện thoại thông
minh (smart phone) có cấu hình ngày càng “khủng” song hành cùng nhiều nền tảng
hệ điều hành di động thân thiện với người dùng và cũng không kém phần mạnh mẽ,
giờ đây khi nhắc tới thiết bị di động, người dùng không còn nghĩ tới những chiếc
điện thoại đơn thuần chỉ để nghe, gọi, nhắn tin như trước. Thiết bị di động đã có thể
đáp ứng mọi nhu cầu của con người từ làm việc, liên lạc, giao tiếp, giải trí, .v.v…
Bên cạnh đó, nhờ vào sự tiện lợi cũng như tính thẩm mĩ, thiết bị di động ngày càng
thể hiện ưu thế của mình so với chiếc máy tính PC truyền thống.


Song hành cùng với sự bùng nổ của của thiết bị di động là sự phát triển không
ngừng của công nghệ truyền thông tốc độ cao. Công nghệ 3G, 4G ra đời đã đem đến
cho thiết bị di động tốc độ kết nối truyền tải dữ liệu ngày nhanh, không thua kém gì
mạng băng thông rộng truyền thống trên PC.
Nhờ vào sự phát triển rông rãi của thiết bị di động kéo theo sự tăng trưởng
không ngừng của ngành công nghiệp phần mềm di động. Phát triền phần mềm di
động tại Việt Nam hiện nay vẫn đang trong giai đoạn phát triển và hứa hẹn nhiều
tiềm năng trong tương lai. Từ những lý dó đó, chúng em quyết định chọn đề tài cứu
về môi trường phát triển ứng dụng cho thiết bị di động và xây dựng một ứng dụng
đọc tin tức trực tuyến trên hệ điều hành iOS có kết hợp xây dựng hệ thống
webservice.
 Mục tiêu đề tài
Như tên gọi, thiết bị di động là thiết bị nhỏ gọn, được thiết kế phục vụ chủ yếu
cho nhu cầu liên lạc và giải trí của người dùng khi di chuyển. Cấu hình của thiết bị
di động mặc dù càng ngày càng được nâng cao tuy nhiên vẫn không thể so với máy
tính để bàn. Lập trình di động là một mảng còn khá mới mẻ và nhiều khác biệt so

1


với môi trường lập trình ứng dụng truyền thống. Ngoài ra việc xây dựng hệ thống
webservice phục vụ cho thiết bị di động cũng có sự khác biệt nhất định so với hệ
thống cho website hay các máy tính trạm.
Do vậy, nội dung đề tài cần giải quyết các công việc sau:
 Tìm hiểu về nền tảng lập trình cho thiết bị di động, ngôn ngữ lập trình,
công cụ hỗ trợ lập trình di động.
 Tìm hiểu các công nghệ phát triển ứng dụng di động hiện có, tìm ra ưu,
nhược điểm của mỗi loại công nghệ.
 Nghiên cứu về hệ thống webservice, các công nghệ xây dựng webservice
phổ biến.

 Lựa chọn công nghệ xây dựng webservice cho ứng dụng di động
 Xây dựng một ứng dụng đọc tin tức online trên nền hệ điều hành iOS có
sử dụng hệ thống webservice
 Nội dung đề tài:
 Chương 1: Sơ lược về thiết bị di động và ứng dụng di động
 Chương 2: Tổng quan hệ điều hành iOS
 Chương 3: Môi trường lập trình ứng dụng iOS
 Chương 4: Công nghệ Webservice
 Chương 5: Xây dựng đọc tin tức trực tuyến cho iPhone
 Kết luận: Kết quả đạt được và hướng phát triển
TP.Hồ Chí Minh, ngày 1 tháng 10 năm 2012
Sinh viên thực hiện:
Nguyễn Văn Đường
Đỗ Tuấn Anh

2


MỤC LỤC

LỜI MỞ ĐẦU ............................................................................................................1
MỤC LỤC ..................................................................................................................3
MỤC LỤC HÌNH ẢNH ............................................................................................6
Chương 1: Sơ lược về thiết bị di động và ứng dụng di động.................................8
1.1 Sơ lược về thiết bị di động .............................................................................8
1.2 Hệ điều hành di động .....................................................................................9
1.3 Ứng dụng di động ...........................................................................................9
1.4 Phân loại ứng dụng di động.........................................................................10
Chương 2: Tổng quan về hệ điều hành iOS..........................................................11
2.1 Tổng quan về hệ điều hành iOS ...................................................................12

2.2 Các phiên bản của hệ điều hành iOS..........................................................12
2.3 Các thiết bị di động sử dụng nền tảng iOS ................................................15
Chương 3: Môi trường lập trình ứng dụng iOS ...................................................16
3.1 Bộ công cụ lập trình Xcode ..........................................................................16
3.1.1 Giới thiệu..................................................................................................16
3.1.2 Giao diện làm việc của Xcode .................................................................17
3.2 Ngôn ngữ lập trình Objective-C ..................................................................21
3.2.1 Lịch sử ra đời và phát triển ......................................................................21
3.2.2 Đặc điểm cơ bản .......................................................................................22
3.3 Tổng quan về lập trình iOS ..........................................................................26
3.3.1 Hỗ trợ đa nhiệm (multi – threading) ........................................................27
3.3.2 Một ứng dụng chỉ có một cửa sổ ..............................................................27

3


3.3.3 Hạn chế trong việc truy cập .....................................................................27
3.3.4 Hạn chế về thời gian phản hồi của hệ thống ............................................28
3.3.5 Hạn chế về kích thước màn hình ..............................................................28
3.3.6 Hạn chế về tài nguyên hệ thống ...............................................................28
3.3.7 Những lợi thế của các thiết bị chạy iOS ..................................................28
3.3.8 Cách tiếp cận khác so với lập trình thiết bị máy tính truyền thống .........29
3.4 Kiến trúc một ứng dụng iOS ........................................................................29
3.4.1 Mô hình kiến trúc của một ứng dụng iOS chuẩn .....................................29
3.4.1 Vòng đời một ứng dụng iOS (application life cycle) ...............................31
Chương 4: Công nghệ Webservice ........................................................................35
4.1 Giới thiệu về ứng dụng phân tán .................................................................36
4.1.1 Tổng quan về hệ phân tán ........................................................................36
4.1.2 Mô hình hệ thống phân tán ......................................................................38
4.1.3 Các vấn đề nảy sinh trong hệ thống phân tán ..........................................38

4.1.4 Các hệ thống phân tán ..............................................................................38
4.1.5 Hạn chế của các hệ thống phân tán trên ...................................................39
4.2 Dịch vụ web (Web Service)...........................................................................40
4.2.1 Khái niệm web service .............................................................................40
4.2.2 Đặc điểm của dịch vụ Web ......................................................................40
4.2.3 Ưu nhược điểm của dịch vụ web .............................................................41
4.2.4 Kiến trúc của dịch vụ Web .......................................................................42
4.2.5 Các thành phần của dịch vụ Web .............................................................44
4.2.6 Bảo mật cho dịch vụ web .........................................................................48
4.2.7 Xây dựng một dịch vụ web ......................................................................50
4.2.8 Tích hợp dịch vụ web theo chuẩn ............................................................51
4.3 JSON ...............................................................................................................53
4.3.1 Khái niệm JSON ......................................................................................53
4.3.2 Đặc trưng của SON.................................................................................53

4


4.3.3 Cấu trúc của SON ...................................................................................54
4.3.4 Cú pháp SON ..........................................................................................54
4.3.5 Sử dụng son trong tình huống nào ..........................................................59
Chương 5: Xây dựng ứng dụng đọc tin tức trực tuyến cho Iphone ...................61
5.1 Xây dựng ứng dụng trên Client iOS device .............................................63
5.1.1 Sơ đồ S -CASE ....................................................................................63
5.1.2 anh sách các ctor.................................................................................63
5.1.3 anh sách các S -CASE ......................................................................64
5.1.3 anh sách các màn hình ...........................................................................64
5.1.4 Mô tả chi tiết mỗi màn hình .....................................................................65
5.2 Xây dựng hệ thống Server (Webservice) ....................................................70
5.2.1 Yêu cầu từ client(ứng dụng IOS) .............................................................70

5.2.2 Sơ đồ chức năng của Server .....................................................................70
5.2.3 anh sách các service cung cấp dữ liệu cho client ..................................70
5.2.3 anh sách các màn hình ...........................................................................72
5.2.4 Mô tả chi tiết các màn hình ......................................................................73
KẾT LUẬN ..............................................................................................................78
Một số kết quả đạt được .....................................................................................78
Hướng phát triển .................................................................................................79
DANH MỤC TÀI LIỆU THAM KHẢO ...............................................................80
Danh mục tài liệu tham khảo .............................................................................80
Danh mục website tham khảo ............................................................................80

5


MỤC LỤC HÌNH ẢNH
Hình 1: Tạo mới một project trong XCode ...............................................................18
Hình 2:Giao diện làm việc chính của XCode ...........................................................19
Hình 3:Giới thiệu giao diện chính của XCode ..........................................................20
Hình 4:Giao diện Interface Builder ...........................................................................21
Hình 5: Mô hình MVC ..............................................................................................30
Hình 6: Vòng đời ứng dụng iOS (1) .........................................................................32
Hình 7: Vòng đời ứng dụng iOS (2) .........................................................................33
Hình 8: vòng đời ứng dụng iOS (3) ..........................................................................34
Hình 9: Vòng đời ứng dụng iOS (4) .........................................................................35
Hình 10: Mô hình hệ thống phân tán ........................................................................38
Hình 11:Chồng giao thức của dịch vụ web ...............................................................43
Hình 12:Kiến trúc sâu hơn của dịch vụ web .............................................................44
Hình 13: Cấu trúc value trong SON ........................................................................55
Hình 14: Cấu trúc Object trong SON ......................................................................56
Hình 15: Cấu trúc array trong SON .........................................................................57

Hình 16: Cấu trúc string trong SON ........................................................................58
Hình 17: Cấu trúc number trong SON .....................................................................59
Hình 18: Mô hình hoạt động của hệ thống sử dụng JSON .......................................59
Hình 19: Ví dụ về dữ liệu kiểu JSON .......................................................................60
Hình 20: Sơ đồ USE CASE ứng dụng ......................................................................63
Hình 21: Màn hình chính ..........................................................................................65
Hình 22: Màn hình danh sách tin trong 1 chuyên mục .............................................67
Hình 23: Màn hình tìm kiếm .....................................................................................68
Hình 24: Màn hình nội dung chi tiết tin ....................................................................69
Hình 25: Sơ đồ chức năng của Server .......................................................................70
Hình 26: Màn hình đăng nhập (server) .....................................................................73
Hình 27: Màn hình quản lý danh sách chuyên mục (server) ....................................74

6


Hình 28: Màn hình quản lý tin tức (server)...............................................................74
Hình 29: : Màn hình chọn website lấy tin tự động (server) ......................................75
Hình 30: Màn hình chọn chuyên mục để lấy tin tự động (server) ............................75
Hình 31: Màn chọn tin để lấy tự động (server) .........................................................76
Hình 32: Màn hình thêm tin bằng tay (server) ..........................................................77

7


Chương 1: Sơ lược về thiết bị di động và ứng dụng di động

1.1 Sơ lược về thiết bị di động
Thiết bị di động (hay còn gọi là thiết bị cầm tay) là một thiết bị nhỏ gọn,
thường có một màn hình hiển thị với đầu vào là bàn phím cảm ứng hoặc một bàn

phím vật lý thu nhỏ. Trước đâu khi nhắc tới thiết bị di động người ta sẽ nghĩ tới
những chiếc điện thoại di động nhưng hiện tại thiết bị di động không chỉ có vậy. Sự
phát triển mạnh mẽ của các hệ điều hành di động đã đem đến cho người dùng những
thiết bị nhỏ gọn và cơ động hơn máy tính PC truyền thống như máy tính bảng
(tablet), máy đọc sách, hay thậm trí cả những chiếc máy nghe nhạc được tích hợp hệ
điều hành đều được được coi là thiết bị di động.
Những thiết bị di động hiện tại đã có hàng loạt tính năng hiện đại như kết nối
Wifi, GPS, NFC, 3G , ... nhờ vậy chúng hoàn toàn đủ khả năng phục vụ mọi nhu
cầu trong đời sống sinh hoạt của con người, từ làm việc, liên lạc, tới giải trí. Hơn
thế nữa, nhờ vào tính tiện dụng và thiết kế đa dạng hợp thời trang, thiết bị di động
đã làm thay đổi hoàn toàn thói quen sử dụng máy tính của chúng ta.
Hoàn toàn có thể nói thời điểm hiện tại đang là giai đoạn bùng nổ thực sự của
thiết bị di động trên toàn cầu. Ngành công nghiệp di động thật sự đang trở thành
một mảng thị trường hấp dẫn mà bất cứ công ty nào cũng muốn nhắm tới. Thị
trường di động ngày càng đa dạng với sự góp mặt của hoàng loạt tên tuổi lớn như
Nokia,

pple, Samsung, LG,… thậm trí gần đây với sự kiện

mazon (nhà bán lẻ

trực tuyến lớn nhất Hoa Kì) cho ra đời chiếc máy tính bảng Kindle đã cho thấy xu
hướng thâm nhập thị trường di động là mong muốn của mọi công ty trên thế giới.

8


1.2 Hệ điều hành di động
Phần quan trọng nhất làm nên sức mạnh của một thiết bị di động đó là hệ điều
hành. Cũng tương tự như hệ điều hành máy tính PC, hệ điều hành trên thiết bị di

động cũng là một phần mềm chạy trên thiết bị di động dùng để điều hành, quản lý
các phần cứng và các tài nguyên phần mềm của thiết bị. Hệ điều hành đóng vai trò
trung gian trong giao tiếp giữa người dùng và thiết bị di động, cung cấp một môi
trường cho phép phát triển và thực hiện các ứng dụng một cách dễ dàng.
Ở thời điểm hiện tại có khá nhiều hệ điều hành cho thiết bị di động trong đó
nổi bật và phát triển rộng rãi hơn cả phải kể đến iOS (của Apple), Android (của
Google), Window Phone (của Microsoft), BlackBerry OS (của RIM) ngoài ra còn
có một số tên tuổi khác như Symbian (của Nokia), Banda OS (của
Samsung),Firefox OS, Tizen, Window Mobile… tuy nhiên thị phần của những hệ
điều hành này hiện không nhiều.

1.3 Ứng dụng di động
Ứng dụng di động được hiểu là một ứng dụng phần mềm được thiết kế để chạy
trên điện thoại thông minh, máy tính bảng hay những thiết bị di động khác. Ứng
dụng di động ban đầu được cung cấp để phục vụ cho những công việc căn bản như
eMail, sổ địa chỉ (contact), lịch, chứng khoán, thông tin thời tiết.Tuy nhiên do nhu
cầu ngày càng mở rộng cùng với sự hỗ trợ mạnh mẽ từ các công cụ phát triển, giờ
đâu ứng dụng di động đã trở nên hết sức đa dạng, từ game online, GPS, ngân hàng
điện tử, đặt vé, …
Ứng dụng di động đa phần được phân phối trên các chợ ứng dụng của các
hãng sản suất phần mềm hay phần cứng nổi tiếng. Một số chợ ứng dụng nổi tiếng
nhất hiện nay gồm có:


pple

pp Store: Ra đời cùng với chiếc điện thoại nổi tiếng iPhone

vào tháng 8/2008, tới nay App Store của


pple đã có tới 625.000 ứng dụng cung

cấp cho các thiết bị sử dụng hệ điều hành iOS bao gồm cả iPhone, iPad và iPod
Touch

9




Google Play: là một của hàng phần mềm trực tuyến được phát triển

bởi Google cho các thiết bị chạy hệ điều hành

ndroid. Google Play được khai

trương vào tháng 10/2008 và tới cuối tháng 4/2012 ước tính đã có hơn 430.000 ứng
dụng.


Nokia Store: Nokia Store trước đây có tên là Ovi Store là chợ cung

cấp ứng dụng của hãng điện thoại Phần Lan Nokia cho các thiết bị họ đặc biệt là
thiết bị điện thoại thông minh (Smart Phone).


BlackBerry

pp World: là kênh phân phối ứng dụng cho các sản


phẩm chạy hệ điều hành BlackBerry OS của hãng Research In Motion (RIM). Ra
mắt chính thức vào ngày 1/4/2009 và tới tháng 9/2012 ước tính đã có 105.000 ứng
dụng được phân phối tại đây.


Windows Phone Marketplace: là một dịch vụ của Microsoft cung cấp

các ứng dụng di động cho nền tảng Windows Phone 7 đã được ra mắt vào tháng
10/2010. Tới tháng 6/2012 Windows Phone Marketplace đã có 100.000 ứng dụng.


mazon

ppstore: Được ra mắt vào 22/3/2011,

cung cấp ứng dụng cho thiết bị cho sử dụng hệ điều hành

mazon

ppstore

ndroid. Hiện nay

Amazon Appstore mới có khoảng 3.800 ứng dụng nhưng với sự ra đời của chiếc
máy tính bảng Kindle Fire của Amazon với hệ điều hành

ndroid tùy biến hứa hẹn

sẽ thúc đẩy sự phát triển trong thời gian tới cho Amazon Appstore.


1.4 Phân loại ứng dụng di động
Ngày nay, trong lĩnh vực phát triển ứng dụng di động tồn tại 3 khái niệm là :
Native pplication, Web pplication và Hybird pplication.


Native

pplication: là những ứng dụng được xây dựng theo cách

chính thống với các ngôn ngữ lập trình/nền tảng do các nhà sản xuất di động quy
định (ví dụ: Objective-C cho iOS, Java cho Android, .NET cho Windows
Phone,…).
Ưu điểm của Native App lập trình viên có thể thoải mái truy cập vào hệ thống,
phần cứng của thiết bị (như hệ thống file, camera, microphonr, accelerometer,…)

10


Nhược điểm là bị bó buộc với công nghệ và nền tảng của nhà sản xuất đưa ra.


Web

pplication: là các ứng dụng được xây dựng trên nền tảng web

(mà điển hình là HTML5), chỉ hoạt động trên trình duyệt của điện thoại. Tiền thân
của ý tưởng này là những trang web có giao diện tùy biến cao, chạy được trên nhiều
độ phân giải màn hình, về sau phát triển mạnh và hình thành nên một hướng đi mới
cho việc phát triển ứng dụng di động.
Ưu điểm của web app là có thể thoải mái phatr triển ứng dụng mà không cần

quan tâm tới nền tảng vì nó là ứng dụng đa nền, viết một lần có thể chạy trên nhiều
nền tảng di động khác nhau, chỉ cần nền tảng đó hỗ trợ web.
Nhược điểm: là không có được sức mạnh truy cập sâu vào hệ thống và thiết bị
phần cứng như native app.

và Web

Hybird

pplication: là loại ứng dụng lai giữa 2 khái niệm Native app

pp. Có thể hiểu nôm ba các ứng dụng này là một native app chỉ có một

đối tượng webview trên màn hình, dùng để hiển thị nội dung trang web app, và web
app giao tiếp với native app thông qua một cầu nối (bridge) để mang lại sức mạnh
của native app cho web app.

11


Chương 2: Tổng quan về hệ điều hành iOS
2.1 Tổng quan về hệ điều hành iOS
Hệ điều hành iOS là hệ điều hành được công ty pple phát hành cho các thiết
bị di động của hãng. iOS được công bố lần đầu tiên tại hội nghị Macworld
Conference & xpo ngày 9 tháng 1 năm 2007 và được phát hành chính thức vào
tháng 6 năm đó cho chiếc điện thoại thông minh iPhone thế hệ đầu tiên của Apple.
Ban đầu các ứng dụng của hãng thứ 3 không được hỗ trợ trên iOS. Ngày 17
tháng 10 năm 2007,

pple thông báo rằng một bản SDK cho lập trình iOS được


hãng phát triển và dự định sẽ được phát hành nó cho các nhà phát triển vào tháng 2.
Phiên bản beta đầu tiên được phát hành vào ngày 6 tháng 3 năm 2008.
Lần lượt các phiên bản hệ điều hành tiếp theo của hệ điều hành iOS được
apple cập nhật cho iPhone, iPad và iPod Touch thông qua iTunes. Phiên bản mới
nhất của iOS là phiên bản 6.0 ra mắt ngày 12 tháng 9 năm 2012 cùng với chiếc điện
thoại iPhone 6 của Apple.

2.2 Các phiên bản của hệ điều hành iOS


Phiên bản 1.x: Đây là phiên bản đầu tiên và xuất hiện cùng chiếc

iPhone đầu tiên (hay còn gọi là iPhone 2G) vào ngày 29/6/2007. Hệ điều hành mới
mang đến một giao diện và cách thức sử dụng hoàn toàn mới trên thiết bị điện thoại
thông minh với việc loại bỏ bàn phím vật lý thay bằng cảm ứng đa điểm.


Phiên bản 2.x:Phiên bản thứ 2 được giới thiệu sau phiên bản đầu tiên

1 năm và phát hành chính thức cùng với chiếc iPhone thế hệ thứ 2 (iPhone 3G) cùng
sự xuất hiện của

pp Store mang đến những ứng dụng từ các nhà phát triển thứ 3

cho thiết bị di động của Apple. Các ứng dụng gốc như mail, danh bạ, lịch, trình
duyệt Safari,… cũng lần lượt được cải tiến thông qua các bản cập nhật nhỏ sau đó.
iPhone 2G và iPod Touch Gen 1 vẫn có thể cập nhật phiên bản 2.x này.

12





Phiên bản 3.x: một năm sau khi phát hành phiên bản hệ điều hành thứ

2, phiên bả thứ 3 được giới thiệu và chình thức ra mắt ngày 17/6/2009 cùng chiếc
iPhone 3GS. Ở phiên bản này, nhiều tính năng thiếu sót mà người dùng than phiền
đã được Apple bổ sung gần như đầy đủ như: sao chép văn bản, nhắn tin đa phương
tiện (MMS),… Các thiết bị đang chạy phiên bản 2.x vẫn có thể năng cấp lên phiên
bản 3.x này nhưng đối với iPhone 2G thì một số tính năng sẽ không được cập nhật.
Đây cũng là phiên bản cuối cùng mà iPhone 2G và iPod Touch Gen 1 có thể sử
dụng.


Trong thời điểu phiên bản 3.x đang được sử dụng thì

pple cho ra

mắt chiếc máy tính bảng iPad đầu tiên của hãng và đã làm hẳn một phiên bản sử
dụng riêng cho chiếc máy này là phiên bản 3.2. Nhìn chung, phiên bản dành riêng
cho iPad này không có nhiều khác biệt vì vốn dĩ

pple chỉ tùy chình kích thước

cũng như bổ sung them một số tính năng để phù hợp với màn hình của iPad.


Phiên bản 4.x: thời điểm ra mắt phiên bản 4.x cũng là lúc pple chính


thức đặt tên hệ điều hành của mình là “iOS” và đây cũng là phiên bản đầu tiên của
hệ điều ành này hỗ trợ đồng thời nhiều thiết bị. iPhone 2G,3G sẽ lược bỏ bớt chức
năng trên iOS 4 này vì một số hạn chế về phần cứng. Đây là phiên bản cuối cùng
mà iPhone 3G và iPod Gen 2 có thể năng cấp.Bên cạnh nâng cấp về ứng dụng bên
trong hệ điều hành, phiên bản này còn có những tính năng đáng chú ý như: thư mục
chứa ứng dụng (App Folder), khả năng chạy đa nhiệm (multitasking), thoại video
qua wifi (Facetime), AirPlay, Wifi Hostpot (duy nhất trên iPhone từ iOS 4.3).


Phiên bản 5.x: được phát hành ngày 6/6/2011. Phiên bản này được

phát hành cho iPhone 3GS, iPhone 4(GSM và C M ), iPhone 4S, iPod Touch (thế
hệ 3 và 4), iPad, iPad 2. Phiên bản này được nâng cấp nhiều chức năng mới trong
đó có tiện ích Siri (chỉ hỗ trợ cho iPhone 4S) là một ứng dụng giúp giao tiếp với
thiết bị bằng giọng nói, được pple đặc biệt giữ bí mật cho tới tận ngày ra mắt.


Phiên bản 6.x: được giới thiệu ngày 11/6/2012 và phát hành chính

thức ngày 19/9/2012. Phiên bản này không hỗ trợ cho nhiều thiết bị phần cứng lỗi

13


thời đặc biệt là iPod Touch thế hệ thứ 3 và iPad thế hệ đầu. Phiên bản này được
Apple giới thiệu với nhiều cải tiến mà người dùng mong đợi:
o Facebook: Cuối cùng

pple cũng tích hợp sâu hơn với mạng xã hội


Facebook trên iOS 6. Trước đây, với nền tảng iOS 5, Apple kết thân với
mạng Twitter và thời điểm đó đã khiến rất nhiều người dùng than thở bởi
hãng này vẫn chưa hỗ trợ Facebook vốn là mạng xã hội lớn nhất thế giới.
o Siri: Siri trở nên mạnh mẽ hơn, có thể dùng giọng nói để ra lệnh mở các
ứng dụng. Nhờ đó, nếu người dùng ngồi cạnh bàn làm việc, cầm lấy
iPhone và yêu cầu Siri bật nhạc hay ra lệnh cho nàng trợ lý mở các ứng
dụng và các hành động khác nhau. Siri đặc biệt xuất sắc khi thực hiện
mệnh lệnh tìm kiếm số liệu/bàn thắng trong thể thao, tìm thời gian phát
sóng phim, thời gian bán vé, và đặt lịch ăn tối…
o Eyes Free: Một tính năng cực kỳ thú vị được Apple trang bị cho iOS đó
chính là yes Free (rảnh mắt). Hãng này đang hợp tác với hàng loạt hãng
xe hơi nổi tiếng, như

udi, BMW, Mercedes… để tích hợp chức năng Siri

trên vô lăng.
o Passbook: Tính năng này sẽ quản lý tất cả các loại vé, từ vé xem phim,
vé tàu, vé máy bay, cả vé đi xem thể thao… trên một ứng dụng riêng.
Với Passbook, người dùng có thể mua vé trên Fandango, và vé điện tử sẽ
được gửi tới điện thoại của mình. Sau đó, khi đi đến rạp chiếu phim hay
lên tàu điện thì chỉ cần quẹt điện thoại iPhone tại các quầy soát vé.
o

pple Maps:

pple đã chính thức nói lời chia tay với Google Maps. Ứng

dụng bản đồ của

pple giúp người dùng xác định vị trí rẽ, các địa điểm


giải trí…, và đặc biệt ngƣời dùng có thể tìm kiếm trên

pple Maps bằng

cách ra lệnh cho Siri. Mặc dù pple đã có màn trình diễn ấn tượng về ứng
dụng của mình nhưng nhiều người hoài nghi về việc liệu đây có phải là
quyết định sáng suốt khi tìm cách loại bỏ Google Maps. Thực tế sau khi
phát hành được gần một tháng ứng dụng bản đồ của pple đã bộc lộ nhiều
lối khiến người dùng thất vọng, thậm chí là bực tức. CEO Tim Cook của

14


pple đã phải công nhận thất bại của Apple Maps xin lỗi người dùng và
cho biết pple đang gấp rút làm việc để hoàn thiện bản đồ này.
o

mail:

pple nâng cấp hai tính năng đặc biệt quan trọng cho mail, đó là

cho phép ngƣời dùng gán email VIP để đánh dấu e-mail được gửi từ
những người quan trọng. Ngoài ra, iOS 6 cho phép người dùng chèn ảnh
và video vào e-mail trực tiếp từ ứng dụng Email.

2.3 Các thiết bị di động sử dụng nền tảng iOS


iPhone: Với việc sự mắt iPhone 5 vào 29/9/2012 hiện nay có tất cả 6


phiên bản iPhone được bán trên thị trường lần lượt là iPhone 2, iPhone 3G, iPhone
3Gs, iPhone 4, iPhone 4S, iPhone 5. Ở mỗi thế hệ iPhone Apple giới thiệu đến
người dùng đều có những nâng cấp đáng kể, đặc biệt là iPhone 4 với sự thay đổi lớn
về thiết kế cũng như cấu hình. Phiên bản mới nhất iPhone 5 với màn hình kích
thước 5 inch (những phiên bản trước đều là 4,5 inch) đang nhận được nhiều đánh
giá trái chiều từ người dùng cũng như giới công nghệ.


iPod Touch: được xem là chiếc iPhone lược bỏ tính năng thoại, nhắn

tin. Với tính năng gần như 1 chiếc iPhone thực thụ gồm màn hình cảm ướng, cài đặt
ứng dụng của iPhone,… iPod đã thực sự tạo ra một cơn sốt trên thị trường máy
nghe nhạc ngay từ khi ra mắt phiên bản đầu tiên. Hiện nay đã có tất cả 5 thế hệ iPod
được ra mắt.


iPad: đây là chiếc máy tính bảng đình đám và nổi tiếng nhất thời điểm

hiện tại. Có tất cả 3 thế hệ iPad đã ra mắt là iPad, iPad 2 và New iPad. Mặc dù các
hãng khách cho ra mắt hàng loạt thiết bị máy tính bảng nhưng tới thời điểm hiện tại
iPad vẫn là biếu tượng của thiết bị máy tính bảng, chiếm phần lớn thị phần thiết bị
này.

15


Chương 3: Môi trường lập trình ứng dụng iOS
Hệ điều hành iOS hỗ trợ tốt cho cả 3 loại ứng dụng là Native pp, Web App
và Hibrid


pp. Nội dung đề tài sẽ đi sâu vào giới thiệu môi trường lập trình ứng

dụng Native cho iOS.

3.1 Bộ công cụ lập trình Xcode
3.1.1 Giới thiệu
Xcode là một môi trường phát triển tích hợp (Integrated Development
Environment) chứa một bộ công cụ phát triển phần mềm được phát triển và phân
phối bởi

pple để phát triển phần mềm cho OS X và iOS. Xcode được phát hành

lần đầu tiên năm 2003, phiên bản mới nhất là Xcode 4.5.1. Xcode được cung cấp
miễn phí nhưng nó chỉ chạy được trên hệ điều hành Mac OS X, không hỗ trợ
Windows hay bất kì hệ điều hành nào khác. Các nhà phát triển phần mềm có thể
download Xcode về từ trang chủ của Apple:
/>Việc download này đòi hỏi có tài khoản lập trình viên của

pple, người dùng

có thể đăng kí tài khoàn này miễn phí ngay tại website của Apple.
Bộ iOS S K này sẽ bao gồm luôn Môi trường phát triển (I

) là XCode,

một phần rất quan trọng trong công việc của chúng ta sau này. XCode gồm có
những công cụ để chúng ta tạo, sữa lỗi (debug), biên dịch, kiểm tra khả năng hoạt
động và chạy thử ứng dụng (apps) trên trình một trình giả lập (simulator).
Tuy nhiên, hạn chế của bộ SDK miễn phí này là gì ? Ta sẽ không thể chép

apps lên thiết bị thật (iPhone, iPod Touch & iPad) được. Và tất nhiên cũng không
thể đưa ứng dụng lên

pple

ppStore để bán hay cho người dùng tải miễn phí

được.
Chính vì thế, tài khoản miễn phí chỉ phù hợp cho người mới bắt đầu. Khi bắt
đầu làm những apps thương mại, chúng ta phải cần đến 1 trong 2 lựa chọn sau:
Tài khoản Nhà phát triển Chuẩn (Standard program)

16


- Chi phí $99/năm.
- Với tài kho ản này, chúng ta có thể tiếp cận được nhiều tài liệu hơn việc
phát triển phần mềm cho iOS, được hỗ trợ về kỹ thuật từ

pple. Và quan trọng

nhất là có thể chạy thử apps trên thiết bị thật thay vì chỉ kiểm tra trên simulator.
Quan trọng hơn nữa là apps của chúng ta có cơ hội được đưa lên

pple

ppStore.

Có 2 lựa chọn trong tài khoản này:
- Cá nhân (Individual): đăng ký với tên của cá nhân và những apps được đưa

lên pple AppStore sẽ xuất hi ện dưới tên này.
- Công ty (Company): đăng ký với tên công ty (yêu cầu những giấy tờ liên
quan). pps được đưa lên sẽ xuất hi ện dưới tên công ty đã đăng ký.
Tài khoản cho Công ty/Tổ chức chuyên nghiệp (Enterprise program)
- Chi phí $299/năm.
- Gói tài khoản này dành cho các công ty phát triển phần mềm cho iPhone
OS, có khả năng xuất bản các apps lên những thiết bị nội bộ trong công ty.

ành

cho những công ty, tổ chức lớn có nhu cầu viết phần mềm cho iPhone OS phục vụ
nhu cầu riêng của công ty, không cần phải tải và cài đặt từ Apple AppStore.
3.1.2 Giao diện làm việc của Xcode
a.

Giao diện tạo project mới:

17


Hình 1: Tạo mới một project trong XCode
Từ phiên bản Xcode 4 trở đi ngoài lựa chọn tạo project cho ứng dụng chạy
trên Mac OS X, XCode còn phép tạo project phát triển ứng dụng cho iPhone hoặc
iPad. Xcode cung cấp sẵn các template để tạo mới project ứng với nhu cầu phát
triển ứng dụng khác nhau. Khi tạo xong project mới thì giao diện sẽ như sau:

18


Hình 2:Giao diện làm việc chính của XCode


- Toolbar : hiển thị trạng thái của project và giúp sử dụng các chức năng chung của
project một cách dễ dàng
- Navigator : Quản lý các file và group
- Editor : chỉnh sửa nội dung của project
- tility : giúp hợp nhất giữa xcode và các thư viện , giúp đỡ của Interface Builder

19


Hình 3:Giới thiệu giao diện chính của XCode

b.

Building Interface:

20


Hình 4:Giao diện Interface Builder

Một sự thay đổi lớn trong XCode 4 so với các phiên bản trước là Interface
Builder, chức năng này giúp hỗ trợ người lập trình thiết kế giao diện bằng phương
thức kéo thả trực tiếp các item từ library ra giao diện đang thiết kế.

3.2 Ngôn ngữ lập trình Objective-C
3.2.1 Lịch sử ra đời và phát triển
Objective-C là một ngôn ngữ lập trình hướng đối tượng sử dụng để phát triển
ứng dụng cho hệ điều hành Mac OS X (hệ điều hành của máy tính Mac) và các thiết
bị iOS.


21


Objective-C được tạo ra từ những năm 1980 bởi hai lập trình viên Brad Cox
và Tom Love. Tuy nhiên tại thời điểm đó ngôn ngữ này không được nhiều người
biết tới cho đến khi nó được mua lại bởi NeXT cho hệ điều hành NeXTST P của
họ. Sau khi NeXT được mua lại nởi

pple năm 1996, Objective-C trở thành ngôn

ngữ lập trình chính cho Mac OS x và sau này là cả iOS.
3.2.2 Đặc điểm cơ bản
Objective-C được phát minh dựa trên ngôn ngữ C nên những mã được viết
bằng C hoàn toàn có thể sử dụng trong một trương trình sử dụng Objective-C. Tuy
nhiên Objective-C có thêm những tính năng riêng của mình nên không thể sử dụng
trong một trương trình C truyền thống.
a.

Sử dụng phương thức trong Objective-C:



Cách khai báo phương thức trong Objective-C:
Không tham số:<(kiểu trả về)>
Có tham số: <(kiểu trả về)>:<(kiểu)>:<(kiểu)>;



Gọi phương thức:

Với phương thứckhông có giá trị trả về:

[<đối tượng >];
[<đối tượng >:<kiểu>]

Với phương thức có giá trị trả về:
(kiểu dữ liệu tương ứng) =[<đối tượng>]
(kiểu dữ liệu tương ứng)=[<đối tượng>:<kiểu>:<kiểu>]
b.

Lớp và đối tượng:

Không giống những ngôn ngữ khác như C hay ava, Class (lớp) trong
Objective-C được chia thành 2 phần riêng biệt:
-

Phần bề mặt (Interface) trong đó khai báo các biến và chức năng hay phương
thức.

22


-

Phần thực thi (Implementation) trong đó chứa các mã thực thi của chức năng
hay phương thức được khai báo trong phần Interface.
Thông thường hai phần này sẽ được chứa trong hai file (tập tin) khác nhau.

File có phần mở rộng là “.h” chứa phần interface, phần Implementation nằng trong
file “.m”.

-

Sử dụng #import để thay thế cho #include.

-

Objective-C chỉ cho phép đơn kế thừa. Mặc định tất cả các lớp sẽ kế thừa từ
NSObject.

-

Các thuộc tính được khai báo trong cặp {…} và phương thức được khai báo bên
ngoài.

-

Nếu phương thức bắt đầu bằng dấu “+” có nghĩa nó thuộc phạm vi lớp (static),
còn nếu bắt đầu bằng “-“ thì nó thuộc phạm vi lớp object.

-

Các phạm vi truy xuất public, private, protected đều giống C++, mặc định biến
khai báo mà ko chỉ rõ phạm vi truy xuất thì sẽ là biến protected

-

Cách truy nhập phần tử cũng sử dụng toán tử “.” đối với object và ”->” nếu là
con trỏ.
c.


xception và handler:

Objective-C hỗ trợ các cấu trúc try – catch – throw – finally giống như ngôn
ngữ C++.
d. Categories:
Là một đặc điểm cho phép thêm mới vào lớp một phương thức. Khi đã làm
quen với lập trình hướng đối tượng bạn sẽ thấy đây là một trong những thuộc tính
vô cùng hữu ích của Objective-C, nhờ nó mà ngay cả khi bạn không có mã nguồn
của lớp nhưng bạn vẫn hoàn toàn có thể thêm phương thức cho lớp như thường. Đặc
điểm này giúp giảm đi đáng kể sự kế thừa phức tạp trong C++, khi việc kế thừa chỉ
để phục vụ cho việc them mới một phương thức. Mặt khác việc chia mã nguồn trên
nhiều tập tin cũng giúp ích đáng kể cho việc phát triển.

23


Lưu ý:
- Tên của category phải là duy nhất
- Có thể them bao nhiêu lần mở rộng lớp từ category là không giới hạn nhưng
với tên là duy nhất.
- Không thể bổ sung biến thành phần bằng category.
- Có thể sử dụng category để tạo ra các phương thức private.
e. Properties:
Thuộc tính (Properties) gần như bất cứ một ngôn ngữ lập trình hiện đại nào
cũng hỗ trợ, đây là một khái niệm bảo toàn tính đóng gói của lập trình hướng đối
tượng.
Đối với ngôn ngữ Objective-C có một số những hỗ trợ đặc biệt hơn một chút,
khai báo sử dụng bằng @properties.
Objective-C có 2 lựa chọn là @synthesize và @dynamic, với lựa chon là
@synthesize thì mặc nhiên trình biên dịch sẽ giúp bạn sinh ra các phương thức set

và get trên thuộc tính, xen kẽ vào đó @dynamic có thể được sử dụng để chia các
phương thức.
f.

Kiểu ID:

ID trong Objective-C gần tương tự như void* trong C. Ta không cần phải biết
rõ kiểu của đối tượng khi gọi phương thức trong Objective-C điều này hoàn toàn
khác vớ C++ bởi đơn giản khi gọi phương thức cũng giống như ta truyền thông điệp
trong Objective-C. Nếu đối tượng đó có phương thức thì sẽ đáp lại thông điệp mà
bạn truyền (gọi phương thức) và phương thức được gọi.
g.

ynamic types (ép kiểu động):

Những phương thức dưới đây dùng để kiểm tra kiểu:

24


×