你好,歡迎來到IOS教程網

Focus

編輯:IOS開發基礎

本文類型:投稿

作者:cloudsthinker

Focus一次探索watchOS的實踐。再次慨歎下Apple的審核速度,just one day…

Focus - 有些事情需要這份執著

人這一輩子總有一些一定要去做必須要去體驗的東西。

對於這些事物的追求需要這份執念。

Focus幫助我們專注於做最重要的事情,給她一個期限,可能是一兩年,也可能只有幾天或者幾小時,總之一旦決定擁有她,那麼中途就不要背棄她。

人這一輩子不要過得太復雜,專注於現在,執著於每次的努力,當回看過往,必將為自己而驕傲。

Focus App Store:傳送門

Focus長什麼樣

focus_appstore.png

Focus參數

  • Language: pure Swift3

  • Support: iOS9+、watchOS3.0+(包含Complication、WatchConnectivity)

  • Vender: Realm(iOS、watchOS)、DCPathButton、IQKeyboardManagerSwift、SCLAlertView、SnapKit

  • OpenSource:梳理完畢後開源

為什麼要做這麼個App

Apple發布了新款的Apple Watch Series2,之前一直想涉足watchOS的領域,一看設備更新了就趕緊入手了一款。這麼貴的東東,不開發點東西感覺對不起自己花出去的銀子。於是在認真體驗了一段時間後,進行了以下產品思考:

aw_mind.png

最後決定先嘗試制作一款GTD類APP,跟其它同質App的區別呢就在於只關注於一件事情的實現引導。提供的Apple Watch端App包含了幾乎所有iOS端的功能,同時結合Complication可以將Focus的精簡信息展現到表盤中。利用Apple Watch的貼近特點,進行一些輕度提醒。(說不定過段時間可能會搞一下那個偷偷錄音的APP ^_^)

Focus讓我了解了什麼

1. Swift3

Swift3更新以來,還沒有將原有的swift2項目進行遷移,正好拿個人項目進行了實踐。

綜合體會就是更加優雅簡潔了,這裡就不展開描述了。推薦幾個不錯的教程,首先是官方文檔,然後有貓神的《Swifter - 100 個 Swift 必備 tips》(買的正版,動態更新為了swift3的版本),還有raywenderlich的swift相關教程也在第一時間更新為了swift3版本(不過略貴,感興趣的可以聯系我,發你們)。

2. watchOS 3.0

初涉watch SDK,現在的感覺是相較iOS SDK各有優劣,不過watch SDK的劣勢多了一些。

幾個小例子:

  • table這一塊,watchOS的處理會更“簡約”一些,沒有這麼多的數據代理,轉而采用了配置方法的調用,初始化配置更集中了。這裡也是針對watch的使用場景進行了SDK層面的精簡優化。

  • 自帶一個計時性質的文本控件date、timer,一般的場景只需要簡單配置就可以使用了(不過可定制項比較有限,Focus中為了統一,還是改為自己實現一個倒計時)

  • 感覺watchOS中的picker就是一個噩夢。。。,官方是沒有提供watchOS版本的日期選擇器的,所以需要自己用picker進行組裝,裡面好多坑,這塊等開源後感興趣的同學可以參考下。

  • 關於控件封裝,原本搞完了watchOS版本的日期選擇器是打算抽離封裝一下的,但是發現watchOS的控件封裝真的沒有太好的途徑,總不能把一個controller分享出來吧。。。(雖然github上有人這麼搞)

幾個建議:

  • 將iOS與watchOS的公用模塊提取為單獨的framework方便復用。

  • iOS與watchOS的數據同步通過WatchConnectivity,由於一些技術文章的更新緩慢,其中介紹的appgroup方式其實已經不適用了(被坑了一輪)。

    同時建議除了配置自動的同步機制外,添加一個按鈕觸發的同步操作,以方便用戶及時進行同步。例如Focus中當點擊iPhone或者watch主頁面中央的小漏斗時,會彈出同步提示窗口:

  • sync.png

  • 關於文本錄入這塊watchOS3已經可以使用presentTextInputController(withSuggestions:allowedInputMode:)了,彈出的輸入模塊可以進行語音錄入,建議選擇以及新更新的Scribble,也建議大家使用。(雖然中文的錄入還是有點難用)

3. Realm

早就聽說了realm的大名,一直想嘗試一下,正好借助這個機會集成了進去。不過得出的結論是,其實就目前的realm而言,個人感覺不太適合用於watch相關的應用。主要原因就是庫文件略大,watch應用四五十兆的應用大小限制,使得每一寸空間都顯得特別珍貴(App Store審核的限制,其實相較Apple Watch的存儲來說集成realm造成的空間占用還是可以接受的)。

說說使用realm的幾點感受:

  • 用起來確實很爽,很容易上手,基本就是在操作對象,用過coredata的同學應該很習慣這種方式。

  • 數據庫版本遷移這塊仔細一點也很容易搞定。

  • 因為要同時集成iOS跟watchOS兩個版本的realm所以不要將他們放在同一個項目文件夾下,分別創建文件夾添加引用。

  • 官方的提供的run script:

bash "${BUILT_PRODUCTS_DIR}/${FRAMEWORKS_FOLDER_PATH}/Realm.framework/strip-frameworks.sh"

需要在iOS和watch extension的Build Phases中都要進行添加調用。(我就是因為沒有在extension中添加調用導致模擬器真機運行正常,上傳App Store卻總是驗證報錯…)

  • 對於添加了realm的watchOS項目建議打開bitcode,也是為了優化watch APP的體積。

4. “新”產品上線

好久沒有完整的操作一遍應用的上線流程了,體會有幾點:

  • Xcode8.1的自動管理簽名還是挺好用的,尚未發現問題。使用該配置後,記得Build Settings中Code Signing Identity的子選項都要配置為iOS Developer。

  • 發現Certificate中添加了專門用於生成服務器推送證書的功能。(估計早就更新了,之前沒在意)

  • 新的itunes connect功能真的挺好用,相較原來的版本慢慢的幸福感。

  • 慨歎下目前Apple的審核速度,真實快啊,上傳到上架one day。

可利用的資源

watchOS官方資源(包括Human Interface Guidelines、App Programming Guide for watchOS 等)

swift官方資源

Raywenderlich

貓神相關文章(雖然是watchOS 2的,但是很受用)

圖形素材:dribbble(尋找創意)、easyicon(圖標)、MakeAppIcon(iPhone App圖標與watch App圖標生成)

小結

Focus會持續更新,目前主要解決了我自己的一些痛點,希望她也能夠幫助到你。如果有什麼好的建議歡迎留言討論。Watch中的App種類確實很有限,不像iOS的這麼豐富,有好的產品創意也歡迎一起討論。watchOS 3.0的更新讓Apple Watch煥發了新的生機,有了不少新的可能,讓我們一起把我們的Apple Watch豐富起來吧^_^。

最後附上50個促銷代碼,感興趣的同學可以下載使用。

促銷碼傳送門

原文傳送門 :http://alithink.com/2016/11/15/Focus/


  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved