
- Главная
- Каталог
- Интернет технологии
- Библиотека мобильного разработчика
Библиотека мобильного разработчика
Полезные материалы по всему, что может быть интересно мобильному разработчику.
Статистика канала
Локализация — важная часть многих iOS-приложений. Раньше для этого использовались файлы
Localizable.strings и Localizable.stringsdict. Они работают, но требуют ручного контроля и часто приводят к пропущенным или устаревшим ключам.String Catalogs (файлы с расширением
.xcstrings) упрощают этот процесс, интегрируя управление локализацией прямо в Xcode.🔹 Что такое String Catalog?
Это единый структурированный файл (обычно
Localizable.xcstrings), который хранит все переводы. Внутри — JSON, но в Xcode он открывается в удобном редакторе, где можно управлять всеми языками в одном месте.Пример структуры:
{
"sourceLanguage": "en",
"strings": {
"loginButton.title": {
"localizations": {
"de": { "stringUnit": { "state": "translated", "value": "Einloggen" } },
"en": { "stringUnit": { "state": "translated", "value": "Login" } }
}
}
}
}
🔹 Автоматическое обнаружение локализуемых строк
Самая удобная фича — Xcode сам сканирует код при сборке и добавляет найденные ключи в каталог.
Text("loginButton.title") // Xcode создаст entry автоматически
Если нужно передавать строки по коду, используйте
LocalizedStringResource — это сохранит автоматическое обнаружение.🔹 Ручное управление
Иногда Xcode не может определить ключ, например, при динамическом построении:
Text("loginButton." + state)
В таких случаях ключи нужно добавлять вручную. После переключения на ручной режим Xcode больше не будет автоматически изменять или удалять такой entry.
🔹 Состояния String Catalog
У каждого ключа есть состояние, которое видно в редакторе:
Если ключ стал
stale, его можно удалить или переключить в ручное управление.🔹 Как переименовать ключ без потери переводов
Со временем нейминг ключей может меняться. Допустим, мы решили переименовать
loginButton.title в login.button.title.Если просто поменять строку в коде, Xcode создаст новый ключ, а старый пометит как
stale. Переводы придётся копировать вручную.Правильный способ: переименовать ключ прямо в редакторе String Catalog. Xcode обновит все ссылки в коде автоматически, а переводы останутся на месте.
🔹 Итог
String Catalogs — это современный и удобный подход к локализации. Он избавляет от рутины, снижает риск ошибок и тесно интегрирован в экосистему Xcode. Автоматическое обнаружение строк и безопасное переименование ключей особенно выручают в больших проектах с несколькими языками.
#АрхитектурныйКод #MiddlePath #Swift
В карточках показали рассказали, почему спам тимлидам, автоотклики и выдуманные офферы — это ваша новая реальность, если вы хотите получить нормальное место в 2026 году.
#MadeInProglib
С помощью встроенной глобальной функции zip() можно соединить два массива в объект Zip2Sequence, который затем передается в инициализатор типа Dictionary:
let countries = ["Iran", "Iraq", "Syria", "Lebanon"]
let capitals = ["Tehran", "Bagdad", "Damascus", "Beirut"]
var seq = zip(countries, capitals)
var dict = Dictionary(uniqueKeysWithValues:seq)
for (key, value) in dict {
print("\(key) - \(value)")
}
В данном случае каждый элемент из массива countries последовательно сопоставляется с соответствующим элементом из массива capitals. Затем результат через параметр
uniqueKeysWithValues передается в инициализатор Dictionary. И таким образом образуется словарь. Результат программы:Iran - Tehran Iraq - Bagdad Syria - Damascus Lebanon - Beirut
Стоит учитывать, что если у нас в обоих массивах есть повторяющиеся значения, то подобный способ их объединения завершится с ошибкой, ведь в словаре все ключи должны быть уникальными. И для этого надо использовать другую форму инициализатора Dictionary:
let countries = ["Iran", "Iraq", "Syria", "Lebanon", "Iran"]
let capitals = ["Tehran", "Bagdad", "Damascus", "Beirut", "Tehran"]
var seq = zip(countries, capitals)
var dict = Dictionary(seq, uniquingKeysWith:{return $1})
for (key, value) in dict {
print("\(key) - \(value)")
}
В данном случае в инициализатор в качестве первого параметра опять же передается объединенные последовательности. А второй параметр
uniquingKeysWith указывает на функцию, которая получает все значения из второго массива, которые соответствуют повторяющемуся ключу. В нашем случае это два элемента. И затем нам надо возвратить какой-нибудь результат. Здесь просто возвращается значение второго параметра.#буст #JuniorKit #Swift
Приготовили для вас дайджест по актуальному из мира iOS, Android и кроссплатформы.
Когда эти компоненты понятны, паттерн становится мощным инструментом при проектировании высокопроизводительных структур данных в Swift.
Давайте вернемся в будущее и посмотрим, что может предложить Remote Compose.
В этой статье автор расскажет о том как подружить ИИ-агентов с интеграционными тестами Flutter, какой инструмент пришлось для этого написать и что вообще из этого вышло.
#свежак
Ну, то есть написать пет-проект с вызовом API это задача на вечер, а вот запустить агента в продакшн так, чтобы он не сжёг бюджет отдела за неделю — суровая инженерия.
По сути, сейчас мало уметь собирать RAG. Нужно считать токены, настраивать
time-travel дебаг в LangGraph и уметь роутить запросы на лету. Всё это мы учли в обновлённом курсе по разработке AI-агентов, где акцент сделан именно на AgentOps и жёсткий контроль ресурсов.Также в программе:
— оценка качества, трейсинг и защита от деградации пайплайнов;
— мультиагентные паттерны и интеграция по протоколу
MCP;— локальный деплой Open Source под 152-ФЗ (когда данные нельзя выносить наружу).
Кажется, это единственный адекватный roadmap по переходу от блокнотов к enterprise-решениям.
Прямо сейчас можно урвать курс с увесистой скидкой
👉 Зафиксировать цену и начать собирать агентов, за которых не стыдно в проде
Хотите, чтобы ваше приложение всегда показывало свежий контент без необходимости обновления через магазин? Этот промпт поможет реализовать OTA-обновления и динамическую загрузку контента.
Implement over-the-air (OTA) content updates for a mobile app that includes:
— Set up remote configuration service (Firebase Remote Config)
— Implement version checking and rollouts
— Add dynamic feature delivery for modular updates
— Handle AB testing with feature flags
— Manage bundle and asset downloading with progress
— Implement fallback strategies for failed updates
— Add analytics for update adoption
— Добавьте
Implement forced updates for critical changes для обязательных обновлений— Добавьте
Add partial updates to minimize download size для экономии трафика— Добавьте
Implement staged rollouts with user segmentation для безопасных релизов#буст #MiddlePath
Отзывы канала
всего 2 отзыва
- Добавлен: Сначала новые
- Добавлен: Сначала старые
- Оценка: По убыванию
- Оценка: По возрастанию
Каталог Телеграм-каналов для нативных размещений
Библиотека мобильного разработчика — это Telegam канал в категории «Интернет технологии», который предлагает эффективные форматы для размещения рекламных постов в Телеграмме. Количество подписчиков канала в 9.4K и качественный контент помогают брендам привлекать внимание аудитории и увеличивать охват. Рейтинг канала составляет 9.3, количество отзывов – 2, со средней оценкой 5.0.
Вы можете запустить рекламную кампанию через сервис Telega.in, выбрав удобный формат размещения. Платформа обеспечивает прозрачные условия сотрудничества и предоставляет детальную аналитику. Стоимость размещения составляет 20559.42 ₽, а за 9 выполненных заявок канал зарекомендовал себя как надежный партнер для рекламы в TG. Размещайте интеграции уже сегодня и привлекайте новых клиентов вместе с Telega.in!
Вы снова сможете добавить каналы в корзину из каталога
Комментарий