Automatic Platform Package Provisioning for API Fragmentation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The fragmentation of developer experiences and user interactions across diverse mobile devices running different software platform releases leads to challenges in seamless application development and user experience, as different API versions and client library versions result in inconsistent feature implementations and user interfaces.
Innovation Solution
Implementing a multi-part application programming interface (API) that separates interface functionalities from implementation functionalities, where interface functionalities are handled by a client library and implementation functionalities are managed in a platform implementation package that can be automatically updated throughout the device ecosystem, eliminating the need for new application publications due to API or software updates.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If developer APIs are included in the device software platform itself, then the developer experience is fragmented by each platform release having different APIs and capabilities, but including them in the platform allows direct access to platform features
Solution Approach 1:
The patent segments the API system into two distinct parts: client libraries (containing interface functionalities) and platform implementation packages (containing implementation functionalities). This segmentation allows the interface layer to remain consistent across devices while the implementation layer can be updated independently in the platform, resolving the contradiction between platform feature access and developer experience consistency.
2Adaptability or versatility
If developer APIs are included in client libraries bundled with applications, then those client libraries can be running at different version levels on a single mobile device, but this creates a fragmented user experience since the same feature will be covered by different APIs running under different client library versions
Solution Approach 1:
The patent separates the client library (interface) from the platform implementation package (implementation). The client library version remains fixed in the application, while the platform implementation package can be updated independently. This segmentation ensures that users experience consistent behavior through the same client library interface while the underlying implementation can be improved or updated without affecting user experience consistency.
Solution Approach 2:
The client library acts as an intermediary layer between the application and the platform implementation package. This intermediary maintains a stable interface contract while allowing the underlying implementation to evolve, thus mediating between version flexibility and experience consistency.
3Adaptability or versatility
If the same feature is covered by different APIs in different client library versions, then developers can target different device capabilities, but this results in inconsistent user interfaces and fragmented user experience
Solution Approach 1:
The patent divides the feature implementation into interface functionality (in client library) and implementation functionality (in platform implementation package). This allows the interface to present a consistent user experience while the implementation can adapt to different device capabilities through the platform package, resolving the contradiction between capability targeting and interface consistency.
Data Source
Figure 1
Figure 2A
Figure 2B
AI summary
A method for automatically provisioning a platform implementation package to a client device may include receiving from an application executing on the client device, a request for functionality. The request may be received via a client library distributed with the application, and may be for functionality provided by the platform implementation package. The platform implementation package may provide functionality that is not provided by the client library. It may be further automatically determined, by the client device, that the functionality requires an update to the platform implementation package. In response, a request for the update to the platform implementation package may be communicated to a computing system. The update to the platform implementation package may be received from the computing system and installed on the client device. The requested functionality may be provided to the application by the updated platform implementation package.