SlideShare a Scribd company logo
2013
Nguyễn Anh Tiệp - Cao Thanh Vàng
Đại Học Lạc Hồng
20/11/2013
Tài Liệu Hướng Dẫn Xây Dựng
Ứng Dụng iPhone
MỤC LỤC
CHƯƠNG I CHUẨN BỊ TRƯỚC KHI BẮT ĐẦU XÂY DỰNG ỨNG DỤNG...........1
1.1 CHUẨN BỊ HỆ ĐIỀU HÀNH MAC OS ....................................................................2
1.1.1 Lập Trình Ứng Dụng Iphone Trên Windows ..................................................2
1.1.2 Sử Dụng Sản Phẩm Chính Hãng Apple............................................................3
1.1.3 Chạy Hệ Điều Hành Mac Os Trên Pc/Laptop Intel/Amd – Tại Sao Không?
.......................................................................................................................................5
1.2 PHẦN MỀM XCODE ..................................................................................................7
1.2.1 Cài Đặt Thông Qua Bản Tải Về Từ Trang Dành Cho Developer..................8
1.2.2 Cài Đặt Thông Qua Apple Mac Store.............................................................10
1.2.3 Cài Đặt Từ Bản Xcode Được Chia Sẻ Trên Internet ....................................11
CHƯƠNG II TÌM HIỂU XCODE VÀ IOS SIMULATOR .........................................12
2.1 TÌM HIỂU XCODE 5 ................................................................................................13
2.1.1 Giới Thiệu Về Xcode 5 .....................................................................................13
2.1.2 Thao Tác Tạo Ứng Dụng Mới .........................................................................16
2.1.3 Tìm Hiểu Giao Diện Xcode Và Một Số Tính Năng .......................................20
2.1.4 Thiết Kế Giao Diện ...........................................................................................26
2.1.5 Viết Code ...........................................................................................................29
2.1.6 Thực Thi Và Kiểm Tra Lỗi Của Ứng Dụng...................................................34
2.2 TÌM HIỂU IOS SIMULATOR .................................................................................38
2.2.1 Giới Thiệu iOS Simulator ................................................................................38
2.2.2 Tìm Hiểu iOS Simulator ..................................................................................38
CHƯƠNG III NGÔN NGỮ OBJECTIVE-C ................................................................48
3.1 GIỚI THIỆU NGÔN NGỮ OBJECTIVED-C ........................................................49
3.2 KHAI BÁO BIẾN - CÁCH SỬ DỤNG.....................................................................49
3.2.1 Biến.....................................................................................................................49
3.2.2 Quy Tắc Đặt Tên...............................................................................................50
3.3 KIỂU DỮ LIỆU ..........................................................................................................50
3.4 PHÉP TOÁN...............................................................................................................51
3.5 CHÚ THÍCH CODE ..................................................................................................51
3.6 XUẤT DỮ LIỆU RA MÀN HÌNH............................................................................52
3.7 FUNCTION.................................................................................................................54
3.7.1 Định Nghĩa.........................................................................................................54
3.7.2 Phương Thức Không Có Tham Số Truyền Vào ...........................................54
3.7.3 Phương Thức Có 1 Tham Số Truyền Vào......................................................55
3.7.4 Phương Thức Có Nhiều Tham Số Truyền Vào..............................................55
3.8 CẤU TRÚC ĐIỀU KIỆN...........................................................................................57
3.8.1 Câu Lệnh If .......................................................................................................57
3.8.2 Câu Lệnh If – Else ............................................................................................57
3.8.3 Câu Lệnh Switch - Case ...................................................................................58
3.9 Cấu Trúc Lặp..............................................................................................................59
3.9.1 Vòng Lặp For ....................................................................................................59
3.9.2 Vòng Lặp While ................................................................................................59
3.9.3 Vòng Lặp Do-While..........................................................................................60
3.10 MẢNG........................................................................................................................61
3.10.1 Định Nghĩa.......................................................................................................61
3.10.2 Mảng Nsarray .................................................................................................61
3.11 CHUỖI – ĐỐI TƯỢNG NSSTRING......................................................................62
3.11.1 Khởi Tạo Chuỗi...............................................................................................62
3.11.2 Đối Tượng NSString.......................................................................................63
3.11.3 Tìm Kiếm Bên Trong Chuỗi..........................................................................63
3.11.4 Tìm Chuỗi Và Thay Nó Thành Chuỗi Khác................................................64
3.11.5 Xoá Nội Dung Bên Trong Chuỗi ...................................................................64
3.11.6 Cắt Chuỗi.........................................................................................................65
3.11.7 Chèn Ký Tự Vào Trong Chuỗi......................................................................66
3.11.8 Chèn Ký Tự Vào Cuối Chuỗi ........................................................................66
3.11.8 So Sánh Chuỗi.................................................................................................67
3.11.9 So Sánh Chuỗi Với Ký Tự Đầu Và Cuối Chuỗi...........................................67
3.11.10 Chuyển Đổi Hình Dạng Của Chữ................................................................68
3.11.11 Chuyển Chuỗi Thành Dạng Số....................................................................70
CHƯƠNG IV MỘT SỐ THAO TÁC CƠ BẢN.............................................................72
4.1 APP ICON – LOADING SCREEN ..........................................................................73
4.1.1 App Icon.............................................................................................................73
4.1.2 Loading Screen..................................................................................................75
4.2 THAY ĐỔI APP NAME............................................................................................76
4.3 ẨN STATUS BAR ......................................................................................................78
4.4 BACKGROUND.........................................................................................................79
4.4.1 Background Image............................................................................................79
4.4.2 Background Color ............................................................................................83
4.5 THÊM FRAMEWORK .............................................................................................84
CHƯƠNG V MỘT SỐ ĐỐI TƯỢNG CƠ BẢN............................................................86
5.1 ĐỐI TƯỢNG LABEL – BUTTON – TEXT FIELD...............................................87
5.1.1 Giới Thiệu..........................................................................................................87
5.1.2 Ví Dụ ..................................................................................................................90
5.2 KẾT NỐI CƠ SỞ DỮ LIỆU VỚI SQLITE .............................................................94
5.2.1 Giới Thiệu..........................................................................................................94
5.2.2 Cài Đặt Sqlite Manager Cho Firefox ..............................................................94
5.2.3 Cấu Hình Ứng Dụng Để Tương Tác Với Sqlite.............................................95
5.2.4 Các Hàm Trong Sqlite......................................................................................96
5.2.5 Ví Dụ ..................................................................................................................99
5.3 SỬ DỤNG CAMERA IPHONE ..............................................................................109
5.3.1 Giới Thiệu........................................................................................................109
5.3.2 Ví Dụ ................................................................................................................109
5.4 UIIMAGE..................................................................................................................113
5.4.1 Giới Thiệu........................................................................................................113
5.4.2 Các Định Dạng Ảnh Hỗ Trợ Trên Iphone ...................................................114
5.4.3 Ví Dụ ................................................................................................................114
5.5 UIALERT VIEW......................................................................................................121
5.5.1 Giới Thiệu........................................................................................................121
5.5.2 Đặc Điểm..........................................................................................................121
5.5.3 Ví Dụ ................................................................................................................122
5.6 UISLIDER.................................................................................................................124
5.6.1 Giới Thiệu........................................................................................................124
5.6.2 Đặc Điểm..........................................................................................................125
5.6.3 Ví Dụ ................................................................................................................125
5.7 UIWEBVIEW ...........................................................................................................128
5.7.1 Giới Thiệu........................................................................................................128
5.7.2 Ví Dụ ................................................................................................................129
5.8 ACTIVITY INDICATOR VIEW............................................................................132
5.8.1 Giới Thiệu........................................................................................................132
5.8.2 Ví Dụ ................................................................................................................132
5.9 ACTIONSHEET.......................................................................................................136
5.9.1 Giới Thiệu........................................................................................................136
5.9.2 Đặc Điểm..........................................................................................................136
5.9.3 Ví Dụ ................................................................................................................137
5.10 MK MAP VIEW.....................................................................................................138
5.10.1 Giới Thiệu......................................................................................................138
5.10.2 Ví Dụ ..............................................................................................................139
5.11 TABLE VIEW CONTROLLER...........................................................................143
5.11.1 Giới Thiệu......................................................................................................143
5.11.2 Ví Dụ ..............................................................................................................143
5.12 SEARCH BAR........................................................................................................147
5.12.1 Giới Thiệu......................................................................................................147
5.12.2 Ví Dụ ..............................................................................................................148
5.13 TRUYỀN DỮ LIỆU GIỮA CÁC VIEW..............................................................152
5.13.1 Giới Thiệu......................................................................................................152
5.13.2 Ví Dụ ..............................................................................................................152
CHƯƠNG VI HƯỚNG DẪN XÂY DỰNG PHẦN MỀM..........................................157
6.1 PHẦN MỀM KIỂM TRA MÃ VIN........................................................................158
6.1.1 Giới Thiệu........................................................................................................158
6.1.2 Chuẩn Bị..........................................................................................................158
6.1.3 Cấu Trúc Phần Mềm......................................................................................158
6.1.4 Cơ Chế Vận Hành...........................................................................................159
6.1.5 Tính Năng........................................................................................................160
6.1.6 Tiến Hành........................................................................................................163
6.2 PHẦN MỀM TÌM KIẾM ĐỊA ĐIỂM XUNG QUANH (PLACESNEARME) ..220
6.2.1 Giới Thiệu........................................................................................................220
6.2.2 Chuẩn Bị..........................................................................................................220
6.2.3 Cấu Trúc Phần Mềm......................................................................................220
6.2.4 Cơ Chế Vận Hành Của Placesnearme..........................................................221
6.2.5 Tính Năng........................................................................................................222
6.2.6 Tiến Hành........................................................................................................226
CHƯƠNG VII ĐƯA ỨNG DỤNG LÊN IPHONE......................................................385
7.1 GIỚI THIỆU.............................................................................................................386
7.2 QUÁ TRÌNH CHUẨN BỊ ........................................................................................386
7.3 TIẾN HÀNH .............................................................................................................388
CHƯƠNG VIII MỘT SỐ VẤN ĐỀ KHÁC................................................................396
8.1 XÂY DỰNG ỨNG DỤNG CHO IOS 6 - IOS 6.1 TRÊN XCODE 5 ...................397
8.2 XÂY DỰNG ỨNG DỤNG HỖ TRỢ NHIỀU VERSION IOS .............................403
CÂU HỎI THƯỜNG GẶP............................................................................................407
PHỤ LỤC ........................................................................................................................411
LỜI MỞ ĐẦU
Ngày nay xu hướng sử dụng Smartphone và máy tính bảng đang gia tăng nhanh
chóng trên thế giới nói chung và Việt Nam nói riêng, trong đó Việt Nam hiện đang đứng
thứ hai thế giới về tốc độ tăng trưởng smartphone & máy tính bảng với tốc độ tăng trưởng
266%. Android, iOS, Windows Phone là những hệ điều hành chạy trên Smartphone và
máy tính bảng phổ biến nhất thế giới: Android 75%, iOS 17,3%, Windows Phone 3,2%.
Tại Việt Nam, theo nghiên cứu của IDC, vào thời điểm quý 2/2013, iOS đang chiếm tỉ lệ
1.6% trên tổng số thiết bị phân phối tại Việt Nam, đứng thứ ba sau Android và Windows
Phone.
Cùng với sự tăng trưởng của Smartphone và các hệ điều hành chạy trên Smartphone,
số lượng ứng dụng cho các hệ điều hành ngày càng tăng, tính cho đến hết năm 2012, số
lượng ứng dụng iOS trên Apple App Store đã hơn 775.000 ứng dụng và Google Play đã
có hơn 700.000 ứng dụng.Với sự phát triển quy mô lớn của ứng dụng, nhu cầu tìm hiểu
về lập trình ứng dụng cho các hệ điều hành cũng tăng dần.
Tuy nhiên, thực tiễn cho thấy, việc tìm hiểu cũng như tham gia các lớp học về lập
trình ứng dụng iPhone ở Việt Nam còn nhiều hạn chế và khó khăn.Các lớp dạy lập trình
ứng dụng iPhone chỉ mới xuất hiện nhiều trong thời gian gần đây, do đó số lượng vẫn còn
hạn chế.
Bên cạnh đó nguồn tài liệu tiếng Việt còn ít, việc tìm hiểu và sử dụng công cụ lập
trình cũng như tham khảo tài liệu tiếng Anh về lập trình ứng dụng iPhone đòi hỏi người
tìm hiểu phải tiêu tốn một khoảng thời gian dài cũng như có một ít hiểu biết về lập trình
và khả năng đọc hiểu tiếng Anh tốt. Hơn nữa các tài liệu tiếng Việt do các trung tâm
giảng dạy lập trình iPhone biên soạn chỉ lưu hành nội bộ, người tìm hiểu buộc phải chi
một khoản tiền để tham dự lớp học mới có thể có được những tài liệu này.
Với mong muốn tìm hiểu cách xây dựng ứng dụng iPhone để có thêm kiến thức mới,
giúp ích cho quá trình làm việc sau khi ra trường cũng như giảm bớt những khó khăn cho
người mới bắt đầu tìm hiểu về lập trình ứng dụng trên iPhone, nhóm nghiên cứu đã thực
hiện nghiên cứu, xây dựng một số ứng dụng trên iPhone dựa trên kiến thức tìm hiểu được,
từ đó tổng hợp và xây dựng thành tài liệu Hướng dẫn xây dựng ứng dụng trên iPhone. Với
những ví dụ riêng cho từng đối tượng, người đọc sẽ dễ dàng nắm bắt và hiểu rõ cách sử
dụng, chức năng của từng đối tượng khác nhau. Bên cạnh đó tài liệu còn kèm theo hướng
dẫn chi tiết từng bước để xây dựng một vài ứng dụng thực tế mà nhóm nghiên cứu đã
thực hiện được trong quá trình nghiên cứu. Hi vọng rằng nội dung của tài liệu này sẽ giúp
ích phần nào cho mọi người khi bắt đầu tìm hiểu về lập trình iPhone, từ đó có thể tiết
kiệm bớt thời gian cho quá trình tìm hiểu.
Mọi ý kiến đóng góp xin liên lạc qua email caothienmokimlong@gmail.com hoặc
anhtiep20@gmail.com. Rất mong nhận được sự góp ý chân thành từ mọi người để tài liệu
hướng dẫn ngày càng hoàn thiện hơn.
Nhóm nghiên cứu
Nguyễn Anh Tiệp – Cao Thanh Vàng
CHƯƠNG I
CHUẨN BỊ TRƯỚC KHI BẮT ĐẦU XÂY DỰNG ỨNG DỤNG
Quá trình chuẩn bị trước khi bắt đầu lập trình ứng dụng trên iPhone là quá trình cơ
bản mà bạn phải chuẩn bị cho thật kỹ lưỡng. Quá trình này sẽ chuẩn bị cho bạn các điều
kiện cần thiết để có thể thuận lợi bắt đầu tìm hiểu về lập trình ứng dụng trên iPhone.
Trong chương này, bạn sẽ được giới thiệu sơ lược về quá trình chuẩn bị, các cách thức để
bạn có được hệ điều hành Mac OS và bộ công cụ Xcode. Hai điều kiện này là điều kiện
cần thiết để bắt đầu lập trình iOS.
Tuy nhiên nội dung phần chuẩn bị hệ điều hành Mac OS chỉ được giới thiệu sơ
lược với bạn các cách thức để có được một hệ điều hành Mac OS ổn định (cách thức cài
đặt Mac OS trên thiết bị Intel/AMD) cho việc lập trình chứ không đi sau vào hướng dẫn
cụ thể bởi điều đó thuộc về một lĩnh vực kiến thức khác đòi hỏi phải đào sâu tìm hiểu.
2
1.1 CHUẨN BỊ HỆ ĐIỀU HÀNH MAC OS
Việc lập trình ứng dụng cho iPhone đòi hỏi bạn phải sử dụng bộ công cụ do chính
Apple cung cấp gọi là Xcode, và bộ công cụ này chạy trên nền tảng của hệ điều hành Mac
OS. Nếu bạn muốn bắt đầu cho việc xây dựng ứng dụng cho iPhone thì bạn nên bắt đầu
ngay với việc chuẩn bị cho mình một chiếc máy chạy hệ điều hành Mac OS. Sau đây
chúng tôi sẽ giới thiệu cho bạn một số cách thức để bạn có thể sở hữu cho mình một hệ
điều hành Mac OS phù hợp.
1.1.1 Lập Trình Ứng Dụng Iphone Trên Windows
Nếu bạn muốn lập trình ứng dụng cho iPhone, nhưng lại muốn thực hiện trên môi
trường Windows để có thể thao tác thêm các công việc khác trên môi trường này, lựa
chọn tốt nhất cho bạn lúc này chính là sử dụng một máy ảo chạy hệ điều hành Mac OS để
lập trình. Tuy nhiên nếu bạn lựa chọn phương án này, cấu hình máy của bạn phải mạnh,
CPU xử lý tốt, và bạn nên dành ít nhất 2G RAM cho máy ảo hoạt động tốt hơn.
Làm cách nào để tôi có thể sở hữu một máy ảo chạy Mac OS cho riêng mình?
Bạn có hai cách để có thể sở hữu một máy ảo chạy Mac OS cho mình.
Cách một là bạn chuẩn bị một đĩa cài Mac OS và phần mềm hỗ trợ tạo máy ảo như
VMWare , Virtualbox … sau đó bạn tiến hành cài đặt bình thường bằng tay. Đĩa cài đặt
Mac OS bạn có thể mua ở các tiệm bán đĩa phần mềm. Hoặc bạn có thể tải về trên mạng
một đĩa cài Mac OS đuôi .iso ( Thường thì trên mạng có đĩa cài đuôi .dmg, bạn phải
chuyển đổi qua đuôi .iso để được hỗ trợ tốt nhất từ phần mềm tạo máy ảo).
Cách thứ hai là bạn tải về một máy ảo hoàn chỉnh đã được cài đặt sẵn Mac OS, sau
đó mở lên bằng phần mềm chạy máy ảo là bạn đã có thể có một hệ điều hành Mac OS.
Bạn nên truy cập vào
Diễn đàn Tinh Tế: www.tinhte.vn/forums/chuyen-de-hackintosh.361/ .
Cộng đồng Hackinosh: www.facebook.com/groups/hackintoshvietnam/.
3
để tìm hiểu thêm tiến trình cài đặt máy ảo, các vấn đề xảy ra trong quá trình cài.
Ngoài ra bạn cũng có thể tìm các máy ảo chạy Mac OS cài đặt sẵn tại
Soul Dev Team: http://www.souldevteam.net/ .
1.1.2 Sử Dụng Sản Phẩm Chính Hãng Apple
Nếu gia đình bạn có điều kiện, bạn có thể mua ngay cho mình một chiếc máy Apple
chính hãng, sử dụng trọn vẹn tính năng cũng như sự hỗ trợ tối đa từ Apple.
Bạn truy cập vào www.apple.com , chọn Store, sau đó lựa chọn Shop Mac để đến
chuyên mục bán các sản phẩm chạy Mac OS của Apple. Tại đây bạn có thể lựa chọn
nhiều loại sản phẩm khác nhau như Macbook Air, Macbook Pro, iMac, Mac mini….
Hình 1.1 Truy cập Store Mac OS
Tùy theo sở thích và nhu cầu, cũng như khả năng tài chính mà bạn lựa chọn cho
mình một chiếc máy thích hợp. Bạn có thể thanh toán cho Apple và đợi hàng được
chuyển về, hoặc tìm đến các trung tâm bán hàng của Apple ở gần nhà để mua. Hoặc bạn
cũng có thể truy cập vào địa chỉ www.apple.com/asia/reseller/ để tìm kiếm các địa điểm
bán hàng của Apple gần nhất. Ở Việt Nam, bạn hãy truy cập vào trang
4
www.icenter.com.vn để có thể nhanh chóng tìm được cửa hàng bán sản phẩm của Apple
gần nhất nơi bạn sống. Việc này giúp bạn có thể nhanh chóng có trong tay một sản phẩm
chính hãng Apple, thanh toán tiện lợi mà không phải tốn thời gian cho việc chuyển khoản
thanh toán cũng như chờ đợi vận chuyển sản phẩm từ nước ngoài về.
Nếu muốn tiết kiệm thêm chi phí bạn có thể truy cập
www.store.apple.com/us/browse/home/specialdeals/mac để tìm mua các giảm phẩm
Refurbished của Apple với mức giá thấp hơn.
Hình 1.2 Store Refurbished
Nếu bạn muốn mua máy chính hãng Apple với giá rẻ hơn nữa, thì việc mua lại sản
phẩm đã qua sử dụng là một gợi ý đáng cho bạn cân nhắc. Đối với việc mua lại máy đã
qua sử dụng bạn có thể vào một số trang mua bán có chất lượng để tìm mua sản phẩm phù
hợp với túi tiền. Chẳng hạn như các trang www.5giay.vn, www.nhattao.com ….. là các
trang với rất nhiều sự chọn, các dòng máy đa dạng cũng như mức tiền khác nhau, tùy theo
nhu cần và điều kiện cho phép mà bạn có thể tìm được một chiếc máy đúng ý mình.
5
Hình 1.3 Mua lại máy cũ
Nếu bạn lựa chọn mua máy cũ, phải lựa chọn thật kỹ lưỡng từ đời máy đến cấu hình, tốt
nhất nên chọn mua những máy sản xuất trong 1-2 năm gần nhất, đặc biệt bạn phải kiểm
tra xem máy mình muốn mua có hỗ trợ những phiên bản Mac OS nào. Vì sao phải như
vậy ? Bởi vì Xcode 5 chạy trên Mac OS 8 trở lên, nếu bạn chọn mua máy chỉ hỗ trợ Mac
OS 7 trở về trước, thì bạn không thể cài được Xcode 5 mà chỉ có thể sử dụng các phiên
bản thấp hơn.
1.1.3 Chạy Hệ Điều Hành Mac Os Trên Pc/Laptop Intel/Amd – Tại Sao Không?
Việc cài Mac OS lên chiếc PC hay laptop của bạn cũng là một phương pháp tốt để
vừa có được hệ điều hành Mac OS, vừa có thêm kinh nghiệm trong quá trình cài đặt, và
hơn nữa là tiết kiệm được chi phí. Có hai dạng cài đặt hackintosh là cài đặt từ một bản đã
được chỉnh sửa sẵn như iAtkos ( hỗ trợ dòng máy intel ) hay Niresh (hỗ trợ thêm dòng
máy AMD) và cài đặt từ đĩa gốc của Apple (Mac OS Retail) . Dạng cài đặt từ đĩa gốc của
Apple đòi hỏi bạn sau khi cài đặt phải tiến hành thêm nhiều thao tác khác để có thể có
6
được một hệ điều hành Mac OS hoàn thiện, còn đối với bản đã chỉnh sửa sẵn thì gần như
không điều chỉnh thêm nhiều.
Hình 1.4 iATKOS và Niresh
Bạn có hai phương án để lựa chọn nếu muốn chạy Mac OS lên máy của mình: tự cài
thủ công và thuê người cài đặt. Nếu bạn thuê người cài đặt, chi phí thường khoảng từ
100.000 vnđ đến 200.000 vnđ tùy theo yêu cầu cài đặt như thế nào.
Hình 1.5 Tìm kiếm “Cài đặt Mac OS cho PC/Laptop”
7
Với việc thuê người cài, bạn chỉ gần báo cấu hình máy cho người cài đặt để họ quyết
định và cho bạn lời khuyên. Bởi việc cài đặt Hackintosh phụ thuộc rất nhiều vào độ tương
thích phần cứng của thiết bị với hệ điều hành Mac OS, do đó không phải máy nào cũng có
thể cài được. Tuy nhiên phương án này giúp bạn đỡ vất vả hơn, cũng như tiết kiệm được
thời gian hơn.
Một phương án khác đó là bạn tự cài. Với cách lựa chọn này, bạn phải tìm hiểu về
Hackintosh, cũng như các lưu ý khi cài đặt, các lỗi xảy ra và cách khắc phục … Nếu bạn
lựa chọn cách này, bạn nên tìm hiểu một số diễn đàn, hội nhóm chuyên về Hackintosh để
có thêm kiến thức, kinh nghiệm và sự trợ giúp từ cộng đồng. Ở đây chúng tôi giới thiệu
cho bạn hai địa chỉ uy tín về Hackintosh:
- Chuyên Đề Hackintosh trên Tinh Tế ở địa chỉ: www.tinhte.vn/forums/chuyen-
de-hackintosh.361/
- Group Hackintosh – We Love Mac ở địa chỉ:
www.facebook.com/groups/hackintoshvietnam/
Tại đây bạn sẽ tìm được nhiều tài liệu hướng dẫn cũng như sự giúp đỡ tận tình của
mọi người, hi vọng bạn sẽ có một hệ điều hành Mac OS hoàn chỉnh.
Bạn có biết:
- Phần cứng của máy tính rất quan trọng khi quyết định cài Mac OS lên máy tính thông
thường vì không phải phần cứng nào cũng có thể tìm được Kext (Có thể hiểu giống như
Driver cho thiết bị trên hệ điều hành Windows.
- Card VGA Intel Graphic HD 4000 và Intel Graphic HD 3000 được Mac OS hỗ trợ Kext
rất tốt.
- Đa phần dòng HP Probook hỗ trợ tốt Hackintosh.
1.2 PHẦN MỀM XCODE
Sau khi bạn đã có được hệ điều hành Mac OS, việc tiếp theo bạn phải làm trước khi
có thể bắt đầu lập trình ứng dụng iPhone là cài bộ công cụ lập trình Xcode do Apple cung
8
cấp cho các nhà lập trình ứng dụng, để các nhà lập trình có thể phát triển ứng dụng cho cả
iOS lẫn Mac OS. Việc cài đặt Xcode có nhiều cách, tùy theo bạn chọn lựa cách nào phù
hợp với bản thân.
1.2.1 Cài Đặt Thông Qua Bản Tải Về Từ Trang Dành Cho Developer
Bạn truy cập vào trang www.developer.apple.com để tiến hành tải phiên bản Xcode
mới nhất ( hoặc các phiên bản khác tùy theo nhu cầu của bạn).
Hình 1.6 Tải Xcode từ trang Developer
Tiếp theo bạn lựa chọn View Download.
9
Hình 1.7 Chọn View Download
Apple sẽ yêu cầu bạn đăng nhập tài khoản Developer ID để tiếp tục.
Hình 1.8 Đăng nhập Developer ID
Sau khi bạn đăng nhập bằng tài khoản Developer xong, thực hiện theo hướng dẫn,
bạn sẽ tải về được phần mềm Xcode và tiến hành cài đặt trên máy.
10
Với tài khoản Developer ID với giá 99$ / năm, bạn sẽ luôn được Apple cập nhật thông tin
công nghệ mới, cũng như hỗ trợ, sử dụng trước các phiên bản mới của Apple như các bản
preview iOS, Mac OS, Xcode…
1.2.2 Cài Đặt Thông Qua Apple Mac Store
Đây là cách phổ biến nhất, vì việc tải Xcode trên Apple Store là miễn phí, và chỉ cần
bạn có một tài khoản Apple ID là được, không yêu cầu phải là Developer ID.
Bạn chỉ cần truy cập vào Apple Mac Store và tìm kiếm Xcode, bạn sẽ thấy kết quả
là phần mềm Xcode Free, công việc bây giờ là bạn chỉ cần Install và chờ đợi hoàn tất.
Hình 1.9 Cài đặt Xcode qua Apple Mac Store
11
Trong App Store bạn cũng có thể tìm được nhiều giáo trình, bài giảng về lập trình
ứng dụng bằng Xcode.
1.2.3 Cài Đặt Từ Bản Xcode Được Chia Sẻ Trên Internet
Đối với cách cài đặt này, bạn chỉ cần truy cập internet và tìm bản cài đặt Xcode
được chia sẻ trên mạng và tải về cài đặt trên máy của bạn. Tuy nhiên bạn sẽ mất thời gian
để tìm kiếm trên internet để tìm được bản cài đặt vừa ý, tốc độ tải tốt nhất.
CHƯƠNG II
TÌM HIỂU XCODE VÀ IOS SIMULATOR
Chương này sẽ mang đến cho bạn kiến thức về bộ công cụ Xcode cũng như công cụ
giả lập hệ điều hành iOS là iOS Simulator. Qua những kiến thức được cung cấp, bạn sẽ
nắm rõ về giao diện, một số tính năng, các button và công dụng của nó trên Xcode và iOS
Simulator. Ngoài ra, bạn sẽ được hướng dẫn một số thao tác cơ bản khi sử dụng Xcode,
iOS Simulator từ đó bạn sẽ dễ dàng hơn trong việc sử dụng bộ công cụ này trong quá
trình lập trình ứng dụng iPhone về sau.
13
2.1 TÌM HIỂU XCODE 5
2.1.1 Giới Thiệu Về Xcode 5
Phần mềm Xcode là bộ công cụ do Apple cung cấp cho các lập trình viên để lập
trình ứng dụng cho các thiết bị chạy hệ điều hành của Apple. Phiên bản mới nhất hiện nay
của Xcode là bản Xcode 5 trên trang Developer của Apple.
Hình 2.1 Phiên bản Xcode 5 trên trang Apple
Giao diện làm việc của Xcode gồm có 5 phần chính : Toolbar, Editor area,
Navigator area, Debug area, Utility area.
- Debug area : đây là vùng hỗ trợ bạn trong quá trình debug lỗi của chương
trình.
- Toolbar area: vùng chứa các công cụ tiện ích giúp bạn có thể đơn giản trong
việc chạy, debug ứng dụng, lựa chọn iOS Simulator, đóng mở các vùng khác…
- Editor area: vùng để bạn thiết kế giao diện, viết và chỉnh sửa code của
chương trình.
- Utility area: vùng này cho phép bạn tùy chỉnh các tham số, giá trị của các đối
tượng trên giao diện, cũng như cho phép bạn kéo thả và sử dụng các đối tượng
14
có sẵn của Xcode như Button, Label, Slider… hay các đoạn code mẫu ( If,
Switch…).
- Navigator area: cung cấp cho bạn một cách nhìn trực quan, tiện lợi cho việc
quản lý ứng dụng, xem thông báo lỗi, tìm kiếm một đoạn code trong chương
trình hay kiểm tra mức độ hoạt động của RAM, CPU khi chạy ứng dụng…
Hình 2.2 Giao diện Xcode
Xcode cũng cung cấp cho bạn một chế độ gỡ lỗi thông minh hỗ trợ bạn trong việc
phát hiện lỗi, cảnh báo lỗi và gợi ý thay thế khắc phục
15
Hình 2.3 Chế độ gỡ lỗi
Hơn thế nữa, kèm theo Xcode là một bộ tài liệu hướng dẫn từng bước, chi tiết và
tiện lợi nhằm hỗ trợ người dùng trong việc lập trình. Trong quá trình viết ứng dụng, nếu
bạn muốn tìm hiểu thêm một đối tượng, bạn có thể sử dụng tới bộ tài liệu này để có được
hướng dẫn, ví dụ minh họa dễ hiểu.
Hình 2.4 Tài liệu hướng dẫn
16
Bạn có thể xem thêm tài liệu về Xcode do Apple cung cấp tại:
https://developer.apple.com/library/ios/documentation/ToolsLanguages/Conceptual/Xcod
e_Overview/About_Xcode/about.html
2.1.2 Thao Tác Tạo Ứng Dụng Mới
Khi khởi động Xcode lên, giao diện hiện ra cho phép bạn tạo một project mới,
hoặc mở lại các project gần đây.
Hình 2.5 Giao diện Xcode khi mở lên
Tại giao diện Xcode, bạn có thể tạo mới một project bằng cách chọn Create new
project. Ngoài ra bạn có thể tạo project mới bằng cách chọn File > New > Project.
17
Hình 2.6 Tạo mới Project bằng Menu
Sau khi chọn New Project, Xcode sẽ yêu cầu bạn lựa chọn một hình thức cho Project
này (ứng dụng cho iPhone hay Mac OS, Single View hay Empty View…). Cách đơn giản
nhất là bạn chọn Single View.
Hình 2.7 Chọn lựa mẫu cho project
18
Tiếp theo đó bạn điền thêm một vài thuộc tính của Project như Product Name,
Organization Name, Company Identifer. Sau đó bạn tiến hành lựa chọn Devices cho
Project (iPhone, iPad hay Universal để viết ứng dụng cho cả hai).
Hình 2.8 Điền thông tin cho project
Tiếp theo bạn chọn nơi lưu trữ Project trên máy tính để lưu Project và chọn Create.
19
Hình 2.9 Chọn nơi lưu Project
Như vậy bạn đã tạo xong một Project mới.
Hình 2.10 Giao diện project mới tạo
20
2.1.3 Tìm Hiểu Giao Diện Xcode Và Một Số Tính Năng
2.1.3.1 Navigator Area
Navigator area cho phép bạn quản lý ứng dụng hiệu quả như quản lý các tập tin,
thư mục, quản lý các thông báo lỗi và cảnh báo, quản lý việc debug…Có thể chia
Navigator area thành hai phần chính là Navigator selector bar và Content area.
Hình 2.11 Giao diện Navigator
Trong Navigator selector bar gồm một số button chính sau:
- Project Navigator ( ): dùng để quản lý các tập tin của ứng dụng như thêm,
xóa, gom nhóm…Các tập tin quản lý sẽ được thể hiện trong Content area.
21
- Find Navigator ( ): sử dụng để tìm kiếm một cách nhanh chóng các string
trong ứng dụng, tìm kiếm nội dung mở rộng.
- Issue Navigator ( ): quản lý các thông báo lỗi, cảnh báo của ứng dụng.
- Debug Navigator( ): theo dõi quá trình debug ứng dụng.
2.1.3.2 Editor Area
Editor area cho phép bạn thiết kế giao diện, viết và sửa code cho ứng dụng. Khi
bạn chọn tập tin storyboard bên Content area thì Editor area sẽ hiển thị giao diện
Interface Builder cho bạn thiết kế giao diện. Tương tự với tập tin .m và .h thì Editor area
sẽ hiển thị nội dung code của tập tin.
Hình 2.12 Giao diện ứng dụng
22
Hình 2.13 Giao diện code
Editor area còn cho phép bạn quản lý các đối tượng trong giao diện một cách chi
tiết hơn. Trong phần Interface Builder, bạn chọn button Show Document Outline (
) bên góc trái màn hình, bạn sẽ thấy được một vùng quản lý phân cấp các đối
tượng.
23
Hình 2.14 Giao diện quản lý chi tiết
2.1.3.3 Toolbar Area
Toolbar cho phép thực hiện một số thao tác một cách nhanh chóng thông qua các
Button mà không cần phải dùng tới Menu. Toolbar gồm một số thành phần sau:
- Run button ( ): dùng để chạy thử ứng dụng.
- Stop button ( ): dùng để dừng việc chạy thử ứng dụng.
- Scheme menu ( ): dùng để lựa chọn iOS Simulator
thích hợp để chạy ứng dụng.
- Activity viewer: thông báo trạng thái của ứng dụng, cũng như hiện các trạng
thái lỗi, cảnh báo của chương trình (nếu có).
Hình 2.15 Activity viewer
24
- Editor selector ( ): gồm các button dùng để điều chỉnh Editor area
(cho phép chia đôi Editor area ra làm hai hay chỉ là một vùng duy nhất…).
- View selector ( ): dùng để ẩn/hiện các vùng Navigator area, Utility
area, Debug area.
Hình 2.16 Toolbar area
2.1.3.4 Utility Area
Utility area được sử dụng để thay đổi các thuộc tính của đối tượng bên Interface
Builder, ngoài ra còn được sử dụng để lựa chọn và kéo thả các đối tượng, đoạn code mẫu
vào Interface Buider và Editor.
Utility area được chia làm 2 vùng chính là Inspector và Library. Inspector pane là
vùng cho phép bạn có sự thay đổi thuộc tính của đối tượng. Trên đầu của Inspector pane
là Inspector selector bar bao gồm các button hỗ trợ bạn trong việc điều chỉnh thuộc tính.
Trên đầu của Libarary pane là Libaray selector bar bao gồm các button để bạn có thể
chọn lựa phù hợp trong việc sử dụng các đoạn code mẫu, các đối tượng.
25
Hình 2.17 Utility area
Trong Inspector selector bar, có hai button bạn cần lưu ý là Attribute ( ) và
Quick Help ( ). Quick Help cho phép bạn tra cứu một cách nhanh chóng các đối tượng,
hàm trong tài liệu kèm theo của Xcode. Attribute cho phép bạn thay đổi các thuộc tính
của đối tượng.
Trong Library selector bar, có một số button quan trọng là Code snippets ( ),
Objects ( ). Code snippets hiển thị cho bạn danh sách các đoạn code mẫu để bạn lựa
chọn sử dụng trong quá trình viết ứng dụng. Objects hiển thị các đối tượng của Xcode cho
bạn sử dụng thiết kế giao diện ứng dụng.
26
2.1.4 Thiết Kế Giao Diện
Giao diện ứng dụng trong Xcode được thiết kế thông qua Interface Builder, các đối
tượng của Interface Builder được cung cấp trong Utility area. Để tiến hành thiết kế giao
diện, bạn kéo thả đối tượng trong Utility area vào Interface Builder.
Hình 2.18 Kéo thả các đối tượng vào giao diện
Tại đây bạn có thể điều chỉnh, sắp xếp vị trí của các đối tượng theo ý tưởng thiết kế
của bạn. Trong Xcode, tập tin bạn dùng để thiết kế giao diện là tập tin .storyboard.
Khi kéo thả các đối tượng vào Interface Builder, bạn sẽ dễ dàng xác định vị trí đặt
đối tượng sao cho giao diện cân đối, không bị hiện tượng lệch khi Run ứng dụng. Đó là
nhờ vào tính năng hỗ trợ canh chỉnh của Xcode thông qua các đường kẻ đứt nét màu
xanh.
27
Hình 2.19 Canh chỉnh vị trí theo đường kẻ xanh
Bạn có thể điều chỉnh các thuộc tính của các đối tượng trong Interface Builder thông
qua vùng Inspector pane.
28
Hình 2.20 Thay đổi thuộc tính của đối tượng
Để tìm kiếm đối tượng một cách nhanh chóng, bạn sử dụng công cụ tìm kiếm trong
Library pane.
Hình 2.21 Tìm kiếm trong Library
29
Hơn nữa, nếu bạn muốn tìm hiểu rõ hơn về đối tượng đó, xem ví dụ cụ thể minh
họa, bạn có thể sử dụng đến bộ tài liệu hỗ trợ của Xcode.
Hình 2.22 Xem tài liệu hỗ trợ của đối tượng
2.1.5 Viết Code
Phần code của ứng dụng thường được viết trong hai tập tin là .h và .m. Tập tin .h
thường được sử dụng để kết nối và khai báo các đối tượng của Interface Builder trước khi
muốn sử dụng các đối tượng này để lập trình. Ngoài ra tập tin .h còn dùng để khai báo các
hàm sự kiện trước khi sử dụng trong tập tin .m. Tập tin .m dùng để triển khai các hàm sự
kiện mà bạn đã khai báo bên tập tin .h.
30
Hình 2.23 Hai tập tin sử dụng để viết code cho ứng dụng
Để kết nối đối tượng trong Interface Builder vào tập tin .h (ánh xạ), bạn nhấn kết
hợp Ctrl + nhấp chuột vào đối tượng và kéo thả vào tập tin .h.
Hình 2.24 Ánh xạ đối tượng vào tập tin .h
31
Khi hộp thoại hiện ra, bạn lựa chọn loại kết nối cho đối tượng là Action hoặc
Outlet. Hiểu một cách đơn giản, đối tượng nào mà bạn sử dụng để hiển thị thông tin ra
bên ngoài thì thuộc loại Outlet. Đối tượng nào mà bạn muốn viết code để khi tương tác
với đối tượng đó sẽ cho ra kết quả mà bạn muốn ( ví dụ bạn muốn nhấn vào Button sẽ
hiện “Hello World” ) thì bạn sẽ chọn loại là Action. Một đối tượng có thể vừa là Action,
vừa là Outlet tùy vào người viết ứng dụng quy định.
Hình 2.25 Lựa chọn kiểu ánh xạ
Khi bạn viết code, Xcode hỗ trợ bạn trong việc phát hiện lỗi và thông báo cho bạn
bằng hình tròn màu đỏ chứa dấu chấm than tại vị trí phát hiện lỗi. Ngoài ra Xcode cũng
có chế độ cảnh báo bằng tam giác màu vàng cho đoạn code mà Xcode cho rằng cần cải
thiện để bạn kịp thời kiểm tra lại và chỉnh sửa cho hiệu quả ( nếu cần ).
Xcode còn hỗ trợ bạn một chế độ gợi ý sửa lỗi trong quá trình viết code. Ví dụ bạn
viết code nhưng quên dấu “;” , Xcode sẽ gợi ý cho bạn có dấu “;” để hoàn tất đoạn code
hoàn chỉnh.
32
Hình 2.26 Gợi ý khắc phục lỗi
Xcode chỉ hỗ trợ khắc phục một số lỗi cơ bản về cú pháp, các lỗi liên quan khác trong quá
trình viết code các bạn phải tự giải quyết
Trong Library pane, Xcode hỗ trợ sẵn cho bạn một số đoạn code mẫu trong thư viện,
nếu bạn cần xài đoạn code nào, bạn chỉ cần kéo thả đoạn code đó từ Library pane sang
Editor area.
Hình 2.27 Một số code mẫu để sử dụng
33
Nếu bạn có một đoạn code, bạn muốn lưu nó lại để lần sau sử dụng thì bạn chỉ cần chọn
đoạn code đó và kéo thả vào Library pane, đặt tên cho đoạn code đó và lưu lại. Như vậy
lần sau bạn muốn sử dụng lại, chỉ việc kéo thả từ Library sang là được.
Để thuận tiện cho việc viết code nhanh chóng, bạn có thể bật chế độ chia đôi vùng
Editor area làm hai, lúc này bạn có thể xem cùng lúc cả tập tin .h lẫn tập tin .m. Muốn
thực hiện điều đó, trong Toolbar, bạn nhấp chuột vào nút Assistant Editor Button ( ).
Hình 2.28 Chia đôi màn hình Editor để tiện làm việc
Bạn có thể tùy chỉnh lại font và màu chữ để tạo nên một sự thay đổi, tạo thêm cảm
hứng mới. Bạn chọn Xcode > chọn Preferences > chọn Fonts & Colors, sau đó bạn tùy
chọn một định dạng mình thích.
34
Hình 2.29 Tùy chỉnh Font & Color cho giao diện lập trình code của Xcode
Trong quá trình viết chương trình, bạn cũng có thể sử dụng nút Quick Help trong
Utility area để mở tài liệu tham khảo và tra cứu các hàm cũng như xem ví dụ minh họa
cho các hàm.
2.1.6 Thực Thi Và Kiểm Tra Lỗi Của Ứng Dụng
2.1.6.1 Thực Thi Ứng Dụng
Khi bạn muốn chạy thử và đưa ứng dụng lên iOS Simulator, bạn sử dụng các button
chuyên dụng trên Toolbar. Để chạy ứng dụng, trước tiên bạn phải chọn lựa thiết bị mà bạn
muốn chạy ứng dụng lên đó. Bạn có thể chọn chạy lên thiết bị thật hoặc trên iOS
Simulator. Trong iOS Simulator, tùy theo ứng dụng của bạn viết cho thiết bị nào mà lựa
chọn thiết bị đó, ví dụ iPad, iPhone, iPhone Rentina…
35
Hình 2.30 Lựa chọn thiết bị iOS Simulator
Sau khi chọn lựa xong phần thiết bị, bạn nhấn Run để chạy chương trình. Nếu muốn
dừng chương trình, bạn nhấn Stop.
Hình 2.31 Nhấn Stop để dừng chương trình
36
2.1.6.2 Kiểm Tra Lỗi Của Ứng Dụng
Vùng Debug area hỗ trợ bạn debug ứng dụng để kiểm tra từng bước, ngoài ra còn có
vùng Debug Navigator cho phép bạn theo dõi các tiến trình, cũng như việc sử dụng RAM,
CPU.
Hình 2.32 Vùng Debug Navigator
Trong Debug area có các nút hỗ trợ như bật tắt các Breakpoint, nhóm nút hỗ trợ thực
thi ứng dụng từng bước hỗ trợ bạn debug một cách chính xác hơn.
Hình 2.33 Vùng Debug area
Để đánh dấu breakpoint, bạn chọn vị trí cần đánh dấu, và nhấp chuột vào
Breakpoint gutter tương đương với vị trí đó.
37
Hình 2.34 Đánh dấu Breakpoint
Ngoài ra nếu bạn muốn thu gọn 1 đoạn code nào đó, bạn có thể sử dụng thanh đứng
hỗ trợ bên cạnh thanh đứng đặt Breakpoint.
Hình 2.35 Thu gọn đoạn code cho dễ nhìn
38
2.2 TÌM HIỂU IOS SIMULATOR
2.2.1 Giới Thiệu iOS Simulator
iOS Simulator là một phần trong bộ công cụ kèm theo của phần mềm Xcode. iOS
Simulator chứa iOS SDK cho phép bạn chạy trên Mac OS để giả lập môi trường iPhone,
iPad nhằm phục vụ cho việc kiểm thử ứng dụng được viết ra trước khi kiểm thử ứng dụng
trên thiết bị thật.
iOS Simualtor cho phép bạn cài đặt nhiều thiết bị iOS khác nhau như iPhone,
iPhone Rentina, iPad, iPad Rentina.. với nhiều phiên bản iOS khác nhau như 6.0, 6.1,
7.0…. Do đó bạn có thể dễ dàng xây dựng ứng dụng của mình dành cho phiên bản iOS
mới hoặc dùng cho cả phiên bản iOS cũ.
Với iOS Simulator, bạn có thể kiểm thử ứng dụng của bạn về thiết kế giao diện, về
tính năng của ứng dụng, từ đó có thể khắc phục các lỗi phát sinh, tối ưu hóa ứng dụng
trước khi bạn đem ứng dụng lên thiết bị thật.
Bạn có thể đọc thêm tài liệu iOS Simulator User Guide trên iOS Developer Library để tìm
hiểu thêm, cũng như có thêm kinh nghiệm sử dụng iOS Simulator.
Xem tại :
https://developer.apple.com/library/ios/documentation/IDEs/Conceptual/iOS_Simulator_
Guide/Introduction/Introduction.html
2.2.2 Tìm Hiểu iOS Simulator
Ứng dụng iOS Simulator có thể chạy chung với phần mềm Xcode hoặc chạy độc lập
đều được. Bạn có thể tương tác với iOS Simulator thông qua bàn phím, chuột để nhập dữ
liệu cũng như điều khiển các sự kiện của người dùng.
Phần này sẽ giúp bạn tìm hiểu một số điểm cơ bản của iOS Simulator để hỗ trợ bạn
tốt hơn trong quá trình viết ứng dụng cho iOS.
39
2.2.2.1 Thao Tác Cơ Bản Với IOS Simulator
Thao tác mở và thoát ios simulator
Để mở iOS Simulator bạn có hai cách. Một là bạn chạy ứng dụng trong Xcode để
khởi động iOS Simulator. Với cách này bạn chỉ cần chọn iOS Simulator phù hợp rồi
chọn Run.
Hình 2.36 Chọn Run để mở iOS Simulator
Cách thứ hai là bạn chọn menu Xcode > chọn Open Develop Tool > iOS
Simulator. Khi ấy iOS Simulator sẽ được khởi động.
40
Hình 2.37 Mở iOS Simulator trong Menu
Mặc dù là một phần trong bộ công cụ của Xcode, nhưng iOS Simulator vẫn có thể
tiếp tục hoạt động dù Xcode có bị đóng chương trình. Do đó nếu bạn muốn thoát hẳn iOS
Simulator, bạn chọn menu iOS Simulator > chọn Quit iOS Simulator.
Hình 2.38 Trong menu chọn Quit iOS Simulator
41
Xoay màn hình iOS Simulator
Trong quá trình chạy ứng dụng trên iOS Simulator để kiểm thử, đôi lúc bạn cần sử
dụng tới chức năng xoay màn hình để có thể kiểm tra tính tương thích của ứng dụng với
từng kiểu màn hình ( ngang, đứng…) hoặc để phù hợp với ứng dụng của bạn ( chẳng hạn
viết ứng dụng sử dụng màn hình ngang). Nếu là thiết bị thật, thật dễ dàng để bạn có thể
xoay màn hình cho phù hợp. Tuy nhiên với iOS Simulator, bạn cần phải sử dụng đến chức
năng xoay màn hình được hỗ trợ sẵn để có thể xoay màn hình theo ý muốn.
Bạn có thể vào menu Hardware > chọn Rotate Left nếu bạn muốn xoay qua trái ;
chọn Rotate Right nếu bạn muốn xoay qua phải ; chọn Shake Gesture nếu bạn muốn
rung nhẹ.
Hình 2.39 Trong menu chọn xoay màn hình iOS Simulator
Ẩn/hiện keyboard
Trong quá trình kiểm thử ứng dụng, nhiều trường hợp bạn cần sử dụng đến bàn
phím của iOS, hoặc sau khi nhập liệu xong trong TextField nhưng ứng dụng của bạn chưa
có chức năng ẩn bàn phím đi, lúc đó bạn cần sử dụng đến tính năng Keyboard của iOS
Simulator để ẩn/hiện bàn phím. Bạn có thể vào menu Hardware > chọn Simulate
Hardware Keyboard.
42
Hình 2.40 Ẩn/Hiện keyboard trong iOS Simulator
Cài đặt và gỡ bỏ ứng dụng trên iOS Simulator
Ứng dụng trong iOS Simulator được cài đặt thông qua Xcode. Khi bạn chạy ứng
dụng bằng Xcode thì Xcode sẽ cài đặt ứng dụng đó vào iOS Simulator. Cách thức gỡ bỏ
ứng dụng cũng giống như trên thiết bị iOS thật. Bạn chỉ cần nhấp và giữ chuột ( hoặc
trackpad ) trên biểu tượng của ứng dụng cho đến khi xuất hiện biểu tượng dấu x, bạn chỉ
cần nhấp vào dấu x để gỡ bỏ ứng dụng. Sau khi hoàn tất chỉ cần ấn Home để trở lại ban
đầu.
43
Hình 2.41 Gỡ ứng dụng trong iOS Simulator
Bổ sung thêm các phiên bản ios và các thiết bị ios
iOS Simulator cho phép bạn có thể chạy ứng dụng trên nhiều loại thiết bị như
iPhone, iPhone Rentina, iPad, iPad Rentina. Đồng thời, iOS Simulator cũng cho phép bạn
sử dụng nhiều phiên bản khác nhau của iOS như iOS 6.0, iOS 6.1, iOS 7.0.
Mặc định sau khi cài Xcode 5, iOS Simulator kèm theo đã được cài đặt để hỗ trợ các
thiết bị iPhone Rentina, iPad Rentina và iOS 7.0. Nếu bạn muốn iOS Simulator chạy các
thiết bị iPhone, iPad thông thường và các phiên bản iOS thấp hơn như iOS 6.0, iOS 6.1
thì bạn cần phải tải và cài đặt thêm. Bạn vào Xcode > chọn Preferences > chọn mục
Download. Tại đây bạn lựa chọn phiên bản iOS cần cài đặt thêm và tải về.
44
Hình 2.42 Tải thêm các iOS Simulator phiên bản cũ hoặc tài liệu
Chụp ảnh màn hình iOS Simulator
Nếu bạn muốn chụp ảnh màn hình của iOS Simulator, bạn có thể lưu lại ảnh chụp
màn hình của iOS Simulator lên màn hình của Mac OS. Để làm việc đó, bạn chọn File >
chọn Save Screen Shot, khi đó ảnh chụp màn hình sẽ được lưu trên màn hình Mac OS.
Hình 2.43 Chụp ảnh màn hình iOS Simulator
45
Copy - Paste trong iOS Simulator
Trong iOS Simulator cũng hỗ trợ bạn Copy và Paste một chuỗi.
Để Copy một chuỗi, bạn nhấp chuột vào chuỗi để hiển thị ra nút Select và Select
All .Chọn Select nếu bạn muốn lựa chọn một từ nào đó, hoặc Select All nếu muốn chọn
tất cả.
Hình 2.44 Chọn Select hoặc Select All
Di chuyển điểm đầu và điểm cuối để đánh dấu lại chuỗi cần chọn > chọn Copy
46
Hình 2.45 Lựa chọn chuỗi cần copy và chọn Copy
Để Paste một chuỗi vào iOS Simulator, trước tiên bạn chọn Edit > Paste để chuyển
chuỗi được copy từ Mac vào iOS Simulator.
Hình 2.46 Paste từ Mac OS vào iOS Simulator
47
Sau đó chọn vị trí muốn Paste chuỗi trong iOS Simulator > Double-click vào vị trí
đó để hiện ra nút Paste > chọn Paste.
Hình 2.47 Chọn Paste
2.2.2.2 Một Số Hạn Chế Của iOS Simulator
Mặc dù iOS Simulator rất hữu ích cho bạn kiểm thử ứng dụng trước khi đưa lên thiết
bị thật, tuy nhiên bản thân iOS Simulator vẫn còn một số hạn chế nhất định. Đối với phần
cứng, iOS Simulator vẫn còn khiếm khuyết ở một số điểm như không có camera, không
có microphone… Ngoài ra còn một số framework không được hỗ trợ như Media
player, Messenger UI … Nếu như ở các phiên bản trước của Xcode, iOS Simulator còn
hỗ trợ được với các phiên bản của iOS thấp hơn như iOS thì trong phiên bản này, iOS
Simulator chỉ hỗ trợ từ phiên bản iOS 6.0 trở lên.
CHƯƠNG III
NGÔN NGỮ OBJECTIVE-C
Mặc dù Xcode hỗ trợ nhiều ngôn ngữ trong việc lập trình ứng dụng trong iPhone, nhưng
đóng vai trò chủ yếu nhất vẫn là ngôn ngữ Objective-C bởi sự thân thiện, dễ sử dụng của
nó. Chương này sẽ hướng dẫn bạn một số nét cơ bản của ngôn ngữ lập trình Objective-C
với hi vọng bạn sẽ nắm được sơ lược cách sử dụng, cú pháp của ngôn ngữ này để thuận
tiện hơn trong việc xây dựng ứng dụng. Nội dung chương sẽ trình bày sơ lược một số vấn
đề sau của ngôn ngữ Objective-C:
 Khai báo biến
 Kiểu dữ liệu
 Các phép toán
 Hàm (Function)
 Cấu trúc điều kiện
 Cấu trúc lặp
 Mảng
 Chuỗi
49
3.1 GIỚI THIỆU NGÔN NGỮ OBJECTIVED-C
Ngôn ngữ Objective-C được tạo ra bởi Brad Cox và Tom Love vào năm 1980 tại
công ty Stepstone. Từ năm 1988, công ty NeXT Sofware nắm giữ bản quyền của ngôn
ngữ Objective-C. Họ đã phát triển các bộ thư viện và cả môi trường phát triển cho nó có
tên là NEXTSTEP.
Đến cuối tháng 12 năm 1996, hãng Apple đã mua lại công ty NeXT Software, môi
trường NEXTSTEP/OPENSTEP đã trở thành phần cốt lõi của hệ điều hành OS X mà
Apple giới thiệu sau này. Phiên bản chính thức của môi trường phát triển này do Apple
giới thiệu ban đầu có tên là Cocoa.
Bằng việc hỗ trợ sẵn ngôn ngữ Objective-C, đồng thời tích hợp một số công cụ phát
triển khác như Project Builder (đây là tiền thân của Xcode) và Interface Builder, Apple đã
tạo ra một môi trường mạnh mẽ để phát triển ứng dụng trên Mac OS X. Đến năm 2007,
Apple tung ra bản nâng cấp cho ngôn ngữ Objective-C và gọi đó là Objective-C 2.0.
Ngôn ngữ lập trình Objective-C dựa trên nền tảng ngôn ngữ C nhưng bổ sung thêm
hỗ trợ lập trình hướng đối tượng. Objective-C là ngôn ngữ lập trình sử dụng để viết ứng
dụng cho Apple’s iOS và hệ điều hành Mac OS.
3.2 KHAI BÁO BIẾN - CÁCH SỬ DỤNG
3.2.1 Biến
Biến được sử dụng để lưu trữ các giá trị của ứng dụng. Biến gồm có: kiểu dữ liệu,
tên biến và giá trị của biến. Cú pháp:
Kiểu_dữ_liệu tên_biến ;
hoặc
Kiểu_dữ_liệu tên_biến = giá_trị_của_biến;
Trong đó “=”: lệnh gán giá trị cho biến
VD: int x ; hoặc int x = 10;
50
3.2.2 Quy Tắc Đặt Tên
Quy tắc đặt tên biến:
- Ngôn ngữ Objective-C có phân biệt hoa thường.
- Tên biến không có dấu tiếng việt.
- Tên biến không có khoảng trắng.
- Tên biến không được bắt đầu bằng số.
- Tên biến không được có các ký tự đặc biệt (ngoại trừ dấu gạch dưới _)
- Tên biến không được đặt trùng với các từ khoá của ngôn ngữ objective-C. VD:
void, if, static, ...
3.3 KIỂU DỮ LIỆU
Kiểu dữ liệu sẽ giúp trình biên dịch xác định được loại dữ liệu (số nguyên, số thực,
chuỗi,…) mà chúng ta muốn lưu trữ là gì từ đó sẽ cấp phát lượng bộ nhớ tương ứng với
loại dữ liệu mà chúng ta cần lưu trữ. Objective-C hỗ trợ các kiểu dữ liệu cơ bản như sau:
Loại dữ liệu Tên kiểu Số ô nhớ Miền giá trị
Kí tự char 1 byte -128 .. 127
unsigned char 1 byte 0 .. 255
Số nguyên int 4 bytes - 2147483648 .. 2147483647
unsigned int 4 bytes 0 .. 4294967295
short 2 bytes -32768 .. 32767
unsigned short 2 bytes 0 .. 65535
long 4 bytes -2147483648 .. 2147483647
unsigned long 4 bytes 0 .. 4294967295
long long 8 bytes -9,223,372,036,854,775,808 ..
51
9,223,372,036,854,775,807
unsigned long long 8 bytes 0 .. 18,446,744,073,709,551,615
Số thực float 4 bytes 0 .. 3.4028235e+38
double 8 bytes 0 .. 1.7976931E+308
Long double 16 bytes 0 .. 1.1897315E+509
Logic BOOL 1 bytes 0, 1; True, False; Yes, No
Bảng 3.1 Kiểu dữ liệu trong Objectived-C
3.4 PHÉP TOÁN
Phép toán Ký hiệu Ví dụ
Cộng + A + B
Trừ - A – B
Nhân * A * B
Chia / A / B
Lấy phần dư % M % N
Bảng 3.2 Các phép toán trong Objectived-C
Lưu ý: phép lấy phần dư chỉ được dùng trên 2 toán hạng kiểu số nguyên (nếu không
sẽ sinh lỗi cú pháp)
Ví dụ: 9 % 5 = 4
3.5 CHÚ THÍCH CODE
Chú thích một dòng code
52
//ghi chú chỉ trên 1 dòng
Chú thích một đoạn code
/*
Ghi chú trên 1
hay nhiều dòng
*/
3.6 XUẤT DỮ LIỆU RA MÀN HÌNH
Hàm NSLog là hàm đặc biệt của hệ thống, hàm này được thiết kế dùng cho việc
hiển thị các thông báo lỗi.
Cú pháp:
NSLog(“Nội dung in” [ , các_biểu_thức]);
“Nội dung in” Ví dụ
Các ký tự cần in LacHong University
Các ký tự đặc biệt bắt đầu bởi dấu  n : xuống dòng;
t : ký tự Tab;
 : ký tự 
; : ký tự ;
” : dấu “
Các mã định dạng giá trị của biểu thức %mã_kiểu_dữ_liệu
(kiểu float là f; kiểu int là d hay i)
Bảng 3.3 Ví dụ các kiểu xuất dữ liệu ra màn hình
VD: Dùng hàm NSLog để hiển thị chuỗi “LacHong University”
53
Hình 3.1 Code sử dụng hàm NSLog()
Kết quả hiển thị:
Hình 3.2 Kết quả in ra màn hình
Ghi chú: @”…”: bên trong cặp nháy đôi là chuỗi cần lưu log để kiểm tra.
Hình 3.3 Dùng NSLog() xuất ra màn hình một số.
Kết quả hiển thị:
Hình 3.4 Kết quả xuất ra chữ và số
54
3.7 FUNCTION
3.7.1 Định Nghĩa
Function Là tập hợp các dòng code, gom thành 1 khối. Khối code này được đặt tên.+
Khối code này chỉ được thực thi khi tên khối code được gọi.
3.7.2 Phương Thức Không Có Tham Số Truyền Vào
Khai báo:
- (kiểu_hàm) tên_hàm
{
//các câu lệnh
[return [biểu_thức];]
}
Trong đó:
- Dấu “-“ đại diện cho loại phương thức mà ta phải gọi nó thống qua đối tượng
của lớp chứa đựng phương thức đó.
- Kiểu hàm: là kiểu của <biểu thức> trong lệnh return.
- Tên hàm: do chúng ta tự nghĩ ra
VD:
Hình 3.5 Hàm HelloWorld
Gọi hàm:
55
Hình 3.6 Xuất ra màn hình HelloWorld
Trong đó self là lớp hiện tại có chứa phương thức “helloWorld”.
3.7.3 Phương Thức Có 1 Tham Số Truyền Vào
Khai báo:
- (kiểu_hàm) tên_hàm : (kiểu_dữ_liệu)tên_tham_số
{
//các câu lệnh
[return [biểu_thức];]
}
VD:
Hình 3.7 Hàm HelloWorld với tham số truyền vào
Gọi hàm:
Hình 3.8 Gọi hàm HelloWorld
3.7.4 Phương Thức Có Nhiều Tham Số Truyền Vào
Khai báo:
56
- (kiểu_hàm) tên_hàm : (kiểu_dữ_liệu)tham_số_1 [mô_tả]: (kiểu_dữ_liệu)tham_số_2
{
//các câu lệnh
[return [biểu_thức];]
}
Trong đó
- dấu hai chấm “:” được dùng để ngăn cách giữa các “tham_số”.
- [mô_tả]: có thể có hoặc không, dùng để mô tả cho tên tham số.
VD:
Hình 3.9 Hàm cộng hai số
Trong đó
- a: là tham số thứ 1.
- b: là tham số thứ 2.
Gọi hàm:
Hình 3.10 In kết quả hàm cộng
Trong đó 1 và 2 là các đối số được truyền vào hàm “congHaiSo”.
57
3.8 CẤU TRÚC ĐIỀU KIỆN
3.8.1 Câu Lệnh If
Cú pháp
if ( điều_kiện )
{
//Công việc 1
}
Lưu ý: điều kiện là một câu hỏi mà câu trả lời là YES hoặc NO, “Công việc 1” sẽ
được thực hiện nếu điều kiện là YES.
Ví dụ:
- if (a > b) a có lớn hơn b không?
- if (a >= b) a có lớn hơn hoặc bằng b không?
- if (a < b) a có nhỏ hơn b không?
- if (a <= b) a có nhỏ hơn hoặc bằng b không?
- if (a == b) a có bằng b không?
- if (a != b) a có khác b không?
3.8.2 Câu Lệnh If – Else
Cú pháp
if ( điều_kiện )
{
//Công việc 1
} else
{
58
//Công việc 2
}
3.8.3 Câu Lệnh Switch - Case
Cú pháp
switch ( biểu_thức)
{
case hằng_1: [công_việc_1]
case hằng_2: [công_việc_2]
...
case hằng_n: [công_việc_n]
default: [công_việc_n+1]
}
Trong đó
- Biểu thức và hằng kiểu số nguyên
- Lệnh “break” thoát khỏi “switch”
VD:
59
Hình 3.11 Cấu trúc Switch
3.9 Cấu Trúc Lặp
3.9.1 Vòng Lặp For
Cú pháp
for (biểu_thức1; biểu_thức2; biểu_thức3)
{
//Công việc
}
VD:
Hình 3.12 Vòng lặp For
3.9.2 Vòng Lặp While
Cú pháp:
60
while (điều_kiện_lặp)
{
//Công việc
}
Trong đó:
- Khi <điều_kiện_lặp> còn đúng thì còn thực hiện <công_việc>. Vòng lặp kết
thức khi <điều_kiện_lặp> sai.
VD:
Hình 3.13 Vòng lặp While
3.9.3 Vòng Lặp Do-While
Cú pháp:
do {
//Công việc lặp
} while(điều_kiện_lặp)
Trong đó:
- Thực hiện công việc ít nhất 1 lần, và lặp lại công việc khi <điều_kiện_lặp> là
đúng.
VD:
61
Hình 3.14 Vòng lặp Do - While
3.10 MẢNG
3.10.1 Định Nghĩa
Mảng là 1 tập hợp nhiều biến nhớ có cùng kiểu, gọi là kiểu phần tử của mảng, được
cấp phát ở những vị trí liên tục trong bộ nhớ.
Mỗi phần tử (biến nhớ) trong mảng được xác định dựa trên tên mảng và các chỉ số
xác định vị trí của phần tử trong mảng.
Chỉ số phần tử của mảng là các số nguyên không âm.
3.10.2 Mảng Nsarray
Sử dụng đối tượng NSArray để khởi tạo mảng.
Cú pháp:
NSArray *tên_mảng;
VD:
NSArray *mangTen;
Để khởi tạo giá trị cho các phần tử trong mảng ta sử dụng hàm <initWithObjects>
VD:
62
Hình 3.15 Sử dụng NSArray
Trong đó
- hàm <count>: đếm số phần tử trong mảng.
- alloc: cấp phát vùng nhớ cho mảng “mangTen”.
- %@: Mã kiểu dữ liệu đối với kiểu chuỗi “NSString” trong Objective-C.
- objectAtIndex: lấy ra phần tử ở vị trí index.
Kết quả
Hình 3.16 Kết quả sử dụng NSArray
3.11 CHUỖI – ĐỐI TƯỢNG NSSTRING
3.11.1 Khởi Tạo Chuỗi
Đối với chuối trong Objective-C phải bắt đầu bằng @
Hình 3.17 Khởi tạo chuỗi
Để kiểm tra giá trị của chuỗi ta dung hàm NSLog
63
Hình 3.18 Kiểm tra giá trị chuỗi
Đếm số lượng ký tự (chiều dài của chuỗi)
Hình 3.19 Đếm số lượng ký tự
3.11.2 Đối Tượng NSString
Tạo đối tượng có kiểu là NSString để có thể sử dụng các thao tác lien quan đến
chuỗi do Class NSString cung cấp (ghép chuỗi, cắt chuỗi…)
Hình 3.20 Đối tượng NSString
3.11.3 Tìm Kiếm Bên Trong Chuỗi
Dùng hàm rangeOfString để tìm chuỗi “str1” có xuất hiện trong chuỗi “str2” không.
Hình 3.21 Tìm kiếm bên trong chuỗi
64
Kết quả
Hình 3.22 Kết quả tìm kiếm
3.11.4 Tìm Chuỗi Và Thay Nó Thành Chuỗi Khác
Dùng hàm replaceCharactersInRange để thay đổi chuỗi thành chuỗi khác.
Hình 3.23 Thay đổi ký tự trong chuỗi
Kết quả:
Hình 3.24 Kết quả thay đổi ký tự
3.11.5 Xoá Nội Dung Bên Trong Chuỗi
Dùng hàm deleteCharactersInRange để xóa một nội dung bên trong chuỗi.
Hình 3.25 Xóa nội dung trong một chuỗi
Kết quả
65
Hình 3.26 Kết quả sau khi xóa nội dung
3.11.6 Cắt Chuỗi
Cắt chuỗi có giới hạn số lượng ký tự, lấy từ ký tự thứ n.
Hình 3.27 Cắt chuỗi từ vị trí n
Kết quả
Hình 3.28 Kết quả cắt chuỗi từ vị trí n
Lấy tất cả ký tự còn lại, tính từ ký tự thứ n.
Hình 3.29 Lấy các ký tự còn lại từ vị trí n
Kết quả
Hình 3.30 Kết quả lấy các ký tự còn lại từ vị trí n
66
Tách chuỗi thành các phần nhỏ
Hình 3.31 Tách chuỗi thành các phần nhỏ
Kết quả
Hình 3.32 Kết quả tách chuỗi
3.11.7 Chèn Ký Tự Vào Trong Chuỗi
Dùng hàm insertString để chèn ký tự hoặc một chuỗi vào chuỗi.
Hình 3.33 Chèn ký tự vào chuỗi
Kết quả
Hình 3.34 Kết quả chèn ký tự vào chuỗi
3.11.8 Chèn Ký Tự Vào Cuối Chuỗi
Dùng hàm appendString để chèn ký tự vào cuối chuỗi.
67
Hình 3.35 Chèn ký tự vào cuối chuỗi
Kết quả
Hình 3.36 Kết quả chèn ký tự vào cuối chuỗi
3.11.8 So Sánh Chuỗi
Dùng hàm isEqualToString để so sánh hai chuỗi.
Hình 3.37 So sánh hai chuỗi
Kết quả
Hình 3.38 Kết quả so sánh hai chuỗi
3.11.9 So Sánh Chuỗi Với Ký Tự Đầu Và Cuối Chuỗi
Dùng hàm hasPrefix và hasSuffix để so sánh với ký tự đầu chuỗi, ký tự cuối chuỗi.
68
Hình 3.39 So sánh với ký tự đầu, ký tự cuối
Kết quả
Hình 3.40 Kết quả so sánh với ký tự đầu chuỗi, ký tự cuối chuỗi
3.11.10 Chuyển Đổi Hình Dạng Của Chữ
Viết hoa chữ đầu.
Hình 3.41 Viết hoa ký tự đầu
Kết quả
69
Hình 3.42 Kết quả viết hoa ký tự đầu
Tất cả viết thường.
Hình 3.43 Viết thường tất cả ký tự
Kết quả
Hình 3.44 Kết quả viết thường các ký tự
Tất cả viết hoa.
Hình 3.45 Viết hoa tất cả ký tự
Kết quả
Hình 3.46 Kết quả viết hoa các ký tự
70
3.11.11 Chuyển Chuỗi Thành Dạng Số
Chuyển thành số nguyên
Hình 3.47 Chuyển thành số nguyên
Kết quả
Hình 3.48 Kết quả chuyển thành số nguyên
Chuyển thành NSInteger
Hình 3.49 Chuyển thành NSInteger
Kết quả
Hình 3.50 Kết quả chuyển thành NSInteger
Chuyển thành float
71
Hình 3.51 Chuyển thành float
Kết quả
Hình 3.52 Kết quả chuyển thành float
Chuyển thành số double
Hình 3.53 Chuyển thành double
Kết quả
Hình 3.54 Kết quả chuyển thành double
CHƯƠNG IV
MỘT SỐ THAO TÁC CƠ BẢN
Trước khi bắt đầu lập trình ứng dụng trên iPhone, ngoài việc bạn tìm hiểu về
Xcode và iOS Simulator, bạn còn phải tìm hiểu thêm một số thao tác cơ bản trong lập
trình iOS. Hiểu biết về các thao tác cơ bản này sẽ bổ trợ cho bạn trong quá trình tìm hiểu,
cũng như là bài học vỡ lòng trước khi đi sâu vào tìm hiểu các đối tượng cơ bản trong
Xcode ở chương sau. Nội dung chương này gồm một số thao tác cơ bản như:
 Thay đổi icon của ứng dụng
 Thay đổi màn hình khi ứng dụng vừa được mở lên
 Thay đổi tên ứng dụng khi tên cũ quá dài
 Tùy chỉnh background
 Thêm mới một framework
 Ẩn thanh trạng thái status bar
73
4.1 APP ICON – LOADING SCREEN
Phần này sẽ hướng dẫn bạn cách hiển thị cũng như tạo icon, background image,
loading screen cho ứng dụng của bạn. App icon, background image, loading screen cho
ứng dụng của bạn cần dựa theo kích thước quy định của Apple và nên ở định dạng PNG.
Bạn có thể tham khảo thêm kích thước chuẩn ở đây
https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/MobileHIG/IconM
atrix.html#//apple_ref/doc/uid/TP40006556-CH27-SW1.
4.1.1 App Icon
App icon là biểu tượng của ứng dụng sẽ hiển thị ra màn hình iPhone sau khi ứng
dụng được cài đặt, đồng thời icon của ứng dụng cũng hiển thị lên App Store khi bạn đem
ứng dụng của mình lên App Store. Có hai loại icon là icon dành cho ứng dụng trên iPhone
và icon dành cho ứng dụng trên App Store. App icon cho iPhone Rentina là 120x120,
App icon cho App Store là 1024x1024.
Hình 4.1 Icon
Sau khi chuẩn bị được hình ảnh với kích thước phù hợp, trong phần thông tin của
Project, bạn kéo xuống phần App icon và kéo các icon chuẩn bị sẵn vào đúng vị trí của
icon.
74
Hình 4.2 Kéo thả icon vào vị trí
Bạn tiến hành chạy thử ứng dụng trên iOS Simulator sẽ thấy icon của ứng dụng.
Hình 4.3 Icon trên iOS simulator
75
4.1.2 Loading Screen
Loading Screen là hình ảnh mà khi chạy ứng dụng lên bạn sẽ thấy nó, tùy theo tốc
độ của ứng dụng mà thời gian hiển thị Loading Screen nhanh hoặc chậm khác nhau. Để
chuẩn bị cho Loading Screen bạn cần chuẩn bị trước hình ảnh dạng PNG, kích thước
640x1136 (iPhone 5 trở lên), 640x960 (iPhone 4).
Hình 4.4 Chuẩn bị Background
Sau khi chuẩn bị xong hình ảnh, trong phần Lauch Image, bạn kéo thả hình ảnh vào
Xcode cho đúng vị trí.
Hình 4.5 Kéo thả background image vào Lauch Image
76
4.2 THAY ĐỔI APP NAME
App Name là tên của ứng dụng hiển thị bên dưới App icon trên màn hình iPhone.
Nhiều trường hợp vì tên ứng dụng quá dài nên không thể hiển thị hết trên màn hình
iPhone, do đó bạn cần phải đổi tên ứng dụng lại cho phù hợp, ngắn gọn để có thể hiện
được tên ứng dụng bên dưới icon, như vậy ứng dụng sẽ có tính thẩm mỹ hơn. Để khắc
phục trường hợp này, bạn cần phải thay đổi lại App Name. Bạn truy cập tập tin .plist và
sửa đổi Bundle Display Name thành tên mới của ứng dụng.
Hình 4.6 Truy cập tập tin .plist
77
Hình 4.7 Sửa đổi Bundle display name
Sau khi hoàn tất, bạn chạy ứng dụng trên iOS Simulator để xem kết quả.
Hình 4.8 Thay đổi tên trên iOS Simulator
78
4.3 ẨN STATUS BAR
Việc ẩn status bar cho phép bạn chạy ứng dụng của mình toàn màn hình mà không
phải thu nhỏ một phần giao diện dành chỗ cho status bar. Trước tiên bạn chọn tập tin
.plist trong project, sau đó bạn thêm một dòng mới.
Hình 4.9 Thêm dòng mới
Trong danh sách lựa chọn của dòng mới thêm vào, bạn lựa chọn Status bar is
initially hidden và trả về giá trị là yes.
Hình 4.10 Chọn giá trị Yes
79
Chạy ứng dụng trên iOS Simulator để xem kết quả.
Hình 4.11 Thanh trạng thái Status bar đã mất
4.4 BACKGROUND
4.4.1 Background Image
Hướng dẫn này sẽ hướng dẫn bạn tạo và sử dụng một hình ảnh làm hình nền cho
ứng dụng của bạn. Trước tiên bạn cần phải chuẩn bị một tấm ảnh để làm hình nền. Kích
thước của tấm ảnh này giống như hình ảnh trong Loading Screen: định dạng PNG, kích
thước 640x1136 (iPhone 5 trở lên), 640x960 (iPhone 4).
80
Hình 4.12 Background Image
Sau khi chuẩn bị xong hình ảnh để làm background cho ứng dụng, bạn chép hình
ảnh vào trong project.
Hình 4.13 Chép hình ảnh vào Project
81
Tiếp theo bạn từ Utility area, bạn kéo thả đối tượng UIImage View vào Interface
Builder, điều chỉnh kích thước UIImage View cho vừa với màn hình.
Hình 4.14 Kéo thả UIImage View vào Project
Trong Inspector selector pane > Attributes inspector, bạn tìm đến mục Image
View > chọn Image > lựa chọn hình ảnh bạn muốn làm background.
82
Hình 4.15 Lựa chọn hình ảnh làm background
Kết quả.
Hình 4.16 Thay đổi background bằng image
83
4.4.2 Background Color
Ngoài việc sử dụng hình ảnh làm background cho ứng dụng, nếu bạn yêu thích sự
đơn giản, bạn có thể tạo background bằng cách dùng một màu mà bạn ưa thích. Trong
Inspector selector pane, bạn chọn Attributes inspector, tìm đến phần Background.
Hình 4.17 Attributes inspector
Tại đây bạn cho hiện ra bảng màu để chọn lựa với nhiều màu khác nhau, hãy lựa
chọn cho mình một màu phù hợp, nếu muốn nhiều màu hơn có thể chọn Other.
Hình 4.18 Chọn màu
84
Sau khi chọn xong màu thì background sẽ đổi màu với màu bạn đã lựa chọn.
Hình 4.19 Background thay đổi
4.5 THÊM FRAMEWORK
Mặc dù Xcode hỗ trợ nhiều Framework hỗ trợ cho các nhà phát triển ứng dụng, tuy
nhiên chỉ một số framework cơ bản được thêm vào khi tạo project, các framework còn lại
thì khi viết ứng dụng, bạn phải tự thêm vào để có thể sử dụng framework đó. Để tiến hành
thêm một framework, trong giao diện General của Project, bạn kéo xuống tới mục Link
Frameworks and Libraries.
Hình 4.20 Link Frameworks and Libraries
85
Bạn nhấp chuột vào biểu tượng dấu cộng để mở ra bảng danh mục các framework
mà Xcode hỗ trợ.
Hình 4.21 Chọn Framework
Sau đó bạn lựa chọn framework mà bạn muốn thêm vào project rồi nhấn Add.
Hình 4.22 chọn Add
CHƯƠNG V
MỘT SỐ ĐỐI TƯỢNG CƠ BẢN
Chương này trình bày một số đối tượng cơ bản thường được sử dụng để viết ứng
dụng cho iOS. Qua chương này, bạn có thể nắm được chức năng cũng như cách sử dụng
một số đối tượng cơ bản, từ đó có thể vận dụng vào viết ứng dụng. Do khả năng của
người viết còn giới hạn nên số đối tượng được giới thiệu trong chương này vẫn còn hạn
chế. Bạn có thể tìm hiểu thêm nhiều đối tượng khác, tìm hiểu sâu hơn từng đối tượng
bằng cách truy cập vào hướng dẫn của Apple cho người lập trình ở địa chỉ sau:
https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/UIKit
UICatalog/index.html
87
5.1 ĐỐI TƯỢNG LABEL – BUTTON – TEXT FIELD
5.1.1 Giới Thiệu
5.1.1.1 Đối Tượng Label
Label dùng để hiển thị một nội dung là chữ/câu/đoạn văn có tính cố định ít thay đổi.
Hình 5.1 Label
Label cho phép người dùng thay đổi một số thuộc tính để hiển thị nội dung ra giao
diện cho phù hợp như tùy chỉnh màu chữ, font và kích thước, canh trái/giữa/phải hay cho
nội dung của label xuống dòng.
Hình 5.2 Thuộc tính của Label
88
5.1.1.2 Đối Tượng Button
Button có thể được thiết kế hiển thị chữ hoặc hiển thị theo hình ảnh, thường được sử
dụng để người dùng tương tác với ứng dụng nhằm tạo ra một sự kiện nào đó của ứng
dụng. Chẳng hạn bạn nhập tên của bạn vào text field, bạn muốn khi người dùng chạm vào
button sẽ hiện tên bạn ra màn hình.Lúc này button sẽ được thiết kế để nắm bắt sự kiện khi
người dùng chạm vào, và thực hiện chức năng hiển thị tên bạn ra màn hình.
Hình 5.3 Button
Với button, bạn có thể lựa chọn một số định dạng button có sẵn, hoặc tùy chọn một
dạng button khác theo ý bạn. Không những thế bạn còn có thể tùy chỉnh font chữ, màu
chữ, màu nền của button hoặc thay thế button theo mộ hình ảnh button được thiết kế
trước.
89
Hình 5.4 Thuộc tính của Button
5.1.1.3 Đối Tượng Text Field
Đối tượng Text field thường được sử dụng để người dùng nhập dữ liệu đầu vào cho
ứng dụng. Chẳng hạn như bạn viết chương trình tính tổng hai số, thì bạn sẽ dùng Text
field để người dùng nhập vào hai số cần tính tổng, và bạn sẽ sử dụng giá trị nhập vào của
Text field để tính toán và hiển thị kết quả cho người dùng.
Hình 5.5 Text Field
Text field cho phép tùy chỉnh canh lề trái/giữa/phải, tùy chỉnh font chữ và kích
thước chữ trong Text field. Hơn nữa, bạn có thể tùy chỉnh hình dạng của Text field, cũng
như định dạng nội dung gợi ý cho người dùng (placeholder).
90
Hình 5.6 Thuộc tính của Text Field
5.1.2 Ví Dụ
Trong phần ví dụ này sẽ hướng dẫn các bạn viết một ứng dụng nhỏ để hiển thị tên
của bạn ra màn hình. Ứng dụng sẽ có một label, một button, một text field. Bạn sẽ nhập
tên bạn vào text field, sau đó chạm vào button, label sẽ hiển thị nội dung mà bạn đã nhập
vào text field trước đó.
- Tạo ứng dụng có tên là Label-Button-TextField.
- Thiết kế giao diện cho ứng dụng gồm một lable, một button, một text field.
- Ánh xạ các đối tượng vào tập tin .h.
- Viết code cho sự kiện khi người dùng chạm vào button.
Bước 1: Tạo project mới.
91
Hình 5.7 Tạo New Project
Hình 5.8 Chọn nơi lưu project
92
Bước 2: thiết kế giao diện
Hình 5.9 thiết kế giao diện
Bước 3: ánh xạ đối tượng.
Hình 5.10 ánh xạ đối tượng
93
Hình 5.11 ánh xạ đối tượng (tt)
Bước 4: viết code cho button.
Hình 5.12 viết code cho button
Bước 5: chạy thử
94
Hình 5.13 chạy thử ứng dụng
5.2 KẾT NỐI CƠ SỞ DỮ LIỆU VỚI SQLITE
5.2.1 Giới Thiệu
SQLite là một hệ quản trị cơ sở dữ liệu có thể chạy hoàn toàn độc lập mà không cần
đến server. SQLite thường được người lập trình sử dụng để lưu trữ cơ sở dữ liệu khi viết
ứng dụng cho các thiết bị của Apple. Các lệnh truy vấn trên SQLite sử dụng các lệnh truy
vấn của SQL (ví dụ SELECT, UPDATE, CREATE…). Việc quản lý SQLite rất đơn giản,
bạn chỉ cần quản lý thông qua một plugin của FireFox là SQLite Manager.Bạn có thể tìm
hiểu thêm tại http://www.sqlite.org.
5.2.2 Cài Đặt Sqlite Manager Cho Firefox
Để cài đặt plugin quản lý SQLite cho Firefox, bạn vào phần Addon của trình duyệt
Firefox và tìm plugin SQLite Manager rồi Add to Firefox.
95
Hình 5.14 Addon SQLite
Sau khi cài đặt xong, trong phần Tool bạn sẽ thấy như hình.
Hình 5.15 SQLite Manager trong Tool
5.2.3 Cấu Hình Ứng Dụng Để Tương Tác Với Sqlite
Để ứng dụng có thể thao tác với cơ sở dữ liệu của SQLite, bạn cần bổ sung thêm thư
viện hỗ trợ vào project. Trong phần Build Phase, mục Link to Library, bạn thêm vào thư
viện libsqlite3.dylib vào project.
Hình 5.16 Thêm framework hỗ trợ SQLite
96
5.2.4 Các Hàm Trong Sqlite
Trong SQLite có một số hàm cơ bản cho phép bạn tương tác dễ dàng với cơ sở dữ
liệu.
- sqlite3_open(): mở một kết nối đến tập tin sqlite. Nếu tập tin này chưa có, hệ
thống sẽ tự động tạo ra.
- sqlite3_close(): đóng kết nối đến sqlite.
- sqlite3_prepare_v2(): khởi tạo câu lệnh truy vấn SQL để thực thi.
- sqlite3_step(): thực thi lệnh truy vấn được tạo bởi hàm sqlite3_prepare_v2().
- sqlite3_column_<type>(): trả về kết quả dữ liệu từ câu truy vấn SQL, với kiểu
dữ liệu được khai báo trong <type> (thường là text, bytes, int, int16).
- sqlite3_finallize(): xoá câu lệnh truy vấn SQL được khởi tạo bởi hàm
sqlite3_prepare_v2() trong bộ nhớ.
Bạn có thể tham khảo thêm một số hàm khác tại: www.sqlite.org/c3ref/funclist.html
5.2.4.1 Khởi Tạo Đối Tượng Sqlite
Trước khi tương tác với cơ sở dữ liệu SQLite, bạn cần phải tạo đối tượng dạng này
bằng cách khai báo một biến có kiểu sqlite3 trong tập tin .h.
Hình 5.17 Khai báo sqlite3
5.2.4.2 Kết Nối Hoặc Tạo Database
Dùng hàm sqlite3_open() để mở kết nối đến cơ sở dữ liệu sqlite.
Hình 5.18 Hàm sqlite3_open
Nếu tập tin này chưa có thì sẽ tự động được tạo.
97
Filename: là đường dẫn đến tập tin sqlite. Nếu tên database có dấu tiếng việt thì cần
chuẩn hoá lại theo dạng UTF-8 trước khi truyền vào.
Sử dụng biến SQLITE_OK để kiểm tra trạng thái trả về của việc mở kết nối đến
database có thành công hay không.
5.2.4.3 Khởi Tạo Và Thực Thi Lệnh Truy Vấn
Câu lệnh truy vấn được khởi tạo và lưu trữ vào đối tượng sqlite_stmt() và truyền vào
hàm sqlite_prepare_v2() để thực thi.
Hình 5.19 khai báo đối tượng sqlite_stmt
Hình 5.20 Thực thi đối tượng sqlite_stmt trong sqlite3_prepare_v2
Câu lệnh SQL được thực hiện bởi các lệnh sau:
Hình 5.21Thực hiện câu lệnh SQL lấy kết quả trả về
98
Trong đó câu lệnh sqlite3_step() sẽ trả về các dạng như sau:
- Nếu câu lệnh sql dạng INSERT, DELETE, UPDATE, CREATE… thì trả về
kết quả có dạng là SQLITE_OK để báo tình trạng có thực thi được hay không.
- Nếu câu lệnh slq dạng SELECT sẽ trả về kết quả có dạng là SQLITE_ROW, là
tập hợp các hàng dữ liệu được lấy từ database.
5.2.4.4 Truy Xuất Dữ Liệu Database
Khởi tạo câu lệnh truy vấn.
Hình 5.22 Khởi tạo câu lệnh truy vấn
Bóc tách dữ liệu lấy được.
Hình 5.23 Tách dữ liệu lấy được
5.2.4.5 Đóng Kết Nối Database
Sau khi hoàn tất quá trình tương tác cơ sở dữ liệu, bạn nên đóng lại kết nối cơ sở dữ
liệu để có
Hình 5.24 đóng kết nối cơ sở dữ liệu
99
5.2.5 Ví Dụ
Bước 1: khởi động firefox, vào SQLite Manager
Hình 5.25 Truy cập SQLite Manager
Bước 2: tạo một cơ sở dữ liệu mới tên là “Count”.
Hình 5.26 Tạo CSDL mới
Bước 3: Tạo một table mới
100
Hình 5.27 Tạo table
Hình 5.28 Khai báo thuộc tính cho Table
Bước 4: nhập dữ liệu
101
Hình 5.29 Nhập dữ liệu
Hình 5.30 Kết quả
Bước 5: tạo project mới “sqlite”
102
Hình 5.31 Tạo Project mới
Hình 5.32 Điền thông tin Project
Bước 6: thiết kế giao diện
103
Hình 5.33 Thiết kế giao diện
Bước 7: thêm thư viện vào project.
Hình 5.34 Thêm thư viện
104
Hình 5.35 Sau khi thêm thư viện
Bước 8: ánh xạ đối tượng
Hình 5.36 Ánh xạ đối tượng
Bước 9: Thêm tập tin sqlite vào project
105
Hình 5.37 Thêm file mới
Hình 5.38 Add
Bước 10: thêm thư viện sqlite3.h vào project, khai báo đối tượng sqlite3 và nsstring
106
Hình 5.39 Kết quả ánh xạ
Bước 11: viết code trong hàm View Didload để lấy đường dẫn tới tập tin sqlite.
Hình 5.40 Viết code View Didload
Bước 12: viết code cho sự kiện Click
Khai báo đối tượng lưu đường dẫn database.
107
Hình 5.41 Khai báo đối tượng lưu đường dẫn
Hình 5.42 Lưu đường dẫn vào đối tượng
Khai báo đối tượng statment
Hình 5.43 Khai báo đối tượng sqlite3_stmt
Viết lệnh truy xuất dữ liệu
Hình 5.44 Lệnh truy xuất dữ liệu
Khai báo đối tượng lưu trữ câu truy vấn
Hình 5.45 Khai báo đối tượng lưu câu truy vấn
108
Viết code truy vấn
Hình 5.46 Viết code truy vấn dữ liệu
Kết quả.
109
Hình 5.47 Kết quả
5.3 SỬ DỤNG CAMERA IPHONE
5.3.1 Giới Thiệu
Phần này sẽ hướng dẫn các bạn cách sử dụng thư viện hỗ trợ của iOS để dùng
camera iPhone chụp ảnh. Thư viện iOS cung cấp một lớp là UIImagePickController dùng
để quản lý việc tương tác với camera hoặc photo library. Tuy nhiên
UIImagePickController không thể sử dụng trực tiếp mà cần tới một đối tượng khác
delegate (thừa kế) lại nó. Sau đây chúng ta sẽ xây dựng một ứng dụng đơn giản dùng
camera để chụp ảnh. Giao diện của ứng dụng này gồm một UIImageView để hiển thị hình
ảnh, một button tên là “Chụp Ảnh”.
5.3.2 Ví Dụ
Tạo ứng dụng mới đặt tên là CameraApp.
110
Hình 5.48 Tạo project mới
Hình 5.49 Chọn nơi lưu project
Thiết kế giao diện ứng dụng.
111
Hình 5.50 Thiết kế giao diện
Ánh xạ các đối tượng vào tập tin ViewController.h.

Hình 5.51 Ánh xạ đối tượng
112
Hình 5.52 Kết quả
Trong ViewController, thêm đoạn code sau để thừa kế lại UIImagePickController.
Hình 5.53 Thừa kế UIImagePickController
Viết code cho button Chụp Ảnh.
Hình 5.54 Viết code cho button Chụp ảnh
Viết code hai phương thức của UIImagePickController.
113
Hình 5.55 Viết code cho hai phương thức của UIImagePickController
Viết code cho ViewDidload.
Hình 5.56 Viết code cho hàm ViewDidload
Chạy ứng dụng lên thiết bị thật để kiểm tra kết quả.
5.4 UIIMAGE
5.4.1 Giới Thiệu
UIImage dùng để hiển thị hình ảnh, có thể sử dụng các hiệu ứng animation để hiển
thị hình ảnh.
.
Hình 5.57 Đối tượng UIImage
114
Hình 5.58 UIImage khi kéo ra thiết kế giao diện
5.4.2 Các Định Dạng Ảnh Hỗ Trợ Trên Iphone
Các dạng file ảnh được hỗ trợ tốt trên iPhone:
5.4.3 Ví Dụ
Hiển thị ảnh từ một file có sẵn trên máy.
Bước 1: Add UIImageView vào “StoryBoard”.
 Chọn “Main.storyboard”
Hình 5.59 Chọn storyboard
Tên định dạng Tên file mở rộng
Tagged Image File Format (TIFF) .tiff, .tif
Join Photographic Experts Group (JPEG) .jpg, .jpeg
Graphic Interchange Format (GIF) .gif
Portable Network Graphic (PNG) .png
Windows Bitmap Format (DIB) .bmp, .bmpf
Windows Icon Format .ico
Windows Cursor .cur
Xwindow bitmap .xbm
115
 Kéo thả UIImage từ hộp thoại “Accessibility” vào “Storyboard”.
Hình 5.60 Đối tượng UIImage View
Hình 5.61 Kết quả sau khi kéo vào storyboard
Bước 2: Ánh xạ UIImageView vào file “NATViewController.h” dạng outlet với
tên “imgHinhAnh”.
116
Hình 5.62 Kết quả sau khi ánh xạ
Bước 3: Add file hình vào project đang làm.
 Click phải chuột vào project  chọn “Add Files to...”
Hình 5.63 Thêm file vào project
117
Hình 5.64 Chọn file cần thêm vào
Bước 4: Load file hình vào UIImage.
Cách 1: Chọn hình từ hộp thoại “Image View”.
Hình 5.65 Cách chọn từ Image View
Hình 5.66 Kết quả sau khi chọn
Cách 2: Gọi phương thức sau để load file hình vào “UIImageView”.
Hình 5.67 Cách sử dụng code
 Mở file “NATViewController.m”, tại phương thức “viewDidLoad”.
118
Hình 5.68 Chọn NATViewController
Hình 5.69 Viết code hiện thị hình ảnh
Kết quả.
Hình 5.70 Kết quả
Lưu ý: phương thức “viewDidLoad” sẽ được gọi mỗi khi chúng ta mở ứng dụng.
119
Cách 3: Kéo thả trực tiếp đối tượng Image vào “StoryBoard”:
Hình 5.71 Kéo thả Image vào Storyboard
Hình 5.72 Kết quả
Hiển thị ảnh từ một URL:
Sử dụng phương thức “initWithData” để load nội dung từ url.
Hình 5.73 Code load nội dung từ url
 Mở file “NATViewController.m”, tại phương thức “viewDidLoad”.
120
Hình 5.74 Mở file NATViewController.m
Hình 5.75 Viết code cho hàm ViewDidload
Kết quả.
Hình 5.76 Kết quả
121
5.5 UIALERT VIEW
5.5.1 Giới Thiệu
UIAlertView là đối tượng được sử dụng để hiển thị nội dung thông báo cho người
dùng, hoặc để người dùng nhập liệu.
Hình 5.77 UIAlertView
Hình 5.78 UIAlertView cho phép nhập liệu
5.5.2 Đặc Điểm
Khởi tạo đối tượng UIAlertView
initWithTitle: message: delegate: cancelButtonTitle: otherButtonTitles
Các thuộc tính của UIAlertView
Thuộc tính Diễn giải
title Tiêu đề của Alert View.
message Nội dung thông báo
elegate Đối tượng nhận giá trị từ UIAlertView.
alertViewStyle Kiểu của 1 Alert View khi hiển thị trên ứng dụng
numberOfButtons Trả về số lượng buttons có trên Alert View
cancelButtonIndex Vị trí index của button Cancel trên UIAlertView
firstOtherButtonIndex Giá trị của nút đầu tiên trong UIAlertView, mặc
định là 0.
122
Các phương thức của UIAlertView
Phương thức Diễn giải
addButtonWithTile Gán tiêu đề cho Alert View
buttonTitleAtIndex Lấy tiêu đề của button tại vị trí index
textFieldAtIndex Lấy nội dung của textField tại vị trí index
show Gọi 1 Alert View
dismissWithClickedButtonIndex Huỷ 1 UIAlertView
5.5.3 Ví Dụ
Hiển thị AlerView dạng thông báo.
Hình 5.79 Hiển thị dạng thông báo
Bước 1: Tại phương thức “viewDidLoad” khởi tạo đối tượng “AlertView” như sau:
thongBao = [[UIAlertView alloc]
initWithTitle:@"Lac Hong University"
message:@"Webcome to Lac Hong University"
delegate:self
cancelButtonTitle:@"Ok"
otherButtonTitles:nil, nil];
Bước 2: Hiển thị “AlertView” bằng phương thức “show”
 Thêm đoạn code sau vào cuối phương thức “viewDidLoad”:
[thongBao show];
Bước 3: Cmd + R chạy thử, kết quả:
123
Hình 5.80 Kết quả hiển thị
Hiển thị AlerView dạng Text Field
Hình 5.81 Hiển thị dạng Text Field
Bước 1: Khai báo “AlertView”
 Tại “viewDidLoad” khai báo “AlertView” như sau:
Hình 5.82 Khai báo AlertView
Bước 2: Thiết lập thuộc tính “alertViewStyle” cho “AlertView” là kiểu “Text”.
124
Hình 5.83 Thiết lập thuộc tính
Bước 3: Thiết lập thuộc tính cho “Text ”.
Hình 5.84 Thiết lập thuộc tính
Bước 4: Hiển thị “AlertView”.
Hình 5.85 Hiển thị AlertView
Bước 5: Cmd + R chạy thử, kết quả:
Hình 5.86 Hiển thị kết quả
5.6 UISLIDER
5.6.1 Giới Thiệu
UISlider là một đối tượng cho phép người dùng thay đổi giá trị bằng cách di chuyển
thanh trượt.
125
Hình 5.87 UISLIDER
5.6.2 Đặc Điểm
Lấy giá trị từ Slider:
Cách 1: dùng property “value”
value property
Cách 2: dùng phương thức “setValue”
– setValue:animated:
Thiết lập giá trị nhỏ nhất và lớn nhất cho Slider:
- Thiết lập giá trị nhỏ nhất: minimumValue
- Thiết lập giá trị lớn nhất: maximumValue
5.6.3 Ví Dụ
Bước 1: Thiết kế giao diện như sau.
Hình 5.88 Thiết kế giao diện
126
Bước 2: Map các đối tượng như sau:
Hình 5.89 Ánh xạ các đối tượng
 Kết quả sau khi Map
Hình 5.90 Kết quả sau khi ánh xạ
Bước 3: Thiết lập giá trị nhỏ nhất và lớn nhất cho “Slider” trong khoảng “5  50”.
 Mở “ViewController.m”  thêm đoạn code sau vào cuối phương thức
“viewDidLoad”.
127
Hình 5.91 Thiết lập giá trị
Thiết lập giá trị chọn mặc định là “30”  thêm đoạn code sau vào cuối phương
thức “viewDidLoad”.
Hình 5.92 Thêm code vào cuối viewDidload
Bước 4: Gán kết quả của Slider vào “lblGiaTriSlider” khi người dùng thay đổi
thanh trượt.
 Thêm đoạn code sau vào phương thức “changeSlider”.
Hình 5.93 Thêm code vào phương thức changeSlider
Bước 5: Lấy giá trị từ Slider gán vào “lblKetQua” khi người dùng click vào button
“btnLayGiaTri”.
Hình 5.94 Gán giá trị cho label
Bước 6: Cmd + r chạy thử, kết quả.
128
Hình 5.95 Kết quả hiển thị
5.7 UIWEBVIEW
5.7.1 Giới Thiệu
UIWebView là đối tượng giúp hiển thị nội dung của một url nào đó.
Hình 5.96 UIWebView
129
Hình 5.97 Hiển thị UIWebView
5.7.2 Ví Dụ
Bước 1: Thiết kế giao diện như sau.
Hình 5.98 Thiết kế giao diện
130
Bước 2: Map đối tượng “UIWebView” với tên “myWebView”.
Hình 5.99 Ánh xạ đối tượng
Bước 3: Tải một url.
 Mở file “ViewController.m” thêm đoạn code sau vào cuối phương thức
“viewDidLoad”.
Hình 5.100 Thêm code vào viewDidload
 Chạy thử, kết quả.
Hình 5.101 Kết quả chạy thử
Bước 4: Thực hiện các chức năng: back, next, refrest, stop.
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)
Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)

More Related Content

What's hot

Bang khaosatnhucauhocsinh
Bang khaosatnhucauhocsinhBang khaosatnhucauhocsinh
Bang khaosatnhucauhocsinhYennguyen_Hcmup
 
Đề tài: Tìm hiểu về nhà máy Nhiệt Điện Vĩnh Tân 4, HAY, 9đ
Đề tài: Tìm hiểu về nhà máy Nhiệt Điện Vĩnh Tân 4, HAY, 9đĐề tài: Tìm hiểu về nhà máy Nhiệt Điện Vĩnh Tân 4, HAY, 9đ
Đề tài: Tìm hiểu về nhà máy Nhiệt Điện Vĩnh Tân 4, HAY, 9đ
Dịch vụ viết bài trọn gói ZALO: 0909232620
 
Thiết kế hệ thống nhúng cho thiết bị nội soi nha khoa
Thiết kế hệ thống nhúng cho thiết bị nội soi nha khoaThiết kế hệ thống nhúng cho thiết bị nội soi nha khoa
Thiết kế hệ thống nhúng cho thiết bị nội soi nha khoa
https://www.facebook.com/garmentspace
 
Bài Giảng Lập Trình Logic (Chuyên Đề 1)
Bài Giảng Lập Trình Logic (Chuyên Đề 1)Bài Giảng Lập Trình Logic (Chuyên Đề 1)
Bài Giảng Lập Trình Logic (Chuyên Đề 1)
Pham Quy Son
 
Windows seven share-book.com
Windows seven   share-book.comWindows seven   share-book.com
Windows seven share-book.comnhung1102
 
NGHIÊN CỨU VÀ ỨNG DỤNG BỘ SVC CẢI TIẾN ĐỂ GIẢM ẢNH HƯỞNG CỬA LÒ HỒ QUANG ĐẾN ...
NGHIÊN CỨU VÀ ỨNG DỤNG BỘ SVC CẢI TIẾN ĐỂ GIẢM ẢNH HƯỞNG CỬA LÒ HỒ QUANG ĐẾN ...NGHIÊN CỨU VÀ ỨNG DỤNG BỘ SVC CẢI TIẾN ĐỂ GIẢM ẢNH HƯỞNG CỬA LÒ HỒ QUANG ĐẾN ...
NGHIÊN CỨU VÀ ỨNG DỤNG BỘ SVC CẢI TIẾN ĐỂ GIẢM ẢNH HƯỞNG CỬA LÒ HỒ QUANG ĐẾN ...
nataliej4
 
Hướng dẫn sử dụng bảng tương tác IQboard
Hướng dẫn sử dụng bảng tương tác IQboardHướng dẫn sử dụng bảng tương tác IQboard
Hướng dẫn sử dụng bảng tương tác IQboard
dungvts
 
Ceh lab book_tieng_viet_phan1
Ceh lab book_tieng_viet_phan1Ceh lab book_tieng_viet_phan1
Ceh lab book_tieng_viet_phan1quang
 
THỰC TẬP ĐIỆN CƠ ĐỒ
 THỰC TẬP ĐIỆN CƠ ĐỒ THỰC TẬP ĐIỆN CƠ ĐỒ
THỰC TẬP ĐIỆN CƠ ĐỒ
SoM
 
Đề tài: Hệ thống máy nghiền than trong nhà máy nhiệt điện Uông Bí
Đề tài: Hệ thống máy nghiền than trong nhà máy nhiệt điện Uông BíĐề tài: Hệ thống máy nghiền than trong nhà máy nhiệt điện Uông Bí
Đề tài: Hệ thống máy nghiền than trong nhà máy nhiệt điện Uông Bí
Dịch vụ viết bài trọn gói ZALO 0917193864
 
Sach s7 200_tap_1_1316
Sach s7 200_tap_1_1316Sach s7 200_tap_1_1316
Sach s7 200_tap_1_1316minhpv32
 

What's hot (11)

Bang khaosatnhucauhocsinh
Bang khaosatnhucauhocsinhBang khaosatnhucauhocsinh
Bang khaosatnhucauhocsinh
 
Đề tài: Tìm hiểu về nhà máy Nhiệt Điện Vĩnh Tân 4, HAY, 9đ
Đề tài: Tìm hiểu về nhà máy Nhiệt Điện Vĩnh Tân 4, HAY, 9đĐề tài: Tìm hiểu về nhà máy Nhiệt Điện Vĩnh Tân 4, HAY, 9đ
Đề tài: Tìm hiểu về nhà máy Nhiệt Điện Vĩnh Tân 4, HAY, 9đ
 
Thiết kế hệ thống nhúng cho thiết bị nội soi nha khoa
Thiết kế hệ thống nhúng cho thiết bị nội soi nha khoaThiết kế hệ thống nhúng cho thiết bị nội soi nha khoa
Thiết kế hệ thống nhúng cho thiết bị nội soi nha khoa
 
Bài Giảng Lập Trình Logic (Chuyên Đề 1)
Bài Giảng Lập Trình Logic (Chuyên Đề 1)Bài Giảng Lập Trình Logic (Chuyên Đề 1)
Bài Giảng Lập Trình Logic (Chuyên Đề 1)
 
Windows seven share-book.com
Windows seven   share-book.comWindows seven   share-book.com
Windows seven share-book.com
 
NGHIÊN CỨU VÀ ỨNG DỤNG BỘ SVC CẢI TIẾN ĐỂ GIẢM ẢNH HƯỞNG CỬA LÒ HỒ QUANG ĐẾN ...
NGHIÊN CỨU VÀ ỨNG DỤNG BỘ SVC CẢI TIẾN ĐỂ GIẢM ẢNH HƯỞNG CỬA LÒ HỒ QUANG ĐẾN ...NGHIÊN CỨU VÀ ỨNG DỤNG BỘ SVC CẢI TIẾN ĐỂ GIẢM ẢNH HƯỞNG CỬA LÒ HỒ QUANG ĐẾN ...
NGHIÊN CỨU VÀ ỨNG DỤNG BỘ SVC CẢI TIẾN ĐỂ GIẢM ẢNH HƯỞNG CỬA LÒ HỒ QUANG ĐẾN ...
 
Hướng dẫn sử dụng bảng tương tác IQboard
Hướng dẫn sử dụng bảng tương tác IQboardHướng dẫn sử dụng bảng tương tác IQboard
Hướng dẫn sử dụng bảng tương tác IQboard
 
Ceh lab book_tieng_viet_phan1
Ceh lab book_tieng_viet_phan1Ceh lab book_tieng_viet_phan1
Ceh lab book_tieng_viet_phan1
 
THỰC TẬP ĐIỆN CƠ ĐỒ
 THỰC TẬP ĐIỆN CƠ ĐỒ THỰC TẬP ĐIỆN CƠ ĐỒ
THỰC TẬP ĐIỆN CƠ ĐỒ
 
Đề tài: Hệ thống máy nghiền than trong nhà máy nhiệt điện Uông Bí
Đề tài: Hệ thống máy nghiền than trong nhà máy nhiệt điện Uông BíĐề tài: Hệ thống máy nghiền than trong nhà máy nhiệt điện Uông Bí
Đề tài: Hệ thống máy nghiền than trong nhà máy nhiệt điện Uông Bí
 
Sach s7 200_tap_1_1316
Sach s7 200_tap_1_1316Sach s7 200_tap_1_1316
Sach s7 200_tap_1_1316
 

Viewers also liked

iOS Master - Detail & TabBar
iOS Master - Detail & TabBariOS Master - Detail & TabBar
iOS Master - Detail & TabBar
TechMaster Vietnam
 
IOS OverView
IOS OverViewIOS OverView
IOS OverView
Năm Tàn
 
Day0: Giới thiệu lập trình ứng dụng Apple iOS
Day0: Giới thiệu lập trình ứng dụng Apple iOSDay0: Giới thiệu lập trình ứng dụng Apple iOS
Day0: Giới thiệu lập trình ứng dụng Apple iOS
TechMaster Vietnam
 
Session 9-10 - UI/UX design for iOS 7 application
Session 9-10 - UI/UX design for iOS 7 applicationSession 9-10 - UI/UX design for iOS 7 application
Session 9-10 - UI/UX design for iOS 7 application
Vu Tran Lam
 
NGHIÊN CỨU XÂY DỰNG ỨNG DỤNG CHO HỆ ĐIỀU HÀNH iOS
NGHIÊN CỨU XÂY DỰNG ỨNG DỤNG CHO HỆ ĐIỀU HÀNH iOSNGHIÊN CỨU XÂY DỰNG ỨNG DỤNG CHO HỆ ĐIỀU HÀNH iOS
NGHIÊN CỨU XÂY DỰNG ỨNG DỤNG CHO HỆ ĐIỀU HÀNH iOS
Vàng Cao Thanh
 
Tinh the hoc
Tinh the hocTinh the hoc
Tinh the hoc
Khoi Vu
 
Authentication and Authorization
Authentication and AuthorizationAuthentication and Authorization
Authentication and Authorization
TechMaster Vietnam
 
iOS Platform & Architecture
iOS Platform & ArchitectureiOS Platform & Architecture
iOS Platform & Architecture
krishguttha
 
iOS design: a case study
iOS design: a case studyiOS design: a case study
iOS design: a case study
Johan Ronsse
 
iOS platform
iOS platformiOS platform
iOS platform
maya_slides
 
Swift Programming Language
Swift Programming LanguageSwift Programming Language
Swift Programming Language
Giuseppe Arici
 

Viewers also liked (11)

iOS Master - Detail & TabBar
iOS Master - Detail & TabBariOS Master - Detail & TabBar
iOS Master - Detail & TabBar
 
IOS OverView
IOS OverViewIOS OverView
IOS OverView
 
Day0: Giới thiệu lập trình ứng dụng Apple iOS
Day0: Giới thiệu lập trình ứng dụng Apple iOSDay0: Giới thiệu lập trình ứng dụng Apple iOS
Day0: Giới thiệu lập trình ứng dụng Apple iOS
 
Session 9-10 - UI/UX design for iOS 7 application
Session 9-10 - UI/UX design for iOS 7 applicationSession 9-10 - UI/UX design for iOS 7 application
Session 9-10 - UI/UX design for iOS 7 application
 
NGHIÊN CỨU XÂY DỰNG ỨNG DỤNG CHO HỆ ĐIỀU HÀNH iOS
NGHIÊN CỨU XÂY DỰNG ỨNG DỤNG CHO HỆ ĐIỀU HÀNH iOSNGHIÊN CỨU XÂY DỰNG ỨNG DỤNG CHO HỆ ĐIỀU HÀNH iOS
NGHIÊN CỨU XÂY DỰNG ỨNG DỤNG CHO HỆ ĐIỀU HÀNH iOS
 
Tinh the hoc
Tinh the hocTinh the hoc
Tinh the hoc
 
Authentication and Authorization
Authentication and AuthorizationAuthentication and Authorization
Authentication and Authorization
 
iOS Platform & Architecture
iOS Platform & ArchitectureiOS Platform & Architecture
iOS Platform & Architecture
 
iOS design: a case study
iOS design: a case studyiOS design: a case study
iOS design: a case study
 
iOS platform
iOS platformiOS platform
iOS platform
 
Swift Programming Language
Swift Programming LanguageSwift Programming Language
Swift Programming Language
 

Similar to Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)

New fortran
New fortranNew fortran
New fortranhoahanh
 
Bài giảng THIẾT BỊ MAY
Bài giảng THIẾT BỊ MAYBài giảng THIẾT BỊ MAY
Bài giảng THIẾT BỊ MAY
Nhân Quả Công Bằng
 
Bài mẫu Tiểu luận Chiến Lược Của Apple Cho Sản Phẩm, HAY
Bài mẫu Tiểu luận Chiến Lược Của Apple Cho Sản Phẩm, HAYBài mẫu Tiểu luận Chiến Lược Của Apple Cho Sản Phẩm, HAY
Bài mẫu Tiểu luận Chiến Lược Của Apple Cho Sản Phẩm, HAY
Viết Thuê Khóa Luận _ ZALO 0917.193.864 default
 
Đề tài: Chiến lược của Apple đối với sản phẩm smarthome, 9 ĐIỂM!
Đề tài: Chiến lược của Apple đối với sản phẩm smarthome, 9 ĐIỂM!Đề tài: Chiến lược của Apple đối với sản phẩm smarthome, 9 ĐIỂM!
Đề tài: Chiến lược của Apple đối với sản phẩm smarthome, 9 ĐIỂM!
Viết thuê trọn gói ZALO 0934573149
 
Tai lieu huong_dan_microsoft_word_2010
Tai lieu huong_dan_microsoft_word_2010Tai lieu huong_dan_microsoft_word_2010
Tai lieu huong_dan_microsoft_word_2010
Trần Thị Yến Xuân
 
Giáo trình an toàn thông tin ths.nguyễn công nhật[bookbooming.com]
Giáo trình an toàn thông tin   ths.nguyễn công nhật[bookbooming.com]Giáo trình an toàn thông tin   ths.nguyễn công nhật[bookbooming.com]
Giáo trình an toàn thông tin ths.nguyễn công nhật[bookbooming.com]bookbooming1
 
Phan tich-thiet-ke-he-thong-tin
Phan tich-thiet-ke-he-thong-tinPhan tich-thiet-ke-he-thong-tin
Phan tich-thiet-ke-he-thong-tinxxxabcyyy
 
2516102 phan-tich-thiet-ke-he-thong-thong-tin
2516102 phan-tich-thiet-ke-he-thong-thong-tin2516102 phan-tich-thiet-ke-he-thong-thong-tin
2516102 phan-tich-thiet-ke-he-thong-thong-tinTruong Tuyen
 
Pttkhttt
PttkhtttPttkhttt
Pttkhttt
Truong CanSao
 
Phonegap cho người mới học
Phonegap cho người mới họcPhonegap cho người mới học
Phonegap cho người mới học
Ngo Trung
 
Nova3 m operatormanual
Nova3 m operatormanualNova3 m operatormanual
Nova3 m operatormanualthaianmedical
 
Huong dan su dung ban day du
Huong dan su dung ban day duHuong dan su dung ban day du
Huong dan su dung ban day duthanh_k8_cntt
 
Tl open office_calc
Tl open office_calcTl open office_calc
Tl open office_calc
Chi Lê Yến
 
HUONG DAN SU DUNG SD SSI TRADING.pdf
HUONG DAN SU DUNG SD SSI TRADING.pdfHUONG DAN SU DUNG SD SSI TRADING.pdf
HUONG DAN SU DUNG SD SSI TRADING.pdf
NguynPhmTriu1
 
Bctt giưa kỳ
Bctt giưa kỳBctt giưa kỳ
Bctt giưa kỳLIL55
 
Hoàn Thiện Công Tác Đánh Giá Thực Hiện Công Việc Tại Công Ty Cổ Phần Đầu Tư T...
Hoàn Thiện Công Tác Đánh Giá Thực Hiện Công Việc Tại Công Ty Cổ Phần Đầu Tư T...Hoàn Thiện Công Tác Đánh Giá Thực Hiện Công Việc Tại Công Ty Cổ Phần Đầu Tư T...
Hoàn Thiện Công Tác Đánh Giá Thực Hiện Công Việc Tại Công Ty Cổ Phần Đầu Tư T...
Dịch vụ viết thuê Luận Văn - ZALO 0932091562
 
Giải pháp phát triển hoạt động kinh doanh tại Công ty TNHH TAVI
Giải pháp phát triển hoạt động kinh doanh tại Công ty TNHH TAVIGiải pháp phát triển hoạt động kinh doanh tại Công ty TNHH TAVI
Giải pháp phát triển hoạt động kinh doanh tại Công ty TNHH TAVI
lamluanvan.net Viết thuê luận văn
 
Tailieu.vncty.com he dieu hanh unix va linux
Tailieu.vncty.com   he dieu hanh unix va linuxTailieu.vncty.com   he dieu hanh unix va linux
Tailieu.vncty.com he dieu hanh unix va linux
Trần Đức Anh
 

Similar to Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad) (20)

New fortran
New fortranNew fortran
New fortran
 
Bài giảng THIẾT BỊ MAY
Bài giảng THIẾT BỊ MAYBài giảng THIẾT BỊ MAY
Bài giảng THIẾT BỊ MAY
 
Bài mẫu Tiểu luận Chiến Lược Của Apple Cho Sản Phẩm, HAY
Bài mẫu Tiểu luận Chiến Lược Của Apple Cho Sản Phẩm, HAYBài mẫu Tiểu luận Chiến Lược Của Apple Cho Sản Phẩm, HAY
Bài mẫu Tiểu luận Chiến Lược Của Apple Cho Sản Phẩm, HAY
 
Đề tài: Chiến lược của Apple đối với sản phẩm smarthome, 9 ĐIỂM!
Đề tài: Chiến lược của Apple đối với sản phẩm smarthome, 9 ĐIỂM!Đề tài: Chiến lược của Apple đối với sản phẩm smarthome, 9 ĐIỂM!
Đề tài: Chiến lược của Apple đối với sản phẩm smarthome, 9 ĐIỂM!
 
Tai lieu huong_dan_microsoft_word_2010
Tai lieu huong_dan_microsoft_word_2010Tai lieu huong_dan_microsoft_word_2010
Tai lieu huong_dan_microsoft_word_2010
 
Giáo trình an toàn thông tin ths.nguyễn công nhật[bookbooming.com]
Giáo trình an toàn thông tin   ths.nguyễn công nhật[bookbooming.com]Giáo trình an toàn thông tin   ths.nguyễn công nhật[bookbooming.com]
Giáo trình an toàn thông tin ths.nguyễn công nhật[bookbooming.com]
 
Phan tich-thiet-ke-he-thong-tin
Phan tich-thiet-ke-he-thong-tinPhan tich-thiet-ke-he-thong-tin
Phan tich-thiet-ke-he-thong-tin
 
2516102 phan-tich-thiet-ke-he-thong-thong-tin
2516102 phan-tich-thiet-ke-he-thong-thong-tin2516102 phan-tich-thiet-ke-he-thong-thong-tin
2516102 phan-tich-thiet-ke-he-thong-thong-tin
 
Pttkhttt
PttkhtttPttkhttt
Pttkhttt
 
Phonegap cho người mới học
Phonegap cho người mới họcPhonegap cho người mới học
Phonegap cho người mới học
 
Nova3 m operatormanual
Nova3 m operatormanualNova3 m operatormanual
Nova3 m operatormanual
 
Huong dan su dung ban day du
Huong dan su dung ban day duHuong dan su dung ban day du
Huong dan su dung ban day du
 
Tl open office_calc
Tl open office_calcTl open office_calc
Tl open office_calc
 
HUONG DAN SU DUNG SD SSI TRADING.pdf
HUONG DAN SU DUNG SD SSI TRADING.pdfHUONG DAN SU DUNG SD SSI TRADING.pdf
HUONG DAN SU DUNG SD SSI TRADING.pdf
 
Bctt giưa kỳ
Bctt giưa kỳBctt giưa kỳ
Bctt giưa kỳ
 
Hoàn Thiện Công Tác Đánh Giá Thực Hiện Công Việc Tại Công Ty Cổ Phần Đầu Tư T...
Hoàn Thiện Công Tác Đánh Giá Thực Hiện Công Việc Tại Công Ty Cổ Phần Đầu Tư T...Hoàn Thiện Công Tác Đánh Giá Thực Hiện Công Việc Tại Công Ty Cổ Phần Đầu Tư T...
Hoàn Thiện Công Tác Đánh Giá Thực Hiện Công Việc Tại Công Ty Cổ Phần Đầu Tư T...
 
Báo cáo
Báo cáoBáo cáo
Báo cáo
 
Giải pháp phát triển hoạt động kinh doanh tại Công ty TNHH TAVI
Giải pháp phát triển hoạt động kinh doanh tại Công ty TNHH TAVIGiải pháp phát triển hoạt động kinh doanh tại Công ty TNHH TAVI
Giải pháp phát triển hoạt động kinh doanh tại Công ty TNHH TAVI
 
Tailieu.vncty.com he dieu hanh unix va linux
Tailieu.vncty.com   he dieu hanh unix va linuxTailieu.vncty.com   he dieu hanh unix va linux
Tailieu.vncty.com he dieu hanh unix va linux
 
Giao trinh he dieu hanh linux va unix
Giao trinh he dieu hanh linux va unixGiao trinh he dieu hanh linux va unix
Giao trinh he dieu hanh linux va unix
 

Recently uploaded

Biểu tượng trăng và bầu trời trong tác phẩm của Nguyễn Quang Thiều
Biểu tượng trăng và bầu trời trong tác phẩm của Nguyễn Quang ThiềuBiểu tượng trăng và bầu trời trong tác phẩm của Nguyễn Quang Thiều
Biểu tượng trăng và bầu trời trong tác phẩm của Nguyễn Quang Thiều
lamluanvan.net Viết thuê luận văn
 
Văn 7. Truyện ngụ ngôn Rùa và thỏ+ Viết PT nhân vật.docx
Văn 7. Truyện ngụ ngôn Rùa và thỏ+ Viết PT nhân vật.docxVăn 7. Truyện ngụ ngôn Rùa và thỏ+ Viết PT nhân vật.docx
Văn 7. Truyện ngụ ngôn Rùa và thỏ+ Viết PT nhân vật.docx
metamngoc123
 
Halloween vocabulary for kids in primary school
Halloween vocabulary for kids in primary schoolHalloween vocabulary for kids in primary school
Halloween vocabulary for kids in primary school
AnhPhm265031
 
BÀI TẬP BỔ TRỢ TIẾNG ANH I-LEARN SMART WORLD 9 CẢ NĂM CÓ TEST THEO UNIT NĂM H...
BÀI TẬP BỔ TRỢ TIẾNG ANH I-LEARN SMART WORLD 9 CẢ NĂM CÓ TEST THEO UNIT NĂM H...BÀI TẬP BỔ TRỢ TIẾNG ANH I-LEARN SMART WORLD 9 CẢ NĂM CÓ TEST THEO UNIT NĂM H...
BÀI TẬP BỔ TRỢ TIẾNG ANH I-LEARN SMART WORLD 9 CẢ NĂM CÓ TEST THEO UNIT NĂM H...
Nguyen Thanh Tu Collection
 
100 DẪN CHỨNG NGHỊ LUẬN XÃ HỘiI HAY.docx
100 DẪN CHỨNG NGHỊ LUẬN XÃ HỘiI HAY.docx100 DẪN CHỨNG NGHỊ LUẬN XÃ HỘiI HAY.docx
100 DẪN CHỨNG NGHỊ LUẬN XÃ HỘiI HAY.docx
khanhthy3000
 
Giải phẫu tim sau đại học- LÊ QUANG TUYỀN
Giải phẫu tim sau đại học- LÊ QUANG TUYỀNGiải phẫu tim sau đại học- LÊ QUANG TUYỀN
Giải phẫu tim sau đại học- LÊ QUANG TUYỀN
linh miu
 
THONG BAO nop ho so xet tuyen TS6 24-25.pdf
THONG BAO nop ho so xet tuyen TS6 24-25.pdfTHONG BAO nop ho so xet tuyen TS6 24-25.pdf
THONG BAO nop ho so xet tuyen TS6 24-25.pdf
QucHHunhnh
 
Sinh-12-Chuyên-2022-2023.dành cho ôn thi hsg
Sinh-12-Chuyên-2022-2023.dành cho ôn thi hsgSinh-12-Chuyên-2022-2023.dành cho ôn thi hsg
Sinh-12-Chuyên-2022-2023.dành cho ôn thi hsg
vivan030207
 
CHUYÊN ĐỀ DẠY THÊM HÓA HỌC LỚP 10 - SÁCH MỚI - FORM BÀI TẬP 2025 (DÙNG CHUNG ...
CHUYÊN ĐỀ DẠY THÊM HÓA HỌC LỚP 10 - SÁCH MỚI - FORM BÀI TẬP 2025 (DÙNG CHUNG ...CHUYÊN ĐỀ DẠY THÊM HÓA HỌC LỚP 10 - SÁCH MỚI - FORM BÀI TẬP 2025 (DÙNG CHUNG ...
CHUYÊN ĐỀ DẠY THÊM HÓA HỌC LỚP 10 - SÁCH MỚI - FORM BÀI TẬP 2025 (DÙNG CHUNG ...
Nguyen Thanh Tu Collection
 
LỊCH SỬ 12 - CHUYÊN ĐỀ 10 - TRẮC NGHIỆM.pptx
LỊCH SỬ 12 - CHUYÊN ĐỀ 10 - TRẮC NGHIỆM.pptxLỊCH SỬ 12 - CHUYÊN ĐỀ 10 - TRẮC NGHIỆM.pptx
LỊCH SỬ 12 - CHUYÊN ĐỀ 10 - TRẮC NGHIỆM.pptx
12D241NguynPhmMaiTra
 
insulin cho benh nhan nam vien co tang duong huyet
insulin cho benh nhan nam vien co tang duong huyetinsulin cho benh nhan nam vien co tang duong huyet
insulin cho benh nhan nam vien co tang duong huyet
lmhong80
 
Smartbiz_He thong MES nganh may mac_2024june
Smartbiz_He thong MES nganh may mac_2024juneSmartbiz_He thong MES nganh may mac_2024june
Smartbiz_He thong MES nganh may mac_2024june
SmartBiz
 
FSSC 22000 version 6_Seminar_FINAL end.pptx
FSSC 22000 version 6_Seminar_FINAL end.pptxFSSC 22000 version 6_Seminar_FINAL end.pptx
FSSC 22000 version 6_Seminar_FINAL end.pptx
deviv80273
 
Quan Tri Doi Moi Sang Tao_ Innovation Management
Quan Tri Doi Moi Sang Tao_ Innovation ManagementQuan Tri Doi Moi Sang Tao_ Innovation Management
Quan Tri Doi Moi Sang Tao_ Innovation Management
ChuPhan32
 
Ngân hàng điện tử số ptit - giảng viên cô Hà
Ngân hàng điện tử số ptit - giảng viên cô HàNgân hàng điện tử số ptit - giảng viên cô Hà
Ngân hàng điện tử số ptit - giảng viên cô Hà
onLongV
 
Chương 3 Linh kien ban dan và KD dien tu - Copy.ppt
Chương 3 Linh kien ban dan và KD dien tu - Copy.pptChương 3 Linh kien ban dan và KD dien tu - Copy.ppt
Chương 3 Linh kien ban dan và KD dien tu - Copy.ppt
PhiTrnHngRui
 
PLĐC-chương 1 (1).ppt của trường ĐH Ngoại thương
PLĐC-chương 1 (1).ppt của trường  ĐH Ngoại thươngPLĐC-chương 1 (1).ppt của trường  ĐH Ngoại thương
PLĐC-chương 1 (1).ppt của trường ĐH Ngoại thương
hieutrinhvan27052005
 
40 câu hỏi - đáp Bộ luật dân sự năm 2015 (1).doc
40 câu hỏi - đáp Bộ  luật dân sự năm  2015 (1).doc40 câu hỏi - đáp Bộ  luật dân sự năm  2015 (1).doc
40 câu hỏi - đáp Bộ luật dân sự năm 2015 (1).doc
NguynDimQunh33
 

Recently uploaded (18)

Biểu tượng trăng và bầu trời trong tác phẩm của Nguyễn Quang Thiều
Biểu tượng trăng và bầu trời trong tác phẩm của Nguyễn Quang ThiềuBiểu tượng trăng và bầu trời trong tác phẩm của Nguyễn Quang Thiều
Biểu tượng trăng và bầu trời trong tác phẩm của Nguyễn Quang Thiều
 
Văn 7. Truyện ngụ ngôn Rùa và thỏ+ Viết PT nhân vật.docx
Văn 7. Truyện ngụ ngôn Rùa và thỏ+ Viết PT nhân vật.docxVăn 7. Truyện ngụ ngôn Rùa và thỏ+ Viết PT nhân vật.docx
Văn 7. Truyện ngụ ngôn Rùa và thỏ+ Viết PT nhân vật.docx
 
Halloween vocabulary for kids in primary school
Halloween vocabulary for kids in primary schoolHalloween vocabulary for kids in primary school
Halloween vocabulary for kids in primary school
 
BÀI TẬP BỔ TRỢ TIẾNG ANH I-LEARN SMART WORLD 9 CẢ NĂM CÓ TEST THEO UNIT NĂM H...
BÀI TẬP BỔ TRỢ TIẾNG ANH I-LEARN SMART WORLD 9 CẢ NĂM CÓ TEST THEO UNIT NĂM H...BÀI TẬP BỔ TRỢ TIẾNG ANH I-LEARN SMART WORLD 9 CẢ NĂM CÓ TEST THEO UNIT NĂM H...
BÀI TẬP BỔ TRỢ TIẾNG ANH I-LEARN SMART WORLD 9 CẢ NĂM CÓ TEST THEO UNIT NĂM H...
 
100 DẪN CHỨNG NGHỊ LUẬN XÃ HỘiI HAY.docx
100 DẪN CHỨNG NGHỊ LUẬN XÃ HỘiI HAY.docx100 DẪN CHỨNG NGHỊ LUẬN XÃ HỘiI HAY.docx
100 DẪN CHỨNG NGHỊ LUẬN XÃ HỘiI HAY.docx
 
Giải phẫu tim sau đại học- LÊ QUANG TUYỀN
Giải phẫu tim sau đại học- LÊ QUANG TUYỀNGiải phẫu tim sau đại học- LÊ QUANG TUYỀN
Giải phẫu tim sau đại học- LÊ QUANG TUYỀN
 
THONG BAO nop ho so xet tuyen TS6 24-25.pdf
THONG BAO nop ho so xet tuyen TS6 24-25.pdfTHONG BAO nop ho so xet tuyen TS6 24-25.pdf
THONG BAO nop ho so xet tuyen TS6 24-25.pdf
 
Sinh-12-Chuyên-2022-2023.dành cho ôn thi hsg
Sinh-12-Chuyên-2022-2023.dành cho ôn thi hsgSinh-12-Chuyên-2022-2023.dành cho ôn thi hsg
Sinh-12-Chuyên-2022-2023.dành cho ôn thi hsg
 
CHUYÊN ĐỀ DẠY THÊM HÓA HỌC LỚP 10 - SÁCH MỚI - FORM BÀI TẬP 2025 (DÙNG CHUNG ...
CHUYÊN ĐỀ DẠY THÊM HÓA HỌC LỚP 10 - SÁCH MỚI - FORM BÀI TẬP 2025 (DÙNG CHUNG ...CHUYÊN ĐỀ DẠY THÊM HÓA HỌC LỚP 10 - SÁCH MỚI - FORM BÀI TẬP 2025 (DÙNG CHUNG ...
CHUYÊN ĐỀ DẠY THÊM HÓA HỌC LỚP 10 - SÁCH MỚI - FORM BÀI TẬP 2025 (DÙNG CHUNG ...
 
LỊCH SỬ 12 - CHUYÊN ĐỀ 10 - TRẮC NGHIỆM.pptx
LỊCH SỬ 12 - CHUYÊN ĐỀ 10 - TRẮC NGHIỆM.pptxLỊCH SỬ 12 - CHUYÊN ĐỀ 10 - TRẮC NGHIỆM.pptx
LỊCH SỬ 12 - CHUYÊN ĐỀ 10 - TRẮC NGHIỆM.pptx
 
insulin cho benh nhan nam vien co tang duong huyet
insulin cho benh nhan nam vien co tang duong huyetinsulin cho benh nhan nam vien co tang duong huyet
insulin cho benh nhan nam vien co tang duong huyet
 
Smartbiz_He thong MES nganh may mac_2024june
Smartbiz_He thong MES nganh may mac_2024juneSmartbiz_He thong MES nganh may mac_2024june
Smartbiz_He thong MES nganh may mac_2024june
 
FSSC 22000 version 6_Seminar_FINAL end.pptx
FSSC 22000 version 6_Seminar_FINAL end.pptxFSSC 22000 version 6_Seminar_FINAL end.pptx
FSSC 22000 version 6_Seminar_FINAL end.pptx
 
Quan Tri Doi Moi Sang Tao_ Innovation Management
Quan Tri Doi Moi Sang Tao_ Innovation ManagementQuan Tri Doi Moi Sang Tao_ Innovation Management
Quan Tri Doi Moi Sang Tao_ Innovation Management
 
Ngân hàng điện tử số ptit - giảng viên cô Hà
Ngân hàng điện tử số ptit - giảng viên cô HàNgân hàng điện tử số ptit - giảng viên cô Hà
Ngân hàng điện tử số ptit - giảng viên cô Hà
 
Chương 3 Linh kien ban dan và KD dien tu - Copy.ppt
Chương 3 Linh kien ban dan và KD dien tu - Copy.pptChương 3 Linh kien ban dan và KD dien tu - Copy.ppt
Chương 3 Linh kien ban dan và KD dien tu - Copy.ppt
 
PLĐC-chương 1 (1).ppt của trường ĐH Ngoại thương
PLĐC-chương 1 (1).ppt của trường  ĐH Ngoại thươngPLĐC-chương 1 (1).ppt của trường  ĐH Ngoại thương
PLĐC-chương 1 (1).ppt của trường ĐH Ngoại thương
 
40 câu hỏi - đáp Bộ luật dân sự năm 2015 (1).doc
40 câu hỏi - đáp Bộ  luật dân sự năm  2015 (1).doc40 câu hỏi - đáp Bộ  luật dân sự năm  2015 (1).doc
40 câu hỏi - đáp Bộ luật dân sự năm 2015 (1).doc
 

Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iOS (iPhone/iPad)

  • 1. 2013 Nguyễn Anh Tiệp - Cao Thanh Vàng Đại Học Lạc Hồng 20/11/2013 Tài Liệu Hướng Dẫn Xây Dựng Ứng Dụng iPhone
  • 2. MỤC LỤC CHƯƠNG I CHUẨN BỊ TRƯỚC KHI BẮT ĐẦU XÂY DỰNG ỨNG DỤNG...........1 1.1 CHUẨN BỊ HỆ ĐIỀU HÀNH MAC OS ....................................................................2 1.1.1 Lập Trình Ứng Dụng Iphone Trên Windows ..................................................2 1.1.2 Sử Dụng Sản Phẩm Chính Hãng Apple............................................................3 1.1.3 Chạy Hệ Điều Hành Mac Os Trên Pc/Laptop Intel/Amd – Tại Sao Không? .......................................................................................................................................5 1.2 PHẦN MỀM XCODE ..................................................................................................7 1.2.1 Cài Đặt Thông Qua Bản Tải Về Từ Trang Dành Cho Developer..................8 1.2.2 Cài Đặt Thông Qua Apple Mac Store.............................................................10 1.2.3 Cài Đặt Từ Bản Xcode Được Chia Sẻ Trên Internet ....................................11 CHƯƠNG II TÌM HIỂU XCODE VÀ IOS SIMULATOR .........................................12 2.1 TÌM HIỂU XCODE 5 ................................................................................................13 2.1.1 Giới Thiệu Về Xcode 5 .....................................................................................13 2.1.2 Thao Tác Tạo Ứng Dụng Mới .........................................................................16 2.1.3 Tìm Hiểu Giao Diện Xcode Và Một Số Tính Năng .......................................20 2.1.4 Thiết Kế Giao Diện ...........................................................................................26 2.1.5 Viết Code ...........................................................................................................29 2.1.6 Thực Thi Và Kiểm Tra Lỗi Của Ứng Dụng...................................................34 2.2 TÌM HIỂU IOS SIMULATOR .................................................................................38 2.2.1 Giới Thiệu iOS Simulator ................................................................................38 2.2.2 Tìm Hiểu iOS Simulator ..................................................................................38 CHƯƠNG III NGÔN NGỮ OBJECTIVE-C ................................................................48 3.1 GIỚI THIỆU NGÔN NGỮ OBJECTIVED-C ........................................................49 3.2 KHAI BÁO BIẾN - CÁCH SỬ DỤNG.....................................................................49 3.2.1 Biến.....................................................................................................................49 3.2.2 Quy Tắc Đặt Tên...............................................................................................50 3.3 KIỂU DỮ LIỆU ..........................................................................................................50
  • 3. 3.4 PHÉP TOÁN...............................................................................................................51 3.5 CHÚ THÍCH CODE ..................................................................................................51 3.6 XUẤT DỮ LIỆU RA MÀN HÌNH............................................................................52 3.7 FUNCTION.................................................................................................................54 3.7.1 Định Nghĩa.........................................................................................................54 3.7.2 Phương Thức Không Có Tham Số Truyền Vào ...........................................54 3.7.3 Phương Thức Có 1 Tham Số Truyền Vào......................................................55 3.7.4 Phương Thức Có Nhiều Tham Số Truyền Vào..............................................55 3.8 CẤU TRÚC ĐIỀU KIỆN...........................................................................................57 3.8.1 Câu Lệnh If .......................................................................................................57 3.8.2 Câu Lệnh If – Else ............................................................................................57 3.8.3 Câu Lệnh Switch - Case ...................................................................................58 3.9 Cấu Trúc Lặp..............................................................................................................59 3.9.1 Vòng Lặp For ....................................................................................................59 3.9.2 Vòng Lặp While ................................................................................................59 3.9.3 Vòng Lặp Do-While..........................................................................................60 3.10 MẢNG........................................................................................................................61 3.10.1 Định Nghĩa.......................................................................................................61 3.10.2 Mảng Nsarray .................................................................................................61 3.11 CHUỖI – ĐỐI TƯỢNG NSSTRING......................................................................62 3.11.1 Khởi Tạo Chuỗi...............................................................................................62 3.11.2 Đối Tượng NSString.......................................................................................63 3.11.3 Tìm Kiếm Bên Trong Chuỗi..........................................................................63 3.11.4 Tìm Chuỗi Và Thay Nó Thành Chuỗi Khác................................................64 3.11.5 Xoá Nội Dung Bên Trong Chuỗi ...................................................................64 3.11.6 Cắt Chuỗi.........................................................................................................65 3.11.7 Chèn Ký Tự Vào Trong Chuỗi......................................................................66 3.11.8 Chèn Ký Tự Vào Cuối Chuỗi ........................................................................66 3.11.8 So Sánh Chuỗi.................................................................................................67 3.11.9 So Sánh Chuỗi Với Ký Tự Đầu Và Cuối Chuỗi...........................................67
  • 4. 3.11.10 Chuyển Đổi Hình Dạng Của Chữ................................................................68 3.11.11 Chuyển Chuỗi Thành Dạng Số....................................................................70 CHƯƠNG IV MỘT SỐ THAO TÁC CƠ BẢN.............................................................72 4.1 APP ICON – LOADING SCREEN ..........................................................................73 4.1.1 App Icon.............................................................................................................73 4.1.2 Loading Screen..................................................................................................75 4.2 THAY ĐỔI APP NAME............................................................................................76 4.3 ẨN STATUS BAR ......................................................................................................78 4.4 BACKGROUND.........................................................................................................79 4.4.1 Background Image............................................................................................79 4.4.2 Background Color ............................................................................................83 4.5 THÊM FRAMEWORK .............................................................................................84 CHƯƠNG V MỘT SỐ ĐỐI TƯỢNG CƠ BẢN............................................................86 5.1 ĐỐI TƯỢNG LABEL – BUTTON – TEXT FIELD...............................................87 5.1.1 Giới Thiệu..........................................................................................................87 5.1.2 Ví Dụ ..................................................................................................................90 5.2 KẾT NỐI CƠ SỞ DỮ LIỆU VỚI SQLITE .............................................................94 5.2.1 Giới Thiệu..........................................................................................................94 5.2.2 Cài Đặt Sqlite Manager Cho Firefox ..............................................................94 5.2.3 Cấu Hình Ứng Dụng Để Tương Tác Với Sqlite.............................................95 5.2.4 Các Hàm Trong Sqlite......................................................................................96 5.2.5 Ví Dụ ..................................................................................................................99 5.3 SỬ DỤNG CAMERA IPHONE ..............................................................................109 5.3.1 Giới Thiệu........................................................................................................109 5.3.2 Ví Dụ ................................................................................................................109 5.4 UIIMAGE..................................................................................................................113 5.4.1 Giới Thiệu........................................................................................................113 5.4.2 Các Định Dạng Ảnh Hỗ Trợ Trên Iphone ...................................................114 5.4.3 Ví Dụ ................................................................................................................114 5.5 UIALERT VIEW......................................................................................................121
  • 5. 5.5.1 Giới Thiệu........................................................................................................121 5.5.2 Đặc Điểm..........................................................................................................121 5.5.3 Ví Dụ ................................................................................................................122 5.6 UISLIDER.................................................................................................................124 5.6.1 Giới Thiệu........................................................................................................124 5.6.2 Đặc Điểm..........................................................................................................125 5.6.3 Ví Dụ ................................................................................................................125 5.7 UIWEBVIEW ...........................................................................................................128 5.7.1 Giới Thiệu........................................................................................................128 5.7.2 Ví Dụ ................................................................................................................129 5.8 ACTIVITY INDICATOR VIEW............................................................................132 5.8.1 Giới Thiệu........................................................................................................132 5.8.2 Ví Dụ ................................................................................................................132 5.9 ACTIONSHEET.......................................................................................................136 5.9.1 Giới Thiệu........................................................................................................136 5.9.2 Đặc Điểm..........................................................................................................136 5.9.3 Ví Dụ ................................................................................................................137 5.10 MK MAP VIEW.....................................................................................................138 5.10.1 Giới Thiệu......................................................................................................138 5.10.2 Ví Dụ ..............................................................................................................139 5.11 TABLE VIEW CONTROLLER...........................................................................143 5.11.1 Giới Thiệu......................................................................................................143 5.11.2 Ví Dụ ..............................................................................................................143 5.12 SEARCH BAR........................................................................................................147 5.12.1 Giới Thiệu......................................................................................................147 5.12.2 Ví Dụ ..............................................................................................................148 5.13 TRUYỀN DỮ LIỆU GIỮA CÁC VIEW..............................................................152 5.13.1 Giới Thiệu......................................................................................................152 5.13.2 Ví Dụ ..............................................................................................................152 CHƯƠNG VI HƯỚNG DẪN XÂY DỰNG PHẦN MỀM..........................................157
  • 6. 6.1 PHẦN MỀM KIỂM TRA MÃ VIN........................................................................158 6.1.1 Giới Thiệu........................................................................................................158 6.1.2 Chuẩn Bị..........................................................................................................158 6.1.3 Cấu Trúc Phần Mềm......................................................................................158 6.1.4 Cơ Chế Vận Hành...........................................................................................159 6.1.5 Tính Năng........................................................................................................160 6.1.6 Tiến Hành........................................................................................................163 6.2 PHẦN MỀM TÌM KIẾM ĐỊA ĐIỂM XUNG QUANH (PLACESNEARME) ..220 6.2.1 Giới Thiệu........................................................................................................220 6.2.2 Chuẩn Bị..........................................................................................................220 6.2.3 Cấu Trúc Phần Mềm......................................................................................220 6.2.4 Cơ Chế Vận Hành Của Placesnearme..........................................................221 6.2.5 Tính Năng........................................................................................................222 6.2.6 Tiến Hành........................................................................................................226 CHƯƠNG VII ĐƯA ỨNG DỤNG LÊN IPHONE......................................................385 7.1 GIỚI THIỆU.............................................................................................................386 7.2 QUÁ TRÌNH CHUẨN BỊ ........................................................................................386 7.3 TIẾN HÀNH .............................................................................................................388 CHƯƠNG VIII MỘT SỐ VẤN ĐỀ KHÁC................................................................396 8.1 XÂY DỰNG ỨNG DỤNG CHO IOS 6 - IOS 6.1 TRÊN XCODE 5 ...................397 8.2 XÂY DỰNG ỨNG DỤNG HỖ TRỢ NHIỀU VERSION IOS .............................403 CÂU HỎI THƯỜNG GẶP............................................................................................407 PHỤ LỤC ........................................................................................................................411
  • 7. LỜI MỞ ĐẦU Ngày nay xu hướng sử dụng Smartphone và máy tính bảng đang gia tăng nhanh chóng trên thế giới nói chung và Việt Nam nói riêng, trong đó Việt Nam hiện đang đứng thứ hai thế giới về tốc độ tăng trưởng smartphone & máy tính bảng với tốc độ tăng trưởng 266%. Android, iOS, Windows Phone là những hệ điều hành chạy trên Smartphone và máy tính bảng phổ biến nhất thế giới: Android 75%, iOS 17,3%, Windows Phone 3,2%. Tại Việt Nam, theo nghiên cứu của IDC, vào thời điểm quý 2/2013, iOS đang chiếm tỉ lệ 1.6% trên tổng số thiết bị phân phối tại Việt Nam, đứng thứ ba sau Android và Windows Phone. Cùng với sự tăng trưởng của Smartphone và các hệ điều hành chạy trên Smartphone, số lượng ứng dụng cho các hệ điều hành ngày càng tăng, tính cho đến hết năm 2012, số lượng ứng dụng iOS trên Apple App Store đã hơn 775.000 ứng dụng và Google Play đã có hơn 700.000 ứng dụng.Với sự phát triển quy mô lớn của ứng dụng, nhu cầu tìm hiểu về lập trình ứng dụng cho các hệ điều hành cũng tăng dần. Tuy nhiên, thực tiễn cho thấy, việc tìm hiểu cũng như tham gia các lớp học về lập trình ứng dụng iPhone ở Việt Nam còn nhiều hạn chế và khó khăn.Các lớp dạy lập trình ứng dụng iPhone chỉ mới xuất hiện nhiều trong thời gian gần đây, do đó số lượng vẫn còn hạn chế. Bên cạnh đó nguồn tài liệu tiếng Việt còn ít, việc tìm hiểu và sử dụng công cụ lập trình cũng như tham khảo tài liệu tiếng Anh về lập trình ứng dụng iPhone đòi hỏi người tìm hiểu phải tiêu tốn một khoảng thời gian dài cũng như có một ít hiểu biết về lập trình và khả năng đọc hiểu tiếng Anh tốt. Hơn nữa các tài liệu tiếng Việt do các trung tâm giảng dạy lập trình iPhone biên soạn chỉ lưu hành nội bộ, người tìm hiểu buộc phải chi một khoản tiền để tham dự lớp học mới có thể có được những tài liệu này. Với mong muốn tìm hiểu cách xây dựng ứng dụng iPhone để có thêm kiến thức mới, giúp ích cho quá trình làm việc sau khi ra trường cũng như giảm bớt những khó khăn cho người mới bắt đầu tìm hiểu về lập trình ứng dụng trên iPhone, nhóm nghiên cứu đã thực
  • 8. hiện nghiên cứu, xây dựng một số ứng dụng trên iPhone dựa trên kiến thức tìm hiểu được, từ đó tổng hợp và xây dựng thành tài liệu Hướng dẫn xây dựng ứng dụng trên iPhone. Với những ví dụ riêng cho từng đối tượng, người đọc sẽ dễ dàng nắm bắt và hiểu rõ cách sử dụng, chức năng của từng đối tượng khác nhau. Bên cạnh đó tài liệu còn kèm theo hướng dẫn chi tiết từng bước để xây dựng một vài ứng dụng thực tế mà nhóm nghiên cứu đã thực hiện được trong quá trình nghiên cứu. Hi vọng rằng nội dung của tài liệu này sẽ giúp ích phần nào cho mọi người khi bắt đầu tìm hiểu về lập trình iPhone, từ đó có thể tiết kiệm bớt thời gian cho quá trình tìm hiểu. Mọi ý kiến đóng góp xin liên lạc qua email caothienmokimlong@gmail.com hoặc anhtiep20@gmail.com. Rất mong nhận được sự góp ý chân thành từ mọi người để tài liệu hướng dẫn ngày càng hoàn thiện hơn. Nhóm nghiên cứu Nguyễn Anh Tiệp – Cao Thanh Vàng
  • 9. CHƯƠNG I CHUẨN BỊ TRƯỚC KHI BẮT ĐẦU XÂY DỰNG ỨNG DỤNG Quá trình chuẩn bị trước khi bắt đầu lập trình ứng dụng trên iPhone là quá trình cơ bản mà bạn phải chuẩn bị cho thật kỹ lưỡng. Quá trình này sẽ chuẩn bị cho bạn các điều kiện cần thiết để có thể thuận lợi bắt đầu tìm hiểu về lập trình ứng dụng trên iPhone. Trong chương này, bạn sẽ được giới thiệu sơ lược về quá trình chuẩn bị, các cách thức để bạn có được hệ điều hành Mac OS và bộ công cụ Xcode. Hai điều kiện này là điều kiện cần thiết để bắt đầu lập trình iOS. Tuy nhiên nội dung phần chuẩn bị hệ điều hành Mac OS chỉ được giới thiệu sơ lược với bạn các cách thức để có được một hệ điều hành Mac OS ổn định (cách thức cài đặt Mac OS trên thiết bị Intel/AMD) cho việc lập trình chứ không đi sau vào hướng dẫn cụ thể bởi điều đó thuộc về một lĩnh vực kiến thức khác đòi hỏi phải đào sâu tìm hiểu.
  • 10. 2 1.1 CHUẨN BỊ HỆ ĐIỀU HÀNH MAC OS Việc lập trình ứng dụng cho iPhone đòi hỏi bạn phải sử dụng bộ công cụ do chính Apple cung cấp gọi là Xcode, và bộ công cụ này chạy trên nền tảng của hệ điều hành Mac OS. Nếu bạn muốn bắt đầu cho việc xây dựng ứng dụng cho iPhone thì bạn nên bắt đầu ngay với việc chuẩn bị cho mình một chiếc máy chạy hệ điều hành Mac OS. Sau đây chúng tôi sẽ giới thiệu cho bạn một số cách thức để bạn có thể sở hữu cho mình một hệ điều hành Mac OS phù hợp. 1.1.1 Lập Trình Ứng Dụng Iphone Trên Windows Nếu bạn muốn lập trình ứng dụng cho iPhone, nhưng lại muốn thực hiện trên môi trường Windows để có thể thao tác thêm các công việc khác trên môi trường này, lựa chọn tốt nhất cho bạn lúc này chính là sử dụng một máy ảo chạy hệ điều hành Mac OS để lập trình. Tuy nhiên nếu bạn lựa chọn phương án này, cấu hình máy của bạn phải mạnh, CPU xử lý tốt, và bạn nên dành ít nhất 2G RAM cho máy ảo hoạt động tốt hơn. Làm cách nào để tôi có thể sở hữu một máy ảo chạy Mac OS cho riêng mình? Bạn có hai cách để có thể sở hữu một máy ảo chạy Mac OS cho mình. Cách một là bạn chuẩn bị một đĩa cài Mac OS và phần mềm hỗ trợ tạo máy ảo như VMWare , Virtualbox … sau đó bạn tiến hành cài đặt bình thường bằng tay. Đĩa cài đặt Mac OS bạn có thể mua ở các tiệm bán đĩa phần mềm. Hoặc bạn có thể tải về trên mạng một đĩa cài Mac OS đuôi .iso ( Thường thì trên mạng có đĩa cài đuôi .dmg, bạn phải chuyển đổi qua đuôi .iso để được hỗ trợ tốt nhất từ phần mềm tạo máy ảo). Cách thứ hai là bạn tải về một máy ảo hoàn chỉnh đã được cài đặt sẵn Mac OS, sau đó mở lên bằng phần mềm chạy máy ảo là bạn đã có thể có một hệ điều hành Mac OS. Bạn nên truy cập vào Diễn đàn Tinh Tế: www.tinhte.vn/forums/chuyen-de-hackintosh.361/ . Cộng đồng Hackinosh: www.facebook.com/groups/hackintoshvietnam/.
  • 11. 3 để tìm hiểu thêm tiến trình cài đặt máy ảo, các vấn đề xảy ra trong quá trình cài. Ngoài ra bạn cũng có thể tìm các máy ảo chạy Mac OS cài đặt sẵn tại Soul Dev Team: http://www.souldevteam.net/ . 1.1.2 Sử Dụng Sản Phẩm Chính Hãng Apple Nếu gia đình bạn có điều kiện, bạn có thể mua ngay cho mình một chiếc máy Apple chính hãng, sử dụng trọn vẹn tính năng cũng như sự hỗ trợ tối đa từ Apple. Bạn truy cập vào www.apple.com , chọn Store, sau đó lựa chọn Shop Mac để đến chuyên mục bán các sản phẩm chạy Mac OS của Apple. Tại đây bạn có thể lựa chọn nhiều loại sản phẩm khác nhau như Macbook Air, Macbook Pro, iMac, Mac mini…. Hình 1.1 Truy cập Store Mac OS Tùy theo sở thích và nhu cầu, cũng như khả năng tài chính mà bạn lựa chọn cho mình một chiếc máy thích hợp. Bạn có thể thanh toán cho Apple và đợi hàng được chuyển về, hoặc tìm đến các trung tâm bán hàng của Apple ở gần nhà để mua. Hoặc bạn cũng có thể truy cập vào địa chỉ www.apple.com/asia/reseller/ để tìm kiếm các địa điểm bán hàng của Apple gần nhất. Ở Việt Nam, bạn hãy truy cập vào trang
  • 12. 4 www.icenter.com.vn để có thể nhanh chóng tìm được cửa hàng bán sản phẩm của Apple gần nhất nơi bạn sống. Việc này giúp bạn có thể nhanh chóng có trong tay một sản phẩm chính hãng Apple, thanh toán tiện lợi mà không phải tốn thời gian cho việc chuyển khoản thanh toán cũng như chờ đợi vận chuyển sản phẩm từ nước ngoài về. Nếu muốn tiết kiệm thêm chi phí bạn có thể truy cập www.store.apple.com/us/browse/home/specialdeals/mac để tìm mua các giảm phẩm Refurbished của Apple với mức giá thấp hơn. Hình 1.2 Store Refurbished Nếu bạn muốn mua máy chính hãng Apple với giá rẻ hơn nữa, thì việc mua lại sản phẩm đã qua sử dụng là một gợi ý đáng cho bạn cân nhắc. Đối với việc mua lại máy đã qua sử dụng bạn có thể vào một số trang mua bán có chất lượng để tìm mua sản phẩm phù hợp với túi tiền. Chẳng hạn như các trang www.5giay.vn, www.nhattao.com ….. là các trang với rất nhiều sự chọn, các dòng máy đa dạng cũng như mức tiền khác nhau, tùy theo nhu cần và điều kiện cho phép mà bạn có thể tìm được một chiếc máy đúng ý mình.
  • 13. 5 Hình 1.3 Mua lại máy cũ Nếu bạn lựa chọn mua máy cũ, phải lựa chọn thật kỹ lưỡng từ đời máy đến cấu hình, tốt nhất nên chọn mua những máy sản xuất trong 1-2 năm gần nhất, đặc biệt bạn phải kiểm tra xem máy mình muốn mua có hỗ trợ những phiên bản Mac OS nào. Vì sao phải như vậy ? Bởi vì Xcode 5 chạy trên Mac OS 8 trở lên, nếu bạn chọn mua máy chỉ hỗ trợ Mac OS 7 trở về trước, thì bạn không thể cài được Xcode 5 mà chỉ có thể sử dụng các phiên bản thấp hơn. 1.1.3 Chạy Hệ Điều Hành Mac Os Trên Pc/Laptop Intel/Amd – Tại Sao Không? Việc cài Mac OS lên chiếc PC hay laptop của bạn cũng là một phương pháp tốt để vừa có được hệ điều hành Mac OS, vừa có thêm kinh nghiệm trong quá trình cài đặt, và hơn nữa là tiết kiệm được chi phí. Có hai dạng cài đặt hackintosh là cài đặt từ một bản đã được chỉnh sửa sẵn như iAtkos ( hỗ trợ dòng máy intel ) hay Niresh (hỗ trợ thêm dòng máy AMD) và cài đặt từ đĩa gốc của Apple (Mac OS Retail) . Dạng cài đặt từ đĩa gốc của Apple đòi hỏi bạn sau khi cài đặt phải tiến hành thêm nhiều thao tác khác để có thể có
  • 14. 6 được một hệ điều hành Mac OS hoàn thiện, còn đối với bản đã chỉnh sửa sẵn thì gần như không điều chỉnh thêm nhiều. Hình 1.4 iATKOS và Niresh Bạn có hai phương án để lựa chọn nếu muốn chạy Mac OS lên máy của mình: tự cài thủ công và thuê người cài đặt. Nếu bạn thuê người cài đặt, chi phí thường khoảng từ 100.000 vnđ đến 200.000 vnđ tùy theo yêu cầu cài đặt như thế nào. Hình 1.5 Tìm kiếm “Cài đặt Mac OS cho PC/Laptop”
  • 15. 7 Với việc thuê người cài, bạn chỉ gần báo cấu hình máy cho người cài đặt để họ quyết định và cho bạn lời khuyên. Bởi việc cài đặt Hackintosh phụ thuộc rất nhiều vào độ tương thích phần cứng của thiết bị với hệ điều hành Mac OS, do đó không phải máy nào cũng có thể cài được. Tuy nhiên phương án này giúp bạn đỡ vất vả hơn, cũng như tiết kiệm được thời gian hơn. Một phương án khác đó là bạn tự cài. Với cách lựa chọn này, bạn phải tìm hiểu về Hackintosh, cũng như các lưu ý khi cài đặt, các lỗi xảy ra và cách khắc phục … Nếu bạn lựa chọn cách này, bạn nên tìm hiểu một số diễn đàn, hội nhóm chuyên về Hackintosh để có thêm kiến thức, kinh nghiệm và sự trợ giúp từ cộng đồng. Ở đây chúng tôi giới thiệu cho bạn hai địa chỉ uy tín về Hackintosh: - Chuyên Đề Hackintosh trên Tinh Tế ở địa chỉ: www.tinhte.vn/forums/chuyen- de-hackintosh.361/ - Group Hackintosh – We Love Mac ở địa chỉ: www.facebook.com/groups/hackintoshvietnam/ Tại đây bạn sẽ tìm được nhiều tài liệu hướng dẫn cũng như sự giúp đỡ tận tình của mọi người, hi vọng bạn sẽ có một hệ điều hành Mac OS hoàn chỉnh. Bạn có biết: - Phần cứng của máy tính rất quan trọng khi quyết định cài Mac OS lên máy tính thông thường vì không phải phần cứng nào cũng có thể tìm được Kext (Có thể hiểu giống như Driver cho thiết bị trên hệ điều hành Windows. - Card VGA Intel Graphic HD 4000 và Intel Graphic HD 3000 được Mac OS hỗ trợ Kext rất tốt. - Đa phần dòng HP Probook hỗ trợ tốt Hackintosh. 1.2 PHẦN MỀM XCODE Sau khi bạn đã có được hệ điều hành Mac OS, việc tiếp theo bạn phải làm trước khi có thể bắt đầu lập trình ứng dụng iPhone là cài bộ công cụ lập trình Xcode do Apple cung
  • 16. 8 cấp cho các nhà lập trình ứng dụng, để các nhà lập trình có thể phát triển ứng dụng cho cả iOS lẫn Mac OS. Việc cài đặt Xcode có nhiều cách, tùy theo bạn chọn lựa cách nào phù hợp với bản thân. 1.2.1 Cài Đặt Thông Qua Bản Tải Về Từ Trang Dành Cho Developer Bạn truy cập vào trang www.developer.apple.com để tiến hành tải phiên bản Xcode mới nhất ( hoặc các phiên bản khác tùy theo nhu cầu của bạn). Hình 1.6 Tải Xcode từ trang Developer Tiếp theo bạn lựa chọn View Download.
  • 17. 9 Hình 1.7 Chọn View Download Apple sẽ yêu cầu bạn đăng nhập tài khoản Developer ID để tiếp tục. Hình 1.8 Đăng nhập Developer ID Sau khi bạn đăng nhập bằng tài khoản Developer xong, thực hiện theo hướng dẫn, bạn sẽ tải về được phần mềm Xcode và tiến hành cài đặt trên máy.
  • 18. 10 Với tài khoản Developer ID với giá 99$ / năm, bạn sẽ luôn được Apple cập nhật thông tin công nghệ mới, cũng như hỗ trợ, sử dụng trước các phiên bản mới của Apple như các bản preview iOS, Mac OS, Xcode… 1.2.2 Cài Đặt Thông Qua Apple Mac Store Đây là cách phổ biến nhất, vì việc tải Xcode trên Apple Store là miễn phí, và chỉ cần bạn có một tài khoản Apple ID là được, không yêu cầu phải là Developer ID. Bạn chỉ cần truy cập vào Apple Mac Store và tìm kiếm Xcode, bạn sẽ thấy kết quả là phần mềm Xcode Free, công việc bây giờ là bạn chỉ cần Install và chờ đợi hoàn tất. Hình 1.9 Cài đặt Xcode qua Apple Mac Store
  • 19. 11 Trong App Store bạn cũng có thể tìm được nhiều giáo trình, bài giảng về lập trình ứng dụng bằng Xcode. 1.2.3 Cài Đặt Từ Bản Xcode Được Chia Sẻ Trên Internet Đối với cách cài đặt này, bạn chỉ cần truy cập internet và tìm bản cài đặt Xcode được chia sẻ trên mạng và tải về cài đặt trên máy của bạn. Tuy nhiên bạn sẽ mất thời gian để tìm kiếm trên internet để tìm được bản cài đặt vừa ý, tốc độ tải tốt nhất.
  • 20. CHƯƠNG II TÌM HIỂU XCODE VÀ IOS SIMULATOR Chương này sẽ mang đến cho bạn kiến thức về bộ công cụ Xcode cũng như công cụ giả lập hệ điều hành iOS là iOS Simulator. Qua những kiến thức được cung cấp, bạn sẽ nắm rõ về giao diện, một số tính năng, các button và công dụng của nó trên Xcode và iOS Simulator. Ngoài ra, bạn sẽ được hướng dẫn một số thao tác cơ bản khi sử dụng Xcode, iOS Simulator từ đó bạn sẽ dễ dàng hơn trong việc sử dụng bộ công cụ này trong quá trình lập trình ứng dụng iPhone về sau.
  • 21. 13 2.1 TÌM HIỂU XCODE 5 2.1.1 Giới Thiệu Về Xcode 5 Phần mềm Xcode là bộ công cụ do Apple cung cấp cho các lập trình viên để lập trình ứng dụng cho các thiết bị chạy hệ điều hành của Apple. Phiên bản mới nhất hiện nay của Xcode là bản Xcode 5 trên trang Developer của Apple. Hình 2.1 Phiên bản Xcode 5 trên trang Apple Giao diện làm việc của Xcode gồm có 5 phần chính : Toolbar, Editor area, Navigator area, Debug area, Utility area. - Debug area : đây là vùng hỗ trợ bạn trong quá trình debug lỗi của chương trình. - Toolbar area: vùng chứa các công cụ tiện ích giúp bạn có thể đơn giản trong việc chạy, debug ứng dụng, lựa chọn iOS Simulator, đóng mở các vùng khác… - Editor area: vùng để bạn thiết kế giao diện, viết và chỉnh sửa code của chương trình. - Utility area: vùng này cho phép bạn tùy chỉnh các tham số, giá trị của các đối tượng trên giao diện, cũng như cho phép bạn kéo thả và sử dụng các đối tượng
  • 22. 14 có sẵn của Xcode như Button, Label, Slider… hay các đoạn code mẫu ( If, Switch…). - Navigator area: cung cấp cho bạn một cách nhìn trực quan, tiện lợi cho việc quản lý ứng dụng, xem thông báo lỗi, tìm kiếm một đoạn code trong chương trình hay kiểm tra mức độ hoạt động của RAM, CPU khi chạy ứng dụng… Hình 2.2 Giao diện Xcode Xcode cũng cung cấp cho bạn một chế độ gỡ lỗi thông minh hỗ trợ bạn trong việc phát hiện lỗi, cảnh báo lỗi và gợi ý thay thế khắc phục
  • 23. 15 Hình 2.3 Chế độ gỡ lỗi Hơn thế nữa, kèm theo Xcode là một bộ tài liệu hướng dẫn từng bước, chi tiết và tiện lợi nhằm hỗ trợ người dùng trong việc lập trình. Trong quá trình viết ứng dụng, nếu bạn muốn tìm hiểu thêm một đối tượng, bạn có thể sử dụng tới bộ tài liệu này để có được hướng dẫn, ví dụ minh họa dễ hiểu. Hình 2.4 Tài liệu hướng dẫn
  • 24. 16 Bạn có thể xem thêm tài liệu về Xcode do Apple cung cấp tại: https://developer.apple.com/library/ios/documentation/ToolsLanguages/Conceptual/Xcod e_Overview/About_Xcode/about.html 2.1.2 Thao Tác Tạo Ứng Dụng Mới Khi khởi động Xcode lên, giao diện hiện ra cho phép bạn tạo một project mới, hoặc mở lại các project gần đây. Hình 2.5 Giao diện Xcode khi mở lên Tại giao diện Xcode, bạn có thể tạo mới một project bằng cách chọn Create new project. Ngoài ra bạn có thể tạo project mới bằng cách chọn File > New > Project.
  • 25. 17 Hình 2.6 Tạo mới Project bằng Menu Sau khi chọn New Project, Xcode sẽ yêu cầu bạn lựa chọn một hình thức cho Project này (ứng dụng cho iPhone hay Mac OS, Single View hay Empty View…). Cách đơn giản nhất là bạn chọn Single View. Hình 2.7 Chọn lựa mẫu cho project
  • 26. 18 Tiếp theo đó bạn điền thêm một vài thuộc tính của Project như Product Name, Organization Name, Company Identifer. Sau đó bạn tiến hành lựa chọn Devices cho Project (iPhone, iPad hay Universal để viết ứng dụng cho cả hai). Hình 2.8 Điền thông tin cho project Tiếp theo bạn chọn nơi lưu trữ Project trên máy tính để lưu Project và chọn Create.
  • 27. 19 Hình 2.9 Chọn nơi lưu Project Như vậy bạn đã tạo xong một Project mới. Hình 2.10 Giao diện project mới tạo
  • 28. 20 2.1.3 Tìm Hiểu Giao Diện Xcode Và Một Số Tính Năng 2.1.3.1 Navigator Area Navigator area cho phép bạn quản lý ứng dụng hiệu quả như quản lý các tập tin, thư mục, quản lý các thông báo lỗi và cảnh báo, quản lý việc debug…Có thể chia Navigator area thành hai phần chính là Navigator selector bar và Content area. Hình 2.11 Giao diện Navigator Trong Navigator selector bar gồm một số button chính sau: - Project Navigator ( ): dùng để quản lý các tập tin của ứng dụng như thêm, xóa, gom nhóm…Các tập tin quản lý sẽ được thể hiện trong Content area.
  • 29. 21 - Find Navigator ( ): sử dụng để tìm kiếm một cách nhanh chóng các string trong ứng dụng, tìm kiếm nội dung mở rộng. - Issue Navigator ( ): quản lý các thông báo lỗi, cảnh báo của ứng dụng. - Debug Navigator( ): theo dõi quá trình debug ứng dụng. 2.1.3.2 Editor Area Editor area cho phép bạn thiết kế giao diện, viết và sửa code cho ứng dụng. Khi bạn chọn tập tin storyboard bên Content area thì Editor area sẽ hiển thị giao diện Interface Builder cho bạn thiết kế giao diện. Tương tự với tập tin .m và .h thì Editor area sẽ hiển thị nội dung code của tập tin. Hình 2.12 Giao diện ứng dụng
  • 30. 22 Hình 2.13 Giao diện code Editor area còn cho phép bạn quản lý các đối tượng trong giao diện một cách chi tiết hơn. Trong phần Interface Builder, bạn chọn button Show Document Outline ( ) bên góc trái màn hình, bạn sẽ thấy được một vùng quản lý phân cấp các đối tượng.
  • 31. 23 Hình 2.14 Giao diện quản lý chi tiết 2.1.3.3 Toolbar Area Toolbar cho phép thực hiện một số thao tác một cách nhanh chóng thông qua các Button mà không cần phải dùng tới Menu. Toolbar gồm một số thành phần sau: - Run button ( ): dùng để chạy thử ứng dụng. - Stop button ( ): dùng để dừng việc chạy thử ứng dụng. - Scheme menu ( ): dùng để lựa chọn iOS Simulator thích hợp để chạy ứng dụng. - Activity viewer: thông báo trạng thái của ứng dụng, cũng như hiện các trạng thái lỗi, cảnh báo của chương trình (nếu có). Hình 2.15 Activity viewer
  • 32. 24 - Editor selector ( ): gồm các button dùng để điều chỉnh Editor area (cho phép chia đôi Editor area ra làm hai hay chỉ là một vùng duy nhất…). - View selector ( ): dùng để ẩn/hiện các vùng Navigator area, Utility area, Debug area. Hình 2.16 Toolbar area 2.1.3.4 Utility Area Utility area được sử dụng để thay đổi các thuộc tính của đối tượng bên Interface Builder, ngoài ra còn được sử dụng để lựa chọn và kéo thả các đối tượng, đoạn code mẫu vào Interface Buider và Editor. Utility area được chia làm 2 vùng chính là Inspector và Library. Inspector pane là vùng cho phép bạn có sự thay đổi thuộc tính của đối tượng. Trên đầu của Inspector pane là Inspector selector bar bao gồm các button hỗ trợ bạn trong việc điều chỉnh thuộc tính. Trên đầu của Libarary pane là Libaray selector bar bao gồm các button để bạn có thể chọn lựa phù hợp trong việc sử dụng các đoạn code mẫu, các đối tượng.
  • 33. 25 Hình 2.17 Utility area Trong Inspector selector bar, có hai button bạn cần lưu ý là Attribute ( ) và Quick Help ( ). Quick Help cho phép bạn tra cứu một cách nhanh chóng các đối tượng, hàm trong tài liệu kèm theo của Xcode. Attribute cho phép bạn thay đổi các thuộc tính của đối tượng. Trong Library selector bar, có một số button quan trọng là Code snippets ( ), Objects ( ). Code snippets hiển thị cho bạn danh sách các đoạn code mẫu để bạn lựa chọn sử dụng trong quá trình viết ứng dụng. Objects hiển thị các đối tượng của Xcode cho bạn sử dụng thiết kế giao diện ứng dụng.
  • 34. 26 2.1.4 Thiết Kế Giao Diện Giao diện ứng dụng trong Xcode được thiết kế thông qua Interface Builder, các đối tượng của Interface Builder được cung cấp trong Utility area. Để tiến hành thiết kế giao diện, bạn kéo thả đối tượng trong Utility area vào Interface Builder. Hình 2.18 Kéo thả các đối tượng vào giao diện Tại đây bạn có thể điều chỉnh, sắp xếp vị trí của các đối tượng theo ý tưởng thiết kế của bạn. Trong Xcode, tập tin bạn dùng để thiết kế giao diện là tập tin .storyboard. Khi kéo thả các đối tượng vào Interface Builder, bạn sẽ dễ dàng xác định vị trí đặt đối tượng sao cho giao diện cân đối, không bị hiện tượng lệch khi Run ứng dụng. Đó là nhờ vào tính năng hỗ trợ canh chỉnh của Xcode thông qua các đường kẻ đứt nét màu xanh.
  • 35. 27 Hình 2.19 Canh chỉnh vị trí theo đường kẻ xanh Bạn có thể điều chỉnh các thuộc tính của các đối tượng trong Interface Builder thông qua vùng Inspector pane.
  • 36. 28 Hình 2.20 Thay đổi thuộc tính của đối tượng Để tìm kiếm đối tượng một cách nhanh chóng, bạn sử dụng công cụ tìm kiếm trong Library pane. Hình 2.21 Tìm kiếm trong Library
  • 37. 29 Hơn nữa, nếu bạn muốn tìm hiểu rõ hơn về đối tượng đó, xem ví dụ cụ thể minh họa, bạn có thể sử dụng đến bộ tài liệu hỗ trợ của Xcode. Hình 2.22 Xem tài liệu hỗ trợ của đối tượng 2.1.5 Viết Code Phần code của ứng dụng thường được viết trong hai tập tin là .h và .m. Tập tin .h thường được sử dụng để kết nối và khai báo các đối tượng của Interface Builder trước khi muốn sử dụng các đối tượng này để lập trình. Ngoài ra tập tin .h còn dùng để khai báo các hàm sự kiện trước khi sử dụng trong tập tin .m. Tập tin .m dùng để triển khai các hàm sự kiện mà bạn đã khai báo bên tập tin .h.
  • 38. 30 Hình 2.23 Hai tập tin sử dụng để viết code cho ứng dụng Để kết nối đối tượng trong Interface Builder vào tập tin .h (ánh xạ), bạn nhấn kết hợp Ctrl + nhấp chuột vào đối tượng và kéo thả vào tập tin .h. Hình 2.24 Ánh xạ đối tượng vào tập tin .h
  • 39. 31 Khi hộp thoại hiện ra, bạn lựa chọn loại kết nối cho đối tượng là Action hoặc Outlet. Hiểu một cách đơn giản, đối tượng nào mà bạn sử dụng để hiển thị thông tin ra bên ngoài thì thuộc loại Outlet. Đối tượng nào mà bạn muốn viết code để khi tương tác với đối tượng đó sẽ cho ra kết quả mà bạn muốn ( ví dụ bạn muốn nhấn vào Button sẽ hiện “Hello World” ) thì bạn sẽ chọn loại là Action. Một đối tượng có thể vừa là Action, vừa là Outlet tùy vào người viết ứng dụng quy định. Hình 2.25 Lựa chọn kiểu ánh xạ Khi bạn viết code, Xcode hỗ trợ bạn trong việc phát hiện lỗi và thông báo cho bạn bằng hình tròn màu đỏ chứa dấu chấm than tại vị trí phát hiện lỗi. Ngoài ra Xcode cũng có chế độ cảnh báo bằng tam giác màu vàng cho đoạn code mà Xcode cho rằng cần cải thiện để bạn kịp thời kiểm tra lại và chỉnh sửa cho hiệu quả ( nếu cần ). Xcode còn hỗ trợ bạn một chế độ gợi ý sửa lỗi trong quá trình viết code. Ví dụ bạn viết code nhưng quên dấu “;” , Xcode sẽ gợi ý cho bạn có dấu “;” để hoàn tất đoạn code hoàn chỉnh.
  • 40. 32 Hình 2.26 Gợi ý khắc phục lỗi Xcode chỉ hỗ trợ khắc phục một số lỗi cơ bản về cú pháp, các lỗi liên quan khác trong quá trình viết code các bạn phải tự giải quyết Trong Library pane, Xcode hỗ trợ sẵn cho bạn một số đoạn code mẫu trong thư viện, nếu bạn cần xài đoạn code nào, bạn chỉ cần kéo thả đoạn code đó từ Library pane sang Editor area. Hình 2.27 Một số code mẫu để sử dụng
  • 41. 33 Nếu bạn có một đoạn code, bạn muốn lưu nó lại để lần sau sử dụng thì bạn chỉ cần chọn đoạn code đó và kéo thả vào Library pane, đặt tên cho đoạn code đó và lưu lại. Như vậy lần sau bạn muốn sử dụng lại, chỉ việc kéo thả từ Library sang là được. Để thuận tiện cho việc viết code nhanh chóng, bạn có thể bật chế độ chia đôi vùng Editor area làm hai, lúc này bạn có thể xem cùng lúc cả tập tin .h lẫn tập tin .m. Muốn thực hiện điều đó, trong Toolbar, bạn nhấp chuột vào nút Assistant Editor Button ( ). Hình 2.28 Chia đôi màn hình Editor để tiện làm việc Bạn có thể tùy chỉnh lại font và màu chữ để tạo nên một sự thay đổi, tạo thêm cảm hứng mới. Bạn chọn Xcode > chọn Preferences > chọn Fonts & Colors, sau đó bạn tùy chọn một định dạng mình thích.
  • 42. 34 Hình 2.29 Tùy chỉnh Font & Color cho giao diện lập trình code của Xcode Trong quá trình viết chương trình, bạn cũng có thể sử dụng nút Quick Help trong Utility area để mở tài liệu tham khảo và tra cứu các hàm cũng như xem ví dụ minh họa cho các hàm. 2.1.6 Thực Thi Và Kiểm Tra Lỗi Của Ứng Dụng 2.1.6.1 Thực Thi Ứng Dụng Khi bạn muốn chạy thử và đưa ứng dụng lên iOS Simulator, bạn sử dụng các button chuyên dụng trên Toolbar. Để chạy ứng dụng, trước tiên bạn phải chọn lựa thiết bị mà bạn muốn chạy ứng dụng lên đó. Bạn có thể chọn chạy lên thiết bị thật hoặc trên iOS Simulator. Trong iOS Simulator, tùy theo ứng dụng của bạn viết cho thiết bị nào mà lựa chọn thiết bị đó, ví dụ iPad, iPhone, iPhone Rentina…
  • 43. 35 Hình 2.30 Lựa chọn thiết bị iOS Simulator Sau khi chọn lựa xong phần thiết bị, bạn nhấn Run để chạy chương trình. Nếu muốn dừng chương trình, bạn nhấn Stop. Hình 2.31 Nhấn Stop để dừng chương trình
  • 44. 36 2.1.6.2 Kiểm Tra Lỗi Của Ứng Dụng Vùng Debug area hỗ trợ bạn debug ứng dụng để kiểm tra từng bước, ngoài ra còn có vùng Debug Navigator cho phép bạn theo dõi các tiến trình, cũng như việc sử dụng RAM, CPU. Hình 2.32 Vùng Debug Navigator Trong Debug area có các nút hỗ trợ như bật tắt các Breakpoint, nhóm nút hỗ trợ thực thi ứng dụng từng bước hỗ trợ bạn debug một cách chính xác hơn. Hình 2.33 Vùng Debug area Để đánh dấu breakpoint, bạn chọn vị trí cần đánh dấu, và nhấp chuột vào Breakpoint gutter tương đương với vị trí đó.
  • 45. 37 Hình 2.34 Đánh dấu Breakpoint Ngoài ra nếu bạn muốn thu gọn 1 đoạn code nào đó, bạn có thể sử dụng thanh đứng hỗ trợ bên cạnh thanh đứng đặt Breakpoint. Hình 2.35 Thu gọn đoạn code cho dễ nhìn
  • 46. 38 2.2 TÌM HIỂU IOS SIMULATOR 2.2.1 Giới Thiệu iOS Simulator iOS Simulator là một phần trong bộ công cụ kèm theo của phần mềm Xcode. iOS Simulator chứa iOS SDK cho phép bạn chạy trên Mac OS để giả lập môi trường iPhone, iPad nhằm phục vụ cho việc kiểm thử ứng dụng được viết ra trước khi kiểm thử ứng dụng trên thiết bị thật. iOS Simualtor cho phép bạn cài đặt nhiều thiết bị iOS khác nhau như iPhone, iPhone Rentina, iPad, iPad Rentina.. với nhiều phiên bản iOS khác nhau như 6.0, 6.1, 7.0…. Do đó bạn có thể dễ dàng xây dựng ứng dụng của mình dành cho phiên bản iOS mới hoặc dùng cho cả phiên bản iOS cũ. Với iOS Simulator, bạn có thể kiểm thử ứng dụng của bạn về thiết kế giao diện, về tính năng của ứng dụng, từ đó có thể khắc phục các lỗi phát sinh, tối ưu hóa ứng dụng trước khi bạn đem ứng dụng lên thiết bị thật. Bạn có thể đọc thêm tài liệu iOS Simulator User Guide trên iOS Developer Library để tìm hiểu thêm, cũng như có thêm kinh nghiệm sử dụng iOS Simulator. Xem tại : https://developer.apple.com/library/ios/documentation/IDEs/Conceptual/iOS_Simulator_ Guide/Introduction/Introduction.html 2.2.2 Tìm Hiểu iOS Simulator Ứng dụng iOS Simulator có thể chạy chung với phần mềm Xcode hoặc chạy độc lập đều được. Bạn có thể tương tác với iOS Simulator thông qua bàn phím, chuột để nhập dữ liệu cũng như điều khiển các sự kiện của người dùng. Phần này sẽ giúp bạn tìm hiểu một số điểm cơ bản của iOS Simulator để hỗ trợ bạn tốt hơn trong quá trình viết ứng dụng cho iOS.
  • 47. 39 2.2.2.1 Thao Tác Cơ Bản Với IOS Simulator Thao tác mở và thoát ios simulator Để mở iOS Simulator bạn có hai cách. Một là bạn chạy ứng dụng trong Xcode để khởi động iOS Simulator. Với cách này bạn chỉ cần chọn iOS Simulator phù hợp rồi chọn Run. Hình 2.36 Chọn Run để mở iOS Simulator Cách thứ hai là bạn chọn menu Xcode > chọn Open Develop Tool > iOS Simulator. Khi ấy iOS Simulator sẽ được khởi động.
  • 48. 40 Hình 2.37 Mở iOS Simulator trong Menu Mặc dù là một phần trong bộ công cụ của Xcode, nhưng iOS Simulator vẫn có thể tiếp tục hoạt động dù Xcode có bị đóng chương trình. Do đó nếu bạn muốn thoát hẳn iOS Simulator, bạn chọn menu iOS Simulator > chọn Quit iOS Simulator. Hình 2.38 Trong menu chọn Quit iOS Simulator
  • 49. 41 Xoay màn hình iOS Simulator Trong quá trình chạy ứng dụng trên iOS Simulator để kiểm thử, đôi lúc bạn cần sử dụng tới chức năng xoay màn hình để có thể kiểm tra tính tương thích của ứng dụng với từng kiểu màn hình ( ngang, đứng…) hoặc để phù hợp với ứng dụng của bạn ( chẳng hạn viết ứng dụng sử dụng màn hình ngang). Nếu là thiết bị thật, thật dễ dàng để bạn có thể xoay màn hình cho phù hợp. Tuy nhiên với iOS Simulator, bạn cần phải sử dụng đến chức năng xoay màn hình được hỗ trợ sẵn để có thể xoay màn hình theo ý muốn. Bạn có thể vào menu Hardware > chọn Rotate Left nếu bạn muốn xoay qua trái ; chọn Rotate Right nếu bạn muốn xoay qua phải ; chọn Shake Gesture nếu bạn muốn rung nhẹ. Hình 2.39 Trong menu chọn xoay màn hình iOS Simulator Ẩn/hiện keyboard Trong quá trình kiểm thử ứng dụng, nhiều trường hợp bạn cần sử dụng đến bàn phím của iOS, hoặc sau khi nhập liệu xong trong TextField nhưng ứng dụng của bạn chưa có chức năng ẩn bàn phím đi, lúc đó bạn cần sử dụng đến tính năng Keyboard của iOS Simulator để ẩn/hiện bàn phím. Bạn có thể vào menu Hardware > chọn Simulate Hardware Keyboard.
  • 50. 42 Hình 2.40 Ẩn/Hiện keyboard trong iOS Simulator Cài đặt và gỡ bỏ ứng dụng trên iOS Simulator Ứng dụng trong iOS Simulator được cài đặt thông qua Xcode. Khi bạn chạy ứng dụng bằng Xcode thì Xcode sẽ cài đặt ứng dụng đó vào iOS Simulator. Cách thức gỡ bỏ ứng dụng cũng giống như trên thiết bị iOS thật. Bạn chỉ cần nhấp và giữ chuột ( hoặc trackpad ) trên biểu tượng của ứng dụng cho đến khi xuất hiện biểu tượng dấu x, bạn chỉ cần nhấp vào dấu x để gỡ bỏ ứng dụng. Sau khi hoàn tất chỉ cần ấn Home để trở lại ban đầu.
  • 51. 43 Hình 2.41 Gỡ ứng dụng trong iOS Simulator Bổ sung thêm các phiên bản ios và các thiết bị ios iOS Simulator cho phép bạn có thể chạy ứng dụng trên nhiều loại thiết bị như iPhone, iPhone Rentina, iPad, iPad Rentina. Đồng thời, iOS Simulator cũng cho phép bạn sử dụng nhiều phiên bản khác nhau của iOS như iOS 6.0, iOS 6.1, iOS 7.0. Mặc định sau khi cài Xcode 5, iOS Simulator kèm theo đã được cài đặt để hỗ trợ các thiết bị iPhone Rentina, iPad Rentina và iOS 7.0. Nếu bạn muốn iOS Simulator chạy các thiết bị iPhone, iPad thông thường và các phiên bản iOS thấp hơn như iOS 6.0, iOS 6.1 thì bạn cần phải tải và cài đặt thêm. Bạn vào Xcode > chọn Preferences > chọn mục Download. Tại đây bạn lựa chọn phiên bản iOS cần cài đặt thêm và tải về.
  • 52. 44 Hình 2.42 Tải thêm các iOS Simulator phiên bản cũ hoặc tài liệu Chụp ảnh màn hình iOS Simulator Nếu bạn muốn chụp ảnh màn hình của iOS Simulator, bạn có thể lưu lại ảnh chụp màn hình của iOS Simulator lên màn hình của Mac OS. Để làm việc đó, bạn chọn File > chọn Save Screen Shot, khi đó ảnh chụp màn hình sẽ được lưu trên màn hình Mac OS. Hình 2.43 Chụp ảnh màn hình iOS Simulator
  • 53. 45 Copy - Paste trong iOS Simulator Trong iOS Simulator cũng hỗ trợ bạn Copy và Paste một chuỗi. Để Copy một chuỗi, bạn nhấp chuột vào chuỗi để hiển thị ra nút Select và Select All .Chọn Select nếu bạn muốn lựa chọn một từ nào đó, hoặc Select All nếu muốn chọn tất cả. Hình 2.44 Chọn Select hoặc Select All Di chuyển điểm đầu và điểm cuối để đánh dấu lại chuỗi cần chọn > chọn Copy
  • 54. 46 Hình 2.45 Lựa chọn chuỗi cần copy và chọn Copy Để Paste một chuỗi vào iOS Simulator, trước tiên bạn chọn Edit > Paste để chuyển chuỗi được copy từ Mac vào iOS Simulator. Hình 2.46 Paste từ Mac OS vào iOS Simulator
  • 55. 47 Sau đó chọn vị trí muốn Paste chuỗi trong iOS Simulator > Double-click vào vị trí đó để hiện ra nút Paste > chọn Paste. Hình 2.47 Chọn Paste 2.2.2.2 Một Số Hạn Chế Của iOS Simulator Mặc dù iOS Simulator rất hữu ích cho bạn kiểm thử ứng dụng trước khi đưa lên thiết bị thật, tuy nhiên bản thân iOS Simulator vẫn còn một số hạn chế nhất định. Đối với phần cứng, iOS Simulator vẫn còn khiếm khuyết ở một số điểm như không có camera, không có microphone… Ngoài ra còn một số framework không được hỗ trợ như Media player, Messenger UI … Nếu như ở các phiên bản trước của Xcode, iOS Simulator còn hỗ trợ được với các phiên bản của iOS thấp hơn như iOS thì trong phiên bản này, iOS Simulator chỉ hỗ trợ từ phiên bản iOS 6.0 trở lên.
  • 56. CHƯƠNG III NGÔN NGỮ OBJECTIVE-C Mặc dù Xcode hỗ trợ nhiều ngôn ngữ trong việc lập trình ứng dụng trong iPhone, nhưng đóng vai trò chủ yếu nhất vẫn là ngôn ngữ Objective-C bởi sự thân thiện, dễ sử dụng của nó. Chương này sẽ hướng dẫn bạn một số nét cơ bản của ngôn ngữ lập trình Objective-C với hi vọng bạn sẽ nắm được sơ lược cách sử dụng, cú pháp của ngôn ngữ này để thuận tiện hơn trong việc xây dựng ứng dụng. Nội dung chương sẽ trình bày sơ lược một số vấn đề sau của ngôn ngữ Objective-C:  Khai báo biến  Kiểu dữ liệu  Các phép toán  Hàm (Function)  Cấu trúc điều kiện  Cấu trúc lặp  Mảng  Chuỗi
  • 57. 49 3.1 GIỚI THIỆU NGÔN NGỮ OBJECTIVED-C Ngôn ngữ Objective-C được tạo ra bởi Brad Cox và Tom Love vào năm 1980 tại công ty Stepstone. Từ năm 1988, công ty NeXT Sofware nắm giữ bản quyền của ngôn ngữ Objective-C. Họ đã phát triển các bộ thư viện và cả môi trường phát triển cho nó có tên là NEXTSTEP. Đến cuối tháng 12 năm 1996, hãng Apple đã mua lại công ty NeXT Software, môi trường NEXTSTEP/OPENSTEP đã trở thành phần cốt lõi của hệ điều hành OS X mà Apple giới thiệu sau này. Phiên bản chính thức của môi trường phát triển này do Apple giới thiệu ban đầu có tên là Cocoa. Bằng việc hỗ trợ sẵn ngôn ngữ Objective-C, đồng thời tích hợp một số công cụ phát triển khác như Project Builder (đây là tiền thân của Xcode) và Interface Builder, Apple đã tạo ra một môi trường mạnh mẽ để phát triển ứng dụng trên Mac OS X. Đến năm 2007, Apple tung ra bản nâng cấp cho ngôn ngữ Objective-C và gọi đó là Objective-C 2.0. Ngôn ngữ lập trình Objective-C dựa trên nền tảng ngôn ngữ C nhưng bổ sung thêm hỗ trợ lập trình hướng đối tượng. Objective-C là ngôn ngữ lập trình sử dụng để viết ứng dụng cho Apple’s iOS và hệ điều hành Mac OS. 3.2 KHAI BÁO BIẾN - CÁCH SỬ DỤNG 3.2.1 Biến Biến được sử dụng để lưu trữ các giá trị của ứng dụng. Biến gồm có: kiểu dữ liệu, tên biến và giá trị của biến. Cú pháp: Kiểu_dữ_liệu tên_biến ; hoặc Kiểu_dữ_liệu tên_biến = giá_trị_của_biến; Trong đó “=”: lệnh gán giá trị cho biến VD: int x ; hoặc int x = 10;
  • 58. 50 3.2.2 Quy Tắc Đặt Tên Quy tắc đặt tên biến: - Ngôn ngữ Objective-C có phân biệt hoa thường. - Tên biến không có dấu tiếng việt. - Tên biến không có khoảng trắng. - Tên biến không được bắt đầu bằng số. - Tên biến không được có các ký tự đặc biệt (ngoại trừ dấu gạch dưới _) - Tên biến không được đặt trùng với các từ khoá của ngôn ngữ objective-C. VD: void, if, static, ... 3.3 KIỂU DỮ LIỆU Kiểu dữ liệu sẽ giúp trình biên dịch xác định được loại dữ liệu (số nguyên, số thực, chuỗi,…) mà chúng ta muốn lưu trữ là gì từ đó sẽ cấp phát lượng bộ nhớ tương ứng với loại dữ liệu mà chúng ta cần lưu trữ. Objective-C hỗ trợ các kiểu dữ liệu cơ bản như sau: Loại dữ liệu Tên kiểu Số ô nhớ Miền giá trị Kí tự char 1 byte -128 .. 127 unsigned char 1 byte 0 .. 255 Số nguyên int 4 bytes - 2147483648 .. 2147483647 unsigned int 4 bytes 0 .. 4294967295 short 2 bytes -32768 .. 32767 unsigned short 2 bytes 0 .. 65535 long 4 bytes -2147483648 .. 2147483647 unsigned long 4 bytes 0 .. 4294967295 long long 8 bytes -9,223,372,036,854,775,808 ..
  • 59. 51 9,223,372,036,854,775,807 unsigned long long 8 bytes 0 .. 18,446,744,073,709,551,615 Số thực float 4 bytes 0 .. 3.4028235e+38 double 8 bytes 0 .. 1.7976931E+308 Long double 16 bytes 0 .. 1.1897315E+509 Logic BOOL 1 bytes 0, 1; True, False; Yes, No Bảng 3.1 Kiểu dữ liệu trong Objectived-C 3.4 PHÉP TOÁN Phép toán Ký hiệu Ví dụ Cộng + A + B Trừ - A – B Nhân * A * B Chia / A / B Lấy phần dư % M % N Bảng 3.2 Các phép toán trong Objectived-C Lưu ý: phép lấy phần dư chỉ được dùng trên 2 toán hạng kiểu số nguyên (nếu không sẽ sinh lỗi cú pháp) Ví dụ: 9 % 5 = 4 3.5 CHÚ THÍCH CODE Chú thích một dòng code
  • 60. 52 //ghi chú chỉ trên 1 dòng Chú thích một đoạn code /* Ghi chú trên 1 hay nhiều dòng */ 3.6 XUẤT DỮ LIỆU RA MÀN HÌNH Hàm NSLog là hàm đặc biệt của hệ thống, hàm này được thiết kế dùng cho việc hiển thị các thông báo lỗi. Cú pháp: NSLog(“Nội dung in” [ , các_biểu_thức]); “Nội dung in” Ví dụ Các ký tự cần in LacHong University Các ký tự đặc biệt bắt đầu bởi dấu n : xuống dòng; t : ký tự Tab; : ký tự ; : ký tự ; ” : dấu “ Các mã định dạng giá trị của biểu thức %mã_kiểu_dữ_liệu (kiểu float là f; kiểu int là d hay i) Bảng 3.3 Ví dụ các kiểu xuất dữ liệu ra màn hình VD: Dùng hàm NSLog để hiển thị chuỗi “LacHong University”
  • 61. 53 Hình 3.1 Code sử dụng hàm NSLog() Kết quả hiển thị: Hình 3.2 Kết quả in ra màn hình Ghi chú: @”…”: bên trong cặp nháy đôi là chuỗi cần lưu log để kiểm tra. Hình 3.3 Dùng NSLog() xuất ra màn hình một số. Kết quả hiển thị: Hình 3.4 Kết quả xuất ra chữ và số
  • 62. 54 3.7 FUNCTION 3.7.1 Định Nghĩa Function Là tập hợp các dòng code, gom thành 1 khối. Khối code này được đặt tên.+ Khối code này chỉ được thực thi khi tên khối code được gọi. 3.7.2 Phương Thức Không Có Tham Số Truyền Vào Khai báo: - (kiểu_hàm) tên_hàm { //các câu lệnh [return [biểu_thức];] } Trong đó: - Dấu “-“ đại diện cho loại phương thức mà ta phải gọi nó thống qua đối tượng của lớp chứa đựng phương thức đó. - Kiểu hàm: là kiểu của <biểu thức> trong lệnh return. - Tên hàm: do chúng ta tự nghĩ ra VD: Hình 3.5 Hàm HelloWorld Gọi hàm:
  • 63. 55 Hình 3.6 Xuất ra màn hình HelloWorld Trong đó self là lớp hiện tại có chứa phương thức “helloWorld”. 3.7.3 Phương Thức Có 1 Tham Số Truyền Vào Khai báo: - (kiểu_hàm) tên_hàm : (kiểu_dữ_liệu)tên_tham_số { //các câu lệnh [return [biểu_thức];] } VD: Hình 3.7 Hàm HelloWorld với tham số truyền vào Gọi hàm: Hình 3.8 Gọi hàm HelloWorld 3.7.4 Phương Thức Có Nhiều Tham Số Truyền Vào Khai báo:
  • 64. 56 - (kiểu_hàm) tên_hàm : (kiểu_dữ_liệu)tham_số_1 [mô_tả]: (kiểu_dữ_liệu)tham_số_2 { //các câu lệnh [return [biểu_thức];] } Trong đó - dấu hai chấm “:” được dùng để ngăn cách giữa các “tham_số”. - [mô_tả]: có thể có hoặc không, dùng để mô tả cho tên tham số. VD: Hình 3.9 Hàm cộng hai số Trong đó - a: là tham số thứ 1. - b: là tham số thứ 2. Gọi hàm: Hình 3.10 In kết quả hàm cộng Trong đó 1 và 2 là các đối số được truyền vào hàm “congHaiSo”.
  • 65. 57 3.8 CẤU TRÚC ĐIỀU KIỆN 3.8.1 Câu Lệnh If Cú pháp if ( điều_kiện ) { //Công việc 1 } Lưu ý: điều kiện là một câu hỏi mà câu trả lời là YES hoặc NO, “Công việc 1” sẽ được thực hiện nếu điều kiện là YES. Ví dụ: - if (a > b) a có lớn hơn b không? - if (a >= b) a có lớn hơn hoặc bằng b không? - if (a < b) a có nhỏ hơn b không? - if (a <= b) a có nhỏ hơn hoặc bằng b không? - if (a == b) a có bằng b không? - if (a != b) a có khác b không? 3.8.2 Câu Lệnh If – Else Cú pháp if ( điều_kiện ) { //Công việc 1 } else {
  • 66. 58 //Công việc 2 } 3.8.3 Câu Lệnh Switch - Case Cú pháp switch ( biểu_thức) { case hằng_1: [công_việc_1] case hằng_2: [công_việc_2] ... case hằng_n: [công_việc_n] default: [công_việc_n+1] } Trong đó - Biểu thức và hằng kiểu số nguyên - Lệnh “break” thoát khỏi “switch” VD:
  • 67. 59 Hình 3.11 Cấu trúc Switch 3.9 Cấu Trúc Lặp 3.9.1 Vòng Lặp For Cú pháp for (biểu_thức1; biểu_thức2; biểu_thức3) { //Công việc } VD: Hình 3.12 Vòng lặp For 3.9.2 Vòng Lặp While Cú pháp:
  • 68. 60 while (điều_kiện_lặp) { //Công việc } Trong đó: - Khi <điều_kiện_lặp> còn đúng thì còn thực hiện <công_việc>. Vòng lặp kết thức khi <điều_kiện_lặp> sai. VD: Hình 3.13 Vòng lặp While 3.9.3 Vòng Lặp Do-While Cú pháp: do { //Công việc lặp } while(điều_kiện_lặp) Trong đó: - Thực hiện công việc ít nhất 1 lần, và lặp lại công việc khi <điều_kiện_lặp> là đúng. VD:
  • 69. 61 Hình 3.14 Vòng lặp Do - While 3.10 MẢNG 3.10.1 Định Nghĩa Mảng là 1 tập hợp nhiều biến nhớ có cùng kiểu, gọi là kiểu phần tử của mảng, được cấp phát ở những vị trí liên tục trong bộ nhớ. Mỗi phần tử (biến nhớ) trong mảng được xác định dựa trên tên mảng và các chỉ số xác định vị trí của phần tử trong mảng. Chỉ số phần tử của mảng là các số nguyên không âm. 3.10.2 Mảng Nsarray Sử dụng đối tượng NSArray để khởi tạo mảng. Cú pháp: NSArray *tên_mảng; VD: NSArray *mangTen; Để khởi tạo giá trị cho các phần tử trong mảng ta sử dụng hàm <initWithObjects> VD:
  • 70. 62 Hình 3.15 Sử dụng NSArray Trong đó - hàm <count>: đếm số phần tử trong mảng. - alloc: cấp phát vùng nhớ cho mảng “mangTen”. - %@: Mã kiểu dữ liệu đối với kiểu chuỗi “NSString” trong Objective-C. - objectAtIndex: lấy ra phần tử ở vị trí index. Kết quả Hình 3.16 Kết quả sử dụng NSArray 3.11 CHUỖI – ĐỐI TƯỢNG NSSTRING 3.11.1 Khởi Tạo Chuỗi Đối với chuối trong Objective-C phải bắt đầu bằng @ Hình 3.17 Khởi tạo chuỗi Để kiểm tra giá trị của chuỗi ta dung hàm NSLog
  • 71. 63 Hình 3.18 Kiểm tra giá trị chuỗi Đếm số lượng ký tự (chiều dài của chuỗi) Hình 3.19 Đếm số lượng ký tự 3.11.2 Đối Tượng NSString Tạo đối tượng có kiểu là NSString để có thể sử dụng các thao tác lien quan đến chuỗi do Class NSString cung cấp (ghép chuỗi, cắt chuỗi…) Hình 3.20 Đối tượng NSString 3.11.3 Tìm Kiếm Bên Trong Chuỗi Dùng hàm rangeOfString để tìm chuỗi “str1” có xuất hiện trong chuỗi “str2” không. Hình 3.21 Tìm kiếm bên trong chuỗi
  • 72. 64 Kết quả Hình 3.22 Kết quả tìm kiếm 3.11.4 Tìm Chuỗi Và Thay Nó Thành Chuỗi Khác Dùng hàm replaceCharactersInRange để thay đổi chuỗi thành chuỗi khác. Hình 3.23 Thay đổi ký tự trong chuỗi Kết quả: Hình 3.24 Kết quả thay đổi ký tự 3.11.5 Xoá Nội Dung Bên Trong Chuỗi Dùng hàm deleteCharactersInRange để xóa một nội dung bên trong chuỗi. Hình 3.25 Xóa nội dung trong một chuỗi Kết quả
  • 73. 65 Hình 3.26 Kết quả sau khi xóa nội dung 3.11.6 Cắt Chuỗi Cắt chuỗi có giới hạn số lượng ký tự, lấy từ ký tự thứ n. Hình 3.27 Cắt chuỗi từ vị trí n Kết quả Hình 3.28 Kết quả cắt chuỗi từ vị trí n Lấy tất cả ký tự còn lại, tính từ ký tự thứ n. Hình 3.29 Lấy các ký tự còn lại từ vị trí n Kết quả Hình 3.30 Kết quả lấy các ký tự còn lại từ vị trí n
  • 74. 66 Tách chuỗi thành các phần nhỏ Hình 3.31 Tách chuỗi thành các phần nhỏ Kết quả Hình 3.32 Kết quả tách chuỗi 3.11.7 Chèn Ký Tự Vào Trong Chuỗi Dùng hàm insertString để chèn ký tự hoặc một chuỗi vào chuỗi. Hình 3.33 Chèn ký tự vào chuỗi Kết quả Hình 3.34 Kết quả chèn ký tự vào chuỗi 3.11.8 Chèn Ký Tự Vào Cuối Chuỗi Dùng hàm appendString để chèn ký tự vào cuối chuỗi.
  • 75. 67 Hình 3.35 Chèn ký tự vào cuối chuỗi Kết quả Hình 3.36 Kết quả chèn ký tự vào cuối chuỗi 3.11.8 So Sánh Chuỗi Dùng hàm isEqualToString để so sánh hai chuỗi. Hình 3.37 So sánh hai chuỗi Kết quả Hình 3.38 Kết quả so sánh hai chuỗi 3.11.9 So Sánh Chuỗi Với Ký Tự Đầu Và Cuối Chuỗi Dùng hàm hasPrefix và hasSuffix để so sánh với ký tự đầu chuỗi, ký tự cuối chuỗi.
  • 76. 68 Hình 3.39 So sánh với ký tự đầu, ký tự cuối Kết quả Hình 3.40 Kết quả so sánh với ký tự đầu chuỗi, ký tự cuối chuỗi 3.11.10 Chuyển Đổi Hình Dạng Của Chữ Viết hoa chữ đầu. Hình 3.41 Viết hoa ký tự đầu Kết quả
  • 77. 69 Hình 3.42 Kết quả viết hoa ký tự đầu Tất cả viết thường. Hình 3.43 Viết thường tất cả ký tự Kết quả Hình 3.44 Kết quả viết thường các ký tự Tất cả viết hoa. Hình 3.45 Viết hoa tất cả ký tự Kết quả Hình 3.46 Kết quả viết hoa các ký tự
  • 78. 70 3.11.11 Chuyển Chuỗi Thành Dạng Số Chuyển thành số nguyên Hình 3.47 Chuyển thành số nguyên Kết quả Hình 3.48 Kết quả chuyển thành số nguyên Chuyển thành NSInteger Hình 3.49 Chuyển thành NSInteger Kết quả Hình 3.50 Kết quả chuyển thành NSInteger Chuyển thành float
  • 79. 71 Hình 3.51 Chuyển thành float Kết quả Hình 3.52 Kết quả chuyển thành float Chuyển thành số double Hình 3.53 Chuyển thành double Kết quả Hình 3.54 Kết quả chuyển thành double
  • 80. CHƯƠNG IV MỘT SỐ THAO TÁC CƠ BẢN Trước khi bắt đầu lập trình ứng dụng trên iPhone, ngoài việc bạn tìm hiểu về Xcode và iOS Simulator, bạn còn phải tìm hiểu thêm một số thao tác cơ bản trong lập trình iOS. Hiểu biết về các thao tác cơ bản này sẽ bổ trợ cho bạn trong quá trình tìm hiểu, cũng như là bài học vỡ lòng trước khi đi sâu vào tìm hiểu các đối tượng cơ bản trong Xcode ở chương sau. Nội dung chương này gồm một số thao tác cơ bản như:  Thay đổi icon của ứng dụng  Thay đổi màn hình khi ứng dụng vừa được mở lên  Thay đổi tên ứng dụng khi tên cũ quá dài  Tùy chỉnh background  Thêm mới một framework  Ẩn thanh trạng thái status bar
  • 81. 73 4.1 APP ICON – LOADING SCREEN Phần này sẽ hướng dẫn bạn cách hiển thị cũng như tạo icon, background image, loading screen cho ứng dụng của bạn. App icon, background image, loading screen cho ứng dụng của bạn cần dựa theo kích thước quy định của Apple và nên ở định dạng PNG. Bạn có thể tham khảo thêm kích thước chuẩn ở đây https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/MobileHIG/IconM atrix.html#//apple_ref/doc/uid/TP40006556-CH27-SW1. 4.1.1 App Icon App icon là biểu tượng của ứng dụng sẽ hiển thị ra màn hình iPhone sau khi ứng dụng được cài đặt, đồng thời icon của ứng dụng cũng hiển thị lên App Store khi bạn đem ứng dụng của mình lên App Store. Có hai loại icon là icon dành cho ứng dụng trên iPhone và icon dành cho ứng dụng trên App Store. App icon cho iPhone Rentina là 120x120, App icon cho App Store là 1024x1024. Hình 4.1 Icon Sau khi chuẩn bị được hình ảnh với kích thước phù hợp, trong phần thông tin của Project, bạn kéo xuống phần App icon và kéo các icon chuẩn bị sẵn vào đúng vị trí của icon.
  • 82. 74 Hình 4.2 Kéo thả icon vào vị trí Bạn tiến hành chạy thử ứng dụng trên iOS Simulator sẽ thấy icon của ứng dụng. Hình 4.3 Icon trên iOS simulator
  • 83. 75 4.1.2 Loading Screen Loading Screen là hình ảnh mà khi chạy ứng dụng lên bạn sẽ thấy nó, tùy theo tốc độ của ứng dụng mà thời gian hiển thị Loading Screen nhanh hoặc chậm khác nhau. Để chuẩn bị cho Loading Screen bạn cần chuẩn bị trước hình ảnh dạng PNG, kích thước 640x1136 (iPhone 5 trở lên), 640x960 (iPhone 4). Hình 4.4 Chuẩn bị Background Sau khi chuẩn bị xong hình ảnh, trong phần Lauch Image, bạn kéo thả hình ảnh vào Xcode cho đúng vị trí. Hình 4.5 Kéo thả background image vào Lauch Image
  • 84. 76 4.2 THAY ĐỔI APP NAME App Name là tên của ứng dụng hiển thị bên dưới App icon trên màn hình iPhone. Nhiều trường hợp vì tên ứng dụng quá dài nên không thể hiển thị hết trên màn hình iPhone, do đó bạn cần phải đổi tên ứng dụng lại cho phù hợp, ngắn gọn để có thể hiện được tên ứng dụng bên dưới icon, như vậy ứng dụng sẽ có tính thẩm mỹ hơn. Để khắc phục trường hợp này, bạn cần phải thay đổi lại App Name. Bạn truy cập tập tin .plist và sửa đổi Bundle Display Name thành tên mới của ứng dụng. Hình 4.6 Truy cập tập tin .plist
  • 85. 77 Hình 4.7 Sửa đổi Bundle display name Sau khi hoàn tất, bạn chạy ứng dụng trên iOS Simulator để xem kết quả. Hình 4.8 Thay đổi tên trên iOS Simulator
  • 86. 78 4.3 ẨN STATUS BAR Việc ẩn status bar cho phép bạn chạy ứng dụng của mình toàn màn hình mà không phải thu nhỏ một phần giao diện dành chỗ cho status bar. Trước tiên bạn chọn tập tin .plist trong project, sau đó bạn thêm một dòng mới. Hình 4.9 Thêm dòng mới Trong danh sách lựa chọn của dòng mới thêm vào, bạn lựa chọn Status bar is initially hidden và trả về giá trị là yes. Hình 4.10 Chọn giá trị Yes
  • 87. 79 Chạy ứng dụng trên iOS Simulator để xem kết quả. Hình 4.11 Thanh trạng thái Status bar đã mất 4.4 BACKGROUND 4.4.1 Background Image Hướng dẫn này sẽ hướng dẫn bạn tạo và sử dụng một hình ảnh làm hình nền cho ứng dụng của bạn. Trước tiên bạn cần phải chuẩn bị một tấm ảnh để làm hình nền. Kích thước của tấm ảnh này giống như hình ảnh trong Loading Screen: định dạng PNG, kích thước 640x1136 (iPhone 5 trở lên), 640x960 (iPhone 4).
  • 88. 80 Hình 4.12 Background Image Sau khi chuẩn bị xong hình ảnh để làm background cho ứng dụng, bạn chép hình ảnh vào trong project. Hình 4.13 Chép hình ảnh vào Project
  • 89. 81 Tiếp theo bạn từ Utility area, bạn kéo thả đối tượng UIImage View vào Interface Builder, điều chỉnh kích thước UIImage View cho vừa với màn hình. Hình 4.14 Kéo thả UIImage View vào Project Trong Inspector selector pane > Attributes inspector, bạn tìm đến mục Image View > chọn Image > lựa chọn hình ảnh bạn muốn làm background.
  • 90. 82 Hình 4.15 Lựa chọn hình ảnh làm background Kết quả. Hình 4.16 Thay đổi background bằng image
  • 91. 83 4.4.2 Background Color Ngoài việc sử dụng hình ảnh làm background cho ứng dụng, nếu bạn yêu thích sự đơn giản, bạn có thể tạo background bằng cách dùng một màu mà bạn ưa thích. Trong Inspector selector pane, bạn chọn Attributes inspector, tìm đến phần Background. Hình 4.17 Attributes inspector Tại đây bạn cho hiện ra bảng màu để chọn lựa với nhiều màu khác nhau, hãy lựa chọn cho mình một màu phù hợp, nếu muốn nhiều màu hơn có thể chọn Other. Hình 4.18 Chọn màu
  • 92. 84 Sau khi chọn xong màu thì background sẽ đổi màu với màu bạn đã lựa chọn. Hình 4.19 Background thay đổi 4.5 THÊM FRAMEWORK Mặc dù Xcode hỗ trợ nhiều Framework hỗ trợ cho các nhà phát triển ứng dụng, tuy nhiên chỉ một số framework cơ bản được thêm vào khi tạo project, các framework còn lại thì khi viết ứng dụng, bạn phải tự thêm vào để có thể sử dụng framework đó. Để tiến hành thêm một framework, trong giao diện General của Project, bạn kéo xuống tới mục Link Frameworks and Libraries. Hình 4.20 Link Frameworks and Libraries
  • 93. 85 Bạn nhấp chuột vào biểu tượng dấu cộng để mở ra bảng danh mục các framework mà Xcode hỗ trợ. Hình 4.21 Chọn Framework Sau đó bạn lựa chọn framework mà bạn muốn thêm vào project rồi nhấn Add. Hình 4.22 chọn Add
  • 94. CHƯƠNG V MỘT SỐ ĐỐI TƯỢNG CƠ BẢN Chương này trình bày một số đối tượng cơ bản thường được sử dụng để viết ứng dụng cho iOS. Qua chương này, bạn có thể nắm được chức năng cũng như cách sử dụng một số đối tượng cơ bản, từ đó có thể vận dụng vào viết ứng dụng. Do khả năng của người viết còn giới hạn nên số đối tượng được giới thiệu trong chương này vẫn còn hạn chế. Bạn có thể tìm hiểu thêm nhiều đối tượng khác, tìm hiểu sâu hơn từng đối tượng bằng cách truy cập vào hướng dẫn của Apple cho người lập trình ở địa chỉ sau: https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/UIKit UICatalog/index.html
  • 95. 87 5.1 ĐỐI TƯỢNG LABEL – BUTTON – TEXT FIELD 5.1.1 Giới Thiệu 5.1.1.1 Đối Tượng Label Label dùng để hiển thị một nội dung là chữ/câu/đoạn văn có tính cố định ít thay đổi. Hình 5.1 Label Label cho phép người dùng thay đổi một số thuộc tính để hiển thị nội dung ra giao diện cho phù hợp như tùy chỉnh màu chữ, font và kích thước, canh trái/giữa/phải hay cho nội dung của label xuống dòng. Hình 5.2 Thuộc tính của Label
  • 96. 88 5.1.1.2 Đối Tượng Button Button có thể được thiết kế hiển thị chữ hoặc hiển thị theo hình ảnh, thường được sử dụng để người dùng tương tác với ứng dụng nhằm tạo ra một sự kiện nào đó của ứng dụng. Chẳng hạn bạn nhập tên của bạn vào text field, bạn muốn khi người dùng chạm vào button sẽ hiện tên bạn ra màn hình.Lúc này button sẽ được thiết kế để nắm bắt sự kiện khi người dùng chạm vào, và thực hiện chức năng hiển thị tên bạn ra màn hình. Hình 5.3 Button Với button, bạn có thể lựa chọn một số định dạng button có sẵn, hoặc tùy chọn một dạng button khác theo ý bạn. Không những thế bạn còn có thể tùy chỉnh font chữ, màu chữ, màu nền của button hoặc thay thế button theo mộ hình ảnh button được thiết kế trước.
  • 97. 89 Hình 5.4 Thuộc tính của Button 5.1.1.3 Đối Tượng Text Field Đối tượng Text field thường được sử dụng để người dùng nhập dữ liệu đầu vào cho ứng dụng. Chẳng hạn như bạn viết chương trình tính tổng hai số, thì bạn sẽ dùng Text field để người dùng nhập vào hai số cần tính tổng, và bạn sẽ sử dụng giá trị nhập vào của Text field để tính toán và hiển thị kết quả cho người dùng. Hình 5.5 Text Field Text field cho phép tùy chỉnh canh lề trái/giữa/phải, tùy chỉnh font chữ và kích thước chữ trong Text field. Hơn nữa, bạn có thể tùy chỉnh hình dạng của Text field, cũng như định dạng nội dung gợi ý cho người dùng (placeholder).
  • 98. 90 Hình 5.6 Thuộc tính của Text Field 5.1.2 Ví Dụ Trong phần ví dụ này sẽ hướng dẫn các bạn viết một ứng dụng nhỏ để hiển thị tên của bạn ra màn hình. Ứng dụng sẽ có một label, một button, một text field. Bạn sẽ nhập tên bạn vào text field, sau đó chạm vào button, label sẽ hiển thị nội dung mà bạn đã nhập vào text field trước đó. - Tạo ứng dụng có tên là Label-Button-TextField. - Thiết kế giao diện cho ứng dụng gồm một lable, một button, một text field. - Ánh xạ các đối tượng vào tập tin .h. - Viết code cho sự kiện khi người dùng chạm vào button. Bước 1: Tạo project mới.
  • 99. 91 Hình 5.7 Tạo New Project Hình 5.8 Chọn nơi lưu project
  • 100. 92 Bước 2: thiết kế giao diện Hình 5.9 thiết kế giao diện Bước 3: ánh xạ đối tượng. Hình 5.10 ánh xạ đối tượng
  • 101. 93 Hình 5.11 ánh xạ đối tượng (tt) Bước 4: viết code cho button. Hình 5.12 viết code cho button Bước 5: chạy thử
  • 102. 94 Hình 5.13 chạy thử ứng dụng 5.2 KẾT NỐI CƠ SỞ DỮ LIỆU VỚI SQLITE 5.2.1 Giới Thiệu SQLite là một hệ quản trị cơ sở dữ liệu có thể chạy hoàn toàn độc lập mà không cần đến server. SQLite thường được người lập trình sử dụng để lưu trữ cơ sở dữ liệu khi viết ứng dụng cho các thiết bị của Apple. Các lệnh truy vấn trên SQLite sử dụng các lệnh truy vấn của SQL (ví dụ SELECT, UPDATE, CREATE…). Việc quản lý SQLite rất đơn giản, bạn chỉ cần quản lý thông qua một plugin của FireFox là SQLite Manager.Bạn có thể tìm hiểu thêm tại http://www.sqlite.org. 5.2.2 Cài Đặt Sqlite Manager Cho Firefox Để cài đặt plugin quản lý SQLite cho Firefox, bạn vào phần Addon của trình duyệt Firefox và tìm plugin SQLite Manager rồi Add to Firefox.
  • 103. 95 Hình 5.14 Addon SQLite Sau khi cài đặt xong, trong phần Tool bạn sẽ thấy như hình. Hình 5.15 SQLite Manager trong Tool 5.2.3 Cấu Hình Ứng Dụng Để Tương Tác Với Sqlite Để ứng dụng có thể thao tác với cơ sở dữ liệu của SQLite, bạn cần bổ sung thêm thư viện hỗ trợ vào project. Trong phần Build Phase, mục Link to Library, bạn thêm vào thư viện libsqlite3.dylib vào project. Hình 5.16 Thêm framework hỗ trợ SQLite
  • 104. 96 5.2.4 Các Hàm Trong Sqlite Trong SQLite có một số hàm cơ bản cho phép bạn tương tác dễ dàng với cơ sở dữ liệu. - sqlite3_open(): mở một kết nối đến tập tin sqlite. Nếu tập tin này chưa có, hệ thống sẽ tự động tạo ra. - sqlite3_close(): đóng kết nối đến sqlite. - sqlite3_prepare_v2(): khởi tạo câu lệnh truy vấn SQL để thực thi. - sqlite3_step(): thực thi lệnh truy vấn được tạo bởi hàm sqlite3_prepare_v2(). - sqlite3_column_<type>(): trả về kết quả dữ liệu từ câu truy vấn SQL, với kiểu dữ liệu được khai báo trong <type> (thường là text, bytes, int, int16). - sqlite3_finallize(): xoá câu lệnh truy vấn SQL được khởi tạo bởi hàm sqlite3_prepare_v2() trong bộ nhớ. Bạn có thể tham khảo thêm một số hàm khác tại: www.sqlite.org/c3ref/funclist.html 5.2.4.1 Khởi Tạo Đối Tượng Sqlite Trước khi tương tác với cơ sở dữ liệu SQLite, bạn cần phải tạo đối tượng dạng này bằng cách khai báo một biến có kiểu sqlite3 trong tập tin .h. Hình 5.17 Khai báo sqlite3 5.2.4.2 Kết Nối Hoặc Tạo Database Dùng hàm sqlite3_open() để mở kết nối đến cơ sở dữ liệu sqlite. Hình 5.18 Hàm sqlite3_open Nếu tập tin này chưa có thì sẽ tự động được tạo.
  • 105. 97 Filename: là đường dẫn đến tập tin sqlite. Nếu tên database có dấu tiếng việt thì cần chuẩn hoá lại theo dạng UTF-8 trước khi truyền vào. Sử dụng biến SQLITE_OK để kiểm tra trạng thái trả về của việc mở kết nối đến database có thành công hay không. 5.2.4.3 Khởi Tạo Và Thực Thi Lệnh Truy Vấn Câu lệnh truy vấn được khởi tạo và lưu trữ vào đối tượng sqlite_stmt() và truyền vào hàm sqlite_prepare_v2() để thực thi. Hình 5.19 khai báo đối tượng sqlite_stmt Hình 5.20 Thực thi đối tượng sqlite_stmt trong sqlite3_prepare_v2 Câu lệnh SQL được thực hiện bởi các lệnh sau: Hình 5.21Thực hiện câu lệnh SQL lấy kết quả trả về
  • 106. 98 Trong đó câu lệnh sqlite3_step() sẽ trả về các dạng như sau: - Nếu câu lệnh sql dạng INSERT, DELETE, UPDATE, CREATE… thì trả về kết quả có dạng là SQLITE_OK để báo tình trạng có thực thi được hay không. - Nếu câu lệnh slq dạng SELECT sẽ trả về kết quả có dạng là SQLITE_ROW, là tập hợp các hàng dữ liệu được lấy từ database. 5.2.4.4 Truy Xuất Dữ Liệu Database Khởi tạo câu lệnh truy vấn. Hình 5.22 Khởi tạo câu lệnh truy vấn Bóc tách dữ liệu lấy được. Hình 5.23 Tách dữ liệu lấy được 5.2.4.5 Đóng Kết Nối Database Sau khi hoàn tất quá trình tương tác cơ sở dữ liệu, bạn nên đóng lại kết nối cơ sở dữ liệu để có Hình 5.24 đóng kết nối cơ sở dữ liệu
  • 107. 99 5.2.5 Ví Dụ Bước 1: khởi động firefox, vào SQLite Manager Hình 5.25 Truy cập SQLite Manager Bước 2: tạo một cơ sở dữ liệu mới tên là “Count”. Hình 5.26 Tạo CSDL mới Bước 3: Tạo một table mới
  • 108. 100 Hình 5.27 Tạo table Hình 5.28 Khai báo thuộc tính cho Table Bước 4: nhập dữ liệu
  • 109. 101 Hình 5.29 Nhập dữ liệu Hình 5.30 Kết quả Bước 5: tạo project mới “sqlite”
  • 110. 102 Hình 5.31 Tạo Project mới Hình 5.32 Điền thông tin Project Bước 6: thiết kế giao diện
  • 111. 103 Hình 5.33 Thiết kế giao diện Bước 7: thêm thư viện vào project. Hình 5.34 Thêm thư viện
  • 112. 104 Hình 5.35 Sau khi thêm thư viện Bước 8: ánh xạ đối tượng Hình 5.36 Ánh xạ đối tượng Bước 9: Thêm tập tin sqlite vào project
  • 113. 105 Hình 5.37 Thêm file mới Hình 5.38 Add Bước 10: thêm thư viện sqlite3.h vào project, khai báo đối tượng sqlite3 và nsstring
  • 114. 106 Hình 5.39 Kết quả ánh xạ Bước 11: viết code trong hàm View Didload để lấy đường dẫn tới tập tin sqlite. Hình 5.40 Viết code View Didload Bước 12: viết code cho sự kiện Click Khai báo đối tượng lưu đường dẫn database.
  • 115. 107 Hình 5.41 Khai báo đối tượng lưu đường dẫn Hình 5.42 Lưu đường dẫn vào đối tượng Khai báo đối tượng statment Hình 5.43 Khai báo đối tượng sqlite3_stmt Viết lệnh truy xuất dữ liệu Hình 5.44 Lệnh truy xuất dữ liệu Khai báo đối tượng lưu trữ câu truy vấn Hình 5.45 Khai báo đối tượng lưu câu truy vấn
  • 116. 108 Viết code truy vấn Hình 5.46 Viết code truy vấn dữ liệu Kết quả.
  • 117. 109 Hình 5.47 Kết quả 5.3 SỬ DỤNG CAMERA IPHONE 5.3.1 Giới Thiệu Phần này sẽ hướng dẫn các bạn cách sử dụng thư viện hỗ trợ của iOS để dùng camera iPhone chụp ảnh. Thư viện iOS cung cấp một lớp là UIImagePickController dùng để quản lý việc tương tác với camera hoặc photo library. Tuy nhiên UIImagePickController không thể sử dụng trực tiếp mà cần tới một đối tượng khác delegate (thừa kế) lại nó. Sau đây chúng ta sẽ xây dựng một ứng dụng đơn giản dùng camera để chụp ảnh. Giao diện của ứng dụng này gồm một UIImageView để hiển thị hình ảnh, một button tên là “Chụp Ảnh”. 5.3.2 Ví Dụ Tạo ứng dụng mới đặt tên là CameraApp.
  • 118. 110 Hình 5.48 Tạo project mới Hình 5.49 Chọn nơi lưu project Thiết kế giao diện ứng dụng.
  • 119. 111 Hình 5.50 Thiết kế giao diện Ánh xạ các đối tượng vào tập tin ViewController.h. Hình 5.51 Ánh xạ đối tượng
  • 120. 112 Hình 5.52 Kết quả Trong ViewController, thêm đoạn code sau để thừa kế lại UIImagePickController. Hình 5.53 Thừa kế UIImagePickController Viết code cho button Chụp Ảnh. Hình 5.54 Viết code cho button Chụp ảnh Viết code hai phương thức của UIImagePickController.
  • 121. 113 Hình 5.55 Viết code cho hai phương thức của UIImagePickController Viết code cho ViewDidload. Hình 5.56 Viết code cho hàm ViewDidload Chạy ứng dụng lên thiết bị thật để kiểm tra kết quả. 5.4 UIIMAGE 5.4.1 Giới Thiệu UIImage dùng để hiển thị hình ảnh, có thể sử dụng các hiệu ứng animation để hiển thị hình ảnh. . Hình 5.57 Đối tượng UIImage
  • 122. 114 Hình 5.58 UIImage khi kéo ra thiết kế giao diện 5.4.2 Các Định Dạng Ảnh Hỗ Trợ Trên Iphone Các dạng file ảnh được hỗ trợ tốt trên iPhone: 5.4.3 Ví Dụ Hiển thị ảnh từ một file có sẵn trên máy. Bước 1: Add UIImageView vào “StoryBoard”.  Chọn “Main.storyboard” Hình 5.59 Chọn storyboard Tên định dạng Tên file mở rộng Tagged Image File Format (TIFF) .tiff, .tif Join Photographic Experts Group (JPEG) .jpg, .jpeg Graphic Interchange Format (GIF) .gif Portable Network Graphic (PNG) .png Windows Bitmap Format (DIB) .bmp, .bmpf Windows Icon Format .ico Windows Cursor .cur Xwindow bitmap .xbm
  • 123. 115  Kéo thả UIImage từ hộp thoại “Accessibility” vào “Storyboard”. Hình 5.60 Đối tượng UIImage View Hình 5.61 Kết quả sau khi kéo vào storyboard Bước 2: Ánh xạ UIImageView vào file “NATViewController.h” dạng outlet với tên “imgHinhAnh”.
  • 124. 116 Hình 5.62 Kết quả sau khi ánh xạ Bước 3: Add file hình vào project đang làm.  Click phải chuột vào project  chọn “Add Files to...” Hình 5.63 Thêm file vào project
  • 125. 117 Hình 5.64 Chọn file cần thêm vào Bước 4: Load file hình vào UIImage. Cách 1: Chọn hình từ hộp thoại “Image View”. Hình 5.65 Cách chọn từ Image View Hình 5.66 Kết quả sau khi chọn Cách 2: Gọi phương thức sau để load file hình vào “UIImageView”. Hình 5.67 Cách sử dụng code  Mở file “NATViewController.m”, tại phương thức “viewDidLoad”.
  • 126. 118 Hình 5.68 Chọn NATViewController Hình 5.69 Viết code hiện thị hình ảnh Kết quả. Hình 5.70 Kết quả Lưu ý: phương thức “viewDidLoad” sẽ được gọi mỗi khi chúng ta mở ứng dụng.
  • 127. 119 Cách 3: Kéo thả trực tiếp đối tượng Image vào “StoryBoard”: Hình 5.71 Kéo thả Image vào Storyboard Hình 5.72 Kết quả Hiển thị ảnh từ một URL: Sử dụng phương thức “initWithData” để load nội dung từ url. Hình 5.73 Code load nội dung từ url  Mở file “NATViewController.m”, tại phương thức “viewDidLoad”.
  • 128. 120 Hình 5.74 Mở file NATViewController.m Hình 5.75 Viết code cho hàm ViewDidload Kết quả. Hình 5.76 Kết quả
  • 129. 121 5.5 UIALERT VIEW 5.5.1 Giới Thiệu UIAlertView là đối tượng được sử dụng để hiển thị nội dung thông báo cho người dùng, hoặc để người dùng nhập liệu. Hình 5.77 UIAlertView Hình 5.78 UIAlertView cho phép nhập liệu 5.5.2 Đặc Điểm Khởi tạo đối tượng UIAlertView initWithTitle: message: delegate: cancelButtonTitle: otherButtonTitles Các thuộc tính của UIAlertView Thuộc tính Diễn giải title Tiêu đề của Alert View. message Nội dung thông báo elegate Đối tượng nhận giá trị từ UIAlertView. alertViewStyle Kiểu của 1 Alert View khi hiển thị trên ứng dụng numberOfButtons Trả về số lượng buttons có trên Alert View cancelButtonIndex Vị trí index của button Cancel trên UIAlertView firstOtherButtonIndex Giá trị của nút đầu tiên trong UIAlertView, mặc định là 0.
  • 130. 122 Các phương thức của UIAlertView Phương thức Diễn giải addButtonWithTile Gán tiêu đề cho Alert View buttonTitleAtIndex Lấy tiêu đề của button tại vị trí index textFieldAtIndex Lấy nội dung của textField tại vị trí index show Gọi 1 Alert View dismissWithClickedButtonIndex Huỷ 1 UIAlertView 5.5.3 Ví Dụ Hiển thị AlerView dạng thông báo. Hình 5.79 Hiển thị dạng thông báo Bước 1: Tại phương thức “viewDidLoad” khởi tạo đối tượng “AlertView” như sau: thongBao = [[UIAlertView alloc] initWithTitle:@"Lac Hong University" message:@"Webcome to Lac Hong University" delegate:self cancelButtonTitle:@"Ok" otherButtonTitles:nil, nil]; Bước 2: Hiển thị “AlertView” bằng phương thức “show”  Thêm đoạn code sau vào cuối phương thức “viewDidLoad”: [thongBao show]; Bước 3: Cmd + R chạy thử, kết quả:
  • 131. 123 Hình 5.80 Kết quả hiển thị Hiển thị AlerView dạng Text Field Hình 5.81 Hiển thị dạng Text Field Bước 1: Khai báo “AlertView”  Tại “viewDidLoad” khai báo “AlertView” như sau: Hình 5.82 Khai báo AlertView Bước 2: Thiết lập thuộc tính “alertViewStyle” cho “AlertView” là kiểu “Text”.
  • 132. 124 Hình 5.83 Thiết lập thuộc tính Bước 3: Thiết lập thuộc tính cho “Text ”. Hình 5.84 Thiết lập thuộc tính Bước 4: Hiển thị “AlertView”. Hình 5.85 Hiển thị AlertView Bước 5: Cmd + R chạy thử, kết quả: Hình 5.86 Hiển thị kết quả 5.6 UISLIDER 5.6.1 Giới Thiệu UISlider là một đối tượng cho phép người dùng thay đổi giá trị bằng cách di chuyển thanh trượt.
  • 133. 125 Hình 5.87 UISLIDER 5.6.2 Đặc Điểm Lấy giá trị từ Slider: Cách 1: dùng property “value” value property Cách 2: dùng phương thức “setValue” – setValue:animated: Thiết lập giá trị nhỏ nhất và lớn nhất cho Slider: - Thiết lập giá trị nhỏ nhất: minimumValue - Thiết lập giá trị lớn nhất: maximumValue 5.6.3 Ví Dụ Bước 1: Thiết kế giao diện như sau. Hình 5.88 Thiết kế giao diện
  • 134. 126 Bước 2: Map các đối tượng như sau: Hình 5.89 Ánh xạ các đối tượng  Kết quả sau khi Map Hình 5.90 Kết quả sau khi ánh xạ Bước 3: Thiết lập giá trị nhỏ nhất và lớn nhất cho “Slider” trong khoảng “5  50”.  Mở “ViewController.m”  thêm đoạn code sau vào cuối phương thức “viewDidLoad”.
  • 135. 127 Hình 5.91 Thiết lập giá trị Thiết lập giá trị chọn mặc định là “30”  thêm đoạn code sau vào cuối phương thức “viewDidLoad”. Hình 5.92 Thêm code vào cuối viewDidload Bước 4: Gán kết quả của Slider vào “lblGiaTriSlider” khi người dùng thay đổi thanh trượt.  Thêm đoạn code sau vào phương thức “changeSlider”. Hình 5.93 Thêm code vào phương thức changeSlider Bước 5: Lấy giá trị từ Slider gán vào “lblKetQua” khi người dùng click vào button “btnLayGiaTri”. Hình 5.94 Gán giá trị cho label Bước 6: Cmd + r chạy thử, kết quả.
  • 136. 128 Hình 5.95 Kết quả hiển thị 5.7 UIWEBVIEW 5.7.1 Giới Thiệu UIWebView là đối tượng giúp hiển thị nội dung của một url nào đó. Hình 5.96 UIWebView
  • 137. 129 Hình 5.97 Hiển thị UIWebView 5.7.2 Ví Dụ Bước 1: Thiết kế giao diện như sau. Hình 5.98 Thiết kế giao diện
  • 138. 130 Bước 2: Map đối tượng “UIWebView” với tên “myWebView”. Hình 5.99 Ánh xạ đối tượng Bước 3: Tải một url.  Mở file “ViewController.m” thêm đoạn code sau vào cuối phương thức “viewDidLoad”. Hình 5.100 Thêm code vào viewDidload  Chạy thử, kết quả. Hình 5.101 Kết quả chạy thử Bước 4: Thực hiện các chức năng: back, next, refrest, stop.