文档章节

就这样,我只用一天就开发出了一款APP

一句APP
 一句APP
发布于 2017/02/12 10:01
字数 1437
阅读 31
收藏 0
点赞 0
评论 1

​众所周知,开发APP一直是件非常不容易的事,需要Android和iOS两班开发人员,还得有设计、测试等等分工,根据APP的复杂程度,开发周期两三个月乃至半年,再加上后期几乎无止境的维护和更新,没有七八个人、几十万资金,很难做出一个像样的APP。

而如今,一个人花一天时间就能开发出一个Android、iOS双平台的APP,你信吗?

这个APP的名字是“一句”,现在已上线,下载地址:

http://www.apk.anzhi.com/data3/apk/201701/17/4f5042c10fd2d04e6cc6e76abeaadc35_93779500.apk(上线了Android版,iOS版正在审核)

网页版:www.znsyj.net

安装后你会发现,这确实是个功能完整的APP,与网站的内容完全一致,怎么可能一个人在一天时间内开发完成?绝绝绝对不可能!

然而这是确确实实发生的事情。

那么,这是怎么实现的呢?

用手机浏览器打开www.znsyj.net,然后打开一句APP,如下:

仔细对比一下网页和APP,你会发现二者惊人的相似,排版布局、颜字体大小与颜色等等元素丝毫不差,完全一致,纵然这两套系统是同一个开发人员所做,想要达到这样的还原度也是非常困难的。

聪明的你肯定发现了,上面两张图片的不同之处,就在于一个有地址栏,一个没有。​

所以,一句APP之所以一天就能开发出来,奥妙在于:去掉浏览器的地址栏,把www.znsyj.net设为打开浏览器的主页,再配个图标和启动页。

如此而已

那么问题来了,浏览器哪家强?

Chrome浏览器简洁、快速,大家都在用,可是你知道吗?Chrome是基于谷歌的开源项目Chromium实现的,Chromium地址(需翻墙):https://www.chromium.org/developers/how-tos/get-the-code

Chromium提供了非常丰富的平台源码,其中就包括iOS和Android,下载这两套源码稍加修改,去掉地址栏,设定主页,更换图标,加入启动页,重新打包,当当当!一个全新的APP就闪亮登场了!

原装Chromium有44M,里面有很多APP不需要的东西,比如多国语言文件、下载管理、搜索引擎管理等等,都可以删掉,从而减小体积,一句APP做了删减后是23M。

相较于传统APP,用浏览器改装后的APP有什么优势呢?

1. 开发便捷

我们调整Chromium花了一天时间,源码已经有了,你在这套源码基础上只要稍加改动三个地方即可:图标、主页、启动页,一个小时都不到就可以开发出一套Android和iOS双版本APP。

PS:原本想在文末放置我们项目的源码,由于一些特殊原因,现在放不成了,尴尬。。。不过其他人做也是一样,思路已经有了,修改一下Chromium也不会太麻烦。

2. 无需维护

淘宝网有更新时,我们需要重新下载浏览器吗?当然不用,刷新一下页面就好了。

同理,我们的APP只是套了个浏览器的壳,所有内容全部在服务器,只要更新服务器,用户手机里的APP就即时更新,无需重新下载,开发效率与用户体验都获得了极大提升。

3. APP只有1KB大小

这个眼下还做不到,但我相信在不远的将来肯定会实现。

怎么实现?

APP只要套个浏览器的壳就好,试想,如果这个壳本身就已经集成在Android和iOS系统当中呢?要知道Chromium和Android都是谷歌旗下产品,鉴于谷歌一向的免费开放精神,对于Android系统而言这是非常有可能发生的事,只是苹果那边就不清楚了。

如果系统集成了浏览器壳,大家共享这个壳进行开发,只要设计师把网站地址、图标这两项数据导入壳中,在手机桌面生成一个快捷方式,就可以实现一个APP不到1KB,并且是瞬间启动,所以说这个时候启动页也不需要了(是不是说Android开发人员也不需要了呢╮(╯▽╰)╭)

4. 手机再也不会卡了

APP只有1KB,就算手机里装一万个应用也不会卡,手机开发商和用户对于存储空间的忧虑将烟消云散 \^o^/

 

上面说了那么多好,下面我们聊聊这种开发方式的缺陷。

传统APP有很多权限,以Android为例,可以读取联系人、短信、录音、拍照……

传统APP可以推送消息

传统APP的交互可以很华丽,左滑右滑什么的。

这些事情都是网页做不到的,但是呢,只是暂时做不到而已。

且不说谷歌把Chromium集成到Android中,我觉得咱们天朝的各大手机厂商就可以把这件事给办了,在各自的手机里集成Chromium,并且深度优化,开通各种权限,再发挥想像力增加其他炫酷的新特性… 前景想想就很美好。

并且,广告语我都帮他们想好了,针对开发人员:加入XX开放平台,一分钟一个APP。 针对广大用户:一万个应用也不卡。

有兴趣的小伙伴可以去下载 Chromium,根据自己的需要定制它,早日实现更多功能,比如读取联系人、推送、录音、炫酷动画…

© 著作权归作者所有

共有 人打赏支持
一句APP
粉丝 0
博文 1
码字总数 1437
作品 0
杭州
加载中

评论(1)

H
Hello1010
能发下代码么?
移动APP开发周期中各个阶段的问题和解决工具

传统的个人开发者,要想开发出一个完美的APP要经过以下几个过程:搭建开发环境,写代码,写统计系统,开发即将完成后,要购买服务器,然后把程序布置到服务器上进行测试,接着是对APP做手机适...

fiawfo ⋅ 2017/04/05 ⋅ 0

免费网络电话App 传统通信破冰者

“语音不要钱,只要数据的钱,比如你看发个短信的话,占几个K而已,大概10个短信差不多1分钱成本吧, 那你联通收多少钱?1毛钱是不是?还有你打电话,你要收钱,会在所谓的这个移动互联网的冲击...

疯狂的流浪 ⋅ 2012/10/01 ⋅ 5

快速开发轻量级App 基于地理位置定位(LBS)React Native+Node.js

http://coding.imooc.com/class/69.html#Anchor 这不是一门技术多么高深的课程却可以让你快速开发一款App 一周开发一款非常“好玩儿”的上线App 这是一款已经在App store上线的App,源于讲师...

wusejason ⋅ 2017/06/30 ⋅ 0

客户端抢购活动的时间同步与倒计时设计

今天公司产品的一个需求,要在手机App上准点进行活动,于是有了下面这些想法。 需求描述与约束 假设我们要在手机App上进行一个抢购小米手机的活动,参与的用户同时开始,任何用户的误差要小于...

阿债 ⋅ 2016/07/06 ⋅ 0

只要5步就能实现智能家电全球化 阿里云生活物联网平台2.0了解一下

5月23日,阿里云在云栖大会·武汉峰会上推出了全新阿里云Link生活物联网平台2.0,支持亿级设备全球接入、提供多语言语音AI交互能力,可帮助中国家电企业快速智能化出海,全球消费者都可轻松获...

阿里云头条 ⋅ 05/25 ⋅ 0

超算Titan仅用一天生成AI神经网络,顶尖人类科学家则需数月

     作者:Cecilia   【新智元导读】美国能源部橡树岭国家实验室利用超级计算机Titan,开发出一种人工智能系统,一天之内就能生成神经网络。而最聪明的数据科学家也需要好几个月才能开...

深度学习 ⋅ 01/04 ⋅ 1

街旁,玩转四方这样的LBS手机应用主要用到哪些技术?

街旁,玩转四方这样的LBS手机应用主要用到哪些技术? 比如在android,ios下开发,只用讲到用到哪些技术就好,不用具体细节,复制的也可以,我找了一天没找到合适的文章。

倔强 ⋅ 2011/12/13 ⋅ 2

推荐十个快速开发移动应用程序的工具

  【IT168 评论】建立一个移动应用程序不再只是电子商务公司的需求,而是几乎所有企业的需求。今天,社会对于网络的需求大于所有,网络的现代化方式已经影响了企业过去的运作方式。通过移动...

it168网站 ⋅ 2017/04/11 ⋅ 0

阿里云Link生活物联网平台2.0正式发布,支持天猫精灵等三大语音AI操控

5月23日,阿里云在云栖大会·武汉峰会上推出了全新阿里云Link生活物联网平台2.0,支持亿级设备全球接入、提供多语言语音AI交互能力,可帮助中国家电企业快速智能化出海,全球消费者都可轻松获...

阿里云头条 ⋅ 05/24 ⋅ 0

“动态公交系统”的构想

现在手机打车软件已经很成熟了,某种程度上已经颠覆了原有的出租车行业的根基。但是公交系统的运作模式还是数十年未改变,这几年的移动互联网似乎对公交车行业的改进甚少。这几天我脑子里构想...

webcraft ⋅ 2016/10/13 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

个人博客的运营模式能否学习TMALL天猫质量为上?

心情随笔|个人博客的运营模式能否学习TMALL天猫质量为上? 中国的互联网已经发展了很多年了,记得在十年前,个人博客十分流行,大量的人都在写博客,而且质量还不错,很多高质量的文章都是在...

原创小博客 ⋅ 今天 ⋅ 0

JavaScript零基础入门——(十一)JavaScript的DOM操作

JavaScript零基础入门——(十一)JavaScript的DOM操作 大家好,欢迎回到我们的JavaScript零基础入门。最近有些同学问我说,我讲的的比书上的精简不少。其实呢,我主要讲的是我在开发中经常会...

JandenMa ⋅ 今天 ⋅ 0

volatile和synchronized的区别

volatile和synchronized的区别 在讲这个之前需要先了解下JMM(Java memory Model :java内存模型):并发过程中如何处理可见性、原子性、有序性的问题--建立JMM模型 详情请看:https://baike.b...

MarinJ_Shao ⋅ 今天 ⋅ 0

深入分析Kubernetes Critical Pod(一)

Author: xidianwangtao@gmail.com 摘要:大家在部署Kubernetes集群AddOn组件的时候,经常会看到Annotation scheduler.alpha.kubernetes.io/critical-pod"="",以表示这是一个关键服务,那你知...

WaltonWang ⋅ 今天 ⋅ 0

原子性 - synchronized关键词

原子性概念 原子性提供了程序的互斥操作,同一时刻只能有一个线程能对某块代码进行操作。 原子性的实现方式 在jdk中,原子性的实现方式主要分为: synchronized:关键词,它依赖于JVM,保证了同...

dotleo ⋅ 今天 ⋅ 0

【2018.06.22学习笔记】【linux高级知识 14.4-15.3】

14.4 exportfs命令 14.5 NFS客户端问题 15.1 FTP介绍 15.2/15.3 使用vsftpd搭建ftp

lgsxp ⋅ 今天 ⋅ 0

JeeSite 4.0 功能权限管理基础(Shiro)

Shiro是Apache的一个开源框架,是一个权限管理的框架,实现用户认证、用户授权等。 只要有用户参与一般都要有权限管理,权限管理实现对用户访问系统的控制,按照安全规则或者安全策略控制用户...

ThinkGem ⋅ 昨天 ⋅ 0

python f-string 字符串格式化

主要内容 从Python 3.6开始,f-string是格式化字符串的一种很好的新方法。与其他格式化方式相比,它们不仅更易读,更简洁,不易出错,而且速度更快! 在本文的最后,您将了解如何以及为什么今...

阿豪boy ⋅ 昨天 ⋅ 0

Python实现自动登录站点

如果我们想要实现自动登录,那么我们就需要能够驱动浏览器(比如谷歌浏览器)来实现操作,ChromeDriver 刚好能够帮助我们这一点(非谷歌浏览器的驱动有所不同)。 一、确认软件版本 首先我们...

blackfoxya ⋅ 昨天 ⋅ 0

线性回归原理和实现基本认识

一:介绍 定义:线性回归在假设特证满足线性关系,根据给定的训练数据训练一个模型,并用此模型进行预测。为了了解这个定义,我们先举个简单的例子;我们假设一个线性方程 Y=2x+1, x变量为商...

wangxuwei ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部