Vladimir
Я бы сказал так, писать на RN только на бумаге и в курилке быстрее. По факту мы сейчас код, вместо того чтобы писать один раз, пишем три раза - на котлине под андроид, на свифте под айос и бизнес логику и врапперы на js для RN. Почему? Потому что как только что-то сложное, кастомное, с анимациями, оказывается что нативка вытирает ноги обо все и никуда от этого не деться. Бизнес логика - да, удобно. Стоит оно того? Только если у компании ОЧЕНЬ много денег или ОЧЕНЬ скромные запросы.
Aleksei
Aleksei
⩔wein
Vladimir
⩔wein
Aleksei
⩔wein
Кроме того RN великолепен для приложений которые раньше бы писались на cordova. По сути прямой апгрейд
Vladimir
Aleksei
Vladimir
я понял, вопрос в том окупается ли - если да, то RN отличный выбор.
Vladimir
Просто сейчас на волне хайпа его пытаются использовать везде, где нужно и где нет.
Aleksei
⩔wein
Aleksei
⩔wein
Ну. Можно но плохая идея
Aleksei
⩔wein
Я к тому что если большая часть приложения из нативных модулей - от декларативности мало что останется
Aleksei
Aleksei
по факту есть всем знакомый пример - браузер. html разметка очень даже декларативна, вы говорите на сервере, ЧТО отрисовать, а ИМПЕРАТИВНЫЙ движок уже позаботится о деталях
⩔wein
вы видимо как то не так понимаете декларативность
Перефразирую - в процентном соотношении часть приложения написанная в декларативном стиле будет примерно равна части приложения написанной на js.
Если большая часть приложения - нативные модули - большая часть приложения будет вполне императивной.
⩔wein
Можно конечно просто воспринимать нативные модули как вещи в себе, про которые я просто знаю их внешнее апи и использую в своем JS приложении и в таком случае они, внешне, вполне декларативны
Aleksei
Aleksei
Aleksei
Aleksei
это кстати для меня большой вопрос в том же Kotlin Native, там не будет реакта)
⩔wein
Vladimir
Vladimir
Я лукавлю немного, часть нативных компонентов, таки оказалось плолне возможно реализовать в JS, с приемлемым оверхэдом, но тенденция именно такая.
Vladimir
Ну менеджерам интересно, девелоперам весело. Все счастливы.
Anonymous
Кто ни будь пробовал вызывать Picker при клике на Button? В плане открытие списка опций?
Aleksei
все козыри вскрыл 😄
Vladimir
нет, все же очень субъективно, никто не ждет чуда, понятно что аллокаций будет больше, понятно что сборщик мусора будет недоволен, но если работает с приемлемой производительностью - хорошо, если нет - перерисуем попроще или напишем костылей на нативке.
Vladimir
причем чаще второе, чем первое
Vladimir
зависит сильно от контекста, лист состоящий из абсолютно разных айтемов будет работать примерно с той же памятью, лист из одинаковых айтемов можно математикой просчитать умножив память на один айтем на общее число и разделив на число айтемов влезающих на экран плюс 4
Vladimir
по крайней мере для андроида
Vladimir
краткий ответ от нуля и до бесконечности, зависит от конкретного случая 🙂
Vladimir
так нам же за это деньги и платят, вроде 🙂
Kyrylo
@kozhevnikovv за rn много говорят про переиспользованность кода, а так как 90% это верстка ui и зачастую она отличается между платформами- есть ли тот от rn ?
Vladimir
Так я же писал про это выше. Зависит от конкретных потребностей. Если у вас много бизнес логики - да, смысл имеет. Если нет, то только если у вас много веб девелоперов которых нечем занять и есть нативщики готовые им помочь решать конкретные проблемы. В моих приложениях, субъективно переиспользование кода очень ограничено и занимает минимум от кодовой базы.
Vladimir
Ну то есть 5% о которых я писал выше это очень оптимистичная оценка, но и проект достаточно специфичный. Возможно объективная статистика даст сильно больший результат.
Kyrylo
вот у меня в проектах так же. все в основном бизнес логика максимум на сервере. и на клиенте в основном один ui
Vadim
Парни, кто пользуется code push после его переезда в appcenter? Расскажите впечатления свои
Anonymous
Привет. Ребят при вызове дебагинга ошибку винда пишет, chrome not found. Хотя пути даже поставил, chrome есть. Кто сталкивался, отпишите
Vagan
Ребят кто толковый курс порекомендует?
Vagan
Реакт натив
Vladimir
https://github.com/react-native-village/react-native-init
Alex
всем привет ребят подскажите кто юзает NativeBase почему на iOS все работает а пробую на андроид то все слова в кнопках в футерах и в хедерах сокращены хотя места хватает ? А также не скролится на андроиде (( спасибо
Vagan
Спасибо Владимир!!
Alexey
Привет, может кто-нибудь помочь разобраться с навигацией?
Alexey
У меня есть главный StackNavigator в котором как screen указан компонент который содержит небольшую разметку, например "Home" и в разметке этого компонента у меня есть TabNavigator.
Структура примерно такая:
StackNavigator
|— Home
|— TabNavigator
|— TabA
|— Settings
Немогу из "TabA" перейти на экран с настройками. Как я понял из-за того, что я использую TabNavigator внутри компонента, а не напрямую передаю его StackNavigator-у теряется контекст и TabNavigator не знает о родительких маршрутах.
Никто с таким не сталкивался?
Demuz
Alex
Ребят кто знает как запретить во время перехода через stack navigator вернутся назад ? Даже если ставлю header null все равно можно пальцем вернуться назад
Никита
Alex
Спасибо буду пробовать !
Sergey
?
Anonymous
Подробней
Alex
Доброе утро! Ребят кто юзает nativebase как в card передать данные из json ? гайдик бы подробный а то индусовские не работают варианты
Illiа
Привет всем, кто подскажет как записать в state данные подгружаемые из AsyncStorage, я создал функцию getLocal в которой гетятся AsyncStorage, вызываю её в componentDidMount() но они не записываются...
Roman
getLocal - async?
Illiа
getLocal в которой выполняется AsyncStogate.getItem()...
Illiа
Peter
AsyncStorage это Promise, нужно использовать async, await подход или как Promise.then.catch
Illiа
Illiа
в консоле after getLocal() всеравно пусто, только стейт видно into auth и into lang
Elijah
Потому что оно ассинхронное
Elijah
Консоль лог выполняется до окончания getLocal
Illiа
одним словом в компонентДидМоунт я не увижу обновленный стейт?
Elijah
Сделай getLocal промисом, а в componentDidMount лог вызывай из .then
Peter
async componentDidMount() {
const email = await AsyncStorage.getItem('@Auth:email');
const password = await AsyncStorage.getItem('@Auth:password');
}
Maxim
Привет, кто-нибудь знает как удалить приложение с itunesconnect, если оно не проходило стадию "Ready for Sale"?
Alexey
@mighty_ramen никак. пишете в саппорт apple
Władimir (Zae)
есть ли какой то способ обойти ограничение в 15 мин для бекграунд тасок на андроиде?