Hybrid混合式开发---回顾
一、前言
去年12月份开启了一个新项目--在线抓娃娃,就是让用户可以通过app去控制我们机房中的娃娃机来抓取娃娃。本项目开发半个月就紧急上线第一版本,中间经过2次大版本迭代,一个月不到就做到用户量超过10w+,后面也算做到了市场中的前三。这个项目也算是某个点间的红利,当我们决定做这个之前,市面上只有一两家产品,一个月之后,市面上就疯狂的出现了50多家,到如今应该有超过300多家了。
我先从非技术角度去看待这种模式的app:
1、新鲜的玩法,短期可以吸引大量用户;
2、让用户足不出户就可以抓娃娃,满足一些喜欢抓娃娃人群的诉求;
3、用户留存率低,一般用户就是在获取免费金币进来玩一把,然后就不会再来了,所以还得通过各种手段吸引用户来,提高付费率;
4、需软硬件结合,打通之后还需专门人员维护机器;
5、需要仓储、物流等各方面,没有这方面经验的team可能会踩很多坑;
结合这个项目,说一说我在前端部分的工作,以及后面遇到的坑,以及填坑之路,后续项目有什么心得的也会慢慢添加进来;
二、前端负责的工作
技术栈:ES6 + vue + webpack
实现模块:个人中心 + 产品详情中心 + 客服反馈模块 + 发货模块 + 订单管理 + h5支付 + 渠道推广(邀请码) + 仿造app的h5站点 + 小程序为公众号引流
说明:
1、 h5支付一种使用app里面h5生成支付订单,然后调用后台原生支付;app外的支付常用微信支付提供的API;
2、 仿造app的h5站点能实现app的大部分功能,包括抓娃娃操作等;
3、 小程序为公众号引流是临时加班开发一版拜年小程序,对页面进行跳转客服中心埋点,自动回复公众号的文章链接,进入即有关注入口(真是套路无处不在啊~);
三、采坑之路
1、代码快速迭代引发发布冲突问题;
开始采用的是非覆盖式的版本管理方式,然后后面发布代码就特别头疼,要修改某个功能模块,导致公共的manifest文件变动,发布到线上就会影响到其他页面;可能开始技术选型没有做好,后面只能中途改用非覆盖式的版本管理方式;
对于项目构建这一块,我们前端组也在一直摸索,旧项目我们采用的php模板 + gulp +JQ,我们版本管理是使用费覆盖的形式,就是每次静态文件更新,就在用gulp在编译的时候自动添加版本号就ok了;
后面新项目在构建时候就采用了webpack + vue + ejs,当然后台还是php提供接口支持,期初我们还是把旧项目的版本管理方式移植过来,后面就慢慢曝露这种实现方式的问题;进而修改为非覆盖式的方式;
开始我们采用的是开发环境编译,最后把所有代码都提交到服务器,这样也是可以的,但是提交太多。最后改成服务端编译,但是这个又暴露出一个问题,为了要保持本地环境和服务环境一样,我们要同时维护两个环境保持一致。
现在打算用集成开发模式,单独一台编译服务器,用gitLab及时触发并同步起来。目前正在进行中。。。
2、打包问题
由于路由页面比较多,引用模块文件可能比较大,尽可能讲js代码打包成小块,使用require.ensure按需加载等;
3、首屏白屏问题
添加各种零星优化方案之后,loading、减小代码体积、合并接口、cdn加速缓存。。。首屏还是会有可能白屏情况;
找了几种实现方案,但是还是没有添加进去
(1)做个资源预加载,将你的项目分好模块,分批次进行预加载。
(2)使用骨架屏,刷微博时候,如果网页出来比较慢,显示可以看到一个骨架图占位;《为vue项目添加骨架屏》
(3)vue-ssr,做成服务端渲染,具体还看实际情况吧。
Hybrid混合式开发---回顾的更多相关文章
- Android混合式开发(Hybrid)
安卓混合式开发(Hybrid) 1 环境搭建 1.1 首先,下载 Android Studio (Intellij Idea) 下载地址:http://www.android-studio.org/ ...
- hybrid app开发中用到的html5新特性localStorage、sessionStorage和websql database
近期在项目中进行hybrid app开发,项目中有大量的js代码执行在android设备上. 使用到了非常多HTML5的新特性,之前没有遇到过,不了解.这里记录下添加点前端的知识.混合式app开发中. ...
- HBase应用开发回顾与总结系列之一:概述HBase设计规范
概述 笔者本人接触研究HBase也有半年之久了,虽说不上深入和系统,但至少算是比较沉迷.作为部门里大数据技术的探路者,笔者还要承担起技术传播的职责,所以在摸索研究的过程中总是不断地进行总结和测试, ...
- 【Hybrid App】Hybrid App开发实战
[引言]近年来随着移动设备类型的变多,操作系统的变多,用户需求的增加,对于每个项目启动前,大家都会考虑到的成本,团队成员, 技术成熟度,时间,项目需求等一堆的因素.因此,开发App的方案已经变得越来越 ...
- 【Xamarin挖墙脚系列:使用Xamarin进行Hybrid应用开发】
原文:[Xamarin挖墙脚系列:使用Xamarin进行Hybrid应用开发] 官方地址:https://developer.xamarin.com/guides/cross-platform/adv ...
- 【Hybrid App】Hybrid App开发 四大主流移平台分析
转自http://dev.yesky.com/238/34657738.shtml Hybrid App在过去的两年中已经成为移动界的核心话题,但是作为一名Web开发者来说要如何站在移动互联网的浪潮之 ...
- Hybrid App 开发模式
开发移动App主要有三种模式:Native. Hybrid 和 Web App. 需要注意的一点是在选择开发模式的时候,要根据你的项目类型(图片类?视频类?新闻类?等),产品业务和人员技术储备等做权衡 ...
- Hybrid App 开发初探:使用 WebView 装载页面
Hybrid App 是混合模式应用的简称,兼具 Native App 和 Web App 两种模式应用的优势,开发成本低,拥有 Web 技术跨平台特性.目前大家所知道的基于中间件的移动开发框架都是采 ...
- [目录]hybrid app 开发实战(基于ionic,cordova,angularjs)
序:为什么要写这个系列 第一章:hybrid app开发之技术选型 第二章:ionic,cordova,phonegap关系浅析 第三章:ionic环境搭建之windows篇 第四章:ionic环境搭 ...
随机推荐
- Android-Java卖票案例-推荐此方式Runnable
上一篇博客 Android-卖票案例static-不推荐此方式,讲解了卖票案例是 private static int ticket = 10;,static静态的这种方式来解决卖票多卖30张的问题, ...
- Python: 读写Excel(openpyxl / win32com.client)
项目周报汇报的时候要做数据汇总,总是要从不同的excel文件中去获取数据最后汇总到一个excel表里面,所以决定用python直接写个自动化脚本来自动执行. 用python来读写excel,目前找了2 ...
- net_framework-EF CodeFirst
CodeFirst——手动创建POCO类(Plain Old CLR Object,即平时认识的ado.net实体类),类之间的关系使用代码定义.当应用程序首次执行时,EF将在数据库服务器中自动生成数 ...
- JSON 数据转成Table
public static DataTable JsonToDataTable(string strJson) { //转换json格式 strJson = strJson.Replace(" ...
- Windows Phone中解决多模块多程序集之间相互循环引用的问题一种思路
Windows Phone中解决多模块多程序集之间相互循环引用的问题一种思路 那就是利用mvvmlight中的messager组件(可单独提取出),制作双向的一个消息发送.通过公共的类的定义,来传递数 ...
- easyui-layout系列之布局(1)
1.Layout布局 通过 $.fn.layout.defaults 重写默认的 defaults. 布局(layout)是有五个区域(北区 north.南区 south.东区 east.西区 wes ...
- UCS2-little endian转码(utf16)
public static void readFile(){ BufferedReader in = null; try { in = new BufferedReader(new InputStre ...
- 80端口被系统进程PID-4占用解决办法
今天因为工程需要就把tomcat服务器的端口改成了80了,可是一启动就出现问题了 发现报错信息是端口占用了,于是我马上就在了命令行敲入了netstat -ano查看端口占用情况 终于发现是PID为4的 ...
- hdoj1180 诡异的楼梯(bfs+奇偶判断)
手癌!日常手癌!被自己气死! #include<iostream> #include<cstring> #include<queue> #include<al ...
- IntelliJ IDEA配置maven3.3.3+mybatis3.1.1
注:本文参考了孤傲苍狼关于MyBatis学习总结,在此表示感谢,原文链接为http://www.cnblogs.com/xdp-gacl/p/4261895.html. 1.新建project,勾选c ...