打造自己的 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.mzph.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;而无需重新创建轮子。它是免费的…