Mobile Shell Widget Proxy for Cross-Platform Deployment

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Developing and maintaining software applications across different computing platforms is time-consuming due to the need for platform-specific code, leading to increased developer effort and complexity, especially when applications require custom logic and user interfaces tailored to various devices.

Innovation Solution

A mobile shell that allows native and platform-agnostic widgets to execute within a native environment, using a runtime container with common services like activity logging and analytics, and a widget API for loading and unloading widgets, enabling a unified user experience across platforms through modular UI components.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If platform-specific code monoliths are used to build applications for different platforms, then applications can be tailored to specific devices with custom logic and user interfaces, but the difficulty and time required to develop and maintain applications increases significantly

Engineering Contradiction:
Improveplatform-specific customizationVSAvoidapplication structure
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent divides the application into separate modules: a platform-agnostic core application and platform-specific adapter layers. This segmentation allows the core logic to remain simple and reusable across platforms, while customization is achieved through modular adapters rather than complex monolithic codebases.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent creates a universal application core that can run on multiple platforms without modification. This core application provides common functionality that serves all platforms, reducing the need for separate codebases and simplifying maintenance while still allowing platform-specific adaptations through standardized interfaces.

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

2Adaptability or versatility

If multiple versions of the same application are built for different devices and workflow variations, then each device's specific requirements can be met, but the amount of developer time needed to build and maintain applications increases

Engineering Contradiction:
Improveworkflow variation supportVSAvoiddeveloper efficiency
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent implements a single universal application core that handles multiple workflow variations through configuration rather than separate codebases. This allows developers to maintain one codebase that serves multiple purposes and platforms, significantly improving productivity while maintaining adaptability to different workflow requirements.

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

Solution Approach 2:

The patent uses parameter-based configuration to adapt the application to different workflows and platforms. Instead of writing separate code for each variation, the system changes runtime parameters and configuration settings to accommodate different scenarios, reducing developer effort and maintenance overhead.

Inventive Principle:
Principle #35Parameter changes

3Productivity

If common code components are modified to support new functionality, then applications can be updated with new features, but developers must verify that modifications do not adversely affect existing applications

Engineering Contradiction:
Improvecode reusabilityVSAvoidapplication stability
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent segments the codebase into isolated modules with well-defined interfaces. When common code components need modification, changes are confined to specific modules without affecting other parts of the system. This modular architecture allows for safer updates and easier verification of modifications.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces adapter layers and interface definitions that act as intermediaries between the core application and platform-specific implementations. This allows modifications to be made in isolated adapter modules without directly impacting the core application logic, maintaining stability while enabling updates.

Inventive Principle:
Principle #24Intermediary (Mediator)

4Productivity

If a unified application architecture is used across platforms, then development and maintenance time is reduced, but platform-specific optimizations and customizations may be limited

Engineering Contradiction:
Improvedevelopment efficiencyVSAvoidplatform optimization
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The patent creates a universal application core that provides platform-agnostic functionality, improving development efficiency. Simultaneously, it incorporates standardized adapter interfaces that enable platform-specific optimizations and customizations without compromising the unified architecture's benefits.

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

Solution Approach 2:

The patent applies the principle of local quality by allowing platform-specific adaptations only in designated adapter modules while keeping the core application unified. This enables targeted optimizations for specific platforms without requiring changes to the entire codebase, maintaining both efficiency and adaptability.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS11042387B2Deploying cross-platform applications on mobile devices with native and web components
Publication Date: 2021.06.22 INTUIT INC
  • US11042387B2 patent drawing
  • US11042387B2 patent drawing
  • US11042387B2 patent drawing

AI summary

This disclosure relates to cross-platform applications that include native and non-native components on mobile devices. An exemplary method generally includes receiving a first workflow step definition including a first set of widgets to be loaded into an application shell. A mobile shell identifies a type of each widget in the first set of widgets (e.g., native or platform-agnostic) and loads each widget into the mobile shell based on the widget type. For a platform-agnostic widget, the mobile shell creates a platform-agnostic widget proxy service, which provides a runtime environment. The platform-agnostic widget may be loaded into the platform-agnostic widget proxy service and executes in the runtime provided thereby.