Rinat
было вроде когда-то не помню как решал
Rinat
Execution failed for task ':app:bundleProductionReleaseJsAndAssets'.
> Process 'command 'node'' finished with non-zero exit value 1
Rinat
59 да
Makar
Ребят, кто-нибудь реализовывал вход по номеру телефона с помощью Firebase, поделитесь опытом как вы это делали или скиньте статью?
Kto?
Игорь
ребят, кто-нибудь знает готовые билды для оптимизированного получения геопозиции на android and ios ?
или хотябы библиотечки на android, которые позволяют это делать?
Gena
Игорь
мне нужно получить геопозицию на андройде и айфоне
делаю обычным способом но у меня ошибка на анлдройде - таймаут, я уже что только не делал, поэтому и хочу найти что-то
Gena
Ну я написал (интегрировал это пару дней назад в RN... работает норм), это современный официальный способ работы с гео в андроид.
Игорь
Gena
Я к сожалению конкретно этим кодом не могу поделиться, т.к. он слишком сильно интегрирован в нашу систему, так просто не выдрать. Но он не сильно отличается по сути, от того что делает RN, даже проще т.к. мне не нужен listener и точная локация...
Игорь
Gena
Если кто-то форкнет родной location из RN, готов туда законтрибьютить модерн api. Но у самого сейчас не хватит времени на поддержку ещё одного проекта.
Andrey
@AGIFON https://www.npmjs.com/package/react-native-fused-location
Игорь
Andrey
это похоже то, что vovkasm сделал у себя сам
Gena
Кстати, а кто что использует вместо гуглового place picker'а, который устаревший и перестанет летом работать?
Кирилл
а задача какая?
Кирилл
если адрес пикнуть - то дадата мб?
Gena
Задача выбрать место, оно не обязательно адрес. И плейс пикер почти идеально подходил под неё. Там и автокомплит и карта были. (Мы использовали вот этот компонент https://github.com/tolu360/react-native-google-places#notice-the-google-play-services-version-of-the-places-sdk-for-android-in-google-play-services-1600-is-deprecated-as-of-january-29-2019-and-will-be-turned-off-on-july-29-2019-a-new-version-of-the-places-sdk-for-android-is-now-available)
И это было удобно, т.к. он сразу гугловый placeId выдавал.
Теперь пикер депрекейтнут и альтернативы нет.
Кирилл
Gena
а почему перестанет? есть пруфы?)
Да, https://developers.google.com/maps/deprecations
The Place Picker (Android, iOS) is deprecated as of January 29, 2019. This feature will be turned off on July 29, 2019, and will no longer be available after that date.
Кирилл
ну вон у мапбокса есть что-то для геокодинга, не знаю на счет России. 50к запросов в месяц - free)
Gena
Ну если только... ладно, будем думать... это просто получается вообще с гугла съезжать тогда (что мне в принципе-то нравится, но вот понравится ли остальным...) 😄
Сергій
Сергій
Его и самому не сложно запилить
Gena
Я знаю почему, этот компонент делал запросы, которые теперь тарифицируются по новым правилам в довольно значительные суммы
Кирилл
ну а какие значительные? у яндекса видели ценник?) те же 50к в сутки - 850к руб/год, тоже недешево
Gena
Его и самому не сложно запилить
Ну да... вот под андроид аналог, https://github.com/rtchagas/pingplacepicker - там 110Кб котлина, это сам код без тестов и примеров. Не много, но и не мало. Думаю на js аналогично будет, но всё равно писать не очень хочется )))
Gena
Сергій
Кирилл
Да, видели ))) В этом и проблема.
в таком случае та же дадата дешевле в разы выходит (но придется писать самим компоненты) в год 11к рублей за 100к запросов в день. И в России работает ок
Gena
Проблема в том, что если бы они этот пикер оставили и просто цену подняли, это была бы не моя проблема, а начальства. И начальство бы само попросило на дадату/мапбокс или что-то ещё съехать ^_^
Но компонент просто убрали и теперь мне надо париться, собирать эту информацию и что-то объяснять. Вот я уже запарился и начал собирать инфу )
Gena
В любом случае, всем спасибо за советы!
Daniil
Подскажите как сделать так чтобы кнопка была серединой на границе <Image> . Пытался делать absolute, bottom: 0, right: 0, помещает ее вниз но за границы фотографии кнопка не выходит.
Код: Код: https://pastebin.com/FFhGB1qQ
Dmitry
Собственно моя реализация с использование RNNv2 и Redux. Код я особо не причесывал, но суть и так ясна, я думаю =)
https://github.com/quarrant/ExampleCurrencies
@in4core_studios_llc @gblack9
И да, @gblack9 мне определенно нравится идея с Application синглтоном!
Alik
Alik
Gena
Iryna
Всем привет! Кто-то добавлял AWS PinPoint в проект? У меня такая проблема: https://github.com/aws-amplify/amplify-js/issues/3080
Daniil
У меня есть кнопка у которой position: 'absolute' работает на iOS но на андройде нет, кто нибудь сталкивался, почему такое может быть? (zIndex: 99 выставлял, никакого эффекта)
Игорь
ребят, как продолжать работу приложения при его сворачивании?
Dmitry
Игорь
зачем?
мне нужно отпралять геоданные, когда телефон заблокирвоан
Dmitry
ифслпкщгтв ефыл
Игорь
Anonymous
Нужна инфа как делать приложуху на реальном устройстве, типа как экспо позволяет
Daniil
Вопрос кстати актуальный, кто что думает по поводу expo, проект уже начат в нем используется datepicker, camera, image picker из нативного. Стоит ли переходить и у кого какой опыт был?
Gena
Вот чтоб в этом разобраться, предлагаю дальше начать добавлять в приложение возможности и постепенно сделать его более юзабельным (с точки зрения пользователя).
Я, к сожалению, не могу прям много времени этому уделять, поэтому могу предложить такое: один кейс (фичу) в неделю.
Мне прям сейчас видится несколько вариантов таких фич:
1. делаем экран настроек, где позволяем пользователю выбрать одну из двух тем оформления - светлую / темную. Настройка сохраняется между перезапусками приложения.
2. делаем нормальный фильтр - кнопка настроек на экране списка ведет на экран (или модалку) выбора базовой валюты (из списка) и выбора (галочками) валют для показа (тоже из списка). Эти настройки должны сохраняться между рестартами приложения.
3. Делаем возможность просмотра курсов валют за любую дату (из тех, что апи отдает).
Gena
(и извините, дальше я выкидываю react-navigation, не могу на это смотреть... и беру rnn2)
Gena
Синглтон сам по себе не нужен, без него можно обойтись, но с ним удобней.
- Рефакторить проще класс, потому что там любой метод можно разбить на более мелкие и понятные части.
- Тестировать проще.
- Легче преобразовать во что угодно.
- Доступ к синглтону из разных мест приложения может потребоваться, не виже в этом ничего проблематичного. (Пока такой синглтон один и "хорошо известен").
Gena
Я тогда так поступлю, действительно буду добавлять потихоньку фичи, писать сюда. Но все преимущества/недостатки архитектуры познаются не только в статике (как легко понимать проект и читать код), но и в динамике, в том, насколько легко проект менять. Поэтому если кто-то ещё хочет делать параллельно с применением альтернативных подходов - это будет мега-круто! Будет с чем сравнивать.
Gena
Я только напомню, что console.log - вызов метода синглтона. AppRegistry.registerComponent - вызов метода синглтона. Любимый всеми AsyncStorage - синглтон чистой воды. И их много, вы уже ими пользутесь! ))) Я же, оставляю один, который имею возможность контролировать, в отличие от...
Gena
Вот вам понадобилось расширить log и доп инфу из модели в каждой строчке логировать... и уже всё не так просто... Вот понадобилось его включать/выключать и уже опять не так просто.
AsyncStorage и AppRegistry имеют стейт
Gena
Конфиг - стейт в чистом виде, ещё и публичный
Gena
Это всё легко заметить, если только начать писать тесты... там все эти чудесные "утилиты" когда их надо мокнуть чудесно показывают свое настоящее обличье )
Gena
И это одна из причин, почему я использую синглтон - это просто центральное место, где я могу управлять этими скрытыми зависимостями )
Gena
Открывая старое (своё) приложение и меняя его, я уверен в изменениях потому что, если я делаю что-то не так - падают тесты. Если мне нужно провести эксперимент чтоб понять как что-то сработает, я не запускаю приложение. Я меняю тест и смотрю, что получилось. )
Dmitry
На самом деле я уже придумал модель работы с такими синглотами, все процессы, которые не работают во вью - работают внутри эти классов, управление навигацией, уведомлениями, состояниями экранов
Dmitry
Огромный простор
Dmitry
Никто не топит за то, что так делать надо, кроме тебя =)
Dmitry
Да потому что ты через сообщение навязываешь свою точку зрения, то синглтоны антипатерн, то mobx не нужен, то RNN
Aynur
какая-то агрессивная пропаганда своей реализации, согласен)
Aynur
со стороны именно так
Dmitry
я как бы то же против модели построенной на event listener, но это твое видение, хотя это тот еще костыль. Расписывать преимущества подхода с Application слишком долго
Dmitry
Я уже вижу преимущества завязывания глобальных процессов приложения в одном месте с доступом к API и навигации
Dmitry
без необходимости бесконечных импортов методв/классов/и д
Dmitry
К слову, открыв код @gblack9 я потратил очень мало времени, чтобы разобраться, как это работает. Ччего не могу сказать о твоем @in4core_studios_llc
Eugene
🌚а киньте ссылку, а то я чот пропустил
Dmitry
вот
Dmitry
Собственно моя реализация с использование RNNv2 и Redux. Код я особо не причесывал, но суть и так ясна, я думаю =)
https://github.com/quarrant/ExampleCurrencies
@in4core_studios_llc @gblack9
И да, @gblack9 мне определенно нравится идея с Application синглтоном!
Dmitry
и вот
Dmitry
Здорова народ. Наш с Геной баттл так сказать завершен, хотя это совсем был не баттл, а скорее совеместное предприятие, где каждый из нас показал возможности реализации Store. В случае Генадия - это готовый Mobx - работающий по своим канонам и который надо изучать и разбираться по документации. В моем случае - это нативные методики JS реализации сторе, которые должны быть понятны и без документации. В моем движке так же Генадий принял участие, подсказал некоторые нюансы TS (typescript) которые я например ранее не использовал ( шаблонизация например) , дабы привести все к проф виду. Сама же реализация у нас своя, что у Гены, что у меня.
Как работает : при запуске приложения мы видим ЛИСТ валют ( всех валют ), нажав на кнопку *перейти на поиск* - мы переходим на экран поиск - где введя в текстовое поле информацию о поиске, например USD , и подтвердив ( submit клавиатуре) - экран ЛИСТ должен обновиться, без перехода на него. Теперь когда мы вернемся на экран назад - мы увидим новый лист, либо если нет совпадений - текст об этом.
Сейчас мы выкладываем наши реализации на github - объяснить, писать аннотации по классам и методам - мы не стали.
Ваша задача дорогое коммьюнити - кому это интересно все было, установить наши приложения, и почитать код. Если вы все поймете и не будет вопросов - оцените, опишите - что вам ближе к душе, что понравилось, что нет и почему.
Если же будет много непонятного и вопросов, мы с удовольствием прокомментируем любой кусок кода и объясним вам методики.
Вам может показаться, ого - столько черт побери кода на какие то 2 паршивых экрана! Суть в том, что это обертка-двиг, добавляя +100 экранов обертка останется такой же, ничего дописывать к ней особо не надо, и она дает задел на будущее, если приложение разрастеться. Само собой, стоит понимать, что для простого приложения наши двиги будут избыточны.
Реализация Геннадия : https://github.com/vovkasm/DemoCurrencies
Реализация Александра : https://github.com/in4core/RN_MVC
Всем спасибо! Нам было интересно и любопытно )
@gblack9
Eugene
Чот mvc как-то не привычно видеть и тяжело воспринимается 🤔