[Video Summary] Swift Mid Term Solution - Olympics Playground & App
Mô tả nhanh
Video này trình bày lời giải cho hai trong ba bài tập giữa kỳ môn lập trình iOS/macOS với Swift và SwiftUI. Bài tập bao gồm một playground để thực hành các khái niệm Swift cơ bản và một ứng dụng hiển thị logo Olympic, sử dụng các hàm đã xây dựng trong playground.
Video
Mô tả chi tiết
Video này trình bày lời giải cho hai trong ba bài tập giữa kỳ môn lập trình iOS/macOS với Swift và SwiftUI. Các bài tập bao gồm một playground (sân chơi) để thực hành các khái niệm Swift cơ bản và một ứng dụng hiển thị logo Olympic, sử dụng các hàm đã xây dựng trong playground.
Phần 1: Playground
- Tạo Playground và Mảng Logos:
- Tạo một playground mới tên "Olympics".
- Thêm comment tên của bạn vào đầu file.
- Xóa hết code, chỉ giữ lại comment và
import. - Thêm comment "q1 logos array".
- Tạo mảng
logoschứa các chuỗi URL từ trình duyệt.
- In Mảng Logos:
- Thêm comment "Q2 D print logos array".
- Sử dụng
forEachđể in từng phần tử của mảnglogostrên một dòng.
- Hàm
getImageName:- Thêm comment "Q3 get image name".
- Tạo hàm
getImageNamenhận một tham sốlogoName(string) và trả về một string sau khi loại bỏ đuôi mở rộng (extension).png,.jpg,.jpeg(nếu có). - Sử dụng phương thức
replacingOccurrences(of:with:)để loại bỏ đuôi mở rộng. - Gọi hàm
getImageNamecho từng phần tử trong mảnglogosvà in kết quả.
- Hàm
getYear:- Thêm comment "Q4 get year".
- Tạo hàm
getYearnhận tham sốlogoName(string) và trả về string chứa năm (ví dụ: 2024). - Sử dụng phương thức
components(separatedBy:)để tách chuỗi theo dấu '-' và lấy phần tử đầu tiên (năm). - Gọi hàm
getYearcho từng phần tử trong mảnglogosvà in kết quả.
- Hàm
getCountry:- Thêm comment "Q5 get country".
- Tạo hàm
getCountrynhận tham sốlogoName(string) và trả về string chứa tên quốc gia, viết hoa chữ cái đầu (ngoại trừ "USA" viết hoa toàn bộ). - Sử dụng
components(separatedBy:)để lấy phần tử cuối cùng (quốc gia). - Gọi hàm
getImageNameđể loại bỏ đuôi mở rộng trong tên nước trước khi thực hiện viết hoa. - Nếu là USA sẽ viết hoa toàn bộ, các nước khác viết hoa chữ cái đầu.
- Gọi hàm
getCountrycho từng phần tử trong mảnglogosvà in kết quả.
- Hàm
getCity:- Thêm comment "Q6 get city".
- Tạo hàm
getCitynhận tham sốlogoName(string) và trả về string chứa tên thành phố, viết hoa chữ cái đầu của mỗi từ. - Sử dụng
components(separatedBy:)để tách chuỗi, loại bỏ phần tử đầu và cuối, sau đó lấy các phần còn lại và viết hoa chữ cái đầu. - Gọi hàm
getCitycho từng phần tử trong mảnglogosvà in kết quả.
Phần 2: Ứng dụng iOS
- Tạo Dự Án Xcode:
- Tạo dự án Xcode mới tên "Summer Olympics".
- Copy mảng
logostừ playground vàoContentView. - Tạo biến
logoNumberkiểuStatevà khởi tạo là 22 (vị trí của Paris 2024 trong mảnglogos).
- Thêm Ảnh vào Assets:
- Tải các ảnh từ đường link trong video vào thư mục Files.
- Kéo tất cả các ảnh vào
Assets.xcassetstrong Xcode (cả launch screen và icon). - Thiết lập launch screen trong phần "Info".
- Thêm Các Hàm từ Playground
- Copy các hàm
getImageName,getYear,getCountry,getCitytừ playground vào trong structContentView.
- Copy các hàm
- Xây dựng giao diện:
- Xóa các view mặc định trong
VStack. - Thêm
Texthiển thị tiêu đề "Olympic logos" với font lớn và chữ đậm. - Thêm một
Spacerđể đẩy tiêu đề lên trên đầu. - Thêm
Imagehiển thị logo Olympic, sử dụnggetImageNameđể lấy tên ảnh tương ứng. - Thêm một
Spacerđể đẩy image vào giữa. - Thêm
Texthiển thị thành phố và quốc gia, sử dụng kết hợp các hàmgetCityvàgetCountry. - Thêm
Texthiển thị năm , sử dụng hàmgetYear. - Đặt hai
Textvừa tạo trong mộtVStack, style cho cảVStackđể không lặp lại code style của từngText. - Thêm 2 button (trái/phải) để chuyển logo, sử dụng các icon hệ thống.
- Bố trí hai button cạnh nhau trong
HStack.
- Xóa các view mặc định trong
- Xử lý sự kiện:
- Button trái: Giảm
logoNumberđi 1. - Button phải: Tăng
logoNumberlên 1. - Disable button trái khi
logoNumberlà 0 (đầu mảng). - Disable button phải khi
logoNumberlàlogos.count - 1(cuối mảng). - Sửa lỗi hiển thị nước, sửa lại
getCitythànhgetCountry.
- Button trái: Giảm
Chúc các bạn thành công!
