Aynur
Сам переходил с Java/Android на RN месяца 3 назад, в то же время пробовал и Dart. Dart всё же ближе к Java, там всё более привычно. К JS нужно привыкать, но как только привыкнешь, ты поймешь насколько это классно работает) + RN тебе как разработчику будет только в плюс, большой стек технологий получишь в 1, тем более я так понял вам нужно приложение-клиент просто, то тогда вообще без проблем RN. Но изучать js придется дольше, чем Dart
Александр
Всем привет, есть какой-то react-create-native-app? что бы без боли развернуть приложение?
Chu
create-react-native-app :)
Chu
https://github.com/react-community/create-react-native-app
Александр
Cenator 🐈
npx react-native init
Cenator 🐈
Если без експо
Chu
Да. С create-react-native-app есть особенность в виде дополнительной экосистемы. С которой со временем может стать больно.
Александр
Да. С create-react-native-app есть особенность в виде дополнительной экосистемы. С которой со временем может стать больно.
Вот еще вопрос. Как часто приходится писать не на react native, при разработке приложения?(скажем не самого сложного)
Chu
Кто-нибудь видел хорошие фотоглаллереи с зумом под экспо? Без нативных модулей. Нашел подходящие, которые с ним работать, увы не будут. А слезть в ближайшее время не получается.
Dan
Если есть нужда юзать сторонние плагины, советую посмотреть на их наличие и стабильность. Еще почитать обсуждаемые issues в обоих проектах. dart правда привычнее после java (статическая типизация, ооп).
C методологией программирования JS тоже знаком, пользовался как-то treejs. После того, как я с Паскаля перешел на С++ и мой мирок стал очень быстро ломаться и не понимать, что такое ООП, классы и т. п., изменения в философии и принципах языка меня не особо волнуют. Так что привычно-непривычно - это не тот фактор, который определяет выбранный мной язык, если только там совсем все по-другому. Под сторонними плагинами Вы имеете в виду не-ReactJs плагины?
Aleksei
я бы сказал что нужно смотреть вообще все
Chu
А какие вообще есть классные библиотеки для галлерей с увеличением фото?
Chu
Пусть даже и не для экспо.
Stas
шутка про упавший союз
Aynur
ракета тип намекает
Igor
Совершенно случайно вдруг кто-нибудь сталкивался: задача заключается в том что пользователь должен иметь возмодность тачем отредактировать растровую картинку. Те условно говоря нужна примитивная рисовалка на канвасе/контексте В RN нет апи доступа к графическим подисистемам, поэтому нужен врапнутый нативный компонент Мб кто-то с чем-то таким работал
Anonymous
Подскажите как в RN лучше картинки импортить. Читал что вот так не рекомендуется const splashIcon = require('src/img/splash_logo.png'); Или так лучше: <Image source={require('/react-native/img/favicon.png')}/>
Dmitry
Может будут у кого мысли, я хотел модифицировать mapDispatchToProps внутри connect для передачи туда дополнительных данных, но выходи так, что connect вызывается самым первым еще до рендера самого компонента и соответсвенно данных
Dmitry
Как бы его придержать ?
Mukhamed
Mukhamed
У кого было такое, на андроиде не ранится
Mukhamed
А когда remote debug включаю то не выдаёт этой ошибки
Illiа
Все добрый день. А как получить доступ и разрешение на сохранение файло на ios? Юзаю библиотеку joltup/rn-fetch-blob Или вообще возможно сохранять файлы на ios платформу?
Gena
Подскажите как в RN лучше картинки импортить. Читал что вот так не рекомендуется const splashIcon = require('src/img/splash_logo.png'); Или так лучше: <Image source={require('/react-native/img/favicon.png')}/>
Чем отличается первый вариант от второго? Вы про передачу результата require напрямую в source или через временную переменную или прочто что-то другое?
Gena
Может будут у кого мысли, я хотел модифицировать mapDispatchToProps внутри connect для передачи туда дополнительных данных, но выходи так, что connect вызывается самым первым еще до рендера самого компонента и соответсвенно данных
Это невозможно. Но если посмотреть внимательно, там есть апи для этого (его использование частично "убивает" оптимизацию рендера, но когда очень надо там всё есть). Если конечно я правильно угадал, почему эта задача возникла.
Gena
Да, я видел, но не помогло
Т.е. нужны не просто props компонента в мэппере, а что-то ещё? Если стейт нужен - труба... надо бить на два компонента и connect на внутреннем дергать, а стейт во внешнем держать и передавать вниз как props
Gena
Но redux не моя тема )
Dmitry
Да не, там ни стейт ни пропсы не нужны
Dmitry
Я просто делаю "редаксовский конвейер", и хотел туда подсунуть экшены, чтобы проще было биндить. Ох щас камни полетят)
Dmitry
до mobx мы еще не дошли
Illiа
@iLonny поставил путь сохранения: DocumentDir, записывает файл в директорию /var/mobile/Containers/Data/Application/DC36939.../Documents/y2E7lMsY5ryL1bJ9ewZpvAaC082Gq6ZV.jpg но как мне теперь его просмотреть?
Illiа
@playra source должен быть 'uri' или 'require()' source={require('/react-native/img/favicon.png')}source={{uri: 'https://facebook.github.io/react-native/docs/assets/favicon.png'}}
Illiа
@iLonny проблема теперь его просмотреть, в андроиде могу просмотреть через дополнительные проги типа: Микрософф Ворд, ПДФ ридер ....
Illiа
@playra https://facebook.github.io/react-native/docs/image#source
Illiа
@playra <Children iconRightPlus={iconRightPlus} />Выходит загвоздка в этом. Название атрибута идентично с параметром атрибута. И что это за чилдрен елемент?
Illiа
@playra ты бы сразу и начал бы с норм впороса... как в чилдрен передать
Illiа
@playra попробуй через this.props.iconRightPlus
Никита
а если логать значение там вообще есть? если рендерить не картинку а красный квадрат 30 на 30 есть что-то?
Anonymous
Приветствую, подскажите как разместить вакансию на Reactnative разработку / 1 мес. ?
Alexsandr
https://t.me/javascript_jobs
Alexandr
Подскажите как исправить ошибку. На абсолютно чистом приложении EXPO при открытии на андроид выдает ошибку На эмуляторе ios работает
Dmitry
Простите меня. без попутал, флаттер поставился сам
Alexander
Как подружить react-native-typescript-transformer и hot reload?
Gena
у меня они вроде дружат... вот с mobx не всегда...
Dmitry
@gblack9 Кстати, ты, как-то обмолвился, что у вас api на вебсокетах
Dmitry
я правильно понимаю, что речь об api запрос - ответ?
Gena
я правильно понимаю, что речь об api запрос - ответ?
Не совсем, там независимо можно команды посылать, как client->server, так и server -> client... и уже поверх этой абстракции, можно послать команду с токеном на сервер, который этот токен назад пришлет (чтоб клиент смог понять, что это именно на такой-то его запрос ответ)
Dmitry
я часто от тебя слышу это название, но так никак и не доберусь посмотреть)
Dmitry
Если коротко, то у нас достаточно сложное корпоративное приложение. Представляет собой многоуровневую систему задач, есть корневые задачи, вложенные и конечные. В конечных задачах есть возможность вести обсуждения в чатах. При этом поступление нового сообщения в чат должно добавлять счетчик сообщения на его задачу и поднимать счетчики вверх по дереву. Изменение наборов свойств родительских задач пораждает измениня вниз по дереву и так далее. Ну еще и свои боты есть, которые динамически создают задачи и сообщения для определенных наборов участников задач и чатов. Я не говорю еще и о разделении прав, администраторах, наследовании при создаании задач и закрытии чатов и задач с пробросом вниз и вверх по дереву. Сейчас все это живет на http подобном api и лонгпуллинг подпиской, которая рассылает ивенты на устройства при тех или иных изменениях в данных. Делать все это мне было достаточно трудоемко. Сервер на python + MSSQL и Clickhouse для агрегации логов и уведомлений + генерация шифрованных токенов для защиты запросов. В итоге все это работает, но есть просадки с зависанием запросов на клиентах + лонгпуллинг может быть требователен к ресурсам ведь фактически приходится дергать Clickhouse раз в 100ms за новым данными. К сожалению, когда эту задачу ставили не дали подниматься вебсокеты, так как у нас прокси сервер достаточно старый и с ними работает плохо, но сейчас уже готовлю сервер для v2 и можно поиграть с сокетами...
Gena
Если коротко, то у нас достаточно сложное корпоративное приложение. Представляет собой многоуровневую систему задач, есть корневые задачи, вложенные и конечные. В конечных задачах есть возможность вести обсуждения в чатах. При этом поступление нового сообщения в чат должно добавлять счетчик сообщения на его задачу и поднимать счетчики вверх по дереву. Изменение наборов свойств родительских задач пораждает измениня вниз по дереву и так далее. Ну еще и свои боты есть, которые динамически создают задачи и сообщения для определенных наборов участников задач и чатов. Я не говорю еще и о разделении прав, администраторах, наследовании при создаании задач и закрытии чатов и задач с пробросом вниз и вверх по дереву. Сейчас все это живет на http подобном api и лонгпуллинг подпиской, которая рассылает ивенты на устройства при тех или иных изменениях в данных. Делать все это мне было достаточно трудоемко. Сервер на python + MSSQL и Clickhouse для агрегации логов и уведомлений + генерация шифрованных токенов для защиты запросов. В итоге все это работает, но есть просадки с зависанием запросов на клиентах + лонгпуллинг может быть требователен к ресурсам ведь фактически приходится дергать Clickhouse раз в 100ms за новым данными. К сожалению, когда эту задачу ставили не дали подниматься вебсокеты, так как у нас прокси сервер достаточно старый и с ними работает плохо, но сейчас уже готовлю сервер для v2 и можно поиграть с сокетами...
Имхо, тут не только в сокетах дело... хотя я считаю, они должны быть неотемлемой частью такой системы (лонг поллинг это хак в любом случае). Тут, если самим делать, большая задача это определение протокола который: 1. позволяет закодировать все изменения данных 2. позволяет сделать это компактно И вторая большая задача это сервер... по опыту такие системы шустро работают, только если working set... те данные про которые сейчас нужно кому-то знать находятся в памяти и изменения по ним рассылаются во сессии всех клиентов которым нужно о них знать одновременно (или непосредственно после) укладки в бд )
Dmitry
Имхо, тут не только в сокетах дело... хотя я считаю, они должны быть неотемлемой частью такой системы (лонг поллинг это хак в любом случае). Тут, если самим делать, большая задача это определение протокола который: 1. позволяет закодировать все изменения данных 2. позволяет сделать это компактно И вторая большая задача это сервер... по опыту такие системы шустро работают, только если working set... те данные про которые сейчас нужно кому-то знать находятся в памяти и изменения по ним рассылаются во сессии всех клиентов которым нужно о них знать одновременно (или непосредственно после) укладки в бд )
Да, но при обычном http-api ты не знаешь кому отправлять данные, потому что никто к тебе и не подключен.. Лонгпуллинг в этом случае позвляет мне отслеживать коннекты по подписке на события и отправлять данные только тем, кто онлайн из тех, кто должен получить данные, потому что остальные и так их получат, когда войдут в приложение обычными запросами
Roman
есть ли возможность слить папку из files.app к себе в локальные документы приложения?
Dmitry
хотя может инфа устаревшая у меня
Dmitry
Что то я уже всю голову сломал. Есть у меня HOC компонент я могу в нем получить контекст Component котого он оборачивает?
Dmitry
Спасибо
Roman
Добрый день. Кто нибудь знает есть ли у react-navigation метод который отрабатывает при смене экрана? раньше был onNavigationStateChange но сейчас при его реализации вылезает error. Можно конечно написать middlerware но мне это не подходит.
Roman
это то что надо спасибо. я это не нашел из за тово что сидел в старой доке. Спасибо
Dmitry
Я посмотрю, но готовые решения таких больших частей не для нас. Слишком высокая частота внедрения нового функционала. Мне проще потратить время и написать свой механизм, но зато я смогу спокойно его масштабировать. Тем не менее, изучу, может что интересен будет
Dmitry
Прикрутил и gifted-chat для сообщений, в итоге почти целиком его переписал, потому что примитивный функционал
Vit
Призма шляпа же)
Vit
https://github.com/hasura/graphql-engine
Vit
Вот хасуру берите)
Vit
Ну чот не понравилась не помню уже. Как-то костыльно показалось все