“榕树下·那年”移动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. CVE-2014-4113:飓风熊猫(HURRICANE PANDA)Win64bit提起权0day破绽

    飓风熊猫被觉得是原产于中国.主要针对基础设施公司的先进攻击者.我们知道它们除了拥有0day漏洞外.还有其它的三种本地特权提升漏洞.我们知道飓风熊猫使用的是"ChinaChopper" ...

  2. 阿里云OSS Multipart Upload上传实例

    原来是用的PutObject()方式上传文件的,但是当文件比较大的时候,总是报一个对方强制关闭连接导致上传失败.PS:公司的网比较渣,10MB的文件都传不上去,搜了下,说使用Multipart Upl ...

  3. 使用XML向SQL Server 2005批量写入数据——一次有关XML时间格式的折腾经历

    原文:使用XML向SQL Server 2005批量写入数据——一次有关XML时间格式的折腾经历 常常遇到需要向SQL Server插入批量数据,然后在存储过程中对这些数据进行进一步处理的情况.存储过 ...

  4. PHP 闭包函数 function use 使用方法实例

    /** * @param string $hisStart * @param string $hisEnd * @param int $range * @param string $format * ...

  5. hdu 5045 Contest(状态压缩DP)

    题解:我们使用一个二位数组dp[i][j]记录进行到第i个任务时,人组合为j时的最大和(这里的j我们用二进制的每位相应一个人). 详细见代码: #include <iostream> #i ...

  6. .net下几种常用的对称加解密

    加密解密算法,太常用了,可是实在忍受不了十次八次之后还是要重头写,总是能告诉我原来的算法不好用(实际是压根不会用)的情况,不如直接写出来,再有人要直接给他看看,也顺便记录下算法,方便下新手大众. DE ...

  7. JMeter 怎么保存登录状态

    在Recording Controller中添加一个HTTP Cookie Manager Recording Controller右键-->add-->config element--& ...

  8. Oracle中使用Entity Framework 6.x Code-First

    Oracle中使用Entity Framework 6.x Code-First方式开发 去年写过一篇EF的简单学习笔记,当时EF还不支持Oracle的Code-First开发模式,今天无意又看了下O ...

  9. kendo ui 单击取消编辑数据grid减少的原因和治疗方法的数据

    kendo ui单击取消编辑数据buttongrid数据缩减.原因grid编辑数据追打datasorce于data寻找阵列数据的存在.假定有不会加入,加入缺席. 首先一个样本: html代码: < ...

  10. 第7章 桥接模式(Bridge Pattern)

    原文 第7章 桥接模式(Bridge Pattern) 定义: 在软件系统中,某些类型由于自身的逻辑,它具有两个或多个维度的变化,那么如何应对这种“多维度的变化”?如何利用面向对象的技术来使得该类型能 ...