Shard Mobile 库
Shard Mobile 库是用于https://shardlib.com的移动客户端库。如果您有兴趣将其集成到应用中,请随时通过[email protected]联系我们,或在仓库中发布一个问题。
概述
此仓库包含使用 Kotlin/Swift 编写的 Android 和 iOS Shard 库,以及使用 Rust 编写的共享核心。共享 Rust 核心管理渲染 Shard UI 的非平台特定方面,例如解析服务器响应、高效管理更新以及执行布局。布局基于 利用 stretch 库的 flexbox。
入门
Android
要在您的 Android 应用中开始使用 Shard,只需添加 Shard 核心依赖项即可。同时,请确保配置 abi 切分,以确保您的 apk 文件中只捆绑所需的原生库。
android {
splits {
abi {
enable true
}
}
}
dependencies {
implementation 'app.visly.shard:core:0.1.5'
}
您还需要确保初始化原生依赖项,这最好在您的 Application
类中完成。
class ShardsApplication: Application() {
override fun onCreate() {
super.onCreate()
ShardViewManager.init(this)
}
}
现在您已准备好加载第一个 Sharding 视图。您可以通过指向使用 node-shard-server 构建的您的服务器端点的 URL 加载它,或者使用原始的 JSON 字符串。为了简化,这里我们将使用原始 JSON 方法。
class MainActivity : Activity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val result = ShardViewManager.instance.loadJson(this, """{
"root": {
"kind": "flexbox",
"props": {"background-color": "#f00"},
"layout": {
"width": {"unit": "points", "value": 200},
"height": {"unit": "points", "value": 200}
}
}
}""")
val root: ShardRootView = findViewById(R.id.shard_root)
root.setRoot(result)
}
}
iOS
要开始在您的 iOS 应用中使用 Sharding,请先添加 Cocoapods 依赖项。
platform :ios, '11.0'
use_frameworks!
target 'ios' do
pod 'ShardKit', '~> 0.1.5'
end
现在您已准备好加载第一个 Sharding 视图。您可以通过指向使用 node-shard-server 构建的您的服务器端点的 URL 加载它,或者使用原始的 JSON 字符串。为了简化,这里我们将使用原始 JSON 方法。
import UIKit
import ShardKit
class ViewController: UIViewController {
@IBOutlet weak var shardRoot: ShardRootView!
override func viewDidLoad() {
let result = ShardViewManager.shared.loadJson("""
{
"root": {
"kind": "flexbox",
"props": {"background-color": "#f00"},
"layout": {
"width": {"unit": "points", "value": 200},
"height": {"unit": "points", "value": 200}
}
}
}
""")
self.shardRoot.setRoot(result)
}
}
开发
首先,通过下载 Xcode 和 Android Studio 来安装 Android 和 iOS 工具链。对于 Android,您还需要设置您的 $ANDROID_HOME
。目前我们只支持在 macOS 上构建,但您可以在任何平台上使用 shard 库通过 jcenter / cocoapods。
安装完 Android 和 iOS 工具链后,现在是时候克隆存储库并设置好了。我们准备了一些 Make 脚本来简化此过程。这些脚本准备您的本地环境以构建 Rust 核心库。如果您只计划在 Kotlin / Swift 中进行开发,则无需运行任何 Make 脚本。
git clone https://github.com/vislyhq/shard-mobile.git
cd shard-mobile
make setup
make install
一切完成后,您应该可以开始了。在 Xcode 中打开 shard-mobile/ios/Examples/ShardKit.xcworkspace
或在 Android Studio 中打开 shard-mobile/android
。
所有共享的 Rust 代码都位于 shard-mobile/core
中,平台绑定位于 shard-mobile/core/ios
和 shard-mobile/core/android
中。在修改任何 Rust 文件后,请确保从根目录运行 make install
以构建和打包 Rust 库,用于 Android 和 iOS。
如果您想要对驱动 Sharding 的布局引擎进行任何更改或添加,请访问 github.com/vislyhq/stretch。
许可证
Copyright (c) 2018 Visly Inc.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.