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

Tìm hiểu lập trình iPhone và xây dựng ứng dụng “Sổ tay nấu ăn”

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 (4.33 MB, 77 trang )

Tìm hiểu lập trình iPhone và xây dựng ứng dụng “Sổ tay nấu ăn”

DANH SÁCH HÌNH SỬ DỤNG TRONG ĐỒ ÁN


MỤC LỤC BẢNG


MỤC LỤC
LỜI MỞ ĐẦU..................................................................................................1
TỔNG QUAN VỀ ĐỀ TÀI.............................................................................4
I. Giới thiệu chung............................................................................................................4
II. Định hướng về công nghệ.............................................................................................4
III. Định hướng và kế hoạch nghiên cứu..........................................................................5
III.1. Định hướng nghiên cứu............................................................................................5
III.2. Kế hoạch nghiên cứu...............................................................................................6

CƠ SỞ LÝ THUYẾT.......................................................................................8
.I Giới thiệu các nền tảng mobile......................................................................................8
.II Objective-C và lập trình iPhone...................................................................................9
.II.1. Giới thiệu về Objective-C..................................................................................9
.II.1.1. Giới thiệu chung.............................................................................................9
.II.1.2. Lý do sử dụng Objective-C...........................................................................10
.II.1.3. Các từ khóa trong Objective-C....................................................................10
.II.2. Lập trình iPhone..............................................................................................12
.II.2.1. Giới thiệu chung...........................................................................................12
.II.2.2. Các công cụ và môi trường lập trình iPhone..............................................16
.II.2.3. Các bước xây dựng một ứng dụng cho iPhone............................................20
.III Webservice................................................................................................................27
.III.1. Giới thiệu........................................................................................................27
.III.1.1. Định nghĩa..................................................................................................27


.III.1.2. Đặc điểm.....................................................................................................27
.III.2. Nền tảng của Webservice...............................................................................28
.III.3. Kiến trúc của Webservice..............................................................................28
.III.4. Các hoạt động của Webservice......................................................................29
.III.5. Các thành phần của Webservice....................................................................30
.III.5.1. SOAP (Simple Object Acccess Protocol)....................................................30
.III.5.2. WSDL (Web Service Definition Language)................................................31
.III.6. Webservice và Visual Studio 2008................................................................31
.III.6.1. Các bước xây dựng Webservice với Visual Studio 2008.............................31
.III.6.2. Cách tạo một Web Service với Visual Studio 2008.....................................32
.III.6.3. Cách gọi và thực thi một Webservice từ Client..........................................35

PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG.................................................37
.I Phân tích yêu cầu và tìm kiếm giải pháp.....................................................................37
.I.1. Phân tích yêu cầu đề tài....................................................................................37
.I.1.1. Môi trường vận hành.....................................................................................37
.I.1.2. Ràng buộc về thiết kế và thực thi..................................................................37
.I.1.3. Yêu cầu phi chức năng..................................................................................37
.I.1.4. Yêu cầu chức năng........................................................................................39
.I.2. Giải pháp cho đề tài..........................................................................................40
.I.2.1. Mô hình ứng dụng.........................................................................................40
.I.2.2. Giải pháp công nghệ.....................................................................................40
.II Thiết kế và triển khai giải pháp..................................................................................41
.II.1. Sơ đồ chức năng của hệ thống........................................................................41


.II.1.1. Chức năng trên Web Server..........................................................................41
.II.1.2. Sơ đồ chức năng trên iPhone.......................................................................42
.II.2. Diagram của bài toán.......................................................................................43
.II.3. Thiết kế cơ sở dữ liệu......................................................................................45

.II.3.1. Cơ sở dữ liệu ở Client..................................................................................45
.II.3.2. Cơ sở dữ liệu trên Server.............................................................................51
.II.4. Thiết kế Prototype và Screen Follow cho hệ thống........................................56
.II.4.1. Prototypem Screen Follow cho mô đun “Trang chủ”..................................56
.II.4.2. Prototypem Screen Follow cho mô đun “Thực đơn”..................................57
.II.4.3. Prototypem Screen Follow cho mô đun “Mẹo vặt”.....................................58
.II.4.4. Prototypem Screen Follow cho mô đun “Tin tức”.......................................58
.II.4.5. Prototypem Screen Follow cho mô đun “Cài đặt”......................................59
.II.5. Các thuật toán chính của chương trình...........................................................60
.II.5.1. Thuật toán sắp xếp.......................................................................................60
.II.5.2. Thuật toán tìm kiếm.....................................................................................60

TRIỂN KHAI VÀ CÀI ĐẶT CÁC MÔ ĐUN.............................................61
.I Mô đun trên iPhone......................................................................................................61
.I.1. Mô hình hóa các mô đun...................................................................................61
.I.2. Triển khai các chức năng..................................................................................61
.I.2.1. Gói “Home”..................................................................................................61
.I.2.2. Gói “Manual”...............................................................................................61
.I.2.3. Gói “Tips”.....................................................................................................62
.I.2.4. Gói “News”...................................................................................................62
.I.2.5. Gói “Setting”................................................................................................62
.I.2.6. Gói “Images”................................................................................................62
.I.2.7. Gói “Process”...............................................................................................63
.I.2.8. Gói “Object”.................................................................................................63
.II Cài đặt trên Server......................................................................................................63
.II.1. Web Server.......................................................................................................63
.II.2. Web Service.....................................................................................................63
.III Chạy demo trên môi trường thật...............................................................................64
.III.1. Chạy trên iPhone............................................................................................64
.III.2. Web Server và Web Service...........................................................................69

.III.2.1. Web Server..................................................................................................69
.III.2.2. Web Service.................................................................................................69

KẾT LUẬN....................................................................................................71
.I Nhật xét chung.............................................................................................................71
.II Ưu điểm và hạn chế....................................................................................................71
.II.1. Ưu điểm...........................................................................................................71
.II.2. Hạn chế............................................................................................................72
.III Hướng phát triển.......................................................................................................72


Tìm hiểu lập trình iPhone và xây dựng ứng dụng “Sổ tay nấu ăn”
MỞ ĐẦU

LỜI MỞ ĐẦU
Mạng điện thoại di động xuất hiện tại Việt Nam từ đầu những năm 1990 và
theo thời gian, số lượng các thuê bao cũng như các nhà cung cấp dịch vụ di động
tại Việt Nam ngày càng tăng. Cùng với sự phát triển của số lượng thuê bao di động
là sự đa dạng hoá các dịch vụ hướng đến thiết bị di động. Ngày nay điện thoại di
động không chỉ còn mang chức năng gọi điện hay nhắn tin thông thường mà còn là
một thiết bị giải trí, tra cứu thông tin rất tiện lợi. Do đó, xây dựng các ứng dụng
cho điện thoại di động đang là một yêu cầu tất yếu trong xu thế hiện nay. Ngành
công nghiệp phần mềm cho các thiết bị di động được xem như một mảnh đất màu
mỡ và hứa hẹn đem lại nhiều tỉ đô la doanh thu.
Những hướng phát triển ứng dụng trên điện thoại di động phổ biến hiện nay
là sử dụng ngôn ngữ C++ trên nền hệ điều hành Symbian, J2ME và Objective-C
trên iPhone. Trong luận văn của chúng tôi, chúng tôi chọn nghiên cứu iOS trên
iPhone vì đây là lĩnh vực khá mới mẽ và đang được ưu chuộng trên thị trường.
Objective-C là ngôn ngữ lập trình đã xuất hiện từ rất lâu, nó được thiết kế và
phát triển từ năm 1980. Hiện tại, Objective-C lại trở nên phổ biến vì nó được Apple

chọn làm ngôn ngữ lập trình cho hệ thống Mac và iPhone. Objective-C được thiết
kế bởi Brad Cox khi ông làm việc cho công ty Stepstone vào đầu những năm 1980.
Objective-C được thiết kế để phục vụ mục đích lập trình hướng đối tượng. Nó hoạt
động giống như là một tập hợp các thành phần mở rộng rất mạnh mẽ của ngôn ngữ
C. Objective-C kết hợp các đặc điểm ưu tú nhất của C và ngôn ngữ SmallTalk.
Objective-C khá đơn giản để học và có đầy đủ các khả năng của một ngôn ngữ lập
trình hướng đối tượng. Objective-C đơn giản và nhỏ gọn nhưng lại là một thành
phần mở rộng rất mạnh của ngôn ngữ chuẩn ANSI C. Hầu hết các ngôn ngữ lập
trình hướng đối tượng cung cấp:

Lưu Phước Linh – Trần Minh Vũ, 06T2

1


Tìm hiểu lập trình iPhone và xây dựng ứng dụng “Sổ tay nấu ăn”

1. Một thư viện các Objects.
2. Các công cụ phát triển cần thiết
3. Hỗ trợ hướng đối tượng và các thư viện liên quan.
Objective-C cũng cung cấp đầy đủ các thành phần trên. Bạn có thể sử dụng
Objective-C để phát triển một phần mềm hoàn thiện. Vì những đặc tính ưu việt của
Objective-C, và cùng với mong muốn học hỏi lập trình trên điện thoại, nên nhóm
sinh viên làm đồ án đã chọn nó đề làm luận văn tốt nghiệp.
Về chương trình ứng dụng, tính khả thi và thực tế đang được đề cao. Chúng
tôi nhận thấy xu hướng mở rộng các ứng dụng từ máy tính sang điện thoại đang
được chú trọng. Việc chuyển từ máy tính sang điện thoại sẽ khiến sự tiện dụng
tăng, số người sử dụng chắc chắn sẽ tăng nhanh vì đối với nhiều người chiếc điện
thoại di động dễ sử dụng hơn rất nhiều so với chiếc máy tính "phức tạp và khó
hiểu".

Ứng dụng mà chúng tôi chọn để bước vào lĩnh vực khá mới mẽ này là ứng
dụng sổ tay nấu ăn “iCooking”. Ăn là nhu cầu không thể thiếu được của mỗi người
chúng ta. Do vậy công việc nấu ăn chiếm một vị trí rất quan trọng trong đời sống
thường ngày. Lịch sử dân tộc Việt nam có từ trên 4.000 năm, trải qua bao nhiêu thử
thách và biến cố lịch sử của dân tộc, sự tồn tại của bánh dầy và bánh chưng ở một
mức độ nào đó cũng nói lên sức sinh tồn của dân tộc, nói lên tính chất cổ truyền
của kỹ thuật nấu ăn Việt Nam. Chính từ tính chất cổ truyền này nó tạo nên phong
cách độc đáo trong ăn uống của dân tộc Việt Nam.
Việt Nam nằm trong vành đai nhiệt đới, trải dài 15 vĩ tuyến với khí hậu nhiệt
đới gió mùa, lại có nhiều cao nguyên và vùng núi cao như Sapa, Tam Đảo, Đà Lạt,
… với khí hậu mang sắc thái ôn đới. Vì tính đa dạng của khí hậu và thổ nhưỡng
nên thực vật nói chung và rau quả nói riêng của nước ta rất phong phú, nhiệt đới có,
cận nhiệt đới có, ôn đới cũng có. Rau quả nước ta có quanh năm, mùa nào thức nấy,
rải rác khắp nơi hoặc tập trung thành các vùng chuyên canh để tiêu thụ tại chỗ. Bên
cạnh đó với bờ biển dài có nhiều sông, rạch, ngòi ... là nguồn cung cấp thủy sản vô

Lưu Phước Linh – Trần Minh Vũ, 06T2

2


Tìm hiểu lập trình iPhone và xây dựng ứng dụng “Sổ tay nấu ăn”

tận không những đủ dùng trong nước mà còn đóng hộp để xuất khẩu .Khí hậu ở
nước ta không những thuận lợi cho việc phát triển cây trồng mà còn thuận lợi cho
việc phát triển chăn nuôi gia súc (chủ yếu là gà, vịt, lợn, trâu, bò, dê, thỏ... được
phát triển tùy theo từng vùng). Xuất phát từ đặc điểm đó, ngoài việc sinh sống bằng
nghề cày cấy, người Việt Nam còn sinh sống bằng nghề chày lưới, cho nên hai thứ
đồ ăn chủ yếu là gạo và cá. Gạo có thể dùng để nấu cơm, làm bánh như gạo tẻ xay
ra để làm bún, gạo nếp dùng nấu sôi hoặc làm bánh. Cá có thể đem chế biến với

nhiều hình thức kho, rán, nấu hấp, nướng, thậm chí còn để làm mắm. Chính từ đặc
điểm đó đã tạo nên phong cách độc đáo trong ăn uống của người Việt Nam
Và từ lâu để lưu lại những giá trị văn hóa, nhưng công thức chế biến độc đáo
người ta đã viết thành sách. Vào những năm trước, khoa học kĩ thuật phát triển
những công thức nấu ăn được lưu trữ và sử dụng thông qua máy tính. Đến hôm
nay, với sự bức phá vượt bật của thiết bị cầm tay, mà điển hình là những chiếc
smartphone. Những công thức nấu ăn đó nay sẽ được tích hợp trên iPhone để dễ
dàng quản lý, sử dụng, chia sẻ mọi lúc mọi nơi.
Luận văn mà chúng em trình bày gồm 5 phần chính:
1. Tổng quan về đề tài: Giới thiệu chung, các định hướng và kế hoạch
nghiêu cứu
2. Cơ sở lí thuyết : giới thiệu nền tảng về mobile, lập trình iPhone,
webservice và lý thuyết về nghiệp vụ
3. Phân tích và thiết kế hệ thống: Phân tích yêu cầu thực tế từ người
dùng để đưa ra hướng thiết kế thích hợp. Từng bước thiết kế ứng
dụng
4. Triển khai và cài đặt ứng dụng : cài đặt ứng dụng lên điện thoại, cài
đặt server và chạy demo trên môi trường thật
5. Kết luận: Đánh giá, tổng kết các kết quả đạt được và hướng phát triển
trong tương lai.

Lưu Phước Linh – Trần Minh Vũ, 06T2

3


Tìm hiểu lập trình iPhone và xây dựng ứng dụng “Sổ tay nấu ăn”
CHƯƠNG I

TỔNG QUAN VỀ ĐỀ TÀI

I.

Giới thiệu chung
Cùng với sự phát triển của các thiết bị di động và với xu thế di động hóa của

con người thì lập trình di động đang là một mảng rất phát triển trên thế giới với các
nền tảng như Symbian, Rim, Window Mobile hay mới đây là Android và iOS.
Một chiếc điện thoại bây giờ không chỉ là “Nghe – Gọi” mà nó cnf có thể
lướt Web, Game 3D, Chat, Email, ứng dụng văn phòng, quản lý từ xa,… Có thể nói
gần như tất cả các tiện ích trên máy tính điện tử đang dần tích hợp trên thiết bị di
động.
Và một tương lai không xa việc tìm ra sự khác biệt của một thiết bị di động
thong minh và chiếc máy tính thông thường sẽ trở nên không còn ý nghĩa.

II. Định hướng về công nghệ
Với bài toán đặt ra như trên, chúng tôi đã đưa ra được định hướng về công
nghệ và từ đó lập ra kế hoạch nghiên cứu và giả pháp phát triển ứng dụng.
− Về công nghệ :

• Tìm hiểu hệ điều hành MAC-OS và iOS
• Objective-C và lập trình iPhone
o Lý thuyết về nền tảng, kiến trúc.
o Cài đặt môi trường.
o Các bước xây dựng ứng dụng hoàn chỉnh.
• Tìm hiểu SQLite
• Webservice, Aspx và LinQ trong Visual Studio 2008
o Lý thuyết về Webservice, Aspx.
o Môi trường và công cụ.
o Các bước xây dụng 1 Webservice.
• Cách kết hợp giữa ứng dụng trong Iphone và Webservice.


Lưu Phước Linh – Trần Minh Vũ, 06T2

4


Tìm hiểu lập trình iPhone và xây dựng ứng dụng “Sổ tay nấu ăn”

• Tìm hiểu XML
• SOAP và các phương thức truyền dữ liệu qua mạng.
− Về hệ thống :

• Tìm hiểu và phân tích các nhu cầu của người dùng.
• Phân tích và thiết kế hệ thống nghiệp vụ phù hợp.
o Đáp ứng được yêu cầu quản lý cơ bản.
o Đáp ứng được cách thức của một tài liệu về nấu ăn.
o Có thể cập nhật, nâng cấp hệ thống.
• Đánh giá khả năng ứng dụng và mở rộng cho sản phẩm.
o Yêu cầu khi cài đặt.
o Đánh giá tính khả thi
o Đánh giá khả năng mở rộng cho sản phẩm.
− Về quy trình sản xuất và ứng dụng:

• Áp dụng quy trình sản xuất phần mềm theo chuẩn CMMi5

III. Định hướng và kế hoạch nghiên cứu
III.1. Định hướng nghiên cứu
Nhằm mục đích nghiên cứu, tìm hiểu về công nghệ lập trình di động,web
service và một số công nghệ khác,chúng tôi đã xây dựng ứng dụng sổ tay nấu ăn
trên iphone với mong muốn tạo ra một sản phẩm hoàn chỉnh từ những công nghệ

mà mình đã nghiên cứu được đem lại sự tiện lợi cho người sử dụng.
Với mục tiêu hướng đến người dùng là những bạn trẻ, năng động, thích nấu
ăn, chúng tôi đã xây dựng giao diện ứng dụng thân thiện với người dùng với những
tính năng cơ bản và hữu ích nhất


Quản lý món ăn theo từng danh mục, nhóm.



Tạo thực đơn.



Thêm món ăn mới vào sổ tay.



Cập nhật món ăn mới.



Tìm kiếm và lựa chọn món ăn ưa thích.



Cập nhật tin tức hằng ngày.

Lưu Phước Linh – Trần Minh Vũ, 06T2


5


Tìm hiểu lập trình iPhone và xây dựng ứng dụng “Sổ tay nấu ăn”


Các mẹo vặt, bí quyết khi nấu ăn.



Giới thiệu các món đặc sản, nhà hàng.



Quảng cáo.

III.2. Kế hoạch nghiên cứu
Với yêu cầu và mục đích như trên, chúng em triển khai nghiên cứu đề tài
theo kế hoạch sau:

Lưu Phước Linh – Trần Minh Vũ, 06T2

6


Tìm hiểu lập trình iPhone và xây dựng ứng dụng “Sổ tay nấu ăn”

Hình 1: Kế hoạch nghiên cứu đề tài.

Lưu Phước Linh – Trần Minh Vũ, 06T2


7


Tìm hiểu lập trình iPhone và xây dựng ứng dụng “Sổ tay nấu ăn”
CHƯƠNG II

CƠ SỞ LÝ THUYẾT
.I

Giới thiệu các nền tảng mobile
− Windows Mobile

Windows Mobile là một hệ điều hành loại thu gọn kết hợp với một bộ
các ứng dụng cơ bản cho các thiết bị di động dựa trên giao diện lập trình
ứng dụng Win32 của Microsoft. Các thiết bị chạy Windows Mobile bao
gồm Pocket PC, Smartphone, Portable Media Center và các máy tính lắp
sẵn (on-board) cho một số loại ô tô.
− Symbian

Symbian là hệ điều hành được viết và sử dụng cho một số điện thoại di
động cao cấp của Nokia là chủ yếu.
− Android

Là ngôi sao mới nổi, được phát triển bởi Google theo hướng mã nguồn
mở. Android được xây dựng trên Linux Kernel, rất dễ phát triển và học
lập trình khá nhanh. Ngôn ngữ nền tảng là Java, Android được dự đoán
sẽ ngang với iOS và thâm chí hơn thế.
− Samsung Bada


Được nhà sản xuất Samsung phát triển và sở hữu. Là một dòng flatform
được đánh giá là thong minh. Nó sẽ cho phép người sử dụng cuối cùng
để thưởng thức trải nghiệm di động thông qua tính năng tuyệt vời.
− BlackBerry

BlackBerry là một dòng thiết bị gửi nhận email di động và điện thoại
thông minh do công ty Research In Motion (RIM) của Canada phát triển
và thiết kế trong hơn một thập kỷ. Có
− IPhone

Được phát triển và cung cấp bởi Apple với kho ứng dụng đồ sộ có khả
năng tự cập nhật. Chưa hết, iPhone cũng là dòng điện thoại di động dẫn
đầu thế giới hiện nay về màn hình cảm ứng nổi bật, các ứng dụng đẹp
mắt, khả năng định vi toàn cầu, …

Lưu Phước Linh – Trần Minh Vũ, 06T2

8


Tìm hiểu lập trình iPhone và xây dựng ứng dụng “Sổ tay nấu ăn”

.II

Objective-C và lập trình iPhone

.II.1. Giới thiệu về Objective-C
.II.1.1.

Giới thiệu chung


Objective-C là ngôn ngữ lập trình đã xuất hiện từ rất lâu, nó được thiết kế và
phát triển từ năm 1980. Hiện tại, Objective-C lại trở nên phổ biến vì nó được Apple
chọn làm ngôn ngữ lập trình cho hệ thống Mac và iPhone.
Objective-C được thiết kế bởi Brad Cox khi ông làm việc cho công ty
Stepstone vào đầu những năm 1980. Objective-C được thiết kế để phục vụ mục
đích lập trình hướng đối tượng. Nó hoạt động giống như là một tập hợp các thành
phần mở rộng rất mạnh mẽ của ngôn ngữ C. Objective-C kết hợp các đặc điểm ưu
tú nhất của C và ngôn ngữ SmallTalk. Objective-C khá đơn giản để học và có đầy
đủ các khả năng của một ngôn ngữ lập trình hướng đối tượng.
Objective-C đơn giản và nhỏ gọn nhưng lại là một thành phần mở rộng rất
mạnh của ngôn ngữ chuẩn ANSI C. Objective-C cung cấp đầy đủ các khả năng lập
trình hướng đối tượng nhưng lại được thực thi theo cách khá đơn giản và dễ dàng.
Hầu hết các ngôn ngữ lập trình hướng đối tượng cung cấp:
- Một thư viện các đối tượng.
-

Các công cụ phát triển cần thiết.

-

Hỗ trợ hướng đối tượng và các thư viện liên quan.

Objective-C cung cấp đầy đủ các thành phần trên. Có thể sử dụng ObjectiveC để phát triển một phần mềm hoàn thiện. Apple đã chọn Objective-C làm ngôn
ngữ lập trình chính cho hệ thống máy Mac và iphone.
Là ngôn ngữ hướng đối tượng nên Objective-C giải quyết các vấn đề lập
trình dựa trên khái niệm các Object. Nó bao gồm 3 phần:
-

Interface: Interface của một lớp thông thường được định nghĩa trong file

header với đuôi *.h. Nó chính là phần khai báo của một lớp.

-

Implementation: Mã nguồn của chương trình được viết trong phần
implementation của lớp và được định nghĩa trong một file có đuôi *.m. Đây
là phần định nghĩa của lớp.

-

Instantiation: Sau khi khai báo và định nghĩa một lớp, chúng ta có thể thục
thể hóa lớp này bằng việc cấp phát bộ nhớ cho new object của lớp đó.

Tóm lại: Objective là:

Lưu Phước Linh – Trần Minh Vũ, 06T2

9


Tìm hiểu lập trình iPhone và xây dựng ứng dụng “Sổ tay nấu ăn”

-

Thành phần mở rộng của ngôn ngữ lập trình C.

-

Là ngôn ngữ lập trình hướng đói tượng đơn giản nhưng mạnh mẽ.


-

Là ngôn ngữ được Apple sử dụng để phát triển các ứng dụng cho hệ thống máy
Mac và Iphone.

.II.1.2.

Lý do sử dụng Objective-C

Ngôn ngữ lập trình Objective-C được chọn cho Cocoa framework vì một số
lý do dưới đây:
-

Nó là ngôn ngữ lập trình hướng đối tượng và các chức năng cung cấp bởi
Cocoa framework chỉ có thể được mang lại bởi các kỹ thuật hướng đối
tượng.

-

Nó là thành phần mở rộng của chuẩn ANSI C vì vậy các chương trình viết
bằng C của framework này sẽ không bị mất đi tính năng nào và người dùng
được hưởng các lợi thế của ngôn ngữ C. Với ngôn ngữ này, người dùng có
thể lựa chọn cả lập trình hướng đối tượng và lập trình thủ tục khi cần thiết.

-

Nó đơn giản và dễ học bởi cú pháp khá ngắn gọn giúp cho lập trình viên đạt
được hiệu quả mong muốn mà không gặp nhiều khó khăn.

-


Nó rất năng động so với các ngôn ngữ mở rộng khác dựa trên C. Trình biên
dịch đóng vai trò rất quan trọng trong việc bảo vệ thông tin liên quan đến
các đối tượng để sử dụng lúc run time.

-

Nó là một ngôn ngữ mạnh bởi vì các quyết định có thể đưa ra lúc biên dịch
sẽ được trì hoãn cho tới khi chương trình chạy.

-

Sự năng động của Objective-C cũng có lợi thế đáng kể:
• Nó hỗ trợ ràng buộc đóng và mở tạo ra một cấu trúc đơn giản đối với
giao diện tương tác người dùng.
• Nó cho phép phát triển các công cụ phát triển phức tạp. Một giao diện
cho hệ thống run time tạo điều kiện cho việc tiếp cận các thông tin lúc
run time giúp cho việc monitor ứng dụng viết bằng Objective-C.

.II.1.3. Các từ khóa trong Objective-C
Objective-C là ngôn ngữ mở rộng của ngôn ngữ lập trình C, do đó chương
trình được viết bằng C hay C++ hoàn toàn có thể được biên dịch như Objective-C.

Lưu Phước Linh – Trần Minh Vũ, 06T2

10


Tìm hiểu lập trình iPhone và xây dựng ứng dụng “Sổ tay nấu ăn”


Ngoài các từ khóa dùng trong C và C++, Objective-C cung cấp thêm một số từ
khóa khác. Để tránh xung đột với từ khóa của ngôn ngữ khác, Objective-C dùng
“@” đứng trước mỗi từ khóa. Những từ khóa này được gọi là Compiler Directives.
Các lệnh chỉ thị được sử dụng để khai báo, định nghĩa các lớp, các thể loại, các
phương thức:
Lệnh chỉ thị
@interface
@implementation
@protocol
@end

Mô tả
Sử dụng để khai báo một lớp (class) hay
một giao diện (interface).
Dùng để định nghĩa một lớp (class) hay
một thể loại (category).
Sử dụng để khai báo một thủ tục hình
thức (formal protocol).
Kết thúc khai báo, định nghĩa thể loại
(category) hoặc phương thức (protocol).

Bảng 1: Các lệnh sử dụng để khai báo trong Objective-C
Các lệnh chỉ thị được sử dụng để xác định khả năng truy cập của các thực thể.
(Mặc định là @protected).
Lệnh chỉ thị
@private

@protected

@public


Mô tả
Giới hạn phạm vi truy cập của một biến
thực thể chỉ trong lớp mà nó được khai
báo.
Giới hạn phạm vi truy cập của một biến
thực thể chỉ trong lớp khai báo nó và
các lớp khác kế thừa lớp này.
Không giới hạn phạm vi truy cập của
biến này.

Bảng 2: Các lệnh xác định khả năng truy cập trong Objective-C

Các lệnh chỉ thị liên quan đến việc xử lý ngoại lệ (Exception handling)
Lệnh chỉ thị
@try
@throw

Lưu Phước Linh – Trần Minh Vũ, 06T2

Mô tả
Định nghĩa một khối mã lệnh mà trong khối
này có thể phát sinh ngoại lệ.
Đưa ra một ngoại lệ.

11


Tìm hiểu lập trình iPhone và xây dựng ứng dụng “Sổ tay nấu ăn”


@catch

Bắt khối lệnh được thực thi nếu ngoại lệ phát
sinh (ngoại lệ bên trong khối mã lệnh @try
ngay trước đó)
Một khối mã lệnh sẽ được thực thi không cần
biết có ngoại lệ xảy ra trong @try hay không

@finally

Bảng 3: Các lệnh sử dụng để xử lý ngoại lệ trong Objective-C

.II.2. Lập trình iPhone
.II.2.1.

Giới thiệu chung

.II.2.1.1.

Mac-OS

Hình 2: Hệ điều hành MAC OS.
Mac OS X là một hệ điều hành có lõi là Unix, giao diện đồ họa được công ty
Apple tạo ra.Từ năm 2002 Mac OS X đựơc đính kèm trong tất cả các máy tính
Macintosh. Nó thừa kế từ hệ điều hành Mac OS 9, hệ điều hành chính thức của
Apple ra đời năm 1999. Mac OS X là một hệ điều hành Unix sử dụng giao diện đồ
họa được xây dựng trên công nghệ phát triển bởi NeXT vào nửa cuối năm 1980,
sau đó được Apple mua lại năm 1996. Từ phiên bản thứ 6 của Mac OS X Leopard
10.6.5 trở đi mỗi phiên bản của Mac đều được chứng nhận tiêu chuẩn Unix 03 –
chạy trên hệ thống phần cứng intel. Phiên bản cho server đầu tiên Mac OS X Server

1.0 được đưa ra năm 1999 cùng với phiên bản cho máy tính để bàn Mac OS X 10.0
“Cheetah” theo sau vào ngày 24 tháng 3 năm 2001. Bản phát hành của Mac OS X
được đặt tên big-cats ( những họ mèo lớn). Ví dụ: Mac OS X 10.6 được đặt tên là
“Snow Leopard”. Phiên bản cho server Mac OS X server có kiến trúc tuơng tự như
máy tính để bàn bao gồm các công cụ quản lý người dùng, cung cấp dịch vụ truy
cập mạng. Các công cụ được nạp sẵn như thư điện tử, máy chủ Samba, máy chủ

Lưu Phước Linh – Trần Minh Vũ, 06T2

12


Tìm hiểu lập trình iPhone và xây dựng ứng dụng “Sổ tay nấu ăn”

LADP, tên miền máy chủ…, và những công cụ khác. Nó có sẵn trong hệ thống phần
cứng máy chủ XServer của Apple, tuy nhiên có thể hoạt động trong hầu hết các
mẫu đựợc bán trên thị trường của Apple.
Mac OS X xây dựng trên lõi Macintosh (Macintosh kernel), chứa các thành
phần của FreeBSD và NetBSD, là bổ sung của Unix được đưa vào NeXTSTEP tạo
nên cốt lõi của hệ điều hành Mac OS X. NeXTSTEP làm hệ điều hành hướng đối
tượng được Steve Jobs của công ty NeXTSTEP phát triển, sau đó ông rời Apple
năm 1985. Trong khi Steve Jobs tạm rời Apple, Apple đã cố gắng tạo ra thế hệ OS
tiếp theo thông qua Taligent, Copland với dự án Gershwin với một chút thành công.
Cuối cùng, NeXTSTEP được gọi là OPENSTEP được lựa chọn là nền tảng
cho hệ điều hành tiếp theo của Apple, Apple đã mua đứt NeXT. Steve Jobs trở lại
Apple đảm nhiệm vị trí CEO tạm thời và chính thức sau này, ông theo dõi sự
chuyển đổi lập trình thân thiện OPENSTEP vào trong một hệ thống có thể được
chấp nhận bởi thị trường người dùng cá nhân và chuyên gia của Apple. Dự án này
đầu tiên được gọi là Rhapsody sau đó đổi tên thành Mac OS X.
.II.2.1.2.


iPhone-OS

a. Giới thiệu về iPhone- OS
iOS là hệ điều hành cho thiết bị di động của Apple. Ban đầu nó được phát
triển cho iPhone, về sau nó hỗ trợ hầu hết các thiết bị di động của Apple như: iPod
Touch, iPad, Apple TV. iOS được giới thiệu với iPhone vào 9/01/2007 tại
Macworld Conference & Expo. Apple không bán bản quyền iOS cho bất kỳ nhà
phát triển phần cứng nào khác.
Tính đến 14/11/2010, kho ứng dụng của iOS trên Apple Store có khoảng
300.000 ứng dụng và kho ứng dụng này luôn liên tục được cập nhật.

Lưu Phước Linh – Trần Minh Vũ, 06T2

13


Tìm hiểu lập trình iPhone và xây dựng ứng dụng “Sổ tay nấu ăn”

b. Kiến trúc iPhone-OS

-

-

Hình 3: Kiến trúc iOS.
Cocoa Touch
• Multi-Touch UI Framework: Gói thư viện xử lý việc tương tác giao
diện với người dùng.
• Core Motion Framework: Gói thư viện xử lý việc và xử lý dữ liệu từ

các thiết bị
• View Hierarchy Framework: Gói thư viện xử lý việc lấy nội dung
văn bản.
• Localization Framework: Gói thư viện dùng để xác định tên quốc gia
có sử dụng các thiết bị di động trên nền tản iOS.
• Controls Framework: Gói thư viện quản lý các control trên iOS.
• Alets Framework: Gói thư viện xử lý các sự kiện cảnh báo cho iOS.
• Web View UI Framework: Gói thư viện xử lý các vấn đề về Web.
• Map kit Framework: Gói thư viện về bản đồ.
• Image Picker UI Framework: Gói thư viện hỗ trợ xử lý đối tượng
Picker .
• Camera Framework: Gói thư viện hỗ trợ tương tác thiết bị camera và
iOS.
Media
• Core Audio Framework: Gói thư viện quản lý,cung cấp dịch vụ về
audio cho iOS.
• OpenAL Framework: Gói thư viện audio cho game, website trên
iOS.
• Audio Mixing Framework: Gói thư viện audio cho các ứng dụng xử
lý âm thanh trên iOS.
• Audio Recording Framwork: Gói thư viện hỗ trợ việc ghi âm cho
iOS

Lưu Phước Linh – Trần Minh Vũ, 06T2

14


Tìm hiểu lập trình iPhone và xây dựng ứng dụng “Sổ tay nấu ăn”



-

-

Video playback Framwork: Gói thư viện hỗ trợ chơi game, xem
film toàn trên iOS.
• JPEG, PNG, TIFF: Các định dạng tập ảnh được hỗ trợ trên iOS.
• PDF: Hỗ trợ đọc các tập tin có đuôi định dạng “*.pdf”.
• Quartz(2D) Framwork: Gói thư viện cung cấp các API cho các ứng
dụng xử lý đồ họa 2D.
• Core Animation Framwork: Gói thư viện hỗ trợ giao diện lập trình
đồ họa 2D, 3D.
• OpenGL ES Framwork: Cung cấp API để lập trình đồ họa, xử lý dữ
liệu đồ họa 2D, 3D.
Core Service
• Address Book UI Framework: Hỗ trợ các thư viện để thiết kế ứng
dụng liên quan đến Address Book.
• Networking Framework: Gói thư viện hỗ trợ xử lý mạng, lập trình
các ứng dụng về mạng trên iOS.
• File Access Framework: Gói thư viện hỗ trợ xử lý tập tin trên iOS.
• SQLite Framework: Gói thư viện hỗ trợ, xử lý dữ liệu với SQLite.
• Net Services Framework: Gói thư viện hỗ trợ các dịch vụ mạng trên
iOS
• Threading Framework: Gói thư viện hỗ trợ xử lý luồng trên iOS.
• Message UI Framework: Gói thư viện hỗ trợ gởi thư điện tử.
Core OS
• Sockets Framework: Gói thư viện hỗ trợ việc giao tiếp mạng
internet và iOS
• Security Framework: Gói thư viện xử lý việc mã hóa, bảo mật trên

iOS
• Power Management: Tiện ích hỗ trợ quản lý nguồn điện đối với các
thiết bị di động sử dụng công nghệ iOS.
• Keychain Access: là một tiện ích cho phép người sử dụng xem các
mật khẩu, các giấy chứng nhận, các dữ liệu trong bộ chìa khóa họ tạo
ra.
• Certificates: Dùng để xác nhận,đánh giá chứng nhận kỹ thuật số của
thiết bị.
• File System Framework: Gói thư viện dùng đề quản lý các tập tin hệ
thống trên iOS.

Lưu Phước Linh – Trần Minh Vũ, 06T2

15


Tìm hiểu lập trình iPhone và xây dựng ứng dụng “Sổ tay nấu ăn”

.II.2.1.3.

Hệ quản trị cơ sở dữ liệu SQlite

a. Giới thiệu
SQLite là phần mềm quản lý cơ sở dữ liệu (DBMS) tương tự như Mysql,
PostgreSQL... Đặc điểm của SQLite là gọn, nhẹ, đơn giản. Chương trình gồm 1 file
duy nhất vỏn vẹn chưa đến 500kB, không cần cài đặt, không cần cấu hình hay khởi
động mà có thể sử dụng ngay. Dữ liệu database cũng được lưu ở một file duy nhất.
Không có khái niệm user, password hay quyền hạn trong SQLite database.
SQLite không thích hợp với những hệ thống lớn nhưng ở quy mô vừa tầm thì
SQLite phát huy uy lực và không hề yếu kém về mặt chức năng hay tốc độ. Với các

đặc điểm trên SQLite được sử dụng nhiều trong việc phát triển, thử nghiệm v..v.. và
là sự lưa chọn phù hợp cho những người bắt đầu học database.

b. Đặc điểm
-

Cơ sở dữ liệu dạng quan hệ (RDBMS), hỗ trợ chuẩn SQL-92

-

Sử dụng dưới dạng thư viện nhúng, không chạy ở theo kiểu server độc lập

-

Hỗ trợ các ngôn ngữ phổ biến: C, C++, C#, Basic, Python, PHP, Java ...

-

Không cần chỉ định kiểu dữ liệu (SQLite is typeless)

-

Hỗ trợ mã UTF8.

-

Hỗ trợ dòng lệnh.

-


Hỗ trợ giao dịch.

-

Hỗ trợ hiển thị.

-

Hỗ trợ C extensions.

-

Có các công cụ quản lý bằng đồ hoạ.

-

Download & sử dụng miễn phí.

c. Phiên bản
Hiện tại SQLite có 2 nhánh khác nhau là version 2.x và version 3.x, do cấu tạo
dữ liệu nội bộ khác nhau nên tên lệnh và tên thư viện của từng nhánh khác nhau.
Lệnh sqlite làcủa version 2.x, sqlite3 là lệnh của version 3.x. Địa chỉ trang chủ
.
.II.2.2.

Các công cụ và môi trường lập trình iPhone

II.2.2.1. Môi trường yêu cầu
-


Hệ điều hành Mac OS version 10.x

-

iOS SDK version 3.x trở lên.

Lưu Phước Linh – Trần Minh Vũ, 06T2

16


Tìm hiểu lập trình iPhone và xây dựng ứng dụng “Sổ tay nấu ăn”

-

Các tool cần thiết khác như : Xcode,Interface Builder,Instrument Memory
Leak,iPhone Simulator,SQLite Manager.

II.2.2.2. Các tool cần thiết
a. Xcode

Hình 4 : Công cụ lập trình Xcode.
Xcode là một tập hợp các công cụ để phát triển phần mềm trên Mac OS,
xcode được phát triển bởi Apple. Phiên bản mới nhất là 3.2, được đóng gói trong
phiên bản Mac OS 10.6, tuy nhiên nó không mặc định cài sẵn mà có thể cài từ
DVD hoặc tải xuống từ trang chủ Apple. Phiên bản hiện tại là 3.2.5 bao gồm iOS
SDK 4.2.Bộ công cụ Xcode, giống như Mac OS X nó có nguồn gốc từ NeXT.
Trước ngày 23 tháng 10 năm 2003 phát hành cho Mac OS 10.3, Apple đã giới thiệu
bộ công cụ này là công cụ phát triển.
Các thành phần: Ứng dụng chính của bộ IDE này là Xcode, Xcode chứ hầu

hết các tài liệu phát triển của Apple, và Interface Builder một công cụ phát triển
giao diện đồ hoạ thân thiện. Bộ Xcode bao gồm phiên bảo đã chỉnh sửa của phần
mềm miễn phí GCC. xCode hỗ trợ các ngôn ngữ lập trình: C, C++, Objective-C,
Java, AppleScript, Python và Ruby với một khối các mẫu lập trình. Phần mềm của
hãng thứ 3 được thêm vào có thể hỗ trợ GNU Pascal, Free Pascal, Ada, Per, C#,
Haskell và D.

Hình 5: Giao diện chính của Xcode 3.2.5

Lưu Phước Linh – Trần Minh Vũ, 06T2

17


Tìm hiểu lập trình iPhone và xây dựng ứng dụng “Sổ tay nấu ăn”

b. Interface Builder
Công cụ hỗ trợ thiết kế giao diện cho các ứng dụng iOS với các control trực
quan.

Hình 6: Interface Builder.

c. Instrument Memory Leak
Công cụ kiểm soát và tối ưu hóa bộ nhớ khi phát triển một ứng dụng trên iphone
trước khi đưa lên sử dụng trên máy thật.

Hình 7: Instrument Memory Leak.

Lưu Phước Linh – Trần Minh Vũ, 06T2


18


Tìm hiểu lập trình iPhone và xây dựng ứng dụng “Sổ tay nấu ăn”
d. SQlite Manager

SQLite Manager là một plug-in của firefox quản lý database ngay trên trình
duyệt Firefox.Có thể thực hiện được nhiều lệnh cơ bản giống như các hệ quản trị
cơ sở dữ liệu khác.

Hình 8: SQLite Manager.

e. iPhone Simulator
Công cụ giả lập điện thoại iPhone trên Mac OS dùng để test ứng dụng trong quá
trình phát triển trước khi đưa lên test trên máy thật.iPhone Simulator hỗ trợ khá
đầy đủ các chức năng của một điện thoại thật như : kết nối internet,trình duyệt web
safari…

Hình 9: iPhone Simulator.

Lưu Phước Linh – Trần Minh Vũ, 06T2

19


Tìm hiểu lập trình iPhone và xây dựng ứng dụng “Sổ tay nấu ăn”

.II.2.3.

Các bước xây dựng một ứng dụng cho iPhone


.II.2.3.1.

Mô hình MVC
a. Giới thiệu mô hình MVC

Phương pháp thiết kế MVC bắt nguồn từ việc phát triển giao diện người
dùng trong ngôn ngữ lập trình Smalltalk, đây là một trong những phương pháp thiết
kế thành công nhất trong các phương pháp thiết kế hướng đối tượng. Hiện nay,
MVC được dùng rộng rãi trong nhiều hệ thống phần mềm hướng đối tượng, bất kể
được viết bằng ngôn ngữ hướng đối tượng nào.
MVC là viết tắt của Model-View-Controller. Phương pháp thiết kế MVC
(MVC Design Pattern) là phương pháp chia nhỏ một ứng dụng nhiều lớp hoặc chia
nhỏ phần giao diện người dùng (user interface) của một ứng dụng thành ba thành
phần chính là Model, View và Controller.
- Model : Là một đối tượng hoặc tập hợp các đối tượng biểu diễn cho phần
dữ liệu của chương trình, ví dụ các dữ liệu được lưu trong cơ sở dữ liệu (CSDL)
hay từ các hệ thống ứng dụng khác (như mail...).
- View : Là phần giao diện với người dùng, bao gồm việc hiện dữ liệu ra màn
hình, cung cấp các menu, nút bấm, hộp đối thoại, chọn lựa..., để người dùng có thể
thêm, xóa, sửa, tìm kiếm và làm các thao tác khác đối với dữ liệu trong hệ thống.
- Controller :Là phần điều khiển toàn bộ logic về hoạt động của giao diện,
tương tác với thao tác của người dùng (từ chuột, bàn phím và các thiết bị ngoại vi
khác) và cập nhật, thao tác trên dữ liệu theo đầu vào nhận được và điều khiển việc
chọn phần “Hiển thị” thích hợp để truyền dữ liệu tới người dùng.
Với phương pháp thiết kế này, các chức năng hiển thị, chức năng logic điều
khiển và chức năng truy cập dữ liệu của chương trình được chia làm các phần tách
biệt.
Ưu điểm của mô hình này là ứng dụng được phát triển một cách độc lập,
không bị phụ thuộc giữa các thành phần, nên việc thêm hoặc xóa một module trong

ứng dụng này khá dễ dàng và nhẹ nhàng hơn so với việc phát triển ứng dụng theo
mô hình cũ.
b. Mô hình MVC trong lập trình ứng dụng iPhone

Hình 10: Mô hình MCV trong lập trình iOS.
Mô hình MCV là mô hình chính được sử dụng trong lập trình iOS.Trong
thực tế,một ứng dụng có thể bao gồm nhiều đối tượng Model,đối tượng View và

Lưu Phước Linh – Trần Minh Vũ, 06T2

20


Tìm hiểu lập trình iPhone và xây dựng ứng dụng “Sổ tay nấu ăn”

đối tượng Controller khác nhau.Một đối tượng controller sẽ tương tác với đối
tượng Model thông qua các methods và properties giao tiếp của đối tượng
Model.Việc giao tiếp trong mô hình MVC được thực hiện thông qua TargetAction,Outlet và Actions.

Xây dựng giao diện người dùng với Interface Builder
a. Các thành phần cơ bản
.II.2.3.2.

-

-

Interface Builder gồm có 4 thành phần cơ bản : View,Library,Nib document
browser và Inspector.



View : là nơi tạo giao diện chính chứa các component được kéo thả từ
Library.



Library: chứa các item cần thiết dể xây dựng giao diện như :
label,button,textfield…



Inspector: hiển thị tất cả các thuộc tính của item được chọn và cho phép
chỉnh sứa chúng.



Nib document browser: cho phép xem danh sách và chỉnh sửa các item đã
được sử dụng trong file Nib.

Interface Builder tương tác với source code thông qua Outlet và Action.


Outlet: kết nối giữa các item trên View với source code tương ứng, được
khai báo trong source code như sau:

@property(nonatomic, retain)IBOutlet id someElement;



Action: liên kết item với hành động tương ứng được khai báo trong source code.


-(Action)someAction:(id)sender;

b. Các bước xây dựng giao diện
-

Tạo một project mới từ Xcode

Mở Xcode và chọn File >> New Project và chọn View Based Project đặt tên
là SampleProject.

Hình 11: Tạo một project mới từ Xcode.
Sau khi tạo project sẽ có được 3 file mới SampleProject.h, SampleProject.m và
SampleProject.xib.

Lưu Phước Linh – Trần Minh Vũ, 06T2

21


×