![]() ![]() Snippets of the StartActivityModule are provided throughout this section, but you can find the full implementation on GitHub. Since React Native does not have any core modules for invoking this API, we had to create our own custom native module, which we called StartActivityModule. What we really wanted to use was the Activity.startActivityForResult API, which supported getting a response back when the launched activity finished. While looking at the native implementation of the Linking module on Android, we discovered that the Linking module only supports triggering new activities using the Activity.startActivity API. ![]() Solution: Custom Native Modules for Android While this limit may have been reasonable for most JSON documents, ixo did not want to impose an arbitrary limit on the length of data being signed. Before we did this, we checked for any limitations on the number of characters that could be used in a URL for the Linking module and found that, on Android, the limit was between 100K and 200K characters. Linking.openURL(url).catch(err => console.error('An error occurred', err)) įor the impact app to send the JSON document to a signing app using the Linking module, we’d have to URL encode the JSON document and send it as a URL parameter. Our primary concern with this approach was that you are limited to sending data to other apps using URL parameters. The benefit of this approach was that it was cross-platform out-of-the-box iOS, Android, and even Windows 10 support the Linking module. Our first attempt at app-to-app communication was the Linking module that already existed in the core React Native library. While ixo does intend to eventually support Android and iOS, the first version of the app is only targeting Android. Specifically, we needed to enable the impact app to send a JSON document to a signing app and await the signed response. ![]() We needed to find a way to support app-to-app communication in React Native apps. Ixo chose React Native because they were already familiar with React.js, and they wanted to leverage their existing JavaScript SDK for managing DIDs and signing documents as much as possible. ![]() The approach to this use case that we investigated was to separate the impact project creation and verification app (henceforth, the impact app) from the signing app, so organizations would be allowed to publish their own signing apps with their own standards. One of ixo’s use cases is to support multiple cryptographic signing algorithms and to allow different organizations to set their own standards for what and how an impact project or verification is signed. On mobile, ixo needed a way to store the user’s decentralized identifier (DID) and a mechanism to sign impact projects and verifications. When using a DApps browser like MetaMask, the user is already authenticated in the browser context. We recently worked with ixo to develop a sample client in React Native, with the goals of sharing as much code as possible with the Web client and investigating strategies to allow different organizations to set their own standards for signing impact project documents. They developed a Web client in React.js and an SDK based on ethjs to run using MetaMask or any other DApps ( Decentralized Application) browser. In addition to the protocol, ixo is also building sample apps and SDKs for interacting with the impact protocol on the blockchain. One of the key challenges with impact projects is producing, measuring, and valuing impact data at scale, and this is what ixo aims to address with the ixo protocol. Impact projects are based on the UN’s 17 Sustainable Development Goals, including projects to eliminate hunger, improve education, supply clean water, and increase gender equality. Impact, in this case, refers to impact investments, which are funding for projects that can make a measurable change in society. The ixo Foundation was created to build a decentralized impact evaluation protocol using blockchain and the W3C decentralized identifier specification. ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |