mobilehtml5app is simple framework and a tool for creating mobile apps with the Go language using an HTML5 supporting WebView as the frontend and a Go language HTTP server as the backend. This allows us to create front-ends for mobile apps using standard HTML5, CSS and Javascript and make use of the plethora of standard and very mature Web and Web App development frameworks available today rather than using OpenGL or the Native UI system. It currently supports only the Android platform.
- A few breaking changes have been made to the API to improve architecture, stability & facilitate a "noserver" option
Go Language has introduced support for mobile application development with version 1.5 and the mobile toolchain is rapidly developing. However, the current UI focus is primarily on OpenGL.
On the other hand, both Android and iOS support WebView based applications that deliver their frontend using HTML5. This allows us to build rich user interfaces taking advantage of Web and Web App technologies and frameworks. On Android specifically, the Apache CrossWalk and recent versions of Android system WebView (Kit Kat onwards) provide this functionality. Also, the most frequent domain of usage of the Go Language is in writing Web Servers.
This project attempts to make it easy to use the mobile support in Go and its HTTP server strengths in conjunction with HTML5 supporting WebViews to create mobile apps.
- First use
go get github.com/srinathh/mobilehtml5app/...
to get the packages and the command - Look at the example apps to get a flavor of how the Go & Java app pieces interact. To load the app in Android Studio, select Import Project from the Android Studio starting menu and point it to the androidapp folder under the example folder. The Go backend will automatically be rebuilt via Gradle.
- Refer to mobilehtml5app command for documentation on how to generate a mobile app project with a go HTTP server backend and HTML5 frontend.
- Refer to server package for documentation on the server used in the webapp that supports graceful restarts and parameterized routing
More documentation to come.