Gena
Надежней с последним. (но строгий ответ вроде - нет, не всегда, иногда оно работает с предпоследней версией... это зависит от того когда и что Apple изменило в SDK)
Dmitry
жаль только, что таких не бывает
Gena
Я тут кстати обнаружил неприятное в metro. Что вынудило меня начать думать над проблемой бандлинга и оптимизации чуть более. Маленькое предисловие. У нас приложение разбито на две части... само приложение и общий с вебом код... там лежат mobx модели и апи... (и большая часть бизнес логики, которая не связана непосредственно с флоу переходов по экранам). До сих пор этот общий код был прям в виде исходников на typescript и процессился бандлером вместе с приложением, хоть и устанавливался в node_modules. Так вот... я его сегодня взял и прогнал через rollup с компиляцией... получил на выходе очень условно index.es.js (для metro в мобилке и webpack'а в вебе), index.cjs.js (для jest тестов в приложениях) и кучу *.d.ts Подключил это к мобилке и... наэкономил около 50Kb js (в продакшн). Я задумался... и после некоторого поиска нашел вот это: https://github.com/facebook/metro/issues/227, что означает, что *metro не умеет делать tree shaking сейчас* вообще... dead code elimination умеет делать uglify-es, которым он сжимает итоговый бандл в продакшн, но в силу довольно неприятного устройства модульных оберток, она скорей всего не может их уже выкинуть. Вторым следствием этого стал вот этот баг-репорт: https://github.com/invertase/react-native-firebase/issues/1571
Камиль
Ребят всем привет
Камиль
уже 2й день бьюсь над билдом приложения
Камиль
Print: Entry, ":CFBundleIdentifier", Does Not Exist
Камиль
вот такое сообщение об ошибке постояно валится
Gena
Print: Entry, ":CFBundleIdentifier", Does Not Exist
Это следствие... ищите ошибку выше в логе...
Камиль
CpResource unityApp/main.jsbundle.meta build/Build/Products/Debug-iphonesimulator/SEC.app/main.jsbundle.meta
Камиль
вот такое выше(
Gena
Не просто строчку в логе, а ошибку надо искать )
Gena
Вот здесь почитайте: https://github.com/facebook/react-native/issues/21303 (здесь объясняется почему надо настоящую ошибку выше искать). А вообще лучший способ, это не использовать react-native run-ios, а просто запускать проект из Xcode )
Камиль
в xcode билд саксес пишет
Камиль
а как в xcode открыть в эмуляторе приложение?
Gena
в xcode билд саксес пишет
Тогда откройте отдельный терминал, в нем запустите пакаджер react-native start (в папке проекта), а в xcode слева вверху выберите нужный симулятор и нажмите кнопку пуск (тоже там слева вверху) 😄
Камиль
Камиль
а как открыть то симулятор?)
Gena
а как открыть то симулятор?)
http://vovkasm.skitch.vovkasm.org/xcode-start_2169F209.png
Gena
Когда нажмете на треугольничек, Xcode сам запустит симулятор и приложение в нем
Gena
Фигасе советик))
Запуск проекта из нативной среды разработки (Xcode для iOS и, соответственно, Android Studio для Android) дает несколько явных преимуществ: - Вы запускаетесь с отладчиком и в случае нативного исключения сразу видите код и стек трейс и, что важнее, значения переменных и имеете полную картину чтоб установить первопричину падения. - Вы прям в IDE видите все логи приложения и из JS и из натива, не погаженные кривыми скриптами фейсбука. Есть и недостатки конечно... придется уметь работать с IDE, ресурсов CPU и памяти на девелоперской машине это потребляет больше...
Vit
Ну вот необходимость запускать приложение в икскоде это уже когда все совсем не так пошло) ассоциируется с жуткими граблями)
Cenator 🐈
Бан
Cenator 🐈
@gblack9
deVMethod
Добрый день. Никто не подскажет есть ли статьи с описанием работы react-native, так сказать "изнутри", что-нибудь похардкорнее? Хочется поглубже вникнуть в механизм работы. Или только самому разбираться в исходниках?
Gena
Поищите в группе... тут были ссылки на видео с конференций...
Gena
Но там всё очень "живое"... почти бесполезно писать (соотвественно и читать) статьи на эту тему... слишком быстро устаревает
Aynur
это он ещё приложение в эпстор не выкладывал, там вообще ад какой-то с этими сертификатами
D
Народ кто знает насколько эффективны приложения для андроида, сделанные на react-native?
D
Или лучше делать на java
D
И еще момент, там например можно сделать живую обою на телефон или что-то типа этого?
D
Или может быть он используется исключительно для каких-то определенных целей и приложения которые взаимодействуют с саой ос телефона например будильник и тп нельзя?
不退転」
это вообще норм тема содержать фулл-скейл приложение на graphql + relay + rxjs без redux/mobx/flux'a? Как вообще подобных архитектурный подход называется?
Олег
всем привет, мне по свайпу вправо надо менять экран, может кто подскажет куда копать?
Unknown number
Почитай про панреспондер.
Unknown number
Ну и в зависимости от навигатора gestures должны быть разрешены.
Unknown number
К примеру как используют панресондер для отлавливания жестов можно посмотреть как это сделано здесь: https://github.com/AZZB/react-native-swipe-navigation/blob/master/lib/Gesture.js
Олег
спасибо
Stas
почему кеширование derived data почти не дает выигрыша в скорости сборки?
Vlad
Ребят, хочу с вами посоветоваться. У меня в мобильном приложении, на лендингах и в самом веб приложении(продукт один и тот же) используются одникавые UI элементы (кнопки, и прочее прочее), хочу вынести это все как-то в один общий репоизиторий и импортить с в проекты с помощью import уже готовые компоненты. Может подскажете в сторону куда копать и как это правильно называется? А то чес слово задолбало уже при маленькой правке в фирменном стиле(радиус скругления кнопок на 5пкс больше) залезать во все проекты и там делать изменения. P.S Всё на реакте написано
Vlad
А как именно их импортить из одного места?
The Max
export { Thing };
The Max
npm publish @orgname/ui-library
The Max
прощай семантика
Ну смотря как к этому подойти)
The Max
Но скорее всего да)
Cenator 🐈
Ну смотря как к этому подойти)
хотя в 4 стайледах появился проп as
Cenator 🐈
можно прям в jsx туда пропихивать нужное но это мусор как бы
Cenator 🐈
можно решить если пропатчить jsx плагин бабеля
The Max
можно решить если пропатчить jsx плагин бабеля
Не, я в принципе тоже люблю по комарам из дробовика)
Vlad
Как сам организуешь
Просто сборщик стандартный ругается что импорт вне проекта происходит
Vlad
Странно
Anonymous
Есть тут начинающие разработчики, которым нужно наработать портфолио? Предлагаю сделать плагин для https://sketchapp.com. Рандомайзер. Рисуешь элементы, а он рандомизирует их позицию и размер для не-текстовых блоков Например: option + p = рандомная позиция option + s = рандомный размер (не применимо для текстовых) option + r = рандомная позиция и размер (не применимо для текстовых) Пишите в лс :)
Cenator 🐈
дегенеративный, простите
Igor
Ребят, обновил xcode до 10. Создал native-хелловорд (0.57), вроде собралось, НО на симулятор загрузка “index.js” останавливается на 26% или вообще не идет. Знает кто, как пофиксить?
Igor
По совету на SO откатил на 0.57.1 - вроде хеловорд стал запускает. Теперь попробую свой проект сконвертить с 0.55
Dmitry
По совету на SO откатил на 0.57.1 - вроде хеловорд стал запускает. Теперь попробую свой проект сконвертить с 0.55
Я тебе, на будущее, советую. Тут по фото не гадают.. Никто не будет отвечать на вопрос "У меня чет не стартует, как фиксить?" без описания ошибок, скринов и хоть какой-то информации,,,
Igor
ОК, в следующий раз пришлю тебе скриншот “замороженного прогресса закачки index.js”, если ты словами не понимаешь 🤷‍♀️
deVMethod
Спасибо, посмотрю
Max
Привет! Никто не напарывался на ошибку при получении фаербейз нотификейшенов?: 10-08 12:51:03.270 7007-7032/com.dokka E/AndroidRuntime: FATAL EXCEPTION: AsyncTask #2 Process: com.dokka, PID: 7007 java.lang.RuntimeException: An error occurred while executing doInBackground() at android.os.AsyncTask$3.done(AsyncTask.java:354) at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:383) at java.util.concurrent.FutureTask.setException(FutureTask.java:252) at java.util.concurrent.FutureTask.run(FutureTask.java:271) at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:245) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) at java.lang.Thread.run(Thread.java:764) Caused by: java.lang.NoSuchMethodError: No direct method <init>(Landroid/content/Context;Ljava/lang/String;)V in class Landroid/support/v4/app/NotificationCompat$Builder; or its super classes (declaration of 'android.support.v4.app.NotificationCompat$Builder' appears in /data/app/com.dokka-MmVhuwgoplcIiHiT-XqAlw==/base.apk!classes17.dex) at com.evollu.react.fcm.SendNotificationTask.doInBackground(SendNotificationTask.java:81) at com.evollu.react.fcm.SendNotificationTask.doInBackground(SendNotificationTask.java:37) at android.os.AsyncTask$2.call(AsyncTask.java:333) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:245)  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)  at java.lang.Thread.run(Thread.java:764)  10-08 12:51:03.282 1857-3448/system_process W/ActivityManager: Force finishing activity com.dokka/.MainActivity 10-08 12:51:03.286 7007-7032/com.dokka I/Process: Sending signal. PID: 7007 SIG: 9 10-08 12:51:03.292 1565-1565/? E/lowmemorykiller: Error writing /proc/7007/oom_score_adj; errno=22 10-08 12:51:03.346 1857-1934/system_process W/InputDispatcher: channel '71d7e1a com.dokka/com.dokka.MainActivity (server)' ~ Consumer closed input channel or an error occurred. events=0x9 10-08 12:51:03.346 1857-1934/system_process E/InputDispatcher: channel '71d7e1a com.dokka/com.dokka.MainActivity (server)' ~ Channel is unrecoverably broken and will be disposed! 10-08 12:51:03.347 1711-1711/? I/Zygote: Process 7007 exited due to signal (9) 10-08 12:51:03.349 1857-3740/system_process I/ActivityManager: Process com.dokka (pid 7007) has died: vis +99TOP 10-08 12:51:03.350 1857-1879/system_process W/libprocessgroup: kill(-7007, 9) failed: No such process 10-08 12:51:03.350 1857-1879/system_process I/libprocessgroup: Successfully killed process cgroup uid 10083 pid 7007 in 0ms 10-08 12:51:03.350 1857-4448/system_process I/WindowManager: WIN DEATH: Window{71d7e1a u0 com.dokka/com.dokka.MainActivity} 10-08 12:51:03.350 1857-4448/system_process W/InputDispatcher: Attempted to unregister already unregistered input channel '71d7e1a com.dokka/com.dokka.MainActivity (server)'
Max
руткоз судя по всему здесь: Caused by: java.lang.NoSuchMethodError: No direct method <init>(Landroid/content/Context;Ljava/lang/String;)V in class Landroid/support/v4/app/NotificationCompat$Builder; or its super classes (declaration of 'android.support.v4.app.NotificationCompat$Builder' appears in /data/app/com.dokka-MmVhuwgoplcIiHiT-XqAlw==/base.apk!classes17.dex)
Max
нагуглил следующее: https://github.com/invertase/react-native-firebase/issues/1399 https://github.com/invertase/react-native-firebase/issues/1553
Max
но обе иши без ответа =(
Max
это стектрейс из либы)
Max
проблема не у меня, а у товарища) я вообще бекендщик) стал смотреть - и что-то нифига не выкупаю
Max
при чём в трай-кетч не падает