作為可以非常方便做出一個可見產品的客戶端工程師,我們或多或少都想過做一款屬於自己的產品。在公司裡,會有UI設計師、後端工程師、運維工程師等專業角色來解決其他問題,我們只需要專注於客戶端的編碼。然而,作為獨立開發者,UI、互動設計、後端這些都需要親力親為,尤其是作為從0到1的初學者,需要的時間、精力不亞於客戶端程式碼本身。往往是這些我們不熟悉但又不可缺少的環節,讓人打消獨立開發的念頭。這篇文章中,我會向大家推薦一些比較棒的第三方技術、平臺,並稍作分析。希望能幫到有需要的同學,把自己的想法更加方便地落地。
前言
大家在著手獨立開發之前,不妨自己思考一下,自己最希望收穫的東西,把寶貴的時間放在最有意義的地方。開始全職工作已經有一段時間,最大的感悟就是,時間總是不太夠用,所以每做一件事情之前,都需要比學生時代更多的考慮。面對「獨立開發」這個想法,我考慮了一下自己的目的,大概有這幾個方面。
- 我對互動設計、使用者體驗感興趣,做一款產品可以讓我有進行練習的機會。
- 需求驅動是最好的學習動力。一直驚歎ibireme的
YYKit
demo中極致的滑動體驗,卻一直沒有完整地實踐過。 - 最近工作中遇到了使用
MVVM
+RAC
的模組,不得不開始面對這一聽聞已久卻一直沒有嘗試的架構方式。正好可以在自己的專案中再次進行學習成果的檢驗。
我希望自己的個人專案,能夠成為工作以來學習成果的檢驗場地。
0x00 LeanCloud
後端相關的技術棧,可能是多數移動端工程師最頭疼的部分。我曾經採用LAMP方案搭建過簡單的API專案。相比較於PHP程式碼的編寫,資料庫的構建、伺服器的部署等等也是非常耗費精力的。全套流程操作下來,收穫的可能還只是一套沒有任何安全性保護的介面。畢竟術業有專攻,有限的技術瞭解下,獲得一個質量稍有保證的後端支援是比較困難的。
這時,不妨瞭解一下LeanCloud。它是國內一家比較優秀的BaaS提供商,口號是為移動開發提供強有力的後端支援。
它能做什麼
LeanCloud提供非常方便的結構化儲存服務。簡單來說,我們只需要理清自己的資料間結構,就可以獲得想要的雲端資料存取服務。它代替我們做了資料庫構建、伺服器部署運維、後端程式碼編寫等工作,還可以方便地獲得安全性保護。
優點
注:優點、缺點均是都是相對於並不專業的個人開發而言。
-
快捷
LeanCloud提供了常見的使用者關係模型,不僅包括使用者資料、互相關注等社交屬性,還包括朋友圈、動態訊息等常見社群功能。所以當我們的專案只需要簡單的賬號系統時,甚至不需要自己關注資料的結構,即可獲得屬於自己的後端服務。
-
方便
對於資料的存取方式,既可以使用熟悉的REST API,也可以使用它提供的功能豐富的SDK。
並且,LeanCloud並不是傳統的關係型資料庫模型,而是文件模型。可以提供物件導向的、海量的、無需建立資料表結構即存即用的儲存能力。
-
安全
對於個人開發者來說,開發一個安全性較高的後端專案,需要較多的精力。LeanCloud提供了ACL許可權控制,我們可以快捷地獲得安全性保障。
-
質優
除以上之外,我們還可以方便地使用彈性空間、CDN加速,甚至即時通訊等其他服務。
缺點
世界上很少有完美的事物存在,技術也是如此。LeanCloud的方便也並不是體現在方方面面。
-
仍需要較專業的資料庫知識背景
簡單的資料儲存場景沒有過多的優化可言,但當我們的資料關係較為複雜時,Scheme優化的問題依然存在,這點LeanCloud並不會幫我們完成。
-
資料存取較為繁瑣
使用傳統的REST API時,客戶端只需要簡單地“索取”,即可獲得想要的資料。但是在使用LeanCloud存取資料時,我們需要進行較為繁瑣的引數構建。這些引數的本質,就是在定義資料間關係,用**“使用客戶端語言來拼sql語句”**來描述可能比較易於理解。可以說,有一種“把後端開發的工作使用客戶端人員熟悉的語言交給客戶端來完成的意味”。聽聞有創業公司為了省後端開發人員,完全重度使用LeanCloud,客戶端開發的大量時間花在了繁瑣的資料儲存上,這時的客戶端人員是非常值得同情的。
當然,對於客戶端獨立開發者,資料關係不是特別複雜時,LeanCloud帶來的福利還是遠大於這些繁瑣之處的。
0x01 七牛雲端儲存、又拍雲
在雲端儲存資料時,檔案型別的資料和普通的資料還需要作一些區分。七牛雲端儲存、又拍雲是專業提供物件雲端儲存的廠商。可以使用引數化的方式,對圖片等資源在存取時自動進行裁剪、縮放等操作。個人專案中的一些需要雲端存放的圖片資源,以及部落格文章的圖片使用七牛就是很不錯的選擇。
優點
- 提供我們熟悉的REST API或者SDK方式,方便地進行資源的雲存取。
- 提供了許多對資源進行預處理的功能。比如,你可以在儲存圖片時加上自動瘦身的引數,即可將圖片以更小體積的形式儲存。在獲取圖片時加一個縮放的引數,即可直接獲得縮放後的圖片資源。
0x02 iconfont-阿里巴巴向量圖示庫
很多時候,個人專案中的icon、圖示是讓我們非常頭疼的部分。自己切圖,既需要學習成本,又需要很多的操作時間。這時,不妨瞭解一下阿里巴巴的iconfont。簡直是切圖恐懼者的福音。
它能做什麼
iconfont是阿里媽媽MUX傾力打造的向量圖示管理、交流平臺。設計師將圖示上傳到iconfont平臺,使用者可以自定義下載多種格式的icon,平臺也可將圖示轉換為字型,便於工程師自由調整與呼叫。iconfont圖示被處理為字型檔案。我們在使用時只需要引入自己生成的字型檔案,將UILabel、UIButton等控制元件的text字型設定為iconfont,將text值設定為對應的icon編碼,即可實現應用內以往繁瑣的各種圖示。
優點
-
不需要切圖,不需要切圖
這個優點必須強調兩遍。使用之前,我們需要做的只是在iconfont平臺海量的內容中選取自己需要的圖示,而後生成一份包含這些圖示的字型檔案,匯入自己的專案,即可使用,無需自己切圖。
-
效能更優、空間更小
iconfont圖示被處理為文字的字型。使用時不需要匯入體積龐大的資原始檔,也不需要對不同解析度做特殊處理,佔用的儲存空間更小。不是以往的圖片方式展示圖示,效能更優。
-
不失真
iconfont為向量素材,在不同解析度下不會出現失真情況
-
易於風格統一
想要獲得比較好的UI體驗,通常需要一整套圖示保持風格統一。我們在iconfont平臺選取圖示時,有時可以在一套圖示中找到自己需要的全部,非常方便地保持風格統一。
下面是阿里巴巴提供的一套圖示樣例。
缺點
這個其實不能說是缺點。iconfont平臺上的圖示是設計師的作品,也有可能是某個組織的作品。使用時需要注意版權問題,如果是盈利性的個人專案,需要注意完善版權事宜。
當然,你可以自己設計iconfont圖示,上傳到平臺供大家使用。不過這樣的話,問題就又回到了一開始,我們需要自己製作,自己切圖。
0x03 WeTest-騰訊質量開放平臺
WeTest是騰訊出品的質量保證、測試相關服務的平臺。這裡想推薦的是它提供的iOS預審服務,可以自動化測試專案中的被拒風險點,降低Apple官方稽核不通過的概率。有面向個人的免費使用量。此外,WeTest還提供效能測試、相容性測試等服務,有需要的同學可以自行了解。
0x04 其他的一些常用服務
除了以上提到的之外,還有一些大家非常熟悉的第三方服務,這裡簡單介紹一下。
-
第三方統計平臺,如友盟
-
第三方應用分發託管平臺,如蒲公英、fir.im
提供應用安裝包的託管、分發服務。
0x05 寫在最後
本文類似於一份清單,旨在列舉可以造福於個人開發者的一些第三方服務,歡迎各位同學和我一同完善它。我的個人郵箱:halohily@hotmail.com。有新的內容歡迎聯絡我補充。