A lot has happened in the last few weeks on the dev side for inSpace. We are close to going live with our code on GitHub, and our cross-platform file sync clients are coming together well. On the mobile clients (iOS and Android) we still need to make some design decisions about the initial UI as there are differences in the functionality a mobile presents compared to the full desktop file sync system. Ideally we would like to get the zooming UI in there to do this job, but that will take too long for a first release, so we are looking at an interim solution that does the job well enough. We can then begin integrating the zooming UI later in stages after the first release is really solid.
The picture I used for this post is from the 3D prototype we built for inSpace. We used the prototype to develop our original 3D browser concept and prove that it could be effective for for browsing files and websites. There are some early inSpace 3D browser videos on YouTube.
I will write another post on 'continuous browsing', the name I came up with for both browsing and viewing content in a more continuous way when working with a zooming user interface or ZUI.
Here are the code details of what we did in the last two weeks as part of the upcoming milestone. "inSpace pre alpha running on EOS" defined as:
- An inSpace website, where you sign in using your inSpace account, and then provide an EOS id- entity via Scatter. Your EOS account has the root folder's IPFS address in a Filespace EOS contract.
- The web client can fetch your Filespace tree from IPFS, display it as a force graph, you can upload files to the inSpace server (an IPFS node).
- Cross platform Sync clients working on the IPFS node similar to the web client. Keep improving platform syncing from here forward.
Saman, core server and web client, Dave, cross platform sync clients. Servan, creative director. (hold long term vision and make sure design of what is yet to be implemented sits well with it. Production and status reports).
- I added our project to a Directory of Projects based around EOS called EOSindex https://eosindex.io/posts/122 If there is anywhere else I should mention this project, please let me know.
- Also have out github space setup here and Saman will start to commit the server and web client code there in the coming week or so. https://github.com/inSpaceTechnologies
- I'm still part way through updating the inSpace website; there will be better bios on there soon, so you can find out more about everyone working on it.
Android, Fixed the majority of threading issues so the app now can run and sync files. Files uploads currently fail as the server just rejects any Android uploads, not sure why yet. One last threading issue to fix, repeated login / logout during a sync can cause a bug where the work queue never gets drained so app appears to be working but has hung internally.
iOS, finally got the new 64bit iPad and have started getting the app up and running. I've fixed the various build issues so now the app is up and running on iOS.
General, been looking into general CPU performance (no GPU utilisation yet) and have identified and am currently working on some fixes, currently already more than halved the CPU utilisation, but there's more to come. The Windows, OSX and Android apps run and does (mostly - Android upload bug) what it should.
- I finalised my architecture thoughts and started separating our server into a separate API server and UI server. I made a git repo for each. Starting from scratch, committing as I build it up. It can go on GitHub as soon as it's stable.
- Sensitive information (e.g. passwords ) go into the config file which doesn't get committed (we commit a template instead).
- I started to formalise error handling (the old prototype was haphazard on this and needed a good cleanup).
- I started using pm2, which is a process manager. I also use it for environment management, so different config (e.g. ports and external server addresses) can be used depending on the environment.
- I added authentication to the backend. I'm now using JWT (JSON Web Tokens), which is a lot more flexible than the server-side sessions we used to use.
- I've been looking at frontend frameworks to speed up development. Vue looks most promising (I noticed that Scatter uses it for their sample frontend). I like what I've seen so far. I'm going to write the signup/login part of our frontend using Vue to try it out.