githubEdit

[Klip] Supported network expanded 3x


πŸ“Œ Overview

  • Project participation period: April 2025 ~ Present

  • Role: iOS app development, multi-chain support (Bitcoin, Solana, Tron, Arbitrum, etc.)

  • Team composition: 1 planner, 1 designer, 2 iOS, 2 Android, 2 server, 3 QA


🧩 Project introduction

We ported modules built in 'ABCWallet' into the 'Klip' app, expanding blockchain support from 4 to 12 networks. By applying Swift Package Manager-based modularization and Clean Architecture, we ensured stability and reusability while minimizing code changes. This allowed flexible integration of various networks and demonstrated the effectiveness of a scalable architecture in real service operation.


πŸ”§ Tech stack and architecture

  • Architecture: Clean Architecture

  • Module management: Swift Package Manager

  • Technologies: SwiftUI, Swift Concurrency, Combine, etc.


πŸš€ Implementation examples in my role

1. ABCWallet module porting

  • Applied the SPM used in ABCWallet additionally to the Domain / Data layers

  • Additional implementations for transactions on Bitcoin, Solana, and Tron networks

[Module applied]
[Solana, Tron transfer additional implementation]
[New blockchains added inside the Klip app]

2. Abstraction of asset and NFT transfers

  • Abstracted transfers across various networks and cryptographic algorithms

  • Also abstracted fee (gas) calculation / WalletConnect / receipt polling, etc.

[Supports trading of Native, FT (ERC-20) tokens]
[Supports trading of NFT (ERC-721), MT (ERC-1155)]

3. Added modules in Klip project style

  • Added Klip-style new modules that include ABCDomain / ABCData modules and use core logic from modules previously used in Klip as dependencies.

  • For actual use in the Presentation Layer, ModuleABC is used.


🎯 Achievements

  • Supported transactions for 4 β†’ 12 blockchains.

  • Collaboration with team members

    • Established a PR-based development process to improve code quality and communication efficiency.

    • Cross-verified logic through communication with the Android development team.


🧠 Retrospective

1. Modularization process

  • The existing 'ABCWallet' project had concerns separated loosely by folders, making modularization difficult.

  • We focused on modularizing the Domain and Data areas to be reused in 'Klip', and among them modularized asset transfers like Crypto and NFT, and signing (signTypedDataV4, personalSign), etc.

  • It was a great experience to maximize code reusability by porting in-house business logic to another app in the same domain.

2. User experience ↓

  • To use ABCWallet's backend, an ABC authentication token must be issued; making Klip users naturally obtain this token would have required more time, but the development period was too tight at two weeks.

  • In existing 'Klip', transfers of Crypto, NFTs, etc. and asset changes are reflected immediately in the app, but ABC's backend lacks this feature, so users must manually perform pull-to-refresh. Also, the number of transaction records that can be exposed is limited to 200. Changes that users may perceive as a downgrade should be handled carefully.

Last updated