移动平台端到端低成本解决方案
1、 概述
《移动平台End-2-End低成本解决方案》一课,描述的是当今移动互联网大局背景下,如何低成本的为移动应用搭建一个低成本服务端。从而实现中小开发者、产品发烧友对开发End-2-EndSystem产品的追求。这个低成本的服务端方案,现在已经有众多选择, 本文将围绕百度云平台进行架构设计, 并以一个现有的Android版本英语词典《凡尘英语》作为典型实践, 验证其技术的简洁性和成本的低廉性。
特别提出: 本课程不会做过多的技术细节讨论,关注的是: 整体产品的技术方案选型以及产品设计的知识。
1.1 移动解决方案介绍
主流的C/S的模式【服务端/客户端模式】
为什么做这样的选择?
1. 省电、节能的需求:鉴于手持端的特点, 不适合做计算量大的功能, 尽量将复杂的逻辑处理放置云端, 有利于节省手持设备的电量, 避免终端发热。
2. UI操作简洁性需求: 手持终端操作尽量要求简洁, 因此界面设计需要紧凑,从而不适合富客户端方式的架构设计,手持终端尽量降低复杂性。
3. 容易维护的需求: 为了容易维护(即改动最小), 逻辑改动在服务端修改的话,代价是最小的。同样,客户端需要跨平台,但服务器端不需要跨平台,因此将维护和扩展工作放置在服务端,代价可以最小化。
4. 优秀实践佐证:证明云端的架构对项目的后期发展更有利。典型代表有
1. Google 系列: 如Search API,Map API
2. SNS系列: Facebook,Twitter, douban
3. 门户网站系列:新浪微博, 淘宝
【Unix设计原则: 经济性原则】
Programmer time is expensive; conserve itin preference to machine time.
宁花机器一分钟,不费程序员一秒。
【注意】
我们这里忽视了一类非主流的应用, 就是单机版应用程序。请思考原因。
1.2 预期效果
l 知识提升: 移动开发背景知识、移动开发常用技术
l 实践提升:利用百度云平台,零成本搭建服务端平台
l 产品开发:个人产品开发流程
特别注意,我们这里偏重的是整体产品的系统设计和技术方案选型, 对具体技术不会过分纠结。如果有更多需要讨论的,请课后沟通。
1.3 培训对象
l 对移动产品兴趣浓厚者
l 产品控, 发烧友, 对折腾一个产品非常有兴趣的人
l 屌丝程序猿, 没钱,有精力, 成本控
2、 移动开发技术一览
移动产品开发技术,目前已经明确的划分为三大流派:
纯手机平台开发模式: Native 技术(C/S模式)
移动Web开发模式: 浏览器模式(纯Browser模式)
混合开发模式:Native模式 + Web开发模式
2.1 Native技术
IOS 开发
Android 开发
Window phone 开发
特点:
完全依附各自平台,独立的挣扎, UI之间完全不能共用, 这样的方案, 在【游戏】开发中大量盛行。原因?
管理成本高昂的NativeApp
2.2 web技术【HTML5】
纯HTML5开发
需要做以下突破:
a. 支持硬件感应器 (gps/摄像头/屏幕分辨率适配)
b. 浏览器对硬件标签支持
c. 最重要的: 统一HTML5规范
即使,有一天,我们解决了这些问题, 纯Web还有一些纠结的问题要解决:
1. 输入网址访问的用户体验, 想想就觉得难受
2. web访问的流畅性、交互性,需要一段很长读路要走。(记得flash在移动领域是怎么死掉的吗?)
纯 Web方案, 还只是个传说
So, It is a long way…..
2.3 Native + HTML5
混合APP也称为Hybrid App
特点:
1. 利用Native code提供的Web组建, 嵌入HTTP链接, (当然也有一些人直接将HTTP的资源打包成应用程序, 这种模式存在很大问题,思考一下原因)
2. Native Code处理设备相关的代码,HTML5用来处理服务端数据展示和交互
3. 同样需要接受App市场的审核.【一般而言,干坏事的都是NativeCode, 也可以思考一下原因】
进展:
业界应用:
1. 网易App家族
2. facebook, Yelp[类似于大众点评]
3.随便翻开手机, 都可以看到, 比如你用的淘宝等
3、 需要了解的云端世界
无虚拟、不云端
3.1 搭建服务器的成本
1. 独立服务器成本
刀片服务器(1w~3w)+ 主机托管(6K/year) + 域名费用(100元/年)
2. vps成本
国内均价100元/月以内, 国外也不会超过两百
3. 收费云平台
按照流量和使用频率付费 ===》用户规模小,免费
百度云计费标准
3.2 常见的云服务
国外:
亚马逊
Google AppEngine
国内:
阿里云
百度云
新浪云
3.3 推荐之一: 百度BAE
1. 支撑范围广,都为主流技术, Java,Mysql, 相关的大文件,大数据服务齐全【云盘支持力度好】
2. 足够强的移植能力, 正因为主流, 所以一旦应用做强,脱离BAE,成本最小。适合做大做强。
3.4 推荐之二: 新浪SAE
平台增值能力好, 非常容易和新浪最NB的接口,微博实现无缝对接。微博营销能力极强,可以减少日后的推广成本。
其他阿里系列的也是非常好的平台, 尤其是淘宝API接口,绝对不容小觑。
4、低成本实践检验: 凡尘英语
4.1 产品定位
l 随时随地学习。 并记录用户学习的特点。每天、每周、每月会统计排行,查看用户对那些单词关注度比较高。
l 以学习为目的,按需下载分类。比如: 商贸英语、海关英语、IT英语等。
l 以用法为中心的学习模式,促进深度记忆: 单词 ——>例句 ——>例句中的单词 ——> 再到例句的无限联想记忆。强调背诵例句。
l 强调关联学习:词之间有的关联。强调用户的关联记忆能力,比如apple的关联词为Pear, fruit等, 由一个词扩展到多个词。反复记忆。
4.2 UGC vs PGC
UGC: User Generated Content
PGC: Professionally Generated Content
4.3 内容来源
人工刷选 + 自动的方式
4.4 Client 和免费BAE的交互
成本节约和安全策略:
1. 每天限制和BAE的交互次数,每个客户端每天一次.
2. 单词全部下载到本地, 避免每次都需要从服务端获取
3. 服务端对程序有绝对控制力度. 控制版本升级,防止不规范的客户请求,恶意客户,竞争对手等。
5、课程小结
移动开发技术包含哪三种?
常见云服务提供商有哪些(说出两种即可)
参考资料:
HTML5与NativeApp之争继续发酵,Hybrid App趁势而起