Preeternal
ФП понятнее чем ООП как по мне
Denis
Насчёт не предназначен можно поспорить. Когда жс создавался SCHEME был взят за прототип(не так но посыл понятен). Для нормального фп в жс не хватает иммутабельных структур и сахара вроде пайпов.
Редукс тормозит потому что это один большой объект. Там тормоза не с фп темой связаны.
Я сам ангуляр разработчик, у нас там бывает берут редукс и юзают его не как сингл стор. В ангуляр случае это просто удобный инструмент для поддержки иммутабельности, а иммутабельность даёт возможность ослабить чейндждетектор и в итоге работать начинает всё только быстрее если не делать один стор на всё приложение. Оверхед от чейндждетектора больше чем оверхед иммутабельности
Denis
В реакт случае тема с чейндждетектором нерелевантна
Sasha
'React/RCTBridgeModule.h' file not found в каждом открытом приложении при сборке
Sasha
Что делать?
Dr
Всем добрый вечер. Кто-нибудь ставил в своей прилеге логин через вк? Рофл такой, когда есть прилага вк и моя, то не работает. Когда сношу вк, то логин через мою прилагу начинает работать)
Gena
Dmitry
Dr
да, эта библиотека, андроид
Dmitry
Teddy
Всем привет.
Можете подсказать.
Стоит задача создать кроссплатформенное мобильное приложение, решаю есть ли смысл писать его на этой технологии.
В принципе в приложении будет только вывод информации \ заполнение данных \ инпутов. Процессо-затратные вещи не планируются.
По старту экранов 6, с авторизацией + чат, но макс на 2 пользователя (Общение с менеджером и новости\акции компании). Приложуха корпоративная, закрытая. до 20-30к пользователей макс, если наберётся)
Сам я хорошо знаком с react, nodejs, typescript. На native \ под моб. приложения не писал.
1. Есть ли какие-то серъезные проблемы \ недоработки технологии, на которые стоит обратить внимание.
2. Нормальная ли поддержка смартфонами, если использовать только функционал react-native, без нативных каких-то доработок.
3. Часто слышу, что его используют по большей части в прототипировании...
4. Отпугивает то что технология новая, и еще не очень обкатанная.
Планирую писать код в 1 лицо. С реакт приложениями +- средней сложности проблем не возникало...
Есть ли тут подводные камни, Т.е. не будет ли диких тормозов при работе с данными, и серъезных проблем в самой технологии?) )
Заранее благодарю за ответ)
Gena
Насчёт не предназначен можно поспорить. Когда жс создавался SCHEME был взят за прототип(не так но посыл понятен). Для нормального фп в жс не хватает иммутабельных структур и сахара вроде пайпов.
Редукс тормозит потому что это один большой объект. Там тормоза не с фп темой связаны.
Я сам ангуляр разработчик, у нас там бывает берут редукс и юзают его не как сингл стор. В ангуляр случае это просто удобный инструмент для поддержки иммутабельности, а иммутабельность даёт возможность ослабить чейндждетектор и в итоге работать начинает всё только быстрее если не делать один стор на всё приложение. Оверхед от чейндждетектора больше чем оверхед иммутабельности
1. fp... для того чтоб нормально работало, надо не синтаксис, а ядро языка чтоб было под это заточено, haskell тратит кучу времени на анализ кода, вывод типов и трансляцию в нормальный понятный процессору flow... в итоге получается эффективный код с fp. То же про erlang можно сказать. И это нельзя сказать про js, ни про v8, ни про jsc, который в RN.
2. производительность с иммутабельностью. Это пока всё мое слово против вашего...
Да, вы выигрываете на детекте изменений в объекте, но проигрываете на необходимости копировать. Путь это только ссылки на объекты... но попробуйте скопировать массив из 1000 ссылок на сообщения в чате... только для того, чтоб новый массив получить, или объект с 20 св-ми... плюс при сильной вложенности опять многоуровневое копирование до самого корня структуры, это значит, что надо стремиться уменьшить вложенность, это ограничивает выразительные возможности архитектуры
Я могу сказать следующее, я перевел один большой RN проект с redux на mobx и кол-во лишних рендеров в компонентах уменьшилось в разы, нагрузка на CPU упала (не помню на сколько, но значительно), упала пиковая нагрузка на GC, архитектура стала проще и понятней. С тех пор я не использую redux.
Gena
да, эта библиотека, андроид
По андроид пока не подскажу, у нас только ios пока что. В ios это вроде работает, но сам нативный sdk выглядит довольно заброшенным, я уже думаю не только react-native-vkontakte-login, но и его форкануть (
Gena
Gena
Ну я скину, если/когда починю
Dmitry
Всем привет.
Можете подсказать.
Стоит задача создать кроссплатформенное мобильное приложение, решаю есть ли смысл писать его на этой технологии.
В принципе в приложении будет только вывод информации \ заполнение данных \ инпутов. Процессо-затратные вещи не планируются.
По старту экранов 6, с авторизацией + чат, но макс на 2 пользователя (Общение с менеджером и новости\акции компании). Приложуха корпоративная, закрытая. до 20-30к пользователей макс, если наберётся)
Сам я хорошо знаком с react, nodejs, typescript. На native \ под моб. приложения не писал.
1. Есть ли какие-то серъезные проблемы \ недоработки технологии, на которые стоит обратить внимание.
2. Нормальная ли поддержка смартфонами, если использовать только функционал react-native, без нативных каких-то доработок.
3. Часто слышу, что его используют по большей части в прототипировании...
4. Отпугивает то что технология новая, и еще не очень обкатанная.
Планирую писать код в 1 лицо. С реакт приложениями +- средней сложности проблем не возникало...
Есть ли тут подводные камни, Т.е. не будет ли диких тормозов при работе с данными, и серъезных проблем в самой технологии?) )
Заранее благодарю за ответ)
Если знания реакта есть, а знаний наивной разработки недостаточно, то реакт-натив максимально логично звучит.
Проще всего за два дня сделать эти шесть экранов, и сразу видны будут все плюсы и минусы платформы.
Изучать две нативных платформы в любом случае дольше, чем чат по туториалам собрать на коленке.
Gena
Dr
либа react-native-vkontaket-login
Denis
1. fp... для того чтоб нормально работало, надо не синтаксис, а ядро языка чтоб было под это заточено, haskell тратит кучу времени на анализ кода, вывод типов и трансляцию в нормальный понятный процессору flow... в итоге получается эффективный код с fp. То же про erlang можно сказать. И это нельзя сказать про js, ни про v8, ни про jsc, который в RN.
2. производительность с иммутабельностью. Это пока всё мое слово против вашего...
Да, вы выигрываете на детекте изменений в объекте, но проигрываете на необходимости копировать. Путь это только ссылки на объекты... но попробуйте скопировать массив из 1000 ссылок на сообщения в чате... только для того, чтоб новый массив получить, или объект с 20 св-ми... плюс при сильной вложенности опять многоуровневое копирование до самого корня структуры, это значит, что надо стремиться уменьшить вложенность, это ограничивает выразительные возможности архитектуры
Я могу сказать следующее, я перевел один большой RN проект с redux на mobx и кол-во лишних рендеров в компонентах уменьшилось в разы, нагрузка на CPU упала (не помню на сколько, но значительно), упала пиковая нагрузка на GC, архитектура стала проще и понятней. С тех пор я не использую redux.
1. иммутабельные структуры данных поддерживаемые самим языком, и будет всё ок с рантаймом, я о них и пишу. Хаскель вообще не лучший пример, он делает анализ ещё исходя из его «ленивости» и перфоманс у него такой себе в реальном мире. Из фп языков окамл кладёт на лопатки всех, и у него как раз очень простой компилятор и анализа он никакого не делает(даже полиморфную функцию не мономорфит если она используется только на одном типе в коде). С вызовом функций и оверхедом на их проброс в жс в последнее время всё стало хорошо. Это решаемая задача. По поводу GC мало что могу сказать, но с иммутабельными типами на уровне языка его можно оптимизировать работать с ними это точно.
2. Насчёт 1000 сообщений, обновляешь массивы по 50, всю тему с историей и поиском через фабрики разруливаешь. При этом никто же не мешает сам модуль сообщений сделать мутабельно. Здесь неудобно из-за недостатка языка, это да. Под каждую задачу нужно выбирать подход. То что фп-вей мне видится как наилучший подход к большинству задач скорее личное мнение. Фанбойством заниматься не хочу :)
Denis
Насчёт чейндждетектора, там у ангуляра всё по-другому работает. Иммутабельность позволяет скипнуть целое дерево при чейндждетекшен проходе. Когда не иммутабельно, то ангуляр знать не знает изменилось ли что-то и в итоге проверяет всё.
В ангуляре это реально окупаемо. Там же ещё нет vdom, дифф делать не надо, нагрузка вся идёт от чейндждетектора. Судя по вашему опыту в реакте нет. Ну на нет и суда нет, буду знать :)
Кто-нибудь работал с shake gesture, как можно отключить дев меню при встряхивании телефона?
Андроид, да, выключить в дев сборке на время, чтобы протестировать все, выключить только меню, потому что при встряхивании телефона вылазит меню, а другие слушатели ни как не реагируют уже
Vitaliy
Ок, попробую, спасибо
Oleg
всем привет
Oleg
задумался о монорепе, смотрю многие используют для этого lerna, не до конца понимаю что она дает если есть yarn workspaces
чей ты
https://github.com/fixerteam/React-Native-monorepo
чей ты
Vitaliy
GrafMine
кто что юзает для пассворд метра в плане секюрности ?)
GrafMine
GrafMine
я о этом, есть ли либа какая которая высчитывает надежность пароля ?
Vadim
Dmitry
Stas
Gena
А кто и как acknowledgements (licenses, благодарности или Apple это сама на русский как "уведомления" переводит) в приложении делает? Меня сейчас непосредственно ios интересует, но в будущем это и для android надо.
Сейчас я сделал стандартное для cocoapods решение, т.е. добавил в Settings.bundle сгенерированный plist - там список всех сторонних библиотек с лицензиями. Это круто, но мало. Во первых у проекта есть runtime dependencies в package.json, во вторых есть ещё некая информация, к примеру заказчики хотят тогда уж ещё на unsplash и шрифты сослаться.
Сейчас думаю писать скрипт, который возьмет кастомный список, package.json и то, что cocoapods генерит и составит свой plist... но это м... может готовое есть что-то?
Dmitry
Кстати, кто видел мой вброс насчет перехвата половины частот блютуз колонки с запущенным в симуляторе iOS приложением. Оказалось, что в Info.plist были прописаны permissions для блютуза, но по факту они не запрашивались, ведь на эмуляторе его нет, но он видимо пробрасывается с самого мака, и колонка видимо одновременно подключалась к обоим =)
Dmitry
Кто работает с figma и как лечить головную боль со шрифтами ?
Alexsandr
Dmitry
Dmitry
а в несоответствии размерностей
Dmitry
Dmitry
Dmitry
Dmitry
Dmitry
как бы 13px не могут быть 13pt
Gena
Я не уверен, вроде мы что-то похожее решали созданием проекта не для веба, а для мобилки (только не помню в figma ли)
Dmitry
Dmitry
тут нет выбора
Aynur
скетч видимо
Aynur
там есть какой-то отдельный вид слоёв
Dmitry
прочитал на форуме ответ. Типа figma выставляет одинаковое значение px и pt, потому что дизайнерая в принципе все равно на это значение. И типа масштабируйте сами для достижения нужно эффекта, если не устраивает размер
Dmitry
какая-то жесть
Alexey
1. fp... для того чтоб нормально работало, надо не синтаксис, а ядро языка чтоб было под это заточено, haskell тратит кучу времени на анализ кода, вывод типов и трансляцию в нормальный понятный процессору flow... в итоге получается эффективный код с fp. То же про erlang можно сказать. И это нельзя сказать про js, ни про v8, ни про jsc, который в RN.
2. производительность с иммутабельностью. Это пока всё мое слово против вашего...
Да, вы выигрываете на детекте изменений в объекте, но проигрываете на необходимости копировать. Путь это только ссылки на объекты... но попробуйте скопировать массив из 1000 ссылок на сообщения в чате... только для того, чтоб новый массив получить, или объект с 20 св-ми... плюс при сильной вложенности опять многоуровневое копирование до самого корня структуры, это значит, что надо стремиться уменьшить вложенность, это ограничивает выразительные возможности архитектуры
Я могу сказать следующее, я перевел один большой RN проект с redux на mobx и кол-во лишних рендеров в компонентах уменьшилось в разы, нагрузка на CPU упала (не помню на сколько, но значительно), упала пиковая нагрузка на GC, архитектура стала проще и понятней. С тех пор я не использую redux.
Не выдержал - подпишусь под каждым словом
Andrey
какая-то жесть
вроде норм практика, когда у тебя есть функция, в которую кидаешь размер из макета, а она выдает тебе нужный размер на нужный экран
Dmitry
Dmitry
потому что даже толщина шрифта визуально не соответствует
Dmitry
400 слишком тонко, а 500 чуть жирнее
Dmitry
но я не помню таких проблем со скетчем
Nikita
Dmitry
когда делается брендбук, то все должно соответствовать, а не лепить отсебятину в приложении
Nikita
я просто даже не пытался нагуглить под мобилки подобный плагин, вот и интересно
Dmitry
Dmitry
хотя и это можно учесть, если обозначить на этапе создани
Gena
Мне как раз и интересно... так и не придумал как совместить pixel-perfect и возможные вариации платформенные или вот такие с масштабированием. Мы в итоге отказались от перфекционизма )
Gena
Слушайте, хотел поделиться, открыл для себя https://github.com/davglass/license-checker
Проверил проект, получил такое:
├─ MIT: 574
├─ ISC: 59
├─ Apache-2.0: 15
├─ BSD-3-Clause: 10
├─ BSD-2-Clause: 5
├─ MIT*: 4
├─ Unlicense: 2
├─ CC0-1.0: 2
├─ Apache License, Version 2.0: 2
├─ UNLICENSED: 1
├─ (MIT OR Apache-2.0): 1
├─ BSD*: 1
├─ BSD: 1
├─ Public Domain: 1
├─ (BSD-2-Clause OR MIT OR Apache-2.0): 1
├─ Custom: https://facebook.github.io/react-native/: 1
├─ CC-BY-3.0: 1
├─ (GPL-2.0 OR MIT): 1
├─ LGPL: 1
└─ UNKNOWN: 1
И выдохнул с облегчением, т.к. UNKNOWN - это наши внутренние модули, а единственный LGPL это вот оно: https://github.com/facebook/react-native-fbsdk/blob/master/bin/ios_setup.js#L27 (и оно на самом деле не бандлится)...
Bogdan
привет, кто может подсказать по цене приложения под android?
- чат мастер/клиент
- сообщения о заявках с сайта (мастеру)
- уведомления (о новых отзывах... мастеру)
мастер в приложухе, клиент на сайте
Maksym
Привет. Ребят, может кто посоветует, как можно оптимизировать первоначальную отрисовку большого списка елементов (использую ScrollView)?
Gena
Дмитрий
Gena
Так, если что, старый List работал в RN, вот этот: https://github.com/facebook/react-native/blob/0.58-stable/Libraries/Lists/ListView/ListView.js
virtualized типа FlatList - тоже вариант, но он делает больше... он оптимизирует не первоначальную загрузку, а общий баланс memory-cpu, пытаясь отрисовывать только то, что видно на экране
Dmitry
Kirill
Всем привет. Может кто-нибудь сталкивался с такой проблемой на андроид платформе, когда происходит первый рендер приложения и с компонентой svg с помощью модуля react-native-svg, приложение крашится, если ставлю сет таймаут на плявление свг все окей