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环境搭 ...
随机推荐
- [leetcode] 20. Valid Sudoku
这道题目被放在的简单的类别里是有原因的,题目如下: Determine if a Sudoku is valid, according to: Sudoku Puzzles - The Rules. ...
- 【Win10】开发中的新特性及原有的变更
声明:本文内容适用于 Visual Studio 2015 RC 及 Windows 10 10069 SDK 环境下,若以后有任何变更,请以新的特性为准. 一.Password 控件的小眼睛属性的变 ...
- c++日志输出库 spdlog 简介(3)多线程控制台输出日志
spdlog源码分析:https://www.cnblogs.com/eskylin/p/6483199.html spdlog的异步模式使得spdLog可以支持多线程,于是写了一个多线程的小例子: ...
- vue+webpack学习连接地址
vue.js+webpack模块管理及组件开发 http://geocld.github.io/2016/03/14/vuejs_webpack/ 30分钟手把手教你学webpack实战 https: ...
- SSE sqrt还是比C math库的sqrtf快了不少
#include <stdio.h> #include <xmmintrin.h> #define NOMINMAX #include <windows.h> #i ...
- 【cocos2d-x 手游研发小技巧(2)循环无限滚动的登陆背景】
原创文章,转载请附上链接:http://www.cnblogs.com/zisou/p/cocos2d-xARPG6.html 首先让大家知道我们想要实现的最终效果是什么样的? 看一个<逆天仙魔 ...
- 记录初学Spring boot中使用GraphQL编写API的几种方式
Spring boot+graphql 一.使用graphql-java-tools方式 <dependency> <groupId>com.graphql-java-kick ...
- Python(网络基础)
day33 参考:http://www.cnblogs.com/linhaifeng/articles/5937962.html IP协议: 规定网络地址的协议叫ip协议,它定义的地址称之为ip地址, ...
- 图片后门恶意捆绑工具FackImageexploer
本文作者:夜莺 今天向大家提个醒,最近有一款工具名叫FackImageexploer,该工具能够将恶意的.bat和.exe程序与图片绑定在一起,假若受害者点击了图片,就会反弹个shell给不法分子,如 ...
- 实现一个算法,寻找字符串中出现次数最少的、并且首次出现位置最前的字符 如"cbaacfdeaebb",符合要求的是"f",因为他只出现了一次(次数最少)。并且比其他只出现一次的字符(如"d")首次出现的位置最靠前。
实现一个算法,寻找字符串中出现次数最少的.并且首次出现位置最前的字符如"cbaacfdeaebb",符合要求的是"f",因为他只出现了一次(次数最少).并且比其 ...