Tải bản đầy đủ (.docx) (62 trang)

Tìm hiểu ngôn ngữ lập trình object c và xây dựng ứng dụng trên IOS

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 (1.61 MB, 62 trang )

LỜI CẢM ƠN
Lời đầu tiên, em xin chân thành cảm ơn trường Đại học Công nghệ thông
tin và truyền thông, Đại học Thái Nguyên đã tạo điều kiện thuận lợi cho phép em
hoàn thành đồ án này.
Em xin chân thành cảm ơn sự giúp đỡ và đóng góp ý kiến nhiệt tình của
các thầy - cô giáo trong bộ môn Công Nghệ Phần Mềm - Khoa Công Nghệ
Thông Tin- Đại học Công Nghệ Thông Tin và Truyền Thông - Đại Học Thái
Nguyên.
Đặc biệt em xin bày tỏ lòng cảm ơn sâu sắc nhất đến cô giáo hướng dẫn:
Th.S Nguyễn Lan Oanh, đã nhiệt tình giúp đỡ em trong suốt quá trình học tập
và nghiên cứu.
Em xin chân thành cảm ơn!
Sinh viên
Nguyễn Văn Sơn
Tháng 6/2012

1


LỜI CAM ĐOAN
Em xin cam đoan những kết quả trong đồ án “TÌM HIỂU NGÔN NGỮ LẬP
TRÌNH OBJECT-C VÀ XÂY DỰNG ỨNG DỤNG TRÊN NỀN TẢNG IOS” là sự nghiên
cứu của em, không sao chép của ai. Nội dung đồ án có tham khảo, sử dụng tài
liệu, thông tin từ một số nguồn khác được trích dẫn trong phần tài liệu tham
khảo, và một số website. Nếu có gì giả dối em xin hoàn toàn chịu trách nhiệm.
Tác giả đồ án
Nguyễn Văn Sơn

2



MỤC LỤC

DANH MỤC HÌNH ẢNH

3


TỔNG QUAN
1 Sơ qua tình hình nghiên cứu trong và ngoài nước
Trong xu thế phát triển nhanh chóng của CNTT, lập trình ứng dụng cho
thiết bị di động không còn xa lạ với chúng ta. Tuy nhiên lập trình ứng dụng trên
hệ điều hành IOS (hay cụ thể là cho chiếc điện thoại Iphone ) lại là một hướng đi
khá mới mẻ với những lập trình viên ở Việt Nam nói chung và trên thế giới nói
riêng.
Ngày 17/10/2007, Tổng Giám đốc Apple, Steve Jobs, tuyên bố hãng này
sẵn sàng chào đón các hãng phần mềm thứ ba phát triển ứng dụng cho Iphone.
Đây là cú ngoặt lịch sử của Apple vì trước đó hãng này muốn kiểm soát những gì
người dùng có thể cài và chạy trên điện thoại Iphone. Đây cũng là cánh cở mới
mở rộng cho các nhà lập trình và phát triển phần mềm ứng dụng trên thiết bị di
dộng.
IOS là hệ điều hành trên các thiết bị di động của Apple. Ban đầu hệ điều
hành này chỉ được phát triển để chạy trên Iphone, nhưng sau đó nó đã được mở
rộng để chạy trên các thiết bị của Apple như iPod touch, iPad và Apple TV.
Ngày 31 tháng 5, 2011, App Store của Apple chứa khoảng 500.000 ứng dụng
IOS, và được tải về tổng cộng khoảng 15 tỷ lần. Trong quý 4 năm 2010, có
khoảng 26% điện thoại thông minh chạy hệ điều hành IOS, sau hệ điều
hành Android của Google và Symbian của Nokia.

2 Tính cấp thiết của đề tài
Sự bùng nổ và phát triển mạnh mẽ của công nghệ đã và đang khiến con

người khó có thể thiếu đi chiếc điện thoại của mình. Cùng với sự phát triển đó thì
những ứng dụng trên di động càng ngày càng trở nên cần thiết. Đặc biệt lập trình
ứng dụng trên Iphone (trên hệ điều hành IOS) là một không gian mới hay một
thử thách mới với những người lập trình bởi nó hoàn toàn xa lạ và có nhiều cơ
hội cho mọi người thử sức.
Phiên bản Iphone đầu tiên ra đời năm 2007. Bên cạnh tính năng của một
máy điện thoại thông thường (hoạt động trên băng tần GSM và EDGE), Iphone
4


còn được trang bị màn hình cảm ứng, máy chụp hình, khả năng chơi nhạc và
chiếu phim (tương tự iPod), trình duyệt web,… Phiên bản thứ hai là Iphone 3G ra
mắt tháng 7 năm 2008, được trang bị thêm hệ thống định vị toàn cầu (GPS),
mạng 3G tốc độ cao (HSPDA).
Iphone đã thành công, nổi lên trở thành chiếc điện thoại bán chạy nhất
mọi thời đại: Sau 2 năm, Iphone đã chiếm lĩnh tới 17% thị trường Smartphone,
và thậm chí có lúc bán được hơn 1 triệu chiếc chỉ trong 1 ngày. Và apple đã mở
cửa, tạo điều kiện để cho đội ngũ lập trình trên toàn thế giới có thể tham gia vào
thị trường cung cấp những ứng dụng cho Iphone. Apple sẽ chia lại cho các nhà
phát triển đến 70% doanh thu. Mức chia lợi nhuận này là cao nhất hiện nay trong
các chợ ứng dụng. Điều này lý giải một phần nguyên nhân tại sao bắt đầu có
nhiều người tham gia phát triển ứng dụng cho App Store.
Là sinh viên, khi thực hiện đề tài, tìm hiểu, nghiên cứu về lĩnh vực mới
này, em tin sẽ học hỏi được nhiều kiến thức mới, nhiều kinh nghiệm thiết thực
hơn và có thể áp dụng vào thực tế, đem lại hiệu quả trong công việc sau này.

3 Mục tiêu của đề tài
Qua thời gian thực hiện đề tài, em tin rằng sẽ nắm được những điểm quan
trọng trong hệ điều hành IOS, thu được nhiều kiến thức, kỹ năng và kinh nghiệm
trong việc lập trình ứng dụng trên thiết bị di động. Nắm được các yếu tố nền tảng

và phát triển được phần mềm ứng dụng Địa Chỉ Số trên Iphone.

4 Phương pháp và phạm vi nghiên cứu
Giờ đây hệ điều hành Mac OS đã có thể chạy trên phần cứng (intel) tuy
nhiên nó là không phải là 100% chạy cho tất cả các máy tính intel. Chỉ một số
không nhiều các dòng máy có thể chạy thành công Mac OS. Nhờ đó mà người
lập trình có thể cài đặt Xcode và sử dụng object C. Đó chính là cách thức tiếp cận
với môi trường lập trình ứng dụng cho Iphone của em.
Phạm vi nghiên cứu:
-

Nghiên cứu về hệ điều hành IOS.

-

Nghiên cứu ngôn ngữ lập trình object C và bộ công cụ hỗ trợ Xcode.

-

Nghiên cứu kỹ thuật lập trình trên thiết bị di động Iphone.

-

Xây dựng các tính năng cơ bản cho ứng dụng Địa Chỉ Số trên iPhone

5


CHƯƠNG 1: TỔNG QUAN VỀ IPHONE VÀ HỆ ĐIỀU
HÀNH IOS

1.1

Iphone và hệ điều hành iOS

1.1.1

Iphone
Iphone là

mẫu điện

thoại

di

động của

hãng điện

tử Mỹ Apple

Computer.Phiên bản Iphone đầu tiên ra đời năm 2007. Bên cạnh tính năng của
một máy điện thoại thông thường (hoạt động trên bốn băng tần GSM và EDGE),
Iphone còn được trang bị màn hình cảm ứng, máy chụp hình, khả năng chơi nhạc
và chiếu phim (tương tự iPod), trình duyệt web,... Phiên bản thứ hai là Iphone 3G
ra mắt tháng 7 năm 2008, được trang bị thêm hệ thống định vị toàn cầu (GPS),
mạng 3G tốc độ cao (HSDPA).
Iphone 3G S, phiên bản thứ ba, được công bố vào ngày 8 tháng 6 năm
2009. Ngày 19 tháng 6, phiên bản mới này đã được phân phối tại Mỹ, Canada và
một số nước châu Âu; ngày 26 tháng 6 có mặt tại Úc; sau đó, phiên bản quốc

tế của Iphone 3G S cũng được phát hành vào tháng 7 và tháng 8 năm 2009. Thay
đổi đáng kể nhất là trong phiên bản điện thoại mới này là Apple đã nâng cao hiệu
năng của máy (S trong 3G S là Speed - Tốc độ).Iphone 3G S được trang bịbộ vi
xử lý tốc độ 600 MHz (gấp gần 1,5 lần so với Iphone 3G), bộ nhớ trong lên đến
32 GB, máy ảnh số 3.15 Mp, tích hợp la bàn số và hàng loạt tính năng đáng giá
được nâng cấp khác như tốc độ Wi-Fi, thời gian dùng pin v.v...
Trước đó, ngày 17 tháng 3 năm 2009, Apple cũng đã thông báo phiên bản
3.0 của hệ điều hành cho Iphone (và iPod Touch) và đã được ra mắt chính thức
vào ngày 17 tháng 6 năm 2009.
Iphone 4 được thông bố ra đời tháng 6 năm 2010.Trong phiên bản này
Iphone đã được thiết kế lại, vuông vắt và có khía cạnh hơn. Về chức năng đáng
chú ý, Iphone 4 có chức năng quay phim HD, màn hình Rétina trong và nhuyễn
6


hơn gấp 4 so với các màn hình đời trước và chức năng FaceTime (gọi và thấy
người gọi qua Wi-Fi .
Kể từ khi ra đời, Iphone vẫn luôn làm điên đảo cả thế giới với thiết kế độc
đáo và con đường riêng màApple đã chọn.Thành công rực rỡ mà Iphone có được
điều khiến cả thế giới phải ngả mũ thán phục.Điểm lại những cột mốc lịch sử của
chiếc smartphone mang tính cách mạng này:
Ngày 9/1/2007: Steve Jobs vén tấm màn bí mật của Iphonephiên bản đầu tiên tại
Macworld 2007.
Ngày 5/9/2007: Apple quyết định ngừng sản xuất phiên bản 4GB.
Ngày 5/2/2008: Phiên bản 16GB chính thức ra đời và bước vào hàng ngũ
smartphone của Apple
Ngày 9/6/2008: Tại hội nghị WWĐƯợC, Apple đã giới thiệu Iphone 3G.
Ngày 10/7/2008: App Store chính thức mở cửa, với chỉ khoảng 500 ứng dụng.
Ngày 8/6/2009: Apple tung ra Iphone 3GS và giảm giá bản Iphone 3G xuống chỉ
còn một nửa. App Store có 50.000 ứng dụng và trên 1 tỉ lượt download.


7


Hình ảnh 1-1: Iphone 3GS

8


Ngày 17/6/2009: Apple tung ra IOS 3.0.
Ngày 19/6/2009: Iphone 3GS có mặt tại Mỹ, Canada và 6 quốc gia Châu Âu.
Ngày 26/6/2009: Iphone 3GS có mặt tại Nhật và Úc.
Ngày 4/11/2009: App Store chạm mốc 100.000 ứng dụng và trên 2 tỉ lượt
download.
Ngày 29/4/2010: Lượng ứng dụng tăng lên gấp đôi thành 200.000, trên 2.5 tỉ
lượt download.
Ngày 7/6/2010: Apple giới thiệu Iphone 4.

Hình ảnh 1-2: Iphone 4 là một cuộc cách mạng mới trong giới công nghệ
9


10


Ngày 15/6/2010: Khách hàng có thể đặt mua Iphone 4.
Ngày 24/6/2010: Iphone 4 có mặt tại các nước Mỹ, Anh, Pháp, Đức và Nhật.

Hình ảnh 1-3: Biểu đồ thời gian phát triển của Iphone.


Hình ảnh 1-4: Lượng Iphone được bán ra trong 4 năm qua.
1.1.2

Hệ điều hành IOS

11


IOS là hệ điều hành trên các thiết bị di động của Apple. Ban đầu hệ điều hành
này chỉ được phát triển để chạy trên Iphone, nhưng sau đó nó đã được mở rộng
để chạy trên các thiết bị của Apple như iPod touch,iPad và Apple TV. Ngày 31
tháng 5 năm 2011, App Store của Apple chứa khoảng 500 000 ứng dụng IOS, và
được tải về tổng cộng khoảng 15 tỷ lần. Trong quý 4 năm 2010, có khoảng
26% điện thoại thông minh chạy hệ điều hành IOS, sau hệ điều hành Android của
Google và Symbia của Nokia.
Giao diện người dùng của IOS dựa trên cơ sở thao tác bằng tay. Người dùng
có thể tương tác với hệ điều hành này thông qua rất nhiều động tác bằng tay trên
màn hình cảm ứng của các thiết bị của Apple.
Hệ điều hành này được tiết lộ tại Hội nghị và Triển lãm Macworld diễn ra vào
tháng 1 năm 2007 và được phát hành vào tháng 9 năm đó. Khi đó, hệ điều hành
này chưa có một cái tên riêng nên chỉ đơn giản là "Iphone chạy OS X". Ban đầu,
ứng dụng bên thứ ba không được hỗ trợ. Steve Job đã chỉ ra rằng những nhà phát
triển có thể xây dựng các ứng dụng web mà "sẽ cư xử như những ứng dụng ban
đầu trên Iphone". Vào ngày 17 tháng 10 năm 2007, Apple thông báo một bộ phát
triển phần mềm đang được xây dựng và họ dự định sẽ đưa nó đến "tay của các
nhà phát triển vào tháng 2". Ngày 6 tháng 3 năm 2008, Apple đã phát hành bản
dùng thử đầu tiên, cùng với một cái tên mới cho hệ điều hành, đó là "Iphone OS".
Tháng 6 năm 2010, Apple đổi cái tên Iphone OS thành IOS.Nhãn hiệu
"IOS" đã được Cisco dùng để đặt tên cho hệ điều hành của mình.Để tránh các vụ
kiện cáo, Apple


đã

xin

giấy phép sử

dụng nhãn hiệu IOS từ

Cisco. - cite_note-ciscosuit-7

12


Hình ảnh 1-5: Lịch sử IOS và các thiết bị được hỗ trợ bởi IOS
1.2

Môi trường phát triển ứng dụng

1.2.1

Cấu trúc của hệ điều hành iOS
Apple không cho phép người dùng tiếp cận trực tiếp với bất kì phần cứng

nào của Iphone, mọi tương tác phần cứng phải thông qua một số lớp khác nhau
của phần mềm, hoạt động như một trung gian giữa các ứng dụng và thiết bị phần
cứng. Những lớp này được hiểu như là một hệ điều hành, cụ thể ở đây là hệ điều
hành IOS.
Mỗi lớp của hệ điều hành cung cấp một mức độ ngày càng cao của sự trừu
tượng hóa với sự phức tạp của cách làm việc với phần cứng.


13


Hình ảnh 1-6: Phân lớp trong hệ điều hành iOS.

14


1.2.2

Lớp Core OS( lớp nhân trong)

Là lớp dưới cùng của iOS, nó là nền tảng của hệ điều hành. Nó đảm nhiệm
các nhiệm vụ như quản lý bộ nhớ, file hệ thống, liên kết mạng và một số chức
năng khác, nó tác động trực tiếp tới phần cứng. Lớp Core OS bao gồm một số
thành phần như sau:
-

CFNetwork Framework: Cung cấp một giao diện dựa trên C tới các lớp
giao thức mạng TCP/IP và truy cập mức thấp tới các socket BSD. Nó cho
phép mã ứng dụng được viết và làm việc với các dịch vụ HTTP, FTP và
DNS, khởi tạo bảo mật và mã hóa các kết nối sử dụng Secure Sockets
Layer (SSL) hoặc Transport Layer Security(TLS).

-

External Accessory framework: Cung cấp khả năng kết nối với những
phụ kiện kết nối vật lý mở rộng tới Iphone thông qua 30-pin dock
connector hoặc qua Blutooth.


-

Security Framework: Cung cấp các giao diện bảo mật khi chúng ta kết
nối tới mạng mở rộng bên ngoài như chứng thực, khóa công khai và khóa
private, mã hóa, và xác thực sử dụng hàm băm (HMAC).

-

System (LibSystem): iOS được xây dựng dựa trên nền tảng UNIX, vì thế
những thành phần hệ thống của Core OS cung cấp nhiều chức năng giống
với hệ điều hành UNIX. Nó bào gồm nhân hệ điều hành (Mach Kernel) và
các Driver của các thiết bị. Nhân là nền tảng của toàn bộ iOS được xây
dựng và cung cấp giao diện mức thấp cho các phần cứng lớp nằm dưới.
Nhân chịu trách nhiệm cấp phát bộ nhớ, quản lý chu kỳ sống của tiến
trình, đầu vào/đầu ra, liên lạc đa tiến trình, quản lý luồng, kết nối mạng
mức thấp quản lý luồng và truy cập hệ thống.

1.2.3

LớpCore Services (lớp nhân dịch vụ)

Lớp Core Services cung cấp các dịch vụ dựa trên nền tảng của lớp Core OS.
Nó cung cấp những truy cập cơ bản tới các dịch vụ của iOS và nó bao gồm các
thành phần sau:

15


-


AddressBook Framework: Cung cấp truy cập có thứ tự tới cơ sở dữ liệu
về danh bạ của Iphone, cho phép các ứng dụng có thể lưu trữ và sửa đổi
các mục của danh bạ.

-

Core Data Framework: Được cung cấp để dễ dàng tạo ra các mô hình dữ
liệu và lưu trữ trong các ứng dụng dựa trên Model-View-Controller
(MVC). Sử dụng Framework này giảm được số lượng mã cần phải viết để
thực hiện những công việc thông thường khi làm việc với cấu trúc dữ liệu
trong ứng dụng.

-

Core Foundation Framework: Cung cấp các thứ như kiểu dữ liệu, thao
tác trên chuỗi, quản lý khối dữ liệu có thứ tự, thao tác URL, các luồng và
chạy các vòng lặp, thời gian, thao tác XML cơ bản, các cổng và các kết
nối socket.

-

Foundation Framework: Là một Framework chuẩn của Objective-C. Nó
chứa những bao gói Objective-C xung quanh Core Foundation
Framework.

-

Core Location Framework: Cho phép bạn lấy được thông tin về vị trí
hiện thời của thiết bị và có khả năng định hướng. Phương thức dùng bởi

thiết bị để cung cấp tọa độ sẽ phụ thuộc trên dữ liệu có sẵn tại thời gian
thông tin được yêu cầu và phần cứng hỗ trợ được cung cung cấp bởi
model Iphone cụ thể mà ứng dụng chạy trên nó. Nó sẽ dựa trên việc phân
tích GPS, dữ liệu mạng Wifi hoặc phép đo tam giác cột thu phát sóng.

-

Store Kit Framework: Mục đích của phần này là tạo sự dễ dàng trong
việc trao đổi thương mại giữa ứng dụng của bạn và Apple AppStore.

-

SQLite library: Cho phép lưu trữ cơ sở dữ liệu nhỏ, SQL dựa trên cơ sở
dữ liệu để tạo và thao tác với những cơ sở dữ liệu bên trong ứng dụng.

16


1.2.4

LớpMedia Services (lớp liên kết)

Lớp Media Services của iOS cung cấp các khả năng về audio, video,
animation và graphics. Như các lớp khác trong ngăn xếp của iOS, lớp Media bao
gồm một số các Framework cái mà có thể được sử dụng trong những ứng dụng
Iphone:
-

Core Graphics Framework: Cung cấp một máy dựng hai chiều nhẹ.
Những tính năng của Framework này bao gồm việc tạo và trình diễn

những file PDF, bản vẽ dựa trên Vector, các lớp trong suốt, đường dẫn
dựa trên bản vẽ, thao tác và quản lý màu sắc.

-

Quartz Core Framework: Mục đích của Framework này là cung cấp khả
năng hoạt hình cho Iphone. Nó cung cấp nền tảng cho các hiệu ứng trực
quan và hoạt hình được sử dụng bởi Framework UIKit và cung cấp một
giao diện lập trình dựa trên Objective-C để tạo hoạt hình đặc biệt bên
trong ứng dụng Iphone.

-

OpenGL ES Framework: OpenGL for Embedded System(ES) là một
phiên bản nhỏ của OpenGL đầy đủ được thiết kế đặc biệt để dành cho các
thiết bị nhỏ như Iphone.

-

Iphone Audio Support: cho phép iOS có khả năng hỗ trợ các định dạng
như AAC, Apple Lossless (ALAC), A-law,IMA/ADPCM, Linear PCM,
DVI/Intel IMA…

-

AV Foundation Framework: Là một Framework được thiết kế cho phép phát

lại, ghi âm và quản lý nội dung của âm thanh.
-


Core

Audio

Frameworks

(CoreAudio.framework,

Audio

Toolbox.framework và AudioUnit.framework): Cung cấp khả năng
truy cập tới các thiết bị được tích hợp trong các đơn vị xử lý âm thanh.
-

Open Audio Library (OpenAL): OpenAL là một công nghệ nền tảng lai
tạo được sử dụng để cung cấp hiệu ứng âm thanh 3D chất lượng cao.

-

Media Player Framework: Framework này có thể chạy các video trong
các định dạng .mov, .mp4, .m4v, .3gp tại một loạt các tiêu chuẩn nén, các
độ phân giải và các tốc độ khung hình.
17


1.2.5

Lớp Cocoa Touch (lớp tiếp xúc)

Lớp này nằm ở trên cùng trong ngăn xếp của iOS và chứa những Framework

cái mà được sử dụng thường xuyên bởi các lập trình viên Iphone. Cocoa Touch
dựa trên nền tảng chuẩn của Cocoa API của MAC OS X và có phần mở rộng và
sửa đổi để phù hợp với Iphone. Lớp Cocoa Touch cung cấp các Framework cho
việc phát triển ứng dụng Iphone như sau:
-

UIKit Framework: Đây là một Framework khổng lồ và một giao diện lập
trình dựa trên Objective-C giàu tính năng. Bạn sẽ phải tốn nhiều thiều thời
gian làm việc để tìm hiểu về nó. Hầu hết các cuốn sách đều viết riêng về
UIKit Framework. Một số thành phần chính của UIKit là:
+

Quản lý và tạo giao diện người dùng ( text fields, buttons, labels,
colors, fonts…).

+

Quản lý chu kỳ sống của ứng dụng.

+

Điều khiển sự kiện ứng dụng (như chạm vào màn hình ứng dụng).

+

Các chức năng Cut, Copy, Paste.

+

Quản lý và trình diễn nội dung Web và văn bản.


+

Điều khiển dữ liệu.

+

Tích hợp nhiều ứng dụng.

+

Đưa ra thông báo.

+

Khả năng truy cập.

+

Bộ gia tốc, pin, cảm biến khoảng cách, camera và tương tác với thư
viện hình ảnh.

-

Map Kit Framework: Cung cấp cho bạn một giao diện lập trình để cho
phép bạn xây dựng bản đồ dựa trên các ứng dụng riêng bản bạn. Nó cho
phép bạn hiển thị bản đồ có thể cuộn tới bất kỳ vị trí nào, hiển thị bản đồ
tương ứng với vị trí địa lý hiện tại của thiết bị và chú thích theo nhiều
cách khác nhau.


-

Push Notification Service: Cho phép những ứng dụng cảnh báo người
dùng về một sự kiện thậm chí khi ứng dụng hiện tại không được chạy trên
thiết bị. Nó rất phổ biến được sử dụng bởi các ứng dụng dựa trên tin tức.
18


Thông thường khi có tin tức mới thì dịch vụ sẽ tạo ra một tin nhắn trên
thiết bị với tiêu để của tin tức và cung cấp cho người dùng tùy chọn để tải
các ứng dụng tin tương ứng để đọc thêm chi tiết. Tính năng này lên được
sử dụng tiết kiệm để tránh gây phiền hà cho người sử dụng vì thường
xuyên gián đoạn.
-

Message UI Framework: Cung cấp mọi thứ mà bạn cần để cho phép
người sử dụng gửi email từ trong ứng dụng của bạn. Trên thực tế nó còn
cung cấp các thành phần giao diện thông qua đó người dùng có thể nhập
các thông tin địa chỉ email và nội dung tin nhắn. Ngoài ra thông tin này có
thể được xác định trước bên trong ứng dụng của bạn và sau đó được hiển
thị cho người sử dụng để chỉnh sửa và phê duyệt trước khi gửi.

-

Address Book UI Framework: Đưa ra chức năng chính cho Iphone như
là một thiết bị thông tin liên lạc và trợ giúp kỹ thuật số. Toàn bộ
Framework là giành riêng cho việc tích hợp các dữ liệu sổ địa chỉ vào
trong ứng dụng riêng của bạn. Cho phép bạn bạn truy cập vào, hiển thị,
chỉnh sửa và nhập thông tin liên lạc từ sổ địa chỉ của Iphone từ bên trong
ứng dụng riêng của bạn.


Game Kit Framework: Cung cấp kết nối ngang hàng (peer-to-peer) và kết nối
giọng nói giữa nhiều thiết bị và cho phép nhiều người sử dụng chạy cùng một
ứng dụng để tương tác.

19


CHƯƠNG 2: NGÔN NGỮ LẬP TRÌNH OBJECTIVE C VÀ BỘ
CÔNG CỤ HỖ TRỢ XCODE
Objective-C là ngôn ngữ lập trình hướng đối tượng.Nó thêm cách gửi
thông báo của ngôn ngữ Smalltalk vào ngôn ngữ C. Ngày nay Objective-C được
dùng như ngôn ngữ chính thức cho hệ điều hành Mac OS và iOS.

Lịch sử ngôn ngữ Objective-C
Objective-C đã được tạo ra chủ yếu bởi Brad Cox và Tom Love đầu
những năm 1980 tại Stepstone công ty nơi hai ông làm việc. Cả hai đã được giới
thiệu về Smalltalk trong trung tâm công nghệ lập trình của Tổng công ty ITT
năm 1981.Cox bị hấp dẫn bởi các vấn đề về sử dụng lại đúng trong thiết kế phần
mềm và lập trình.Ông nhận ra rằng một ngôn ngữ như Smalltalk sẽ là vô giá
trong xây dựng môi trường phát triển cho các nhà phát triển hệ thống.Cox đã bắt
đầu bằng cách thay đổi các trình biên dịch C để thêm một số tính năng của
Smalltalk. Ông đã nhanh chóng bổ sung một mở rộng hướng đối tượng cho ngôn
ngữ C.
Tom Love đã được thuê bởi Schlumberger nghiên cứu vào năm 1982 và
đã có cơ hội có được phiên bản thương mại đầu tiên của Smalltalk-80, điều này
thêm ảnh hưởng tới sự phát triển của đứa con tinh thần của họ.
Cuối cùng Tom Love và Brad Cox hình thành một liên doanh mới (PPI),
để thương mại hóa sản phẩm của họ, mà cùng một trình biên dịch Objective-C
với các lớp thư viện. Năm 1986, Cox công bố bản mô tả chính của Objective-C ở

dạng ban đầu của nó trong cuốn sách lập trình hướng đối tượng, một phương
pháp tiến hóa.Mặc dù ông đã cẩn thận chỉ ra rằng có nhiều thứ quan trọng cho
vấn đề tái sử dụng hơn so với ngôn ngữ lập trình.
Sau khi Steve Jobs bị buộc ra khỏi Apple, ông bắt đầu tại công ty mới
NeXT. Năm 1988, NeXT được cấp phép Objective-C từ StepStone và phát hành
trình biên dịch của Objective-C và thư viện của mình, theo đó người dùng sử
dụng giao diện và xây dựng dựa trên nền tảng NeXTSTEP. Trong khi các máy
20


trạm NeXT không tác động lớn trên thị trường thì các công cụ đã được ca ngợi
rộng rãi trong công nghiệp phần mềm.NeXT đã giảm sản xuất phần cứng và tập
trung vào các công cụ phần mềm, bán NeXTSTEP (và OpenStep) như là một nền
tảng cho các khách hàng lập trình.
Sau khi mua lại NeXT vào năm 1996, Apple Computer sử dụng OpenStep
trong hệ điều hành mới của mình, Mac OS X. Điều này bao gồm Objective-C và
Objecive của NeXT-phát triển công cụ dựa trên C, Dự án Builder (sau này được
thay thế bằng Xcode), cũng như công cụ thiết kế giao diện của nó Interface
Builder. Phần lớn Api Cocoa của Apple ngày nay có nền tảng là giao diện hướng
đối tượng OpenStep, và là môi trường Objective-C có ý nghĩa nhất đang được sử
dụng để phát triển.

Tổng quan về Objective-C
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 Objects.
Các công cụ phát triển cần thiết

21


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.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 (class) 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 một lớp và được định nghĩa trong một file có đuôi .m. Đây là
nó 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-C là:
- 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.
Tại sao lại 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:


22


- 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 của nó khá ngắn gọn nên 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 nếu so sánh với các ngôn ngữ mở rộng khác dựa trên C. Trình
biên dịch đóng một 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ể được đư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ó hai 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.
2.1.

Các yếu tố căn bản của Objective-C

2.1.1


Phương thức

-

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


Có tham số: <(kiểu trả về)>: <(kiểu)>: <(kiểu)>;
-

Lời gọi phương thức:
Không trả về: [<đối tượng>];
[<đối tượng>: <(kiểu)>];
[<đối tượng>: <(kiểu)>: <(kiểu)>];
Trả về kết quả: = [<đối tượng>];
= [<đối tượng>: <(kiểu)>: <(kiểu)>];

2.1.2

Lớp và đối tượng
Objective-C sử dụng khái niệm Interface và Implementation để phân biêt

file Header và file Source của C (*.h và *.c) một lớp trong Objective-C định
nghĩa là trên một giao diện (.h) còn phần thực thi trên file .m các bạn chú ý là m
vì nó khác với C và C++.
Ví Dụ:
Giao diện:
@interface:

#import @interface Fraction: NSObject {
int numerator;
@private
int denominator;
}
(void) print;
(void) setNumerator: (int) n;
(void) setDenominator: (int) d;
(int) numerator;
(int) denominator;
@end
Phần thực thi:
@implementation
24


#import "Fraction.h"
@implementation Fraction
(void) print {
printf( "%i/%i", numerator, denominator );
}
(void) setNumerator: (int) n {
numerator = n;
}
(void) setDenominator: (int) d {
denominator = d;
}
(int) denominator {
return denominator;
}

(int) numerator {
return numerator;
}
@end
-

Sử dụng #import để thay thế cho #include (đây là cơ chế thông
minh hơn #include của C/C++, chỉ phải thêm 1 lần)
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ặp @.... và @end là cặp giới hạn phạm vi một lớp.

-

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

-

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

-

Các phạm vi truy xuất public,protected và private giống như C++
mặc định là protected.
25



×