Aleksei
Всем привет. Мне тут нужно пробросить ObjC либу в рн и всё идёт вполне неплохо, но как я понимаю после детача/еджекта привычным экспо приложением пользоваться нельзя (что вполне ок) и указывать урл откуда берутся джс нельзя (что не ок). Надеюсь я чего то не понимаю и меня поправят. Крайне желательно чтобы пишущие на рн сотрудники не имели дело с икскодом (мосты пишутся один раз и обновляются в случае багов, то есть редко). И маки им были не обязательны, только айфоны. то есть кто-то собирает на маке дебажную сборку, заливает на айфон. разрабы запускают локальные серваки под любой ос, айфоны их находят. ну можно и релизную на устройство заливать, но всё равно там кажется жёстко указывается аккаунт в expo.io при сборке (не увеен само собой) Из текущей ситуации вижу только такой выход: писать ишью/пулреквест в экспо чтобы в дебажной сборке можно было указывать урл. или мб всё таки это как-то конфигурируется в ios проекте. демотивирующие ссылочки: https://forums.expo.io/t/change-development-url-of-detached-app/1049 https://dev.to/kayis/react-native-lessons-learned
Привет. Как раз после эджекта ты и сможешь указывать откуда брать js, это все в AppDelegate прописывается и в режимах сборки. Конечно у вас довольно специфичные требования, но в принципе думаю сделать можно. Нужны просто вопросы более предметные и конкретные, чем так 🙂
Влод
здорово, но в апделегате я и пытался найти что-нибудь похожее
Влод
ну и далее в сорцах экспо/рн
Влод
ну то есть мб ответ на поверхности но я не вижу
Pavel
Aleksei
Во всем ) А в чем react функционален?
классно ты отвечаешь вопросом на вопрос
Aleksei
ты же вбросил что он не функционален
Aleksei
а теперь говоришь мне доказывать обратное
Pavel
ты же вбросил что он не функционален
Да, потому что я не знаю ни одной причины что бы назвать реакт функциональным )
Aleksei
ну то есть мб ответ на поверхности но я не вижу
ну вот смотри мой AppDelegate, на этих строках и прописывается путь до бандла, думаю отсюда и надо начинать копать https://github.com/savelichalex/personal-bookkeeping/blob/master/ios/PersonalBookkeeping/AppDelegate.m#L36
Влод
Во всем ) А в чем react функционален?
ui функция от стейта, вместо вставок текста в лейауты, ты сразу описываешь весь лейаут
Aleksei
Да, потому что я не знаю ни одной причины что бы назвать реакт функциональным )
я как бы попросил конкретные примеры где он императивен
Aleksei
а не где он функционален
Влод
ну то есть он ещё не иммутабельный но ближе к фп чем что бы там ни было раньше
Влод
ну или иммутабельный, но подозреваю там всё же есть хаки для производительности (речь о предоставляемом пользователю апи, а не о том как внутри устроено)
Pavel
ui функция от стейта, вместо вставок текста в лейауты, ты сразу описываешь весь лейаут
Начнем с того что реакт компонент это класс, а не функция.
Влод
при чём тут фп?
Aleksei
Начнем с того что реакт компонент это класс, а не функция.
начнем с того что реакт компонент это объект а не класс
Pavel
начнем с того что реакт компонент это объект а не класс
Ок, это объект косящий под ООП класс, но ни как не функция
Влод
классы по сути предоставляют полиморфизм по первому аргументу функции, что не противоречит фп. Хотя в современных фп-языках от этого отказываются в пользу тапйклассов/трейтов предоставляющих полиморфизм по всем аргументам/возвращаемым значениям
Влод
насколько понимаю в окамле есть те же классы/объекты
Aleksei
просто это не философия экспо юзать npm link, их философия сделать разработку без него
Влод
ну то есть у тебя есть class A { method foo(x) {} } class A extends B { override method foo(x) {} } и получается у тебя есть полиморфная функция foo с аргументом x и неявным аргументов this по которому она и выбирает конкретную реализацию
Aleksei
ясно, я понял что @pavelsilinw не хочет отвечать за свой вброс о 100% императивном реакте, а @vlastachu не в ту степь немного пошел) позвольте я поставлю точку тогда в этом не очень уместном по тематике чата споре. ФП можно понимать довольно широко, лично в моем понимании ФП это о композиции функций, именно поэтому в ФП превалируют чистые функции, которые легко композировать, собирать программу как из лего. Реакт очень хорошо под это определение подходит, так как результат рендера зависит от пропсов и он предсказуем. Компонентная система позволяет эти самые компоненты композировать и так же собирать view часть из них, как чистые функции в ФП. Но так же в React-е конечно есть императивные части (setState, refs, setNativeProps и т.д.) что тоже хорошо, так как не ограничивает тебя в рамках какой то парадигмы и позволяет просто решать задачи.
Влод
ну это просто банальная идея на поверхности что ооп не противоречит фп, но текущий ооп сильно навязывает императивщину тк каждый класс хранит в себе скрытый стейт и там где-то у себя его мутирует, что усложняет в перспективе тестирование программы
Aleksei
ну это просто банальная идея на поверхности что ооп не противоречит фп, но текущий ооп сильно навязывает императивщину тк каждый класс хранит в себе скрытый стейт и там где-то у себя его мутирует, что усложняет в перспективе тестирование программы
ну на самом деле это и есть ООП 😄а то что ты рассказывал это не ооп, то есть по хорошему в ооп так писать не надо. Не зря там существует такое понятие как инкапсуляция)
Влод
ну инкапсуляция неймспейса ок, инкапсуляция стейта не ок (возможно неправильно употребля термины, проще говоря прайват/протектед не нужны)
Владимир
В реакте вполне мог быть rx и полная функциональщина. Без нее обошлись и это очень здорово
Владимир
Потому что есть вещи, которые трудно описать функционально, без императивного кода
Влод
ну рх тоже такой двоякий
Stas
reducer в редаксе, pure и functional components в реакте вполне себе функциональщина.
👁
а так же HOC
👁
Потому что есть вещи, которые трудно описать функционально, без императивного кода
number crunching алгоритмы я б точно не стал функционально писать
Andrey
onResume
Aleksei
render и не должен срабатывать кмк. надо смотреть lifecycle андроида
Stas
Зависит от того что случилось с приложением.
Влод
ну вот смотри мой AppDelegate, на этих строках и прописывается путь до бандла, думаю отсюда и надо начинать копать https://github.com/savelichalex/personal-bookkeeping/blob/master/ios/PersonalBookkeeping/AppDelegate.m#L36
видимо мне стоит отказаться от экспо, так как он внутри уже ставит делегат RCTBridgeDelegate и отнимать у него его опасно. но в то же время у экспо есть полезная фишка с раздачей бандлов по вайфаю, что терять не хотелось бы. возможно получится как-нибудь это совместить
Aleksei
в смысле раздача бандлов по вайфаю?
Aleksei
ты и на голом RN так можешь, может я чего то не понимаю?
Влод
я тут совсем новичок так что воспринимай мои слова с критикой
Aleksei
ну здорово в таком случае)
мне кажется что мы просто друг друга не поняли, расскажи лучше подробнее про какую ты фишку
Andrey
как-то интересно было что получу с Expo и разобрал сбилденное приложение и решил от него отказаться
Aleksei
ну здорово в таком случае)
мне кажется что я начинаю понимать. ты про то что можно поставить проложение от экспо и в него просто бандл передавать?
Aleksei
чтобы не билдить нативную часть постоянно, так?
Влод
тип crna, потом npm start и он тебе пишет qr и с устройства читаешь этот qr сам я такого не проделывал и всё отлаживал на симуляторе, но я так понимаю он запускает локальный сервер и раздача с вайфая (мб конечно он просто загружает это на свой expo.io)
Aleksei
но, ты в принципе можешь собрать приложение один раз, установить в девелоп режиме и он так же с npm start (он packager запустит) будет исакть бандл, причем как пропишешь так и будет искать. например у меня если в той же сети телефон, то прекрасно ищет
Влод
ну вот. тем не менее сервер этот можно попробовать запустить. на клиенте самому писать адрес с которого он раздаёт. смущает то что он начинает адрес с exp:// что может означать что у него свой протокол
Aleksei
только оно через 10 дней отвалится, политика эпл
Evgeny
@gHashTag а как быть если мне надо подключить либу, которую я параллельно разрабатываю? я юзаю expo
Alex
Всем привет. Возможно кто натолкнет на мысль или кинет ресурс. буду очень признателен/ Вопрос такой: В родительском компоненте есть функция. которая принимает параметр item мы передаем эту функцию в дочерний компонент <Child delete={this.DeleteItem.bind(this)}/> В компоненте child я вызываю эту функцию допустим на клик onClick={this.props.delete(item)} - если так написать то item not defined Если убрать item то функция не передает item который должна принять функция в родительском комп Задача - в дочернем компоненте вызвать функцию с родительского и передать ей параметр из дочернего
Aleksei
хотя скорее всего в child компоненте в скоупе просто такой переменной нет
Alex
Решение https://codesandbox.io/s/x3542nlj9w
Albert
Привет. Не подскажете есть на подобии такой либы в RN что-то? https://github.com/Ramotion/gliding-collection
Anonymous
такую кнопку можно сделать на реакте?
Anonymous
Filter Menu by Anton Aheichanka https://dribbble.com/shots/1956586-Filter-Menu
Andrey
легко
Evgeny
eject
спасибо!
Murad
Filter Menu by Anton Aheichanka https://dribbble.com/shots/1956586-Filter-Menu
https://github.com/geremih/react-native-circular-action-menu https://github.com/omulet/react-native-radial-menu
👁
там внизу имэйл проекта есть напиши им, спроси
Anonymous
А какие приложения написаны на React Native
Anonymous
большие и популярные
Andrey
А какие приложения написаны на React Native
а какие приложения у тебя на телефоне установленны?
Mikhail
Инстаграм например
Andrey
фейсбук понятное дело
Andrey
скайп
Anonymous
https://facebook.github.io/react-native/showcase.html
Andrey
в общем все самые глючные приложения на реакте сделаны :)
Anonymous
Инстаграм например
там части вроде как определенные на реакт нейтиве
Anonymous
в общем все самые глючные приложения на реакте сделаны :)
одноклассники,амиго,танки онлайн,танчики онлайн
Anonymous
https://engineering.instagram.com/react-native-at-instagram-dd828a9a90c7