打造自己的 APP「冰與火百科」(一):分析定位

回想自己最開始學習 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 上面,直接去請求這個文件就好了!反正也不是要拿來上線的東西,用最簡單的方式實現就好了。我怎么這么聰明啊。

smart.png

所以難點就在于收集整理數據了,還要寫一下 html 代碼。

知識點

要是沒有意外把現在想到的都實現了的話,在后面的文章你可以接觸到以下內容:

  1. 用網絡靜態數據打造自己的接口
  2. 部分 Material Design 控件的使用
  3. 一些流行框架的簡單使用(DataBinding、Retrofit、Realm、Glide 等)
  4. Android 和 js 之間的簡單交互
  5. 夜間模式的實現
  6. 搜索功能的實現

對初學者來說,還是一個可以學習一下的項目,妥妥的。

對了,還有一個星期「權力的游戲」第七季就來啦!想想還有些小激動。

項目地址

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/455820.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/455820.shtml
英文地址,請注明出處:http://en.pswp.cn/news/455820.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

python爬取有道翻譯

python爬蟲爬取有道翻譯教程 編寫環境 為了寶寶們能夠正確讀懂本教程,在正式開始前,寶寶們需要搭建的環境如下: 連接互聯網的win10電腦,(win7也可以)Google瀏覽器(版本無要求)Python(版本3就可以了),如果沒有安裝的小伙伴可以參考python安裝以及版本檢測requests庫(版本沒啥…

PartitionMotionSearch()

Outline: 1、 CFG文件中有關多參考幀的相關選項 2、 多參考幀涉及到的數據結構和全局變量 3、 保存重建圖像為參考幀 4、 編碼一幀前,設置參考幀列表 5、 多參考幀的使用(即參考幀的選擇策略問題) 6、 遺留問題 1、CFG文件中有關多參考…

bat 發送post請求_get post 請求

HTTP是一個基于TCP/IP來傳遞數據的通信協議。1.GET和POST請求的區別?a: GET/POST本質上都是TCP鏈接,GET傳body和POST拼參數,理論上都是可行的。b: 實際上HTTP協議對URL長度是沒有限制的;限制URL長度大多數是瀏覽器或者服務器的配置…

Safengine Android so加密

公司讓我找一個可以對android,嵌入式和Linux x86平臺的so庫進行加密的工具,我看搞了兩天這個工具,反正也沒用上,就把教程發出來了 下載地址:http://www.safengine.com/mobile/download.html 使用方法: 我使…

boltdb 學習和實踐

golang boltdb的學習和實踐 1. 安裝 go get github.com/boltdb/bolt 2.創建和啟動數據庫 db, err : bolt.Open("my.db", 0600, nil) 其中open的第一個參數為路徑,如果數據庫不存在則會創建名為my.db的數據庫, 第二個為文件操作,第三個參數是可…

【django】使用django-crontab執行django自定義指令

django-crontab 部署 需求:再指定的時間內輸入django的自定義指令,來進行一些需求的操作。 使用流程: 1.安裝: pip install django-crontab 2.配置 settings.py文件: 再settings.py 文件中添加 django-crontab: INSTALLED_APPS (...django…

濾波問題匯總

1。A:JM86里面,GetStrength這個函數中下面這個數組有什么作用呢??byte BLK_NUM[2][4][4] {{{0,4,8,12},{1,5,9,13},{2,6,10,14},{3,7,11,15}},{{0,1,2,3},{4,5,6,7},{8,9,10,11},{12,13,14,15}}} ;blk_y (mb_y<<2) (blkQ >> 2) ;blk_x (mb_x<<2)…

redis基本類型和使用

redis存儲數據的基本類型有&#xff1a;string&#xff08;字符串類型&#xff09;、hash&#xff08;散列類型&#xff09;、list&#xff08;列表類型&#xff09;、set&#xff08;集合類型&#xff09;、zset&#xff08;有序集合類型&#xff09;。 依次做一些練習。redis…

Python與MySQL數據庫連接

Python3 MySQL 數據庫連接 MySQL 可應用于多種語言&#xff0c;包括 PERL, C, C, JAVA 和 PHP 什么是 PyMySQL&#xff1f; PyMySQL 是在 Python3.x 版本中用于連接 MySQL 服務器的一個庫&#xff0c;Python2中則使用mysqldb。 PyMySQL 遵循 Python 數據庫 API v2.0 規范&a…

mysql 日志_MySQL日志系統

MySQL日志系統MySQL有兩個重要的日志系統&#xff0c;分別是 redo log (重做日志) 和 bin log (歸檔日志) 。這兩種日志有以下三點不同。redo log 是 InnoDB 引擎特有的&#xff1b;binlog 是 MySQL 的 Server 層實現的&#xff0c;所有引擎都可以使用。redo log 是物理日志&am…

盛大游戲杯第十五屆上海大學程序設計聯賽暨上海金馬五校賽

編程1小時&#xff0c;提交4小時 做這種比賽一定要選一個好OJ啊 黑白圖像直方圖 發布時間: 2017年7月8日 21:00 最后更新: 2017年7月8日 22:38 時間限制: 1000ms 內存限制: 128M 描述 在一個矩形的灰度圖像上&#xff0c;每個像素點或者是黑色的或者是白色的。黑色像素點…

對幾個重要問題的闡述

由于DPB中間的參考幀的MV都是以4X4塊為單位&#xff0c;現在以8X8塊作Direct mode模式&#xff0c;所以必須對子塊的MV作合并&#xff0c; JM采用的東西是如下圖的方式: x o | o x o o | o o - - - - - o o | o o x o | o x 每8X8塊取外角上的4X4塊的MV. 算法如下: <<<…

【MySQL】基于Docker的Mysql主從復制搭建

基于Docker的Mysql主從復制搭建 為什么基于Docker搭建&#xff1f; 資源有限 虛擬機搭建對機器配置有要求&#xff0c;并且安裝mysql步驟繁瑣 一臺機器上可以運行多個Docker容器 Docker容器之間相互獨立&#xff0c;有獨立ip&#xff0c;互不沖突 Docker使用步驟簡便&#xf…

Web開發介紹

Web開發介紹 一,認識一個網站 最早的軟件都是運行在大型機上的&#xff0c;軟件使用者通過“啞終端”登陸到大型機上去運行軟件。 后來隨著PC機的興起&#xff0c;軟件開始主要運行在桌面上&#xff0c;而數據庫這樣的軟件運行在服務器端&#xff0c;這種Client/Server模式簡…

python云端系統開發入門_Python云端系統開發入門

第01課 初識Django 課時1Django框架介紹 00 : 14 : 33 開始學習 課時2工程搭建1 00 : 28 : 50 開始學習 課時3工程搭建2 00 : 13 : 22 開始學習 第02課 請求和響應的處理 課時1獲取請求url的參數 00 : 07 : 57 開始學習 課時2獲取請求url的查詢字符串 00 : 12 : 01 開始學習 課…

IBM 安全部門 CTO:AI 必須被重新定義為“增強智能”

編者按&#xff1a;隨著人工智能的發展&#xff0c;人們對它逐漸有誤會、恐懼之心。如果能夠利用好人工智能&#xff0c;特別是在網絡安全領域&#xff0c;它將成為人類對抗網絡犯罪強有力的武器。IBM 安全部門的 CTO Sandy Bird 認為現在的人工智能應該被重新定義為“增強智能…

【Nginx】通過反向代理配置本地圖床功能

安裝nginx sudo apt-get install nginx配置nginx.conf sudo vim /etc/nginx/nginx.conf worker_processes auto; pid /run/nginx.pid;events {worker_connections 768;# multi_accept on; }http {sendfile on;tcp_nopush on;tcp_nodelay on;keepalive_timeout 65;types_hash…

構建之法第二章

單元測試&#xff1a;一個開發人員要面對測試一個單元時只給出單元的代碼而沒有規格說明這樣吃力不討好的任務.你怎樣做才會有更多的收獲,而不僅僅是發現編譯器的Bug?第一步是理解這個單元原本要做什么, --- 不是它實際上做了什么. 比較有效的方法是倒推出一個概要的規格說明.…

幀內預測模式提取

if (input->rdopt) { int mb_available_up; int mb_available_left; int mb_available_up_left; min_rdcost max_rdcost; // precompute all new chroma intra prediction modes // 對色度進行幀內預測 IntraChromaPredict…

Django簡介以及安裝

Django簡介 1. 認識Django Django是一個高級的Python Web框架&#xff0c;它鼓勵快速開發和清潔&#xff0c;務實的設計。由經驗豐富的開發人員構建&#xff0c;它負責Web開發的許多麻煩&#xff0c;因此您可以專注于編寫應用程序&#xff0c;而無需重新創建輪子。它是免費的…