Tại sự kiện WWDC 2019, Apple chính thức giới thiệt Swift UI một framework mới dùng để thiết kế giao diện.

1. Lập trình iOS với SwiftUI
SwiftUI là một framework mới dùng để thiết kế giao diện một cách trực quan hơn so với cách truyền thống. Các control trong SwiftUI được chia ra thành từng component, để tạo ra một giao diện hoàn chỉnh chúng ta chỉ cần kết hợp từng component này lại với nhau.
Khi thêm một component vào trong giao diện chúng ta có thể thấy ngay được kết quả nhờ tính năng Live preview hoặc có thể tương tác trực tiếp lên bằng tính năng Live action. Đây là điểm khác biệt so với cách làm truyền thống là chúng ta phải chạy lại ứng dụng và vô chính xác màn hình mà chúng ta đang xây dựng để xem kết quả.
Ngoài ra việc quản lý các control cũng đơn giản hơn nhiều nhờ việc sử dụng state. Khi mà một state thay đổi thì UI sẽ tự động cập nhật theo chúng ta không cần phải tự làm bằng tay nữa.
Đặc biệt hơn, với SwiftUI chúng ta có thể xây dựng UI đa nền tảng hoạt động trên iOS, MacOS, watchOS thậm chí là tvOS.
2. Sự khác biệt giữa SwiftUI và XIB, StoryBoard
Từ trước đến nay chúng ta thường xuyên sử dụng Interface Builder (XIB) hoặc Storyboard để xây dựng giao diện. Trong hai file này đều chứa một lượng lớn code định dạng XML và rất khó để chỉnh sửa khi gặp vấn đề khi bị conflict.
Vấn để càng nghiêm trọng hơn khi bạn thêm nhiều control vào thì file sẽ phình to ra rất lớn sẽ tốn rất nhiều thời gian và công sức nếu muốn chỉnh sửa. Ngoài ra file XIB và Storyboard còn liên hệ chặt chẽ với source code, nếu có update trong file này mà không chú ý đến source code rất dễ bị tình trạng ứng dụng sẽ bị crash do thiếu liên kết Outlet hoặc Action.
SwiftUI được tạo ra để giải quyết tất cả các vấn đề này. Mỗi control (component) chúng ta chỉ cần một file source code, việc chỉnh sửa thay thế trở nên đơn giản hơn rất nhiều đặc biệt khi làm với team. Không còn phải vật lộn với đống code XML khi commit code nữa đây là điều tuyệt vời :D.
Đây là một framework dành cho Swift vì thế nó tận dụng được tất cả các tính năng tốt nhất của Swift: các loại giá trị, các kiểu trả về, mở rộng giao thức…
3. Một số câu hỏi thường gặp
SwiftUI là gì?
Là một framework của Apple để xây dựng giao diện cho iOS, MacOS, tvOS và watchOS. Lập trình iOS với SwiftUI là tương lai
SwiftUI hỗ trợ từ iOS bao nhiêu?
SwiftUI hỗ trợ từ iOS 13, macOS 10.15, tvOS 13 và watchOS 6.
Có thể sử dụng chung SwiftUI và UIKit không?
Có chứ. Chúng ta có thể sử dụng các control của UIKit từ SwiftUI và ngược lại.
SwiftUI có thay thế UIKit?
Không đâu, nhiều thành phần của SwiftUI được build trực tiếp từ UIKit, chẳng hạn như UITableView. Một số thì render bởi SwiftUI. Ngoài ra Apple cũng giới thiều rất nhiều function UIKit mới ở WWDC, điều này có nghĩa chúng ta sẽ làm việc với cả hai.
Auto Layout trong SwiftUI?
Việc layout trong SwiftUI khá giống với lập trình Web và các framework khác như Flutter hay React Native.
Mình vừa giới thiệu với các bạn các khái niệm cơ bản về lập trình iOS với SwiftUI, cám ơn các bạn đã theo dõi bài viết. Nếu các bạn muốn tìm hiểu về SwiftUI chi tiết hơn có thể tham khảo tại đây.