Giter Club home page Giter Club logo

eros-docs's Introduction

介绍

eros 是基于 weex 封装面向前端的 vue 写法的解决方案,由于 app 开发的特殊性,eros 则更偏重关心于整个 app 项目。

Android download QR code
android 下载

开发者可以扫描二维码来下载 Android 版本 eros app 来进行体验,iOS 请自行按照教程运行 demo 查看效果;

开发之前你需要知道

如果您是前端开发者:

  • 一定要熟练使用 vue 开发
  • 一定要详细阅读 weex 的文档,尤其是与 web 环境,vue 开发差异的部分。
  • 在开发客户端应用中,会有遇到无数的环境问题,程序问题,代码问题,绝大多数问题都可以在网上查到对应解决方案,在提出问题或者 issue 的时候,还请先自行尝试解决,eros 的环境安装会耗费很长的时间,你懂的。
  • 需要熟悉客户端开发打包流程。

很多前端开发者在环境问题上便半途而废了,不过 eros 会一直完善文档,开发群中也会有大量开发者为您解答,还请保持一颗有始有终的心,会有收获的。

如果您是客户端开发者:

那么环境您会迅速搭建起来,然后跟着熟读 vue,weex 的文档,因为 vue 上手非常快,最后跟着 eros 的新手教程写几个 demo 便可以开始开发,还可以轻松拓展 module。

必备知识

开发之前您需要学习 weex 知识,并且能熟练使用 vue 开发,文档地址如下。

支持性

跟随着 weex 的支持性,但目前我们并不支持开发代码兼容 web 端

  • Android 4.1 (API 16)
  • iOS 8.0+
  • WebKit 534.30+

eros 优点

eros 提供了:

  • 详细的文档来解决环境搭建过程中的坑。
  • 一套代码编译成 ios,android 两端原生应用。
  • 封装了大量 weex module,让前端开发方便进行原生的操作。
  • 支持大量 echart 实例运行。
  • 可以通过 appboard 机制来减少多页面项目中的代码冗余,减少包体积,并可以对其实时修改。
  • 内置了一套完整的 JS 二次封装 module (widget) ,直接通过 vue 插件系统注入,直接在 this 上调用,可根据业务自行修改。
  • 内置了中介者服务,来进行多个页面间的交互,并可以管理业务。
  • 内置了服务器端增量发布更新逻辑,可以搭配着开源的简易增量发布系统一起使用。
  • 支持真机和模拟器通过 weex debug 来断点调试,程序报错均会有报错日志弹窗提示。

可以通过脚手架:

  • 直接生成开发最新模板。
  • 启动服务进行实时开发效果查看和 debug 调试。
  • 更新开发平台所需 eros 依赖。
  • 直接 pack 对应平台内置 JS Bundle
  • 支持生成全量包,增量包,并内置与更新服务器交互逻辑。
  • 支持同步更新模板内容。
  • 支持 weex 的 vue 入口和 js 入口两种开发方式。

支持市面上流行的组件库:

eros 不足

eros 开发中也有很多限制,需要开发者自行斟酌。

  • 尽管 weex 支持编译三端,但 eros 目前不支持浏览器端,目前只会专注于原生。
  • eros 暂时不能自动使用 weex 市场,但如果您有原生开发经验可以自行接入。
  • 由于 eros 对 JS Bundle 运行机制采用了 appboard 机制来减少了 js bundle 的大小,导致 weex debug 需要特定的处理。
  • 如果遇到复杂的页面,如 IM 之类的,eros 建议用原生实现,weex 应付此类需求还是比较吃力。

原理视图

工作原理 大图地址

开源现状

目前 eros 已有数十个 app 在开发中和上线的状态,其中有正在开发中的国外应用 starLife(100+页面),也有国内正在开发的蜂觅(60+ 页面),还有已上线的应用都在 0-50+ 页面不等,涉及行业分布于资讯,招商,购物,政府,办公等等。

后续版本中会陆续展示优秀项目到首页,所以开发者大可放心,已基于 MIT 协议开源。

周边系统

Project Description
eros-cli 简单的 eros 项目构建工具,可以提供搭建,开发,调试和发布等功能。
eros-publish 简单的服务器差分包更新逻辑,需要和脚手架搭配使用。
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

License

MIT

Copyright (c) 2018-present, Byte Master Front End

eros-docs's People

Contributors

chenarno avatar chenqq86 avatar cnryb avatar duoduo7207 avatar hanliuxin5 avatar hejie20170930 avatar hminghe avatar hopkinson avatar jury09 avatar kang558 avatar karynsong avatar kernelj avatar myliuyx avatar overarchingsky avatar perseverancez avatar poerlang avatar qbmfe avatar sgssxf avatar shawn-tangsc avatar weue avatar wtowto7207 avatar xiaohuapunk avatar zqun avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

eros-docs's Issues

class绑定切换的时候安卓端后台或报异常

02-15 10:39:53.367 548-548/com.android.inputmethod.latin V/InputMethodService: onEvaluateInputViewShown: config.hardKeyboardHidden = 1 02-15 10:39:53.367 548-548/com.android.inputmethod.latin V/InputMethodService: onEvaluateInputViewShown: config.hardKeyboardHidden = 1 02-15 10:39:54.191 3332-3348/com.benmu.wx V/Color_Parser: java.lang.NullPointerException at com.taobao.weex.utils.WXResourceUtils$ColorConvertHandler$3.handle(WXResourceUtils.java:401) at com.taobao.weex.utils.WXResourceUtils.getColor(WXResourceUtils.java:246) at com.taobao.weex.utils.WXResourceUtils.getColor(WXResourceUtils.java:232) at com.taobao.weex.dom.WXTextDomObject.updateStyleImp(WXTextDomObject.java:305) at com.taobao.weex.dom.WXTextDomObject.updateStyleAndText(WXTextDomObject.java:281) at com.taobao.weex.dom.WXTextDomObject.layoutBefore(WXTextDomObject.java:184) at com.taobao.weex.dom.DOMActionContextImpl$1.accept(DOMActionContextImpl.java:206) at com.taobao.weex.dom.WXDomObject.traverseTree(WXDomObject.java:125) at com.taobao.weex.dom.WXDomObject.traverseTree(WXDomObject.java:132) at com.taobao.weex.dom.WXDomObject.traverseTree(WXDomObject.java:132) at com.taobao.weex.dom.DOMActionContextImpl.layout(DOMActionContextImpl.java:200) at com.taobao.weex.dom.DOMActionContextImpl.batch(DOMActionContextImpl.java:179) at com.taobao.weex.dom.WXDomManager.batch(WXDomManager.java:141) at com.taobao.weex.dom.WXDomHandler.handleMessage(WXDomHandler.java:86) at com.taobao.weex.common.WXThread$SafeCallback.handleMessage(WXThread.java:73) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:137) at android.os.HandlerThread.run(HandlerThread.java:60) 02-15 10:39:54.191 3332-3348/com.benmu.wx D/CLog: java.lang.NullPointerException at com.taobao.weex.utils.WXResourceUtils$ColorConvertHandler$3.handle(WXResourceUtils.java:401) at com.taobao.weex.utils.WXResourceUtils.getColor(WXResourceUtils.java:246) at com.taobao.weex.utils.WXResourceUtils.getColor(WXResourceUtils.java:232) at com.taobao.weex.dom.WXTextDomObject.updateStyleImp(WXTextDomObject.java:305) at com.taobao.weex.dom.WXTextDomObject.updateStyleAndText(WXTextDomObject.java:281) at com.taobao.weex.dom.WXTextDomObject.layoutBefore(WXTextDomObject.java:184) at com.taobao.weex.dom.DOMActionContextImpl$1.accept(DOMActionContextImpl.java:206) at com.taobao.weex.dom.WXDomObject.traverseTree(WXDomObject.java:125) at com.taobao.weex.dom.WXDomObject.traverseTree(WXDomObject.java:132) at com.taobao.weex.dom.WXDomObject.traverseTree(WXDomObject.java:132) at com.taobao.weex.dom.DOMActionContextImpl.layout(DOMActionContextImpl.java:200) at com.taobao.weex.dom.DOMActionContextImpl.batch(DOMActionContextImpl.java:179) at com.taobao.weex.dom.WXDomManager.batch(WXDomManager.java:141) at com.taobao.weex.dom.WXDomHandler.handleMessage(WXDomHandler.java:86) at com.taobao.weex.common.WXThread$SafeCallback.handleMessage(WXThread.java:73) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:137) at android.os.HandlerThread.run(HandlerThread.java:60) 02-15 10:39:54.203 3332-3348/com.benmu.wx D/LineHeight: 登录 ; start 0; end 2; spanstartv 0; v 0; fm FontMetricsInt: top=-41 ascent=-35 descent=9 bottom=11 leading=0 02-15 10:39:54.207 3332-3348/com.benmu.wx D/CLog: LineHeight:登录 ; start 0; end 2; spanstartv 0; v 0; fm FontMetricsInt: top=-41 ascent=-35 descent=9 bottom=11 leading=0 02-15 10:39:54.219 3332-3348/com.benmu.wx D/LineHeight: 登录 ; start 0; end 2; spanstartv 0; v 0; fm FontMetricsInt: top=-41 ascent=-35 descent=9 bottom=11 leading=0 02-15 10:39:54.219 3332-3348/com.benmu.wx D/CLog: LineHeight:登录 ; start 0; end 2; spanstartv 0; v 0; fm FontMetricsInt: top=-41 ascent=-35 descent=9 bottom=11 leading=0 02-15 10:39:54.223 3332-3348/com.benmu.wx D/updateDomObj: time:0 02-15 10:39:54.227 3332-3348/com.benmu.wx D/CLog: updateDomObj:time:0 02-15 10:39:54.231 3332-3348/com.benmu.wx D/weex: mInstanceId 15 batch used 44 02-15 10:39:54.231 3332-3348/com.benmu.wx D/CLog: weex:mInstanceId 15 batch used 44 02-15 10:39:54.247 3332-3332/com.benmu.wx V/Color_Parser: java.lang.NullPointerException at com.taobao.weex.utils.WXResourceUtils$ColorConvertHandler$3.handle(WXResourceUtils.java:401) at com.taobao.weex.utils.WXResourceUtils.getColor(WXResourceUtils.java:246) at com.taobao.weex.utils.WXResourceUtils.getColor(WXResourceUtils.java:232) at com.taobao.weex.ui.component.WXComponent.setBackgroundColor(WXComponent.java:1408) at com.taobao.weex.ui.component.WXComponent.setProperty(WXComponent.java:805) at com.taobao.weex.ui.component.WXText.setProperty(WXText.java:152) at com.taobao.weex.ui.component.WXComponent.updateProperties(WXComponent.java:747) at com.taobao.weex.dom.action.UpdateStyleAction.executeRender(UpdateStyleAction.java:105) at com.taobao.weex.dom.RenderActionTask.execute(RenderActionTask.java:50) at com.taobao.weex.ui.WXRenderManager$1.run(WXRenderManager.java:104) at com.taobao.weex.common.WXThread$SafeRunnable.run(WXThread.java:48) at android.os.Handler.handleCallback(Handler.java:615) at android.os.Handler.dispatchMessage(Handler.java:92) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:4745) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:511) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) at dalvik.system.NativeStart.main(Native Method) 02-15 10:39:54.247 3332-3332/com.benmu.wx D/CLog: java.lang.NullPointerException at com.taobao.weex.utils.WXResourceUtils$ColorConvertHandler$3.handle(WXResourceUtils.java:401) at com.taobao.weex.utils.WXResourceUtils.getColor(WXResourceUtils.java:246) at com.taobao.weex.utils.WXResourceUtils.getColor(WXResourceUtils.java:232) at com.taobao.weex.ui.component.WXComponent.setBackgroundColor(WXComponent.java:1408) at com.taobao.weex.ui.component.WXComponent.setProperty(WXComponent.java:805) at com.taobao.weex.ui.component.WXText.setProperty(WXText.java:152) at com.taobao.weex.ui.component.WXComponent.updateProperties(WXComponent.java:747) at com.taobao.weex.dom.action.UpdateStyleAction.executeRender(UpdateStyleAction.java:105) at com.taobao.weex.dom.RenderActionTask.execute(RenderActionTask.java:50) at com.taobao.weex.ui.WXRenderManager$1.run(WXRenderManager.java:104) at com.taobao.weex.common.WXThread$SafeRunnable.run(WXThread.java:48) at android.os.Handler.handleCallback(Handler.java:615) at android.os.Handler.dispatchMessage(Handler.java:92) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:4745) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:511) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) at dalvik.system.NativeStart.main(Native Method)

禁止横屏

我想要限制我得应用在横屏得时候,不随手机屏幕横向转

com.taobao.weex.bridge (7): signal SIGABRT

phone11 13.1

//值为空
NSData *jData = [decryptStr dataUsingEncoding:NSUTF8StringEncoding];

// NSData *jData = [NSData dataWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"eros.native" ofType:@"json"]];

js exception

errorcode -1002
errormsg -> 文件不存在/storage/emulated/0/android/data/com.xx.xx/files/benmu/.bundle/bundle/pages/hello.js

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.