Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> สมาร์ทโฟน >> iPhone

WWDC 2019 Developer Checklist: ประกาศสำคัญที่คุณ אסור לפספס

ผ่านมาเกือบ 1 เดือนแล้วตั้งแต่ WWDC 2019 จบลง นักพัฒนาทุกคนยัง忙碌 กับสิ่งใหม่ที่ Apple เพิ่มหรืออัปเดตสำหการพัฒนา มีประกาศใหญ่และเล็ก แต่เรา Developers ต้องแน่ใจว่าไม่พลาดสิ่งสำคัญ ผมจึงทำ Checklist รวดเร็ว สั้น กระชับ เรียบง่าย

iOS:

  1. iOS 13 ให้จำกัดการเข้าถึง Location ของแอปเพียง "ครั้งเดียว" (Just Once) ก่อนหน้านี้มี 3 ตัวเลือก: "Always", "While Using", "Never" ตอนนี้เพิ่ม "Just Once" เป็นครั้งแรก แชร์ Location ให้แอปครั้งเดียว แล้วบังคับให้ขอใหม่ครั้งหน้า
  2. ประกาศยอดนิยม คนบ้าที่สุด: "Apple Sign-in" Apple กำหนดให้นักพัฒนาต้อง Implement Single Sign-in ใหม่นี้ หากแอปมี Third-party Sign-in อยู่แล้ว
  3. Dismiss Modal View Controllers แบบ Interactive ได้ ซึ่งอาจ Break แอปเดิมบน iOS 13 Default User สวายปิด Modal ได้ ตอนพัฒนาแอปใหม่ ต้องคำนึงถึงนี้ ปิดได้ด้วย isModalRepresentation = false
  4. UISegmentedControl และ UIStepper เปลี่ยน Design ใหม่ทั้งหมดใน iOS 13
  5. อัปเดต Localization ใน iOS 13 ตอนนี้ User ตั้งภาษาแตกต่างต่อแอปแต่ละตัวบน Device ได้ Developer ไม่ต้องแก้ไข Settings App จัดการให้
  6. iOS 13 มี System Icons เกือบ 1500 ตัว UIImage มี Initializer ใหม่ UIImage(systemName:) Initialize System Icons ใดๆ ได้
  7. ก่อนหน้า Download ใน Safari ไปที่ Folder Downloads ตรงๆ แต่ปีนี้ Safari อัปเดต เปลี่ยน Default Download Folder เป็น Folder อื่นได้ แม้ USB Drive ก็เลือกได้
  8. ปรับปรุง UIStoryboardSegue Apple Introduce IBSegueAction Modifier ส่ง Context และ Parameters เพิ่มเติมไป Destination View Controller ตรงๆ
  9. แอปให้ข้อมูล Reservation กับ Siri พร้อม Context และเวลาเฉพาะ User 採取 Action ได้ เช่น ยืนยันการจองโรงแรม Remind Check-in เที่ยวบิน ช่วยคืนรถเช่า
  10. Core NFC Framework รองรับ Tag Writing รวม NDEF Formatted Tags รองรับอ่าน/เขียน Tags ด้วย Native Protocols: ISO 7816, MIFARE, ISO 15693, FeliCa
  11. Sync Core Data กับ CloudKit ให้ User เข้าถึง Data ข้าม Devices ได้ราบรuhren Core Data + CloudKit = Local Persistence + Cloud Backup/Distribution
  12. Metal ให้ GPU ควบคุม Graphics/Compute Pipeline มากขึ้น เพิ่ม Features Advanced GPU Processing ลดงานรองรับ GPUs ต่างๆ Tools ใหม่รวม Metal ใน Simulator เริ่มต้นเร็วขึ้น เข้าใจว่า App ใช้ Metal ถูกต้อง
  13. VisionKit Framework ใหม่ ให้ App ให้ User Scan Documents ด้วย Camera เหมือน Notes App รวมกับ Vision Text Recognition ดึงข้อความจากเอกสาร Scan
  14. Core ML 3 รองรับ On-device Model Personalization อัปเดต Model ด้วย Retraining/Fine-tuning ด้วย User-specific Data แบบ Private ใน App Core ML ขยาย Support Dynamic Neural Networks 100+ Layer Types
  15. PencilKit Framework ใหม่ ใส่ Hand-drawn Content ใน App ได้ง่าย/เร็ว PencilKit ให้ Drawing Environment รับ Input จาก Apple Pencil หรือนิ้ว สร้าง High-quality Images แสดงใน iOS/macOS มี Tools สร้าง ลบ Select Lines
  16. MetricKit Framework ใหม่ ให้ On-device Power/Performance Metrics ที่ System Capture ใช้ปรับปรุง Performance App
  17. Core Haptics Framework ใหม่ Compose และ Play Haptic Patterns Customize Haptic Feedback ของ App
  18. Apple CryptoKit Framework ใหม่ ทำ Cryptographic Operations ได้ปลอดภัย/มีประสิทธิภาพ: Compute/Compare Secure Digests, Public-key Crypto สร้าง/ประเมิน Digital Signatures, Generate Symmetric Keys ใช้ใน Message Authentication/Encryption
  19. Combine Framework ใหม่ Declarative Swift API สำห Process Values Over Time Values = UI Events, Network Responses, Scheduled Events, Async Data อื่นๆ Combine: Publishers Expose Values ที่เปลี่ยนได้ Subscribers Receive Values จาก Publishers Combine ทำ Code อ่านง่าย/ดูแลง่าย Centralize Event-processing Eliminate Nested Closures/Callback Conventions
  20. BackgroundTasks Framework ใหม่ เก็บ App Content Up-to-date และ Long-running Tasks ใน Background
  21. RealityKit Framework ใหม่ Swift Framework Simulate/Render 3D Content สำห AR Apps รวม Animation, Physics, Spatial Audio RealityKit ใช้ ARKit Integrate Virtual Objects เข้ากับ Real World
  22. Symbol Images ให้ Consistent Icons ใช้ใน App Icons ปรับตัวตาม Sizes และ App-specific Content Symbol Images ใช้ SVG Format Vector Shapes Scale ไม่เสีย Sharpness รองรับ Traits เหมือน Text: Weight, Baseline Alignment
  23. iOS 13 User สร้าง/จัดการ Multiple Instances ของ App UI พร้อมกัน Switch ด้วย App Switcher บน iPad แสดง Side-by-side ได้ แต่ละ Instance แสดง Content ต่างกันหรือแสดงต่างกัน เช่น Calendar แสดง นัดหมายวันเฉพาะ และเดือนเต็ม Side-by-side
  24. SwiftUI Modern Approach สร้าง UI สำห iOS, macOS, watchOS, tvOS สร้าง Dynamic Interfaces เร็วกว่าเดิม Declarative, Composition-based Programming Framework ให้ Views, Controls, Layout Structures Declare App UI Event Handlers: Taps, Gestures, Input อื่นๆ Tools จัดการ Data Flow จาก Models ลง Views/Controls
  25. Voice Control Accessibility เปิด = Blue Mic Icon บนสุด Device แสดงว่าใน Voice Control Mode Dimmed Icon ตอนโทรศัพท์ไม่ได้ Attention
  26. Feature ใหม่ใน Files App: Connect Server ด้วย SMB Feature นี้ไม่ทำงาน Beta 1 แต่ Beta 2 ทำงาน User iOS 13 Connect Home NAS ได้
  27. Share Webpage จาก Safari Share Sheet มี Option ใหม่: Share as PDF หรือ Web Archive มี "Automatic" เลือก Format ที่เหมาะสมต่อ App/Action
  28. No More Spam Callers iOS 13 รองรับ Silence Unknown Callers อย่างเคร่งครัด
  29. iOS 13 มี Method ใหม่บน UIImageAsset ชื่อ registerImage:withTraitCollection สร้าง Dynamic Images Light/Dark แบบโปรแกรมมิงได้
  30. Low Mobile Data? "Low Data" Mode ใหม่ หลีกเลี่ยงหมด Data ตอน Roaming
  31. ไม่มี WiFi Download Apps ใหญ่ยาก แต่ iOS 13 Limit เพิ่มเป็น 200 MB ยังไม่พอ? ลบ Restriction ใน Settings ได้
  32. Share Photo พร้อม Original Info iOS 13 ให้ Option เพิ่ม Original Info ตอน Share
  33. Happy to Mute iPhone Apple Introduce Mute Indicator Redesigned ใหม่ Match Apple Pencil Charging Indicator
  34. Initialize UIViewController Subclasses ด้วย Additional Context/Arguments (Required for Dependency Injection)
  35. ไม่ชอบ Delegate? Good News iOS 13 อัปเดต Delegate-based APIs เป็น Block-based APIs บางส่วน
  36. ไม่ต้อง Long Press App แล้วกด X Delete ตอนนี้ Left Swipe บน App Store Update Page ลบได้
  37. Screenshot ก่อนหน้าแค่ Image Format iOS 13 Screenshot เป็น PDF ได้
  38. iOS 13 มี _visualRecursiveDescription Private API สร้าง Visual Representation ของ View Hierarchy Command เหมาะสำห Debug ใน LLDB
  39. UICollectionViewCompositionalLayout Class ใหม่ใน UIKit สร้าง Compositional Layouts ง่ายขึ้น ไม่ต้อง Custom UICollectionViewLayout
  40. UITableViewStyle Enum เพิ่ม Case UITableViewStyleInsetGrouped สร้าง Grouped Style Table Views
  41. iOS Apps ใช้ File Management APIs ได้รับ Read/Write Access ทั้ง Folder แทนแค่ File เดียว
  42. เบื่อ Swipe Scroll View? iOS 10 Drag Scroll Indicator ไปได้ใน Document ยาว
  43. Apps สำหเด็ก ห้าม Third-party Advertising/Analytics และห้ามส่ง Data ไป Third Parties
  44. MDM เข้าถึง Sensitive Data MDM Apps ต้อง Request MDM Capability ให้โดย Commercial Enterprises เท่านั้น (Business, Education, Government) กรณีจำกัด Parental Controls MDM Apps ห้ามขาย/ใช้/เปิดเผย Data ให้ Third Parties ต้อง Commit ใน Privacy Policy (อ้างอิง Apps ที่ Abuse MDM สำห Screen Time Features)

List ยาวมาก เต็มไปด้วย Features ใหม่ Developers ใช้ทั้งหมดทำ App ดีกว่า สmooth มากขึ้น ต่อไปดู Frameworks ใหม่ใน iOS 13

Frameworks:

  1. BackgroundTasks: ใช้ BackgroundTasks Framework เก็บ App Content Up-to-date และรัน Tasks ที่ใช้นาทีใน Background Tasks ยาวกว่าอาจต้อง Powered Device และ Network Connectivity Register Launch Handlers ตอน Launch และ Schedule ตามต้องการ System Launch App ใน Background Execute Tasks
  2. Combine: Combine Framework Declarative Swift API Process Values Over Time Values = UI Events, Network Responses, Scheduled Events, Async Data Combine: Publishers Expose Values เปลี่ยนได้ Subscribers Receive Values จาก Publishers
  3. CoreAudioTypes: CoreAudioTypes Framework Declare Common Data Types/Constants ใช้โดย Core Audio Interfaces อื่นๆ รวม Convenience Functions เล็กน้อย
  4. Core Haptics: Core Haptics ใส่ Haptic/Audio Feedback Customized ให้ App ใช้ Haptics Engage Users ทางกายภาพ Tactile/Audio Feedback ดึง Attention Reinforce Actions System Elements (Pickers, Switches, Sliders) ให้ Haptic Feedback อัตโนมัติ Core Haptics ขยาย Functionality Compose/Combine Haptics เกิน Default Patterns
  5. QuickLookThumbnailing: สร้าง Miniature Representation (Thumbnail) ของ File/Contents แสดงใน App หรือให้ OS macOS แสดง Thumbnails ใน Finder/Quick Look QuickLookThumbnailing Framework API Generate Thumbnails Common File Types ด้วย QLThumbnailGenerator
  6. PencilKit: PencilKit ใส่ Hand-drawn Content ใน iOS/macOS Apps ง่าย/เร็ว Drawing Environment รับ Input Apple Pencil/นิ้ว สร้าง High-quality Images แสดง iOS/macOS Tools: Create, Erase, Select Lines
  7. RealityKit: ใช้ RealityKit Implement High-performance 3D Simulation/Rendering ใช้ ARKit Integrate Virtual Objects เข้ากับ Real World
  8. VisionKit: VisionKit Framework เล็ก ให้ App ใช้ System Document Scanner Present Document Camera as View Controller ครอบเต็มหน้าจอ เหมือน Camera ใน Notes
  9. SoundAnalysis: ใช้ SoundAnalysis Analyze Audio Recognize เป็น Type เฉพาะ เช่น หัวเราะ/ปรบมือ ใช้ Core ML Model Trained by MLSoundClassifier Analyze Streamed/File-based Audio ใส่ Intelligent Audio Recognition ให้ App
  10. CryptoKit: ใช้ Apple CryptoKit ทำ Cryptographic Operations: Compute/Compare Secure Digests Public-key Crypto สร้าง/ประเมิน Digital Signatures, Key Exchange รองรับ Keys ใน Memory และ Private Keys ใน Secure Enclave Generate Symmetric Keys ใช้ใน Message Authentication/Encryption Prefer CryptoKit Over Lower-level Interfaces CryptoKit ปลดปล่อย App จาก Raw Pointers Auto Handle Tasks ทำให้ Secure มากขึ้น (Overwrite Sensitive Data ตอน Memory Deallocation)
  11. Maps Web Snapshots: Maps Web Snapshots Service Generate Static Map Images จาก URL ใช้ Snapshots ตอนไม่ต้อง Interactive Map และที่มักใช้ Image URL (Web Pages, Email Clients ที่ไม่มี JavaScript)
  12. DriverKit: ใช้ DriverKit สร้าง Device Drivers User Install บน Mac Drivers built with DriverKit Run in Userspace ไม่ใช่ Kernel Extensions Improved System Security/Stability
  13. MetricKit: MetricKit รับ On-device App Power/Performance Metrics ที่ System Capture Registered App ได้ Reports ข้อมูล 24 ชม.ย้อนหลัง สุดสุด 1 ครั้ง/วัน ใช้ Data ใน Reports ปรับปรุง Performance App
  14. SystemExtensions: สร้าง System Extensions Enhance Mac Capabilities โดยไม่มี Risks ของ Kernel Extensions (KEXTs) System Extensions Run in Userspace ไม่อาจ Compromise Security/Stability macOS System Grant High Privilege ทำ Tasks ที่ก่อนหน้าจำกัดให้ KEXTs
  15. EndpointSecurity: ใช้ Endpoint Security Library สร้าง Security Software Endpoint Security Clients Monitor System Events สำห Potentially Malicious Activity Client Register กับ Endpoint Security Authorize Pending Events หรือ Receive Notifications Events ที่เกิดแล้ว Events รวม: Process Executions, Mounting File Systems, Forking Processes, Raising Signals
  16. USBSerialDriverKit: USBSerialDriverKit Framework API Develop Serial Communication Drivers USB Devices (Modems, Serial Adapters) Build on DriverKit เพิ่ม Set Attributes (Baud Rate, Parity) Work with Device UART
  17. USBDriverKit: ใช้ USBDriverKit Develop Drivers Custom/Non-class Compliant USB Devices สำห macOS USBDriverKit C++ Classes Attach/Configure Device Create USB Message/Stream Pipes Exchange Data USBDriverKit Devices Work with Core Types ใน DriverKit
  18. HIDDriverKit: HIDDriverKit Framework C++ Classes Develop Drivers Human Interface Devices: Keyboards, Pointing Devices, Digitizers (Pens, Touchpads) HIDDriverKit Uses Core Types ใน DriverKit เพิ่ม Features Specific to HID Development

จบวันนี้ Happy Coding!!

???ขอบคุณที่อ่าน???