Flutter. Много
2.93K subscribers
463 photos
24 videos
286 links
Заказать мобильную разработку: https://amiga.ru//?utm_source=tg
Заказать рекламу в канале @amiga_agency_bot

Новости Flutter-разработки, дайджесты мероприятий, личный опыт.
Download Telegram
Hola, Amigos! На связи Павел Гершевич, Mobile TeamLead в Amiga. В каждом приложении мы авторизуем пользователей, но не все встраивают механизмы обновления токенов.

Поэтому мы написали статью о том, как это делается, и поделились нашим опытом. Из нее вы узнаете:

Как работает авторизация запросов на сервере

🔵 Что хранит в себе JWT и как узнать, когда он закончит действовать

🔵 Как работает QueryInterceptor в Dio и чем он отличается от обычного

🔵 3 способа обработки токенов с завершившимся сроком действия

Ссылка на статью на Хабре

Делитесь в комментариях, а как вы поступаете при получении ошибки 401 Unauthorized?
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤3🔥3
Hola, Amigos! На связи Павел Гершевич, Mobile TeamLead в Amiga. Для того, чтобы наши приложения работали лучше, можно отслеживать их жизненный цикл, чтобы не совершалось лишних действий. Для этого нам нужен AppLifecycleState, который предоставляет добавление обратных вызовов для изменения состояния. Давайте посмотрим, какие состояния есть у Flutter-приложений:

resumed - стандартное состояние, когда приложение находится в foreground. При переходе в него можно запускать остановленные потоки данных (Stream) и анимации, а также обновлять устаревшие данные.

inactive - наше приложение видно, но пользователь не может с ним работать. Его можно увидеть, когда мы смотрим на все свернутые приложения. Также, например, открытие системного диалогового окна для выдачи разрешения переведет в это состояние. Тут можно остановить анимации. Но учитывайте, это состояние - временное.

hidden - еще одно временное состояние. Наше приложение не видно, но оно еще не полностью на паузе. Оно добавлено в Flutter 3.13 чтобы мы могли сохранить состояние, пока операционная система не порезала ресурсы.

paused - наше приложение полностью в фоне. Основной isolate еще работает, но Flutter Engine уже не занимается рендерингом. В этом состоянии можно отключиться от WebSockets, отменить работу таймеров, прослушку потоков данных. Но из этого состояния ОС может закрыть приложение.

detached - крайнее состояние нашего приложения. Оно показывает, что приложение закрывается либо открывается (холодный запуск).

Рассказывайте в комментариях, а что вы делаете при изменении жизненного цикла приложения?
1🔥11❤6👍5
Hola, Amigos! Мы все любим ускорять и упрощать написание шаблонного кода. Один из таких методов - Snippets.

Snippet - аббревиатура, которую IDE может преобразовать в код.

Показываем, как это сделать в Android Studio. А в следующей части расскажем про VS Code.

Рассказывайте в комментариях, используете snippets в работе?
1❤9👍8🔥5
3️⃣0️⃣0️⃣0️⃣ 🦋
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥16❤9👍7
Hola, Amigos! В прошлой части мы показали как создать свой собственный Snippet в Android Studio. Теперь пришла очередь сделать это в VS Code.

Делитесь в комментариях, какие Snippets для вас были бы самыми полезными?
1🔥13❤4👍3
Hola, Amigos! На связи Павел Гершевич, Mobile Team Lead в Amiga. Не всё, что нам нужно, упаковано в библиотеки, поэтому иногда мы пишем решения сами. После этого возникает желание завернуть код в пакет и отправить на pub.dev, чтобы облегчить работу другим разработчикам. А может, вы сами создаете полезное SDK и внедряете поддержку Flutter.
И перед публикацией встает вопрос: какую лицензию выбрать? Давайте разбираться.

Сегодня мы рассмотрим лицензии для Open Source проектов, которые чаще всего используют библиотеки под Dart и Flutter - MIT (uuid, flutter_svg), BSD-3-Clause (библиотеки от команд Dart и Flutter) и Apache 2.0 (clock, rxdart).

Все они относятся к категории разрешительных: позволяют использовать, модифицировать и распространять код. Но отличия у них всё-таки есть. Давайте разбираться.

Лицензия MIT запрещает предъявлять иски к авторам. Для ее использования нужно оставить уведомления в коде и файл с текстом самой лицензии. Можно сказать, что она является базовой. Ее стоит выбирать для небольших проектов и примеров кода.

Лицензия BSD-3-Clause максимально похожа на MIT, но в нее добавлен пункт о запрете рекламы от имени автора. Ее можно выбрать, если вы не хотите, чтобы ваше имя использовали для рекламы чужого продукта.

Лицензия Apache 2.0 является самой защищенной, хотя у нее нет полноценного пункта о запрете рекламы от имени автора (только при согласовании), но она максимально защищает патенты. Еще одно отличие - нужно указывать изменения в коде, если мы модифицируем библиотеку. Такую лицензию выбирают, если проект серьезный и имеет патенты.

Еще одно важное отличие - совместимость с лицензиями GPLv3. MIT и BSD-3-Clause имеют совместимость только с GPLv2, поэтому их можно использовать в проектах с GPLv3, но не наоборот. А вот у Apache 2.0 есть полная совместимость.

P.S. В 2024 году мы анонсировали набор библиотек Amiga Dev Screen. Сейчас мы его активно заканчиваем, а также выбрали для него лицензию MIT.
1👍9🔥6❤5