Code Path Directives for Dynamic In-App Experience Control

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Application developers face time-consuming and costly processes when updating in-app experiences, as they must submit new versions for approval, update source code, and wait for approval through application stores before users can access new features.

Innovation Solution

Implementing code path directives that allow a web-based service to direct client applications to use alternative code paths already incorporated in the compiled code, enabling delivery of different experiences without modifying the code or re-deploying the application, using analytics data to select and target specific experiences based on user characteristics.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If developers submit new versions or updates of an application for approval through the application store, then the new features and in-app content can be made available to end-users, but the process becomes time-consuming and costly due to approval waiting periods and re-development requirements

Engineering Contradiction:
Improveability to update in-app content and experiencesVSAvoidtime for approval and re-deployment
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The patent segments the application into a stable compiled code base and separate configurable parameters. The compiled code is approved once through the application store, while specific in-app experiences are controlled by separate code path directives that can be updated without re-submission. This allows the application structure to be divided into approved components and dynamically configurable components.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements dynamic configuration of code paths within the already-approved application. Instead of static behavior, the application can dynamically select between multiple alternative code paths based on configuration parameters updated through the service provider's system, enabling real-time adaptation without re-deployment.

Inventive Principle:
Principle #15Dynamics

2Adaptability or versatility

If developers update source code and re-deploy through the application store, then in-app experiences can be changed, but the process becomes costly and time-consuming

Engineering Contradiction:
Improveability to change in-app experiencesVSAvoiddevelopment efficiency
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent separates the application into immutable compiled code (approved once) and mutable configuration parameters (updated dynamically). This segmentation allows developers to modify only the configuration parameters for in-app experience changes, rather than updating entire application versions, significantly improving development productivity.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a service provider system as an intermediary between the approved application and the end-users. This intermediary holds and manages alternative code paths and configuration parameters, allowing rapid updates to in-app experiences without requiring direct application store re-submission, thus eliminating approval delays.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Adaptability or versatility

If multiple alternative code paths are incorporated in compiled code, then different experiences can be delivered to clients, but the application must be updated and re-deployed through the application store to make changes

Engineering Contradiction:
Improveability to deliver different experiencesVSAvoidtime for code update and approval
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The patent prepares multiple alternative code paths in advance during the initial application compilation and approval process. All possible experience variations are built into the approved application binary, but only specific paths are activated through configuration. This preliminary preparation eliminates the need for future updates to add new experiences.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent enables dynamic selection among pre-prepared code paths through runtime configuration updates. The service provider can change which code path is active without re-compiling or re-deploying the application, allowing instantaneous switching between different experiences based on user characteristics or contextual factors.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS9692808B2Code path directives for controlling in-app experiences
Publication Date: 2017.06.27 ADOBE INC
  • US9692808B2 patent drawing
  • US9692808B2 patent drawing
  • US9692808B2 patent drawing

AI summary

Code path directives for controlling in-app experiences are described herein that may be used to direct client applications regarding usage of multiple alternative code paths incorporated with the client applications. The code paths are implemented as part of compiled code for the applications and the code path directives enable delivery of different experiences to clients without changing the compiled code or re-deploying the application through an application store, or otherwise. In various implementations, analytics data that describes contextual characteristics for usage of a client application having alternative code paths is obtained by a service. The service selects one of the code paths based on processing of the collected analytics data and configures a corresponding code path directive to contain an indication of the selected code paths. Then, communication of the code path directive to the client device causes the client application to execute using the selected code path.