回想自己最開始學習 Android 的動力,其實很簡單,就是想在手機上看到自己設計的 APP。但是在工作后,一直做的都是「別人」的 APP,偶爾還要做一些自己不太認可的設計和交互,從中獲取到的成就感還不及第一次在手機上看到「Hello World」。
所以我要打造一個屬于自己的 APP,甚至接口都是自己的。遵循 Material Design,用上各種最流行的庫,不適配低版本,反正自己怎么開心怎么做!
這一篇基本都是在扯淡,如果是只對代碼有興趣的讀者,可以翻一下我后面的文章寫了沒。
定位
不知道大家有沒有聽說過,網上有一些自動生成 APP 的服務。在我還對編程一竅不通的時候,我做過一個這樣的東西:
現在還忘不了當我拿這個去唬人時,別人「這是你做的?真的假的?」那種眼神。
我是喬治·R·R·馬丁的小說「冰與火之歌」(后面可能會簡稱「冰火」)的粉絲,曾經連續讀了前五卷,厚厚的十五本書啊!再加上一本「冰火」的百科,「冰與火的世界」:
其實我最早接觸的是它的電視劇「權力的游戲」,但在沒有任何知識背景的情況下,看的我一臉蒙蔽。很多東西是看了小說之后才煥然大悟,并且驚嘆于這部作品盡如此宏大。在美劇的故事開始之前,漫長的歷史里面也發生了許多故事
于是就產生了做一個「冰火」百科的 APP 的想法,讓沒看過小說的人對這部作品有更多的了解, 科普小說美劇故事開始之前的故事,并且絕不會涉及劇透!
APP 名就叫「冰與火百科」好了。本來想叫「冰與火的世界」,但覺得還是要跟原著有所區分。另外,五個字可以讓它在手機上完整顯示,試了幾臺手機,超過五個字在手機桌面顯示會有省略號。
圖標
我一直在想,有什么圖案是可以代表「冰火」這部作品的,是作品名的藝術字,還是某個家族的家徽?No,No,No!
在冰火里面,有個地方的人一見面會說「Valar Morghulis」,意思是「挖了蘑菇立死」,噢不對,是「凡人皆有一死」。我覺得這句活一定程度上可以概括這部作品,他們用的硬幣上也印有這句話:
酷!就拿它做圖標好了!
在 Android O 上面,原生系統下的 icon 都統一成了圓形:
為了響應谷歌的號召,按照扁平化加簡潔的概念,經過老婆的處理,有了這么幾個版本:
最終決定用最簡潔的那個。
功能
這個 APP 不會做的太復雜,就是一些基本的功能,和以前那個自動生成的差不多。
進入 APP 后,可以通過點擊不同的分類,查看對應分類下的人物、城堡、歷史事件等,點擊進入詳情(一個 WebView 的頁面)。在詳情頁面可以通過點擊文字跳轉到另一個詳情頁面。差不多就這樣了。
這好像也太簡單了。。。
再加個搜索和夜間模式吧。
接口
接口我是想自己做的,但就算我那么有耐心去收集后臺數據,關鍵我不會后臺啊!
琢磨了幾天后,我覺定這樣做。自己生成 json 數據,然后將 json 文件放到 GitHub 上面,直接去請求這個文件就好了!反正也不是要拿來上線的東西,用最簡單的方式實現就好了。我怎么這么聰明啊。
所以難點就在于收集整理數據了,還要寫一下 html 代碼。
知識點
要是沒有意外把現在想到的都實現了的話,在后面的文章你可以接觸到以下內容:
- 用網絡靜態數據打造自己的接口
- 部分 Material Design 控件的使用
- 一些流行框架的簡單使用(DataBinding、Retrofit、Realm、Glide 等)
- Android 和 js 之間的簡單交互
- 夜間模式的實現
- 搜索功能的實現
對初學者來說,還是一個可以學習一下的項目,妥妥的。
對了,還有一個星期「權力的游戲」第七季就來啦!想想還有些小激動。
項目地址