Мислите ли да използвате React Native за създаване на междуплатформени приложения? Когато тръгнете по пътя за създаване на приложения с помощта на React Native, се натъквате на въпроса, трябва ли да използвам Expo или не?

React Native Background

Преди да говорим за Expo, ето бърза информация за React Native.

Разработвам приложения „React Native“ през последните четири години и трябва да кажа, че нещата се развиха драстично в React Native и Expo също има голяма роля за неговия успех.

React Native е библиотека с различни платформи, която изгражда собствени мобилни приложения (iOS и Android) с помощта на JavaScript и React. Причината за успеха му е фактът, че използва популярния език JavaScript в комбинация с най-подредената уеб библиотека React за създаване на мобилни приложения нативно.

Какво е Експо?

Expo е рамка, която се използва за изграждане на React Native приложения. По същество това е пакет с инструменти и услуги, създадени за React Native, които ще ви помогнат да започнете да създавате React Native приложения с лекота.

Така че има два начина за изграждане на React Native приложения. Единият използва expo, а другият просто използва обикновен React Native, без Expo.

Кога и защо трябва да използвам Expo?

Когато започнете да създавате приложения на React Native, трябва да вземете това решение отрано. Трябва да решите дали ще използвате Expo за вашия проект или не. Това е така, защото архитектурата на целия ви проект разчита на това решение.

Ето няколко добри причини да използвате Expo, за да създадете своето приложение React Native.

1. Най-бързият начин за изграждане на React Native Apps

Ако ви е даден проект, който се нуждае от бързо развитие, и сте избрали React Native, за да изградите кросплатформеното приложение, Expo е най-подходящото за вас. С Expo можете лесно да създавате и внедрявате React Native приложения както за iOS, така и за Android.

2. Не е необходимо да знаете Native Mobile кодиране

С Expo никога няма да докоснете какъвто и да е нативен код за iOS или Android. Това означава, че не е необходимо разработчиците да познават родно мобилно кодиране, докато създават приложения с помощта на Expo. Expo обработва целия собствен код под капака и това не е достъпно за разработчиците, които го използват.

Като има предвид, че ако създавате React Native приложения от нулата без Expo, въз основа на това, което видях, ще трябва да използвате малка частица от вашите собствени умения за кодиране на мобилни устройства. Въпреки че 95% от кода се споделя между iOS и Android, в зависимост от вашия случай на употреба, все пак може да се наложи да промените някакъв естествен код и на двете платформи. За всеки, който иска да избегне навлизането в този слой, Expo е най-подходящото решение.

3. Без Xcode, без Android Studio

Ако не е нужно да правите собствено мобилно кодиране с помощта на Swift (iOS) или Java (Android), това означава, че не е необходимо да използвате инструменти като Xcode или Android Studio. Най-малко любимата ми част от това да бъда React Native разработчик е да се справям с всички проблеми, с които се сблъсквам, докато използвам Xcode и Android Studio.

С Expo няма нужда да се притеснявате за тези инструменти, тъй като никога няма да имате нужда от тях.

4. Незабавно публикуване на актуализации по въздуха (OTA)

Наистина хубава функция, която можете да използвате, докато използвате Expo, е Актуализации по въздуха (OTA). Тъй като целият код, който пишете, за да създадете приложението си с помощта на Expo, е в JavaScript, можете да изпращате актуализации на приложението си по всяко време по въздуха. Няма да имате нужда от одобрения от магазина за приложения, за да го направите. Най-голямата болезнена точка при разработването на мобилни приложения е преминаването през магазините за приложения, за да публикувате актуализации на вашите приложения.

С Expo можете бързо да публикувате актуализации на вашето приложение през приложението, с лекота. Няма собствен код, следователно не е необходимо да посещавате магазина за приложения, за да публикувате всяка отделна актуализация. Това е страхотна функция, която е полезна за бързи цикли на разработка и тестване.

5. Вграден достъп до Native APIs

Expo идва с много естествени API за iOS и Android. Това прави работата на разработчиците по добавяне на естествени функции към приложението доста лесна. Някои от общите естествени функции, предоставени от Expo, са камера, файлова система, местоположение, социално удостоверяване, насочени известия, за да назовем само няколко. Докато използвате Expo, не е нужно да се притеснявате за интегрирането на тези собствени функции, тъй като те са достъпни за вас като част от пакета Expo.

Целият списък с налични API с Expo SDK е свързан по-долу:

API на Expo

6. Той е БЕЗПЛАТЕН и с отворен код

Не на последно място, Expo е безплатно и също така с отворен код. Експо общността е гостоприемна и нараства. Вие също можете да допринесете за него, тъй като е с отворен код. Можете да получите достъп до Expo repo от връзката по-долу:



Защо не Експо?

Е, има толкова много причини, поради които трябва да изберете да използвате Expo, за да създадете вашето приложение React Native. Но винаги има и избор да кажете не. Възможно е да има ситуации, в които Expo може да не е подходящото и за вас. Позволете ми да изброя някои от предупрежденията при използването на Expo по-долу:

1. Ако сте местен мобилен разработчик или имате местни разработчици в екипа

Най-голямото предимство на използването на Expo е, че не е нужно да докосвате собствен код. Но ако сте роден мобилен разработчик или имате местни мобилни разработчици във вашия екип, който работи върху изграждането на приложение React Native, не използвайте Expo. Защото няма да използвате естествения опит в кодирането, докато използвате Expo. Това може да е разочароващо за програмист с роден опит.

Вместо това създайте React Native приложения без Expo. Можете да създавате приложения, като използвате обикновения React Native CLI. С това винаги можете да променяте или персонализирате някои естествени компоненти и API, ако е необходимо.

2. Добавя още един слой абстракция — Твърде много магия

Някои разработчици не харесват, че Expo добавя още един слой абстракция към вече абстрахирания слой. Самият React Native има слой абстракция и по същество е обвивка около естествените компоненти на iOS и Android. Сега добавянето на още един слой на абстракция с Expo не е нещо, което някои разработчици може да се чувстват комфортно. Това означава, че под капака се случват много неща, върху които ние нямаме контрол. От моя гледна точка това не е истински проблем. Ако крайната цел е да се изгради солидно приложение React Native, магията всъщност е нещо добро. Но това е напълно субективно.

3. Все още не са налични всички API за iOS и Android

Официалната Expo документация гласи, че не всички iOS и Android API все още са налични. Функции като bluetooth, покупки в приложението все още не са налични с Expo. Не забравяйте да прочетете, за да проверите дали всички функции, които се опитвате да създадете, са налични с Expo, преди да решите по един или друг начин.

4. Не можете да изберете услуга за насочени известия

С Expo не можете да избирате „услуга за насочени известия“ като Firebase. Трябва да използвате това, което идва от кутията, което е One Signal. Ако това е нещо, което може да бъде проблем за вас, тогава Expo не е за вас.

Винаги можете да изхвърлите от Expo

Да приемем, че сте решили да създадете своето приложение React Native с Expo, но няколко месеца по-късно искате да се откажете. Винаги можете да извадите приложението си от екосистемата на Expo. Но може да има цена:

  • Може да се наложи да пренапишете своя код за насочено известие
  • Рефакторирайте кода, за да използвате други библиотеки, които не са част от екосистемата на Expo
  • Промени в навигацията и общо преработване на кода

Заключение

Това е интересно време в мобилното развитие. Използването на Expo или не за вашите React Native приложения зависи от функциите, сроковете, предпочитанията и разработчиците, които работят по него.

Можете да проверите моя курс за React Native по-долу, за да започнете с React Native:

„React Native: Голямата картина“

Други ресурси:

https://expo.io/developer-services

https://facebook.github.io/react-native/blog/

Надявам се тази статия да ви е харесала. Ще се видим отново с още статии. Ако сте харесали тази публикация, не забравяйте да я споделите с вашата мрежа. Можете да ме последвате в twitter @AdhithiRavi за повече актуализации или ако имате въпроси.

Тази статия първоначално е публикувана на адрес https://programmingwithmosh.com/