iOS 7 發佈GM版本到現在也過了將近一個月
10/25台灣多數人將要獲得5s, 這對開發者而言真是一場人倫慘劇...
今天Bear小編也會開始多放些有關的介紹, 希望能幫助同行開發者朋友!
10/25台灣多數人將要獲得5s, 這對開發者而言真是一場人倫慘劇...
今天Bear小編也會開始多放些有關的介紹, 希望能幫助同行開發者朋友!
很多人不清楚為什麼升到iOS 7後一堆App都會瘋狂閃退
一連串的App更新又是為了什麼
理由很簡單: 因為以前的程式在iOS7 不相容!!!!! 這就要等每個開發人員去努力調整了, 不過小公司基本上有可能無法有資源再去維護, 這點也只能請大眾擔待了...
Bear小編這次做了一些測試, 有大陸網友整理了相關內容
部分內容未經測試的項目則只有用文字來呈現喔!
一連串的App更新又是為了什麼
理由很簡單: 因為以前的程式在iOS7 不相容!!!!! 這就要等每個開發人員去努力調整了, 不過小公司基本上有可能無法有資源再去維護, 這點也只能請大眾擔待了...
Bear小編這次做了一些測試, 有大陸網友整理了相關內容
部分內容未經測試的項目則只有用文字來呈現喔!
1. 全新UI設計 - UIKit
大家以為iOS 7 UI更新只是設計師需要煩惱的問題
但是有這麼簡單嗎?
如果這麼簡單小編前陣子就不需要在公司趕工了(泣)
基本上兩個重點:
1. iOS 7 新界面需要設計師重新構思適合iOS 7 的操作範圍與情境模式
(範例: Evernote 在iOS 7的重大更新)
2. 工程師要重新研究SDK內容, 確認有無SDK已經不可使用的問題
(範例: UIAlertView不再能客製化)
Apple提供了document給設計師們參考這次的更動, 不過是需要開發者帳號才能看的喔!
(Apple 設計資源)
總結而言呢, 改變幾個重點:
1. Status Bar 與NavigationBar : 兩者的內容呈現不再受限了! 兩者會用相同近似的顏色來呈現
這點也連帶會影響某些元件在UI呈現上預設的字體顏色, 需要額外增加設定才能修改!
大家以為iOS 7 UI更新只是設計師需要煩惱的問題
但是有這麼簡單嗎?
如果這麼簡單小編前陣子就不需要在公司趕工了(泣)
基本上兩個重點:
1. iOS 7 新界面需要設計師重新構思適合iOS 7 的操作範圍與情境模式
(範例: Evernote 在iOS 7的重大更新)
2. 工程師要重新研究SDK內容, 確認有無SDK已經不可使用的問題
(範例: UIAlertView不再能客製化)
Apple提供了document給設計師們參考這次的更動, 不過是需要開發者帳號才能看的喔!
(Apple 設計資源)
總結而言呢, 改變幾個重點:
1. Status Bar 與NavigationBar : 兩者的內容呈現不再受限了! 兩者會用相同近似的顏色來呈現
這點也連帶會影響某些元件在UI呈現上預設的字體顏色, 需要額外增加設定才能修改!
2. UIBarItem 的按鈕基本上都以文字化呈現, 過去有的邊框, 擬物化設計都沒有了, 而是以文字的形式呈現
3.開啓App的時候也可以自制動畫了, 這次可是從手機的桌面倒所在位置的期間內也能調用某些動畫效果!
不過可能也是這種原因造成某些人不適想吐吧....
其他還有包含字體顏色的演算法計算,
每個元件增加的tintColor問題,
UIViewController間過場動畫的設定, 說這次更動最多的部分是UIKit一點也不為過!
2. 動力學概念 - UIKit Dynamics
同樣屬於UIKit的更動部分, 這次增加的UIDynamicItem的委派protocol可以增加了力學模型
基本上是給UIView有關的所有物件使用,也就是說可以在任何地方制定行為,
任何物件基本上都能有動力學特效效果!! 只是UIKit部分影響最多!
動力學的概念,也就是把重力, 加速度等地呈現方式給導入UI中
這點來說以前也能透過其他third party 來實作, 只是Apple把他抽回去自己做了一套!
這些效果基本上就跟知名的第三方資源庫 Box2d 在對遊戲的2D物理引擎內容相似
動態UI, Sprite Kit基本上都可以讓UIKit做遊戲開發變得更簡單!
另外正因為UIDynamicItem不限定於UIKit, 因此連3D特效也未必是件困難的事!!!
傳統上會使用Cocos2D+Box2D兩套來實現遊戲做法, 現在iOS 7 可以考慮使用UIKit + SpriteKit的組合囉!
3. Sprite Kit Framework
這邊算是小編感到很驚艷的一點
也就是iOS 終於建立了自己的精靈系統!!
Sprite Kit的概念包含使用硬體加速的方式來模擬物理引擎, 也就是說
iOS SDK本身俱備了一個較為完整的2D遊戲引擎,
讓iOS 遊戲開發者可以更著重在遊戲的設計與實作
(Bear沒有詳細測試該內容, 對於他的效能與傳統third party組合還需要檢驗!)
SpriteKit主要以場景(Scene)來區分, 可以包含貼圖, 物件, 影像, 外觀形狀, 粒子效果
還有包含Coreimage的iOS 濾鏡效果喔!!
Xcode本身也提供了測試粒子系統與貼圖Atlas的功能, 這也是Xcode 5 的突破點之一!
4. Game Controller Framework
這個則是為了以MFi (Made-for-iPhone/iPod/iPad) 所對應的外部硬體框架
讓使用者可以連接控制對應的遊戲硬體
大家還記得這次在WWDC公佈的AnkiDrive嗎? 相信這樣的概念一定是從這裡來的
小編則覺得, 這個框架不見得一定要用在遊戲上
跟外部設備的互動應該能透過這個framework達到更有效的互動設計!!!
GameCenter實在是個很失敗的設計...這邊小編也不多談了(嘆)
5. 多工Multi-Task的強化
基本上Bear認為這個部分也是相當重要的革新!
其實在這一點設計上, 理應iOS 7 在省電效果會要比過去來得好才對
重點包含
6. AirDrop
AirDrop也是iOS 7的重頭戲! 雖然只支援iPhone 5以上機種...
在Mac OS X上這點非常受歡迎
小編跟朋友工作時也會用它來分享檔案或是照片, 某些data等
其實他並不需要特別去實作內容, 而是直接被涵蓋在UIActivityViewController內
也沒有單獨的API可以使用喔!!!!
透過實現UIActivityItemSource可以進行發送, 如果不使用UIActivityViewController了
不過也還是有App可以實作類似的做法喔! 透過Samba, Bonjour或是一般的UDP方式都能做到
這邊小編先不做介紹了!
最後結合自己定義的檔案類型, 也可以輕易地實現在背景收到特定檔案後以自己的App開啓
算是增加用戶的方式. 但是現在看起來幾乎是所有註冊的文件都能打開檔案,
例如說Evernote or Dropbox, 這邊做法是因為開啓檔案時會詢問所有能支援該檔案的類型
這樣的使用者體驗實在不太好就是了
7. 地圖
Apple持續在推進在地圖上的體驗, 如果版友有上LinkedIn的話,
可以發現他正在大舉找Map開發的人員喔!!
地圖最困難的部分大家應該都瞭解還是在數據的建立, 這點Apple要與Google競爭短時間內大家目前也都相當不看好的....
不過還是可以看一下有新增哪些部分囉!
8. Inter-App Audio
小編認為這也是這次更動中最好玩的一部分!!
每一個應用程式間的AudioUnit加入了一項能力:
在同一台iDevice中, 可以讓不同的應用程式發送MIDI命令與傳送音訊的能力!!
這樣可以做到些很有趣的體驗, 舉例來說:
在A應用程式中使用AudioUnit進行錄音, 之後在B應用程式中打開進行處理
在音訊應用程式宣告一個AURemoteIO就可以標記為Inter-App
在對應的B應用程式中使用接口獲取音訊進行處理
這樣的概念很好的點在於突破了App間彼此的共享! 這也是過去沒有jB的iPhone基本上無法做到的一點
但是AudioUnit操作上屬於低階API, 一般的開發者不見得能駕馭 (如同當初的CFNetWork一樣)
恐怕需要在等更多OpenSource出現後才能增加開發數量!
9. P2P Peer-to-Peer Connectivity
基本上可以當成AirDrop不能直接使用的替代方案,
是缺點也是優點的部分是開發者們需要自己實作內容!!
MulitpeerConnectivity framewrok主要有兩點
(不知道大家有沒有發現這兩點很類似CoreBlueTooth FrameWork呢? 不清楚的可以參考前文)
不過這一切是不需要有網路連線就能進行的! 看來Apple正在逐漸放開對於檔案共享的限制
不過詳細實作內容還是被封裝起來的喔!
10. Store Kit Framework
StoreKit 在in app purchase部分採取了新的訂單系統,
可以實現對訂單的本機驗證, 主要是對應In-App-Purchase的破解和可能驗證失敗造成進而造成更新失敗的問題
Apple希望藉此減少這部分的實作流程,
雖然Apple希望減少破解的存在, 但是一旦iPhone被越獄, 被破解只是早晚的事情
不過對小型開發者來說仍然是個很好的開發點!
其他還有一些小更動, 比如說MessageUI內增加了附件按鈕, OpenGL ES 3.0的支援等等,
完整的iOS 7 特性可以參考這篇連結, 不過目前也需要開發者帳號才能看到內容喔!
最後一點比較值得欣慰的是Apple這次基本上沒什麼重要API被廢棄掉,
但這並不是說改動起來就很簡單.... 以上
原文參考介紹
喜歡這篇介紹嗎?
更多有趣消息請繼續關注Takobear!!
不過可能也是這種原因造成某些人不適想吐吧....
其他還有包含字體顏色的演算法計算,
每個元件增加的tintColor問題,
UIViewController間過場動畫的設定, 說這次更動最多的部分是UIKit一點也不為過!
2. 動力學概念 - UIKit Dynamics
同樣屬於UIKit的更動部分, 這次增加的UIDynamicItem的委派protocol可以增加了力學模型
基本上是給UIView有關的所有物件使用,也就是說可以在任何地方制定行為,
任何物件基本上都能有動力學特效效果!! 只是UIKit部分影響最多!
動力學的概念,也就是把重力, 加速度等地呈現方式給導入UI中
這點來說以前也能透過其他third party 來實作, 只是Apple把他抽回去自己做了一套!
- UIAttachmentBehavior 可以連接兩個實作UIDynmaic的物件(一個處理移動中的物件, 一個跟隨移動中的物件)
- UICollisionBehavior 指定邊界, 使兩個物件有碰撞效果
- UIGravityBehavior 這最單純了! 增加重力效果
- UIPushBehavior 增加物件推力
- UISnapBehavior 增加附著點, 有點像是畫掛在牆上搖曳的感覺
這些效果基本上就跟知名的第三方資源庫 Box2d 在對遊戲的2D物理引擎內容相似
動態UI, Sprite Kit基本上都可以讓UIKit做遊戲開發變得更簡單!
另外正因為UIDynamicItem不限定於UIKit, 因此連3D特效也未必是件困難的事!!!
傳統上會使用Cocos2D+Box2D兩套來實現遊戲做法, 現在iOS 7 可以考慮使用UIKit + SpriteKit的組合囉!
3. Sprite Kit Framework
這邊算是小編感到很驚艷的一點
也就是iOS 終於建立了自己的精靈系統!!
Sprite Kit的概念包含使用硬體加速的方式來模擬物理引擎, 也就是說
iOS SDK本身俱備了一個較為完整的2D遊戲引擎,
讓iOS 遊戲開發者可以更著重在遊戲的設計與實作
(Bear沒有詳細測試該內容, 對於他的效能與傳統third party組合還需要檢驗!)
SpriteKit主要以場景(Scene)來區分, 可以包含貼圖, 物件, 影像, 外觀形狀, 粒子效果
還有包含Coreimage的iOS 濾鏡效果喔!!
Xcode本身也提供了測試粒子系統與貼圖Atlas的功能, 這也是Xcode 5 的突破點之一!
4. Game Controller Framework
這個則是為了以MFi (Made-for-iPhone/iPod/iPad) 所對應的外部硬體框架
讓使用者可以連接控制對應的遊戲硬體
大家還記得這次在WWDC公佈的AnkiDrive嗎? 相信這樣的概念一定是從這裡來的
小編則覺得, 這個框架不見得一定要用在遊戲上
跟外部設備的互動應該能透過這個framework達到更有效的互動設計!!!
GameCenter實在是個很失敗的設計...這邊小編也不多談了(嘆)
5. 多工Multi-Task的強化
基本上Bear認為這個部分也是相當重要的革新!
其實在這一點設計上, 理應iOS 7 在省電效果會要比過去來得好才對
重點包含
- UIBackgroundMode : 可以在plist部分設定他的Mode或是在AppDelegate中修改他的數值以fetch方式來更新背景的資料, AppDelegate中增加兩項method才能完成設定setMinimumBackgroundFetchInterval:以及使用application:performFetchWithCompletionHandler:處理完成的下載項目, 目前可能只有雜誌類可以取得此類權限, 或是特定的社群網站(如FB等), 另外開發者只能決定最小更新間隔, 但是會不會順利更新到還是看iOS 系統本身了...
- 以前只能透過通知中心告知使用者進入App下載, 現在可以發出通知後繼續在背景模式下載, 把UIBackgroundModes設定為remote-notification,再實現application:didReceiveRemoteNotification:fetchCompletionHandler:
6. AirDrop
AirDrop也是iOS 7的重頭戲! 雖然只支援iPhone 5以上機種...
在Mac OS X上這點非常受歡迎
小編跟朋友工作時也會用它來分享檔案或是照片, 某些data等
其實他並不需要特別去實作內容, 而是直接被涵蓋在UIActivityViewController內
也沒有單獨的API可以使用喔!!!!
透過實現UIActivityItemSource可以進行發送, 如果不使用UIActivityViewController了
不過也還是有App可以實作類似的做法喔! 透過Samba, Bonjour或是一般的UDP方式都能做到
這邊小編先不做介紹了!
最後結合自己定義的檔案類型, 也可以輕易地實現在背景收到特定檔案後以自己的App開啓
算是增加用戶的方式. 但是現在看起來幾乎是所有註冊的文件都能打開檔案,
例如說Evernote or Dropbox, 這邊做法是因為開啓檔案時會詢問所有能支援該檔案的類型
這樣的使用者體驗實在不太好就是了
7. 地圖
Apple持續在推進在地圖上的體驗, 如果版友有上LinkedIn的話,
可以發現他正在大舉找Map開發的人員喔!!
地圖最困難的部分大家應該都瞭解還是在數據的建立, 這點Apple要與Google競爭短時間內大家目前也都相當不看好的....
不過還是可以看一下有新增哪些部分囉!
- MKMapCamera,基本上類似Google街景可以旋轉3D方向....
- MKDirections 從Apple後端取得地圖路徑後直接繪製在地圖上, 基本上影響的是小型地圖商, 對Google影響不大
- MKGeodesicPolyline 這是畫一個符合地球曲率的曲線在地圖, 主要是效果。
- MKMapSnapshotter 主要可以用在打卡上
- 更動了overlay的表現方式
8. Inter-App Audio
小編認為這也是這次更動中最好玩的一部分!!
每一個應用程式間的AudioUnit加入了一項能力:
在同一台iDevice中, 可以讓不同的應用程式發送MIDI命令與傳送音訊的能力!!
這樣可以做到些很有趣的體驗, 舉例來說:
在A應用程式中使用AudioUnit進行錄音, 之後在B應用程式中打開進行處理
在音訊應用程式宣告一個AURemoteIO就可以標記為Inter-App
在對應的B應用程式中使用接口獲取音訊進行處理
這樣的概念很好的點在於突破了App間彼此的共享! 這也是過去沒有jB的iPhone基本上無法做到的一點
但是AudioUnit操作上屬於低階API, 一般的開發者不見得能駕馭 (如同當初的CFNetWork一樣)
恐怕需要在等更多OpenSource出現後才能增加開發數量!
9. P2P Peer-to-Peer Connectivity
基本上可以當成AirDrop不能直接使用的替代方案,
是缺點也是優點的部分是開發者們需要自己實作內容!!
MulitpeerConnectivity framewrok主要有兩點
- 尋找外部設備
- 連接外部設備
(不知道大家有沒有發現這兩點很類似CoreBlueTooth FrameWork呢? 不清楚的可以參考前文)
不過這一切是不需要有網路連線就能進行的! 看來Apple正在逐漸放開對於檔案共享的限制
不過詳細實作內容還是被封裝起來的喔!
10. Store Kit Framework
StoreKit 在in app purchase部分採取了新的訂單系統,
可以實現對訂單的本機驗證, 主要是對應In-App-Purchase的破解和可能驗證失敗造成進而造成更新失敗的問題
Apple希望藉此減少這部分的實作流程,
雖然Apple希望減少破解的存在, 但是一旦iPhone被越獄, 被破解只是早晚的事情
不過對小型開發者來說仍然是個很好的開發點!
其他還有一些小更動, 比如說MessageUI內增加了附件按鈕, OpenGL ES 3.0的支援等等,
完整的iOS 7 特性可以參考這篇連結, 不過目前也需要開發者帳號才能看到內容喔!
最後一點比較值得欣慰的是Apple這次基本上沒什麼重要API被廢棄掉,
但這並不是說改動起來就很簡單.... 以上
原文參考介紹
喜歡這篇介紹嗎?
更多有趣消息請繼續關注Takobear!!