SwiftUI, Dark Mode trong iOS 13, API Swift hiện đại, Project Catalyst, Ứng dụng đồng hồ độc lập: “Thật tuyệt vời!”
Theo dự đoán của nhiều người, Marzipan (hiện được gọi chính thức là Project Catalyst), một công nghệ có thể cho phép các ứng dụng iOS được chuyển sang macOS, sẽ là chủ đề chính trong năm nay. Nhưng WWDC còn ngoạn mục hơn thế, với chế độ tối trên iOS, các ứng dụng watchOS độc lập và SwiftUI là ngôi sao tâm điểm của chương trình.
Với hơn 150 bài và video bổ sung, có thể hơi quá sức để bắt kịp, vì vậy cafedev đã tổng hợp 10 bài cần thiết và đáng chú ý để mọi người tìm hiểu.
Thật tốt khi bắt kịp với công nghệ mới nhất, nhưng lưu ý rằng các framework và API đến và thường xuyên bị phản đối. Tốt hơn là nên hiểu lý do tại sao chúng được giới thiệu, cách học các kỹ năng và tư duy để chúng ta có thể áp dụng chúng trong các ứng dụng của mình để làm hài lòng trải nghiệm người dùng.
Đầu tiên, một mẹo nhỏ để có được hầu hết các video WWDC 2019. Mặc dù bạn có thể xem trên trang web của nhà phát triển Apple, nhưng có ứng dụng WWDC cho macOS cho phép trải nghiệm xem thoải mái hơn nhiều. Ở đó chúng ta có thể điều chỉnh tốc độ phát, hình ảnh ở chế độ xem hình ảnh, yêu thích và tải xuống video để xem ngoại tuyến.
Thứ hai, đối với những bạn muốn tìm kiếm một số văn bản trong các cuộc trao đổi, có ASCIIwwdc cung cấp đầy đủ của tất cả các cuộc trao đổi.
Bài đầu tiên (Trong mỗi bài sẽ có một link ở tiêu đề để bạn có thể xem video nói về nó tại WWDC 2019):
Nội dung chính
1. Liên minh các Nền tảng
Nếu bạn chỉ có thời gian cho 1 video, thì đây là nó. Ngay sau Keynote, Liên minh các nên tảng(Platform State of the Union) giống như keynote(Những điểm chính) cho các nhà phát triển vì nó làm nổi bật những thay đổi phát triển quan trọng.
- macOS 10.15, iOS 13, watchOS 6 và tvOS 13: Như thường lệ, các developer có thể nhận được các phiên bản va chạm trên tất cả các nền tảng chính, mang lại nhiều tính năng mới và cải tiến. macOS 10.15 được đặt tên là Catalina và có một nền tảng hoàn toàn mới cho iPad có tên iPadOS.
- Bảo mật và quyền riêng tư: Thêm vào việc tăng cường bảo mật từ năm ngoái, năm nay cho thấy Apple thực sự cam kết như thế nào. Có quyền truy cập một lần, ký kết với Apple, giao thức bảo mật cho HomeKit, Framework Crypto mới đánh dấu MD5 là không an toàn. Ngoài ra, các ứng dụng nhắm mục tiêu đến trẻ em không thể hiển thị quảng cáo hoặc bao gồm phân tích dữ liệu người dùng.
- tvOS 13 hỗ trợ rất nhiều cho người dùng.
- watchOS 6 mở đường cho các ứng dụng đồng hồ độc lập, không yêu cầu các ứng dụng iOS đi kèm. Ngoài ra còn có cửa hàng riêng chuyên dụng.
- iOS 13 hiện có thể dùng trong bóng tối khá tốt, nhưng bỏ hỗ trợ cho iPhone 5S, 6 trở xuống. Ngoài ra, chỉ có khả năng chuyển đổi cài đặt ngôn ngữ cho mỗi ứng dụng.
- iPadOS là phiên bản tách rời với iOS hiện tại, chúng trông giống nhau nhưng chúng được dự kiến sẽ đi theo những con đường khác nhau. Nó bao gồm hỗ trợ chuột và yêu cầu iPad Air 2 và các thiết bị mới hơn.
- macOS 10.15 giới thiệu sẽ thay thế bash bằng zsh. Nó cũng hỗ trợ SideCar cho phép iPad như một màn hình ngoài. Cuối cùng nhưng không kém phần quan trọng, có Project Catalyst cho phép các ứng dụng iPad chạy trên mac.
- Xcode 11 bao gồm Swift 5.1 vài SDK mới nhất. Nó mang đến một giao diện mới với hàng tấn các tính năng như minimap, xem trước Xcode, hỗ trợ chính thức cho Trình quản lý gói Swift, tăng cường kiểm soát nguồn và kế hoạch kiểm tra.
2. Có gì mới trong Swift 5.1 2019
Mặc dù Swift được phát triển mở, nhưng thật dễ dàng để mất dấu vết của hàng tấn đề xuất và thay đổi. Swift 5.1 mang đến nhiều tính năng thú vị cung cấp năng lượng cho SwiftUI và Combine, sau đây là những điều mới:
- Độ ổn định của mô-đun: Điều này có vẻ không quan trọng nhưng đây có thể là tính năng quan trọng nhất của Swift 5.1. Không giống như độ ổn định ABI mà chúng ta có trong Swift 5, độ ổn định của mô-đun giúp giải quyết các khác biệt tại thời gian biên dịch. Nói cách khác, điều này đảm bảo thư viện Swift 5 sẽ hoạt động với các trình biên dịch Swift trong tương lai tốt hơn.
- Một biểu thức có thể được khai báo mà không cần từ khóa trả về
- Trình xây dựng hàm, với điểm đánh dấu @_feftBuilder hoạt động khá giống chức năng với bộ thu trong Kotlin, cho phép một số cú pháp DSL rất gọn gàng.
- Trình bao bọc Property, nó giống như delegated property của Kotlin, cho phép người truy cập Property được sử dụng một cách thuận tiện. Được vận chuyển với Swift 5.1, chúng ta có thể sử dụng nó với chú thích @propertyWrapper.
- Kiểu trả về không xác định kiểu trước được sử dụng với Swift Protocol và Self or associcated types.
- Trong số những thứ khác, có những tính năng thú vị khác như universal Self, static subscripts, collection.
3. Giới thiệu SwiftUI: Xây dựng ứng dụng đầu tiên của bạn
Chào mừng bạn đến với sự chú ý của WWDC 2019, SwiftUI. Đây có thể là thông báo thú vị nhất kể từ khi Swift được giới thiệu vào năm 2014. SwiftUI không chỉ là một khuôn khổ mới, đây là một sự thay đổi hoàn toàn từ lập trình bắt buộc với UIKit / AppKit sang một thế giới khai báo. Cafedev đã rất ngạc nhiên khi React và Flutter nhanh chóng cho phép tạo mẫu và phát triển nhanh chóng, vì vậy Cafedev rất vui khi Apple cuối cùng cũng có sẵn điều này trên tất cả các nền tảng.
Điều thú vị về SwiftUI là nó có tính biểu cảm và có cú pháp nhất quán trên các nền tảng. Vì vậy, nó là một lần học, viết bất cứ nơi nào. Cùng với Xcode Preview cực hót, điều này chấm dứt cuộc tranh luận dài giữa cộng đồng iOS về việc nên viết UI trong mã hay Storyboard, vì nguồn sự thật bây giờ là mã ngắn gọn, nhưng người dùng có thể tự do thay đổi bất kỳ chi tiết UI nào thông qua việc tương tác với Xcode Preview.
SwiftUI không chỉ xử lý giao diện người dùng nhất quán theo hướng dẫn thiết kế của Apple, nó còn cung cấp nhiều tính năng miễn phí như khả năng truy cập, chế độ tối và các tính năng khác như:
- Tinh chất SwiftUI
- Xây dựng chế độ xem tùy chỉnh với SwiftUI
- Luồng dữ liệu qua SwiftUI
- SwiftUI trên tất cả các thiết bị
- Tích hợp SwiftUI
4. Dark Mode on iOS
Dark Mode trong iOS là thứ làm dịu mắt chúng ta. Một số ứng dụng cũng hỗ trợ chủ đề Dark do chính họ sở hữu, nhưng với iOS 13, hỗ trợ chế độ Dark cho các ứng dụng của chúng tôi không phải là một nhiệm vụ khó khăn.
Có nhiều vật liệu sống động hơn, màu sắc hệ thống tự động thích ứng với các chế độ tối và sáng. Chúng tôi cũng có thể chọn hình ảnh cho từng chế độ trong Danh mục Assest một cách dễ dàng.
5. Giới thiệu về Combine and Advances in Foundation
Kết hợp là một khung khai báo thống nhất để xử lý các giá trị theo thời gian. Là một fan hâm mộ lớn của Rx, Combine trông giống như nhau. Thật vui mừng khi tính năng này được Apple hỗ trợ chính thức. Điều này đơn giản hóa việc lập trình không đồng bộ rất nhiều, cũng hợp lý hóa các mẫu truyền thông khác như KVO và trung tâm thông báo.
Kết hợp là lực lượng bản chất phản ứng sức mạnh trong SwiftUI với Binding và BindableObject. Ngoài ra còn có rất nhiều cải tiến cho Foundation như khác biệt về bộ sưu tập, danh sách mới và các trình định dạng tương đối và đáng chú ý là cú pháp Kết hợp cho URLSession, giúp kết nối mạng dễ dàng.
Để tìm hiểu thêm về Combine, có bài Combine Thực hành nơi chúng ta có thể tìm hiểu thêm về xử lý lỗi, lên lịch làm việc và nhiều toán tử trên luồng.
6. Hiện đại hóa giao diện người dùng của bạn cho iOS 13
Hãy xem bài nói chuyện này để tìm hiểu về các tính năng mới trong iOS 13 mà chúng ta nên biết trong các ứng dụng của mình. Mới có trong iOS 13, chúng ta có thể tận dụng cách trình bày phương thức kiểu thẻ rất cồng kềnh để sao chép chính mình.
Ngoài ra còn có UISearchBarTextField mới với các tùy chỉnh nâng cao cho mã thông báo và đầu vào. Cuối cùng, UIMothy mới làm cho việc hiển thị menu ngữ cảnh trở nên tầm thường và mở đường cho các ứng dụng iPad hoạt động giống như bản địa trên máy mac.
7. Thiết kế API Swift hiện đại
Nếu bạn đang phát triển ứng dụng iOS, rất có thể bạn đã vấp phải Nguyên tắc thiết kế API, trong đó có các hướng dẫn có giá trị để cấu trúc mã Swift của chúng tôi.
Điều này nhấn mạnh lời khuyên lập trình yêu thích nhất của tôi “Rõ ràng tại điểm sử dụng”, bởi vì những điều chúng tôi tuyên bố chỉ được viết một lần, nhưng đọc nhiều lần, vì vậy chúng tôi nên làm cho rõ ràng và rõ ràng. Cũng có đề cập đến việc thích giao thức chung hơn giao thức nhắc nhở tôi về kỹ thuật chứng kiến giao thức.
Bài nói chuyện này mô tả chi tiết cách các kỹ sư của Apple tự thiết kế mã Swift trong các khung RealKit và SwiftUI.
8. Tạo ứng dụng đồng hồ độc lập
watchOS cuối cùng cũng có Appstore của riêng mình và khả năng chạy các ứng dụng watchOS độc lập mà không cần ứng dụng iOS hợp tác. Với việc giới thiệu URLSession và API phát trực tuyến cho đồng hồ, cùng với các cải tiến trong thông báo đẩy, Apple đăng nhập, gỡ lỗi, đây không thể là thời điểm tốt hơn để bắt đầu phát triển cho đồng hồ.
9. Tối ưu hóa khởi chạy ứng dụng
Thời gian ra mắt của ứng dụng của bạn có thể quyết định đến trải nghiệm người dùng, nó cần phải nhanh và chỉ cần làm những việc cần thiết. Với các cải tiến thông qua các khung được chia sẻ và được lưu trong bộ nhớ cache, các ứng dụng hiện tải nhanh hơn trên iOS 13. Nhưng có nhiều điều chúng ta có thể làm để cải thiện điều này, nhờ trình cấu hình Khởi chạy ứng dụng mới trong Xcode 11, cùng với phép đo thời gian khởi chạy ứng dụng trong XCTests.
3 từ chúng ta có thể rút ra từ bài nói chuyện này là giảm thiểu, ưu tiên và tối ưu hóa công việc tại thời điểm ra mắt quan trọng này.
10. Giới thiệu ứng dụng iPad cho Mac
Bắt đầu với iOS 13 với Project Catalyst, có một kiểm tra môi trường mục tiêu mới gọi là UIKitForMac, cho phép các ứng dụng iPad nhắm mục tiêu mac trong khi sử dụng cùng một cơ sở mã. Hầu hết các giao diện người dùng sau khi chuyển có giao diện chính xác giống như một ứng dụng macOS gốc với nhiều tính năng được cung cấp miễn phí như quản lý cửa sổ. Rõ ràng, một số framework được thiết kế dành riêng cho trải nghiệm điện thoại và máy tính bảng, không thể được hỗ trợ trong macOS.
Có nhiều bài khác như Đưa ứng dụng iPad cho Mac nơi chúng ta có thể tìm hiểu thêm về điều này.
Thật tuyệt vời khi thấy Apple đưa ra rất nhiều thông báo thú vị trong năm nay trong khi vẫn giữ sự đổi mới và chất lượng cao. Có nhiều phiên để khám phá, hãy đến trang web của nhà phát triển WWDC 2019 để tìm hiểu thêm.
Cảm ơn các bạn đã đọc và tham khảo bài này, nếu bạn thấy hay và hữu ích, xin vui lòng like fanpage cafedev để ủng hộ, Cảm ơn các bạn nhiều.