Modular Native App Updates via Shell and VM
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Native mobile applications require complete reinstallation for updates, leading to increased file size, install time, and lack of modularity, while hybrid applications lack native user experience and cannot be updated efficiently.
Innovation Solution
A method for providing modular updates to natively rendered mobile applications using an application shell and virtual machine, allowing for partial code updates and in-app purchases without replacing the entire application, enabling cross-platform compatibility and native rendering.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If a native application is updated, then the application receives new features and fixes, but the entire application must be downloaded and re-installed
Solution Approach 1:
The application is divided into a native application shell and separate downloadable code modules. The shell remains on the device while individual code modules can be updated independently, allowing partial updates rather than full application reinstallation.
Solution Approach 2:
The code portion of the application is extracted from the native application shell and stored separately on a server. This allows the code to be updated and downloaded independently from the native shell, enabling incremental updates without replacing the entire application.
2Reliability
If a native application is updated, then the application receives new features and fixes, but the entire application file size must be downloaded
Solution Approach 1:
The application code is segmented into separate modules that can be downloaded individually. Only the specific code modules that need updating are downloaded, rather than the entire application package, significantly reducing the update file size.
Solution Approach 2:
The code is extracted from the native application shell and stored separately. This separation allows the system to download only the necessary code updates rather than the complete application, reducing the quantity of data transferred.
3Reliability
If a native application is updated, then the application receives new features and fixes, but the update process is complex and time-consuming
Solution Approach 1:
The application shell automatically checks for updates, downloads new code modules, and replaces old modules without requiring user intervention or complex update management. The system self-manages the update process, reducing complexity for both developers and users.
Solution Approach 2:
The application shell provides universal functionality across different platforms and application types, handling update management, code execution, and native feature access in a unified manner, simplifying the overall update process.
4Ease of manufacture
If hybrid application is used, then the application can be updated easily via web server, but the user experience is not native
Solution Approach 1:
The invention merges the advantages of hybrid applications (easy code updates via web server) with the advantages of native applications (native rendering and user experience). The native application shell provides native UX while downloading and executing code modules similarly to hybrid applications, achieving both goals simultaneously.
Data Source
AI summary
Systems and methods for providing an update to a natively rendered application installed on a mobile device are provided. A method includes sending a message to a server, wherein the message includes identifying information about the application. The method also includes receiving an update from the server in response to the message, wherein the update comprises a module of code that corresponds to less than the entire application. The method further includes updating the application using the received update. The method additionally includes executing the application after the updating. The method also includes, based on the executing the application, natively rendering the application using the operating system of the mobile device.


