IP Library Granted Patent US 10,296,309
Granted Patent B1
US 10,296,309 · App. 15/880,286 · Granted May 21, 2019

Systems and methods for automatic API generation for bi-directional communication between native and web-based components of a mobile application

Inventors: Richard Mercille (San Jose, CA); Benoit Lemaire (San Jose, CA); Krunal Shah (Milpitas, CA); Weijie Li (Milpitas, CA); Deepu Eswarath Ganapathiyadan (San Jose, CA); Bharath Marulasiddappa (Sunnyvale, CA)
Assignee: Walmart Apollo, LLC
G06F8/38G06F8/20G06F8/315G06F8/60H04L45/563
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,296,309
App. No.
15/880,286
Granted
May 21, 2019
Kind
B1
Abstract

An approach is proposed to support automatic API generation for integration of web-based components with a native application. First, mini apps are included in a container, wherein the mini apps are web-based features assembled together as a bundle of JavaScript assets to be integrated with the native application on a mobile device. A set of APIs to the mini apps are then automatically generated based on pre-defined schemas in native code specific to the platform of the mobile device and merged with the mini apps into the container. The container is published to a repository at a central, team shared, location and imported to the mobile device for integration with the native application. Finally, a target mobile application is created by integrating the mini apps with the native application on the mobile device via the APIs, wherein the target mobile application is uploaded and made available to an end user.

Claims (52)

1. A system to support automatic application programming interface (API) generation for integration of web-based components with a native application, comprising:

a computing device configured to

include one or more mini apps in a container, wherein the container is a library native to a platform of a mobile device, wherein the mini apps are web-based features assembled and packaged together as a bundle of JavaScript assets to be deployed to and integrated with the native application on the mobile device;

automatically generate a set of APIs to the mini apps based on pre-defined schemas in native code specific to the platform of the mobile device, wherein the APIs provide well-defined methods of communication between the mini apps and the native mobile application;

merge the APIs with the mini apps into the container;

publish the container to a repository at a central, team shared, location with a version number, wherein the version number of the container is updated every time the container is re-generated;

import the container from the repository to the mobile device for integration with the native application;

create a target mobile application by accessing and integrating the mini apps in the container with the native application on the mobile device via the APIs, wherein the target mobile application is uploaded to an app store and made available to an end user.

2. The system of claim 1 , wherein:

the container is a framework for iOS or a versioned Android Archive Library (AAR) for Android.

3. The system of claim 1 , wherein:

the APIs are in Java, Swift, or JavaScript.

4. The system of claim 1 , wherein said computing device is configured to:

implement the APIs in a dedicated standalone project, which enables reuse of the mini apps and switching of implementations of the APIs.

5. The system of claim 1 , wherein said computing device is configured to:

publicly expose the APIs to enable the native mobile application to invoke, interact, integrate, and communicate bi-directionally with the imported mini apps.

6. The system of claim 1 , wherein said computing device is configured to:

resolve conflict between the version number of the container and the native application.

7. The system of claim 1 , wherein:

the container further includes assets of the mini apps and direct or indirect dependencies of the mini apps on the native application.

8. The system of claim 7 , wherein said computing device is configured to:

regenerate and publish the container with a new version every time the mini apps or their native dependencies are added, deleted, or updated.

9. The system of claim 8 , wherein said computing device is configured to:

allow patch version bump, minor version bump, or major version bump for versioning of the APIs from the current version to the next one, wherein the patch version bump happens when the APIs contain changes to internal implementation, wherein the minor version bump happens when the APIs contain one or more new requests or new events, wherein the major version bump happens when the APIs contain breaking changes to its public implementation.

10. A computer-implemented method to support automatic application programming interface (API) generation for integration of web-based components with a native application, comprising:

including one or more mini apps in a container, wherein the container is a library native to a platform of a mobile device, wherein the mini apps are web-based features assembled and packaged together as a bundle of JavaScript assets to be deployed to and integrated with the native application on the mobile device;

automatically generating a set of APIs to the mini apps based on pre-defined schemas in native code specific to the platform of the mobile device, wherein the APIs provide well-defined methods of communication between the mini apps and the native mobile application;

merging the APIs with the mini apps into the container;

publishing the container to a repository at a central, team shared, location with a version number, wherein the version number of the container is updated every time the container is re-generated;

importing the container from the repository to the mobile device for integration with the native application;

creating a target mobile application by accessing and integrating the mini apps in the container with the native application on the mobile device via the APIs, wherein the target mobile application is uploaded to an app store and made available to an end user.

11. The computer-implemented method of claim 10 , further comprising:

implementing the APIs in a dedicated standalone project, which enables reuse of the mini apps and switching of implementations of the APIs.

12. The computer-implemented method of claim 10 , further comprising:

publicly exposing the APIs to enable the native mobile application to invoke, interact, integrate, and communicate bi-directionally with the imported mini apps.

13. The computer-implemented method of claim 10 , further comprising:

resolving conflict between the version number of the container and the native application.

14. The computer-implemented method of claim 10 , further comprising:

regenerating and publishing the container with a new version every time the mini apps or their native dependencies of the mini apps on the native application are added, deleted, or updated.

15. The computer-implemented method of claim 14 , further comprising:

allowing patch version bump, minor version bump, or major version bump for versioning of the APIs from the current version to the next one, wherein the patch version bump happens when the APIs contain changes to internal implementation, wherein the minor version bump happens when the APIs contain one or more new requests or new events, wherein the major version bump happens when the APIs contain breaking changes to its public implementation.

16. A non-transitory computer readable storage medium having software instructions stored thereon, wherein when executed by at least one processor, the computer-executable instructions cause the at least one processor to:

include one or more mini apps in a container, wherein the container is a library native to a platform of a mobile device, wherein the mini apps are web-based features assembled and packaged together as a bundle of JavaScript assets to be deployed to and integrated with the native application on the mobile device;

automatically generate a set of APIs to the mini apps based on pre-defined schemas in native code specific to the platform of the mobile device, wherein the APIs provide well-defined methods of communication between the mini apps and the native mobile application;

merge the APIs with the mini apps into the container;

publish the container to a repository at a central, team shared, location with a version number, wherein the version number of the container is updated every time the container is re-generated;

import the container from the repository to the mobile device for integration with the native application;

create a target mobile application by accessing and integrating the mini apps in the container with the native application on the mobile device via the APIs, wherein the target mobile application is uploaded to an app store and made available to an end user.

17. The non-transitory computer-readable storage medium of claim 16 , wherein the computer-executable instructions further cause the at least one processor to implement the APIs in a dedicated standalone project, which enables reuse of the mini apps and switching of implementations of the APIs.

18. The non-transitory computer-readable storage medium of claim 16 , wherein the computer-executable instructions further cause the at least one processor to publicly expose the APIs to enable the native mobile application to invoke, interact, integrate, and communicate bi-directionally with the imported mini apps.

19. The non-transitory computer-readable storage medium of claim 16 , wherein the computer-executable instructions further cause the at least one processor to resolve conflict between the version number of the container and the native application.

20. The non-transitory computer-readable storage medium of claim 16 , wherein the computer-executable instructions further cause the at least one processor to regenerate and publish the container with a new version every time the mini apps or their native dependencies of the mini apps on the native application are added, deleted, or updated.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 29, 2018
From: WAL-MART STORES, INC.
To: WALMART APOLLO, LLC
Reel/Frame 045392/0554 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 25, 2018
From: MERCILLE, RICHARD; LEMAIRE, BENOIT; SHAH, KRUNAL; LI, WEIJIE; GANAPATHIYADAN, DEEPU ESWARATH; MARULASIDDAPPA, BHARATH
To: WAL-MART STORES, INC.
Reel/Frame 044733/0440 →