Mengintegrasikan JavaScript ke dalam Aplikasi Perdagangan Crypto: Tantangan & Solusi

Cara membangun aplikasi crypto seluler dan memastikan stabilitasnya

Pedagang crypto modern semakin memilih smartphone sebagai alat utama mereka – menurut data industri, lebih dari 60% perdagangan dilakukan melalui perangkat seluler. Ini menuntut agar pengembang tidak hanya membuat aplikasi yang menarik secara visual, tetapi juga platform perdagangan berkecepatan tinggi, aman, dan berkecepatan tinggi, di mana bahkan bug kecil dapat menyebabkan konsekuensi serius (dari tampilan keseimbangan yang salah hingga dana yang hilang).

Membangun aplikasi perdagangan crypto seluler bukan hanya tentang porting antarmuka web ke dalam aplikasi. Ini adalah tantangan rekayasa mandiri dengan banyak nuansa. Pengguna berharap untuk berdagang dengan cepat, nyaman, dan aman, tanpa perlu memahami detail teknis.

Tren utama membentuk pasar perdagangan crypto seluler meliputi:

  • Pergeseran dari web ke seluler: Antarmuka merangkul desain mobile-first, dan tuntutan kinerja meningkat.
  • Permintaan untuk pengalaman asli: Aplikasi harus cepat, aman, dan terasa “asli” ke sistem operasi.

Dalam artikel ini, kami membagikan bagaimana tim Evedex dan pengembang dari Cleverpumpkin mengintegrasikan SDK naskah (awalnya dibangun untuk web) ke dalam aplikasi asli untuk mempertahankan logika bisnis terpadu di seluruh platform. Solusi ini menawarkan banyak keunggulan, tetapi juga membawa tantangan yang adil dengannya.

Mengapa kami memilih SDK dan tantangan yang kami hadapi

Versi web Evedex sudah menggunakan SDK Exchange khusus, pustaka TypeScript yang menghubungkan API Exchange di sisi klien. Seiring waktu, telah mengembangkan logika bisnis yang komprehensif, termasuk agregasi data pasar, penandatanganan pesanan, dan validasi.

Tujuan utama adalah untuk memastikan perilaku yang konsisten di semua platform. Tujuan kami adalah untuk menghindari duplikasi logika, mengurangi jumlah bug, dan mempercepat pengembangan. Ini berarti: mengintegrasikan Web SDK yang ada ke dalam aplikasi seluler asli.

Namun, SDK ditulis dalam TypeScript dan awalnya tidak dirancang untuk digunakan di luar browser. Ini menjadi tantangan teknis utama kami.

“Kami membahas semua opsi implementasi yang mungkin secara rinci. Dengan mempertimbangkan konteks penuh, kami memutuskan untuk mencoba mengintegrasikan SDK TypeScript lengkap ke dalam aplikasi asli. Ini adalah wilayah baru bagi kami, tetapi kami siap untuk menangani tugas yang tidak konvensional ini.”

Alexander Kiaykin, CTO dari Cleverpumpkin

Langkah pertama adalah menanamkan mesin JavaScript yang sepenuhnya ke dalam aplikasi. Di iOS, kami memiliki akses ke javascriptcore bawaan, tetapi untuk Android, kami harus mencari alternatif. Kami memilih Liquidcoremesin JS yang independen dan open-source.

Untuk memastikan interaksi yang lancar dengan SDK dari kode asli, kami mengembangkan pembungkus lintas platform yang memfasilitasi komunikasi antara SDK dan logika bisnis aplikasi.

Tantangan yang kami hadapi:

  • Tidak semua mesin JS mendukung sintaks ecmascript terbaru: kami harus menurunkan target transpilasi naskah ke versi JavaScript yang kompatibel dengan mesin.
  • Mesin JS tidak memiliki akses langsung ke kemampuan sistem: hal -hal seperti permintaan HTTP, websockets, dan komunikasi jaringan harus diimplementasikan dalam kode asli.

Akibatnya, SDK dimodifikasi. Sekarang menggunakan antarmuka eksternal untuk logika jaringan, http dan interaksi WebSocket ditangani di sisi Swift/Kotlin, sedangkan logika pemrosesan tetap dalam JavaScript. Pada akhirnya, logika bisnis tetap berada di dalam SDK, dan operasi jaringan tingkat rendah didelegasikan ke kode asli. Ini memungkinkan kami untuk melestarikan konsistensi arsitektur dan mempercepat pengembangan tanpa mengurangi kinerja.

Integrasi Dompet: Menerapkan Deposit dan Penarikan

Tidak ada pertukaran crypto yang dapat beroperasi tanpa fungsi setoran dan penarikan. Tujuan kami adalah membuat proses ini intuitif dan aman.

Untuk meningkatkan kenyamanan pengguna, kami menambahkan dukungan untuk transfer aset yang fleksibel antar jaringan menggunakan Li.fi layanan, yang memungkinkan pengguna untuk:

  • Transfer aset dari satu jaringan ke jaringan lainnya.
  • Lakukan hanya dalam beberapa klik, tanpa secara manual mencari jembatan atau memahami logika kompleks interaksi rantai silang.
  • Pilih opsi terbaik berdasarkan preferensi harga/kecepatan.

Kami sengaja memilih untuk menggunakan Webview. Meskipun aplikasi ini dibangun menggunakan teknologi asli, dan mesin JavaScript yang terpisah digunakan untuk operasi SDK, WebView memungkinkan kami untuk dengan cepat mengintegrasikan antarmuka LI.FI tanpa harus mengimplementasikan kembali UI-nya secara asli. Ini memungkinkan pengalaman pengguna yang konsisten di kedua platform web dan seluler dan membuatnya lebih mudah untuk memperbarui fungsi deposito.

Pada saat yang sama, kami harus mempertimbangkan secara spesifik bekerja dengan dompet kripto di lingkungan seluler. Untuk menghubungkan dan berinteraksi dengan dompet, kami menggunakan EIP-1193 (Penyedia Ethereum JavaScript API)yang merupakan standar yang mendefinisikan bagaimana aplikasi dapat berintegrasi dengan dompet Ethereum.

Aplikasi seluler mendukung beberapa metode koneksi:

  • Melalui Metamask
  • Mengimpor dompet eksternal menggunakan a frasa benih atau kunci pribadi.
  • Membuat dompet baru langsung di dalam aplikasi.

Terlepas dari metode yang dipilih, aplikasi dapat berfungsi sebagai penyedia dompet untuk halaman setoran. Ini memungkinkan kami untuk menggunakan kembali antarmuka web yang ada tanpa perlu membangun sistem terpisah untuk aplikasi seluler.

NB*: Pada tahap saat ini, Evedex beroperasi dengan jaringan yang kompatibel dengan Ethereum, sehingga standar alternatif tidak dipertimbangkan.*

Kesimpulan dan takeaways kunci

Mengintegrasikan SDK naskah ke dalam aplikasi seluler asli ternyata menjadi tugas yang tidak konvensional dan terkadang menantang, tetapi memungkinkan kami untuk memastikan perilaku yang konsisten di semua platform, menghilangkan duplikasi logika, mengurangi jumlah kesalahan, dan secara signifikan mempercepat proses pengembangan:

  • SDK Web dapat diadaptasi untuk lingkungan seluler, tetapi membutuhkan pertimbangan ulang arsitektur dan dekomposisi logika yang tepat.
  • Decoupling Business Logic dari operasi tingkat sistem sangat penting untuk arsitektur berkelanjutan. Dalam kasus kami, kode asli menangani operasi jaringan dan komunikasi WebSocket, sedangkan SDK hanya berfokus pada logika bisnis.
  • Menggunakan standar seperti EIP-1193 membantu menjaga kompatibilitas dompet dan menyederhanakan implementasi.
  • Menggabungkan kode asli, mesin JavaScript, dan Webview memberi kami keseimbangan yang tepat antara kecepatan pengembangan, fleksibilitas, dan pengalaman pengguna.

“Itu tidak mudah, tetapi sekarang kita tahu persis bagaimana menanamkan naskah SDK ke dalam aplikasi crypto asli. Ini tidak hanya mempercepat pengembangan tetapi juga memberi kami fondasi arsitektur untuk masa depan.”

– Vlad Komissarov, CTO di Evadex

Pengembangan aplikasi seluler Evedex bukan hanya peluncuran produk lain, itu adalah eksperimen teknologi nyata yang sekarang dapat berfungsi sebagai titik awal bagi tim lain yang mencari solusi yang tidak konvensional di dunia crypto.

Ditulis oleh:

Vlalad Komissarov, CTO Evedex

Alexander Kiaykin, CTO dari Cleverpumpkin