AppFiles - Mobile Development – Telegram
AppFiles - Mobile Development
2.13K subscribers
2.76K photos
38 videos
11 files
3.69K links
Библиотеки, обучающие статьи, курсы и видео для (мобильных) разработчиков. Если есть вопросы - пишите @lbogolubov.
Download Telegram
Androidify: создание AI first Android-приложений с Gemini, Jetpack Compose и Firebase

Androidify — это новое “референсное” приложение Google, которое позволяет вам создать собственного Android-бота, используя селфи и искусственный интеллект. С сегодняшнего дня приложение доступно в веб-версии или в виде приложения в Google Play. В новом Androidify вы можете загрузить селфи или написать подсказку о том, что вам нужно, добавить аксессуары и наблюдать, как искусственный интеллект создаёт вашего уникального бота. В этой статье Google рассказывает про API искусственного интеллекта и инструментах Android, которые разработчики использовали при создании приложения.

Статья: https://android-developers.googleblog.com/2025/09/androidify-ai-gemini-android-jetpack-compose-firebase-camerax.html
Платформа: Android
👍1
Flow-контейнеры в Compose

FlowRow и FlowColumn — это composables, похожие на Row и Column, но с одним ключевым отличием: элементы автоматически переносятся на следующую строку, когда в контейнере заканчивается место. Такое поведение создает несколько строк или столбцов, позволяя создавать более адаптивные интерфейсы, в которых контент не обрезается, если элементы слишком велики для одного измерения. Они особенно полезны для создания таких элементов интерфейса, как набор «чипов» или фильтров, где элементы должны переноситься на следующую строку по мере уменьшения пространства на экране.

В этой статье мы подробно рассмотрим возможности flow-контейнеров, узнаем, как управлять расположением элементов, выравнивать их по отдельности и использовать «веса» (weights) для создания адаптивных сеточных структур.

Статья: https://apptractor.ru/info/articles/flow-konteynery-v-compose.html
Платформа: Android
1
AwaitlessKit - синхронные обёртки для async функций

AwaitlessKit предоставляет макросы Swift для автоматической генерации синхронных обёрток для async функций, упрощая вызов новых асинхронных API из существующего неасинхронного кода. Это помогает постепенно внедрять async/await, не нарушая работу старых API и не переписывая всё сразу.

AwaitlessKit на GitHub: https://github.com/bonkey/AwaitlessKit
Платформа: iOS
⭐️: 3
👍1
📺 Видео и подкасты за неделю @AppFiles

(iOS En) iOS 26 Lock Screen Carousel With Reflection Effect Using SwiftUI
(iOS En) How to hide the content of a view in a screenshot (iOS tutorial)
(iOS En) Swift concurrency for curious Kotliners
(iOS En) SwiftUI: How To Seamlessly Morph Liquid Glass Shapes
(iOS En) Auto Resizing Dynamic Sheets Using SwiftUI
(iOS En) Mastering Liquid Glass in SwiftUI – Buttons, Containers & Transitions
(And Ru) Облегчаем жизнь больших экранов на Compose
(And Ru) Разбор MAX программистом
(And Ru) ProGuard — Стандарт Мобильной Безопастности?
(And Ru) Ты готов к собеседованию в Альфа-Банк? Интервью мобильного разработчика
(And En) TheAndroidShow: The latest for devs from Made by Google, Gemini in Android Studio, a new Androidify
(And En) What's new in Android Studio Narwhal 3 Feature Drop
(And En) Androidify app deep dive
(And En) Bring your most expressive apps to the wrist: Wear OS 6 and the new Pixel Watch 4
(And En) Connect Model Context Protocol (MCP) servers to Android Studio to improve AI agent capabilities
(And En) Now in Android: 121 – Android Studio Narwhal, Android 16 QPR2 beta, and more
(And En) Build your Kotlin and Android apps with Buck2
(And En) Exposed inline value classes for Java in Kotlin 2.2
(And En) Kotlin Worst Practices — How to Maximize Your Hassle
(And En) Putting Kotlin Flows Together
(And En) Develocity Analytics: Get end-to-end visibility into your build process
(Crs En) Blueprints for Scale: What AWS Learned Building a Massive Multiplatform Project
(Crs En) Lessons learned decoupling Architecture Components from platform specific code
(Dev Ru) Лучший билд команды и проекта в IT
(Dev Ru) DevRel в мобильной разработке: между платформами, комьюнити и командой
(Dev Ru) Числа в программировании — Почему компьютер не понимает 0.1 + 0.2
(Dev En) How You Use an AI Coding Agent the RIGHT Way For Mobile Development
(Dev En) Introducing EmbeddingGemma: The Best-in-Class Open Model for On-Device Embeddings

Прошлогодние видео:

(And Ru) Организация кода в проекте — в какой пакет положить Kotlin класс
(Dev Ru) Архитектурное собеседование — по обе стороны баррикад (+ все собеседования)
(Dev Ru) Backend-Driven UI и конструкторы. Благо или зло?
(Dev Ru) Открытое собеседование — технический руководитель: разбор кейса
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Жизненный цикл UIViewController в 2025 году: что изменилось и что устарело

В 2022 году я написал статью «Жизненный цикл UIViewController», где подробно разобрал порядок вызова методов и основные сценарии работы с ними.

С тех пор прошло больше трёх лет, и в iOS появилось несколько изменений, которые делают старую статью уже не до конца актуальной.

• Некоторые методы вышли из практики (например, viewDidUnload или didReceiveMemoryWarning). Первый был удалён из API, второй формально остаётся частью UIViewController, но в современных версиях iOS практически не используется.
• Добавились новые хуки (viewIsAppearing, viewSafeAreaInsetsDidChange, viewLayoutMarginsDidChange).
• Появился полноценный Scene lifecycle для работы с многозадачностью и мультиоконностью.
• Лучшие практики работы с Auto Layout тоже немного изменились.

В этой статье я собрал актуальное руководство по жизненному циклу UIViewController на 2025 год.

Статья: https://habr.com/ru/articles/943778/
Платформа: iOS
👍2
Мой путь новичка в разработке: FreeSpace — мобильное приложение для любителей космоса

Меня зовут Маша, я выпускница «IT Школы Samsung». Хочу рассказать о своём проекте — мобильном приложении FreeSpace, которое объединяет новости о космосе, интерактивную карту и сообщество энтузиастов. Это не просто рассказ о коде, но и история моего пути в Android-разработке.

Статья: https://habr.com/ru/companies/samsung/articles/943884/
Платформа: Android
1
This media is not supported in your browser
VIEW IN TELEGRAM
Reveal - эффект подсветки (обучающие подсказки) для Compose Multiplatform

Reveal  - библиотека для организации онбординга или пошагового руководства с прекрасным API для Compose Multiplatform, ориентированным на Android, iOS, ПК и веб. Все платформы, кроме Android, правда, не очень хорошо протестированы.

Reveal на GitHub: https://github.com/svenjacobs/reveal
Платформа: Android
⭐️: 554
2
Как правильно отлаживать iOS-приложения

Пообщавшись с десятками iOS-разработчиков на конференциях и встречах, я обнаружил, что около 80% из нас до сих пор используют устаревшие методы отладки. Мы игнорируем мощные инструменты, которые уже давно существуют в Xcode и ждут, когда же они смогут преобразить наш процесс разработки.

Итак, позвольте мне сэкономить вам пять лет проб и ошибок, которые я провёл в процессе отладки. Вот всё, что я хотел бы услышать от кого-то с самого начала о правильной отладке приложений на Swift.

Статья: https://apptractor.ru/info/articles/kak-pravilno-otlazhivat-ios-prilozheniya.html
Платформа: iOS
👍1
Voyager - фреймворк для навигации и маршрутизации в SwiftUI

Voyager - фреймворк для навигации и маршрутизации в SwiftUI. Voyager позволяет разработчикам снабдить свои приложения на базе SwiftUI маршрутизацией, которая применяется не только к навигации, но и к вкладкам. Кроме того, внедрив в маршрутизатор DeeplinkHandler, вы сможете обрабатывать любые глубокие ссылки, которые будут представлять какой-либо маршрут от этого маршрутизатора.

Voyager на GitHubhttps://github.com/bryan-vh/Voyager
Платформа: iOS
⭐️: 19
👍2
10 SwiftUI-хаков для более чистых приложений

Вам не нужно мириться с повторениями. С помощью нескольких умных расширений и шаблонов вы можете сделать код SwiftUI чище, короче и при этом таким же мощным. Вот десять небольших трюков, которые незаметно избавят вас от ненужных элементов, придав коду вашего приложения элегантный вид.

Статья: https://apptractor.ru/info/articles/10-swiftui-hakov-dlya-bolee-chistyh-prilozheniy.html
Платформа: iOS
👍3
Освоение условных макетов в Jetpack Compose: гибкий подход

Создание динамических пользовательских интерфейсов часто подразумевает адаптацию к различным размерам экрана и содержимому. Узнайте, как грамотно отображать или скрывать компонуемые элементы в зависимости от доступного пространства, без жёстко заданных значений.

Статья: https://proandroiddev.com/mastering-conditional-layouts-in-jetpack-compose-the-flexible-way-8660d6e5dd0f
Платформа: Android
1
SkyHigh 16KB Doctor - помощь в миграции на 16 Кб

Для Android-разработчиков, использующих нативные библиотеки, появилось новое требование Google Play: обеспечить поддержку 16-килобайтных страниц памяти для приложений, нацеленных на Android 15. Ручная проверка и обновление каждой .so библиотеки может стать сложной задачей. SkyHigh 16KB Doctor - плагин Gradle, который сканирует Android APK/AAB на наличие нативных библиотек .so, проверяет значения ELF p_align (целевое значение для 16 КБ страниц), сопоставляет библиотеки с владельцами (модуль или зависимость) и создает удобные для машины и человека отчеты.

SkyHigh 16KB Doctor на GitHub: https://github.com/sparrow007/skyhigh-16kb-doctor
Платформа: Android
⭐️: 18
4
Писать код легко. Читать его — нет.

Ментальная модель — это то, что вы создаёте, читая код. Это ваша внутренняя карта того, как работает система, где находятся сложные части, что от чего зависит. Без неё вы просто смотрите на строки текста.

Статья: https://apptractor.ru/info/articles/pisat-kod-legko-chitat-ego-net.html
Платформа: разработка
1
Повышение производительности приложения за счет лучшего сокращения ресурсов

Новый подход улучшает сокращение ресурсов за счёт полной интеграции с существующим конвейером оптимизации кода. В новом подходе R8 одновременно оптимизирует как код, так и ссылки на ресурсы, гарантируя, что все ресурсы, на которые ссылается исключительно неиспользуемый код, идентифицируются как неиспользуемые и затем удаляются. Это полностью устраняет необходимость в безусловных правилах сохранения (unconditional keep rules), генерируемых AAPT2 (инструментом упаковки ресурсов для Android), и предоставляет гораздо более детальную и точную информацию для удаления неиспользуемого кода и ресурсов.

Статья: https://apptractor.ru/info/articles/povyshenie-proizvoditelnosti-prilozheniya-za-schet-luchshego-sokrascheniya-resursov.html
Платформа: Android
1
Translate Genie - генерация переводов в задаче Gradle

Translate Genie - мощная библиотека для Android, которая автоматически генерирует переводы для всех ваших строковых ресурсов с помощью простой задачи Gradle. 

Фичи: 

• Автоматический перевод: переводит строки, массивы строк и формы множественного числа из файла strings.xml по умолчанию
• Различные типы ресурсов: поддерживает элементы <string>, <string-array> и <plurals>
• Настраиваемость: простая конфигурация параметров перевода на основе JSON
• Поддержка нескольких проектов: автоматическая обработка всех проектов в сборке Gradle
• Умная обработка: атрибуты, комментарии и структура XML, экранирование специальных символов
• Восстановление после ошибок: обработка продолжается даже при сбое отдельных переводов.
• Безопасность: использует безопасный парсинг XML для предотвращения XXE-атак

Translate Genie на GitHub: https://github.com/sarimmehdi/Translate-Genie
Платформа: Android
⭐️: 2
👍2
Compose + Koin + Jetpack Navigation: что мы поняли за 2 года

Сегодня поделюсь нашим опытом развития архитектуры приложения на Jetpack Compose: с какими ограничениями мы столкнулись, как укротили навигацию от Google и какими молитвами всё это подружили с Koin. В начале мы затронем структуру модулей, затем обсудим скоупы в Koin для многомодульных проектов, и завершим это все библиотекой Jetpack Navigation.

Статья: https://habr.com/ru/companies/wildberries/articles/939526/
Платформа: Android
🔥2
Media Picker - настраиваемый медиа пикер на SwiftUI

Media Picker - кастомный медиа пикер на SwiftUI с  возможностью съемки. Функции: выбор фото и видео, один или несколько файлов, полноэкранный режим, Live photo превью и съемка, полная настройка.

Media Picker на GitHub: https://github.com/exyte/MediaPicker
Платформа: iOS
⭐️: 410
👍1
OuterTune - музыкальный плеер для Android

OuterTune - музыкальный плеер для Android в Material 3. Умеет проигрывать музыку с YouTube Music и локальные файлы (MP3, OGG, FLAC и т.п.), получать и синхронизировать слова песен, нормализовать аудио, использовать аудио-эффекты, поддерживать Android Auto.

OuterTune на GitHub: https://github.com/OuterTune/OuterTune
Платформа: Android
⭐️: 2.6K
👍2
📺 Видео и подкасты за неделю @AppFiles

(iOS En) Sticky Header For List View - SwiftUI
(iOS En) Notification OnBoarding Animation Using SwiftUI
(iOS En) iOS 26 Lock Screen Carousel With Reflection Effect Using SwiftUI
(And Ru) 20 секретов Android, спрятанных в настройках разработчика
(And En) How to migrate to 16 KB pages
(And En) Is Google going even more downhill with Android? - No more side-loading of Android apps
(And En) Dependencies and Kotlin Native
(And En) Code Quality at Scale: Future Proof Your Android Codebase with KtLint and Detekt
(And En) The Life and Death of a Kotlin Native Object
(And En) Get inspiration and learn from the Best - Patterns for Success
(And En) Create custom CI/CD metrics: Analyzing build performance with Develocity Analytics
(Crs En) Two Years with Kotlin Multiplatform: From Zero to 55% Shared Code
(Dev Ru) SQLite. Невероятно быстро
(Dev Ru) IT рынок умер
(Dev Ru) Какие угрозы несет AI — AI Safety, AGI, AI Alignment
(Dev Ru) Управление изменениями
(Dev En) Learn to Build with Gemini Nano-Banana (Gemini 2.5 Flash Image)
(Dev En) Godot Game Development for Beginners
(Mrk En) Как найти ключевые слова, которые действительно сработают

Прошлогодние видео:

(iOS Ru) Эволюция презентационных паттернов SwiftUI
(And Ru) «Ленивый граф», или Как мы оптимизировали старт приложения
(And Ru) В сетях сетевого слоя
(Crs Ru) Многомодульное приложение на Flutter
(Dev Ru) Junior-разработчики — обучение программированию, тестовое задание
Please open Telegram to view this post
VIEW IN TELEGRAM
Стратегии определения области действия компонентов: профессиональное управление зависимостями

В статье рассматриваются стратегии определения области видимости компонентов (component scoping) в разработке программного обеспечения, что является ключевым аспектом управления зависимостями. Автор сравнивает этот процесс с организацией работы ресторана: как шеф-повара не заставляют варить кофе, так и в приложении дорогостоящие объекты, вроде подключения к базе данных или сетевого клиента, не должны создаваться заново для каждой мелкой задачи. Определение области видимости помогает установить жизненный цикл зависимости, её доступность и правила создания/уничтожения, что напрямую влияет на производительность, использование памяти и тестируемость приложения.

Статья: https://blog.stackademic.com/component-scoping-strategies-managing-dependencies-like-a-pro-8f51324e9c91 (как читать ©)
Платформа: Android
2
Scout - ведение логов в CloudKit

Scout — это мощная платформа для ведения логов. Она поддерживает различные уровни логирования, форматы вывода и места размещения, что упрощает интеграцию и настройку в соответствии с вашими потребностями. Независимо от того, разрабатываете ли вы небольшой проект или масштабную систему, Scout гарантирует наличие подробных и структурированных логов для эффективного мониторинга и отладки приложений.

Scout предлагает бесшовную интеграцию с CloudKit, позволяя вам легко хранить и управлять логами в облаке. Используя CloudKit, вы можете:

• Централизовать хранение: хранить журналы с нескольких устройств и приложений в одном централизованном месте
• Получать доступ в режиме реального времени: получать доступ к журналам в режиме реального времени из любой точки мира, обеспечивая оперативный мониторинг производительности и проблем ваших приложений
• Масштабировать логи: использовать масштабируемость CloudKit для обработки больших объемов данных журналов без ущерба для производительности
• Сделать логи безопасными: обеспечить безопасное хранение и передачу ваших логов в соответствии со стандартами безопасности

Scout на GitHub: https://github.com/kasianov-mikhail/scout
Платформа: iOS
⭐️: 18
👍1