I’m designing an LED display which will be powered using a Raspberry Pi over SPI. I need help in designing a software, somewhat like Android, where 3rd party devs can write apps using a custom SDK and users can download it using an online repo accessible using a custom App Store on phone.
Devs can develop two types of apps: – activity – activity can display data on screen – service – can give information to other apps, background processes
Example, Activity: take Android home screen for example, shows clock and notifications (notifs to be received from services). Or take ping pong game for example. Service: email notification service, or football score notification service, etc.
I want the devs to be able to write their app in many languages, Golang, node.js, etc.
What I have thought is, to design a system, let’s call it “core”, which will be responsible to manage which app to execute and drive the LED display by requesting the app for display data.
Since apps will be separate binaries or executables, I’m thinking about designing “core” such that the apps are run under a container, so that devs don’t do naughty stuff with users data.
So to let core communicate with apps, I’m thinking about spinning up a gRPC server. On the app side, I’ll be providing an SDK which will connect to the server as client. And send display stream or notification data.
- Is that a right approach?
- is gRPC a good choice, would that be good for streaming display?