Project Structure

Hi I’m researching to better understand the project structure and the reasoning behind design decisions.

The project keeps a collection of common library files in
ReactNativeClient/lib
These are rsync’d/xcopy’d into some other subprojects; CliClient and ElectronClient.

Could these subprojects be refactored to include the libs directly from a canonical location? In this way modifications to lib/ via the subprojects would be reflected immediately in the repository.

1 Like

Where would that canonical location be?

Up at the top level, something like Lib/ or Common/. There could be good reason it has the current layout, I’m only just beginning to explore the build process which by necessity is complex.
Great work btw, this project is a real achievement.

It’s there for historical reasons, because the mobile app was the first one, but anywhere we put it we still need some way to deploy it to the other directories, and rsync is as good as any other solution.

I think no matter how we handle the lib, build steps will be needed, so the goal is to group all these steps under, say npm i, to make it simpler. And to run the apps, there are the run.sh scripts.

Ok, I need to figure out the preferred workflow within the existing framework. I started out (on Win10) with VSCode and only in the Electron client. Setting up run and debug for both Main and Rendering processes in VSCode meant tweaking some core files. When I later ran build/run.sh they were overwritten. I’m switching to WebStorm (well, PHPStorm, I’m a php dev by day) for a smoother debug experience. Sooner I get a nice dev env up the sooner I can tackle some of these ‘good first issue’.

I see from another post you’re using WSL for cli, I’m blocked from installing it by an older build of Win10. I’m getting good mileage from git-bash topped up with tools from the mysys2.org repo.

1 Like