“榕树下·那年”移动app ( hybrid ) 开发总结

 

榕树下网站本身的技术人员并不多,所以app开发的任务就到了母公司盛大文学这边。
 
 
 
盛大文学无线业务中心负责这次具体开发任务。
 
 
 
一如既往的,开发的情况是:时间紧,任务重,人手少
 
 

技术选型


为了同时上线Android和IOS平台,所以选择了hybrid这种Native与HTML5混合的方式。
 
Native的优点是效率相对较高,但缺点是开发速度相对较慢,不利于自更新;
HTML5的优点是开发速度快,可以实现自更新,跨平台,缺点也是显而易见,效率不高,加载速度慢;
所以:
  • 用Native解决效率问题,主要用于切换界面的框架,图片浏览器组件等
  • 用HTML5解决开发上的时间问题,主要用来实现页面布局、渲染
 
后台服务端API提供统一的JSON数据格式,可以供Native与HTML5无缝使用,服务端可以不再关心客户端到底是HTML还是Native,HTML也可以随时改成Native
 
 
客户端与服务端通信数据交换统一使用JSON,这样一来如有需要Native可以换成HTML5,或者HTML5可以换成Native
 
 
 

Hybrid的HTML5部分


我负责的就是HTML5这一部分,其实就是WEB页,外行现在一见到炫酷的微信页面或其它效果的页面就觉得这是HTML5..
好吧,就叫HTML5吧。
 

Javascript

1、zepto.js
用于基本DOM操作与ajax选择使用定制的zepto.js,定制zepto.js的原因是我已经习惯了Deferred这种写法
所以需要用到Deferred模块。具体定制方法请参考https://github.com/madrobby/zepto
 
2、artTemplate.js
用于模板的渲染,语法简洁,效率高。https://github.com/aui/artTemplate
 
3、cloudary.js
整个项目的web端框架,为什么叫cloudary,其实名字几经更改,最后还是用了盛大文学的网站域名 www.cloudary.com.cn
至于为什么是cloudary这个词,好吧,谁知道当时是怎么定的这个组合的英文词的呢。。
它的作用:
  • 封装、桥接JS与Native的通信,对业务层提供统一的操作接口
  • 再次封装zepto.js提供的的ajax方法,主要作用是可缓存接口数据,进行统一的错误处理
  • 框架层对页面初始化完成后的业务处理
  • 提供全局的通用操作方法或接口,如:系统信息,存储操作等
 
4、每个页面自身的业务逻辑直接写在了页面上,因为代码并不多
 

CSS

用sass编写CSS
几个月之前还为之写了一个sass库,叫sasshat,项目地址:https://github.com/willian12345/sasshat
 
 
应用sasshat后APP某些WEB界面实现的效果如:
 
 
 
 
 
 
下面这个是用web实现的动画启动页
 
 
 
用了SASS后的好处:
  • 编写CSS更加快速
  • 可适应频繁的需求改动(—_—!)
  • 更快速的纯CSS实现酷炫动画
  • 更性感
 
 
 

该说说缺点了


1、加载速度慢
首次进入页面更慢,页面复杂度越高,需要的资源越多,加载资源慢,渲染DOM慢。
在移动端特别如此,随着手机越低端,性能递减越厉害
 
2、低端手机CSS3支持程度不一
有时候不得不放弃一些好用的CSS属性,而改变另外的方案实现。因为某些Android2.X的手机真的很落后。
不得不为这些手机去掉一些效果或者专门判断后用普通图片代替效果
 
3、跨平台很美
web确实是跨平台的,但webview内的浏览器CSS兼容比手机上浏览器内更不好。所以要实现全兼容只是目标。
要花的时间与精力不比用Native少,所以为什么不选择用更合适的Native呢?
 
 
 
 

最后要说的


(APP现还未正式发布。还在内测)
无图无真像。
 
 
我在现在的公司还是喜欢用自己写的东西。
虽然市面上有很多mobile端的web框架可用,但选择哪一款,要不要用,还是要根据自身项目所处的环境:人力配制,技术水平,公司B格。
 
对于WEB开发人员来讲,开发Hybrid形式的APP,还要取决于Native端开发者的水平或者对webview知识的熟悉程度。
对于一般技术人员来讲,WEB不了Native,而Native也不了解web
 
 
 
 
 
 
======================================
转载处请注明:博客园(池中物,王二狗)willian12345@126.com
 
分类: html5

Hybrid的更多相关文章

  1. Hybrid App技术批量制作APP应用与跨平台解决方案

    前言 简单的聊一聊我开发了4年之久的Hybrid App(混合模式移动应用)平台开发,目前一直在持续开发与维护,支持无编程快速开发! 其本意也不是要吹捧前端有多么强大,只是用自己的实际项目阐述下对于前 ...

  2. 利用C#开发移动跨平台Hybrid App(一):从Native端聊Hybrid的实现

    0x00 前言 前一段时间分别读了两篇博客,分别是叶小钗兄的<浅谈Hybrid技术的设计与实现>以及徐磊哥的<从技术经理的角度算一算,如何可以多快好省的做个app>.受到了很多 ...

  3. 浅谈Hybrid技术的设计与实现第三弹——落地篇

    前言 接上文:(阅读本文前,建议阅读前两篇文章先) 浅谈Hybrid技术的设计与实现 浅谈Hybrid技术的设计与实现第二弹 根据之前的介绍,大家对前端与Native的交互应该有一些简单的认识了,很多 ...

  4. 浅谈Hybrid技术的设计与实现第二弹

    前言 浅谈Hybrid技术的设计与实现 浅谈Hybrid技术的设计与实现第二弹 浅谈Hybrid技术的设计与实现第三弹——落地篇 接上文:浅谈Hybrid技术的设计与实现(阅读本文前,建议阅读这个先) ...

  5. 浅谈Hybrid技术的设计与实现

    前言 浅谈Hybrid技术的设计与实现 浅谈Hybrid技术的设计与实现第二弹 浅谈Hybrid技术的设计与实现第三弹——落地篇 随着移动浪潮的兴起,各种APP层出不穷,极速的业务扩展提升了团队对开发 ...

  6. OpenStack 企业私有云的若干需求(4):混合云支持 (Hybrid Cloud Support)

    本系列会介绍OpenStack 企业私有云的几个需求: 自动扩展(Auto-scaling)支持 多租户和租户隔离 (multi-tenancy and tenancy isolation) 混合云( ...

  7. Hybrid APP混合开发的一些经验和总结

    http://www.cnblogs.com/kingplus/p/5588339.html 写在前面: 由于业务需要,接触到一个Hybrid APP混合开发的项目.当时是第一次接触混合开发,有一些经 ...

  8. Hybrid App经验解读 一

    郑昀编纂 关键词:Hybrid,Zepto,Fastclick,Backbone,sui,SPA,pushState,跨域,CORS click 事件还是 tap 事件? Zepto 的 show/h ...

  9. 【转载】用Ionic开发hybrid APP

    使用phonegap开发APP的优劣在此不必细说,快速,简单,跨平台,以及随着iOS,Android本身对webview优化所带来的不错的性能,便是其独有的优势.而且私以为在目前激烈而又变化快速的移动 ...

  10. 【腾讯Bugly干货分享】美团大众点评 Hybrid 化建设

    本文来自于腾讯Bugly公众号(weixinBugly),未经作者同意,请勿转载,原文地址:http://mp.weixin.qq.com/s/rNGD6SotKoO8frmxIU8-xw 本期 T ...

随机推荐

  1. hdu2665-Kth number

    Kth number Time Limit: 15000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Tota ...

  2. asp.net web api KnownTypeAttribute

    项目里用到了继承,在序列化的时候遇到了问题. 源代码 public class Segment { public SegmentType Type { get; set; } public strin ...

  3. web前端利用HSTS(新的Web安全协议HTTP Strict Transport Security)漏洞的超级Cookie(HSTS Super Cookie)

    web前端如果想实现cookie跨站点,跨浏览器,清除浏览器cookie该cookie也不会被删除这似乎有点难,下面的教程让你完全摆脱document.cookie 1.服务器端设置HSTS 如PHP ...

  4. CDH秘籍(两):cloudera Manager存储监控数据

    概述 上一篇文章分析了cloudera manager中监控数据.中心数据的存储方式,如何配置外部表等.这一篇文章进一步分析监控数据的存储,配置,调优等. Service Monitor 和 Host ...

  5. C++ Primer 学习笔记_41_STL实践与分析(15)--先来看看算法【下一个】

    STL实践与分析 --初窥算法[下] 一.写容器元素的算法 一些算法写入元素值.在使用这些算法写元素时一定要当心.必须.写入输入序列的元素 写入到输入序列的算法本质上是安全的--仅仅会写入与指定输入范 ...

  6. Oracle存储过程的简单示例

    ---创建一个表 create table TESTTABLE (   id1  VARCHAR2(12),   name VARCHAR2(32) ) select t.id1,t.name fro ...

  7. k8s google sample - guestbook

    Redis读写分离作为存储 PHP网页作为前端 github地址 https://github.com/kubernetes/kubernetes/blob/release-1.1/examples/ ...

  8. YUV422蓝色屏幕输出的调试援助

    YUV422蓝色屏幕输出的调试援助 YUV422有YUYV,YVYU,UYVY,VYUY四种,以下笔者就就以UYVY为例介绍一下数据构成.因为常常要跟视频输入打交道,所以YUV422这种常见的视频信号 ...

  9. 网络资源(1) - Hadoop视频

    2014_08_23: hadoop03c_分布式文件系统HDFS http://v.youku.com/v_show/id_XNDgwNjg1OTY0.html?f=18604686 2014_08 ...

  10. 写得好 git 提交信息

    编写好 git 提交信息 提交信息 我们作出答复,更改将提交相关信息,这些信息通常被认为是重要的信息会小心留下应该离开,你为什么需要这个提交实例,提交解决任何问题. 我们需要良好的信息组织,虽然后来, ...