Built a container application using Xamarin, for the client, K4 Connect , which helped its customers to use their existing familiar user interface across all their devices, both mobile and desktop.
Client Overview :
K4 Connect is a technology company, based out of Raleigh, NC, provide solutions that serve and empower older adults and individuals living with disabilities, enhancing their lives by integrating the latest in smart technologies into a single responsive system.
Building a container application that will allow K4 Connect customers to use their existing familiar user interface across all their devices, both mobile and desktop
Create a hybrid webview app using Xamarin for mobile and desktop platforms including a websocket based API for accessing underlying platform features
Successfully built an application using Xamarin that runs on multiple platforms that users can use to control various devices around their homes.
- Single Xamarin solution that includes application on four platforms
- Desktop installer packages for Windows and MacOS
- Unit tests for all bridge API commands
- Web page to demonstrate each bridge API command
- The application should load to a full screen browser
○ iOS – WKWebview
○ Android – native Chrome webview
○ MacOS / Windows – Chrome Embedded Framework as embedded process
- Webview should support WebRTC natively
○ WKWebView requires a shim
- Webview should inject custom K4Connect CA public cert for network requests
○ Websockets (WSS)
- Application should inspect outbound resource requests (image loading, etc) and if file is available in a designated local content cache directory, intercept the request and return it to the webview
What Insight Consultants did:
The application was implemented using a WebView inside the Xamarin shell. The WebView communicated with a web socket server (part of the same application) that invoked native code to perform operations like using the Camera, accessing the file system, push notifications, serial ports, alarms, local storage using SQLite etc. We were responsible for writing this native code that the web socket server communicated with. The tasks involved studying and implementing operating system specific APIs and testing on multiple devices.