iOS開源:Tkeyboard - 通過藍牙,使用 Mac 的鍵盤輸入內容到 iPhone 設備中
在咖啡館耗費了數個周末之后,終于將這個靈光一閃的點子變成了一個實實在在可以運行的 app。同時意味著年初制定的第一個小目標達成,完成了 2017年的第一個獨立 app。
在app上架的同時,我決定將代碼全部開源,除了兌現去年年底的承諾之外,我相信代碼本身的價值,要高于 App 的功能,開源能帶來更多知識的碰撞和增長。去年開源給我帶來了不少樂趣,希望今年能有更好的成績。整個項目涉及到一些比較實用的技術點,或能惠之于人。
應用場景
這款應用名為:TKeyboard。有一個 Mac 端和一個 iOS 端 App。簡單來說,可以通過藍牙,使用 Mac 的鍵盤輸入內容到 iPhone 設備中。
主要是為了解決 iPhone 設備輸入不方便的問題,有 Mac 在身邊的時候會比較方便,一時腦洞的小應用。
涉及知識點
這兩個 App 解決的用戶場景比較完整,代碼方面涉及到一些較為實用的技術點:
Mac 端開發,從 iOS 端切入 Mac 端開發其實難度比大部分人預想的都要小,主要是 UI Framework 需要做些學習,用 xib 配合 autolayout 其實很方便,就是做動畫會稍微麻煩一些。
iOS 端的話,主要是各種 Extension 的開發學習,現階段實現的是 Keyboard Extension,后期這個項目計劃實現更多的 Extension 功能,最終的目標是成為一個 Mac 端和 iOS 端的多功能同步應用。Extension 開發的重要性,我曾經專門寫文介紹過,不再贅述。
另外是藍牙通訊這一塊,iOS 端和 Mac 端共享一套代碼。藍牙這塊網絡上技術文章比較少,完整的開源項目幾乎找不到。我在結合官方 demo 和自己踩坑的基礎之上,基本實現了一套完整的藍牙通訊功能。
最后還有一個簡單的網絡協議設計,用于 iOS 和 Mac 端做通訊之用,理論上使用 protobuf 更合理,但這是個人項目,處于寫代碼的樂趣,就自己動手 DIY 了一個,感興趣的同學也可以自己設計。
全部的代碼大約耗時數個周末。其實項目去年底就已經啟動了,中間因為各種瑣碎事情耽擱了,2017 開年戰勝拖延癥,終于完成了第一版本代碼,算是給去年底做熱血規劃的自己一個交代。
開源計劃
TKeyboard 包含 Mac 端 和 iOS 端兩個項目,涵蓋一些實用知識,決定開源也算是對 iOS 技術社區做一些微薄的貢獻。其中代碼可以隨意免費使用,但絕不容忍換個皮膚重新上架 App Store 的低素質行為。
后續打算
TKeyboard 的最終目標是一個 Mac 與 iOS 的同步應用,這是一個龐大的工程量,不知道最后會完成為什么樣的形態,且做且珍惜。歡迎大家提意見修改。
iPhone 版目前售價 $3,Mac 版免費。因為代碼開源,實際和完全免費沒差別。如果覺得代碼或者 App 本身對你有幫助,可以考慮去 App Store 下載,贊助 Peak 君一杯咖啡。