# Bifold Component Architecture Adjustment
The Aries Bifold project is seeking a strategy adjustment that will make it more useful, and easier to contribute back to the common library of components that combine to create a full mobile app.
## Purpose
The goal of this effort is to generalize Bifold to allow further code reuse and make the process of contributing back to the project easier. This will also reduce the amount of code that must be maintained within each project leveraging Bifold code.
Within the project, we will build a library of common components that, in combination, provide the necessary components of an Aries mobile app.
We will ship the components via NPM. Projects including the library will draw upon the components that match their needs.
Components exist at multiple levels, including one sample application that demonstrates the lower level components combined into a top level app.
### Types of Components
Components of different types are useful in the Bifold component collection. From the simplest UI component to app navigation, there are a variety of components that fit this design.
- UI Elements
- Screens
- Services
Services are non-visible components that provide necessary portions of agent behavior. Not all services will be required in an agent.
As we gain experience, this list is likely to become more refined.
## Conceptual Diagram
![](bifold_component_arch_diagram.png)
## Component Guidelines
- Components can be smaller items, like a contact card, and larger items such as a contact list. Components can use other components.
- Sub-components should be easily overridable / extended to allow for larger components to be used with a different subcomponent.
- Component styles should be easily overridable / extended to allow the application of themes for the purpose of a blended visual user experience.
- Components should not manage navigation, as not all components will be involved in the same navigation flows.
- Components should provide hooks into component lifecycle to allow the app to take action, including navigation.
- Component’s text need to be easily extended and need to be easily translatable to assist in internationalization.
## Component Creation
A good common component is one that can be used by more than one Bifold based app. It should allow for the customization nessary to fit the needs of various applications.
If the customization of a component results in a significant change from the original component, it may make sense to create a new component. The component architecture accepts competing components when the needs of different Bifold based projects diverge.
The choice between customizing an existing component and adding a new competing one will be common. Experience will provide insight into this choice. Guidance should be recorded as a guide to others considering their options.
### Process for bringing Bifold forks back to the codebase
Existing apps will need to follow a process to draw closer to the core Bifold codebase. While there will be some natural variance, the same basic strategy will apply.
1. Import NPM Library
- Include LIbrary as Dependancy
- Replace repo code with existing library components
2. Contribute New Components
- Identify components for contribution
- Add customization if needed
- Contribute to Bifold component collection
- Update library to release containing newly contributed components
- Replace local components with library components
- Remove local components from codebase
3. Rinse and Repeat
- Continue process with new development
- Adopt new and updated components contributed by others
- Contribute new developments back to component library.
### Process for creating new bifold forks
We will need to guide new Bifold based projects into the patterns that this component method will provide.
Providing a sample application, composed of library components. Readme files can guide the process of creating a new project using the component patterns supported by the common component library. Command line scripts may also be helpful here.
没有合适的资源?快使用搜索试试~ 我知道了~
一个开源的移动 Aries 客户端,致力于推进企业级区块链技术的全球生态系统
共736个文件
tsx:210个
ts:145个
png:60个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 133 浏览量
2024-01-05
11:24:58
上传
评论
收藏 3MB ZIP 举报
温馨提示
Aries Mobile Agent React Native (Bifold) 是一个开源的移动 Aries 客户端,是 Hyperledger Foundation 的一部分,Hyperledger Foundation 是一个致力于推进企业级区块链技术的全球生态系统。该项目以可验证凭证 (VC) 为中心,使用区块链和一流的加密技术来提供可信、安全的数据交换。Bifold 使用 React Native 设计,提供跨平台功能,支持广泛的用例和设备。Bifold 建立在 Aries 框架 Javascript (AFJ) 之上,为其架构提供了坚实的基础。
资源推荐
资源详情
资源评论
收起资源包目录
一个开源的移动 Aries 客户端,致力于推进企业级区块链技术的全球生态系统 (736个子文件)
gradlew.bat 3KB
gradlew.bat 3KB
bifold 143B
BUCK 1KB
.buckconfig 114B
build_defs.bzl 602B
yarn-3.3.1.cjs 2.1MB
plugin-engines.cjs 3KB
bifold.code-workspace 152B
CODEOWNERS 103B
commit-msg 84B
config 59B
CONTRIBUTING 2KB
.editorconfig 283B
.editorconfig 21B
.xcode.env 482B
.xcode.env 480B
.eslintignore 171B
.eslintignore 110B
.flowconfig 1KB
Gemfile 189B
Gemfile 159B
.gitattributes 126B
.gitattributes 71B
.gitignore 3KB
.gitignore 3KB
.gitignore 659B
build.gradle 5KB
build.gradle 5KB
build.gradle 3KB
build.gradle 1KB
build.gradle 601B
settings.gradle 262B
settings.gradle 255B
gradlew 8KB
gradlew 6KB
Attestation.h 224B
AriesBifold-Bridging-Header.h 104B
AttestationExample-Bridging-Header.h 103B
AppDelegate.h 98B
AppDelegate.h 97B
gradle-wrapper.jar 60KB
gradle-wrapper.jar 58KB
ReactNativeFlipper.java 3KB
MainApplication.java 2KB
MainApplication.java 2KB
MainActivity.java 1KB
MainActivity.java 1KB
ReactNativeFlipper.java 688B
ReactNativeFlipper.java 680B
cli.js 12KB
.eslintrc.js 2KB
.eslintrc.js 2KB
make-blocks.js 2KB
index.js 2KB
metro.config.js 2KB
jest.config.js 2KB
metro.config.js 1KB
index.js 770B
bootstrap.js 769B
jest.config.js 690B
jestSetup.js 563B
.eslintrc.js 460B
.eslintrc.js 460B
babel.config.js 364B
babel.config.js 304B
react-native.config.js 181B
index.js 171B
async-storage.js 149B
react-native-argon2.js 136B
babel.config.js 122B
commitlint.config.js 91B
babel.config.js 77B
react-native.config.js 55B
jest.config.js 48B
style.js 18B
file.js 18B
ledgers.json 321KB
oca-bundles.json 105KB
tsconfig.json 12KB
degree-credential.json 9KB
package.json 8KB
tsconfig.json 5KB
tsconfig.json 5KB
tsconfig-base.json 5KB
package.json 5KB
package.json 4KB
faber-connection.json 3KB
proof-credential.json 2KB
package.json 2KB
sovrin-main-net-pool.json 1KB
degree-proof.json 1KB
package.json 1KB
package.json 1KB
connection-invitation.json 1KB
Contents.json 1KB
connection-v1.json 942B
devcontainer.json 900B
Contents.json 849B
Contents.json 818B
共 736 条
- 1
- 2
- 3
- 4
- 5
- 6
- 8
资源评论
Java程序员-张凯
- 粉丝: 1w+
- 资源: 6756
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功