ghjfgj,.mbn
Use Cases

Real Workflows, Real Results

See how teams use InkPal to ship Flutter apps faster with AI-powered tooling.

Building a Fitness App with FABRICATE

Problem

A typical fitness app takes 200+ hours of hand-written Flutter code across dozens of screens, models, and services.

Solution

FABRICATE takes a JSON schema describing screens, navigation, and data models, then compiles an entire Flutter app with proper state management (BLoC, Riverpod, or Provider).

Result

120 hours saved

60%less dev time
example.ts
// One command, entire app scaffold
await inkpal.fabricate({
  schema: "fitness_tracker.json",
  stateManagement: "riverpod",
  navigation: "go_router",
  includeTests: true
})
// Output: 44 files, 8 modules, fully compiled

Automating QA with Visual Regression

Problem

Manual UI testing misses pixel-level regressions. QA teams spend days clicking through screens after every release.

Solution

visual_test captures baselines for every screen, then visual_baseline_compare detects regressions down to individual pixels using pixelmatch.

Result

100% screen coverage

100%coverage
example.ts
// Capture baselines for all routes
await inkpal.visual_test_all({ threshold: 0.1 })

// After code change, compare
await inkpal.visual_baseline_compare({
  route: "/home",
  tolerance: 0.02
})
// Result: 92.4% match — color regression detected

Multi-Device Testing Across 5 Devices

Problem

Testing one device at a time. A single QA pass takes 4 hours across phone, tablet, and web.

Solution

devices_discover finds all connected devices, then screenshot_all and compare_all run tests in parallel across every device simultaneously.

Result

5x parallel testing

5xfaster QA
example.ts
// Discover all connected devices
const devices = await inkpal.devices_discover()
// => [Pixel 7, iPad Pro, Chrome, iPhone 15, Galaxy S24]

// Launch and screenshot all at once
await inkpal.launch_all({ route: "/dashboard" })
await inkpal.screenshot_all({ compare: true })

CI/CD: Auto-Commit, PR, Deploy

Problem

Manual deployment pipeline: format, lint, test, commit, push, create PR, wait for checks, merge, deploy. Takes 45 minutes of context switching.

Solution

full_ship chains auto_commit, create_pr, pre_merge_gate, and deploy_to_store into a single zero-touch pipeline.

Result

Zero-touch deployment

0manual steps
example.ts
// One command: commit → PR → gate → deploy
await inkpal.full_ship({
  message: "feat: add workout history screen",
  target: "production",
  runTests: true,
  formatCheck: true
})
// Auto: dart format → dart analyze → tests → commit
//       → PR → merge gate → deploy to Play Store

Figma to Flutter — the only pipeline that measures itself

Problem

Every other tool in this space generates code and stops. You find out whether it actually matches the design by running it, eyeballing it, and patching by hand.

Solution

inkpal_figma_audit grades the file first (A–F + fix list). inkpal_figma_screen emits a Scaffold-wrapped widget + theme files + routes. inkpal_figma_converge runs your app through the bridge, pixel-diffs vs the Figma source, and retries with alternate strategies until the gap closes.

Result

Closed-loop convergence — no competitor has this

Runtimemeasurement, not marketing
Deep dive →
example.ts
// 1. Audit before converting
const audit = await mcp.call("inkpal_figma_audit", {
  figma_url: "https://figma.com/design/ABC/..."
})
// { grade: "B", score: 68, suggestions: [...] }

// 2. Emit Dart + theme + routes
await mcp.call("inkpal_figma_screen", {
  figma_url, require_grade: "B"
})

// 3. Closed-loop refine via inkpal_bridge
await mcp.call("inkpal_figma_converge", {
  figma_url, vm_service_url, target_delta_pct: 5
})
// iter 1 → 77%  iter 2 → 87%  iter 3 → 93% ✓

Teaching AI Your Patterns with App DNA

Problem

AI generates generic Flutter code that does not match your project's architecture, naming conventions, or state management patterns.

Solution

dna_build analyzes your codebase to extract patterns, then dna_query lets AI access your project's DNA before generating any code.

Result

AI follows YOUR patterns

100%pattern match
example.ts
// Build DNA from your codebase
await inkpal.dna_build({
  projectPath: "/app",
  analyze: ["architecture", "state", "naming", "tests"]
})

// AI queries your patterns before generating
const patterns = await inkpal.dna_query({
  question: "How do we structure feature modules?"
})
// Returns: YOUR folder structure, YOUR base classes