Technology
When building an desktop/mobile application, this is possible:
- via the native language of the platform
- via a WebView: a special browser window that can access device-level APIs.
- via a language compiled to the native binary
Native
In Android and iOS development, a view is the basic building block of UI: a small rectangular element on the screen which can be used to display text, images, or respond to user input. Even the smallest visual elements of an app, like a line of text or a button, are kinds of views. Some kinds of views can contain other views. It’s views all the way down.
- Android: Java / Kotlin
- IOs: Xcode
Render engine
- Flutter - Flutter is much closer to a “game engine” as it draws it's components using Skia compared to transpiler such as React Native that creates platform native elements. Flutter isn't really native since it uses Skia to render native platform look-alike components.
Transpilling
- https://www.xamarin.com/ - Native Android and iOS apps with .NET and C#
WebViews - Web Wrapper
A WebView is special browser window that can access device-level APIs (generally WebKit)
- https://cordova.apache.org/ (Keycloak as an adapter) - Cordova wraps the HTML/JavaScript app into a native container which can access the device functions of several platforms. - Applications execute within wrappers targeted to each platform
HTTP Detection
On an HTTP server, it's possible to detect that the client is a mobile phone and serve specific mobile content via the user agent.
If you cache the content, you may want to set the vary header to the user agent value.
Example of Rule
(http.user_agent contains "mobi" or http.user_agent contains "Mobi")
Testing
- Robot: http://www.tapster.io/