We plan to use gomobile to build a shared SDK for our mobile apps and use it with binding, no UI with the go part, mainly for networking stack. However, look like there is little to no activities on gomobile github repository.
Anyone knows if gomobile is still maintained? Is gomobile a viable solution, if not, what could be the alternative?
I am not familiar with it so take everything I say with many grains of salt. But - it looks like it’s experimental:
The Go Mobile project is experimental. Use this at your own risk. While we are working hard to improve it, neither Google nor the Go team can provide end-user support.
So I probably wouldn’t use it on a production app. Seems like you would be setting yourself up for headache. That said, there is recent activity on it and I imagine the binding stuff wouldn’t change that often. There’s some discussion here as well as here. Specifically these comments:
Gomobile works great for simple bindings into the native language (it’s really just a thin wrapper on cgo). Helpful for sharing a ton of business logic across platforms. But it has its limits in terms of API surface complexity.
libraries: great use of gomobile. Write your apps logic/db/web-requests in go. Write just the UI in native tools. Can even reuse it on web in wasm.
That seem to corroborate the idea that using it for a shared SDK would work fine. If you do go for it, I’d love to know your experience with this because I usually build mobile apps in Flutter these days and the network stack is not ideal. Being able to share code with my API and mobile apps would be pretty nice.
It’s understandable to have concerns about the maintenance status of a tool like gomobile, especially if there hasn’t been much activity on the GitHub repository. While I can’t provide real-time updates on its maintenance status, it’s worth noting that gomobile is an official tool from the Go team at Google, which gives it some level of reliability.
That said, if you’re looking for alternatives or want to explore other options, you might consider tools like Flutter or React Native for building shared SDKs for mobile apps. These frameworks offer robust networking capabilities and have active communities supporting their development.
Ultimately, the choice depends on your specific project requirements and preferences. If gomobile meets your needs and you’re comfortable with its current state, it could still be a viable solution. However, if you’re uncertain or require more active maintenance, exploring alternatives might be a good idea.