Како да се изгради мобилна крипто апликација и да се обезбеди нејзината стабилност
Модерните крипто трговци сè повеќе избираат паметни телефони како примарна алатка - според податоците од индустријата, повеќе од 60% од тргувањата се вршат преку мобилни уреди. Ова бара од програмерите да креираат не само визуелно атрактивни апликации, туку целосно функционални, безбедни и брзи трговски платформи, каде што дури и мали грешки можат да доведат до сериозни последици (од погрешни дисплеи на баланс до изгубени средства).
Изградбата на мобилна апликација за тргување со крипто не е само за пренос на веб интерфејс во апликација. Тоа е самостоен инженеринг предизвик со многу нијанси.
Клучните трендови кои го обликуваат пазарот за мобилна крипто трговија вклучуваат:
- Ѕидот
- Премин од веб на мобилен: интерфејсите го прифаќаат мобилниот прв дизајн, а барањата за перформанси се зголемуваат. Ѕидот
- Барање за native искуства: апликациите мора да бидат брзи, безбедни и да се чувствуваат "native" за оперативниот систем. Ѕидот
Во оваа статија, споделуваме како EVEDEX тимот и програмерите од CleverPumpkin интегрирале TypeScript SDK (оригинално изграден за веб) во native apps за да се одржи унифицирана деловна логика низ платформите.
Why We Chose SDK and the Challenges We Faced
Веб верзијата на EVEDEX веќе користеше прилагоден Exchange SDK, библиотека на TypeScript која го поврзува API-то за размена од страна на клиентот.Со текот на времето, разви сеопфатна деловна логика, вклучувајќи агрегирање на податоци за пазарот, потпишување на нарачки и валидација.
Клучната цел беше да се обезбеди конзистентно однесување на сите платформи. Нашата цел беше да се избегне дуплирање на логиката, да се намали бројот на грешки и да се забрза развојот.
Сепак, SDK е напишан во TypeScript и првично не беше дизајниран за употреба надвор од прелистувачот.
Ѕидот„Разговаравме за сите можни опции за имплементација во детали.Имајќи го предвид целосниот контекст, одлучивме да се обидеме да го интегрираме целосниот TypeScript SDK во native apps.
Ѕидот
Alexander Kiaykin, CTO на CleverPumpkin
„Разговаравме за сите можни опции за имплементација во детали.Имајќи го предвид целосниот контекст, одлучивме да се обидеме да го интегрираме целосниот TypeScript SDK во native apps.
- наAlexander Kiaykin, CTO of CleverPumpkin
На iOS, имавме пристап до вградениот JavaScriptCore, но за Android моравме да бараме алтернатива.LiquidCore, независен, отворен код JS мотор.
За да се обезбеди беспрекорно интеракција со SDK од матичниот код, развивме крос-платформен обложувач кој ја олесни комуникацијата помеѓу SDK и деловната логика на апликацијата.
- Ѕидот
- Не сите JS мотори го поддржуваат најновиот синтакс ECMAScript: моравме да ја намалиме целта за транпилација на TypeScript на верзија на JavaScript која е компатибилна со моторот. Ѕидот
- Ѕидот
- JS моторите немаат директен пристап до системските можности: работи како HTTP барања, WebSockets и мрежна комуникација морале да се имплементираат во матичниот код. Ѕидот
Како резултат на тоа, SDK е модифициран. Сега користи надворешни интерфејси за мрежна логика, HTTP и WebSocket интеракции се обработуваат од страна на Swift / Kotlin, додека логиката за обработка останува во JavaScript. На крајот, деловната логика остана во рамките на SDK, а мрежните операции на ниско ниво беа делегирани на матичниот код. Ова ни овозможи да ја задржиме архитектонската конзистентност и да го забрзаме развојот без да го компромитираме перформансот.
Wallet Integration: Implementing Deposits and Withdrawals
Ниту една крипто размена не може да работи без функција за депозит и повлекување.Нашата цел беше да го направиме овој процес интуитивен и безбеден.
За подобрување на удобноста на корисниците, додадовме поддршка за флексибилни трансфери на средства помеѓу мрежи со користење наLI.FIуслуга, која им овозможува на корисниците да:
- Ѕидот
- Пренос на средства од една мрежа во друга. Ѕидот
- Направете го тоа со само неколку кликања, без рачно да барате мостови или да ја разбирате комплексната логика на крос-ланец интеракции. Ѕидот
- Изберете ја најдобрата опција врз основа на преференциите за цена / брзина. Ѕидот
Ние намерно се одлучи да се користиWebViewИако апликацијата е изградена со користење на природни технологии, а за операциите со SDK се користи посебен JavaScript мотор, WebView ни овозможи брзо да го интегрираме интерфејсот LI.FI без да треба повторно да го имплементираме интерфејсот на корисникот.
Во исто време, моравме да ги разгледаме спецификите на работа со крипто паричници во мобилна средина.EIP-1193Ѕидот(Ethereum Provider JavaScript API), кој е стандардот кој дефинира како апликациите можат да се интегрираат со Ethereum паричници.
Мобилната апликација поддржува неколку методи на поврзување:
- Ѕидот
- Со помош на MetaMask Ѕидот
- Импортирање на надворешен паричник со користење на семе фраза или приватен клуч. Ѕидот
- Создавање на нов паричник директно во апликацијата. Ѕидот
Без оглед на избраниот метод, апликацијата може да послужи како давател на паричник за страницата за депозит. Ова ни овозможи да го користиме постоечкиот веб интерфејс без да треба да изградиме посебен систем за мобилната апликација.
НБ*: Во сегашната фаза, EVEDEX работи само со Ethereum компатибилни мрежи, па алтернативни стандарди не се разгледуваат.
НБConclusion and Key Takeaways
Интегрирањето на TypeScript SDK во матична мобилна апликација се покажа како неконвенционална и понекогаш предизвикувачка задача, но ни овозможи да обезбедиме конзистентно однесување на сите платформи, да ја елиминираме дупликацијата на логиката, да го намалиме бројот на грешки и значително да го забрзаме процесот на развој:
- Ѕидот
- Веб SDK може да се прилагоди за мобилни средини, но бара архитектонско преиспитување и соодветна логичка декомпозиција. Ѕидот
- Ѕидот
- Одвојувањето на деловната логика од операциите на ниво на системот е од суштинско значење за одржлива архитектура. Во нашиот случај, матичниот код се занимава со мрежните операции и комуникацијата со WebSocket, додека SDK се фокусира исклучиво на деловната логика. Ѕидот
- Ѕидот
- Употребата на стандарди како EIP-1193 помага да се одржи компатибилност на паричникот и да се поедностави имплементацијата. Ѕидот
- Ѕидот
- Комбинирањето на native code, JavaScript engine и WebView ни даде вистинска рамнотежа помеѓу брзината на развој, флексибилноста и корисничкото искуство. Ѕидот
Ѕидот„Тоа не беше лесно, но сега знаеме точно како да вградите TypeScript SDK во native крипто апликација.
Ѕидот
— Влад Комисаров, ЦТО на EVEDEX
„Тоа не беше лесно, но сега знаеме точно како да вградите TypeScript SDK во native крипто апликација.
— Vlad Komissarov, CTO at EVEDEX
Развојот на мобилната апликација EVEDEX не беше само уште едно лансирање на производот, тоа беше вистински технолошки експеримент кој сега може да послужи како почетна точка за други тимови кои бараат неконвенционални решенија во крипто светот.
Напишано од:
Напишано од:Влад Комисаров, CTO на EVEDEX
Александар Кијкин, CTO наЧистење на пумпи