This repository has been archived by the owner on Oct 11, 2020. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 12
Home
Aviv Eyal edited this page Nov 28, 2018
·
34 revisions
Users interact with Spacemesh primary via The Spacemesh APP
. The App include 2 main components:
- The App should be a universal web app that will have native packaging for iOS, Android, Web and Desktop (OS X, Windows, Linux). We'd like to achieve this by building on top of the Cosmic Seed project
- The main design concept is to share all app logic components and APIs between all platforms and use the same tech for data and action flows. e.g Redux. This is a similar to the Slack software architecture but using only
React Native
for implementing the UI - The App should be primarily coded in Typescript for type safety and modern syntax
- The App should utilize the
Spacemesh API
via a Spacemesh gRPC server to connect to a localSpacemesh Node
or to a remote node (or nodes pool) via a remoteSpacemesh https-json gateway
- The App should be design with internationalization / localization in mind. The first release primary language will be English but we plan to add support to additional languages at a later phase
- The App main UI enables the user to switch between its main components (currently Dashboard and Wallet) while each component provides its own UI and UX. See App Visual Design
Note that we work using open design methods - where all design work is done in the open, therefore things are a bit in flux and this project is under heavy active development. We will start with funded Gitcoin issues once the design matures. Contact us if you'd like to contribute to the visual design process.
- The app is built on top of the cosmic app seed so most of the UI code and all the app logic code and support services can be shared between all runtime platforms.
- We'd like to add platform specific customizations such as FaceID support for iPhoneX devices on a per-platform basis. Generally, the app should have 2 main UI modes - mobile for mobile class screens and desktop for tablets, desktop app display and desktop web display.
- On mobile, only the native apps will be supported as mobile web browsers are still clunky and provide a sub-par experience compared to mobile native apps. The web version can be desktop screen sizes only.
- App functionality which is not specific to the Spacemesh features should go into the Cosmic seed project.
- Web app
- Electron natively packaged app for Windows, Linux and OS X platforms.
- Native iOS and Android Apps
Please look at the design guides the Wiki Sidebar.
- Focus on the cross-platform desktop app (Electron based for Linux, OS X, Windoz) so only desktop class screens needs to be supported. This reduces the amount of work involved in fully responsive design that target both desktop class screens and mobile size screens