Hoe een mobiele Crypto-app te bouwen en de stabiliteit ervan te waarborgen
Moderne crypto-handelaars kiezen steeds vaker smartphones als hun primaire tool - volgens gegevens van de industrie worden meer dan 60% van de transacties gemaakt via mobiele apparaten.Dit vereist dat ontwikkelaars niet alleen visueel aantrekkelijke apps maken, maar volledig functionele, veilige en snelle handelsplatforms, waar zelfs kleine bugs tot ernstige gevolgen kunnen leiden (van onjuiste balansweergaven tot verloren fondsen).
Key trends die de mobiele crypto trading markt vormen zijn onder meer:
- Een verschuiving van web naar mobiel: interfaces omarmen mobiel-first-ontwerp en prestatievereisten stijgen.
- Demand voor native-ervaringen: apps moeten snel, veilig en "native" aan het besturingssysteem voelen.
In dit artikel delen we hoe het EVEDEX-team en ontwikkelaars van CleverPumpkin een TypeScript SDK (oorspronkelijk gebouwd voor het web) hebben geïntegreerd in native apps om een uniforme zakelijke logica over platforms te behouden.
Why We Choose SDK en de uitdagingen waarmee we geconfronteerd hebben
Waarom we voor SDK gekozen hebben en de uitdagingen waarmee we geconfronteerd zijnDe webversie van EVEDEX gebruikte al een aangepaste Exchange SDK, een TypeScript-bibliotheek die de exchange-API aan de clientzijde verbindt.
Het belangrijkste doel was om consistent gedrag over alle platforms te garanderen. Ons doel was om logica te vermijden, het aantal bugs te verminderen en de ontwikkeling te versnellen.
De SDK werd echter geschreven in TypeScript en was oorspronkelijk niet ontworpen voor gebruik buiten een browser.
"We hebben alle mogelijke implementatieopties in detail besproken.Bij het nemen van de volledige context hebben we besloten om de volledige TypeScript SDK te proberen te integreren in de native apps.Dit was een nieuw gebied voor ons, maar we waren klaar om deze onconventionele taak aan te pakken."
-Alexander Kiaykin, CTO van CleverPumpkin
“We hebben alle mogelijke implementatieopties in detail besproken.Bij de volledige context hebben we besloten om de volledige TypeScript SDK te proberen te integreren in de native apps.
-Alexander Kiaykin, CTO van CleverPumpkin
Alexander Kiaykin, CTO van CleverPumpkin
Om een soepele interactie met de SDK vanuit de native code te garanderen, hebben we een cross-platform wrapper ontwikkeld die de communicatie tussen de SDK en de bedrijfslogica van de app vergemakkelijkt.
- Niet alle JS-motoren ondersteunen de nieuwste ECMAScript-syntax: we moesten het TypeScript-transpilatiedoel neerzetten op een JavaScript-versie die compatibel is met de engine.
- JS-motoren hebben geen directe toegang tot systeemmogelijkheden: dingen zoals HTTP-verzoeken, WebSockets en netwerkcommunicatie moesten worden geïmplementeerd in de native code.
Daardoor werd de SDK gewijzigd.Nu maakt het gebruik van externe interfaces voor netwerklogica, worden HTTP- en WebSocket-interacties aan de Swift/Kotlin-zijde verwerkt, terwijl de verwerkingslogica in JavaScript blijft.Uiteindelijk bleef de bedrijfslogica binnen de SDK en werden netwerkoperaties op laag niveau gedelegeerd aan de native code.
Walletintegratie: implementeren van deposito's en opnames
Walletintegratie: implementatie van deposito's en opnamesGeen crypto-uitwisseling kan werken zonder deposito- en terugtrekkingsfunctionaliteit.Ons doel was om dit proces intuïtief en veilig te maken.
Om het gebruiksgemak te verbeteren, hebben we ondersteuning toegevoegd voor flexibele asset transfers tussen netwerken met behulp van de LI.FI service, waarmee gebruikers kunnen:
- Overdracht van activa van het ene netwerk naar het andere.
- Do it in just a few clicks, without manually searching for bridges or understanding the complex logic of cross-chain interactions.
- Kies de beste optie op basis van prijs/snelheid voorkeuren.
We hebben opzettelijk gekozen voor het gebruik van WebView. Hoewel de app is gebouwd met native technologieën en een aparte JavaScript-engine wordt gebruikt voor SDK-operaties, liet WebView ons toe om de LI.FI-interface snel te integreren zonder de native UI opnieuw te moeten implementeren.
Tegelijkertijd moesten we rekening houden met de specificaties van het werken met crypto wallets in een mobiele omgeving.Voor het verbinden en interacteren met wallets gebruikten we EIP-1193 (Ethereum Provider JavaScript API), wat de standaard is die definieert hoe apps kunnen integreren met Ethereum wallets.
De mobiele app ondersteunt verschillende verbindingsmethoden:
- Via MetaMask
- Een externe portemonnee importeren met behulp van een zaadwoord of een private sleutel.
- Een nieuwe portemonnee maken rechtstreeks in de app.
Ondanks de gekozen methode kan de app dienen als portefeuille provider voor de stortingspagina.
NB*: In het huidige stadium werkt EVEDEX alleen met Ethereum-compatibele netwerken, dus alternatieve normen werden niet overwogen.*
NBConclusie en belangrijke taken
Conclusie en belangrijke takeawaysHet integreren van een TypeScript SDK in een native mobile app bleek een onconventionele en soms uitdagende taak te zijn, maar het stelde ons in staat om consistent gedrag over alle platforms te garanderen, logische duplicatie te elimineren, het aantal fouten te verminderen en het ontwikkelingsproces aanzienlijk te versnellen:
- Een web SDK kan worden aangepast voor mobiele omgevingen, maar het vereist architecturale heroverweging en de juiste logische ontbinding.
- Het ontkoppelen van bedrijfslogica van operaties op systeemniveau is essentieel voor duurzame architectuur.In ons geval behandelt de native code netwerkoperaties en WebSocket-communicatie, terwijl de SDK zich uitsluitend richt op bedrijfslogica.
- Het gebruik van normen zoals EIP-1193 helpt bij het handhaven van portefeuillecompatibiliteit en het vereenvoudigen van de implementatie.
"Het was niet gemakkelijk, maar nu weten we precies hoe we een TypeScript SDK in een native crypto-app kunnen inbouwen.Dit heeft niet alleen de ontwikkeling versneld, maar gaf ons ook een architecturale basis voor de toekomst."
- Vlad Komissarov, CTO bij EVEDEX
“Het was niet gemakkelijk, maar nu weten we precies hoe we een TypeScript SDK in een native crypto-app kunnen opnemen.
— Vlad Komissarov, CTO bij EVEDEX
— Vlad Komissarov, CTO bij EVEDEX
De ontwikkeling van de EVEDEX mobiele app was niet alleen een andere productlancering, het was een echt technologisch experiment dat nu kan dienen als een uitgangspunt voor andere teams op zoek naar onconventionele oplossingen in de crypto-wereld.
Geschreven door:
Geschreven door:Geschreven door:Vlad Komissarov, CTO van EVEDEX
Alexander Kiaykin, CTO van CleverPumpkin