Pull to refresh

Comments 7

Тоже как то создал проект в познавательных целях, запустил и первая функция что попробовал сделать оказалась недоступна из стандартного api (шаринг в моё приложение, а не из него), а для того чтобы она заработала предлагали только создавать нативное приложение с интеграцией реакта внутри, в итоге из маленького приложения для отправки файла 90% работы платформозависимы. В больших проектах это будет капля в море и оно имеет смысл, но как то неприятно столкнуться с проблемами в таком расхваленном фреймворке на 5 минуте знакомства с ним.
2ой взгляд мало кто делает))
Если какого-то функционала нет, всегда можно найти библиотеку в сообществе react-native специалистов.

К сожалениию не всегда, будьте готовы изучать нативный язык устройства. Тот же OAuth vkSKd и odnoklassniki для react-native(далее RN) как таковые рабочие пакеты отсутствуют. Либо используйте более старую версию RN, либо допиливайте ручками(зачастую у некоторых пакетов нативного кода, даже примеры без напильника не запускаются). Если вы хотите что-то серьезного, помимо стандартной веб-морды, то RN не для вас.
Мы последний год используем RN в продакшене. Приложения у нас гибридные, часть на RN, часть нативная, так вот под RN кастомное почти ничего не писали, только Bridge для общения RN — Native, всё остальное есть в npm. По поводу перфоманса, RN не совсем хорошо справляется с большим количеством анимаций, а так в целом не отличить где RN а где Native. В общем мы большем выигрыше с тех пор, как начали использовать RN, ибо приложение делается сразу на две платформы без особых усилий.
Парочку ссылок на апки, для тех кому интересно:
X Factor iOS: itunes.apple.com/gb/app/the-x-factor-uk/id455682741?mt=8
X Factor Android: play.google.com/store/apps/details?id=com.tellybug.xfactor&hl=en_GB
Love Island iOS: itunes.apple.com/gb/app/love-island/id994494368?mt=8
Love Island Android: play.google.com/store/apps/details?id=com.itv.tellybug.loveisland

create-reactive-native-app на данный момент создает т.н. «Expo-приложение» (это какая-то третье-сторонняя контора). Из плюшек — какое-то количество своих кросс-платформенных API, из коробки работает SVG, можно опубликовать свое приложение без возни со сторами (но оно будет доступно только в этом самом Expo). Из минусов — оверхед в 25 мегов (без него — всего 8), эмуляторы и девайсы по USB недоступны (ну или как-то хорошо спрятаны), на устройство надо ставить приложение Expo и оно должно быть в той же WiFi-сети.


react-native init MyAppName создает вполне рабочий проект без черной магии, запускающийся в эмуле.

Хочу заметить, что React Native очень хорошо работает с async/await. И тем образом код становится очень аккуратным и легко читаемым. Правда, отловить забытый await порой бывает очень сложно. Вроде как даже перед такими функциями, как componentWillMount, можно ставить async
Реакт убог и его использование на адекватном уровне — невозможно. Пробовали одно время на нем делать приложения, в итоге тупо столкнулись с тем, что все время идут какие-то косяки на уровне телефонов, чаще всего китайских и самсунгов, либо в пограничных ситуаций, которых, когда у тебя 100 000 + пользователей — каждый день валится по 200-300.

В итоге, решили не страдать фигней, и писали на нативных языках под каждую платформу.
Зато он невероятно удобен для pet проектов. У меня где-то с десяток небольших приложений, написанных за пару дней, для меня и моей семьи.
Про серьёзные приложения ничего сказать не могу, так как это не мой род деятельности. Но мне, как веб разработчику, очень нравится подобная технология из-за знакомого мне JavaScript.
Sign up to leave a comment.

Articles