Forwarded from Flutter Friendly
основные_параметры_плейсхолдеров.pdf
401.6 KB
Привет, это Роза, Flutter Dev Friflex. Сегодня расскажу, как использовать ARB-файл для локализации на максимум. Что это такое и как работает, писала в этом посте.
Если вы занимаетесь локализацией приложений, то наверняка сталкивались с ситуациями, что в текстах встречаются динамические значения. Например, имя пользователя, дату или сумма денег. Чтобы не писать все это жестко в коде, в ARB-файле есть плейсхолдеры.
Что это такое
Плейсхолдеры — это метки, которые заменяются на реальные значения в runtime.
Что они содержат
🔴 denoscription — описание, которое помогает разработчикам понять контекст строки и ее назначение
🔴 example — пример использования строки
🔴 type — тип данных: String, Object, int, double, num, DateTime
Некоторые типы позволяют настроить поведение еще точнее:
🔴 Для чисел (num, int, double): параметры форматирования, такие как валюта, количество знаков после запятой
🔴 Для дат (DateTime): поддержка форматов и кастомных шаблонов для отображения дат
Например:
Здесь {amount} и {date} — плейсхолдеры, которые заменяются на реальные значения при отображении. Основные параметры плейсхолдеров — в таблице.
Виды плейсхолдеров
Виды плейсхолдеров:
1. Standard Placeholder (`{}`): для подстановок динамических значений.
2. Plural: изменяет текст в зависимости от количества объектов.
3. Select: выбирает строку в зависимости от кастомного параметра. Например, от времени суток.
4. Gender: изменяет текст в зависимости от пола
💬 Примечания
Указывайте other на случай неожиданных значений.
Plural, Select, Gender используют синтаксис ICU.
Если у вас есть свои лайфхаки или рекомендации по работе с ARB — делитесь ими в комментариях!
Если вы занимаетесь локализацией приложений, то наверняка сталкивались с ситуациями, что в текстах встречаются динамические значения. Например, имя пользователя, дату или сумма денег. Чтобы не писать все это жестко в коде, в ARB-файле есть плейсхолдеры.
Что это такое
Плейсхолдеры — это метки, которые заменяются на реальные значения в runtime.
Что они содержат
Некоторые типы позволяют настроить поведение еще точнее:
Например:
"pageHomeBalance" : "Your balance is {amount} on {date}",
"@pageHomeBalance" : {
"placeholders": {
"amount": {
"type": "double",
"format": "currency",
"example": "$1000.00",
"denoscription": "Account balance",
"optionalParameters": {
"decimalDigits": 2,
"name": "USD",
"symbol": "$",
"customPattern": "¤#0.00"
}
},
"date": {
"type": "DateTime",
"format": "yMd",
"example": "11/10/2021",
"denoscription": "Balance date"
}
}
}
Здесь {amount} и {date} — плейсхолдеры, которые заменяются на реальные значения при отображении. Основные параметры плейсхолдеров — в таблице.
Виды плейсхолдеров
Виды плейсхолдеров:
1. Standard Placeholder (`{}`): для подстановок динамических значений.
2. Plural: изменяет текст в зависимости от количества объектов.
3. Select: выбирает строку в зависимости от кастомного параметра. Например, от времени суток.
4. Gender: изменяет текст в зависимости от пола
💬 Примечания
Указывайте other на случай неожиданных значений.
Plural, Select, Gender используют синтаксис ICU.
Если у вас есть свои лайфхаки или рекомендации по работе с ARB — делитесь ими в комментариях!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥3
Всем привет, на выходных допиливал бота), сделал:
1. Отображение последней релизной версии Flutter и Dart (просьба подписчика).
2. Переработал работу пула изолятов для равномерной нагрузки.
3. Переработал алгоритм обновления и получения данных.
4. Добавлена команда /about — информация о боте.
5. Более информативное сообщение о выходе новых релизов Flutter/Dart.
Если есть функционал, который бы вы хотели видеть в боте, пишите)
@FlutterObserver_bot
1. Отображение последней релизной версии Flutter и Dart (просьба подписчика).
2. Переработал работу пула изолятов для равномерной нагрузки.
3. Переработал алгоритм обновления и получения данных.
4. Добавлена команда /about — информация о боте.
5. Более информативное сообщение о выходе новых релизов Flutter/Dart.
Если есть функционал, который бы вы хотели видеть в боте, пишите)
@FlutterObserver_bot
🔥6❤3👍3
Ну что, ребята, готовы?)
21 февраля в Москве пройдет Профессиональная Flutter-конференция!
FlutterConf — это уникальная возможность для Flutter-разработчиков углубить свои знания и обменяться опытом в области мобильной разработки.
Что в программе?
- Два потока докладов про реальные кейсы с нестандартными требованиями; архитектурные решения и инструменты для Flutter-проектов;
- Нетворкинг-события – полезные знакомства;
- Круглый стол: прошлое, настоящее и будущее Flutter;
- Афтепати – отдохнуть от продуктивного дня и неформально пообщаться с коллегами.
Я вместе с Аней будем выступать с докладом «Router во Flutter. Когда думал, что всё легко», где расскажем про концепцию декларативного роутера.
Регистрация участников и подача докладов открыты на сайте.
Специальный промокод на скидку 10%:
СПИКЕР10
Присоединяйся — будут все свои!
21 февраля в Москве пройдет Профессиональная Flutter-конференция!
FlutterConf — это уникальная возможность для Flutter-разработчиков углубить свои знания и обменяться опытом в области мобильной разработки.
Что в программе?
- Два потока докладов про реальные кейсы с нестандартными требованиями; архитектурные решения и инструменты для Flutter-проектов;
- Нетворкинг-события – полезные знакомства;
- Круглый стол: прошлое, настоящее и будущее Flutter;
- Афтепати – отдохнуть от продуктивного дня и неформально пообщаться с коллегами.
Я вместе с Аней будем выступать с докладом «Router во Flutter. Когда думал, что всё легко», где расскажем про концепцию декларативного роутера.
Регистрация участников и подача докладов открыты на сайте.
Специальный промокод на скидку 10%:
СПИКЕР10
Присоединяйся — будут все свои!
👍6🔥2
Forwarded from Flutter Friendly
К нам едет ревизор, или как пройти проверку на защиту критических данных в приложении на Flutter
Анна, Flutter Team Lead Friflex, в этой статье разобрала 7 основных вещей, которые больше всего волнуют аудиторов.
🔸 Можно ли запустить приложение в небезопасной среде — на root/jailbreak устройствах и на эмуляторах?
🔸 Какие библиотеки внедряются в проект?
🔸 В каком виде и где хранятся критические данные?
🔸 Какие разрешения запрашивает приложение?
🔸 Доступно ли превью страницы с чувствительными данными в фоновом режиме?
🔸 Доступен ли запуск приложения, установленного из недоверенного источника?
🔸 Актуальна ли версия Flutter?
Теперь вы на шаг ближе к прохождению аудита.
Анна, Flutter Team Lead Friflex, в этой статье разобрала 7 основных вещей, которые больше всего волнуют аудиторов.
Теперь вы на шаг ближе к прохождению аудита.
Please open Telegram to view this post
VIEW IN TELEGRAM
Хабр
7 вещей, которые больше всего волнуют аудиторов в модуле критических данных Flutter-приложения
Привет, Хабр! Меня зовут Анна Ахлестова, я Flutter Team Lead в компании Friflex . Сегодня расскажу про защиту критических данных в приложении на Flutter — это один из модулей, которые аудиторы...
❤4👍3
Forwarded from Flutter Friendly
This media is not supported in your browser
VIEW IN TELEGRAM
Привет, это Катя, Flutter Dev Friflex. Сегодня расскажу, как пользоваться режимом выбора виджетов (Select Widget Mode) из Flutter Inspector. А еще обсудим кнопку сброса выбранного виджета, о которой, как показала практика, не все знают.
Flutter Inspector — это инструмент, встроенный в Flutter DevTools, который позволяет разработчикам анализировать и отлаживать пользовательский интерфейс. С его помощью можно:
🔴 видеть иерархию виджетов
🔴 проверять размеры и отступы
🔴 изменять свойства виджетов в реальном времени
Что такое Select Widget Mode?
Select Widget Mode (SWM) — это режим, который позволяет вам выбирать виджеты в вашем приложении, чтобы увидеть их свойства и структуру.
Чтобы активировать этот режим:
1️⃣ Запустите ваше приложение
2️⃣ Откройте DevTools
3️⃣ Выберите вкладку Flutter Inspector
4️⃣ Нажмите на кнопку «Select Widget Mode» (в левом верхнем углу)
Как использовать SWM?
Достаточно нажать на любой виджет в приложении, чтобы увидеть его свойства, которые можно изменить. Это ускоряет процесс разработки и тестирования в реальном времени.
Пример исправления отступов:
Объявляю контейнер с паддингом 20 со всех сторон:
Мне нужно убрать вертикальный паддинг и посмотреть, как это будет выглядеть. Для этого использую SWM, выбираю контейнер и изменяю отступ в реальном времени на:
Важно: многие не знают о кнопке сброса, которая находится в левом нижнем углу приложения. Она появляется после первого нажатия на любой виджет в SWM. С ее помощью не нужно каждый раз перезапускать приложение, чтобы выбрать другой элемент на экране.
Документацию по DevTools можно посмотреть здесь
Flutter Inspector — это инструмент, встроенный в Flutter DevTools, который позволяет разработчикам анализировать и отлаживать пользовательский интерфейс. С его помощью можно:
Что такое Select Widget Mode?
Select Widget Mode (SWM) — это режим, который позволяет вам выбирать виджеты в вашем приложении, чтобы увидеть их свойства и структуру.
Чтобы активировать этот режим:
Как использовать SWM?
Достаточно нажать на любой виджет в приложении, чтобы увидеть его свойства, которые можно изменить. Это ускоряет процесс разработки и тестирования в реальном времени.
Пример исправления отступов:
Объявляю контейнер с паддингом 20 со всех сторон:
Container(
Text: padding: EdgeInsets.all(20.0),
child: Text('Привет, Flutter Friendly!'),
)
Мне нужно убрать вертикальный паддинг и посмотреть, как это будет выглядеть. Для этого использую SWM, выбираю контейнер и изменяю отступ в реальном времени на:
EdgeInsets.symmetric(horizontal: 20.0)
Важно: многие не знают о кнопке сброса, которая находится в левом нижнем углу приложения. Она появляется после первого нажатия на любой виджет в SWM. С ее помощью не нужно каждый раз перезапускать приложение, чтобы выбрать другой элемент на экране.
Документацию по DevTools можно посмотреть здесь
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5❤3
Вольный перевод от Яндекс .pdf
3.2 MB
Пацаны к успеху шли, не получилось, не пошло )
Макросы отменяются.
https://medium.com/dartlang/an-update-on-dart-macros-data-serialization-06d3037d4f12
Макросы отменяются.
https://medium.com/dartlang/an-update-on-dart-macros-data-serialization-06d3037d4f12
😢4👍3
Forwarded from Flutter Observer
🎉 A new version has been released!
✅ Dart: 3.6.2
📜 Additional information:
✅ Release date: 2025-01-29
✅ Hash: 42f3fc1c648bc66e56c822a95e6139bb116020c3
🔗 Links:
✅ URL commit: https://github.com/dart-lang/sdk/commit/42f3fc1c648bc66e56c822a95e6139bb116020c3
✅ URL tags: https://github.com/dart-lang/sdk/releases/tag/3.6.2
✅ Dart: 3.6.2
📜 Additional information:
✅ Release date: 2025-01-29
✅ Hash: 42f3fc1c648bc66e56c822a95e6139bb116020c3
🔗 Links:
✅ URL commit: https://github.com/dart-lang/sdk/commit/42f3fc1c648bc66e56c822a95e6139bb116020c3
✅ URL tags: https://github.com/dart-lang/sdk/releases/tag/3.6.2
GitHub
Version 3.6.2 · dart-lang/sdk@42f3fc1
Change-Id: I8930c712e8358b1d253b900eb13eb10869340d3e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/406520
Commit-Queue: Slava Egorov <vegorov@google.com>
Auto-Submit: Alex...
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/406520
Commit-Queue: Slava Egorov <vegorov@google.com>
Auto-Submit: Alex...
🔥6
Forwarded from MADTeacher | Станислав Чернышев
Записал видео на ютуб про отмену макросов и как это отразится на Dart в ближайшее время 😎
Если этот пост наберет 150 💩, скину на этот канал сжатый вариант видео, чтобы можно было его посмотреть в телеге 😇
p.s. Если не в курсе откуда такие требования, см. этот пост и пару следующих под ним 🫠
Если этот пост наберет 150 💩, скину на этот канал сжатый вариант видео, чтобы можно было его посмотреть в телеге 😇
p.s. Если не в курсе откуда такие требования, см. этот пост и пару следующих под ним 🫠
YouTube
Макросы в Dart отменены... Что дальше?
Команда Dart официально объявила: разработка макросов остановлена.
После нескольких лет экспериментов выяснилось, что их реализация слишком сильно замедляет компиляцию и ухудшает разработческий опыт (о чем я не раз писал и говорил на Crossconf 2024). У…
После нескольких лет экспериментов выяснилось, что их реализация слишком сильно замедляет компиляцию и ухудшает разработческий опыт (о чем я не раз писал и говорил на Crossconf 2024). У…
👏1🐳1
Forwarded from Friflex Dev
Мы искренне любим Flutter и готовы рекомендовать его всем, кто хочет начать карьеру в IT. Почему? Ответ — на карточках!
А ты уже в игре?
❤️ — разрабатываю на Flutter
🔥 — пока еще выбираю
👍 — поклонник другого фреймворка
А ты уже в игре?
❤️ — разрабатываю на Flutter
🔥 — пока еще выбираю
👍 — поклонник другого фреймворка
❤32🔥4
Свершилось, вчера apple открыла движок для сборки который используется в XCode.
А это значит, что теперь любой может создать свой XCode).
Ждем плагин на VSCode 😊
https://www.swift.org/blog/the-next-chapter-in-swift-build-technologies/
https://github.com/swiftlang/swift-build
А это значит, что теперь любой может создать свой XCode).
Ждем плагин на VSCode 😊
https://www.swift.org/blog/the-next-chapter-in-swift-build-technologies/
https://github.com/swiftlang/swift-build
Swift.org
The Next Chapter in Swift Build Technologies
Swift continues to grow in popularity as a cross-platform language supporting a wide variety of use cases, with support on a variety of embedded devices, form factors that encompass wearables to server, and a wide variety of operating systems. As Swift expands…
👍8🔥6
Всем привет, по просьбам подписчиков на выходных обновил ботика-наблюдателя @FlutterObserver_bot
- добавил русский язык;
- Flutter — добавил отслеживания ветки beta;
- Dart — добавил отслеживания ветки beta и dev;
- cводка — добавил подробное описание текущих версий.
Чтобы избежать ошибок, не забывайте перезапускать ботика командой
/start.
- добавил русский язык;
- Flutter — добавил отслеживания ветки beta;
- Dart — добавил отслеживания ветки beta и dev;
- cводка — добавил подробное описание текущих версий.
Чтобы избежать ошибок, не забывайте перезапускать ботика командой
/start.
🔥10👍5