为了提升APICloud App的程序质量、性能及用户体验,同时也为了统一团队代码风格,优化团队协作效率,特制定及推出本规范。
本规范基于APICloud项目编码规范编制,属于APICloud项目编码规范的升级版本。本规范适用于通过APICloud平台开发App项目的开发实施团队,作用于软件项目开发阶段和后期维护阶段。
1.基本原则
项目的widget包结构应遵循APICloud官方模板提供的结构体系,即初始项目应包含有css、html、script、image、res等文件夹,应用文件应严格按照文件属性归档到对应的文件夹内。具体如下:
css目录下放外部样式文件,“.css”文件应全部放置于css文件夹内;
html目录下放页面代码,“.html”文件应放置于html文件夹内;
script目录下放外部脚本文件,“.js”文件应放置于script文件夹内;
image目录下放组成UI的图标、背景图等;
res目录下放其他用到的资源,项目内正式使用的资源类文件,如音频、视频及其他格式文件应放置于res文件夹内;
icon文件夹用来存放App图标,主要用于测试版本使用,应在编译正式上架版本前删除;
launch文件夹用来存放App欢迎图,主要用于测试版本使用,应在编译正式上架版本前删除。
出于测试目的,添加的测试图片、音频、视频等文件应单独创建文件夹放置,并在编译正式上架版本前删除。
APICloud应用与一般前端Web页面不同,用于单独页面的CSS样式代码和JS代码建议直接在该页面的html文件内写入,不需要将代码分离出来单独创建与文件同名的“.css”和“.js”文件。
基于上条原则,CSS文件夹主要放置可被多个页面引用的通用样式的“.css”文件;js文件夹主要放置可被多个页面引用的公用“.js”文件或功能独立可复用的“.js”文件。
原则上不要修改项目创建时自动建立的官方api.css和api.js文件,以防该文件在后续出现迭代版本时无法顺利替换迭代。
2.使用APICloud 5大组件(Widget、Layout、Window、Frame、UIModules)进行App的UI架构设计
项目窗口应使用Window+Frame的结构,静态的、无需频繁更新的title和导航栏、页脚等部分放在Window中,需要实时更新,响应用户操作的放在Fra-me中。
SPA的模式不适合App开发,DIV+JS的窗口切换影响用户体验。APICloud的UI结构设计可以从整体上解决H5在Interaction、Animation和Render方面的性能问题。
3.多个高度一致,位置一致的窗口应使用frameGroup
使用frameGroup可以提高一组Frame之间互相切换的性能及体验。
建议使用frameGroup来实现Frame的切换,要按需合理配置预加载的Frame数量,每个Frame要有明显的刷新机制,不能每次切换都进行刷新和重绘。
4.使用api方法打开窗口
使用api.openFrame/api.openFrameGroup时,应使用auto结合margin布局,这样Frame页面高度就会动态跟随在屏幕高度变化。
App在不同的手机上运行会出现屏幕尺寸发生变化的情况。如iPhone手机共享热点时,会占用页面顶部空间;华为手机的虚拟按键会占用页面底部空间等。这些导致屏幕高度发生变化的事件都有可能在Frame页面打开以后发生,如果不使用margin布局,就会出现页面显示错误,导致项目漏洞产生。