12/08/2018, 16:06

[iOS 11] What''s New for Developer ?

iOS 11 đã được release bản public vào rạng sáng nay giờ Việt Nam (September 20, 2017) . Chúng ta sẽ cần phải điểm qua một lượt những tính năng mới và cập nhập trong phiên bản này. General Hỗ trợ thư viện barcodes (New) Thêm mới các APIs trong AV Foundation , Core Image , và SiriKit ...

iOS 11 đã được release bản public vào rạng sáng nay giờ Việt Nam (September 20, 2017) . Chúng ta sẽ cần phải điểm qua một lượt những tính năng mới và cập nhập trong phiên bản này.

General

  1. Hỗ trợ thư viện barcodes (New)
    • Thêm mới các APIs trong AV Foundation, Core Image, và SiriKit để hỗ trợ detection, decoding và creation của barcodes với nội dung nhị phân
    • Thêm đối tượng mô tả barcode, CIBarcodeDescriptor tới Core Image để cung cấp khả năng tương tác với AV Foundation và các Vision API
  2. MusicKit (New)
    • Có thể truy cập vào Apple Music catalog, và user’s library.
    • Thêm mới và cập nhập một số chức năng trong StoreKit để lấy được client tokens và storefront identifiers.
    • Thêm mới và cập nhập một số chức năng trong Media Player để cho phép phát lại music .
    • Thêm mới hiển thị thông báo tùy chỉnh trong luồng thiết lập thuê bao của Apple Music.

App Frameworks

  1. Hỗ trợ kéo thả (New) : Kéo và thả trong iOS cho phép người dùng kéo các mục từ vị trí này đến vị trí khác trên màn hình, trong một ứng dụng hoặc trong các ứng dụng khác nhau.
    • Thêm chức năng để xác định đâu là nguồn cũng như là các điểm sẽ kéo đến.
    • Thêm các bản xem trước có thể tuỳ chỉnh và hình động. Bạn có thể tìm hiểu thêm về Drag and Drop trong tài liệu.
  2. Duyệt các tài liệu cục bộ và iCloud (New)
    • Thêm trình điều khiển chế độ xem cho tài liệu duyệt được lưu trữ locally và iCloud : UIDocumentBrowserViewController và UIDocumentBrowserTransitionController
    • Thêm UIDocumentBrowserAction, đây là một đối tượng để tạo một hành động cho document browser
    • Thêm FileProvider và FileProviderUI frameworks để thêm các dịch vụ lưu trữ từ bên thứ ba (third party) Bạn có tìm hiểu nhiều hơn từ Adding a Document Browser to Your App
  3. Nâng cao hỗ trợ Dynamic Type
    • Thêm UIFontMetrics, một đối tượng để tạo các phông chữ tuỳ chỉnh dựa trên kích thước văn bản đang được chọn.
    • Cập nhật Auto Layout để tự động điều chỉnh khoảng cách dựa trên kích thước phông chữ khi một đường viền đường cơ sở là một phần của một ràng buộc (constraint) sử dụng khoảng cách hệ thống.
    • Thêm thuộc tính để bảo vệ dự liệu vector cho PDF assets để cho phép mở rộng mượt mà. Bạn có thể sử dụng thuộc tính này để hiển thị một phiên bản lớn hơn với bar items và segmented control items. Để kích hoạt tính năng mở rộng trong PDF, trong danh mục Attributes inspector, chọn "Preserve vector data".
    • Thêm UIAccessibilityContentSizeCategoryImageAdjusting, một giao thức để chia tỉ lệ hình ảnh cho kích thước văn bản.
  4. Nâng cao Auto Layout hỗ trợ Dynamic Type
    • Cập nhập NSLayoutXAxisAnchor và NSLayoutYAxisAnchor để cung cấp các phương pháp tạo ra các constraint sử dụng khoảng cách giữa 2 điểm cố định. Trước đây, cách duy nhất để tạo một constraint như vậy là với dấu gạch ngang (-) trong Visual Format Language
    • Thêm tuỳ chọn NSLayoutFormatOptions để tạo ra một chuỗi Visual Format Language sử dụng khoảng cách giữa đường gốc và đường cơ sở.
    • Cập nhập UIStackView cho phép sử dụng system spacing và customized spacing.
  5. Cập nhập nội dung văn bản để làm việc với ứng dụng tự động điền mật khẩu
    • Thêm username và password vào UITextContentType
  6. Thêm primaryEdge, một thuộc tính của UISplitViewController để điều khiển master viewcontroller.
  7. Thêm sectionInsetReference, một thuộc tính enum mới của UICollectionViewFlowLayout , xác định ranh giới được sử dụng cho section insets.
  8. Cập nhập Keyboard extensions :
    • Thêm selectedText, một thuộc tính của UITextDocumentProxy sẽ trả về text đang được chọn trong tài liệu.
    • Thêm documentIdentifier, một thuộc tính của UITextDocumentProxy xác định liệu người dùng có đang điều hướng tới một tiện ích (widget) văn bản mới không.
    • Thêm hasFullAccess, một thuộc tính của UIInputViewController kiểm tra quyền của bàn phím.
    • Thêm needsInputModeSwitchKey, một thuộc tính của UIInputViewController để kiểm soát việc hiển thị phím chuyển đổi input-mode.
    • Thêm mới quyền hệ thống trong Setting để truy cập ứng dụng và các tiện ích mở rộng của keyboard extensions
  9. Nâng cấp API cho không gian lưu trữ
    • Thêm mới các key tới URL cho các kịch bản khác nhau :
      • volumeAvailableCapacityForImportantUsageKey trả về tổng số byte có sẵn cho một tính toán được yêu cầu rõ ràng từ người dùng hoặc cần thiết để hoạt động của ứng dụng.
      • volumeAvailableCapacityForOpportunisticUsageKey trả về tổng số byte có sẵn để lưu trữ các mục không cần thiết, chẳng hạn như nội dung được tải xuống để có hiệu suất mà người sử dụng có thể hoặc không thể sử dụng.

Graphics and Games

  1. Hỗ trợ Augmented reality (AR) (New)
    • Thêm mới ARKit framework, kết hợp theo dõi chuyển động thiết bị, camera chụp bối cảnh, xử lý bối cảnh tiên tiến và tiện ích hiển thị để đơn giản hoá nhiệm vụ xây dựng trải nghiệm AR.
  2. Phân thích hình ảnh hiệu suất cao. (New)
    • Thêm mới Vision framework, để phân tích khuôn mặt, mã vạch, văn bản, đường chân trời của hình ảnh và các khu vực hình chữ nhật.
    • Hỗ trợ tích hợp Vison framework với Core ML để chạy mô hình tuỳ chỉnh trên hình ảnh.
    • Thêm tính năng theo dõi đối tượng trong video.
    • Hỗ trợ thêm việc đăng kí hình ảnh (image registration).
  3. Khả năng tuỳ chỉnh để tạo ra các blending kernel cho Core Image. (New)
    • Thêm CIBlendKernel, một kiểu đặc biệt của CIColorKernel đểt trộn 2 hình ảnh (hỗ trợ bơi CIRenderDestination và CIImageAccumulator)
    • Thêm init(functionName:fromMetalLibraryData:) vào CIKernel để viết các kernel bằng cách sử dụng Metal để hưởng lợi từ các tính năng ngôn ngữ được cải thiện và thời gian biên dịch giảm.
  4. Mở rộng ReplayKit framework
    • Cập nhập RPScreenRecorder để chụp màn hình và hỗ trợ quay trở lại camera.
  5. Thêm mới các bộ lọc trong Core Image : CITextImageGenerator, CIColorCurves, CILabDeltaE, CIBokehBlur, CIMinMaxRed, và CIBicubicScaleTransform.

App Services

  1. Hỗ trợ machine learning
    • Thêm mới Core ML framework, để dễ dàng tích hợp mô hình máy học vào các ứng dụng.
  2. SiriKit hỗ trợ visual codes
    • Thêm Visual Codes domain, SiriKit hỗ trợ hiển thị các mã hình ảnh để trao đổi thông tin thanh toán và liên lạc.
  3. SiriKit hỗ trỡ notes và to-do lists
    • Thêm Lists and Notes, SiriKit hỗ trợ Siri để thêm ghi chú, tương tác với dánh sách việc cần làm và tương tác với lời nhắc nhở (reminders).
  4. Thêm một số mục vào SiriKit domains
    • Thêm việc huỷ bỏ đặt xe và phản hồi đến Ride Booking domain.
    • Thêm chuyển tiền và tìm kiếm tài khoản cho Payments domain.
  5. Tìm kiếm tiêu đề (heading) của thiết bị
    • Thêm heading vào CMDeviceMotion, một thuộc tính trả về vị trí cạnh của tiêu đề. Giá trị trả về là degrees kiểu double.
  6. Multipath TCP
    • Thêm hỗ trợ sử dụng nhiều giao diện, như Wi-Fi và di động, để truyền một luồng dữ liệu duy nhất, bằng cách mở rộng URLSessionConfiguration để hỗ trợ Multipath TCP như được định nghĩa trong IETF RFC 6824. Xem URLSessionConfiguration.MultipathServiceType.
  7. DNS Proxy
    • Thêm mới một ứng dụng DNS Proxy mở rộng vào Network Extension framework.
  8. Apple Pay
    • Thêm PKPaymentError và PassKit, cấu trúc để báo cáo chi tiết các sai sót trong thông tin vận chuyển và thanh toán của người dùng và cho các lỗi permission. Chúng ta có thể sử dụng thông tin này để tùy chỉnh thông báo lỗi.
    • Cập nhật các phương pháp xử lý trong PKPaymentAuthorizationControllerDelegate để nhận một PKPaymentError.
    • Cập nhật PKPaymentRequest để sử dụng PKContactField để biết thông tin liên lạc.
    • Thêm supportedCountries vào trong PKPaymentRequest để xác định các quốc gia được hỗ trợ giao dịch.
  9. Promoting in-app purchase
    • Chúng ta có thể quảng bá tối đa 20 lượt mua hàng trong ứng dụng trên trang sản phẩm App Store. Khách hàng có thể bắt đầu mua trên App Store, và sau đó được đưa đến ứng dụng để hoàn tất giao dịch.
    • Thêm paymentQueue (: shouldAddStore: for             </div>
            
            <div class=
0