chương 1. THIẾT KẾ GIAO DIỆN VÀ XỬ LÝ SỰ KIỆN TRÊN IOS .1 Thiết kế giao diện với Storyboard .1 Các thành phần chính trong iOS Project .2 Màn hình chờ LaunchScreen.3 Màn hình thiết kế giao diện Main.4 Case Study: Tạo ứng dụng Calculate .2 Xử lý sự kiện trên iOS .1 Kết nối các đối tượng với code .2 Cách viết hàm trong iOS với ngôn ngữ Swift .3 Hoàn thiện ứng dụng Calculate giai đoạn 1 .3 Tổ chức code theo mô hình MVC .1 Phân tích ứng dụng theo mô hình MVC .2 Xây dụng ứng dụng theo mô hình MVC .3 Mở rộng và hoàn thiện ứng dụng Calculate .4 Autolayout trong iOS.1 Vấn đề giao diện trong ứng dụng Calculate.2 Cải tiến giao diện cho ứng dụng Calculate .5 Case Study: Thiết kế ứng dụng Quản lý món ăn .1 Luyện tập thiết kế giao diện cơ bản và autolayout trong iOS .2 Xử lý sự kiện với các Component cơ bản .3 Làm việc với UITapGestureRecognizer .4 Xây dựng Control mới cho ứng dụng .5 Thêm thuộc tính vào Attributes Inspector .7 Navigation và truyền tham số giữa các màn hình ứng dụng .6 Câu hỏi và bài tập chương 2. LÀM VIỆC VỚI CƠ SỞ DỮ LIỆU.1 Thiết kế Data model cho ứng dụng.1 Phân tích ứng dụng Quản lý món ăn .2 Thiết kế Datamodel cho ứng dụng .2 Kiểm thử tính đúng đắn của Data model .1 Xây dựng các test cases kiểm thử tính đúng đắn cho Datamodel của ứng dụng .2 Kiểm thử và điều chỉnh .3 Một số dạng lưu trữ dữ liệu lâu dài trên ứng dụng iOS .3 Lưu trữ trên mạng .4 Cơ sở dữ liệu SQLite với các ứng dụng iOS .1 Cài đặt thư viện SQLite và Framework FMDB .2 Thiết kế tầng truy xuất dữ liệu DAL .5 Xây dựng tầng truy xuất dữ liệu cho ứng dụng iOS .1 Thiết kế các chức năng cơ bản: Đóng, mở, tạo bảng… .2 Thiết kế các API cho tầng trên. Đọc dữ liệu từ cơ sở dữ liệu.
Ghi dữ liệu vào cơ sở dữ liệu. Cập nhật dữ liệu vào cơ sở dữ liệu. Xoá dữ liệu từ cơ sở dữ liệu. Tìm kiếm dữ liệu từ cơ sở dữ liệu .6 Sử dụng tầng DAL cho ứng dụng iOS.7 Câu hỏi và bài tập chương 3.
BẢN ĐỒ TRỰC TUYẾN TRÊN IOS.1 Một số dạng bản đồ trực tuyến thông dụng .2 Sử dụng bản đồ trực tuyến trong các ứng dụng iOS .1 Tích hợp MapKit vào ứng dụng .2 Tạo mới bản đồ trong ứng dụng iOS .3 Đánh dấu trên bản đồ dùng Annotation .4 Lấy vị trí hiện tại của người dùng trên bản đồ .5 Tương tác với các Annotation trên bản đồ.6 Xác định vị trí và di chuyển trên bản đồ .7 Đánh dấu vị trí bằng sự kiện LongPressGesture .3 Câu hỏi và bài tập chương 4 .127 TÀI LIỆU THAM KHẢO .129 v DANH MỤC CÁC TỪ VIẾT TẮT STT Từ viết tắt Cụm từ gốc Ghi chú 1 iOS iPhone Operation System 2 MVC Models – Views – Controllers 3 IB Interface Builder 4 FMDB Flying Meat Database vi DANH MỤC BẢNG BIỂU VÀ HÌNH VẼ Hình 1.1 Kiến trúc của iOS .1 màn hình khởi động Xcode.2 Giao diện lựa chọn một Template cho ứng dụng iOS .3 Cấu hình cho một Project iOS .4 Màn hình khởi tạo của Project iOS mới .5 Các vùng cơ bản trong bộ công cụ phát triển ứng dụng trên iOS.1 Một số cú pháp cơ bản của ngôn ngữ Swift .2 Một số kiểu dữ liệu thông dụng trong Swift. Chuỗi thoát trong Swift .1 Hoạt động của câu lệnh rẽ nhánh loại 1.2 Hoạt động của câu lệnh rẽ nhánh loại 2.3 Hoạt động vòng lặp while .4 Hoạt động vòng lặp repeat … while .1 Một số thao tác xử lý chuỗi thông dụng .1 Các thành phần chính của iOS Project .2 Màn hình Debug chương trình trong iOS .3 Cấu trúc iOS Project trong Xcode (trái) và trong thư mục dự án (phải) .1 Cấu hình cho màn hình LaunchScreen trong ứng dụng iOS .1 Màn hình thiết kế giao diện Main.2 Thư viện các đối tượng cho thiết kế giao diện (Object Library) .3 Kéo – thả đối tượng từ thư viện vào màn hình thiết kế giao diện .4 Bảng thuộc tính đối tượng trong thiết kế giao diện iOS .5 Ví dụ thay đổi thuộc tính đối tượng trực tiếp trên màn hình thiết kế .1 Tạo ứng dụng iOS Calculator2020 (a).2 Tạo ứng dụng iOS Calculator2020 (b) .3 Tạo ứng dụng iOS Calculator2020 (c).4 Gom nhóm các file hệ thống vào một nhóm để quản lý .5 Kết quả gom nhóm các file hệ thống trong System files .1 Màn hình liên kết code trong lập trình iOS .2 Thiết lập tham số cho việc liên kết code với đối tượng trong layout .3 Kết quả liên kết code dạng hành vi (Action) của đối tượng .1 Kết quả điều chỉnh giao diện giai đoạn 1 .2 Kết quả điều chỉnh chương trình .3 Bổ sung phím chức năng cho máy tính .4 Lấy các ký tự đặc biệt trong Xcode .1 Giao diện chức năng bổ sung.1 Vấn đề thay đổi hướng nhìn của các giao diện iOS.1 Nhúng các đối tượng trong Stack View.2 Kết quả sau khi nhúng các đối tượng trong Stack View .3 Thêm dàng buộc cho Autolayout.4 Autolayout với các chiều khác nhau của màn hình iPhone .1 Giao diện màn hình chi tiết của một món ăn .2 Đưa bộ ảnh default vào ứng dụng iOS .1 Các trạng thái và cách chuyển trạng thái của một Controller .2 Kết nối đối tượng Tap Gesture Recognizer với ImageView .1 Tạo lớp RatingControl mới.2 Layout của RatingControl .3 Ba bộ ảnh cho đối tượng RatingControl .4 Thuộc tính mới trong Attributes Inspector .1 Thiết kế giao diện một phần tử trong danh sách các món ăn .1 Tạo màn hình giao diện mới với Table View Controller .2 Lựa chọn Protoype Cell để thiết kế và cấu hình .3 Thiết kế cho Prototype Cell .1 Sau khi nhúng Table View Controller vào Navigation Controller .2 Màn hình MealDetail sau khi được đưa vào Navigation Stack .3 Kết quả sau khi nhúng MealDetail vào Navigation Controller mới .4 Tạo Unwind Segue cho nút Save và kết nối với Unwind Action .5 Hiện thực hoá chức năng cập nhật một món ăn đã có .1 Mở file để viết các Unit Test trong iOS .1 Chỉ dừng lại khi mọi test cases đều pass hết .1 Cài đặt thư viện SQLite cho ứng dụng iOS .2 Download code source của FMDB .3 Tuỳ chọn tích hợp thư viện FMDB vào Project .4 Tạo cầu nối thư viện Objective-C với ngôn ngữ Swift.1 Tạo màn hình MapViewController.1 Đánh dấu trên bản đồ .1 Cấp quyền cho việc truy xuất vị trí hiện tại trên bản đồ .2 Yêu cầu cấp quyền truy xuất .1 Màn hình MapView với chức năng chỉ đường .1 Cải tiến chức năng 4.127 viii GIÁO TRÌNH HỌC PHẦN Tên học phần: LẬP TRÌNH DI ĐỘNG TRÊN iOS Mã học phần: CNC107440 Vị trí, tính chất, ý nghĩa và vai trò của học phần: - Vị trí: Học phần chuyên ngành bắt buộc. - Tính chất: Đây là học phần bắt buộc ngành Công nghệ thông tin, cung cấp cho sinh viên một cái nhìn tổng quát về phương pháp thiết kế ứng dụng trên thiết bị di động thông qua ngôn ngữ Swift cũng như các công cụ lập trình để phát triển ứng dụng cho hệ điều hành iOS. Qua đó, Sinh viên vận dụng được kỹ năng về thiết kế phần mềm để xây dựng các ứng dụng dụng chạy trên iOS.
Thông qua các hoạt động học tập, giúp Sinh viên rèn luyện tư duy giải quyết vấn đề và tuân thủ các quy định trong khi tham gia vào các dự án vừa và nhỏ. Mục tiêu của học phần: - Về kiến thức: + Hiểu ngôn ngữ Swift và Thiết kế được các giao diện cơ bản cho các ứng dụng trên iOS; + Vận dụng được mô hình MVC vào phát triển ứng dụng trên iOS - Về kỹ năng: + Thiết kế và xây dựng được cơ sở dữ liệu cho các ứng dụng trên iOS; + Xây dựng được các ứng dụng vừa và nhỏ sử dụng Webservice và các dịch vụ cơ bản (Map và Location); + Hiện thực hoá các ứng dụng vừa và nhỏ trên iOS; + Xây dựng được bản Phân tích, thiết kế cho một sự án phần mềm vừa và nhỏ; + Sử dụng các công cụ quản lý khi triển khai Project trong nhóm. - Về năng lực tự chủ và trách nhiệm: + Luôn chủ động tìm hiểu vấn đề khi thực hiện các nhiệm vụ được giao; + Luôn tuân thủ đầy đủ các quy định của lớp học. TỔNG QUAN VỀ PHÁT TRIỂN ỨNG DỤNG TRÊN IOS VÀ NGÔN NGỮ SWIFT Mục tiêu: Hiểu ngôn ngữ Swift và một số khái niệm cơ bản trong lập trình trên iOS.
Mô tả nội dung: Trình bày tổng quan về phát triển ứng dụng di động trên iOS và đi sâu vào tìm hiểu các thành phần của ngôn ngữ lập trình Swift.1 Tổng quan về phát triển ứng dụng trên iOS 1.1 IOS là gì? Kiến trúc bên trong iOS? IOS hay iPhone OS có thể hiểu là hệ điều hành cho các thiết bị di động (iPhone, iPad…) được phát triển bởi Apple. Ban đầu nó được thiết kế cho iPhone, nhưng hiện nay đã hỗ trợ cho các dạng thiết bị khác của Apple như iPod touch, iPad, Apple TV… IOS ra đời và ngày càng phát triển qua nhiều thế hệ: IOS 1 ra đời năm 2007 cùng với sự xuất hiện của iPhone. Đến năm 2008, iOS 2 ra đời bổ sung thêm tính năng App Store. Năm 2009 tính năng iPhone Enhancement được bổ sung cùng với sự xuất hiện của iOS 3.
Năm 2010 đánh dấu một bước đột phá của Apple khi công bố iOS 4 với MultiTasking, Rentina và FaceTime… và cho đến hiện nay (2020) chúng ta đang được sử dụng thế hệ iOS 14 với 8 tính năng bổ sung: Cho phép sử sử dụng một trình duyệt khác Safari làm trình duyệt mặc định; App Library mới trên iOS 14 chứa các Widgets màn hình chính và ứng dụng vào trong một thư mục và thay thế cho giao diện trang Ứng dụng trước đó với chế độ xem đơn giản và dễ điều hướng; Giao diện cuộc gọi được cải tiến được thu gọn lại dưới dạng biểu tượng giống như các thông báo khác; Màn hình home có thể thêm các Widgets với kích thước tuỳ ý trực tiếp ngay trong Home Screen; Thay đổi cách xuất hiện của trợ lý ảo Siri, thay vì chiếm cả màn hình như trước, Siri sẽ xuất hiện phía dưới màn hình, còn câu trả lời xuất hiện phía trên; Bổ sung tính năng gõ lên lưng sau của iPhone sẽ cho phép chụp ảnh màn hình, tăng giảm âm lượng (người dùng tự thiết lập cấu hình); Bổ sung tính năng Hiệu ứng âm thanh không gian trên AirPod Pro; Thu hồi lại tin nhắn đã gửi trên Message và thêm tính năng Picture in Picture cho ứng dụng YouTube trên iPhone. Trên phương diện lập trình viên thì có thể hiểu iOS như một Sofware Stack bao gồm 4 tầng (Hình 1.