『原创』手把手教你搭建一个实用的油耗App(一)
前言:
入行快10年,有点积蓄,三年前买了代步车。于是乎,汽车油耗开销就成了每个月都必须关注的问题。三年来,用过了无数油耗记录软件,比如最知名的“小熊油耗”,从第一次用,一直到最新一版,感觉越来越“臃肿”,功能实在是太丰富了,甚至都做到“大数据”这一层面,作为一个小白车主,其实,我只关心:我的车油耗如何。

后来体验了几款应用市场上的油耗app,感觉都不尽如人意,比如一来就要你手机号的(什么鬼,手机号和油耗有毛线关系?作为一个安卓用户,我觉得:个人隐私还可以在抢救一下!)……还有界面简单到只有一个表格的,看的我是一脸懵逼的(敢不敢不要这么“直白”,不用小熊油耗那么复杂的图表,我就只想知道油费怎么花出去的),曾经在某野鸡应用市场下载到一个支持云盘数据备份的app,无奈换手机后,居然再也找不到这个app啦,一年多的油耗数据也无从恢复,哎(我就想用个稳定的油耗app)
一直以来,我就想找一个这样的油耗App:
- 功能相对简单(油耗增删,图表展示)
- 不涉及个人隐私(不收集个人账号类信息,没有多余的权限申请)
- 支持数据云备份(有后台数据做云端备份,换机无忧)
- 稳定更新(有一个稳定的App市场来承载,如果我还活着,就不断更新)
作为程序猿,一直以来信奉那句“自己动手,丰衣足食”,既然安卓市场里找不到适合自己的油耗app,那何不自己开发一个呢?
选型:
开发工具和UI框架
果断决定自己动手搞一个,但是想想安卓那么多项目框架,感觉都太“臃肿”,如果一个一个写Activity,自己这个强迫症又觉得太low逼。怎么办?!遇到了Hbuilder+MUI,这个前端Hybrid开发神器,我在这篇文章就不做过多赘述,大家可以移步官网看看“Hello world”,自然能明白为什么我会用它来完成咱们这个App的开发任务(传送门在这里:猛戳跳转)
好了,准备好开发工具和UI框架,我们的App就在这框架上进行构建,简单点说:我只需要写几行JS代码,就能完成一个原生App所具备的功能。
数据持久的新思路:BAAS
网络上关于BAAS的解释,很多很多,在这里我也不啰嗦,简单说:我作为一个App开发,我只需要告诉Baas我需要存些什么(JSON),什么时候来拿(Anytime),怎么拿(Get/Post)。后台所有关于数据的操作,均有BAAS来完成!,一句后台代码都不用我写哟!
这样一来,作为一个独立的App开发人员,至少后台数据的持久化,算是解决了。BAAS提供商,服务好的,还会同时提供一套“用户账户”系统给你,方便你的App用到“用户”模块,这样,神马用户注册,密码找回等等这一套系统,又给我省了很多工作量。
综上所述,我选择了:Wilddog野狗这家年轻的BAAS提供商,来作为我App的云端数据备份+用户账户模块的支撑~~~~当然路,免费和收费,大家可以自行决定!

万事俱备,只欠coding
搞定了开发工具,UI框架以及数据存储和用户账号体系的问题,对于我们这个App来说已经是“万事俱备,只欠coding”了。如果电脑面前的你想和我一样10多分钟搞定这个App,你应该准备好:
- 项目开发工具:Hbuilder(自带MUI)
- Wilddog野狗云账户
- 健全的双手(右手皆可)
- 不低于70的IQ
……
项目搭建

使用Hbuilder 新建一个“移动App”项目,在“选择模板”这里,我们选择:mui项目。这样,会为我们的项目添加好mui必备的js、css、字体资源。
新建的项目如左图所示, 在根目录下,添加images、libs、funcs三个文件夹。如下图所示:

还有一系列的功能界面,在这里,就不一一赘述,后面都会把项目在git上进行分享。以下是各个界面的样子:

项目的源码将使用git方式做分发,所以在此不再赘述。大家可以通过扫下方二维码,先体验一下:

后续,我会专门一个一个专题,给大家介绍这个App主要功能模块的实现,以及对接BAAS服务的相关心得技巧。
『原创』手把手教你搭建一个实用的油耗App(一)的更多相关文章
- 用Python手把手教你搭建一个web框架-flask微框架!
在之前的文章当中,小编已经教过大家怎么搭建一个Django框架,今天我们来探索另外的一种框架的搭建,这个框架就是web框架-flask微框架啦!首先我们带着以下的几个问题来阅读本文: 1.flask是 ...
- 手把手教你搭建一个 Elasticsearch 集群
为何要搭建 Elasticsearch 集群 凡事都要讲究个为什么.在搭建集群之前,我们首先先问一句,为什么我们需要搭建集群?它有什么优势呢? 高可用性 Elasticsearch 作为一个搜索引擎, ...
- 手把手教你搭建一个Elasticsearch集群
一.为何要搭建 Elasticsearch 集群 凡事都要讲究个为什么.在搭建集群之前,我们首先先问一句,为什么我们需要搭建集群?它有什么优势呢? (1)高可用性 Elasticsearch 作为一个 ...
- 手把手教你搭建一个跟vue官方同款文档(vuepress)
前言 VuePress 由两部分组成:第一部分是一个极简静态网站生成器 (opens new window),它包含由 Vue 驱动的主题系统和插件 API,另一个部分是为书写技术文档而优化的默认主题 ...
- 手把手教你搭建FastDFS集群(下)
手把手教你搭建FastDFS集群(下) 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/u0 ...
- 手把手教你搭建FastDFS集群(中)
手把手教你搭建FastDFS集群(中) 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/u0 ...
- iOS回顾笔记(05) -- 手把手教你封装一个广告轮播图框架
html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,bi ...
- 大数据江湖之即席查询与分析(下篇)--手把手教你搭建即席查询与分析Demo
上篇小弟分享了几个“即席查询与分析”的典型案例,引起了不少共鸣,好多小伙伴迫不及待地追问我们:说好的“手把手教你搭建即席查询与分析Demo”啥时候能出?说到就得做到,差啥不能差人品,本篇只分享技术干货 ...
- 手把手教你搭建Pytest+Allure2.X环境详细教程,生成让你一见钟情的测试报告(非常详细,非常实用)
简介 宏哥之前在做接口自动化的时候,用的测试报告是HTMLTestRunner,虽说自定义模板后能满足基本诉求,但是仍显得不够档次,高端,大气,遂想用其他优秀的report框架替换之.一次偶然的机会, ...
随机推荐
- 1-QT-文件操作
Qt文本文件的读写操作 Qt文件操作详解(创建.写入.删除.INI.XML文件等 二进制文件的读写文件可以使用QFile类.QStream文本文件的读写建议使用QTextStream类,它操作文件更加 ...
- 4-计算九位数以内各个位数字和为s的种类
/*假设我们当前要求的是100以内各位数之和和等于s的数有多少个,可以想到就是10以内各位数之和等于s的数的个数再加上10到100内的各位数之和等于s的个数.令dp[i][j]就代表10的j次方内各位 ...
- 配置springMVC
1.web.xml 前端控制器 配置规则:*.do: 拦截请求路径所有的后缀为.do;/* : 拦截所有, .jsp页面也会拦截; 不会使用此配置, 因为视图会无法跳转;/ : 拦截所有, .jsp页 ...
- [freeCodeCamp] solution to HTTP JSON API SERVER passed!
var http = require('http') var url = require('url') function parsetime (time) { return { hour: time. ...
- tp5允许跨域
header("Access-Control-Allow-Origin: *"); 放在命名空间之后
- 什么是tcp协议?
这是世界上最顶尖的tcp讲解技术...
- XE4 for ios 谨慎处理字符串
由于xe4 for ios 里面的字符串处理有变化,具体可以参考官方文档,这两天帮一个朋友调试ios 的 应用,由于没有注意这一块,折腾了很长时间.特此记录下来,希望其他人不要走弯路. 以下面代码为 ...
- 2018.08.19 NOIP模拟 change(简单模拟)
Change 题目背景 SOURCE:NOIP2015-SHY-10 题目描述 Alice 和 Bob 又聚在一起了!他们已经厌倦了取石子游戏,现在他们热衷于切题.于是,Alice 找到了一道题让 B ...
- 24. Indoor Air pollution 室内空气污染
. Indoor Air pollution 室内空气污染 ① Priscilla Ouchida's "energy-efficient"house turned out to ...
- DevExpress gridcontrol Master-Detail绑定到对象类型
数据库:C_ProductPlan ,C_ProductPlanItemDTO定义:(实现每个计划条目-Master,对应多个ProcessInfo-Detail) [DataContract] [S ...