Tiếp nối bài trước, sau khi bạn đã tạo được project iOS, bạn đã muốn tiến hành học lập trình iOS ngay chưa. Khoan đã bạn nhé, đừng nóng vội. Trước khi học lập trình thì hãy cùng mình tìm hiểu các thành phần chính trong cấu trúc project iOS.
Bạn có nhớ bài trước mình đã giới thiệu khu vực Navigator area trong XCode không? Bây giờ chúng ta sẽ tìm hiểu nó kỹ hơn nhé. Trong Navigator area bạn hãy tập trung vào Navigator selector bar, đây là thành phần chính mà chúng ta cần quan tâm. XCode xây dụng thanh công cụ này giúp chúng ta quản lý project một cách hiệu quả hơn. Tất cả các thành phần như: tập tin, lớp đối tượng, thông báo, lỗi,… đều sẽ được thể hiện qua thanh công cụ này.
Vậy các tập tin trong project navigator có vai trò gì, chúng sẽ cùng tìm hiểu sâu hơn nào.
AppDelegate.swift
Tập tin AppDelegate.swift đóng vai trò là “cửa ngõ” để thực thi một số phương thức trước khi chạy ứng dụng. Đây là một tập tin quan trọng trong cấu trúc project ios. Tập tin AppDelegate.swift cũng là nơi định nghĩa lớp AppDelegate với thuộc tính window.
➤ Thuộc tính này có vai trò theo dõi trạng thái của cửa sổ ứng dụng. Đây cũng là nơi thể hiện (vẽ) tất cả các thành phần của ứng dụng.
➤ Lưu ý: thuộc tính window là thuộc tính optional. Do đó thuộc tính này cũng có khả năng mang giá trị nil trong một số trường hợp.
Ngoài ra, lớp AppDelegate còn là nơi thực thi một số phương thức delegate như:
➤ Các phương thức trên được dùng để theo dõi và quản lý trạng thái của ứng dụng. Ví dụ: chạy ứng dụng, kết thúc ứng dụng, đưa ứng dụng vào trạng thái chạy ngầm,….
ViewController.swift
Tập tin này là nơi định nghĩa lớp ViewController. Đây là lớp con thừa kế từ lớp UIViewController với 2 phương thức là viewDidLoad() và didReceiveMemoryWarning().
Lớp này được dùng để kiểm soát thành phần giao diện (vùng làm việc – view) trong ứng dụng.
- Một view được sử dụng để thiết kế giao diện và xử lý sự kiện của người dùng, một view cũng có thể chứa một view khác bên trong (được gọi là subview) tạo thành một cây phân cấp, và ViewController sẽ quản lý tất cả các thành phần này.
- Đây cũng là nơi chúng ta sẽ thêm các sự kiện, phương thức và thuộc tính cho ứng dụng.
➤ Lưu ý: Phương thức didReceiveMemoryWarning() sẽ không được sử dụng tại thời điểm này, do đó chúng ta có thể xoá nếu muốn.
Nếu trong phần này bạn chưa hiểu ViewController là gì thì cũng đừng bận tâm nhé. Đây là phần quan trọng sẽ được mình đề cập tới ở một bài riêng. Trong khuôn khổ bài viết này mình chỉ muốn diễn giải để bạn nắm ý nghĩa của từng tập tin trong cấu trúc project ios thôi.
Storyboard
Là các tập tin có đuôi .storyboard được sử dụng để thiết kế giao diện người dùng.
Xcode sử dụng Interface Builder, là công cụ cung cấp cho chúng ta một môi trường để có thể dễ dàng thêm, chỉnh sửa và xoá các thành phần UI bằng cách kéo thả vào giao diện ứng dụng.
Mỗi một màn hình trong ứng dụng sẽ tương ứng với một scene trong storyboard. Mũi tên bên trái scene gọi là điểm bắt đầu (entry point) của storyboard. Scene ứng với entry point sẽ được tải lên đầu tiên khi ứng dụng bắt đầu chạy.
➤ Lưu ý: Khi ứng dụng được thực thi, storyboard sẽ load và khởi tạo đối tượng view controller.
View Controller Scene
Nhân tiện mình đang tìm hiểu cấu trúc project ios thì chúng ta tìm hiểu luôn thành phần này nhé. View Controller Scene Gồm những thành phần sau:
- First Responder: đại diện cho đối tượng tiếp nhận các sự kiện của ứng dụng khi thực thi.
- Exit: khi người dùng huỷ một scene con thì view controller sẽ thoát ra (hoặc return) về scene cha. Tuy nhiên đối tượng Exit cũng cho phép view controller thoát ra một scene bất kỳ.
- View Controller: khi storyboard khởi tạo scene, nó sẽ tạo một thể hiện lớp ViewController và quản lý scene.
- View: đây là thành phần con thuộc view controller, dùng để thể hiện giao diện khi ứng dụng được chạy.
➤ Lưu ý: View Controller Scene nằm trong cửa sổ Outline. Nếu bạn không thấy màn hình này thì có thể đã bị ẩn, bạn click vào icon để mở ra nhé.
Khảo sát View Controller
Nhân đây mình thử khảo sát sơ về View Controller một xíu luôn nhé. Để khảo sát, chúng ta sẽ sử dụng công cụ Attributes inspector.
- Chọn “View Controller” trong cửa sổ Outline
- Mở cửa sổ Utilities phía bên phải giao diện chính, hoặc (chọn menu View -> Utilities -> Show Utilities).
- Click chọn button Attributes inspector mở cửa sổ Attributes (như hình minh hoạ bên dưới). Trong phần View Controller, chúng ta có thể thấy phần khởi tạo Scene đã được chọn.
➤ Lưu ý: Đối với bạn mới đang làm giao diện đầu tiên thì tuyệt đối không được bỏ chọn chức năng trên. Do đây là View Controller được khởi tạo đầu tiên, nếu bỏ chọn thì sẽ không thể hiển thị được giao diện.
Info.plist
Đây là tập tin chứa các thông tin cấu hình cho ứng dụng, ví dụ như:
- Cấu hình Storyboard chính được thực thi khi chạy ứng dụng thông qua “Main storyboard file base name”.
- Cấu hình tên ứng dụng, phiên bản.
- Cấu hình chiều sử dụng giao diện ứng dụng (ngang, dọc).
- …
Tập tin này tạm thời bạn sẽ chưa sử dụng nhiều, tuỳ từng bài học cụ thể mình sẽ hướng dẫn bạn thao tác.
Tổng kết
Trong phần này mình đã trình bày các thành phần cơ bản trong cấu trúc project ios. Vẫn còn một số thành phần mình chưa nói tới, nhưng tại thời điểm này bạn hãy cứ nắm ý nghĩa của các thành phần trên là đủ để thao tác rồi. Mình lưu ý là không bắt buộc bạn phải nắm hết ý nghĩa toàn bộ các thành phần trên nhưng ít nhất cũng phải nhớ được từng thành phần có vai trò gì trong project bạn nhé.