IP Library Granted Patent US 8,601,449
Granted Patent B2
US 8,601,449 · App. 13/088,172 · Granted Dec 3, 2013

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 8,601,449
App. No.
13/088,172
Granted
Dec 3, 2013
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 (59)

1. A method comprising:

inputting of business logic source code, the business logic source code not containing substantial amounts of code specific to any platform and the business logic source code defines substantially all functionality of the application that is specific to an application;

compiling platform-specific code associated with a first platform and the business logic source code, thereby generating a first set of computer-executable instructions,

distributing the first set of computer-executable instructions to devices that provide the first platform and that are capable of executing the first set of computer-executable instructions, executing the first set of computer-executable instructions causing the devices that provide the first platform to provide the application; and

compiling platform-specific code associated with a second platform and the business logic source code, thereby generating a second set of computer-executable instructions,

distributing the second set of computer-executable instructions to devices that provide the second platform and that are capable of executing the second set of computer-executable instructions, executing the second set of computer-executable instructions causing the devices that provide the second platform to provide the application wherein generating the first set of computer-executable instructions comprises compiling a first set of platform-specific code, the first set of platform-specific code being specific to the first platform; and wherein generating the second set of computer-executable instructions comprise compiling a second set of platform-specific code, the second set of platform-specific code being specific to the second platform, wherein generating the first set of computer-executable instructions comprises compiling layer source code, the layer source code not containing code specific to the first platform or the second platform the layer source code defining a layer class that comprises a load operation that loads content into a layer module, the layer module being an instance of the layer class; wherein generating the second set of computer-executable instructions comprises compiling the layer source code; 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.

2. The method of claim 1 ,

wherein distributing the first set of computer-executable instructions comprises making the first set of computer-executable instructions available for purchase at an application store; and

wherein distributing the second set of computer-executable instructions comprises making the second set of computer-executable instructions available for purchase at the application store or another application store.

3. A method comprising:

generating a first set of computer-executable instructions by compiling a first set of source code, the first set of source code including business logic source code, the first set of computer-executable instructions suitable for execution on a first platform;

generating a second set of computer-executable instructions by compiling a second set of source code, the second set of source code including the business logic source code, the second set of computer-executable instructions suitable for execution on a second platform,

wherein the business logic source code is substantially free of code specific to the first platform and substantially free of code specific to the second platform,

wherein the business logic source code defines substantially all functionality of the application that is specific to the application;

distributing the first set of computer-executable instructions to devices that provide the first platform and that are capable of executing the first set of computer-executable instructions;

executing the first set of computer-executable instructions causing the devices that provide the first platform to provide the application;

causing the devices that provide the first platform to provide the application;

distributing the second set of computer-executable instructions to devices that provide the second platform and that are capable of executing the second set of computer-executable instructions;

executing the second set of computer-executable instructions; and

causing the devices that provide the second platform to provide the application wherein generating the first set of computer-executable instructions comprises compiling a first set of platform-specific code, the first set of platform-specific code being specific to the first platform; and wherein generating the second set of computer-executable instructions comprise compiling a second set of platform-specific code, the second set of platform-specific code being specific to the second platform, wherein generating the first set of computer-executable instructions comprises compiling layer source code, the layer source code not containing code specific to the first platform or the second platform, the layer source code defining a layer class that comprises a load operation that loads content into a layer module, the layer module being an instance of the layer class; wherein generating the second set of computer-executable instructions comprises compiling the layer source code; 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.

4. The method of claim 1 , further comprising: copying the first set of platform-specific code from a data storage system provided by an outside party.

5. The method of claim 1 ,

wherein the application has a set of layers, each of the layers associated with a layer URI; and

wherein generating the first set of computer-executable instructions comprises compiling application source code, the application source code not containing code specific to the first platform or the second platform, the application source code defining functionality of an application module, the application module having a navigation operation that is invoked when a navigation request is received, the navigation operation providing a load request to the layer module when a layer URI specified by the navigation request is associated with the layer module, the load request comprising a request to perform the load operation of the layer module.

6. The method of claim 5 ,

wherein the first set of 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

wherein the second set of 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 of claim 6 , wherein generating the first set of computer-executable instructions comprises generating a first package, the first package comprising computer-executable instructions that define functionality of the layer module, the application module, and the first binding module, the first package suitable for installation on computing devices that provide the first platform.

8. The method of claim 5 , further comprising generating a shell application package that comprises computer-executable instructions that when executed on a device cause the device to provide a shell application that appears to be performing operations of the application, the shell application actually sending navigation requests to the application module and receiving serialized interface data from the first binding module, the application module and the first binding module operating at a server system.

9. The method of claim 5 , wherein generating the set of instructions comprises:

generating a client package that comprises instructions that define functionality of the first binding module, the client package suitable for installation on computing devices that provide the first platform; and

generating a server package that comprises instructions that define functionality of the layer module and the application module, the server package suitable for installation on server devices.

10. The method of claim 3 , further comprising:

wherein distributing the first set of computer-executable instructions comprises pushing the first set of computer-executable instructions out to devices in an organization that provide the first platform; and

wherein distributing the second set of computer-executable instructions comprises pushing the second set of computer-executable instructions out to devices in the organization that provide the second platform.

11. The method of claim 3 , wherein the business logic source code does not include code that is conditionally executed depending on which platform is running the application.

12. A method comprising:

obtaining a first set of platform-specific code and a second set of platform-specific code from one or more outside parties, the first set of platform-specific code being associated with a first platform, the second set of platform-specific code being associated with a second platform;

developing business logic source code for a first application, the business logic source code defining substantially all functionality of the first application that is specific to the first application, the first set of platform-specific code and the second-set of platform specific code being substantially free of code specific to the first application;

using one or more computing devices to generate a first set of computer-executable instructions and a second set of computer-executable instructions,

wherein the one or more computing devices generate the first set of computer-executable instructions by compiling a first set of source code, the first set of source code including the business logic source code and the first set of platform-specific code; and

wherein the one or more computing devices generate the second set of computer-executable instructions by compiling a second set of source code, the second set of source code including the business logic source code and the second set of platform-specific code;

installing the first set of computer-executable instructions on a first device, the first device providing the first platform, execution of the first set of computer-executable instructions by the first device causing the first device to present user interfaces of the first application using only user interface features that are native to the first platform; and

installing the second set of computer-executable instructions on a second device, the second device providing the second platform, execution of the second set of computer-executable instructions by the second device causing the second device to present the user interfaces of the first application using only user interface features that are native to the second platform wherein generating the first set of computer-executable instructions comprises compiling a first set of platform-specific code, the first set of platform-specific code being specific to the first platform; and wherein generating the second set of computer-executable instructions comprise compiling a second set of platform-specific code, the second set of platform-specific code being specific to the second platform, wherein generating the first set of computer-executable instructions comprises compiling layer source code, the layer source code not containing code specific to the first platform or the second platform, the layer source code defining a layer class that comprises a load operation that loads content into a layer module, the layer module being an instance of the layer class; wherein generating the second set of computer-executable instructions comprises compiling the layer source code; 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.

13. The method of claim 12 , further comprising:

developing business logic source code for a second application; and

using the business logic source code for the second application, the first set of platform-specific source code, and the second set of platform-specific source code to generate sets of computer-executable instructions suitable for execution on the first and second platforms.

14. A computing system comprising:

one or more data storage media that store:

computer-executable instructions; and

business logic source code for an application, the business logic source code substantially free from source code specific to any platform, the business logic source code defining substantially all functionality of the application that is specific to the application; and

a processing unit that reads the instructions from the one or more data storage media and executes the instructions, execution of the instructions by the processing unit causing the computing system to use the business logic source code to generate multiple packages, the packages suitable for execution on different platforms, execution of the packages on the platforms causing computing devices that provide the platforms to provide the application wherein generating a first set of computer-executable instructions comprises compiling a first set of platform-specific code, the first set of platform-specific code being specific to a first platform; and wherein generating a second set of computer-executable instructions comprise compiling a second set of platform-specific code, the second set of platform-specific code being specific to a second platform, wherein generating the first set of computer-executable instructions comprises compiling layer source code, the layer source code not containing code specific to the first platform or the second platform, the layer source code defining a layer class that comprises a load operation that loads content into a layer module, the layer module being an instance of the layer class; wherein generating the second set of computer-executable instructions comprises compiling the layer source code; 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.

15. The computing system of claim 14 , wherein the different platforms include platforms provided by different types of mobile devices.

16. A non-transitory computer-readable data storage medium that stores instructions that, when executed by a processing unit of a computing system, cause the computing system to:

generate a first set of instructions by compiling platform-specific code associated with a first platform and business logic source code, execution of the first set of instructions causing devices that provide the first platform to provide an application, the business logic source code not containing substantial amounts of code specific to any platform, the business logic source code defining substantially all functionality of the application that is specific to the application; and

generate a second set of instructions by compiling platform-specific code associated with a second platform and the business logic source code, execution of the second set of instructions causing devices that provide the second platform to provide the application;

wherein the business logic source code defines a plurality of layers;

wherein execution of the first set of instructions causes the devices that provide the first platform to load content into the layers and to display the content in the layers using user interface features that are native to the first platform; and

wherein execution of the second set of instructions causes the devices that provide the second platform to load the content into the layers and to display the content in the layers using user interface features that are native to the first platform wherein generating the first set of computer-executable instructions comprises compiling a first set of platform-specific code, the first set of platform-specific code being specific to the first platform; and wherein generating the second set of computer-executable instructions comprise compiling a second set of platform-specific code, the second set of platform-specific code being specific to the second platform, wherein generating the first set of computer-executable instructions comprises corn layer source code, the layer source code not containing code specific to the first platform or the second platform, the layer source code defining a layer class that comprises a load operation that loads content into a layer module, the layer module being an instance of the layer class; wherein generating the second set of computer-executable instructions comprises compiling the layer source code; 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.

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: ITR GROUP, INC.
To: ZIH CORP.
Reel/Frame 037814/0099 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 25, 2011
From: CLEVENGER, NATHAN J.
To: ITR GROUP, INC.
Reel/Frame 026176/0765 →