IP Library Granted Patent US 8,910,115
Granted Patent B2
US 8,910,115 · App. 13/437,640 · Granted Dec 9, 2014

Systems and methods for application development

Inventors: Sathyanarayana V. Reddy (Hyderabad, IN); Srikanth Tamalampudi (Andhra Pradesh, IN); Prajakt Deshpande (Hyderabad, IN); Rajendra Komandur (Hyderabad, IN); Pattabhi Rama Rao Dasari (Hyderabad, IN); Rajkumar Koneru (Windermere, FL)
Assignee: Kony Solutions, Inc.
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,910,115
App. No.
13/437,640
Granted
Dec 9, 2014
Kind
B2
Abstract

Systems and methods are described herein for generating native applications for multiple platforms from a single code base.

Claims (51)

1. A method for generating native applications for multiple platforms, the method comprising:

providing an application developer studio that provides functionalities for developing a software application for multiple platforms utilizing a single code base, the application developer studio performing a method of:

storing a first source code having a format corresponding to a first programming language,

compiling, via a universal-executable generation system, the first source code to generate a first application that includes calls to one or more non-platform-specific programming interfaces associated with the first programming language,

determining, via the universal-executable generation system, a first virtualization layer to be used in conjunction with the first application, the virtualization layer being configured to map the one or more non-platform-specific programming interfaces associated with the first programming language to one or more platform specific programming interfaces associated with a second programming language,

wrapping, via the universal-executable generation system, the first application with the first virtualization layer to generate a second application associated with the second programming language, and

generating, via the universal-executable generation system, independent of generating the second application, platform specific source code based on the first source code and associated with the second programming language;

wherein a first non-platform-specific programming interface associated with the first programming language is mapped to multiple platform specific programming interfaces associated with the second programming language.

2. The method of claim 1 , further comprising:

determining a second virtualization layer to be used in conjunction with the first application, the virtualization layer being configured to map the one or more non-platform-specific programming interfaces associated with the first programming language to one or more platform specific programming interfaces associated with a third programming language;

wrapping the first application with the second virtualization layer to create a third application associated with the third programming language.

3. The method of claim 1 , wherein determining the first virtualization layer comprises determining the first virtualization layer based on at least one of hardware of a device and a platform running on the device, wherein the device is configured to execute the second application.

4. The method of claim 3 , wherein the platform comprises at least one of the following: a specific version of a mobile operating system and a specific web browser.

5. The method of claim 1 , wherein the one or more platform specific programming interfaces comprises one or more of the following: native application programming interfaces, hypertext markup language, Flash, widgets, Javascript, and cascading style sheets.

6. The method of claim 1 , wherein the first programming language comprises one of Lua and Javascript.

7. The method of claim 1 , wherein the second programming language is associated with one of the following: iOS, Android, webOS, Windows Phone, Windows Mobile, Blackberry OS, Bada, Meego, Symbian Maemo, and Tizen.

8. The method of claim 1 , further comprising:

updating the second application by updating the first application and not the virtualization layer wrapped with the first application in the second application.

9. The method of claim 8 , wherein updating the first application comprises downloading a third application and replacing the first application with the third application without changing the virtualization layer.

10. The method of claim 8 , wherein the second application further comprises a download manager that performs the updating.

11. An apparatus for generating native applications for multiple platforms, the apparatus comprising:

a memory configured to store a first source code having a format corresponding to a first programming language; and

at least one processor coupled to the memory, the processor configured to provide an application developer studio that provides functionalities for developing a software application for multiple platforms utilizing a single code base, the application developer studio performing a method of:

compiling, via a universal-executable generation system, the first source code to generate a first application that includes calls to one or more non-platform-specific programming interfaces associated with the first programming language,

determining, via a universal-executable generation system, a first virtualization layer to be used in conjunction with the first application, the virtualization layer being configured to map the one or more non-platform-specific programming interfaces associated with the first programming language to one or more platform specific programming interfaces associated with a second programming language,

wrapping, via a universal-executable generation system, the first application with the first virtualization layer to generate a second application associated with the second programming language, and

generating, via a universal-executable generation system, independent of the generation of the second application, platform specific source code based on the first source code and associated with the second programming language;

wherein a first non-platform-specific programming interface associated with the first programming language is mapped to multiple platform specific programming interfaces associated with the second programming language.

12. The apparatus of claim 11 , wherein the processor is further configured to:

determine a second virtualization layer to be used in conjunction with the first application, the virtualization layer being configured to map the one or more non-platform-specific programming interfaces associated with the first programming language to one or more platform specific programming interfaces associated with a third programming language;

wrap the first application with the second virtualization layer to create a third application associated with the third programming language.

13. The apparatus of claim 11 , wherein the processor is further configured to determine the first virtualization layer based on at least one of hardware of a device and a platform running on the device, wherein the device is configured to execute the second application.

14. The apparatus of claim 13 , wherein the platform comprises at least one of the following: a specific version of a mobile operating system and a specific web browser.

15. The apparatus of claim 11 , wherein the one or more platform specific programming interfaces comprises one or more of the following: native application programming interfaces, hypertext markup language, Flash, widgets, Javascript, and cascading style sheets.

16. The apparatus of claim 11 , wherein the first programming language comprises one of Lua and Javascript.

17. The apparatus of claim 11 , wherein the second programming language is associated with one of the following: iOS, Android, webOS, Windows Phone, Windows Mobile, Blackberry OS, Bada, Meego, Symbian Maemo, and Tizen.

18. The apparatus of claim 11 , wherein the processor is further configured to:

update the second application by updating the first application and not the virtualization layer wrapped with the first application in the second application.

19. The apparatus of claim 18 , wherein updating the first application comprises downloading a third application and replacing the first application with the third application without changing the virtualization layer.

20. The apparatus of claim 18 , wherein the second application further comprises a download manager that performs the updating.

21. A non-transitory computer-readable medium storing instructions that when executed by at least one computer causes the at least one computer to perform a method, the method comprising:

providing an application developer studio that provides functionalities for developing a software application for multiple platforms utilizing a single code base, the application developer studio performing a method of:

storing a first source code having a format corresponding to a first programming language,

compiling, via a universal-executable generation system, the first source code to generate a first application that includes calls to one or more non-platform-specific programming interfaces associated with the first programming language,

determining, via a universal-executable generation system, a first virtualization layer to be used in conjunction with the first application, the virtualization layer being configured to map the one or more non-platform-specific programming interfaces associated with the first programming language to one or more platform specific programming interfaces associated with a second programming language,

wrapping, via a universal-executable generation system, the first application with the first virtualization layer to generate a second application associated with the second programming language, and

generating, via a universal-executable generation system, independent of generating the second application, platform specific source code based on the first source code and associated with the second programming language;

wherein a first non-platform-specific programming interface associated with the first programming language is mapped to multiple platform specific programming interfaces associated with the second programming language.

22. The method of claim 1 , wherein the application development studio further provides a forms tool for developing different types and kinds of forms.

23. The method of claim 1 , wherein the application development studio further provides a code assistant for developing business logic.

24. The method of claim 1 , wherein the application development studio further provides a service definition tool for defining process flow logic in forms or applications on a server side.

Assignments (9)
RELEASE OF SECURITY INTEREST Recorded Jan 6, 2021
From: ORIX GROWTH CAPITAL, LLC
To: KONY, INC.
Reel/Frame 054829/0562 →
RELEASE OF SECURITY INTEREST Recorded Jul 9, 2019
From: SILICON VALLEY BANK
To: KONY, INC.
Reel/Frame 049706/0024 →
RELEASE OF SECURITY INTEREST Recorded Jul 9, 2019
From: SILICON VALLEY BANK
To: KONY, INC.
Reel/Frame 049706/0046 →
RELEASE OF SECURITY INTEREST Recorded Jul 9, 2019
From: SILICON VALLEY BANK
To: KONY, INC.
Reel/Frame 049706/0185 →
SECURITY INTEREST Recorded Sep 5, 2017
From: KONY, INC.
To: ORIX GROWTH CAPITAL, LLC
Reel/Frame 043489/0497 →
SECURITY AGREEMENT Recorded May 4, 2016
From: KONY, INC.
To: SILICON VALLEY BANK
Reel/Frame 038606/0858 →
SECURITY AGREEMENT Recorded Feb 21, 2014
From: KONY, INC.
To: SILICON VALLEY BANK; GOLD HILL CAPITAL 2008, LP
Reel/Frame 032321/0456 →
SECURITY AGREEMENT Recorded Feb 21, 2014
From: KONY, INC.
To: SILICON VALLEY BANK
Reel/Frame 032321/0527 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 17, 2012
From: REDDY, SATHYANARAYANA V.; TAMALAMPUDI, SRIKANTH; DESHPANDE, PRAJAKT; KOMANDUR, RAJENDRA; DASARI, PATTABHI RAMA RAO; KONERU, RAJKUMAR
To: KONY SOLUTIONS, INC.
Reel/Frame 028061/0437 →
Continuity (1)
Related Publication 20130263083A1 · Oct 3, 2013