Client App Development
This guide provides comprehensive instructions for developing client applications using the UI Protocol system.
Overview
Client applications are React-based applications that integrate with larger host applications such as Omnitron or Seller Center. These applications can function as complete page implementations or as embedded components within predefined placeholders.
Getting Started
Create Your Application
Use the create-akinon-app tool to initialize a new project:
npx create-akinon-app my-app
# or
yarn create akinon-app my-app
# or
pnpm create akinon-app my-appAlternatively, you can install the CLI globally:
npm install -g @akinon/ui-cli
create-akinon-app my-appConfigure Your Application
The creation process will prompt you for several configuration options:
The CLI will prompt for the following information:
- Project name: The application identifier
- Project type: Application architecture type
- Package manager: Dependency management tool (pnpm, npm, or yarn)
- Install dependencies: Whether to install packages immediately
Application Types
Select the appropriate application type based on your requirements:
Fullpage Application
Complete page implementations that handle entire user interface screens. Suitable for:
- Dashboard interfaces
- Administrative panels
- Settings and configuration pages
- Standalone application screens
Plugin Application
Component-based applications that render within predefined placeholders in host applications. Appropriate for:
- Data visualization components
- Interactive widgets
- Form components
- Content display modules
Plugin applications cannot modify shell application navigation or sidebar elements. They operate within designated content areas only.
Multi Applications
Single repositories that contain multiple related applications:
- Multi-Fullpage: Multiple fullpage applications in one codebase for related functionality
- Multi-Plugin: Multiple plugin applications organized as a component library
Multi applications are designed for organizing related functionality in a single repository, not for A/B testing purposes.
Initialize Development Environment
Navigate to the application directory and start the development server:
cd my-app
npm run devThe application will be available at http://localhost:4001.
Development Environment
Development Server
The development server provides hot module replacement for efficient development. Code changes are reflected immediately without manual page refresh.
Shell Server Integration
Execute the shell server to test application integration:
npm run dev:shellThe shell server launches at http://localhost:4000 and provides a mock host
environment that simulates production integration scenarios. This environment
includes:
- Realistic application shell interface
- Sample navigation structure
- Mock data providers
- Integration testing capabilities
Project Architecture
The generated application follows a structured organization:
my-app/
├── src/
│ ├── pages/ # Page components and routing
│ ├── components/ # Reusable UI components
│ ├── hooks/ # Custom React hooks
│ ├── providers.tsx # Context providers and state management
│ ├── routes.tsx # Application routing configuration
│ ├── config.ts # Application configuration
│ └── main.tsx # Application entry point
├── public/ # Static assets and localization files
├── __tests__/ # Test specifications
└── shell.config.js # Shell server configurationKey Configuration Files
src/providers.tsx: Contains React Context providers for state management,
theming, and internationalization. This file establishes the application’s data
flow and global state structure.
src/routes.tsx: Defines application routing using React Router. Configure
navigation paths, route parameters, and nested routing structures here.
src/config.ts: Application-specific configuration including API endpoints,
feature flags, and environment-specific settings.
UI Components and Design System
Applications are pre-configured with the Akinon UI Kit, providing a comprehensive component library and design system.
Component Library
The UI Kit includes production-ready React components:
- Form controls (buttons, inputs, selectors)
- Layout utilities (grids, containers, spacing)
- Data presentation (tables, cards, typography)
- User feedback (alerts, loading indicators, notifications)
Installation and Usage
Install additional UI component packages as needed:
npm install @akinon/ui-button @akinon/ui-card @akinon/ui-layout
# or
yarn add @akinon/ui-button @akinon/ui-card @akinon/ui-layout
# or
pnpm add @akinon/ui-button @akinon/ui-card @akinon/ui-layoutImport and use components in your application:
import { Button } from '@akinon/ui-button';
import { Card } from '@akinon/ui-card';
import { Layout } from '@akinon/ui-layout';
function MyComponent() {
return (
<Layout>
<Card>
<h2>Application Content</h2>
<Button variant="primary">Action Button</Button>
</Card>
</Layout>
);
}Documentation and Resources
- Component Documentation: UI Kit Overview
- Interactive Examples: Storybook
- Design Specifications: Design tokens and theming guidelines
Production Integration Testing
Chrome Extension Integration
For testing applications within production host environments, use the UI Protocol Chrome Extension:
- Download: UI Protocol Chrome Extension
- Install: Load as unpacked extension in Chrome Developer Mode
- Configure: Set local development server endpoint
- Test: Navigate to host application to see integrated results
The extension intercepts application configuration API calls and redirects them to your local development environment. This enables:
- Production environment testing
- Real data integration validation
- User workflow testing
- Integration debugging
Extension Configuration
Configure the extension with the following parameters:
- Web URL: Local development server URL (e.g.,
http://localhost:4001) - App Name: Application display identifier
- App Type: Application type matching your implementation
Application Development
Feature Implementation
Applications provide structured templates for common development tasks:
- Routing Configuration: Modify
src/routes.tsxfor navigation setup - State Management: Implement providers in
src/providers.tsx - API Integration: Utilize app-client utilities for data fetching
- Styling: Apply global styles in
src/main.scss
Production Build
Generate production-ready builds:
npm run buildThis command produces optimized static assets in the dist/ directory suitable
for CDN deployment.
Host Application Integration
To integrate with host applications:
- Deploy built application to accessible URL
- Register application in host application configuration
- App Shell handles loading and rendering automatically
Additional Resources
- Implementation Examples: Playground Applications
- Component Library: UI Kit Documentation
- Integration APIs: App Client and App Shell references