:iphone: 一套 Vue 代码,两端原生应用。
Based in Weex and Vue.
Support By Bytemaster.
eros 不是框架,是基于 weex 封装、面向前端的 vue 写法的一整套 APP 开源解决方案。
目前 eros 均由来自美团,今日头条,DCloud 等数十个开发者组成的 Bytemaster 公益开源团队 来共同维护,如果您想加入我们,或者有好的开源项目寻求平台,不妨联系我们,加入我们(完全免费)。
简单来说,在 weex 提供的强大支持下,用一份 vue 写法的代码,编译成 iOS/Android 两端原生 APP,并且通过我们内置的热更新逻辑和开源的服务器逻辑,可以使开发者以极快的速度开发 APP ,并赋予 APP 热更新能力(不用经过 appStore/android market 市场审核)。
那么 eros 开发有多快呢?我们收集了一些问卷,在复杂度不高,首次使用 eros 开发的某些场景下:
页数 | 开发周期统计 |
---|---|
0 - 50 | 最晚一个月开发完成 |
50 - 100 | 最晚两个半月开发完成 |
当然,这都得益于 weex
和 vue
。
要非常注意,eros/weex 并不太适合无客户端能力的个人或者团队,当然也有独立前端开发者使用 eros 做出了一定复杂度的 app,这完全取决于开发者能否有独立解决问题的能力,请谨慎思考。
首先你需要熟悉 weex 的基础 api,部分机制和与 web 开发的差异性,同时需要知道 eros 提供了哪些原生能力,在根据自身业务来判定是否能加入到技术选型。
- 实时交互性,与键盘交互等功能复杂度不高的项目。
- 在 app 中接入 eros/weex,让某条业务线的部分流程达到快速迭代的目的,这也是 weex 的初衷。
开发者可以扫描二维码来下载 eros app 来进行体验,iOS首次打开App需要在 设置->通用->设备管理 信任开发证书。
Eros iOS demo | Eros Android demo |
---|---|
【预览录屏】 | 【预览录屏】 |
【下载链接】 | 【下载链接】 |
请详细阅读以下须知
- 虽然 weex 支持三端,但 eros 只支持两端
iOS/Android
,意味着你不可以像开发 Web 那样开发 APP。 - 开发者必须熟练开发 Vue,熟悉 Weex 文档,遇到问题要善于 google 和
stackoverflow
- weex 虽然提供了
weex run android/ios
等指令让开发者不打开对应开发者工具(AndroidStudio, xcode)来直接运行模拟器,打包到真机上开发,但 eros 并没有做相关功能,原因是每次修改eros.native.js
配置文件也好,每次添加客户端三方插件也好,包括各种日志(特别崩溃日志)等使得开发者不得不操作开发者工具来进行打包和调试,而如若没有详细的日志,在出了问题之后也无法搜寻或者向我们反馈。
暴露给前端大量便捷实用的 原生能力 ,拓展了 非常有用的事件 。
- 路由
- 原生事件
- 本地化存储
- 发布订阅
- Restful 请求,支持 Cookie
- 图片处理
- 拍照上传
- 浏览图片
- 操作本地图片
- 拨打电话
- 发短信
- 选择联系人
- 定位
- 原生弹窗
- 拷贝
- 扫一扫
- Echart
- 日历
- Bindingx
- 手势解锁
- 访问本地图片,html等
- ...
eros 在重做插件化后目前 github 上已经开源了近 20 多个由开发者自行拓展的插件,非常感谢这些开发者的支持并开源,当您使用他人拓展的插件时希望能顺便给他们一个小小的 star 。
- 个推
- 支付宝
- 微信支付
- 微信分享
- 友盟分享
- 阿里云移动推送(android)
- 腾讯防水墙
- 高德地图
- 日期选择增强
- 网络监控插件
- 安卓端增强(文件的查看,下载,预览;本地缓存的获取,清除;跳转至应用市场评分页;获取软键盘的高度)
- 二维码插件
- 短信验证码插件
- 健康相关,步数统计插件
- 刮刮卡,抽奖插件等等
具体可在 github
搜索 eros-plugin
查阅。(https://github.com/search?p=1&q=eros-plugin&type=Repositories)
而在纯净(pure)的开发模板中,是没有地图,个推等三方插件的,eros 有自己的插件体系,使得开发者在需要的时候,写入几行代码即可,不引用就不打包,减少安装包的大小,pure 纯净版本只有 10 MB 出头。
- 详细的文档
- iOS/Android 模拟器/真机热刷新(区别于热更新,热刷新是保存即刷新 APP)
- 支持
weex debug
- 一套 Vue 代码,两端原生应用
- 通过
appboard JS bundle
极大的减少了公共代码冗余 - 为大型项目内置了中介者服务,方便管理业务间的事件交互
脚手架 eros-cli:
- 随时初始化最新的开发项目模板。
- 简单而且快速的依赖更新。
- 支持生成内置包,全量包,增量包。
- 支持随时更新模板内容。
- 支持 Weex 两种入口开发方式
JS/Vue
。 - 内置与增量服务器的交互逻辑。
由于 Weex 的机制,我们能在远端发布代码,客户端更新并生效,并不需要审核发布流程,给 APP 提供了强大的迭代动力。
使用 UI 库,开发效率也会大大提升:
我们也有热心的开发者分享了现有 app 接入 eros 的方案:
在 EROS 开源的一年时间,已帮助上千位开发者开发了属于自己的原生应用,支持了数百个 app,如:
- 金宣公寓
- 多利农庄
- mmphoto
- StarLife
- 大嘴吧拼读
- 韩语入门-早道网校
- 德语入门-早道网校
- 赢商大数据
- 多逛逛
- 区块学院
- 易送
- 蜂觅
- JEX
- 1234TV
- FoD chain
- 博山头条
- 新长宁慧生活
- 辽河油田
- 连云港政协
- 连云港古树
- 亿康通
- 本木医疗助手
- 本木医生助理
- 京医通 APP
- ...
涉及行业分布于区块链、资讯、医疗、招商、购物、政府、办公、直播等各行各业。
同时也有越来越多的团队加入到 eros 开发和讨论行列:
StarLife
大前端团队早道网校
大前端团队车保姆
大前端团队车国
大前端团队
跟随着 weex 的支持性,但 eros 并不支持开发代码兼容 web 端
- Android 4.1 (API 16)
- iOS 8.0+
- WebKit 534.30+
以下项目,全部开源:
Project | Description |
---|---|
eros-cli | 简单的 eros 项目构建工具,可以提供搭建,开发,调试和发布等功能。 |
eros-publish | 简单的服务器差分包更新逻辑,需要和脚手架搭配使用。 |
eros-widget | 二次封装 module。 |
eros-ios-library | eros ios Weex 项目依赖库。 |
eros-ios-sdk | eros ios Weex sdk。 |
eros-android-framework | eros weex 移动解决方案安卓端框架。 |
eros-android-widget | eros 安卓组件库。 |
eros-android-sdk | eros 安卓移动解决方案安卓端 WeexSDK。 |
你还可以尝试其他开发者贡献的服务器增量发布逻辑:
当然,开发者可以自己制作自己的发布逻辑。
eros 正式开源到现在已经有了一个拥有大量开发者的群(微信群已满),群里有大量开发者已经有 eros 产品在开发中和已上线,为了维护一个良好的环境,还请先熟知以下群规:
- 此并不是流量群,也并非广告群,是为了大家一起成长,保证信息的有效性,如果发黄赌毒,不和谐言语,与学习无关的广告,推广内容,无关小程序,不会商量,直接会被踢,且不会再有入群机会。
- eros开发中遇到任何问题可以随时发到群里 weex开发相关可以一起讨论。
- 如果不能及时回答也请耐心等待,群里开发丰富经验的同学会帮您一起看问题。
- 除了 eros 自身紧急 BUG 外的问题,均需要提 issue,我们会按 issue 处理,目的是为了更好的给其他开发者参考,紧急问题请直接抛到群里,我们会直接远程帮助您调试。
QQ群:
开发者1群 667379588 (满员)
开发者2群 798677297
感谢在
eros
开源过程中赞赏我们的开发者,你们一直是eros
继续下去的最大动力!
以下是部分 eros 产品的使用截图,我们会进行不定期更新:
Copyright (c) 2017-present, Byte Master.