msupply-foundation / open-msupply

Open mSupply represents our most recent advancement in the Logistics Management Information System (LMIS), expanding on more than two decades of development inherited from the well-established legacy of the original mSupply.
https://msupply.foundation/open-msupply/
Other
23 stars 14 forks source link

Improve Android DX #4705

Open Chris-Petty opened 2 months ago

Chris-Petty commented 2 months ago

The suggestion

We should make it easier to dev targeting physical tablets and emulators. Over the last year or so we have acknowledged that we should really make sure things are running smoothly on tablets and one way to keep on top of it is for more of the team to do their development with OMS running on a tablet with hot reloading etc.

Loosely riffing off expectations from developing with React-Native:

I don't think we'll ever get to quite the streamlined experience of RN due to rust compile times vs full JS stack, but we can get good strides there!

Existing approach AFAIK (I've never done it admittedly!) is running capacitor on the tablet and backend on host device e.g. your macbook (essentially running OMS in client mode). This does get a long way there as most of the performance UX issues are found with the frontend. Perhaps doubling down just on this and reducing friction in it will get devs to switch over.

Why should we invest time in this?

If the DX of developing for tablet is smoooooth then devs will do so more. In turn, we'll be more cognizant of performance and UX issues that will affect the majority of our users.

Are there any risks associated with this change?

Could be a rabbit hole! Shouldn't be a risk to breaking the product though.

How much effort is required?

IDK! I'm vibing a solid 1 or 2 dev weeks. Probably deserves a research spike to work it out :).

Agreed Solution

TBD - needs R&D.

Chris-Petty commented 2 months ago

Perhaps it's a discoverability and training issue - existing guidance for capacitor approach here

https://github.com/msupply-foundation/open-msupply/blob/develop/client/packages/android/README.MD

Perhaps it could be in wiki? I find it hard to know when there are readme.md files beyond the root of the project that are important for running the project.