IP Library Granted Patent US 9,665,841
Granted Patent B2
US 9,665,841 · App. 14/976,794 · Granted May 30, 2017

Cross-platform application framework

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 9,665,841
App. No.
14/976,794
Granted
May 30, 2017
Kind
B2
Abstract

One set of instructions is generated in part by compiling application-specific source code. When natively executed on a platform provided by a device, the set of instructions provides an application. Another set of instructions is generated in part by compiling the same business logic source code. When natively executed on another platform provided by another device, the other set of instructions provides the same application. The business logic source code is substantially free of code specific to any platform. Moreover, the business logic source code defines substantially all application-specific functionality of the application.

Claims (46)

1. A method comprising:

obtaining, via a processor, platform-agnostic business logic source code that defines application-specific functionality of an application, the platform-agnostic business logic source code including layer source code defining a layer class that comprises a load operation that loads content on a layer module, the layer module being an instance of the layer class, the layer source code being non-specific to a first platform and non-specific to the second platform;

compiling, via the processor, the platform-agnostic business logic source code and first platform-specific code associated with the first platform to generate a first computer-executable instructions, wherein execution of the first computer-executable instructions causes a first device that provides the first platform to provide the application, and the first platform-specific code defines an operation that, when executed on the first platform, uses the layer module to generate output data usable to present a layer to a user; and

compiling, via the processor, the platform-agnostic business logic source code and second platform-specific code associated with the second platform to generate a second computer-executable instructions, wherein execution of the second computer-executable instructions causes a second device that provides the second platform to provide the application, and the second platform-specific code defines an operation that, when executed on the second platform, uses the layer module to generate output data usable to present a layer to another user.

2. The method defined in claim 1 , wherein the business logic source code being platform-agnostic comprises the business logic source code being non-specific to the first platform and non-specific to the second platform.

3. The method defined in claim 1 , wherein the business logic source code being platform-agnostic comprises the business logic source code not including code that this conditionally executed depending on which platform is running the application.

4. The method defined in claim 1 , wherein the platform-agnostic business logic source code comprises application source code that is non-specific to the first platform and non-specific to the second platform, and the application source code defines functionality of an application module having a navigation operation that is invoked in response to a navigation request.

5. The method defined in claim 4 , wherein the navigation operation provides a load request to the layer module when a layer uniform resource identifier specified by the navigation request is associated with the layer module.

6. The method defined in claim 1 , wherein:

the first platform-specific code defines functionality of a first binding module, the first binding module having a layer output operation that processes layer modules to generate output data usable to present layers using user interface features that are native to the first platform; and

the second platform-specific code defines functionality of a second binding module, the second binding module having a different layer output operation that processes layer modules to generate output data usable to present the layers using user interface features that are native to the second platform.

7. The method defined in claim 1 , further comprising:

distributing the first computer-executable instructions to the first devices that provides the first platform; and

distributing the second computer-executable instructions to the second device that provides the second platform.

8. A method comprising:

generating, via a processor, first computer-executable instructions suitable for execution on a first platform by compiling:

first platform-specific code specific to the first platform; and

platform-agnostic business logic source code that defines functionality of an application, the business logic source code including layer source defining a layer class that comprises a load operation that loads content on a layer module, the layer module being an instance of the layer class, the layer source code being non-specific to the first platform and non-specific to a second platform; and

generating, via the processor, second computer-executable instructions suitable for execution on the second platform by compiling:

the platform-agnostic business logic source code; and

second platform-specific code specific to the second platform, wherein the first set of platform-specific code defines an operation that, when executed on the first platform, uses the layer module to generate output data usable to present a layer to a user, and wherein the second set of platform-specific code defines an operation that, when executed on the second platform, uses the layer module to generate output data usable to present the layer to another user.

9. The method defined in claim 8 , wherein the business logic source code being platform-agnostic comprises the business logic source code being non-specific to the first platform and non-specific to the second platform.

10. The method defined in claim 8 , wherein the business logic source code being platform-agnostic comprises the business logic source code not including code that this conditionally executed depending on which platform is running the application.

11. The method defined in claim 8 , wherein the platform-agnostic business logic source code comprises application source code that is non-specific to the first platform and non-specific to the second platform, and the application source code defines functionality of an application module having a navigation operation that is invoked in response to a navigation request.

12. The method defined in claim 11 , wherein the navigation operation provides a load request to the layer module when a layer uniform resource identifier specified by the navigation request is associated with the layer module.

13. The method defined in claim 8 , wherein:

the first platform-specific code defines functionality of a first binding module, the first binding module having a layer output operation that processes layer modules to generate output data usable to present layers using user interface features that are native to the first platform; and

the second platform-specific code defines functionality of a second binding module, the second binding module having a different layer output operation that processes layer modules to generate output data usable to present the layers using user interface features that are native to the second platform.

14. The method defined in claim 8 , further comprising:

distributing the first computer-executable instructions to the first devices that provides the first platform; and

distributing the second computer-executable instructions to the second device that provides the second platform.

15. An apparatus comprising:

memory including machine-readable instructions; and

a processor to execute the machine-readable instructions to perform operations including:

obtaining platform-agnostic business logic source code that defines application-specific functionality of an application, the business logic source code including layer source code defining a layer class that comprises a load operation that loads content on a layer module, the layer module being an instance of the layer class, the layer source code being non-specific to a first platform and non-specific to the second platform;

compiling the business logic source code and first platform-specific code associated with the first platform to generate first computer-executable instructions, wherein execution of the first set of computer-executable instructions causes a first device that provides the first platform to provide the application, and the first platform-specific code defines an operation that, when executed on the first platform, uses the layer module to generate output data usable to present a layer to a user; and

compiling the business logic source code and second platform specific-code associated with the second platform to generate second computer-executable instructions, wherein execution of the second set of computer-executable instructions causes a second device that provides the second platform to provide the application, and the second platform-specific code defines an operation that, when executed on the second platform, uses the layer module to generate output data usable to present a layer to another user.

16. The apparatus defined in claim 15 , wherein the business logic source code being platform-agnostic comprises the business logic source code being non-specific to the first platform and non-specific to the second platform.

17. The apparatus defined in claim 15 , wherein the platform-agnostic business logic source code comprises application source code that is non-specific to the first platform and non-specific to the second platform, and the application source code defines functionality of an application module having a navigation operation that is invoked in response to a navigation request.

18. The apparatus defined in claim 17 , wherein the navigation operation provides a load request to the layer module when a layer uniform resource identifier specified by the navigation request is associated with the layer module.

19. The apparatus defined in claim 15 , wherein:

the first platform-specific code defines functionality of a first binding module, the first binding module having a layer output operation that processes layer modules to generate output data usable to present layers using user interface features that are native to the first platform; and

the second platform-specific code defines functionality of a second binding module, the second binding module having a different layer output operation that processes layer modules to generate output data usable to present the layers using user interface features that are native to the second platform.

20. The apparatus defined in claim 15 , wherein the operations further comprise:

distributing the first computer-executable instructions to the first devices that provides the first platform; and

distributing the second computer-executable instructions to the second device that provides the second platform.

Assignments (7)
RELEASE OF SECURITY INTEREST - 364 - DAY Recorded Mar 5, 2021
From: JPMORGAN CHASE BANK, N.A.
To: ZEBRA TECHNOLOGIES CORPORATION; LASER BAND, LLC; TEMPTIME CORPORATION
Reel/Frame 056036/0590 →
SECURITY INTEREST Recorded Sep 1, 2020
From: ZEBRA TECHNOLOGIES CORPORATION; LASER BAND, LLC; TEMPTIME CORPORATION
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 053841/0212 →
NOTICE OF TRANSFER OF SECURITY INTEREST IN PATENTS Recorded Jul 3, 2019
From: ZEBRA TECHNOLOGIES CORPORATION
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 049675/0049 →
MERGER Recorded Mar 29, 2019
From: ZIH CORP.
To: ZEBRA TECHNOLOGIES CORPORATION
Reel/Frame 048884/0618 →
SECURITY INTEREST Recorded Oct 25, 2017
From: ZIH CORP.
To: JPMORGAN CHASE BANK, N.A., AS THE SUCCESSOR AGENT
Reel/Frame 044616/0736 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 24, 2016
From: CLEVENGER, NATHAN J.
To: ITR GROUP, INC.
Reel/Frame 037812/0154 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 24, 2016
From: ITR GROUP, INC.
To: ZIH CORP.
Reel/Frame 037814/0099 →