Aleksei
фастлейна хватает
Stas
фастлейна хватает
хватает для билд скриптов, а не для настройки этих конфигов проекта. ведь чаще всего проблемы возникают при линковке новых либ.
Aleksei
я конечно не знаю как другим, но мне что руками добавлять в икскоде, что грейдл файлы править, ничуть не проще, но это имхо)
Dmitry
По мне так разработка по iOS не на маке это извращение
Dmitry
Stas
Это жёстко
ну максимум порпавить сборку, подключить либу, посмотреть срочный баг.
Elizaveta
Всем привет! Реби, может кто по AsyncStorage подсказать?
Stas
пишите сразу вопрос)
Алексей💀
всем привет!
мне интересно, есть ли тут люди которые внедряли в существующий нативный ios проект react-native?
хочу узнать о проблемах с которыми можно столкнуться)
Elizaveta
export const getAccessTokens = async () => {
try {
const item = await AsyncStorage.getItem('accessTokens')
return JSON.parse(item)
} catch(error) {
console.log(error.message)
}
}
При вызове:
getAccessTokens().then(res => {
console.log(res)
})
можно ли сделать так, чтобы возвращался не promise, а сразу value?
Ilya
при вызове использовать await
Ilya
const value = await getAccessTokens()
Ilya
но все это тоже доджно быть помещено в async функцию
Elizaveta
Ilya
Aleksei
классно ответил, вот прям в точку, прям вот что спросили, то и ответил)
Aleksei
хочу узнать о проблемах -> airbnb страдали -> 🤦♂️ 🙂
Stas
у сбербанка вроде получилось.
Aleksei
https://ru.wikipedia.org/wiki/%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F_%D0%BE%D1%88%D0%B8%D0%B1%D0%BA%D0%B0_%D0%B2%D1%8B%D0%B6%D0%B8%D0%B2%D1%88%D0%B5%D0%B3%D0%BE только наоборот)
Vit
внедрять РН в иос проект - тебя не поймут ни иосники ни РН-щики, что в аирбнб и произошло - они тупо разосрались
Алексей💀
очень информативно конечно)) то есть, грубо говоря, лучше отказываться от такого проекта?
Stas
я хз, не могу доклад найти. сюда кидали.
Stas
Vit
ну я упростил да
Vit
те кто продавали РН уволились и власть захватили нативщики)
Vit
и первым делом постарались выпилить рн нафиг)
Aleksei
Vit
ну а так всегда) у меня вот щас вполне во власти весь стек на кложу перевести) и фронты и бэк и приложение)) знал бы кложу...
Stas
ага
Stas
они там на пишут что-то очень кастомное. На каждый виджет свой js движок запускают. Честно говоря, так не понял зачем им так усложнять себе жизнь. но оно работает
Vit
это как бы иос -> в РН проект) а не РН в иос проект)
Stas
а как простите, жсеры, смогут поддерживтаь часть на xcode
Vit
очень хороший подход имхо
Stas
ну так и не стоит так делать, лол)
Aleksei
я так живу 🙈 но у меня конечно ни разу не рокет сайнс
Vit
ну программерам тоже кушать надо)
Stas
взяли ionic и пошли
Vit
штат раздуть всегда приятно)
Stas
судя по числу тасок на upwork "почините сборку нашим жсерам" да.
Stas
кому? жсерам?
Aleksei
Вот Денис сам придумал, а теперь всех кормит этими байками 😄
Aleksei
Ух ты, xcode все сделает за меня, ща нафигачим!
Ух ты, Android Studio все сделает за меня, ща нафигачим!
Ух ты, UIKit все сделает за меня, ща нафигачим!
Ух ты, css все сделает за меня, ща нафигачим!
что еще забыл?)
Vit
Фастлайн)
Stas
Alexander
Тут был пример с meduza.io, когда предлагали услуги нативщиков, так как перешли на RN. В Airbnb нативщики тоже почувствовали, что запахло жаренным и решили воcстать 🙂
Vit
эмбер это параллельная реактам-ангулярам вселенная ))
Gena
makefile можно руками написать в терминале, а с xcodeproj что делать?)
Если xcodeproj нужен только чтоб скомпилить, его можно получить из cmake (правда не всё там хорошо), если он нужен просто, я вот недавно наткнулся на https://github.com/yonaskolb/XcodeGen и собираюсь его юзать для генерации xcodeproj в моих либах для RN, т.к. сам я пользуюсь cocoapods, а там отдельный проект для библиотеки не нужен...
Gena
всем привет!
мне интересно, есть ли тут люди которые внедряли в существующий нативный ios проект react-native?
хочу узнать о проблемах с которыми можно столкнуться)
Мы изначально начинали последний проект на RN с расчетом, что возможно придётся с него съехать. Похоже не придется - ни одного чисто нативного экрана мы до сих пор не написали, т.к. было не нужно... Но в архитектуре заложено... т.к. каждый экран приложения - отдельный Application в RN (JS environment у них общий при этом, т.е. глобальные данные - глобальны). Навигация соответственно нативная. Из проблем, которые могут возникнуть вижу:
- Увеличение веса приложения
- Если внедрение идет не целыми экранами, а вьюхами, то часть функционала RN отвалится (кажется там авторы кода не всегда осознают, что RCTRootView может не быть размером с весь экран, а представлять из себя просто иконку, к примеру)
- Если готовое приложение уже имеет нативную модель данных и из JS к ней нужен будет не одноразовый доступ, то придется потратить время и продумать интерфейсы обмена данными
- Процесс разработки, сборки и всяки CI могут стать чуть сложней, чем то, к чему привычны нативные iOS разработчики
Aleksei
Мы изначально начинали последний проект на RN с расчетом, что возможно придётся с него съехать. Похоже не придется - ни одного чисто нативного экрана мы до сих пор не написали, т.к. было не нужно... Но в архитектуре заложено... т.к. каждый экран приложения - отдельный Application в RN (JS environment у них общий при этом, т.е. глобальные данные - глобальны). Навигация соответственно нативная. Из проблем, которые могут возникнуть вижу:
- Увеличение веса приложения
- Если внедрение идет не целыми экранами, а вьюхами, то часть функционала RN отвалится (кажется там авторы кода не всегда осознают, что RCTRootView может не быть размером с весь экран, а представлять из себя просто иконку, к примеру)
- Если готовое приложение уже имеет нативную модель данных и из JS к ней нужен будет не одноразовый доступ, то придется потратить время и продумать интерфейсы обмена данными
- Процесс разработки, сборки и всяки CI могут стать чуть сложней, чем то, к чему привычны нативные iOS разработчики
а RCTSurfaceView разве не про то? (2 пункт)
Алексей💀
@gblack9 спасибо за такой развернутый ответ!
Алексей💀
хорошо, это я так понял на стороне iOS всё, а с Android всё может быть печальнее?
Aleksei
Алексей💀
я как то чистый проект на rn писал, c ios у меня не было таких особых проблем, а с Android возникали всегда сложности
Алексей💀
на ios выпустил проект а на android так и не смог))
Алексей💀
естественно я понимаю, что проблема может быть исключительно во мне
Aleksei
Мы изначально начинали последний проект на RN с расчетом, что возможно придётся с него съехать. Похоже не придется - ни одного чисто нативного экрана мы до сих пор не написали, т.к. было не нужно... Но в архитектуре заложено... т.к. каждый экран приложения - отдельный Application в RN (JS environment у них общий при этом, т.е. глобальные данные - глобальны). Навигация соответственно нативная. Из проблем, которые могут возникнуть вижу:
- Увеличение веса приложения
- Если внедрение идет не целыми экранами, а вьюхами, то часть функционала RN отвалится (кажется там авторы кода не всегда осознают, что RCTRootView может не быть размером с весь экран, а представлять из себя просто иконку, к примеру)
- Если готовое приложение уже имеет нативную модель данных и из JS к ней нужен будет не одноразовый доступ, то придется потратить время и продумать интерфейсы обмена данными
- Процесс разработки, сборки и всяки CI могут стать чуть сложней, чем то, к чему привычны нативные iOS разработчики
#can_i_do_it_with_rn
Aleksei
во, так сохраню на будущее
Алексей💀
но иногда просто горело от android
Aleksei
Aleksei
так это я не себе, потом буду советовать искать по хэштэгу 😉
Алексей💀
я думаю, что будут ещё люди которые спросят за это)
Gena
а что за проблема? 🙂
Я сейчас боюсь напутать, т.к. забыл подробности... что-то типа того, что некоторые компоненты расчитывают на то, что класс называется RCTRootView и вешают на него категории... а с Surface это естественно не так...
Aleksei
Gena
Это естественно проблемы этих компонентов, что они так делают... но в итоге-то это станет моими проблемами ))))
Aleksei
а как тогда RCTRootView с навигацией нативной дружит? там же точно не весь экран
Gena
Он может быть не на весь экран... насколько я понимаю у RCTRootView проблема с перерисовкой своего контента при изменении размеров динамическом. Так-то он работает.
Aleksei
о, ptmt кстати рассказывал как то что проблема такая была на react-native-macos, как раз поди из-за такого)
Alexander
const navigation = createBottomTabNavigator({
Calendar: {
screen: Mock,
navigationOptions: () => ({
tabBarIcon: ({ tintColor }) => <Icons.Calendar color={tintColor} />
})
},
Map: {
screen: Mock,
navigationOptions: () => ({
tabBarIcon: ({ tintColor }) => <Icons.Map color={tintColor} />
})
},
Events: {
screen: EventsList,
navigationOptions: () => ({
tabBarIcon: ({ tintColor }) => <Icons.Events color={tintColor} />,
})
},
Notifications: {
screen: Mock,
navigationOptions: () => ({
tabBarIcon: ({ tintColor }) => <Icons.Notifications color={tintColor} />
})
},
Profile: {
screen: Mock,
navigationOptions: () => ({
tabBarIcon: ({ tintColor }) => <Icons.Profile color={tintColor} />
})
}
}, {
swipeEnabled: true,
initialRouteName: 'Events',
tabBarOptions: {
showLabel: false,
activeTintColor: '#3d9ccc',
inactiveTintColor: '#757c80'
}
});
Не работает свайп между табами. Почему?
Aynur
Aynur
pulltorefresh используете где-нибудь?
Serhii
const navigation = createBottomTabNavigator({
Calendar: {
screen: Mock,
navigationOptions: () => ({
tabBarIcon: ({ tintColor }) => <Icons.Calendar color={tintColor} />
})
},
Map: {
screen: Mock,
navigationOptions: () => ({
tabBarIcon: ({ tintColor }) => <Icons.Map color={tintColor} />
})
},
Events: {
screen: EventsList,
navigationOptions: () => ({
tabBarIcon: ({ tintColor }) => <Icons.Events color={tintColor} />,
})
},
Notifications: {
screen: Mock,
navigationOptions: () => ({
tabBarIcon: ({ tintColor }) => <Icons.Notifications color={tintColor} />
})
},
Profile: {
screen: Mock,
navigationOptions: () => ({
tabBarIcon: ({ tintColor }) => <Icons.Profile color={tintColor} />
})
}
}, {
swipeEnabled: true,
initialRouteName: 'Events',
tabBarOptions: {
showLabel: false,
activeTintColor: '#3d9ccc',
inactiveTintColor: '#757c80'
}
});
Не работает свайп между табами. Почему?
свайп не работает для createBottomTabNavigator во второй версии reactNavigation
используй createMaterialBottomTabNavigator
Serhii
It is worth noting additionally that createBottomTabNavigator is different from the bottom tab navigator that is available through TabNavigator in that it does not support animationEnabled or swipeEnabled properties.
Dimitrii
Парни, кто-то пользуется каким-то пакетом для оплаты внутри приложений?
Alexander
Есть плагин для react-native, который при скролле картинку параллаксом уменьшает? Хз как описать. Как в google play