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环境搭 ...
随机推荐
- 在centos7升级jenkins
找到jenkins的位置 使用下面的命令 ps -aux | grep jenkins enkins 5954 7.9 22.5 2695800 421088 ? Ssl 20:5 ...
- 基于C#语言MVC框架Aspose.Cells控件导出Excel表数据
控件bin文件下载地址:https://download.csdn.net/download/u012949335/10610726 @{ ViewBag.Title = "xx" ...
- SSRS (一)创建基础报表
ReportService创建基础报表 1.数据库SQL Server2012选择SQL Server Data Tools 2.创建商业智能(BI)项目 选择报表服务器项目 ReportServic ...
- poj 3250 Bad Hair Day(栈的运用)
http://poj.org/problem?id=3250 Bad Hair Day Time Limit: 2000MS Memory Limit: 65536K Total Submissi ...
- 浏览器对HTTP请求的编码行为
浏览器对请求的URL编码行为 浏览器会对请求的URL中非ASCII码字符进行编码.这里不是指对整个URL进行编码,而是仅仅对非ASCII码字符部分进行编码,详情请看下面的实验记录. 实验一:在URL参 ...
- Weekly Contest 128
1012. Complement of Base 10 Integer Every non-negative integer N has a binary representation. For e ...
- MySQL中整型和字符串类型指定长度的含义
引入: int(5)和char(5)或者varchar(5)中的数字指的是什么意思?是字节数,还是字符长度?为什么在整型中指定了int(5)却可以输入123456? 答案是后者,不管是整型还是字符串类 ...
- python操作mongodb实例
安装pymongo扩展 import pymongo; client = pymongo.MongoClient(host='10.48.176.170',port=27017); db = clie ...
- Flask从入门到精通之在视图函数中处理表单
在新版hello.py 中,视图函数index() 不仅要渲染表单,还要接收表单中的数据.更新后的index() 视图函数如下: @app.route('/') def index(): name = ...
- [Swift实际操作]七、常见概念-(4)范围CGRect的使用详解
本文将为你演示区域对象CGRect的使用.你可以将区域对象,看作是点对象和尺寸对象的组合 首先导入需要使用到底界面工具框架 import UIKit 然后初始化一个区域对象,它的原点位于(0,0),宽 ...