Mobile App Environment Switching via Runtime Config

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional software testing requires modifying and recompiling application code to switch between different environments, leading to inconsistencies and inefficiencies.

Innovation Solution

A system that allows a mobile application to retrieve an environment selector value from a separate memory location, initializing configuration data for multiple environments, enabling the application to execute correctly without needing specific environment data during compilation, by using a configuration module that maps to different environments based on the selector value.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If application code is modified and recompiled to switch between different environments, then the application can adapt to different environments, but the process becomes time-consuming and inconsistent

Engineering Contradiction:
Improveenvironment adaptabilityVSAvoidcompilation time
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The patent segments the application into two independent parts: the application code and the configuration data. The application code remains unchanged and is compiled once, while the configuration data is separated and can be selectively loaded for different environments. This segmentation allows environment switching without recompilation, resolving the contradiction between adaptability and compilation time.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent extracts the environment-specific configuration data from the application code itself. By taking out the configuration information into a separate data structure that can be loaded at runtime, the system eliminates the need to recompile the application code when switching environments, thus reducing time loss while maintaining environment adaptability.

Inventive Principle:
Principle #2Taking out (Extraction)

2Adaptability or versatility

If application code is modified and recompiled to switch between different environments, then the application can adapt to different environments, but inconsistencies arise during the process

Engineering Contradiction:
Improveenvironment adaptabilityVSAvoidenvironment configuration consistency
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

By segmenting the application into code and configuration data, the patent ensures that the code remains consistent across all environments while the configuration data can be selectively loaded. This eliminates inconsistencies that arise from modifying code, as the same codebase is used universally with only configuration variations.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent performs preliminary action by pre-defining all possible environment configurations in a centralized configuration data structure before the application runs. This allows the system to load the appropriate pre-configured environment data without modifying code, ensuring consistency and reliability across environment switches.

Inventive Principle:
Principle #10Preliminary action

3Reliability

If environment-specific code is used, then the application executes correctly in each environment, but the device complexity increases

Engineering Contradiction:
Improveenvironment execution correctnessVSAvoidcode structure complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent implements universality by designing a single application codebase that can function in multiple environments. Instead of creating separate environment-specific code versions, the same universal code loads different configuration data for different environments, reducing device complexity while maintaining execution correctness.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The patent introduces configuration data as an intermediary between the universal application code and the different environments. This intermediary layer allows the code to adapt to various environments without direct environment-specific code modifications, simplifying the overall code structure while ensuring correct execution in each environment.

Inventive Principle:
Principle #24Intermediary (Mediator)

4Ease of manufacture

If configuration data is stored within the application, then the application is self-contained, but the flexibility to switch environments is reduced

Engineering Contradiction:
Improveapplication self-containmentVSAvoidenvironment switching flexibility
Core Design Contradiction:
Ease of manufactureVSAdaptability or versatility

Solution Approach 1:

The patent segments the application into the application code and the configuration data, allowing the code to be self-contained while configuration data can be externally loaded. This segmentation maintains self-containment for the core functionality while enabling environment switching flexibility through separate configuration loading.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces dynamics by allowing the configuration data to be loaded dynamically at runtime rather than being statically embedded. This enables the application to adapt to different environments dynamically while maintaining a clean separation between the self-contained code and the flexible configuration data.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS9104444B2Mobile application configuration
Publication Date: 2015.08.11 VERIZON PATENT & LICENSING INC
  • US9104444B2 patent drawing
  • US9104444B2 patent drawing
  • US9104444B2 patent drawing

AI summary

A user device receives a mobile application that defines multiple environments associated with the mobile application and launches the mobile application. After the launching the mobile application, the user device retrieves an environment selector value for the mobile application and initializes the mobile application with configuration data for a particular environment of the multiple environments. The particular environment is selected from the multiple environments based on the environment selector value.