Android & IOS | Android(Windows) |
---|---|
NOTE FROM JOHN OLSEN: I HAVE CLONED THE MAIN Elastos.Trinity SHELL AND FILLED IT WITH OTHER CLONED Elastos.Trinity SECTIONS TO COMPLETE THE SKELETON TRINITY PACKAGE (FROM https://github.com/elastos/Elastos.Trinity et al). I HAVE THEN CREATED A 'KITCHEN SINK' IONIC APP CALLED ChubbaMorris WHICH DOES RUN. IT IS ACTUALLY A 'Conference' APP AS IT STANDS. YOU CAN CLONE MY REPO, TO A MACOSX MACHINE, AND ENTER Dapps/Ionic/ChubbaMorris AND RUN "ionic serve" TO SEE THE RESULT. You must install Cordova and Ionic on your machine first. You will also require Android Studio.
The addition of our 320 Use Cases to the Kitchen Sink 'Conference' App, and connections to the Elastos Blockchain and Carrier Systems, as well as connecting to the Postgres database, are as yet unmapped territory for me. Non-Relational Data (ie in file format) will be stored on Hive (the IPFS distributed file storage system). The connection to Hive is via Carrier. I think (but am not certain yet) that also the Postgres Database Connection is via Carrier between the Ionic Dapp and the GO Rest API server. I am also hoping to be able to connect via Carrier to external Websites (eg Banks). Please refer to http://itcsolutions.com.au/mobile-first-development for a diagram of Systems Architecture.
Also note that at this stage in the development of the Elastos Trinity Developer's System there is expected to be breakage of existing Dapps due to Elastos updates, as new releases will not be required to be backwards compatible intil March 2020.
I have set up this Dapp as an Angular.js application with the intention of eventually using the rich set of web components available via Sencha and their Ext.js Packages.
Elastos Trinity integrates all the services that Elastos provides and combines them into a singular framework for DApp developers to use. For this reason, DApp developers only need to write their application using ionic javascript framework and have only one set of Runtime APIs to manage.
Elastos Trinity is supported on both Android and iOS, DApp developers only need to develop their application using one set of code in order to run on both platforms.
- Roadmap
- Download Trinity for Android
- Checking out the source code
- How to build
- How to develop dapp
- Repositories
- Contribution
- Acknowledgments
- Base concepts for trinity
- DApp isolations
- Hive, Carrier, Wallet and base plugins
- Basic launcher, SPV wallet DApp
- Runtime bases (installations, uninstallations, manifest information…)
- Basic toolchain to create, pack and sign DApp packages
- Advanced runtime concepts (inter app communications, elastos scheme, API permissions)
- Wallet DApp phase 2 (Trinity as an SPV wallet) - payments requests support
- DID DApp (Trinity as user identity management)
- Voting DApps (Vote for DPOS, CRC…)
- RedPackets DApp
- Temporary centralized DApp store
- Ethereum and DID plugins
- DMA-light for trinity
- Efficient tool chain (easy initial setup, package, debug, publish, easy switch between dev and prod env or mainnet and testnet)
- Documentation
- Automated testing
- Frequent releases that can break existing DApps
- DApps community programme
- Versioning / Backward compatibility management (fewer releases, branches strategy)
- Developers able to write production ready DApps
- Releases based on stable sub-module releases
- Great user experience for end users (great UI design, dynamic launcher, home screen widgets, notifications, animations, convenient menus, onboarding information, ELA purchases made easy…)
- DApp store based on the DApp sidechain
- Maintenance of everything existing
- New features to be defined according to initial feedback from both developers and end users during previous phases
- New features integrated according to the main Elastos product roadmap (ex: new sidechains)
latest version(tag starting with daily)
To clone the repository in your environment:
git clone --recurse-submodules git@github.com:elastos/Elastos.Trinity.git
We use --recurse-submodules here because we need to download the submodules as well. If you forgot to use the argument, you could download the submodules later by typing:
git submodule update --init --recursive
And then use git add, commit and push to submit your changes to current project.
To update the whole Trinity (main repo + submodules), run this:
git pull --rebase
git submodule update --init
At that time, submodules will be in detached HEAD state. To commit changes, run this from the submodule folder before make changes:
git checkout master
git add/commit/push
- cordova
- ionic
- node
- npm
- python
- Java JDK 1.8 or greater
- Android SDK
- Android NDK (android-ndk-r16b or higher)
The supported way of doing this nowadays is to use Android Studio.
Set the ANDROID_HOME environment variable to match the Android SDK path.
on Mac and Linux, add the following line to your login script (e.g., ~/.bashrc, ~/.bash_profile, etc...):
export ANDROID_HOME="YOU-PATH/sdk"
On Windows, set the environment variable in the control panel.
- Xcode 10 or higher
cd YOU-PATH/Elastos.Trinity
./ToolChains/bin/build all
NOTE:You could type ./ToolChains/bin/build --help
for more detail
Using Android Studio:
Open project from YOU-PATH/Elastos.Trinity/Runtime/platforms/android
cd YOU-PATH/Elastos.Trinity
./ToolChains/bin/build all
Using Android Studio:
Open project from YOU-PATH/Elastos.Trinity/Runtime/platforms/android
Using Xcode:
Open project from YOU-PATH/Elastos.Trinity/Runtime/platforms/ios
cd YOU-PATH/Elastos.Trinity
python ToolChains/bin/build all
Using Android Studio:
Open project from YOU-PATH/Elastos.Trinity/Runtime/platforms/android
Elastos.Trinity is composite repository to Elastos Trinity infrastructure, which can be divided into the following submodules:
- Elastos.Trinity.Runtime
- Elastos.Trinity.DApps
- Elastos.Trinity.Plugins
- Elastos.Trinity.Toolchains
where category DApps includes several specific DApps repositories:
- Elastos.Trinity.DApps.Launcher
- Elastos.Trinity.DApps.Wallet
- Elastos.Trinity.DApps.IM (Todo)
while category Plugins includes the following repostiories:
- Elastos.Trinity.Runtime.Plugins.AppManager
- Elastos.Trinity.Runtime.Plugins.AppService
- Elastos.Trinity.Plugins.Carrier
- Elastos.Trinity.Plugins.File
- Elastos.Trinity.Plugins.Hive
- Elastos.Trinity.Plugins.Media
- Elastos.Trinity.Plugins.QRScanner
- Elastos.Trinity.Plugins.Wallet
We welcome contributions to the Elastos Trinity Project.
A sincere thank you to all teams and projects that we rely on directly or indirectly.