Wie man eine mobile Crypto-App aufbaut und ihre Stabilität gewährleistet
Moderne Krypto-Händler wählen zunehmend Smartphones als ihr primäres Werkzeug - nach Branchendaten werden mehr als 60% der Trades über mobile Geräte getätigt.Dies erfordert, dass Entwickler nicht nur visuell ansprechende Apps erstellen, sondern voll funktionsfähige, sichere und schnelle Handelsplattformen, wo selbst geringfügige Fehler zu schwerwiegenden Folgen führen können (von falschen Gleichgewichtsanzeigen bis hin zu verlorenen Geldern).
Der Aufbau einer mobilen Krypto-Trading-App geht nicht nur darum, eine Web-Schnittstelle in eine App zu transportieren.Es ist eine eigenständige technische Herausforderung mit vielen Nuancen.Benutzer erwarten, schnell, bequem und sicher zu handeln, ohne die technischen Details zu verstehen.
Zu den wichtigsten Trends, die den mobilen Krypto-Handelsmarkt prägen, gehören:
- ist
- Ein Wechsel vom Web auf das mobile: Schnittstellen umarmen das mobile-first-Design und die Leistungsanforderungen steigen. ist
- Nachfrage nach nativen Erlebnissen: Apps müssen schnell, sicher und "nativ" für das Betriebssystem sein. ist
In this article, we share how the EVEDEX team and developers from CleverPumpkin integrated a TypeScript SDK (originally built for the web) into native apps to maintain unified business logic across platforms. This solution offered many advantages, but also brought a fair share of challenges with it.
Why We Chose SDK and the Challenges We Faced
Die Webversion von EVEDEX verwendet bereits ein benutzerdefiniertes Exchange SDK, eine TypeScript-Bibliothek, die die Exchange-API auf der Clientseite verbindet.
Unser Ziel war es, Duplikationen der Logik zu vermeiden, die Anzahl der Bugs zu reduzieren und die Entwicklung zu beschleunigen.
Das SDK wurde jedoch in TypeScript geschrieben und wurde ursprünglich nicht für den Einsatz außerhalb eines Browsers entwickelt.
ist“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.”
ist
Alexander Kiaykin, CTO von CleverPumpkin
"Wir haben alle möglichen Implementierungsmöglichkeiten ausführlich diskutiert.Wir haben den gesamten Kontext berücksichtigt und beschlossen, den vollständigen TypeScript SDK in die nativen Apps zu integrieren.
- derAlexander Kiaykin, CTO of CleverPumpkin
Auf iOS hatten wir Zugriff auf den eingebauten JavaScriptCore, aber für Android mussten wir nach einer Alternative suchen.LiquidCore, eine unabhängige Open-Source JS-Engine.
Um eine reibungslose Interaktion mit dem SDK aus dem nativen Code zu gewährleisten, haben wir einen plattformübergreifenden Wrapper entwickelt, der die Kommunikation zwischen dem SDK und der Geschäftslogik der App erleichtert.
- ist
- Nicht alle JS-Engine unterstützen die neueste ECMAScript-Syntax: Wir mussten das TypeScript-Transpilationsziel auf eine mit der Engine kompatible JavaScript-Version herunterladen. ist
- ist
- JS-Engines haben keinen direkten Zugriff auf Systemfunktionen: Dinge wie HTTP-Anfragen, WebSockets und Netzwerkkommunikation mussten im nativen Code implementiert werden. ist
Infolgedessen wurde das SDK modifiziert. Es verwendet nun externe Schnittstellen für die Netzwerklogik, HTTP- und WebSocket-Interaktionen werden auf der Swift/Kotlin-Seite abgewickelt, während die Verarbeitungslogik in JavaScript verbleibt. Am Ende blieb die Geschäftslogik innerhalb des SDK, und Netzwerkoperationen auf niedriger Ebene wurden auf den nativen Code delegiert.
Wallet Integration: Implementing Deposits and Withdrawals
Keine Krypto-Börse kann ohne Ein- und Auszahlungsfunktionalität funktionieren.Unser Ziel war es, diesen Prozess intuitiv und sicher zu gestalten.
Um die Benutzerfreundlichkeit zu erhöhen, haben wir Unterstützung für flexible Asset-Transfers zwischen Netzwerken mit derLI.FIDienstleistungen, die es den Nutzern ermöglichen:
- ist
- Übertragung von Vermögenswerten von einem Netzwerk auf ein anderes. ist
- Machen Sie es mit nur wenigen Klicks, ohne manuell nach Brücken zu suchen oder die komplexe Logik von Cross-Chain-Interaktionen zu verstehen. ist
- Wählen Sie die beste Option basierend auf Preis / Geschwindigkeit Präferenzen. ist
Wir haben uns bewusst dafür entschieden,WebViewObwohl die App mit nativen Technologien erstellt wurde und für SDK-Operationen eine separate JavaScript-Engine verwendet wird, ermöglichte WebView es uns, die LI.FI-Schnittstelle schnell zu integrieren, ohne die Benutzeroberfläche nativ neu zu implementieren.
Gleichzeitig mussten wir die Besonderheiten der Arbeit mit Krypto-Wallets in einer mobilen Umgebung berücksichtigen.EIP-1193ist(Ethereum Provider JavaScript API), der der Standard ist, der definiert, wie Apps mit Ethereum-Wallets integrieren können.
Die mobile App unterstützt mehrere Verbindungsmethoden:
- ist
- Über MetaMask ist
- Importieren einer externen Brieftasche mit einem Samenwort oder einem privaten Schlüssel. ist
- Erstellen einer neuen Brieftasche direkt innerhalb der App. ist
Unabhängig von der gewählten Methode kann die App als Brieftaschenanbieter für die Einzahlungsseite dienen. Dies ermöglichte es uns, die bestehende Web-Schnittstelle wieder zu nutzen, ohne ein separates System für die mobile App aufzubauen.
NB*: At the current stage, EVEDEX operates with Ethereum-compatible networks only, so alternative standards were not considered.*
NBConclusion and Key Takeaways
Die Integration eines TypeScript SDK in eine native mobile App erwies sich als unkonventionelle und manchmal herausfordernde Aufgabe, aber es ermöglichte es uns, ein konsistentes Verhalten auf allen Plattformen zu gewährleisten, Logikduplikationen zu beseitigen, die Anzahl der Fehler zu reduzieren und den Entwicklungsprozess erheblich zu beschleunigen:
- ist
- Ein Web-SDK kann für mobile Umgebungen angepasst werden, erfordert jedoch eine architektonische Überlegung und eine ordnungsgemäße logische Zersetzung. ist
- ist
- Das Entkoppeln der Business-Logik von System-Level-Operationen ist für eine nachhaltige Architektur unerlässlich.In unserem Fall befasst sich der native Code mit Netzwerkoperationen und WebSocket-Kommunikation, während sich das SDK ausschließlich auf die Business-Logik konzentriert. ist
- ist
- Die Verwendung von Standards wie EIP-1193 hilft, die Wallet-Kompatibilität aufrechtzuerhalten und die Implementierung zu vereinfachen. ist
- ist
- Die Kombination von nativem Code, einer JavaScript-Engine und WebView gab uns die richtige Balance zwischen Entwicklungsgeschwindigkeit, Flexibilität und Benutzererfahrung. ist
ist"Es war nicht einfach, aber jetzt wissen wir genau, wie man ein TypeScript SDK in eine native Krypto-App einbaut.
ist
— Vlad Komissarov, CTO bei EVEDEX
"Es war nicht einfach, aber jetzt wissen wir genau, wie man ein TypeScript SDK in eine native Krypto-App einbaut.
— Vlad Komissarov, CTO at EVEDEX
Die Entwicklung der EVEDEX-Mobil-App war nicht nur ein weiterer Produktlaunch, es war ein echtes technologisches Experiment, das jetzt als Ausgangspunkt für andere Teams für unkonventionelle Lösungen in der Krypto-Welt dienen kann.
Geschrieben von:
Geschrieben von:Vlad Komissarov, CTO von EVEDEX
Alexander Kiaykin, CTO vonCleverPumpen