IP Library Granted Patent US 11,086,771
Granted Patent B2
US 11,086,771 · App. 15/292,980 · Granted Aug 10, 2021

Dynamic management and control of test features in native applications

Inventors: Jeff DiTullio (Menlo Park, CA); Nancy Hua (Mountain View, CA); Lisa Jakobovits (San Francicso, CA)
Assignee: Apptimize LLC
G06F11/3696G06F11/362
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 11,086,771
App. No.
15/292,980
Granted
Aug 10, 2021
Kind
B2
Abstract

Techniques are described herein for enhancing software application development and software design-for-test (DFT) technology by facilitating dynamic management and control of embedded dynamic test features via an application development and optimization platform. In some embodiments, an application development and optimization platform is described that can track, manage and rollout features of native mobile applications without the need to wait for public app store releases.

Claims (43)

1. A computing apparatus comprising:

one or more computer-readable storage media;

a processing system operatively coupled with the one or more computer-readable storage media; and

a native application comprising one or more functions of an embedded test feature that is part of native code of the native application, the embedded test feature switchable among a plurality of states, the plurality of states comprising a first state of the embedded test feature and a second state of the embedded test feature, and the native application stored on the one or more computer-readable storage media and comprising program instructions that, when executed by the processing system, direct the processing system to:

responsive to a first event that triggers the embedded test feature of the native application, execute the embedded test feature in the first state using first data that is included in the embedded test feature;

receive a manifest remotely via a network from an online application development and optimization platform, the manifest including an instruction to switch the first state of the embedded test feature of the native application to the second state, and including second data for replacing the first data;

process the manifest to switch the first state of the embedded test feature of the native application to the second state;

monitor execution of the program instructions associated with the native application for occurrence of a second event that triggers the embedded test feature of the native application;

responsive to the second event, replace the first data that is included in the embedded test feature with the second data that is included in the manifest; and

execute the embedded test feature in the second state using the second data.

2. The computing apparatus of claim 1 , wherein the second event that triggers the embedded test feature comprises a function call.

3. The computing apparatus of claim 2 , wherein to execute the embedded test feature in the second state, the program instructions, when executed by the processing system, direct the processing system to:

identify an original function that invokes the function call;

intercept the function call and responsively access the instruction to switch the first state of the embedded test feature to the second state; and

execute the embedded test feature in the second state.

4. The computing apparatus of claim 3 , wherein the program instructions, when executed by the processing system, further direct the processing system to return to the original function.

5. The computing apparatus of claim 1 , wherein the program instructions, when executed by the processing system, further direct the processing system to:

detect launch of the native application on the computing apparatus;

responsive to the launch of the native application on the computing apparatus, send a request to the online application development and optimization platform for the manifest.

6. The computing apparatus of claim 1 , wherein the instruction to switch the first state of the embedded test feature to the second state identifies one or more of a test state flag on the native application to be toggled, an instruction on the native application associated with the second state, or a data object on the native application associated with the second state.

7. The computing apparatus of claim 1 , wherein the second data that replaces the first data includes one or more of new objects, events, or actions for the embedded test feature.

8. The computing apparatus of claim 1 , wherein replacing the first data with the second data comprises a change to one or more of an image, a color, a call to action, or a layout.

9. The computing apparatus of claim 1 , wherein the embedded test feature comprises a dynamic variable or a code block.

10. The computing apparatus of claim 1 , wherein the object code of the native application is unmodified by the processing of the manifest to switch the first state of the embedded test feature to the second state.

11. The computing apparatus of claim 1 , wherein the native application includes an embedded control module that comprises a software development kit (SDK).

12. A method of dynamically enabling test features in a native application executing on a computing apparatus, the method comprising:

responsive to a first event that triggers an embedded test feature of the native application, executing the embedded test feature in a first state of the embedded test feature using first data that is included in the embedded test feature, wherein the embedded test feature is part of native code of the native application comprising one or more functions of the embedded test feature, the embedded test feature switchable among a plurality of states comprising the first state and a second state of the embedded test feature;

receiving, by the computing apparatus, a manifest remotely via a network from an online application development and optimization platform, the manifest including an instruction to switch the first state of the embedded test feature to the second state, and including second data for replacing the first data;

processing the manifest to switch the first state of the embedded test feature of the native application to the second state;

monitoring program instructions executing the native application on the computing apparatus for occurrence of a second event triggering the embedded test feature of the native application;

responsive to the second event, replacing the first data that is included in the embedded test feature with the second data that is included in the manifest; and

executing the embedded test feature in the second state using the second data.

13. The method of claim 12 , wherein the second event that triggers the embedded test feature comprises a function call, and wherein executing the embedded test feature in the second state comprises:

identifying an original function that invokes the function call;

intercepting the function call and responsively access the second state of the embedded test feature; and

executing the embedded test feature in the second state.

14. The method of claim 13 , further comprising returning to the original function.

15. The method of claim 12 , further comprising:

detecting launch of the native application on the computing apparatus;

responsive to the launch of the native application on the computing apparatus, sending a request to the online application development and optimization platform for the manifest.

16. The method of claim 12 , wherein the instruction to switch the first state of the embedded test feature to the second state identifies one or more of a test state flag on the native application to be toggled, an instruction on the native application associated with the second state, or a data object on the native application associated with the second state.

17. The method of claim 16 , wherein the second data that replaces the first data includes one or more of new objects, events, or actions for the embedded test feature.

18. The method of claim 12 , wherein replacing the first data with the second data comprises a change to one or more of an image, a color, a call to action, or a layout.

Assignments (6)
SECURITY INTEREST Recorded Jul 1, 2024
From: AIRSHIP GROUP, INC.; APPTIMIZE, LLC
To: RUNWAY GROWTH FINANCE CORP.
Reel/Frame 068099/0779 →
RELEASE OF SECURITY INTEREST Recorded Jun 28, 2024
From: WELLS FARGO BANK, NATIONAL ASSOCIATION
To: AIRSHIP GROUP, INC.; APPTIMIZE, LLC
Reel/Frame 067965/0545 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE'S NAME TO ADD A COMMA BETWEEN APPTIMIZE AND LLC PREVIOUSLY RECORDED ON REEL 050612 FRAME 0128. ASSIGNOR(S) HEREBY CONFIRMS THE CHANGE OF NAME. Recorded Feb 9, 2021
From: APPTIMIZE, INC.
To: APPTIMIZE, LLC
Reel/Frame 055278/0689 →
SECURITY INTEREST Recorded Apr 2, 2020
From: URBAN AIRSHIP, INC.; APPTIMIZE, LLC
To: WELLS FARGO BANK, NATIONAL ASSOCIATION
Reel/Frame 052308/0550 →
CHANGE OF NAME Recorded Oct 2, 2019
From: APPTIMIZE, INC.
To: APPTIMIZE LLC
Reel/Frame 050612/0128 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 26, 2017
From: DITULLIO, JEFF; HUA, NANCY; JAKOBOVITS, LISA
To: APPTIMIZE, INC.
Reel/Frame 041097/0424 →
Continuity (2)
Provisional Application 62240945 · Oct 13, 2015
Related Publication 20170132123A1 · May 11, 2017