# EFOS_APP **Repository Path**: Hy_Lee/EFOS_APP ## Basic Information - **Project Name**: EFOS_APP - **Description**: 智慧物联网APP应用 - **Primary Language**: TypeScript - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2019-12-12 - **Last Updated**: 2020-12-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # EFOS_APP_3.0 (__Created 20191030__) ## 技术栈 - [Angular7](https://angular.cn/) - 特点:一套框架,多种平台(Web、移动 Web、移动应用、原生应用和桌面原生应用) - 重要知识点:依赖注入、组件、指令、管道、Observable....... - 模式:MVVM框架、模块化、自动化双向数据绑定 - [ionic4.x](https://ionicframework.com/docs/) - 特点:开发混合模式的移动APP开发框架 - 优势 - 全套UI组件库 - 基于angular易维护 - 支持跨平台 - 强大的社区 - [cordova](https://cordova.apache.org/) - 定义:开源的跨平台移动开发框架 - 功能:提供了一组设备相关的API,通过这组API,移动应用能够以JavaScript访问原生的设备功能 - [scss](https://www.sass.hk/) - scss 是 sass 3 引入新的语法 - 提供变量,嵌套,混合,通过函数进行颜色值与属性值的运算等强大功能 - [echart](https://www.echartsjs.com/zh/index.html) - 基于canvas技术的数据图形化插件 - 其它:[java](java.com/zh_CN/)、[swift](https://developer.apple.com/swift/) ## 开发软件 - Android - `Visual Studio Code`|| `webstorm` 建议使用`Visual Studio Code`,功能扩展性强,界面友好,代码调试,集成终端 - `Android Studio`(copy by pengkobe) 这个工具必装,主要有以下好处 - 可以查看原生代码报错但没有反馈回 JS 控制台的问题,比如某些 jar 包没有引入或者路径不对等等 - 可以用来查看 Android 日志,这其中日志比控制台全而且详细 - 可以用来修改 Cordova 插件代码,并且实时断点调试,当然,这个工具要比 eclipse 还是好用得多 - IOS `Visual Studio Code`&& `xcode` ## 环境搭建 - Android - jdk([安装](https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html)+[配置环境变量](https://jingyan.baidu.com/article/6dad5075d1dc40a123e36ea3.html)) - android sdk - 设置代理下载:http://www.androiddevtools.cn - 精简原则: - Android SDK Platform-tools(平台) - Android SDK Build-tools(编译) - APIXX: SDK Platform(编译依赖版本) - Android Support Repository - Google Repository - node(版本10.x.x以上) - cordova - ionic - IOS - xcode - ionic ## 文件目录 - **|—— e2e** (ionic4.x中端对端测试文件) - **|—— fastlane** (ios自动化工具集) - **|—— hook** (Cordova生命周期钩子) - **|—— node_modules** (项目所需要的依赖包) - **|—— platforms** (生成android或者ios安装包需要的资源) - **|—— plugins** (插件文件夹,里面放置各种cordova安装的插件) - **|—— resources** (android/ios 资源(更换图标和启动动画)) - **|—— sh** (脚本文件(一键构建等)) - **|—— src** (开发工作目录) - **|—— app** (应用根目录) - **|—— components** (组件库) - **|—— core** (统一管理系统中通用服务) - **|—— directives** (指令(图片懒加载...)) - **|—— modals** (模态框库) - **|—— pages** (页面入口) - **|—— pipes** (管道(数据转换)) - **|—— services** (服务(数据访问)) - **|—— shared** (共享模块,常用的组件指令统一一个模块,方便导入) - **|—— tabs** (底部栏模块) - **|—— app-routing.module.ts** (主程序组件路由) - **|—— app.component.html** (主程序组件模版) - **|—— app.component.spec.ts** (主程序组件单元测试文件) - **|—— app.component.ts** (主程序组件启动控制) - **|—— app.module.ts** (模块文件,用来全局导入声明模块组件和服务等) - **|—— codepush.constants.ts** (热更新配置文件) - **|—— assets** (资源目录(静态文件:图片/音频...)) - **|—— environments** (每个环境对应的配置) - **|—— theme**(主题文件,里面有一个scss文件,设置主题信息) - **|—— global.scss**(全局样式文件) - **|—— index.html**(index入口文件) - **|—— karma.conf.js**(测试相关的配置文件) - **|—— main.js**(应用的主要入口点) - **|—— polyfills.ts**(浏览器对 Web不同点进行标准化) - **|—— test.ts**(单元测试的主要入口点) - **|—— tsconfig.{app|spec}.json**(TypeScript编译器的配置文件。app是为Angular应用准备的,而spec是为单元测试准备的。) - **|—— www** (ionic4.x中静态文件,ionic build --prod 生成的单页面静态资源文件) - **|—— .gitignore** (git提交时排除文件) - **|—— angular.json** (angular配置文件) - **|—— config.xml** (打包成app的配置文件,权限控制) - **|—— Gemfile** (定义fastlane依赖) - **|—— getApiConfig.js** (获取接口配置js) - **|—— ionic.config.json** (ionic配置文件) - **|—— package.json** (配置项目的元数据和管理项目所需要的依赖) - **|—— pgyer_upload.sh** (蒲公英上传脚本) - **|—— README.md** (项目介绍) - **|—— tsconfig.json** (TypeScript项目的根目录,指定用来编译这个项目的根文件和编译选项) - **|—— tslint.json** (格式化和校验ts配置) ## CLI 依赖安装:`npm install` 添加平台:`ionic cordova platform add <平台>` - 平台:android/ios/cordova-electron 开发环境:`ionic serve` 生产环境: - Android:`npm run build <环境?> <版本号?>` - 环境:alpha/beta/prod,不填则默认alpha - 版本号(示例):0.0.1/1.1.0,不填则默认上一次版本号 - IOS:`ionic cordova build ios` 环境切换:`npm run checkout <环境?>`(only android) - 环境:alpha/beta/prod,不填则默认alpha 查看设备连接是否成功:`adb devices` ## 版本控制 - 开发分支(Develop) - 作用:框架性的开发与短期迭代开发 - 注意:Feature分支、Release分支,Hotfix 分支上的代码修改,都应该合并至此分支 - 功能分支(Feature) - 作用:新功能开发 - 来源:从master拉取 - 命名规范:feat-{版本号}-{功能描述} - 合并成功后,可以删除该分支 - 发布分支(Release) - 作用:对应发布版本的所有bug 都须在此分支上进行修复 - 来源:从Develop拉取 - 命名规范:release-{版本号}-test - 合并成功后,可以删除该分支 - 主分支(Master) - 作用:Release 分支上 bug 修复完成后合并到 Master分支 - Tag命名规则:{版本号}-年-月-日 - 线上修复分支(Hotfix) - 作用:此分支从 Tag上拉取,用于修复线上发现的紧急 bug - 来源:tag - 命名规范:hotfix-{版本号} -{bug描述} - 修复线上 bug 后,要将代码合并至 Develop 分支与 Master分支 ## 发布 ## 开发注意事项 ## Jenkins 环境变量 1. PGYER_APIKEY 2. PGYER_USERKEY 3. GITHUB_PWD