Platform State of the Union ใน WWDC 2015 โดยสังเขป

แม้ว่า Keynote ปีนี้จะทำให้ผมเล่นเอาแทบหลับ แต่ Session ต่อมา Platform State of the Union ทำให้ผมตาสว่างขึ้นมาเลยทีเดียว เลยเขียนสรุปโดยสังเขปไว้ประมาณนี้ครับ ซึ่งทุกอันจะเกี่ยวกับ iOS App Development เป็นหลักและหลายอย่าง อาจจะเขียน Blog เพิ่มอีก เพื่อลงรายละเอียด ตอนได้ดู Session ของเรื่องนั้นๆ แล้วนะ :)

Platform State of the Union
  • Test app on the device without any enrolment (ไม่ต้องสมัครและจ่ายเงิน 99$ เพื่อเทส App บน Device อีกต่อไป)
  • Combine all membership program (จ่ายครั้งเดียว Dev ได้หมดเลย ทั้ง Mac, iOS, watchOS)
  • Reduce free space required to install iOS 9 (4.8 > 1.3 GB)
  • App Thining (iOS 9 by default and mandatory for watchOS)
    • App Slicing (เลือก Resources ที่จำเป็นสำหรับ Device เท่านั้น เช่นถ้า App รันอยู่บน iPhone 6 Plus ก็ให้โหลดมาเฉพาะรูปภาพที่เป็น @3x)
    • On Demand Resources (เก็บ Resources บางอย่างไว้บน Server ของ Apple และโหลดมาใช้เมื่อต้องใช้)
    • Bitcode (อนุญาติให้ App Store ทำการ Re-Optimizing ขณะที่ผู้ใช้กำลังโหลด App)
  • App ที่จะส่งขึ้น App Store จะต้องเป็น 64-bit เท่านั้นสำหรับ iOS 9
  • watchOS
    • ย้ายส่วนของ Extension มาไว้บน Watch แทนที่จะอยู่บน iPhone เหมือนก่อนหน้านี้ (WatchConnectivity frameworks)
      • Speed and responsiveness
      • Standalone functionality
      • Access to watch hardware
    • สามารถใช้ Frameworks บน Cocoa Touch เหมือนพัฒนา iOS App
    • Apple Watch สามารถทำงานได้ แม้จะไม่ได้อยู่ไกล้ๆ iPhone ก็ตาม
    • Simulator แยกออกมาเลย และ Debug ควบคู่ไปกับ iPhone App ได้
  • New Compression Algorithms called "lzfse"
  • Battery usage improvement (เปลี่ยนการทดสอบใน Lab เป็นการใช้งานปกติแทนที่จะเป็นการใช้งานพฤติกรรมซ้ำๆ เช่นเปิด Browser และ Surfing ทั้งวัน ซึ่งพฤติกรรมปกติของผุ้ใช้ไม่ได้เป็นแบบนั้น)
  • Security Improvement
    • 2 factor authentication เมื่อเปิดลงทะเบียนเครื่องใหม่โดยใช้ Apple ID ที่มีอยู่แล้ว 
    • 6 digit passcode (can be 4 if wanted)
    • New data transportation protocol (ไม่ใช้ HTTP)
    • IPv6 only
  • Localization 
    • NSPersonNameComponentsFormatter (มีไว้แก้ปํญหาเรื่องชื่อของแต่ละประเทศ เช่น ภาษาอังกฤษจะใช้ first, middle, last แต่ถ้าจีนจะเขียนแบบ last, first)
    • Right to Left Languages supported (เป็นการเปิดโหมดให้ UI ทั้งหมดกลับจากซ้ายไปขวาเป็นขวาไปซ้าย เพื่อรองรับภาษาที่อ่านจากขวาไปซ้าย เช่น อาหรับ และ อาราบิค)
  • Universal Links
    • Open the app according to the link (เช่นถ้ากด Link ที่เป็น Facebook หรือ Twitter ก็สามารถเปิด App เพื่อแสดงข้อมูลจาก Link ที่กดได้เลย ซึ่งปกติจะเป็นการเปิดเว็บ)
      • Register app links
      • NSUserActivity
  • HomeKit
    • Push Notifications
    • User Management
    • Event Triggers (สร้างลำดับของ Event ต่างๆ เช่น ถ้านาฬิกาปลุกดับให้เปิดไฟในห้องนอนด้วย)
  • App Search & App Suggestions
    • CoreSpotlight
    • App Indexing extension
    • NSUserActivity
    • Web markup
  • Multitasking
    • ใช้ Size Classes ในการจัดการเวลา App เราอยู่ในโหมด Multitasking โดยฝั่งขวาที่กว้างกว่าจะเป็น Regular และ Compact ตามลำดับ
  • iCloud & CloudKit
    • Increase Maximum Limit for free plan
    • CloudKit Dashboard
    • CloudKit Web Services
      • Full access via JSON
      • JS Library
      • Secure Login with Apple ID
  • Swift 2
    • Open Source (OSI-approved license)
    • Error Handling Model
      • throws at the end of function declaration
      • do, try, catch syntax (can be nested) for error handling
    • Availability Checking
      • if #available(iOS 9.0, *) {} (It will be appear in autocomplete list when you’re using deprecated things)
    • Protocol Extension, re-cast the global functions as methods 
    • Early Exits (‘guard’ keyword)
    • Generics to Objective-C to express properly and precisely type in Swift
    • Swift 2 Migrator
    • Header File View in Assistant Editor
    • Rich comments in .swift file
  • Xcode 7
    • Stack View (เหมือน StaticUITableView ที่มีแนวนอนด้วย)
    • Storyboard References นั่นคือสามารถรวมกลุ่มของ VCs ที่ต้องการแยกออกเป็นอีก Storyboard และสามารถเชื่อมต่อกันได้
    • On Demand Resources API
    • Address Sanitizer
    • Crash Logs (มาแทนที่ Crashlytics บน Fabric.io ของ Twitter ได้เลย)
      • แสดงลิสต์ของ Crashes ตามลำดับ และรายละเอียด
      • มีปุ่ม "Open in project..." เพื่อเปิดบรรทัดที่เป็นสาเหตุที่ทำให้ crash (ซึ่งจะแสดงที่ crash log อยู่แล้วล่ะ)
    • Testing
      • UI Testing (สามารถที่จะเขียนโค้ด หรือใช้ปุ่ม record เพื่อบันทึกผ่านการกระทำบน Simulator ได้เลย ดีสัสๆ)
      • Code Coverage

Popular posts from this blog

[Android Dev] การติดตั้ง Eclipse+AndroidSDK เพื่อพัฒนาโปรแกรมบน Android

12 วิธี การบริการและดูแลลูกค้าในร้าน Starbucks

5 TED Talk ที่จะช่วยให้คุณทำงานดีขึ้น