4.1.10 .Dataset bàn phím
6.1.3. Cấu trúc của SwiftUI
Chương 6: ỨNG DỤNG iOS
Hình 6.2 Cấu trúc project SwiftUI
6.1.3.1. Cách thức hoạt động - AppDelegate:
o Ngay cả trong iOS 13, AppDelegate vẫn là điểm truy cập chính của một ứng dụng. Các phương thức AppDelegate này được cho là phải ở đó để xử lý các sự kiện trong vòng đời ứng dụng, tức là phản hồi ứng dụng đang được khởi chạy, chạy nền, nền trước, nhận dữ liệu, v.v. - Ở AppDelegate, những điều chúng ta thường viết mã ứng dụng cho iOS
12 (trở xuống) là:
o Thiết lập trình điều khiển xem đầu tiên của ứng dụng (được gọi là trình điều khiển xem gốc), func (_: didFinishLaunchingWithOptions :) là func đầu tiên mà hệ điều hành gọi khi khởi chạy ứng dụng.
o Định cấu hình cài đặt ứng dụng và các thành phần khởi động. o Đăng kí trình xử lý thơng báo.
o Trả lời các sự kiện trong vòng đời của ứng dụng, chẳng hạn như ứng dụng chạy background, foreground hoặc thoát khỏi ứng dụng.
o Nhưng bây giờ chúng ta không cần phải quá quan tâm
ở AppDelegate nữa, bởi vì mơi trường hoạt động chính của chúng ta ở SceneDelegate.
o Từ iOS 13 trở lên, SceneDelegate đảm nhận một số vai trò đại biểu của ứng dụng. Quan trọng nhất, khái niệm về UIWindow (cửa sổ) được thay thế bằng UIScene (bối cảnh). Một ứng dụng có thể có nhiều Scene và một Scene sẽ đóng vai trị làm nền cho giao diện và nội dung ứng dụng. Vì vậy, SceneDelegate chịu trách nhiệm về những gì được hiển thị trên màn hình trong thuật ngữ của giao diện người dùng và dữ liệu.
o Người dùng cũng có thể tạo một bản sao của một Scene, chạy hiệu quả nhiều phiên bản của một ứng dụng cùng một lúc.
- SceneDelegate những điều chúng ta cần biết là:
o Một dự án iOS mới hiện có lớp SceneDelegate, được tạo tự động, bao gồm các sự kiện vòng đời quen thuộc như hoạt động, ngắt kết nối, v.v.
o Class AppDelegate có 2 chức năng mới liên quan đến các phiên Scene, được gọi là
application(:configurationForConnecting:options:) và application(:didDiscardSceneSessions:).
o Danh sách thuộc tính info.plist nhận bản
khai Sceneapplication(Application Scene Manifest), liệt kê các Scene là một phần của ứng dụng này, bao gồm
tên class, delegate và Storyboard của chúng.
o Thiết lập trình điều khiển xem đầu tiên của ứng dụng (được gọi là trình điều khiển xem gốc), tương tự AppDelegate là (:
didFinishLaunchingWithOptions :) thì ở đây chúng ta có
scene(:willConnectTo:options:), là chức năng đầu tiên mà hệ điều hành gọi khi khởi chạy ứng dụng.
- Trong SceneDelegate cịn có những chức năng sau:
o sceneDidDisconnect (_ :) được gọi khi một Scene bị ngắt kết nối khỏi ứng dụng (tắt app).
o sceneDidBecomeActive (_ :) được gọi khi người dùng bắt đầu tương tác với một Scene, tức là lúc quay trở lại App từ một ứng dụng khác hoặc lúc app xuất hiện lần đầu.
o sceneWillResignActive (_ :) được gọi khi người dùng ngừng tương tác với một Scene, tức là chuyển sang Scene khác.
o sceneWillEntryForeground (_ :) được gọi khi một Scene đi
Chương 6: ỨNG DỤNG iOS
o sceneDidEntryBackground (_ :) được gọi khi
một Scene vào background, tức là ứng dụng được thu nhỏ nhưng vẫn đang chạy ở background.
6.1.3.2. Một số bộ phận khác của SwiftUI
- Assets.xcassets đây chính là nơi chứa ảnh của Project. - LaunchScreen.xib là màn hình chờ khi khởi động App. - Trong giao diện ContenView ta thấy 2 thành phần
gồm ContentView và ContentView_Previews:
o ContentView chính là nơi ta tạo giao diện bằng code của mình.
o ContentView_Previews chính là thứ tạo nên sự đồng bộ trực tiếp giữa Code và Design.
- Khởi chạy màn hình Preview nếu chúng ta muốn vừa code vừa xem sự thay đổi UI vừa được thêm vào bằng code một cách trực tiếp.
- Bên trong ContentView có biến body: some View đây chính là Scene chính của mỗi View, các thành phần bên trong của chúng đều phải tuân theo một Protocol chung là View.