AppFiles - Mobile Development
رفتن به کانال در Telegram
Библиотеки, обучающие статьи, курсы и видео для (мобильных) разработчиков. Если есть вопросы - пишите @lbogolubov.
نمایش بیشتر2 167
مشترکین
+124 ساعت
+17 روز
+930 روز
آرشیو پست ها
Кастомная сериализация с помощью kotlinx.serialization
Сегодня расскажу о JSON Schema и как мы используем эту спецификацию на проекте, а также о библиотеке kotlinx.serialization и том, как она упростила нам работу со схемами. Статья будет полезна разработчикам, которые интересуются библиотекой kotlinx.serialization и хотят глубже узнать её устройство.
Статья: https://habr.com/ru/companies/okko/articles/961848/
Платформа: Android
Публикация PWA в App Store и Play Store на github actions
Понадобилось мне как-то раз сделать из PWA мобильные приложения. Приключение на 20 минут, зашли и вышли - подумал я и пропал на пару месяцев. В статье будет гремучая смесь из Java, C#, NodeJS, Swift, bash, Dockerfile и github actions. Но в результате возможность непрерывно поставлять свежие сборки в магазины приложений.
Статья: https://habr.com/ru/articles/855830/
Платформа: разработка
Nice Toast - красивы и настраиваемые тосты для Android
Nice Toast — это потрясающая и легко настраиваемая библиотека для создания уведомлений, доступная как для традиционных View, так и для Jetpack Compose. Повысьте удобство использования своего приложения, заменив стандартные тосты привлекательными, анимированными и информативными уведомлениями, которые отлично смотрятся как в светлой, так и в тёмной темах оформления.
Нужно ли вам отображать сообщение об успешном завершении процесса, ошибку, предупреждение или просто какую-то информацию, NiceToast предлагает разнообразные стили, соответствующие дизайну вашего приложения.
Nice Toast на GitHub: https://github.com/dononcharles/NiceToast
Платформа: Android
⭐️: 9
StoreKit Helper - обертка StoreKit2 для SwiftUI
StoreKit Helper - ещё одна легковесная обертка StoreKit2, созданная специально для SwiftUI, и упрощающая реализацию встроенных покупок.
StoreKit Helper на GitHub: https://github.com/jaywcjlove/StoreKitHelper
Платформа: iOS
⭐️: 130
Gradle для QA-инженера
Если вы автоматизируете на Java или Kotlin, вы не могли не слышать о Gradle. Одни его хвалят за скорость и гибкость, другие ругают за сложность конфигурации. Что же это за инструмент и почему всё больше проектов переходят на него с Maven? В этой статье мы разберем Gradle, чтобы вы могли уверенно использовать его в своих проектах для автоматизации тестирования, а так же спокойно ответить на вопросы на собеседовании.
Статья: https://habr.com/ru/articles/959912/
Платформа: Android
Самый задаваемый вопрос на iOS-собеседовании, на котором застревают даже Senior разработчики
Он не про синтаксис Swift. Не про UIKit или SwiftUI. Он про то, насколько хорошо вы разбираетесь в iOS.
Статья: https://apptractor.ru/info/articles/samyy-zadavaemyy-vopros-ios.html
Платформа: iOS
Быстрее, чище, стабильнее: как мы ускорили UI-тесты в iOS в 2,5 раза
Полнота покрытия проекта тестами во многом предопределяет его качество, надёжность и безопасность, поэтому команды предсказуемо стремятся писать тесты на все методы и компоненты. Это имеет и обратную сторону: увеличение покрытия удлиняет прогоны, что, в свою очередь, сказывается на продуктовых метриках. В результате при разработке возникает необходимость искать баланс между покрытием и способами ускорения прогонов. Здесь у каждой компании свой подход.
Статья: https://habr.com/ru/companies/vk/articles/961616/
Платформа: iOS
Маленькая RAM vs новые фичи: как мы повышаем детализацию Карт и сохраняем стабильность
Чем богаче визуальное и информационное наполнение, тем выше требования к устройствам, на которых работает приложение. Улучшая пользовательский опыт с помощью новых технологий и более детальной картографии, мы сталкиваемся с постоянным ростом потребления ресурсов — прежде всего оперативной памяти (RAM). Наша задача — находить баланс между развитием продукта и сохранением его стабильной и быстрой работы на разных устройствах, включая самые бюджетные модели.
Статья: https://habr.com/ru/companies/yandex/articles/961204/
Платформа: разработка
📺 Видео и подкасты за неделю @AppFiles
•
(iOS En) Optimize your app's speed and efficiency
• (iOS En) Modern SwiftUI Callbacks using AsyncStream
• (iOS En) How hard can it be to send a postcard?
• (iOS En) Beyond Xcode
• (iOS En) Building Complex Scroll Animations - Custom Bottom Sheet Interaction
• (iOS En) Keychain Unlocked: Mastering Advanced Security for Smarter, Safer Apps
• (iOS En) SwiftUI Alert With Progress View
• (iOS En) iMessage Style Photo Picker Using SwiftUI
• (And Ru) ART Memory Management
• (And Ru) Kotlin и контекстно-ориентированное мышление
• (And Ru) VK Звонки в лесу: звоним в плохих сетях
• (And En) TheAndroidShow: live from Droidcon, with Agents in Android Studio, Android XR and more!
• (And En) Google Play Console: Streamlining workflows, from testing to growth
• (And En) Building for Samsung Galaxy XR, featuring Calm's blueprint to Android XR development
• (And En) Android XR #AskAndroid
• (And En) Explaining Google's Guide to App Architecture In Simple Terms
• (And En) FAB Menu In Material3 Expressive
• (And En) From Java to Kotlin: Mercedes-Benz.io’s Journey
• (And En) Merge Queue at Uber Scale
• (And En) From 25 Minutes to 2.5: Okta's Journey to Faster Builds
• (Crs Ru) Что не так с Dart и Flutter в 2025 году?
• (Crs Ru) KMP для ОС Аврора
• (Crs Ru) Backend-Driven UI как ответ на рост числа платформ
• (Dev Ru) Как устроена мобильная разработка сегодня
• (Dev Ru) Как вас взламывают через Open Source — DevSecOps и безопасная разработка
Прошлогодние видео:
• (iOS Ru) Как устроена библиотека AppMetrica
• (iOS Ru) Здесь куют Metal
• (iOS Ru) Как iOS-разработчику выжить на проекте с KMP?
• (And Ru) Android cookbook: готовим WebView правильно
• (And Ru) Kotlin Coroutines. Устройство и возможности использования
• (And Ru) Фреш на полке, фреш в стеке
• (Dev Ru) От натива до SDUI через гибридKMP Starter - шаблон кроссплатформенного приложения на KMP
KMP Starter - современный, готовый к использованию шаблон приложения на Kotlin Multiplatform с дизайном Material 3, утилитами и чистой архитектурой.
Технический стек: Kotlin Multiplatform для кроссплатформенной разработки, Compose Multiplatform для UI, Material 3 как дизайн-система, Koin для инъекции зависимостей, Room в качестве локальной базы данных, DataStore для хранения настроек, корутины и Flow для асинхронного программирования, RevenueCat для покупок, MixPanel для аналитики, Kotlinx Serialization для сериализации JSON.
KMP Starter на GitHub: https://github.com/DevAtrii/Kmp-Starter-Template
Платформа: Android/кроссплатформа
⭐️: 51
SwiftUI Onboarding - онбординг, как в приложениях Apple
SwiftUI Onboarding — это библиотека SwiftUI, которая реализует процесс онбординга, аналогичный приложениям Apple.
Фичи:
• Совместимость со Swift 6.0 — разработано в соответствии с новейшими стандартами Swift
• Поддержка нескольких языков — 10 языков доступны по умолчанию
• Доступность прежде всего — полная поддержка Dynamic Type и функций доступности
• Широкие возможности настройки — гибкие возможности конфигурации
• Кроссплатформенность — поддержка iOS и macOS
• Современный SwiftUI — использует новейшие API и шаблоны SwiftUI
• Автоматическое управление состоянием — встроенная интеграция с AppStorage
• Светлый и тёмный режимы — полностью поддерживают как светлый, так и тёмный режимы
SwiftUI Onboarding на GitHub: https://github.com/Sedlacek-Solutions/SwiftUI-Onboarding
Платформа: iOS
⭐️: 302
Cahier - пример современного блокнота для Android
Cahier ("блокнот" на французском) — это многофункциональное offline-first приложение для ведения заметок, и призванное продемонстрировать лучшие практики современной разработки Android с использованием Kotlin, Jetpack Compose, Material 3 и набора библиотек Jetpack, таких как Ink API. Оно служит референсным примером Google для создания надежных, адаптивных и увлекательных приложений для повышения производительности на Android.
Cahier на GitHub: https://github.com/android/cahier
Платформа: Android
⭐️: 38
Анализ производительности для ускорения сборки в Xcode 2025
Изучив производительность сборки и потратив время на её улучшение там, где это возможно, вы увидите, что можете добиться прогресса несколькими небольшими шагами.
Статья: https://apptractor.ru/info/articles/analiz-proizvoditelnosti-dlya-uskoreniya-sborki-v-xcode-2025.html
Платформа: iOS
Текстовые эффекты с использованием TextRenderer в SwiftUI
Статья раскрывает пользу
TextRenderer в SwiftUI — мощный API, который открывает полный контроль над визуальным отображением текста. Вместо стандартных модификаторов, вы можете рисовать текст «с нуля», применяя эффекты на уровне строки или отдельного глифа. В статье показаны примеры: постепенное затухание текста, пульсация строк с анимацией, эффект «скачущих» букв и применение фильтров, таких как размытие. Если хотите вывести UI-текст на новый уровень — читайте обязательно.
Статья: https://www.createwithswift.com/text-effects-using-textrenderer-in-swiftui/
Платформа: iOSПлавная анимация в Jetpack Compose — простое решение с animateDpAsState
Благодаря Jetpack Compose логика анимации легко встраивается в декларацию пользовательского интерфейса.
Всего несколько строк кода — и вы можете создавать плавные, адаптивные переходы, которые придадут вашему приложению премиальный и продуманный вид.
Экспериментируем с animateDpAsState — одним из удобных API Compose, который делает переходы пользовательского интерфейса невероятно плавными.
Цель была проста: анимировать вертикальное смещение кнопки в зависимости от положения нижнего экрана.
Сниппет:
Плавная анимация в Jetpack Compose — простое решение с animateDpAsState
Благодаря Jetpack Compose логика анимации легко встраивается в декларацию пользовательского интерфейса.
Всего несколько строк кода — и вы можете создавать плавные, адаптивные переходы, которые придадут вашему приложению премиальный и продуманный вид.
Экспериментируем с animateDpAsState — одним из удобных API Compose, который делает переходы пользовательского интерфейса невероятно плавными.
Цель была проста: анимировать вертикальное смещение кнопки в зависимости от положения нижнего экрана.
Сниппет:
val targetY by animateDpAsState(
targetValue = when (sheetState.currentValue) {
SheetValue.Hidden -> 0.dp
else -> {
val currentOffset = with(density) {
try { sheetState.requireOffset().toDp() }
catch (_: Exception) { 0.dp }
}
(usableHeight - currentOffset)
.coerceAtLeast(0.dp)
.coerceAtMost(maxLift)
}
},
label = "gps_button_animation"
)
Box(
modifier = Modifier
.offset(y = -targetY) // Negative offset moves the button up
) {
// Button content here
}
Платформа: AndroidОт стороннего платёжного решения к собственному SDK: история RuStore Pay SDK
Опыт показал: чтобы развиваться, важно брать контроль в свои руки. Создание своего SDK потребовало много сил, но дало главное — гибкость, скорость и предсказуемость.
Сегодня Pay SDK стабильно работает в сотнях приложений, помогает разработчикам зарабатывать и даёт пользователям удобный и понятный сценарий оплаты. Мы не останавливаемся: впереди новые методы оплаты, дополнительные инструменты монетизации и улучшения по запросам сообщества.
Статья: https://habr.com/ru/companies/vk/articles/959520/
Платформа: Android
Eblan Launcher - быстрый настраиваемый и безопасный лаунчер для Android
Большинство лаунчеров для Android — это всего лишь форки Launcher3 от AOSP. Они часто забрасываются из-за своей сложности, что затрудняет участие новичков. Плюс многие из них до сих пор написаны на Java и используют устаревшие API. Автор этого проекта хотел попробовать что-то другое — разработать лаунчер для Android с нуля, приветствуя новых разработчиков и применяя надёжные принципы программирования и лучшие практики, чтобы проект оставался живым в долгосрочной перспективе. Его цель — дать всем возможность пользоваться мощными функциями, не жертвуя при этом конфиденциальностью.
Eblan Launcher на GitHub: https://github.com/JackEblan/EblanLauncher
Платформа: Android
⭐️: 158
Устранение задержек в Composable: 3 практических метода для создания плавного UI
Редко возникает необходимость выполнять сложные задачи непосредственно в пользовательском интерфейсе, и большая часть обработки будет выполняться в ViewModel.
Однако, если у вас много работы или вам не хватает опыта с Compose, вам может потребоваться выполнять значительный объём кода внутри Composable-объектов для отображения состояния в пользовательском интерфейсе.
Надеюсь, когда придёт время, вы вспомните представленные здесь решения и сочтёте их полезными.
Статья: https://apptractor.ru/info/articles/ustranenie-zaderzhek-v-composable-3-prakticheskih-metoda-dlya-sozdaniya-plavnogo-ui.html
Платформа: Android
Jetliner XR
Автор статьи подробно рассказывает о проекте Jetliner XR — демонстрации пространственных (spatial) возможностей на платформе Android XR. С помощью 3D-модели самолёта (jetliner) демонстратор показывает, как можно создавать приложения с дополненной и смешанной реальностью, используя инструменты из набора Jetpack XR. Статья служит практическим путеводителем для разработчиков: она объясняет ключевые шаги, особенности архитектуры и возможные сложности при работе в пространственной среде. Jetliner XR — не просто демонстрация, а стартовая точка для экспериментов и прототипов.
Статья: https://charlesmuchene.com/jetliner-xr
Платформа: Android
AppleLoginAnimation - анимация как в логине Apple iCloud
Это воссоздание анимации, которую вы видите на экране входа в iCloud, с использованием SwiftUI и SpriteKit.
AppleLoginAnimation на GitHub: https://github.com/georgecartridge/AppleLoginAnimation
Объяснение в X: https://x.com/georgecartridge/status/1982483221318357253
Платформа: iOS
⭐️: 59
اکنون در دسترس! پژوهش تلگرام ۲۰۲۵ — مهمترین بینشهای سال 
