
Vladimir
21.03.2017
10:50:53
там много интересного
@computed get isOpenLeftPanel() {
return this.show;
}
наверное, ребята хотели быть методичными
но по факту это какой-то лютый оверинженеринг

Google

Alex
21.03.2017
10:51:38
ну если говорить про модели, это нормальная тема

Vladimir
21.03.2017
10:52:37
я понимаю, ели бы было
@computed get isOpenLeftPanel() {
return this.show && this.user.hasPermissionToViewMenu();
}

Миша
21.03.2017
10:53:09

Vladimir
21.03.2017
10:53:21
а, хотя тут есть
>Можно заметить, что мы добавили computed и action декораторы, они обязательны только в strict mode (по умолчанию отключено).

Vladimir
21.03.2017
12:02:15
Лучше бы на вопрос мой кто нибудь ответил

Алексей
21.03.2017
12:03:21


Vladimir
21.03.2017
12:03:52
Тут есть гуру нативных компонентов?
Vladimir Kurchatkin, [20 Mar 2017 22:18]:
Тут есть гуру нативных компонентов?
Ну или не гуру, а просто в теме
Короче, вкину вопрос, может кто знает
Нужно сделать метод на инстансе нативного компонента
В iOS сделал через self.bridge.uiManager addUIBlock:
Соотвественно в метод передается findNodeHandle() первым аргументом
Дальше стал разбираться, как это сделать в Андроиде
В итоге оказалось что можно сделать примерно так же:
getReactApplicationContext().getNativeModule(UIManagerModule.class).addUIBlock
Все работает
Но почему то и в самом реакт найтиве и в некоторых пакетах это не используется
Vladimir Kurchatkin, [20 Mar 2017 22:27]:
... вместо это используется receiveCommand
Соотвественно вопрос - почему так?
Vladimir Kurchatkin, [20 Mar 2017 22:27]:
Вот пример: https://github.com/mapbox/react-native-mapbox-gl/blob/master/index.js#L41-L61
Непонятно, зачем такой геморрой, если можно сделать абсолютно точно так же


Dima
21.03.2017
13:03:26
Потому что addUIBlock это изначальная вещь в ios была, с первых дней, а в андроиде добавили сильно позже и со стороны, чтобы снэпшоты делать. Соответственно к тому времени уже всё было написано на receiveCommand, который еще кажется более безопасным и straightforward, похоже, для среднего пользователя (нужно методы обьявлять заранее, плюс вдруг не нужен ui thread и тд).
Можно смело использовать, но есть шанс чуть выше чем для ios что выпилят когда-нибудь или перепишут, т.к. внутри проекта вообще нет на него завязок https://github.com/facebook/react-native/search?l=Java&q=addUIBlock&utf8=%E2%9C%93
Хотя ты и так понял судя по тексту

Vladimir
21.03.2017
13:07:28
Ну это была единственная моя теория

Google

Vladimir
21.03.2017
13:07:44
receiveCommand слишком уж геморройно

Dima
21.03.2017
13:07:46
а что за компонент кстати?
код не открыт на гитхабе?

Vladimir
21.03.2017
13:08:18
Да просто есть куча нативных компонентов, которые надо интегрировать
У многих нужны императивные методы прямо сходу
Странно что из коробки это не поддерживается ни там ни там
C receiveCommand самая жопа что видимо коллбэки не поддерживаются
Вообще я конечно морально готов к тому что это будет отваливаваться при каждом апгрейде

Dima
21.03.2017
13:11:06
да, там придется еще тащить события скорее всего, типа doThat() и отдельно onDoThat

andretshurotshka?❄️кде
21.03.2017
13:15:38

Еxey
21.03.2017
13:29:28
А че вы все уже страдаете?
не вижу слез

Dmitry
21.03.2017
13:35:00
да ладнооо
это что правда

Еxey
21.03.2017
13:35:37
ну будут как-то выворачиваться

Dmitry
21.03.2017
13:35:51
вот конченные
то есть если кордова, то ок
а вот если компилится то нет

Еxey
21.03.2017
13:36:34
я iOS разраб, RN сам по себе бажный, а gomobile уже тоже работает

Google

Dmitry
21.03.2017
13:36:54
что за gomobile?

Еxey
21.03.2017
13:36:55

Dmitry
21.03.2017
13:37:01
фу
вот уроды

Еxey
21.03.2017
13:37:17

Dmitry
21.03.2017
13:37:45
я что-то не фанат такого
но подожди
а разве gomobile тоже не попадет под расдачу?

Еxey
21.03.2017
13:41:03

Dmitry
21.03.2017
13:41:51
hot code push? это когда уже на девайсе компиляция, или когда подгрузка исходников?

Еxey
21.03.2017
13:42:10
подгрузка

Dmitry
21.03.2017
13:42:35
а ну так просто локально все завернуть, и все?
чтобы РН не гулял на сервер за кодом

Еxey
21.03.2017
13:42:51
ну скомпилировать в нейтив
сделать компилируемы жиэс

Алексей
21.03.2017
13:43:25

Еxey
21.03.2017
13:43:26
я думаю фб уже это пилит

Алексей
21.03.2017
13:44:32
да причем тут это. ты лучше покажи что apple наказал за code push

Google

Еxey
21.03.2017
13:44:33

Алексей
21.03.2017
13:45:11
ну так rollout это другое совсем
вот тут вообще ни слова про code push


Еxey
21.03.2017
13:45:52
"Your app, extension, and/or linked framework appears to contain code designed explicitly with the capability to change your app’s behavior or functionality after App Review approval, which is not in compliance with section 3.3.2 of the Apple Developer Program License Agreement and App Store Review Guideline 2.5.2. This code, combined with a remote resource, can facilitate significant changes to your app’s behavior compared to when it was initially reviewed for the App Store. While you may not be using this functionality currently, it has the potential to load private frameworks, private methods, and enable future feature changes.
This includes any code which passes arbitrary parameters to dynamic methods such as dlopen(), dlsym(), respondsToSelector:, performSelector:, method_exchangeImplementations(), and running remote scripts in order to change app behavior or call SPI, based on the contents of the downloaded script. Even if the remote resource is not intentionally malicious, it could easily be hijacked via a Man In The Middle (MiTM) attack, which can pose a serious security vulnerability to users of your app.
Please perform an in-depth review of your app and remove any code, frameworks, or SDKs that fall in line with the functionality described above before submitting the next update for your app for review."


Алексей
21.03.2017
13:47:17
"Your app, extension, and/or linked framework appears to contain code designed explicitly with the capability to change your app’s behavior or functionality after App Review approval, which is not in compliance with section 3.3.2 of the Apple Developer Program License Agreement and App Store Review Guideline 2.5.2. This code, combined with a remote resource, can facilitate significant changes to your app’s behavior compared to when it was initially reviewed for the App Store. While you may not be using this functionality currently, it has the potential to load private frameworks, private methods, and enable future feature changes.
This includes any code which passes arbitrary parameters to dynamic methods such as dlopen(), dlsym(), respondsToSelector:, performSelector:, method_exchangeImplementations(), and running remote scripts in order to change app behavior or call SPI, based on the contents of the downloaded script. Even if the remote resource is not intentionally malicious, it could easily be hijacked via a Man In The Middle (MiTM) attack, which can pose a serious security vulnerability to users of your app.
Please perform an in-depth review of your app and remove any code, frameworks, or SDKs that fall in line with the functionality described above before submitting the next update for your app for review."
это емнип тоже из другой оперы) когда с rollout заворачивали


Еxey
21.03.2017
13:48:46
вероятно под эти признаки и риакт подходит поэтому и заворачивают: This includes any code which passes arbitrary parameters to dynamic methods such as dlopen(), dlsym(), respondsToSelector:, performSelector:, method_exchangeImplementations(), and running remote scripts in order to change app behavior or call SPI, based on the contents of the downloaded script.

Алексей
21.03.2017
13:49:54

Еxey
21.03.2017
13:50:08
https://forums.developer.apple.com/thread/73640
там не только роллаут попдпадает
народ которы просто перфо/респонд юзает жалуется

Алексей
21.03.2017
13:52:46
не, вот на это есть линк?)

Еxey
21.03.2017
13:53:17
? АЛО это про одно и то же

Алексей
21.03.2017
13:56:09
https://twitter.com/conradev/status/839340317568458752

Еxey
21.03.2017
13:57:53
почему надо верить какому-то рандому?

Алексей
21.03.2017
13:58:24
а ты конечно не рандом кидаешь)
вот это например)

Еxey
21.03.2017
13:58:56
роллаут от лица фаундера ща общается с Apple

Google

Vladimir
21.03.2017
13:59:04
на самом деле даже если кодпуш выпилят, это не так плохо

Еxey
21.03.2017
13:59:08
и ему отвечают no chance

Vladimir
21.03.2017
13:59:18
а роллауту кабзда и туда ему и дорога

Алексей
21.03.2017
13:59:43
https://github.com/facebook/react-native/issues/12778

Vladimir
21.03.2017
13:59:57
меня вообще бесит, что я не могу комп включить, чтобы не получить двести апдейтов на любимые проги
с телефонами еще та же фигня

Еxey
21.03.2017
14:00:11
а с риактом ща будут траблы поотому как он также автоматически палится - динамическими вызовами

Алексей
21.03.2017
14:00:20

Еxey
21.03.2017
14:01:24

Алексей
21.03.2017
14:02:06
две строчки блин)

Еxey
21.03.2017
14:04:41
что если из-за двух этих строчек придется всю сборку на ios пересматривать

Алексей
21.03.2017
14:06:03
ну что ты паникуешь))

yadro
21.03.2017
14:08:11
https://github.com/facebook/react-native/blob/master/React/Base/RCTUtils.h

Dmitry
21.03.2017
14:08:17
все равно отстой какой-то, я не очень-то мобильной разработкой занимаюсь, но это просто какой-то трещщ

yadro
21.03.2017
14:08:26
упс это не тот файл)

Vladimir
21.03.2017
14:09:16

yadro
21.03.2017
14:11:33
https://github.com/facebook/react-native/issues/12717
ребят, можете поплюсовать вот эту ишью)

Еxey
21.03.2017
14:11:40
https://github.com/facebook/react-native/issues/13011
Динамисеских вызовов в RN походу много https://github.com/facebook/react-native/issues/13011#issuecomment-287566200