Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
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 Nativefor implementing the UI
- The App should be primarily coded in Typescript for type safety and modern syntax
- The App should utilize the
Spacemesh APIvia a Spacemesh gRPC server to connect to a local
Spacemesh Nodeor to a remote node (or nodes pool) via a remote
Spacemesh 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.
App Architecture and Supported Platforms
- 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.
Desktop Class Screens
- Web app
- Electron natively packaged app for Windows, Linux and OS X platforms.
Mobile Class Screens
- Native iOS and Android Apps
Interaction Design Guides
Please look at the design guides the Wiki Sidebar.
Spacemesh MVP1 timeframe deliverables
- 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