IP Library Granted Patent US 12,360,746
Granted Patent B2
US 12,360,746 · App. 18/514,669 · Granted Jul 15, 2025

Generating and updating voice-based software applications using application templates

Inventor: Tarun Jain (Mountain View, CA)
Assignee: GOOGLE LLC
G06F8/33G06F3/0482G10L15/1815G10L15/1822G10L15/22G10L15/28H04N21/2387H04N21/4586G10L2015/088G10L2015/223
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 12,360,746
App. No.
18/514,669
Granted
Jul 15, 2025
Kind
B2
Abstract

Systems and methods of generating voice-based software applications are provided. A system can receive, from an application developer computing device, a request to build a voice-based software application. The system can select an application template from a plurality of application templates. The selected application template can include a module that corresponds to a function of the voice-based software application. The system can provide the selected application template to the application developer computing device. The system can receive, from the application developer computing device, an input for a field of the at least one module of the selected application template. The system can generate the voice-based software application based on the selected application template and the input for the at least one field of the at least one module of the selected application template.

Claims (60)

1. A method of generating voice-based software applications, comprising:

receiving a request to build a software application,

selecting an application template from a plurality of application templates to build the software application,

wherein the selected application template includes a module that corresponds to a function of the software application and a blank field that corresponds to customizable aspects of the module, and

wherein code for the module that corresponds to the function of the software application is reusable code common to one or more applications;

causing the selected application template to be displayed via a computing device, to receive user input that fills the blank field;

receiving an input that fills the blank field, the input being provided via the computing device;

generating the software application using computer code that includes the reusable code and that includes customized code that corresponds to the input received via the computing device;

determining that an update, to the reusable code for the module that corresponds to the function of the software application, becomes available; and

in response to determining that the update to the reusable code becomes available:

automatically updating the software application, to generate an updated software application, using the update to the reusable code and the customized code that corresponds to the input received via the computing device.

2. The method of claim 1 , wherein selecting the application template from the plurality of application templates comprises:

selecting the application template based on a type of the software application determined from the request.

3. The method of claim 1 , wherein the module is a video display module providing a video display area for displaying video content, a video control module providing one or more user interface elements that allow control of the video content, a text display module providing a text display area for displaying text-based content, or an application navigation module providing one or more additional user interface elements that allow navigation between pages of the software application.

4. The method of claim 3 , wherein the reusable code at least corresponds to the video display area or a video control feature.

5. The method of claim 4 , wherein the reusable code corresponds to the video control feature and wherein the video control feature corresponds to a play interface element, a pause interface element, a rewind interface element, or a forward interface element.

6. The method of claim 3 , wherein the customized code corresponds to the video content displayed within the video display area.

7. The method of claim 1 , wherein automatically updating the software application, to generate the updated software application using the update to the reusable code comprises:

causing a change in a graphical user interface element for the function.

8. The method of claim 7 , wherein the change includes an appearance, arrangement, or position of the graphical user interface element.

9. The method of claim 7 , wherein the graphical user interface element is a selectable button displayed in connection with the module of the software application.

10. The method of claim 1 , wherein automatically updating the software application, to generate the updated software application using the update to the reusable code comprises:

causing a change to the function to allow the software application to perform an updated function.

11. The method of claim 1 , wherein causing the selected application template to be displayed via the computing device comprises:

causing the selected application template to be displayed within a web-based graphical user interface of the computing device.

12. The method of claim 1 , further comprising:

in response to receiving, via the computing device, the input that fills the blank field:

automatically generating the customized code that corresponds to the input to fill one or more placeholder slots in the computer code that corresponds to the blank field.

13. The method of claim 1 , wherein the reusable code for the module is maintained in a data repository.

14. A system comprising at least one processor and memory to:

receive a request to build a software application;

select an application template from a plurality of application templates to build the software application,

wherein the selected application template includes a module that corresponds to a function of the software application and a blank field that corresponds to customizable aspects of the module, and

wherein code for the module that corresponds to the function of the software application is reusable code common to one or more applications;

causes the selected application template to be displayed via a computing device, to receive user input that fills the blank field;

receive an input that fills the blank field, the input being provided via the computing device;

generate the software application using computer code that includes the reusable code and that includes customized code that corresponds to the input received via the computing device;

determine that an update, to the reusable code for the module that corresponds to the function of the software application, becomes available; and

in response to determining that the update to the reusable code becomes available:

automatically update the software application, to generate an updated software application, using the update to the reusable code and the customized code that corresponds to the input received via the computing device.

15. The system of claim 14 , wherein the system automatically updates the software application, to generate the updated software application using the update to the reusable code by:

causing a change in a graphical user interface element for the function.

16. The system of claim 15 , wherein the change includes an appearance, arrangement, or position of the graphical user interface element.

17. The system of claim 15 , wherein the graphical user interface element is a selectable button displayed in connection with the module of the software application.

18. The system of claim 14 , wherein the system automatically updates the software application, to generate the updated software application using the update to the reusable code by:

causing a change to the function to allow the software application to perform an updated function.

19. The system of claim 14 , wherein the at least one processor and memory is further to:

in response to receiving, via the computing device, the input that fills the blank field:

automatically generate the customized code to fill one or more placeholder slots in the computer code that correspond to the blank field.

20. A non-transitory computer-readable medium comprising computer-executable instructions that, when executed by one or more processors, cause the one or more processors to perform operations comprising:

receiving a request to build a software application;

selecting an application template from a plurality of application templates to build the software application,

wherein the selected application template includes a module that corresponds to a function of the software application and a blank field that corresponds to customizable aspects of the module, and

wherein code for the module that corresponds to the function of the software application is reusable code common to one or more applications;

causing the selected application template to be displayed via a computing device, to receive user input that fills the blank field;

receiving an input that fills the blank field, the input being provided via the computing device;

generating the software application using computer code that includes the reusable code and that includes customized code that corresponds to the input received via the computing device;

determining that an update, to the reusable code for the module that corresponds to the function of the software application, becomes available; and

in response to determining that the update to the reusable code becomes available:

automatically updating the software application, to generate an updated software application, using the update to the reusable code and the customized code that corresponds to the input received via the computing device.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 20, 2023
From: JAIN, TARUN
To: GOOGLE LLC
Reel/Frame 065921/0878 →
Continuity (3)
Continuation 17049206
Provisional Application 62843920 · May 6, 2019
Related Publication 20240094994A1 · Mar 21, 2024
References Cited (41)
US 6173266B1 · Marx et al. · 2001 [cited by applicant]
US 7324947B2 · Jordan et al. · 2008 [cited by applicant]
US 10521188B1 · Christie · 2019 [cited by applicant]
US 11153147B2 · Wu et al. · 2021 [cited by applicant]
US 20040225499A1 · Wang et al. · 2004 [cited by applicant]
US 20050125232A1 · Gadd · 2005 [cited by applicant]
US 20050135338A1 · Chiu et al. · 2005 [cited by applicant]
US 20060031904A1 · Groff · 2006 [cited by applicant]
US 20070157237A1 · Cordray · 2007 [cited by applicant]
US 20080209482A1 · Meek · 2008 [cited by applicant]
US 20100007458A1 · Cannistraro · 2010 [cited by applicant]
US 20110202370A1 · Green, III · 2011 [cited by examiner]
US 20110321103A1 · Yao · 2011 [cited by applicant]
US 20120185772A1 · Kotelly et al. · 2012 [cited by applicant]
US 20120198418A1 · Agarwal et al. · 2012 [cited by applicant]
US 20130125168A1 · Agnihotri · 2013 [cited by applicant]
US 20140186010A1 · Guckenberger · 2014 [cited by applicant]
US 20140379338A1 · Fry · 2014 [cited by examiner]
US 20150379209A1 · Kusuma · 2015 [cited by applicant]
US 20160173683A1 · Abreu · 2016 [cited by applicant]
US 20170126772A1 · Campbell · 2017 [cited by applicant]
US 20180276248A1 · Burkett et al. · 2018 [cited by applicant]
US 20180324115A1 · Aggarwal · 2018 [cited by examiner]
US 20190073197A1 · Collins · 2019 [cited by applicant]
US 20190174208A1 · Speicher · 2019 [cited by examiner]
US 20190179606A1 · Thangarathnam · 2019 [cited by applicant]
US 20190179607A1 · Thangarathnam · 2019 [cited by applicant]
US 20190387386A1 · Sethi · 2019 [cited by applicant]
US 20200186382A1 · Harel et al. · 2020 [cited by applicant]
US 20210165638A1 · Warstler · 2021 [cited by examiner]
US 20210337249A1 · Jain · 2021 [cited by applicant]
US 20240232954A1 · Gardyne · 2024 [cited by examiner]
CN 103701909 · 2014 [cited by applicant]
CN 108541312 · 2018 [cited by applicant]
CN 108632653 · 2018 [cited by applicant]
CN 109492175 · 2019 [cited by applicant]
European Patent Office; Communication pursuant to Article 94(3) issued in Application No. 20730792.7; 9 pages; dated Apr. 28, 2023. [cited by applicant]
European Patent Office; International Search Report and Written Opinion of PCT Ser. No. PCT/US2020/031504; 11 pages; dated Aug. 6, 2020. [cited by applicant]
China National Intellectual Property Administration; Notice of Grant issued in Application No. 202080026185.7; 6 pages; dated May 16, 2024. [cited by applicant]
China National Intellectual Property Administration; Notification of First Office Action issued in Application No. 202080026185.7; 30 pages; dated Dec. 20, 2023. [cited by applicant]
European Patent Office; Intention to Grant issued in Application No. 20730792.7; 68 pages; dated Jan. 7, 2025. [cited by applicant]