Shuhaib
エンタープライズモバイルソリューション社内エンタープライズアプリFeb 2025 - Dec 2025

WAVES 2 - 次世代営業管理プラットフォーム

リードモバイルエンジニア & アーキテクト 所属: SpiralCode Innovates LLP

技術的課題と解決策

プロジェクトのビジネス背景と技術的成果の詳細。

01. 課題 (The Problem)

一次営業と二次営業の業務フロー統合において、電波状況の悪い現場でのデータ欠損やルール迂回、訪問記録の不整合が多発していました。

02. 技術的挑戦 (The Challenge)

通信圏外でも受注・チェックアウトのデータ損失をゼロにし、不正訪問を防止する強制チェックアウト制約と出張旅費の自動計算を実現すること。

03. 解決策 (The Solution)

BLoCパターンを用いたオフラインファースト設計を導入。即時のローカルDB検証と指数バックオフ付き非同期同期キュー、GPS軌跡に基づく自動距離計算を実装。

04. 成果 (The Result)

100%の受注同期信頼性を達成し、不正チェックインを根絶、手動入力による旅費計算ミスを完全解消。

オフラインファースト同期アーキテクチャ

下図のシステムノードにカーソルを合わせると、技術仕様と担当責任の詳細を確認できます。

Flutter / Dart

Flutter UI

Reactive presentation layer with optimistic state updates.

flutter_bloc

BLoC

Business logic component handling local state validation.

Clean Architecture

Repository

Bridges local data and network services seamlessly.

Hive DB

Local Hive

Fast, zero-latency local key-value database.

WorkManager / WorkManager (Kotlin)

Background Sync

3-stage transactional queue with exponential retry backoff.

REST API

ERPNext API

Central enterprise system receiving verified sync records.

主要な技術的課題

実装中に解決した低レイヤーインフラおよびシステム設計上のボトルネックの詳細。

Atomic local order queue storage with Hive
3-stage background synchronization with exponential backoff
Enforced checkout constraints with geolocation validation
Automated background travel mileage tracking
Telemetry tracking using Sentry and Crashlytics

開発の挑戦

課題提起 & 要件背景

Merging primary and secondary sales created complexity in validation and data synchronization. The goal was to enforce strict sales discipline (e.g., forced checkout) while ensuring zero data loss in offline environments.

Data Synchronization Logic
Fake Shop Visits
Complex Validation

調査と技術選定

Sync Architecture

Adopted a 'Fire-and-Forget' UI pattern. Time & Location are captured at trigger, while heavy resolution (Google Maps API) happens in the background.

Validation

Combined instant local validation with deferred server-side checks. Photo proof is compressed locally before being queued for upload.

Resilience

Fail-safe Logic: The app stores reference data for manual sync if the 3-retry background worker encounters persistent network failure.

機能と実装

使用テクノロジー & ツール

Flutter
BLoC
Clean Arch
Kotlin Plugin
Sentry
Firebase

プロジェクト画面設計 & UIフロー

アプリケーションの主要チェックポイントとテレメトリデータパイプラインを可視化したレイアウト設計。

Screen mockup 1
チェックポイント 1
Screen mockup 2
チェックポイント 2
Screen mockup 3
チェックポイント 3
Screen mockup 4
チェックポイント 4