Юра, Tech Lead Flutter-команды Friflex, поделился новой подробной инструкцией, как установить все необходимое для написания приложения для Aurora на Flutter
Смотреть:
📎 на YouTube
📎 в VK
Смотреть:
Please open Telegram to view this post
VIEW IN TELEGRAM
❤10🔥4👌3
Итоги года: какой ты таск в бэклоге?
Anonymous Poll
10%
Критичный баг — в центре внимания
13%
Фича из мечты клиента — воплощение амбиций и идеалов
24%
Технический долг — ценишь свое время, чтобы раскрыться в полной мере
43%
Рефакторинг — делаешь все лучше, даже если для этого нужно подождать
11%
Легаси код — здесь со времен первых версий проекта, и никто не осмеливается тебя трогать
❤3🔥3
Чтобы близкие знали, что подарить вам, собрали несколько вариантов вишлистов: тут и для души, и для работы. Осталось только поделиться.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤11🔥8👌3
Привет, Flutter-разработчики! Есть вопрос. Какие функции обязательно должны быть перед выпуском приложения в продакшн? Можно выбрать несколько вариантов или написать свой в комментариях.
Anonymous Poll
10%
Запрос рейтинга
58%
Аналитика (Appmetrica, GA и другие)
34%
Пуши
37%
Форма обратной связи
24%
Поддержка кэширования
13%
Поддержка SSL-pinning
73%
Трекеры ошибок (например, Crashlytics)
6%
Рекламные блоки
31%
Удаленная конфигурация
❤5
This media is not supported in your browser
VIEW IN TELEGRAM
Релиз приложения + чек-лист для запуска = 🏆
Собрали фичи, которые лучше добавить в приложение перед первым же релизом.
✔️ Сбор реакций «нравится — не нравится»
Настроить автоматический запрос можно в виде модального окна с просьбой оценить приложение. Например, изобразить два смайла — веселый и грустный.
✔️ Hard/soft update
Чтобы избежать проблем с недоступными или поломанными функциями, лучше использовать Feature Toggle, то есть переключатели.
✔️ Аналитика (Appmetrica, GA и другие)
Поможет оценить эффективность приложения и выявить направления для продвижения. Будут полезны такие данные, как количество ежедневной аудитории (DAU), частота использования функций приложения и метрики возврата аудитории.
✔️ Push уведомления (Firebase, OneSignal и другие)
Правильно настроенная отправка уведомлений вернет в приложение пользователей, которые давно не заходили.
✔️ Форма обратной связи
Это позволит лучше понять путь пользователя в приложении. Настройте пассивный фидбэк, добавив отдельную кнопку «связаться с нами» в меню приложения.
✔️ Поддержка кэширования
У этой фичи много плюсов, одна из которых — работа приложения без доступа интернету. Используйте такой вариант локального хранения данных, как хранение в оперативной памяти приложения или сохранение ответов сервера на диск в виде отдельных файлов.
✔️ Поддержка SSL-pinning
Привязка сертификата или публичного ключа сервера к клиенту особенно актуальна для приложений, требующих высокого уровня защиты данных.
✔️ Трекеры ошибок (FireBase Crashlytics, Appmetrica и другие)
Интеграция с FireBase Crashlytics происходит шаблонно, особенно на Flutter, и не требует дополнительных действий.
✔️ Рекламные блоки
Это один из наиболее эффективных инструментов монетизации мобильного приложения. Разместить рекламные блоки можно при запуске или более нативно в контенте приложения.
✔️ Удаленная конфигурация приложения
Файл различных конфигураций приложения лежит удаленно на сервере или сервисе. Это позволяет проводить различные эксперименты в приложении, не перевыкладывая его.
Все из списка есть? Ваше приложение готово покорить заказчика и стать любимчиком пользователей.
Собрали фичи, которые лучше добавить в приложение перед первым же релизом.
Настроить автоматический запрос можно в виде модального окна с просьбой оценить приложение. Например, изобразить два смайла — веселый и грустный.
Чтобы избежать проблем с недоступными или поломанными функциями, лучше использовать Feature Toggle, то есть переключатели.
Поможет оценить эффективность приложения и выявить направления для продвижения. Будут полезны такие данные, как количество ежедневной аудитории (DAU), частота использования функций приложения и метрики возврата аудитории.
Правильно настроенная отправка уведомлений вернет в приложение пользователей, которые давно не заходили.
Это позволит лучше понять путь пользователя в приложении. Настройте пассивный фидбэк, добавив отдельную кнопку «связаться с нами» в меню приложения.
У этой фичи много плюсов, одна из которых — работа приложения без доступа интернету. Используйте такой вариант локального хранения данных, как хранение в оперативной памяти приложения или сохранение ответов сервера на диск в виде отдельных файлов.
Привязка сертификата или публичного ключа сервера к клиенту особенно актуальна для приложений, требующих высокого уровня защиты данных.
Интеграция с FireBase Crashlytics происходит шаблонно, особенно на Flutter, и не требует дополнительных действий.
Это один из наиболее эффективных инструментов монетизации мобильного приложения. Разместить рекламные блоки можно при запуске или более нативно в контенте приложения.
Файл различных конфигураций приложения лежит удаленно на сервере или сервисе. Это позволяет проводить различные эксперименты в приложении, не перевыкладывая его.
Все из списка есть? Ваше приложение готово покорить заказчика и стать любимчиком пользователей.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6❤3💯2🤝1
А вдруг вы прямо сейчас пишете сервис на Dart, задача которого — отправить миллион сообщений ровно в 12 дня? Юрий Петров, Tech Lead Friflex, написал статью, как это можно сделать:
🔸 Установить и запустить контейнер с RabbitMQ
🔸 Настроить RabbitMQ
🔸 Создать Producer (отправителя) на Flutter
🔸 Создать Consumer (потребителя) на Flutter
Сохраняйте, чтобы не потерять🔖
Сохраняйте, чтобы не потерять
Please open Telegram to view this post
VIEW IN TELEGRAM
Хабр
Дружим RabbitMQ и Flutter/Dart
Привет, Хабр! Я Юрий Петров, руководитель отдела мобильной разработки в Friflex и автор телеграм-канала «Мобильный разработчик» . В этой статье хотел бы поделиться с вами опытом работы с брокером...
❤9👍9🔥6
«Он сказал мне, что жизнь, как в мечте, получу я без всяких преград»🐼
Но только если ваше приложение пройдет аудит. Виды, этапы и как подготовиться — на карточках.
📎 Полезные ссылки:
Статья на Хабре
OWASP
Пример чек-листа на Стингрей
Но только если ваше приложение пройдет аудит. Виды, этапы и как подготовиться — на карточках.
Статья на Хабре
OWASP
Пример чек-листа на Стингрей
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9❤5👍5
This media is not supported in your browser
VIEW IN TELEGRAM
Наш Tech Lead Юрий Петров создал Telegram-бота, который отслеживает репозитории Flutter и Dart и оперативно уведомляет о новых релизах и изменениях в ветке STABLE.
Бот написан на Dart, база данных: SQLite + Drift.
В планах — добавить дашборды активности репозиториев и возможность отслеживания пакетов на Pub.dev.
@FlutterObserver_bot, запомнили?
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥5❤3
This media is not supported in your browser
VIEW IN TELEGRAM
ARB-формат во всей красе
Привет, это Роза, Flutter Dev Friflex. В последнее время я много работаю с локализацией и заметила интересную вещь: ARB-файл часто недооценен. Сейчас расскажу, что это и как работает.
Что это
ARB (Application Resource Bundle) — это, по сути, файл JSON, улучшенный для локализации, с расширением
🔴 описания контекста
🔴 примеры использования
🔴 типы данных
🔴 форматирование
Например:
Здесь ключ
🔸 context: пояснения для переводчиков и разработчиков
🔸 type: указание типа строки или ее назначения
🔸 comment: подсказки к строкам
Например:
Где используется
Во Flutter ARB-файлы тесно интегрированы с библиотекой intl, которая отвечает за локализацию.
Как это работает
1️⃣ Создаете отдельные ARB-файлы для всех языков, которые хотите поддерживать.
2️⃣ С помощью команды
3️⃣ В коде просто обращаетесь к строкам по их ключам, а перевод подставляется автоматически.
❗️ В реальных приложениях часто требуется использовать динамические значения внутри строк.
Например, вместо «Привет, Роза!» в строке может быть «Привет, {name}!»
Для этого в ARB-файлах применяются плейсхолдеры. О них я расскажу в следующем посте.
Привет, это Роза, Flutter Dev Friflex. В последнее время я много работаю с локализацией и заметила интересную вещь: ARB-файл часто недооценен. Сейчас расскажу, что это и как работает.
Что это
ARB (Application Resource Bundle) — это, по сути, файл JSON, улучшенный для локализации, с расширением
.arb
. Проще говоря, там хранятся переводы текста, которые вы видите в приложении. Помимо ключей и строк, ARB поддерживает:Например:
{
"@@locale": "ru",
"topicTitle": "Arb-формат во всей красе",
"@topicTitle": {
"description": "Заголовок для статьи про Arb-формат"
}
}
Здесь ключ
topicTitle
хранит строку, а под @topicTitle
— метаданные. При помощи метадаты вы можете указывать для ключей локализации:Например:
{
"welcome": "Добро пожаловать, {name}!",
"@welcome": {
"description": "Сообщение для приветствия",
"context": "Для нового пользователя",
"type": "Information",
"comment": "Имя {name} нельзя переводить."
}
}
Где используется
Во Flutter ARB-файлы тесно интегрированы с библиотекой intl, которая отвечает за локализацию.
Как это работает
flutter gen-l10n
генерируете Dart-код, который автоматически подтягивает правильные переводы для языка пользователя.Например, вместо «Привет, Роза!» в строке может быть «Привет, {name}!»
Для этого в ARB-файлах применяются плейсхолдеры. О них я расскажу в следующем посте.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11👍7❤6
This media is not supported in your browser
VIEW IN TELEGRAM
Привет, это Катя, Flutter Dev Friflex. Недавнее обновление Android Studio вызвало проблему на целый день. Сегодня расскажу, как сделать так, чтобы ваше рабочее окружение снова заработало без ошибок.
Проблема
После обновления с AS 2023.2.1 на AS 2024.2.1 начала появляться ошибка:
Причина
Эта ошибка возникает из-за того, что при установке новой версии Android Studio автоматически обновляется версия Java, что может нарушить совместимость.
Шаги решения
1. Установка OpenJDK 17 через brew. Установите нужную версию Java с помощью команды
brew install openjdk@17.
Подробнее о пакете можно узнать на странице установки OpenJDK через brew.
2. Переопределение JAVA_HOME в ~/.zshrc. Обратите внимание, что этот подход может не сработать, так как параметр JAVA_HOME устанавливается, но не применяется в системе. Добавьте следующую строку в ваш ~/.:
3. Проверка текущих настроек Flutter. Выполните команду:
Обратите внимание на параметр jdk-dir. Он указывает текущий путь до Java Development Kit (JDK).
4. Обновление пути до JDK. Замените текущий путь на установленную версию OpenJDK.
Например:
Если вы уже устанавливали JDK другим способом, укажите соответствующий путь.
5. Проверка конфигурации Flutter. Убедитесь, что изменения применились, выполнив:
Затем попробуйте запустить проект, чтобы проверить работоспособность.
Теперь проект должен успешно запускаться 🥳
Если вы сталкивались с подобной проблемой и решили ее иным способом, поделитесь своим опытом в комментариях!
Проблема
После обновления с AS 2023.2.1 на AS 2024.2.1 начала появляться ошибка:
ERROR: JAVA_HOME is set to an invalid directory
Причина
Эта ошибка возникает из-за того, что при установке новой версии Android Studio автоматически обновляется версия Java, что может нарушить совместимость.
Шаги решения
1. Установка OpenJDK 17 через brew. Установите нужную версию Java с помощью команды
brew install openjdk@17.
Подробнее о пакете можно узнать на странице установки OpenJDK через brew.
2. Переопределение JAVA_HOME в ~/.zshrc. Обратите внимание, что этот подход может не сработать, так как параметр JAVA_HOME устанавливается, но не применяется в системе. Добавьте следующую строку в ваш ~/.:
export JAVA_HOME=/opt/homebrew/opt/openjdk@17
3. Проверка текущих настроек Flutter. Выполните команду:
flutter config --list
Обратите внимание на параметр jdk-dir. Он указывает текущий путь до Java Development Kit (JDK).
4. Обновление пути до JDK. Замените текущий путь на установленную версию OpenJDK.
Например:
flutter config --jdk-dir /opt/homebrew/opt/openjdk@17
Если вы уже устанавливали JDK другим способом, укажите соответствующий путь.
5. Проверка конфигурации Flutter. Убедитесь, что изменения применились, выполнив:
flutter config --list
Затем попробуйте запустить проект, чтобы проверить работоспособность.
Теперь проект должен успешно запускаться 🥳
Если вы сталкивались с подобной проблемой и решили ее иным способом, поделитесь своим опытом в комментариях!
👍16❤6🔥5👌1