优雅「快应用」开发姿势 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
jeffjade
V2EX    程序员

优雅「快应用」开发姿势

  •  1
     
  •   jeffjade
    nicejade 2018 年 11 月 14 日 2129 次点击
    这是一个创建于 2669 天前的主题,其中的信息可能已经有所发展或是发生改变。

    快应用是基于手机硬件平台的新型应用形态,标准是由主流手机厂商组成的快应用联盟联合制定。其标准的诞生将在研发接口、能力接入、开发者服务等层面建设标准平台,以平台化的生态模式对个人开发者和企业开发者全品类开放。快应用具备传统 APP 完整的应用体验,无需安装、即点即用覆盖 10 亿设备与操作系统深度集成,探索新型应用场景快应用──复杂生活的简单答案,让生活更顺畅

    快应用脚手架模板

    目标与哲学

    快应用是一种新型的应用形态,由国内九大手机厂商基于硬件平台共同推出;秒开即点即用,更易于应用的传播和留存,可以为用户提供更高效的服务。在可预见的未来,其将有不错的应用场景和发展空间。此quickapp-boilerplate-template仓库的建立,旨在探索如何更为优雅的开发快应用,为广大快应用开发者提供便利和参考,尽可能提升开发效率、优化开发体验,使得可以在更短时间内,塑造出更为优质的快应用。关于快应用开发更详细资料,可参见快应用教程资源列表

    组织结构

    quickapp-boilerplate-template: 致力于构建更为优雅的快应用开发脚手架模板。

    ├── sign # 存储 rpk 包签名模块; │ ├── debug # 调试环境证书 /私钥文件 │ └── release # 正式环境证书 /私钥文件 └── src │ ├── assets # 公用的资源(images/styles/字体...) │ │ ├──images # 存储 png/jpg/svg 等公共图片资源 │ │ ├──js # 存储公共 Javascript 代码资源 │ │ └──styles # 存放 less/css/sass 等公共样式资源 │ ├── helper # 项目自定义辅助各类工具 │ │ ├──apis # 存储与后台请求接口相关(已封装好) │ │ ├──ajax.js # 对系统提供的 fetch api 进行链式封装 │ │ └──utils # 存放项目所封装的工具类方法 │ ├── pages # 统一存放项目页面级代码 │ ├── app.ux # 应用程序代码的人口文件 │ └── manifest.json # 配置快应用基本信息 └── package.json # 定义项目需要的各种模块及配置信息 

    如何使用

    git clone https://github.com/nicejade/quickapp-boilerplate-template.git cd quickapp-boilerplate-template && yarn yarn start # 推荐 # 或者运行以下命令 yarn server & yarn watch # 或者在终端一 Tab 下运行: yarn server # 在终端另一 Tab 下运行: yarn watch 

    用一台Android手机,下载安装「快应用」调试器,打开后操作扫码安装,扫描如上命令生成的二维码,即可看到效果;更多讯息,请参见快应用环境搭建

    改进优势

    有必要谈及的是,此项目秉承在高效开发 Web 单页应用解决方案中所传递的理念:为高效开发而设计;相比于其内置简陋而凌乱的 Demo,这份脚手架做了以下诸多改进:

    • 对项目结构进行优化;如上组织结构所示,将各资源模块,更专业的分门别类,使之可以便捷的去编写、维护、查找,同时也是基于前端开发既定共识去设计,更容易为初接触者所理解 & 上手;
    • 更优雅的处理数据请求;采用Promise对系统内置请求@system.fetch进行封装,并抛出至全局,使得可以极简的进行链式调用,同时便捷地处理返回数据;
    • 内置了样式处理方案;「快应用」支持less,sass的预编译;这里采取less方案,并内置了部分变量,以及常用混合方法,使得可以轻松开启样式编写、复用、修改等;
    • 封装了常用方法;在helper/utils路径下,有对日期、字符串、系统等常用方法,分别进行封装,统一暴露给global.$utils,使得维护方式更加合理且健壮,同时又可以便捷的使用,高效开发;当然,你也可以根据需要自行增删、抑或扩展;
    • 简化开始开发流程; 注入Concurrently插件,使可以运行yarn start即可开始开发,而无需更多命令,从而简洁开发流程;
    • 优化本地开发端口设定;「快应用」默认端口为12306,虽说可自定义端口,但使用体验却不够友好;此处参考creat-react-app设定,对本地开发地址端口使用进行优化:如果 定端口(默认:8080)被占用,则向上递增寻找新的可用端口(如:8081 / 8082 / … );
    • 浏览器打开调试主页二维码;运行yarn start,会启动 HTTP 调试服务器,并将该地址在命令行终端显示,手机端用快应用调试器扫码,即可下载并运行 rpk 包;当终端积累的信息流多了,就造成扫码不便;故增设在浏览器打开调试主页二维码;如想不使用此功能,在_command/server.js_文件中,将autoOpenBrowser设置为false即可;
    • 集成轻粒子统计分析轻粒子作为官方推荐统计方案,此脚手架已做接入;使用时只需修改statistics.config.js中的app_key,为在轻粒子所申请的快应用 KEY 即可;
    • 集成Prettier&Eslint;在检测代码中潜在问题的同时,统一团队代码规范、风格(jslessscss等),从而促使写出高质量代码,以提升工作效率(尤其针对团队开发)。
    • 编写prettier-plugin-quickapp插件;为快应用编写prettier插件,使其可以针对.ux/.mix文件也能很好地工作,从而进一步完善代码风格及规范。
    • ... ...

    相关链接

    原文出处:静晴轩别苑
    原文首发:快应用脚手架,为优雅而生

    @2018-11-11 于深圳.福田 Last Modify:2018-11-11


    同类型文章

    目前尚无回复
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2762 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 36ms UTC 14:47 PVG 22:47 LAX 06:47 JFK 09:47
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86