Како да се изгради мобилна апликација за крипто и да се обезбеди нејзината стабилност
Модерните крипто трговци сè повеќе избираат паметни телефони како примарна алатка - според податоците од индустријата, повеќе од 60% од тргувањата се вршат преку мобилни уреди. Ова бара од програмерите да креираат не само визуелно атрактивни апликации, туку целосно функционални, безбедни и брзи трговски платформи, каде што дури и мали грешки можат да доведат до сериозни последици (од погрешни дисплеи на баланс до изгубени средства).
Кључни трендови кои го обликуваат пазарот за мобилни крипто тргување вклучуваат:
- Премин од веб на мобилен: интерфејсите го прифаќаат мобилниот прв дизајн, а побарувањата за перформанси се зголемуваат.
- Треба за native искуства: апликациите мора да бидат брзи, безбедни и да се чувствуваат "native" на оперативниот систем.
Во оваа статија, споделуваме како EVEDEX тимот и програмерите од CleverPumpkin интегрирале TypeScript SDK (оригинално изграден за веб) во native апликации за да се одржи унифицирана деловна логика низ платформите.
Зошто го одбравме SDK и предизвиците со кои се соочивме
Зошто го одбравме SDK и предизвиците со кои се соочивмеВеб верзијата на EVEDEX веќе користеше прилагоден Exchange SDK, библиотека на TypeScript која го поврзува API-то за размена од страна на клиентот.
Кључната цел беше да се обезбеди конзистентно однесување на сите платформи. Нашата цел беше да се избегне дуплирање на логиката, да се намали бројот на грешки и да се забрза развојот.
Сепак, SDK е напишан во TypeScript и првично не беше дизајниран за употреба надвор од прелистувачот.
„Разговаравме за сите можни опции за имплементација во детали. Имајќи го предвид целосниот контекст, одлучивме да се обидеме да го интегрираме целосниот TypeScript SDK во native apps.This was new territory for us, but we were ready to tackle this unconventional task.“
-Alexander Kiaykin, CTO of CleverPumpkin
„Разговаравме за сите можни опции за имплементација во детали.Имајќи го предвид целосниот контекст, одлучивме да се обидеме да го интегрираме целосниот TypeScript SDK во native apps.
-Alexander Kiaykin, CTO на CleverPumpkin
Alexander Kiaykin, CTO на CleverPumpkin
За да се обезбеди беспрекорно интеракција со SDK од матичниот код, развивме крос-платформен обложувач кој ја олеснува комуникацијата помеѓу SDK и деловната логика на апликацијата.
- Не сите JS мотори го поддржуваат најновиот синтакс ECMAScript: моравме да ја намалиме целта за транслирање на TypeScript на верзија на JavaScript која е компатибилна со моторот.
- JS моторите немаат директен пристап до системските можности: нешта како HTTP барања, WebSockets и мрежна комуникација мораше да се имплементираат во матичниот код.
Wallet Integration: Implementing Deposits and Withdrawals
Интеграција на паричникот: имплементација на депозити и повлекувањаНиедна крипто размена не може да работи без функција за депозит и повлекување.Нашата цел беше да го направиме овој процес интуитивен и безбеден.
За подобрување на удобноста на корисниците, додадовме поддршка за флексибилни трансфери на средства помеѓу мрежи со користење на услугата LI.FI, која им овозможува на корисниците да:
- Пренесете средства од една мрежа во друга.
- Направете го тоа со само неколку кликања, без рачно да барате мостови или да ја разбирате сложената логика на крос-ланец интеракции.
- Изберете ја најдобрата опција врз основа на преференциите за цена/брзина.
Во исто време, моравме да ги разгледаме спецификите на работа со крипто паричници во мобилна средина.За поврзување и интеракција со паричници, користевме EIP-1193 (Ethereum Provider JavaScript API), кој е стандардот кој дефинира како апликациите можат да се интегрираат со паричници на Ethereum.
ЕИП-1193(Ethereum Provider JavaScript API)
Мобилната апликација поддржува неколку методи на поврзување:
- преку MetaMask
- Увоз на надворешен паричник со користење на семена фраза или приватен клуч.
- Креирање на нов паричник директно во апликацијата.
Без оглед на избраниот метод, апликацијата може да служи како давател на паричник за страницата за депозит. Ова ни овозможи да го користиме постоечкиот веб интерфејс без да треба да изградиме посебен систем за мобилната апликација.
NB*: Во тековната фаза, EVEDEX работи само со Ethereum-компатибилни мрежи, па алтернативни стандарди не беа разгледани.НБНБ Заклучок и клучни прегледи
Заклучок и клучни преземањаИнтегрирањето на TypeScript SDK во матична мобилна апликација се покажа како неконвенционална и понекогаш предизвикувачка задача, но ни овозможи да обезбедиме конзистентно однесување на сите платформи, да ја елиминираме дупликацијата на логиката, да го намалиме бројот на грешки и значително да го забрзаме процесот на развој:
- Веб SDK може да се прилагоди за мобилни средини, но бара архитектонско преиспитување и соодветна логичка декомпозиција.
- Одклучувањето на деловната логика од операциите на ниво на системот е од суштинско значење за одржлива архитектура.Во нашиот случај, матичниот код се занимава со мрежните операции и комуникацијата со WebSocket, додека SDK се фокусира исклучиво на деловната логика.
- Употребата на стандарди како EIP-1193 помага да се одржи компатибилност на паричникот и да се поедностави имплементацијата.
„Не беше лесно, но сега точно знаеме како да вградите TypeScript SDK во native crypto app. Ова не само што го забрза развојот, туку ни даде и архитектонска основа за иднината.“„Не беше лесно, но сега знаеме точно како да вградите TypeScript SDK во native крипто апликација.Тоа не само што го забрза развојот, туку ни даде и архитектонска основа за иднината.“
- Vlad Komissarov, CTO на EVEDEX
— Владимир Комисаров, ЦТО на EVEDEX
— Влад Комисаров, ЦТО на EVEDEX
Влади Комисаров, ЦТО на EVEDEX
Alexander Kiaykin, CTO на CleverPumpkin