
Alexander
18.08.2018
21:54:05
Как можно определить в файле, react native или web?

Gena
18.08.2018
22:05:21
Как можно определить в файле, react native или web?
Config.web.js
export default { type: 'web' }
Config.ios.js
export default { type: 'ios' }
etc...
SomeComponent.js
import config from './Config'
if (config.type === 'web') {
console.log('this is web')
} else {
console.log('this is probably mobile')
}
И ещё около десятка разных способов... но лучше DI использовать
(а телеграм принципиально не умеет текст форматировать?)

Alexander
18.08.2018
22:06:54

Google

Gena
18.08.2018
22:08:29

Alexander
18.08.2018
22:10:51


Gena
18.08.2018
22:10:51
Просто если вы сейчас найдете способ и захардкодите это... потом придется обновляться для поддержки какого нибудь react-native-desktop, react-native-refrigerator и что там ещё может появиться... А если позволите конфигурить это извне, есть шанс, что пользователи смогут это адаптировать без модификации библиотеки
Мне казалось, что react-native-vector-icons такой метод используют, но сейчас не вижу там такого... ща найду что нибудь

Alexander
18.08.2018
22:14:35
Хотя не, жёсткий костыль

Gena
18.08.2018
22:15:54
Хотя не, жёсткий костыль
И он не сработает... т.к. импорт статический... можно только попытаться (как всякие полифилы работают) проверять глобальное окружение... вроде в RN есть global.navigator и там что-то про него написано
Но это шаткое решение довольно...

Alexander
18.08.2018
22:17:48

Gena
18.08.2018
22:19:25

Alexander
18.08.2018
22:20:19

Gena
18.08.2018
22:22:15

Google

Alexander
18.08.2018
22:25:13


Gena
18.08.2018
22:29:59
Просто в компании потребовалось делать приложение как для натива, так и для веба. Моя идея была такова. Мы делаем одно приложение. Вся логика независима от платформы. Платформа влияет только на отрисовку. Поэтому, допустим, есть HTTPService и один один для всего проекта. Там мне требуется использовать Storage. Раньше у меня была папка с двумя точками входа. А сейчас, если собирать бандл, то такое не сработает. Поэтому, скорей всего, мне придётся не собирать либу в бандл и тогда смогу реализовать через разные точки входа
Вот конкретно такую же задачу мы решали уже (правда в разрезе тестирования, а не веба), т.е. нужен был набор модулей, которые работают и под node и под RN.
Решали через DI... т.е. был модуль с логикой, который экспортил основной класс, которому в конструктор передавался объект с нужным интерфейсом, типа (typescript):
interface IStorage {
read(): Promise<IAppData>
save(data: IAppData): Promise<void>
}
В RN приложении был класс реализующий этот интерфейс с помощью AsyncStorage, а в консольном приложении был класс, который это через fs делал.
Это может начать выглядеть очень криво, если таких "внешних" зависимостей станет много... но в разрезе RN/web, я их много не вижу... т.е. даже UI туда если впихнуть, получится:
- storage
- network (возможно)
- ui factory... штука, которая может плодить компоненты нужных типов для веба DOM, для RN View
- что-то ещё внешнее может прицепиться... тогда я бы это оформлял в виде класса Environment, который уже содержал бы нужные зависимости...
Но это всё подходит для одного приложения... если писать отдельную либу для широкого использования, то это будет скорей всего очень сложно... тогда разные точки входа
Кто Android SDK знает хорошо? Задача, получить размеры окна (Window), именно окна, не экрана. Получить изнутри View, который, для простоты, уже приаттачен к этому окну.
Желательно быстро, т.е. без RPC c WindowManager.


Play
19.08.2018
09:30:12
Где ошибка?
<Image style={cover} source={image} />
Вставляю валиндый адрес:
https://github.com/react-native-village/react-native-init/raw/master/stargate/images/Stargate_The_Ark_of_Truth.jpg
Все это в FlatList

?
19.08.2018
09:33:43
source={{ uri: '...' }}

Play
19.08.2018
09:34:29

Stas
19.08.2018
09:42:33
обычно достаточно дождаться onLayout у rootView

Gena
19.08.2018
09:57:29
обычно достаточно дождаться onLayout у rootView
Это реализация SafeArea для андроид. Там отступы для системных UI, приходят в системе координат окна. А в общем случае сложно расчитывать что rootView (что нативный, что реактовский) будет занимать всё окно целиком... это лэйаут решает... т.е. он может быть меньше...
Но если не получится по простому, то два варианта, между которыми выбрать не могу...
- размеры окна можно получить пообщавшись в WindowManager, это медленно, но верно ))
- можно сказать пользователям библиотеки - "ничего не знаю, делайте так, чтоб ваш root view занимал всё окно целиком, мы от него отсупы безопасные определяем..."

Stas
19.08.2018
10:02:16
https://t.me/android_ru мне кажется тут быстрее можно получить ответ, как правильно

Gena
19.08.2018
10:03:49

Stas
19.08.2018
10:13:36
https://developer.android.com/about/versions/pie/android-9.0#cutout хз, может поможет

Gena
19.08.2018
10:17:06

Google

Peter
19.08.2018
10:33:35
Ребят, у когонибудь была проблема при компиляции под андроид: Execution failed for task ':app:processReleaseResources'.
при ./gradlew assembleRelease
Execution failed for task ':app:processReleaseResources'.
> Failed to execute aapt
гуглю, ничего не помогает

Gena
19.08.2018
10:34:41
Да... была... это может быть очень разное... надо логи билда смотреть (не помню, как-то подробные должны включаться)
Там за таском assembleRelease вся сборка целиком, в том числе бандлинг... так что ошибка где-угодно может быть

Peter
19.08.2018
10:35:45
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
с каким флагом запускать?

Stas
19.08.2018
10:35:58

Gena
19.08.2018
10:36:04
А... "Failed to execute aapt" не заметил... это сужает область поиска

Peter
19.08.2018
10:36:12
отключал в gradle.properties
android.enableAapt2=false

Play
19.08.2018
11:30:17
Вызвал у View следющие свойства:
sub: {
shadowColor: '#000',
shadowRadius: 8,
shadowOffset: { width: 0, height: 5},
shadowOpacity: 0.4
}
Свойство применяются, но появляются YellowBox предупреждения:
View #25 of type RCTView has a shadow set but cannot calculate shadow efficiently. Consider setting a background color to fix this, or apply the shadow to a more specific component.
Что не так?

?
19.08.2018
11:32:30
попробуй background-color указать

Play
19.08.2018
11:36:54

Peter
19.08.2018
11:41:45
https://gist.github.com/fear48/6bb7461060c0ff289cb1ee5827fc9372
Ребят, гляньте плис ошибку, где искать?

Admin
ERROR: S client not available

Peter
19.08.2018
11:42:02
не могу никак решить :(

Alexander
19.08.2018
12:11:39
ребят, а на ios с винды дебаг версию приложения невозможно проверить?

Google

Peter
19.08.2018
12:58:15
Кто в курсе с чем может быть связана ошибка "Ошибка при установке"
пред. версию удалил перед установкой

?
19.08.2018
13:05:24

Peter
19.08.2018
13:13:59

?
19.08.2018
13:14:21
это лучший из возможных ответов на такой вопрос

あなたの神
19.08.2018
13:25:27

✡️Хаски
19.08.2018
15:30:10
Используете вы wix/react-native-navigation ?
public poll
Нет – 14
??????? 58%
@AaronAumer, @iLonny, @savelichalex, @DrLance, @ainoork, @andrewkslv, @anton_skv, @SReflex, @playra, @gblack9, @khorark, @atlonis, @leerman, Alexandr
Да, пока на первой версии – 5
??? 21%
@the_cursedsoul, @renren_san, @imnotafraidof, Dmitry, @sintylapse
Да, работаем с второй версией – 5
??? 21%
@alexsandrmenshikov, @devjs, @ThemNumbers, @trefiand, @offantik
? 24 people voted so far.

Aynur
19.08.2018
15:51:03

Gena
19.08.2018
16:41:09
Используете вы wix/react-native-navigation ?
public poll
Нет – 14
??????? 58%
@AaronAumer, @iLonny, @savelichalex, @DrLance, @ainoork, @andrewkslv, @anton_skv, @SReflex, @playra, @gblack9, @khorark, @atlonis, @leerman, Alexandr
Да, пока на первой версии – 5
??? 21%
@the_cursedsoul, @renren_san, @imnotafraidof, Dmitry, @sintylapse
Да, работаем с второй версией – 5
??? 21%
@alexsandrmenshikov, @devjs, @ThemNumbers, @trefiand, @offantik
? 24 people voted so far.
Но я только хочу добавить, что мы используем ту же архитектуру, что версия 2... это не совсем ответ "нет", который я проставил....

Play
19.08.2018
17:24:47
✅ Закончил курс для начинающих в React Native и готовлю следующий по навигации.
https://www.youtube.com/watch?v=tz_pOxQFcdo&list=PLth6QPteH5guFUwQj1iCdu-SOZ7O5KCz4

Sergey
19.08.2018
17:30:04
Спасибо, подписался)

Dmitry
19.08.2018
19:51:47
Задумался о таком, нет ли какого ресурса с заданиями по разработке приложений, чтобы скилл потренировать?

Denis
19.08.2018
20:13:21
Привет всем, такая задача, при клике на кнопку, должен открыться почтовый клиент по умолчанию и отобразить alert после того как пользователь отправил сообщение
такое реально сделать с CRNA?

Andrey
19.08.2018
20:34:06

Play
19.08.2018
20:39:15
попробуй background-color указать
как сделать у View прозрачный цвет и не получать это предупреждение?
View #237 of type RCTView has a shadow set but cannot calculate shadow efficiently. Consider setting a background color to fix this, or apply the shadow to a more specific component.
transparent не работает

Andrey
19.08.2018
21:02:01

Alexander
19.08.2018
21:02:02

Alexsandr
19.08.2018
21:05:03

Google

Alexsandr
19.08.2018
21:05:44
Или rgba(0,0,0,0)

Andrey
19.08.2018
21:07:19

Play
19.08.2018
21:33:48

Gena
19.08.2018
21:45:42
https://github.com/facebook/react-native/issues/11910
Жесть какая... (в смысле я видел эти ворнинги, и честно забивал на них, если по дизайну надо было сделать тени а background нельзя было задавать). Жесть в том, что баг репорт закрыт и залочен, но:
1. Объяснения нет и невозможно его написать.
2. Поведение не измененено в master... всё так и остаётся
3. Судя по комментариям про shadowOpacity... ворнинг в принципе не корректный, т.е. он возникает не всегда, когда есть условия для него...