798 測定値
798 測定値

JavaScript を Crypto Trading Apps に統合する:課題とソリューション

EVEDEX5m2025/04/16
Read on Terminal Reader

長すぎる; 読むには

EVEDEXとCleverPumpkinは、TypeScript SDKをネイティブの暗号アプリに統合し、JavaScriptの互換性とネイティブの統合の課題を乗り越えました。ネットワークタスクのためのネイティブのコード、WebViewの財布の相互作用、およびEIP-1193のような標準的なAPIを使用して、統合された論理、迅速な開発、そして安定したパフォーマンスを確保し、将来のモバイル暗号アプリのイノベーションの基礎を築きました。
featured image - JavaScript を Crypto Trading Apps に統合する:課題とソリューション
EVEDEX HackerNoon profile picture
0-item


モバイル仮想通貨アプリを構築し、その安定性を確保する方法

Modern crypto traders are increasingly choosing smartphones as their primary tool — according to industry data, over 60% of trades are made via mobile devices. This demands that developers create not just visually appealing apps, but fully functional, secure, and high-speed trading platforms, where even minor bugs can lead to serious consequences (from incorrect balance displays to lost funds).


モバイル仮想通貨取引アプリケーションの構築は、ウェブインターフェイスをアプリケーションに移行するだけではありません。それは多くのニュアンスを持つ独立したエンジニアリングの課題です。ユーザーは、技術的な詳細を理解することなく、迅速かつ便利かつ安全に取引することを期待します。


モバイル仮想通貨取引市場を形作る主要なトレンドには、以下が含まれます。


  • ウェブからモバイルへの移行:インターフェイスはモバイルファーストデザインを採用しており、パフォーマンス要求は高まっています。
  • ネイティブ体験の需要:アプリケーションは高速で、安全で、オペレーティングシステムに「ネイティブ」と感じなければなりません。


この記事では、CleverPumpkinのEVEDEXチームと開発者が、プラットフォーム間で統一されたビジネスロジックを維持するために、TypeScript SDK(オリジナルのWeb用に構築)をネイティブアプリにどのように統合したかを説明します。

Why We Chose SDK and the Challenges We Faced

EVEDEX の Web バージョンでは、すでにカスタム Exchange SDK 、クライアント側の Exchange API を接続する TypeScript ライブラリを使用しています。


主要な目標は、すべてのプラットフォームで一貫した行動を確保することでした。当社の目標は、論理の重複を避け、バグの数を減らし、開発を加速させることでした。


ただし、SDK は TypeScript で書かれており、当初はブラウザー外で使用するように設計されていませんでした。


「すべての実装オプションを詳細に検討しました。完全な文脈を考慮して、TypeScript SDKをネイティブアプリに完全に統合しようと決めました。


アレクサンダー・キーキン(Alexander Kiaykin)CTO CleverPumpkin

“We discussed all possible implementation options in detail. Taking the full context into account, we decided to try integrating the full TypeScript SDK into the native apps. This was new territory for us, but we were ready to tackle this unconventional task.”


──Alexander Kiaykin, CTO of CleverPumpkin


最初のステップは、完全なJavaScriptエンジンをアプリに組み込むことでした。iOSでは、内蔵のJavaScriptCoreにアクセスしましたが、Androidでは、代替案を探さなければなりませんでした。LiquidCore独立したオープンソースのJSエンジン。


ネイティブコードからSDKとのスムーズな相互作用を確保するために、SDKとアプリケーションのビジネスロジック間のコミュニケーションを容易にするクロスプラットフォームウラッパーを開発しました。


Challenges We Faced:

私たちが直面した課題:


  • すべての JS エンジンが最新の ECMAScript 文法をサポートしているわけではありません: TypeScript トランスピレーション ターゲットをエンジンと互換性のある JavaScript バージョンにダウングレードする必要があります。


  • JS エンジンはシステム機能に直接アクセスできない: HTTP リクエスト、WebSockets、ネットワーク コミュニケーションなどのものがネイティブ コードで実装されなければならなかった。


その結果、SDKは修正されました。現在、ネットワークロジックのための外部インターフェイスを使用し、HTTPとWebSocketの相互作用はSwift/Kotlin側で処理され、処理ロジックはJavaScriptに残っています。結局、ビジネスロジックはSDK内に残り、低レベルのネットワーク操作はネイティブコードに委託されました。これにより、パフォーマンスを損なうことなく建築の一貫性を維持し、開発を加速させることができました。

Wallet Integration: Implementing Deposits and Withdrawals

仮想通貨取引所は、預金と引き出し機能なしで動作することはできません。私たちの目標は、このプロセスを直感的で安全なものにすることでした。

ユーザーの利便性を向上させるために、私たちはネットワーク間の柔軟な資産転送のサポートを追加しました。LI.FIサービスは、ユーザーが:


  • 資産を一つのネットワークから別のネットワークに転送する。
  • 手動でブリッジを探したり、複雑なクロスチェーン相互作用の論理を理解したりすることなく、わずか数クリックで行います。
  • 価格/速度の好みに基づいて最適なオプションを選択します。


わざと使うことを選びました。WebViewアプリケーションはネイティブなテクノロジーを使用して構築され、別々のJavaScriptエンジンがSDK操作に使用されているにもかかわらず、WebViewは、LI.FIインターフェイスをネイティブに再実装する必要がなく、迅速に統合することができます。


同時に、我々はモバイル環境で暗号財布で働くことの具体性を考慮しなければならなかった。EIP-1193(Ethereum Provider JavaScript API), これは、アプリがEthereumウォレットとどのように統合できるかを定義する標準です。


モバイルアプリは、いくつかの接続方法をサポートしています:


  • メタマスクを通じて
  • 種子フレーズまたはプライベートキーを使用して外部の財布をインポートします。
  • アプリ内で新しい財布を作成します。


選択した方法に関係なく、アプリはデポジットページの財布プロバイダーとして機能することができ、モバイルアプリのための別々のシステムを構築する必要がなく、既存のウェブインターフェイスを再利用することができます。


NB*:現在の段階では、EVEDEXはEthereum対応ネットワークのみで動作しているため、代替基準は検討されていません。

NB

Conclusion and Key Takeaways

TypeScript SDK をネイティブのモバイル アプリに統合することは非伝統的で時には困難な作業であったが、すべてのプラットフォームで一貫した行動を確保し、論理の重複を排除し、エラーの数を減らし、開発プロセスを大幅に加速させることができた。


  • Web SDK はモバイル環境に適応できますが、建築再考と適切な論理分解が必要です。


  • 持続可能なアーキテクチャのためには、システムレベルの操作からビジネスロジックを切り離すことが不可欠です. In our case, the native code handles network operations and WebSocket communication, while the SDK focuses solely on business logic.


  • EIP-1193のような標準を使用すると、財布の互換性を維持し、実装を簡素化するのに役立ちます。


  • ネイティブコード、JavaScriptエンジン、WebViewを組み合わせると、開発速度、柔軟性、ユーザー体験のバランスをとることができました。


「簡単ではなかったが、今ではTypeScript SDKをネイティブの暗号アプリに組み込む方法を正確に知っている。


ウラド・コミサロフ、EVEDEXのCTO

「簡単ではなかったが、今ではTypeScript SDKをネイティブの暗号アプリに組み込む方法を正確に知っている。


— Vlad Komissarov, CTO at EVEDEX


EVEDEXモバイルアプリの開発は、もう一つの製品のリリースではなく、現在、仮想通貨の世界で非伝統的なソリューションを求める他のチームの出発点として役立つ真の技術実験でした。


書かれた:

書かれた:

Vlad Komissarov、EVEDEXのCTO

Alexander Kiaykin, CTO ofクリーンポンプキン

Trending Topics

blockchaincryptocurrencyhackernoon-top-storyprogrammingsoftware-developmenttechnologystartuphackernoon-booksBitcoinbooks