Forwarded from Flutter. Много
Hola, Amigos!
На связи Павел Гершевич, Mobile Team Lead агентства продуктовой разработки Amiga. Мы продолжаем изучать концепции и полезные функции в rxdart.
В прошлый раз мы забыли про троттлинг. Он похож на debounce, но возвращает не последнее, а первое значение, что полезно при обработке различных случаев, например, отправки форм. Для него можно использовать методы throttle и throttleTime.
Еще давайте затронем фильтрацию данных внутри стримов, так как это часто необходимо. Да, в Dart есть метод where, но его может не хватать или он будет слишком большим в коде. Поэтому в rxdart есть расширение whereType, которое позволяет фильтровать по типу без применения cast, и его дополнение - whereNotNull, которое убирает все нулевые значения из потока данных.
Еще одно полезное расширение - distinctUnique. Оно позволяет нам сохранять в стриме только уникальные значения. Очень похоже на применение toSet().toList() для списков.
И самое главное, что добавляет rxdart - это новые StreamController, которые здесь называются Subjects. Их 2 - BehaviorSubject и ReplaySubject. Давайте посмотрим на каждый из них.
BehaviorSubject - контроллер, который при добавлении слушателя сразу же передает ему последнее значение, которое попало в стрим. Также ему можно задать изначальное значение при помощи конструктора BehaviorSubject.seeded.
ReplaySubject - контроллер, который при добавлении слушателя сразу же передаст все значения, которые в него попадали. Но если нам нужно возвращать последние N значений, то мы можем применить в его конструкторе параметр maxSize.
Делитесь в чате, как часто вы используете стримы на своих проектах?
На связи Павел Гершевич, Mobile Team Lead агентства продуктовой разработки Amiga. Мы продолжаем изучать концепции и полезные функции в rxdart.
В прошлый раз мы забыли про троттлинг. Он похож на debounce, но возвращает не последнее, а первое значение, что полезно при обработке различных случаев, например, отправки форм. Для него можно использовать методы throttle и throttleTime.
Еще давайте затронем фильтрацию данных внутри стримов, так как это часто необходимо. Да, в Dart есть метод where, но его может не хватать или он будет слишком большим в коде. Поэтому в rxdart есть расширение whereType, которое позволяет фильтровать по типу без применения cast, и его дополнение - whereNotNull, которое убирает все нулевые значения из потока данных.
Еще одно полезное расширение - distinctUnique. Оно позволяет нам сохранять в стриме только уникальные значения. Очень похоже на применение toSet().toList() для списков.
И самое главное, что добавляет rxdart - это новые StreamController, которые здесь называются Subjects. Их 2 - BehaviorSubject и ReplaySubject. Давайте посмотрим на каждый из них.
BehaviorSubject - контроллер, который при добавлении слушателя сразу же передает ему последнее значение, которое попало в стрим. Также ему можно задать изначальное значение при помощи конструктора BehaviorSubject.seeded.
ReplaySubject - контроллер, который при добавлении слушателя сразу же передаст все значения, которые в него попадали. Но если нам нужно возвращать последние N значений, то мы можем применить в его конструкторе параметр maxSize.
Делитесь в чате, как часто вы используете стримы на своих проектах?
Forwarded from Mobile AppSec World (Yury Shabalin)
Как обеспечить безопасность flutter-приложений
Статья, которая не как все, рассказывает о применении reFlutter для анализа таких приложений, а наоборот, объясняет как их можно защитить от угроз, описанных в OWASP Mobile.
В статье описаны, на самом деле, базовые техники и общие рекомендации, иногда с примерами кода и советами по используемым плагинам.
Иногда я бы не стал им сильно доверять, например, совету с использованием Flutter-secure-storage, но все равно, отправная точка есть.
Да, пусть статья и не самая подробная и имеет только общие рекомендации, но все равно такого материала часто сильно не хватает. И я очень рекомендую ее пролистать и отправить почитать разработчикам кроссплатформенных приложений.
Хороших выходных!
#flutter #secure #owasp
Статья, которая не как все, рассказывает о применении reFlutter для анализа таких приложений, а наоборот, объясняет как их можно защитить от угроз, описанных в OWASP Mobile.
В статье описаны, на самом деле, базовые техники и общие рекомендации, иногда с примерами кода и советами по используемым плагинам.
Иногда я бы не стал им сильно доверять, например, совету с использованием Flutter-secure-storage, но все равно, отправная точка есть.
Да, пусть статья и не самая подробная и имеет только общие рекомендации, но все равно такого материала часто сильно не хватает. И я очень рекомендую ее пролистать и отправить почитать разработчикам кроссплатформенных приложений.
Хороших выходных!
#flutter #secure #owasp
Forwarded from Код и Капуста
Tolgee - опенсорсная платформа для локализации. Написана на #kotlin.
Это же моя идея стартапа!
Ссылка на сайт https://tolgee.io/
И на репу https://github.com/tolgee/tolgee-platform
Это же моя идея стартапа!
Ссылка на сайт https://tolgee.io/
И на репу https://github.com/tolgee/tolgee-platform
Forwarded from Код и Капуста
Наткнулся на статью про серверный UI для #flutter
Интересно почитать про подход. И есть адаптер для Go
Статья https://habr.com/ru/articles/858636/
Забавно, что изначально задача была сделать интерактивные рекламные баннеры
Пакет для Flutter https://github.com/Duit-Foundation/flutter_duit
Адаптер для Go https://github.com/Duit-Foundation/duit_go
Интересно почитать про подход. И есть адаптер для Go
Статья https://habr.com/ru/articles/858636/
Забавно, что изначально задача была сделать интерактивные рекламные баннеры
Пакет для Flutter https://github.com/Duit-Foundation/flutter_duit
Адаптер для Go https://github.com/Duit-Foundation/duit_go
Forwarded from Surf Flutter Team
Пишем Unit-тесты в Dart 🙌
Часто программист работает с уже существующим кодом. Так появляется риск, что код будет работать не так, как должен. В таком случае разработчик может вручную проверить работу кода.
Но можно этого избежать, если код покрыт unit-тестами.
Что такое unit-тесты? Это тесты, направленные на проверку работы одного компонента программы, например, класса или метода.
➡️ Их цель — убедиться, что компонент работает так, как ожидается, независимо от других частей программы. После внесения правок разработчик может запустить тесты и понять, а не сломалось ли что-то.
Ещё тесты полезны тем, что программист заранее обдумывает возможное поведение программы и ещё на этом этапе может выявить баги.
Го в карточки, расскажем как писать unit-тесты в Dart 🤫
🔗Ссылки на пакеты:
Первый
Второй
🔗Репозиторий с примером
Часто программист работает с уже существующим кодом. Так появляется риск, что код будет работать не так, как должен. В таком случае разработчик может вручную проверить работу кода.
Но можно этого избежать, если код покрыт unit-тестами.
Что такое unit-тесты? Это тесты, направленные на проверку работы одного компонента программы, например, класса или метода.
Ещё тесты полезны тем, что программист заранее обдумывает возможное поведение программы и ещё на этом этапе может выявить баги.
Го в карточки, расскажем как писать unit-тесты в Dart 🤫
🔗Ссылки на пакеты:
Первый
Второй
🔗Репозиторий с примером
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM