[Klip] 対応ネットワーク3倍拡大


📌 概要

  • プロジェクト参加期間: 2025年4月〜現在

  • 役割: iOSアプリ開発、マルチチェーン(Bitcoin、Solana、Tron、Arbitrum 等)対応

  • チーム構成: プランナー1名、デザイナー1名、iOS 2名、Android 2名、サーバー2名、QA 3名


🧩 プロジェクト紹介

'ABCWallet'で構築したモジュールを'Klip'アプリに移植し、ブロックチェーン対応範囲を既存の4種類から12種類に拡張しました。Swift Package Managerベースのモジュール化とクリーンアーキテクチャを適用し、コード変更を最小限に抑えながら安定性と再利用性を確保しました。これにより多様なネットワークを柔軟に統合でき、実際のサービス運用で拡張可能なアーキテクチャの効果を実証しました。


🔧 技術スタックおよびアーキテクチャ

  • アーキテクチャ: Clean Architecture

  • モジュール管理: Swift Package Manager

  • 技術: SwiftUI、Swift Concurrency、Combine など


🚀 役割内での実装事例

1. ABCWallet モジュール移植

  • Domain / Data 領域に ABCWallet で使用していた SPM を追加適用

  • Bitcoin、Solana、Tron ネットワークの取引のための追加実装

[モジュール適用]
[Solana、Tron 送信の追加実装]
[Klip アプリ内の新規ブロックチェーン追加]

2. 資産および NFT 送信の抽象化

  • 送信を多様なネットワークおよび暗号化アルゴリズムに対して抽象化した

  • その他にも手数料(ガス代)計算 / WalletConnect / レシートポーリング等を抽象化した。

[Native、FT(ERC-20)トークンの取引をサポート]
[NFT(ERC-721)、MT(ERC-1155)の取引をサポート]

3. Klip プロジェクトスタイルのモジュール追加

  • ABCDomain / ABCData モジュールを含み、既存の Klip で使用していたモジュールのうち重要なロジックを依存として持つ Klip スタイルの新しいモジュールを追加。

  • Presentation Layer では実使用に ModuleABC を使用。


🎯 成果

  • 既存の4つ → 12のブロックチェーンの取引をサポート。

  • チームメンバーとの協業

    • PRベースの開発プロセスを定着させ、コード品質を高めコミュニケーション効率を改善。

    • Android開発チームと連携してロジックをクロス検証。


🧠 振り返り

1. モジュール化の過程

  • 既存の'ABCWallet'プロジェクトは関心の分離がフォルダベースで緩やかに分かれていたため、モジュール化に困難があった。

  • 'Klip'で再利用する部分である Domain、Data 領域を重点的にモジュール化し、その中でも Crypto、NFT 等の資産送金、署名(signTypedDataV4、personalSign)などをモジュール化した。

  • 同一ドメインの別アプリに社内のビジネスロジックを移植してコードの再利用性を最大化する良い経験をした。

2. ユーザー体験については

  • 'ABCWallet'のバックエンドを利用するにはABCの認証トークンを発行してもらう必要があり、それを'Klip'ユーザーに自然に発行させるにはもう少し時間が必要だったが、開発期間が2週間と非常にタイトだった。

  • 既存の'Klip'はCrypto、NFT等を送金すると資産の変更が即座にアプリに反映されるが、ABCのバックエンドにはその機能がなく、ユーザーが手動でPull to refreshを行う必要がある。また表示可能な取引履歴が200件に制限されていた。ユーザー視点でダウングレードと感じられる変更は慎重に行う必要があると思われる。

最終更新