Check out the Issue Explorer
Looking to fund some work? You can submit a new Funded Issue here.
**A pre-configured development environment for development on ssb / react-native / android stack with support for typescript and hot-reload.**
The primary definition of success is it should be possible to develop on ManyVerse using the docker instance, as explained in more detail in the **details** section below. As an added extra it would be good to be able to develop on *this repo* as well (but hopefully that requires not extra work). Other **nice to haves** are also outlined below.
Not looking for the IDE just the ability to build and deploy to Android simulator (or connected device).
(NB: This is the first issue I'm posting to gitcoin so would very much appreciate any feedback or guidance as to the way I'm doing this.
Luandro and I (and anecdotally many others) are both in a similar boat of not being able to get started with development for mobile ssb apps because we have difficulty getting started. For instance, when I run `react-native run-android` I get build/compilation failures (often libsodium related) or if it does build [it crashes on first load](https://gitlab.com/staltz/manyverse/issues/398)
It'd be super great to enable people to start working on more ssb apps using the **ssb, react-native, type-script, android** stack without the current massive hassle required to just get started.
To be clear the objective is not solely to foster development on ManyVerse though that would be a nice side effect. Manyverse was chosen as the target because it is a project that already builds and has a lot of functionality in it, so it creates a clearly defined goal to be able to 'build' that stack..
- Anyone needs to be able to access (build or download) the docker* instance you create
- Then they should be able to `git clone https://gitlab.com/staltz/manyverse.git`and...
- .. following the instructions you provide build all the required dependencies
- .. run `react-native run-android` and get the app running in Virtual Instance configured by AVD
- .. make changes to react code and `"R+R"`to hot reload the changes into the debugger instance (per tools already available in manyVerse)
- .. view log files and such (as outlined in the manyVerse readme)
- .. build the distribution APK for distribution/installation on a development enabled Android device (distribution to playstore etc is out of scope)
- .. when running the app thus built, connect with the ssb main net and sync (if configured with appropriate ssb secret)
- They should be able to do this **on OSX**. (Windows and/or Linux support is a nice to have)
- Things generally, and specifically the means of building the Docker* file itself should be documented
- It should be possible for a motivated, skilled person (at the skill level of an Andre Staltz - ie very skilled) to (in the future) reasonably easily update the Docker* to include more recent dependencies as things get upgrade.
**Clarification about Docker**
I'm not wedded to Docker as the only way to solve this problem. The key point is that it is possible to build the dependencies and get up and running nice and fast without having to go crazy trying to install a million things to Android Studio or to install specific versions of Node via nvm or specific C++ libraries via NPM, Brew and such.
If, for instance, a Vagrant script or some other type of automation is better way to do this very happy to consider anything (It might be best to discuss first though before spending too much time on a particular approach).
I am a little unsure how things like Android Studio would work. Perhaps Android Studio could run on the host machine (outside of the Docker) but the builds be completed entirely at the command line. To be honest I'm not sure if/how/whether that would work, so welcome feedback on how to solve htat.
**Nice to have extras**
As mentioned this is the first item I'm posting on gitcoin. Hoping I've priced it correctly for the minimum above, but in the case that I underpriced this and if you feel so inclined (or if you are seeing this 'issue' outside of gitcoin context. Some other nice to haves include:
- Support for building and developing **[this repo](https://github.com/utunga/homesafe/)**. As a much stripped down subset of manyverse it should hopefully be straightforward.
- Any changes to this repo required to make it a a nice 'starter kit' for ssb based mobile apps.
- Support for building rust 'binaries' (?) and deploying rust code to android 'server side' or 'client side' (wasm) within the app - as outlined in the architecture description described in Luandro's post [here](http://ssb.mikey.nz:8807/%25pteOguC%2BXViKeF0dq94MqWn%2BUcm6bjEjkqPgo7yrgjY%3D.sha256)
- iOS support - obviously quite a big ask but hey, you don't get if you don't ask ;_)