https://gun.eco/
Is an open source, real-time, distributed, offline-first, graph database designed to be easy, yet powerful for web/JS apps. https://github.com/amark/gun
Features
Disadvantage/Downside
Why GunJs and not FirebaseJS
JS Native Mobile Framework is js framework that writes native mobile apps
Types of JS Native Mobile Framework
SideNote
My favourite is Fuse-Open. Why. Because
SideNote
Fuse-Open
edA-qa mort-ora-y (uses fuse-open) for videos. Mainly Animation
Fuse social/youtube:
Korean videos/social/site:
Basically search Fusetools videos
https://www.linkedin.com/company/outracks-technologies
From https://www.fusetools.com/about
Fuse is a software development house founded in 2012. We have offices in Norway, California and South Korea. For the past 5 years, we have created tools for app developers and designers. Before that, we helped create the world's most popular mobile GPU, found in over 2 billion mobile devices today.
From https://fuse-open.github.io/docs/
Fuse is a set of user experience development tools for Windows and OSX that unify design, prototyping and implementation of high quality mobile apps on iOS and Android.
Twitter https://twitter.com/FuseOpen
Github https://github.com/fuse-open
SideNote
install Fuse-Open on Windows one needs to reboot or install on another Admin User
Bonus Install a Android Emulator. I prefer MEMU PLAY
Create Fuse Project call it GunFuse
https://fuse-open.github.io/docs/basics/installation-and-quickstart.html#starting-a-new-project
In GunFuse/GunFuse.unoproj edit code in line 8
Reason
Want to use ES6 Js
https://fuse-open.github.io/docs/tutorial-models/edit-hike-view.html
Using NodeJs
Create a node package in Fuse project folder
npm init -y
Install Gunjs in GunFuse Project npm install gun --save
In GunFuse nfuse
Enables fuse to run nodejs by creating a .uno files eg Lib_gun.uno and GunFuse_modules.unoproj in NPM-Packages folder
In GunFuse/NPM-Packages edit Lib_gun.uno on line 25
Find
Change to
In GunFuse/MainView.ux replace with this code
<App>
<ClientPanel>
<JavaScript>
var Observable = require("FuseJS/Observable");
const Gun = require('gun');
var gunget = Observable();
var gun = Gun();
gun.get('mark').put({
name: "Mark",
email: "mark@gunDB.io",
});
gun.get('mark').on(function(data, key){
console.log("update:", JSON.stringify(data));
gunget = JSON.stringify(data);
});
module.exports = {
gunget: gunget
};
</JavaScript>
<StackPanel>
<Text Color="#999">{gunget}</Text>
</StackPanel>
</ClientPanel>
</App>
Without Nodejs
In GunFuse create a folder modules/gun
In GunFuse/modules/gun/ create a file gun.js
In gun.js add the code from https://github.com/amark/gun/blob/master/gun.js
In GunFuse/MainView.ux replace with this code
<App>
<ClientPanel>
<JavaScript File="modules/gun/gun.js" />
<JavaScript>
var Observable = require("FuseJS/Observable");
var gunget = Observable();
var gun = Gun();
gun.get('mark').put({
name: "Mark",
email: "mark@gunDB.io",
});
gun.get('mark').on(function(data, key){
console.log("update:", JSON.stringify(data));
gunget = JSON.stringify(data);
});
module.exports = {
gunget: gunget
};
</JavaScript>
<StackPanel>
<Text Color="#999">{gunget}</Text>
</StackPanel>
</ClientPanel>
</App>
Save MainView.ux
On Fuse App Refresh and Rebuild
<App>
--->This is where one writes the UX just like one writes Html
</App>
<JavaScript File="modules/gun/gun.js" />
--->Embed external javascript files
<Javascript>
--->Write internal javascript
</Javascript>
{gunget} databinding variable
<App>
<ClientPanel> --->Part of UX
<JavaScript File="modules/gun/gun.js" />
<JavaScript>
--->Write internal javascript
</JavaScript>
<StackPanel>
--->Part of UX
</StackPanel>
</ClientPanel> --->Part of UX
</App>
Fuse-Open Rocks.
Their is still more to write about Fuse-Open with GunJs and other Js Native Framework with GunJs.