Roman
го
Dmitry 🦄
Всем привет! Подскажите такую штуку, если приложение на RN собрано в APK как-то можно посмотреть его исходный код и к примеру найти url по каким url приложение ходит к API?
Dmitry 🦄
код JS который
Gena
код JS который
Я не помню точно, если оно файлы не шифрует при подписи в продакшн apk, то да... там всего лишь минифицированный js после uglify...
Stas
Можно
Stas
Андроид дырявый в плане защиты исходников
Dmitry 🦄
Это сложно сделать? Просто у меня зашиты в коде url которые я не хочу светить
Gena
Это сложно сделать? Просто у меня зашиты в коде url которые я не хочу светить
Попробуйте сами... собираете apk, дальше unzip его и вперед )
Dmitry 🦄
АПИ которое предоставил подрядчик дырявое и публичное и его не хачат только по причине того что не известны url, в приложении это все захардкожено
Stas
Если никак не защитить js, то элементарно
Gena
Это надо чинить )
Dmitry 🦄
Ну если к примеру даже минифицированно то все равно url будут видны если не шифрованный файл
Stas
Вы его не зашифруете так как на ios
Stas
Что мешает урлы перехватить)
И да, никому не мешает это делать
Dmitry 🦄
Dmitry 🦄
там только IP виден
Stas
Несесурно в любом случае
Stas
Нужно фиксить api
Stas
@android_guards вообще вот полезная группа.
Dmitry
там только IP виден
Я тебе так скажу, что если апи дырявый , то никакой https не спасёт тебя
Dmitry 🦄
Ok, парни спасибо! Да действительно сделал unzip и там все это легко найти
Dmitry 🦄
Просто аргумент подрядчиков был в том что если никто не нает URL то все норм будет
Denis
Привет всем, в RN есть какой-то лоадер на весь скрин?
Gena
Просто аргумент подрядчиков был в том что если никто не нает URL то все норм будет
Я бы спросил у заказчика (не у подрядчиков), так: "Вероятность, что сломают очень мала (пока это невыгодно). Но вот скажите, для вас (компании), какова будет цена, если это всё же произойдет?"
Gena
А дальше они сами смогут посчитать...
Vladimir
Просто аргумент подрядчиков был в том что если никто не нает URL то все норм будет
Скажите, что хреновый аргумент. Нужна секьюрити - делайте клиентские сертификаты и ротируйте их
yellow
если на айфоне в верху экрана будет View с черным фоном, как сделать время индикатор заряда батареи т д белого цвета
Gena
Просто аргумент подрядчиков был в том что если никто не нает URL то все норм будет
И вот эту статью им покажите: http://www.opennet.ru/opennews/art.shtml?num=49259 (извиняюсь за офтоп, но тема безопасности на самом деле очень важная и в мобильных приложениях тоже) И касается на самом деле почти каждого здесь... вот вы уверены, что нигде не логируете в консоль пароли и токены? )
Dmitry
Болезненная тема на самом деле, я поднимал вопрос организации безопасности API сервера в канале python, так как сейчас его пишу, но каких-то жестких рекомендации мне никто дать не смог. К сожалению, зачастую, вопросы защиты игнорируются заказчиками...
Dmitry
Все надеятся на авось прокатит
Dmitry
Меня немного пугает такая вложенность...
Gena
Да, с моей точки зрения есть. Несмотря на то, что в статье описан разумный подход, он всё ещё остается зацикленным на реакте, как это сказать то... таким компоненто-центричным. Но так очень сложно. Следуя этой модели очень важные части вашего приложения - логика, модели данных, коммуникации... находятся где-то на обочине (вот в статье есть пример с api... в сервисы это автор запихнул). Я предпочитаю делать так: есть модели, есть общая логика инициализации, взаимодействия с внешним миром, общее управление и прочее... для этого я строю то, что постепенно можно назвать архитектурой... и среди этого прочего есть слой визуалки, UI. Вот в этом слое живет реакт со своими компонентами, больше его нигде нет. И в этом слое (да, он может быть разбит на модули, может не быть разбит на них) можно уже что-то из этих статей брать по устройству... ну я писал недавно... t.me/reactnative_ru/81195
Dmitry
Да, с моей точки зрения есть. Несмотря на то, что в статье описан разумный подход, он всё ещё остается зацикленным на реакте, как это сказать то... таким компоненто-центричным. Но так очень сложно. Следуя этой модели очень важные части вашего приложения - логика, модели данных, коммуникации... находятся где-то на обочине (вот в статье есть пример с api... в сервисы это автор запихнул). Я предпочитаю делать так: есть модели, есть общая логика инициализации, взаимодействия с внешним миром, общее управление и прочее... для этого я строю то, что постепенно можно назвать архитектурой... и среди этого прочего есть слой визуалки, UI. Вот в этом слое живет реакт со своими компонентами, больше его нигде нет. И в этом слое (да, он может быть разбит на модули, может не быть разбит на них) можно уже что-то из этих статей брать по устройству... ну я писал недавно... t.me/reactnative_ru/81195
Хотелось бы взглянуть на пример проекта, если это возможно) очень интересная тема
Gena
Хотелось бы взглянуть на пример проекта, если это возможно) очень интересная тема
Гм... ну вот надо придумать какое-нибудь простое приложение (только чуть посложней стандартного todo листа...). И его сделать... есть идеи? У меня есть уже переведенный почти в эту архитектуру старый недописанный вариант таймера для занятий спортом... Подойдет? (Хоть мотивация будет его в порядок привести)))
Gena
Имеется ввиду, что текущие проекты я естественно не могу прям брать и показывать. А это можно просто на гитхаб положить... типа примера.
GrafMine
ребят кто-то юзал Expo.ErrorRecovery.setRecoveryProps(props) ?
Gena
Отлично! Мне в любом случае понадобятся свободные выходные чтоб это поднять из "тени" )) А после напишу сюда.
Gena
Кстати, чуть не пропустил (но гитхаб не дал забыть). Для меня один из очень важных багов, пофикшенных в RN 0.57, это контроллируемые `TextInput`ы под iOS... вот то, что его пофиксили, это круто... теперь можно спокойно делать поля с номерами телефонов, которые не дают вводить всякую чепуху, чисто цифровые поля и прочие фильтры... Баг появился после январских переработок кодовой базы, а сообщество пофиксить его не могло, т.к. там сложный код и экспертизы достаточной ни у кого не было.
Peter
Я смотрю товарищи из Expo и RN начали активно пиарить эту либу https://github.com/kmagiera/react-native-screens
yellow
делаю приложение которое запускается на телефоне подключеном к компьютеру, где посмотреть что выводит console.log http://localhost:8081/debugger-ui/ тут их нет
Ilias
Всем привет. Подскажите, пожалуйста, как во flatList сделать скролл на последний элемент после добавления нового элемента? На данный момент скролл происходит на преподследний элемент. Использую mobx.
Никита
Всем привет. Подскажите, пожалуйста, как во flatList сделать скролл на последний элемент после добавления нового элемента? На данный момент скролл происходит на преподследний элемент. Использую mobx.
вероятнее всего вызываете скролл до того как успел обновиться стейт. Чтобы проверить можно например обернуть в setTimeout хотя бы на секунду. Наверняка отработает правильно. Отсюда можно будет искать адекватное решение или оставлять этот костыль, подобрав достаточно маленькое значение таймера
yellow
remote debugger включен в приложении? (потрясти телефон или нажать меню, там второй пункт)
включил, приложение не запускается, висит надпись downloading js bundle 100%...
Никита
после перезапуска должно работать
Dmitry
?
Ilias
А как вы скролл делаете,
setTimeout(() => this.flatList.scrollToEnd({animated:true}), 200)
Dmitry
setTimeout(() => this.flatList.scrollToEnd({animated:true}), 200)
Я подозреваю, что на момент скролла элемент еще не примонтирован, и таймаут в рядли тут поможет. Как должно работать? То есть есть список который промотан в начало, но при добавлении элемента должен проматываться в конец ?
Ilias
Я подозреваю, что на момент скролла элемент еще не примонтирован, и таймаут в рядли тут поможет. Как должно работать? То есть есть список который промотан в начало, но при добавлении элемента должен проматываться в конец ?
Да, при добавлении элемента список должен проматываться в самый низ списка, т.е. к добавленному элементу. При это данный элемент добавляется в список.
Dmitry
можно использовать inverted
Serge
Может RN лениво геометрию пересчитывает.
Ilias
А getItemLayout задан?
Создан. Ячейки различных размеров, поэтому беру высоту через onLayout
Serge
А если вместо scrollToEnd использовать метод скролла к элементу и указать номер последнего?
Gena
Создан. Ячейки различных размеров, поэтому беру высоту через onLayout
И как вы себе представляете тогда это должно работать? Смотрите, элемент добавился в конец и он не на экране (очевидно, иначе бы вам не пришлось его проматывать). Его размер не известен и будет известен только после отрисовки. А отрисовка произойдет только после скролла ))) Вот он и сколлится туда, куда может посчитать )))
Gena
Вообще, если вы в getItemLayout возвращаете что-то асинхронное (взятое из onLayout ячейки), то лучше этот параметр вообще убрать... он нужен как оптимизация, когда вы знаете размер, если не знаете, то лучше этот расчет оставить FlatList'у
Gena
Я же говорю... он не может
Gena
Если хотите хак, то сработает так... scrollToEnd, подождать onLayout, второй scrollToEnd...
Gena
Но это хак
Ilias
Я же говорю... он не может
ок, попробую без getItemLayout.
Gena
Если это вам для чего-то похожего на чат надо (чтоб новые элементы снизу появлялись), то Dmitry уже написал, делайте inverted
Gena
А зачем первый скролл?
Чтоб заставить последний элемент отрисоваться и узнать свой размер