Git Product home page Git Product logo

gbox's Introduction

Gbox

1 适用的业务范围

在线上,对于某些适用于要求强展示、轻交互、高可配场景,RN和WebView显得不够灵活,性能表现也不够好。

使用RN时要占据整个Activity,而且Native和Js的通信损耗不可避,WebView的情况则更加糟糕,还要lock主线程来加载webkit。这在二级、三级页面还好,在首页是绝对不能用这种掉性能的方案的。

并且对于首页feed流卡片、一级页面的活动区块来说,这些页面的逻辑本身就不强,而且往往也只是需要局部动态化,所以综合来看RN和WebView都不是最优选,我们需要第三条路

2 特性

Gbox是对业务以及性能友好的,它为了解决上述应用场景中所存在的问题而出现,在性能上更接近于原生的基础上也能够编写简单的逻辑:

  • 耗时操作异步化。将原本View体系中的measure、layout搬到异步线程中去,解放主线程,这也是Gbox之所以高效的原因之一
  • 干掉布局层级。直接使用轻量级的Drawable进行渲染,与WebView相比有更大的性能优势
  • 异步图片加载。使用轻量级Glide作为图片加载引擎,所有图片均可以从网络加载,并且不会触发额外的布局更新
  • 敏捷开发,随时上线,前后端分离。后端下发布局+数据的json,可集成在数据接口下发,本地自主解析渲染布局
  • 单容器View接入,基本无入侵性。可用于替换现有的任意一个静态展示型的View,并支持曝光埋点、点击埋点、点击时间处理等事件
  • 提供完整的开发工具链,布局开发可实时预览。提供布局实时预览APP(overview)和mock工具,可通过扫码连接电脑进行实时预览调试
  • 基于广泛使用的flexbox布局模型,包含丰富的可配置样式。例如边框颜色,圆角,图片,文本等
  • 强大的布局内绑定表达式,编写布局内逻辑。绑定表达式支持数学运算,for语句,三元表达式,简单的java方法调用,使用表达式时需使用${}包围
  • 屏幕适配。布局使用的单位为是设备独立的pt,以设备屏幕宽度为基准,将屏幕分成360份,1pt=设备屏幕宽度/360
  • 使用kotlin实现。代码实现非常简洁,很适合阅读学习
  • 对旧逻辑友好。支持原生View嵌入Gbox

4 开始使用

✨ 掘金文章:Gbox完全使用指南

5 从Jitpack获取

Gbox使用jitpack进行构建,在你的根项目的build.gradle中添加

	allprojects {
		repositories {
			...
			maven { url 'https://jitpack.io' }
		}
	}

然后在模块中依赖

	dependencies {
	        implementation 'com.github.LukeXeon.flexbox:core:latest.release'
	}

5 我们开源

Gbox使用kotlin开发,在Apache 2.0开源协议下发布,是一个完全基于开源软件实现的开源软件。由@LukeXeon维护。

gbox's People

Contributors

lukexeon avatar

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.