AppFiles - Mobile Development
الذهاب إلى القناة على Telegram
Библиотеки, обучающие статьи, курсы и видео для (мобильных) разработчиков. Если есть вопросы - пишите @lbogolubov.
إظهار المزيد2 165
المشتركون
-124 ساعات
لا توجد بيانات7 أيام
+130 أيام
أرشيف المشاركات
Распутываем навигацию SwiftUI
Если бы SwiftUI был парком развлечений, навигация была бы домом с привидениями — сначала захватывающе, но быстро понимаешь, что не знаешь, как из него выбраться.
Apple подарила нам NavigationView, а затем деликатно похлопала по плечу, выпустив новенький блестящий NavigationStack. Добавьте NavigationPath, onOpenURL и всеми любимый загадочный ящик — диплинкинг — и теперь даже опытные iOS-разработчики выглядят как тот мем с парнем, вокруг которого парят математические уравнения.
Но не волнуйтесь. Создаёте ли вы простое приложение с несколькими экранами или проектируете динамический поток с URL-адресами и кастомными типами данных, SwiftUI действительно может сделать простую навигацию. Как только вы разберётесь с инструментами (и будете знать, когда с ними не стоит бороться), всё станет на свои места.
Статья: https://apptractor.ru/info/articles/rasputyvaem-navigatsiyu-swiftui.html
Платформа: iOS
Игра в SPM
На Хабре уже немало статей об опыте перехода на Swift Package Manager — успешных и не очень. В моем случае переезд прошел удачно, но на каждом шагу возникали проблемы, которые было сложно нагуглить или вообще найти решения. Поэтому я решил собрать все накопленные знания и поделиться ими в этой статье, надеясь, что другие разработчики сэкономят кучу времени.
Статья: https://habr.com/ru/articles/857364/
Платформа: iOS
Swipe to Pay, или Как мы переписали слайдер оплаты на Compose
Помните компонент
MotionLayout? С его помощью можно просто реализовывать сложные анимации, в том числе и основанные на жестах.
У нас в Дринките был компонент, сделанный на MotionLayout — слайдер быстрой оплаты в меню. Он появляется, когда пользователь добавляет продукты в корзину.
С помощью этого компонента можно быстро оплатить свой заказ или перейти в корзину, тапнув по нему. Для того, чтобы анимировать его, MotionLayout подходил отлично.
Но шло время, баги копились, поддерживать элемент становилось всё сложнее, да и слайдер нуждался в новом функционале.
Статья: https://habr.com/ru/companies/dododev/articles/933278/
Платформа: Android👩💻 Как создать свой собственный оператор Flow и использовать его в архитектуре приложения?
🗓 12 августа в 20:00 МСК
🆓 Бесплатно. Урок в рамках старта курса «Android Developer. Professional».
На открытом уроке вы научитесь писать свой собственный оператор Flow с нуля. Мы разберём, как интегрировать оператор в архитектуру приложения, а также научимся строить архитектуру для гибкости и масштабируемости.
Этот урок идеально подойдёт разработчикам уровня junior и выше, стремящимся углубить знания и научиться эффективно использовать Flow в своих проектах.
🔗 Ссылка на регистрацию: https://otus.pw/rJhI/
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Курс "Генеративный ИИ для начинающих с JavaScript" от Microsoft
Microsoft уже выпустила несколько обучающих курсов по ИИ, таких как "AI Agents for Beginners", "Copilot Adventures" и "Generative AI for Beginners". В этом курсе "Генеративный ИИ для начинающих с JavaScript" от Microsoft, размещенном на GitHub, вы научитесь создавать приложения GenAI с использованием JavaScript.
Это новое предложение можно рассматривать как продолжение общего курса "ИИ-агенты для начинающих", но посвящённого JavaScript. Курс также заимствует повествовательный стиль исследования из курса "Copilot Adventures", оформленного в виде приключения с путешествием во времени. Суть курса заключается в том, что вы выбираете задачу, или так называемое приключение, и затем пишете код для его выполнения.
Таким образом, вы отправитесь в захватывающее приключение, путешествуя во времени и сотрудничая с величайшими умами истории. Вместе вы будете решать сложные задачи и изучать, как генеративный ИИ может произвести революцию в ваших JavaScript-приложениях.
Курс на GitHub: https://github.com/microsoft/generative-ai-with-javascript
Платформа: обучение
Meetingnotes - приложение для ведения заметок на встречах с ИИ. Оно записывает аудио и ведет транскрибирование, к текстам можно добавлять собственные примечания, есть функции формирования, поиска, различные шаблоны и т.п.
Meetingnotes на GitHub: https://github.com/owengretzinger/meetingnotes
Платформа: macOS/iOS
⭐️: 38
Первый взгляд на retain{}: новый способ сохранения состояния в Jetpack Compose
Появление
retain в Compose Runtime стало важным шагом к тому, чтобы сделать Compose самостоятельной UI-системой. Этот механизм закрывает разрыв между краткоживущим состоянием и длительным хранением в памяти, позволяя сохранять значения при переходах, не выходя за пределы composable-мирa.
Будь то сложная навигация, обработка конфигурационных изменений или управление временным UI-состоянием — retain предлагает новый многообещающий механизм восстановления состояния за пределами композиции непосредственно в рамках Compose Runtime.
Статья: https://apptractor.ru/info/articles/retain.html
Платформа: AndroidFlocon — это продвинутый инструмент отладки и проверки Android-приложений, созданный по мотивам Flipper.
Он позволяет разработчикам подключать Android-устройства к компьютеру и наблюдать, проверять и взаимодействовать с работающим мобильным приложением в режиме реального времени.
Flocon SDK - легковесная библиотека всего 140 Кб. Flocon Desktop — это проект Kotlin Multiplatform, структурированный аналогично Android-приложению с использованием ViewModels, Room, Ktor и корутин.
С Flocon вы получаете полный доступ к критически важным внутренним компонентам приложения, таким как
• сетевые запросы (http, изображения, grpc, graphql)
• локальное хранилище (sharedpref, базы данных, файлы приложения)
• аналитические события (и кастомные события)
• меню отладки, отображаемое на рабочем столе
• глубокие ссылки
И многое другое — без необходимости иметь root-доступ или выполнять утомительные команды ADB. Он разработан для ускорения процессов разработки, контроля качества и отладки.
Flocon на GitHub: https://github.com/openflocon/Flocon
Платформа: Android
⭐️: 119
Кто такой Mobile Platform Engineer
Mobile Platform Engineer — это инженер, который создает и поддерживает внутренние инструменты, библиотеки и архитектуры, позволяя мобильным командам быстрее и стабильнее выпускать продукт. Его «пользователи» — это другие разработчики, а задачей становится автоматизация процессов, стандартизация инфраструктуры и управление качеством, чтобы избавить команду от рутинных технических проблем.
Такая роль особенно востребована в больших командах, когда хаос, конфликты и технический долг замедляют релизы. Платформенный инженер не только пишет код, но и выстраивает коммуникации между командами, отвечает за безопасность, релизы, внедрение стандартов и успешные миграции — помогая всей организации развиваться быстрее и эффективнее.
Статья: https://www.mobilesystemdesign.com/blog/what-is-a-mobile-platform-engineer/
Платформа: разработка
Поставьте 👍, если хотите эту статью на русском!
Стриминг изменений с помощью Observations
Появление типа Observations знаменует собой значительное улучшение возможностей Swift по наблюдению за данными, особенно для разработчиков, использующих Swift Concurrency. Он стирает разрыв между реактивными обновлениями и современными асинхронными шаблонами, упрощая создание понятных, эффективных и отзывчивых пользовательских интерфейсов.
Статья: https://apptractor.ru/info/articles/observations.html
Платформа: iOS
🔥 Всё ещё сталкиваетесь с долгими релизами и ручной проверкой кода?
Приглашаем на открытый урок который поможет решить эти вопросы.
🗓 12 августа в 20:00 МСК
🆓 Бесплатно. Урок в рамках старта курса «Kotlin Backend Developer. Professional».
На открытом уроке «Почему все переходят на Kotlin? Секреты успешной миграции с Java» мы покажем, как сократить время разработки на 30% и минимизировать риски NullPointerException.
Вы узнаете ключевые отличия Kotlin, пошаговый план миграции без переписывания проекта и лучшие практики корутин для асинхронности.
🦾 Представьте, что каждый новый модуль пишется быстрее, ошибок становится в три раза меньше, а вы получаете бесценный навык для современных бэкенд-проектов.
🔗 Ссылка на регистрацию: https://otus.pw/WFy9/
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Все видео droidcon NYC 2025
Всего 61 видео. Все доступны на сайте DroidCon.
Сайт: https://www.droidcon.com/content/?filter_postyear=2025&filter_post_event_tag=droidcon-new-york
Платформа: Android
AsyncGraphics - это пакет Swift для редактирования изображений и видео с использованием async/await и Metal. С его помощью вы можете применять эффекты или изменять графику в реальном времени с помощью Metal, рисовать с помощью примитивов, осуществлять компоновку и верстку, встраивать графику во View, работать с камерой, писать свои Metal-шейдеры на высоком уровне без ручной настройки пайплайна и т.д.
AsyncGraphics на GitHub: https://github.com/heestand-xyz/AsyncGraphics
Платформа: iOS
⭐️: 380
👩💻 Хотите научиться создавать полноценные Android-приложения с интеграцией API?
Приглашаем на открытый урок, создадим приложение «Фото дня»
🗓 05 августа в 20:00 МСК
🆓 Бесплатно. Урок в рамках старта курса «Android Developer. Professional».
На вебинаре:
- Разберемся с API сервера для скачивания фотографии и описания к ней
- Сверстаем простой экран для отображения данных
- Пропишем выход в интернет для скачивания данных
- Пропишем бизнес-логику для отображения данных на экране приложения
🔗 Ссылка на регистрацию: https://otus.pw/7b9V/
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
📺 Видео и подкасты за неделю на @AppFiles
•
(iOS En) Custom Liquid Morphing Menu Effect
• (iOS En) Create Beautiful Liquid Glass: iOS 26 & SwiftUI in Figma & Xcode 26
• (iOS En) Supercharge Your SwiftUI App with SF Symbols & Emoji Pickers
• (iOS En) Liquid Glass Morphing Effects Using SwiftUI
• (And Ru) Нюансы работы Android Runtime в сравнении с HotSpot VM
• (And Ru) Как Google тайно изменил Android на глазах у всех: Project Mainline
• (And En) WearOS Material 3 shape morphing
• (And En) Compose Prototyping in Kotlin Notebooks
• (And En) Writing Your Third Kotlin Compiler Plugin
• (And En) Kotlin compatibility crash course
• (And En) Compose draw speedrun - reloaded
• (And En) Gradle 9.0.0 is Live - What's new? Configuration Cache, Java 17, Kotlin 2, and more
• (And En) Gradle Build Cache - Deliver faster by doing less
• (Crs En) The Easing Symphony: AnimationSpec in detail
• (Crs En) Using Previews with Compose Multiplatform
• (Dev Ru) Запись Avito Mobile Meetup
• (Dev Ru) Как работает синтез речи: от робота до живого голоса — синтез речи, TTS
• (Dev En) What is a Mobile Platform Engineer? 4 Years of Real Experience
• (Mrk Ru) Заработок на AI-фоторедакторах и аватарах. iOS. Подписки. Разбор ниши
Прошлогодние видео:
• (iOS Ru) Почему Metal перестал быть страшным
• (iOS Ru) Локализация iOS-приложения за 1$ в 2024 году
• (And Ru) Нужно ли учить Java для Android-разработки в 2024
• (Vrs Ru) KMP на ОС Аврора: проблемы и пути их решения
• (Dev Ru) Алгоритмическая сессия на собеседовании (все собеседования)
• (Dev Ru) Автоматическая генерация верстки под Server-driven UI из макетов Figma
• (Dev Ru) Учимся договариваться о деньгах — Офферы, Зарплаты, ПовышениеYA Habit Tracker - простой, но современный трекер привычек для Android. Технологии: Compose, Hilt, Room, Reorderable и Navigation 3.
YA Habit Tracker на GitHub: https://github.com/zaved707/Yet-Another-Habit-Tracker
Платформа: Android
⭐️: 22
Как создавать BLE-приложения под Android — личный опыт
Bluetooth Low Energy (BLE) — это энергоэффективный протокол передачи данных, который подходит для устройств с малым энергопотреблением, таких как фитнес-трекеры или датчики. В основе BLE лежит протокол GATT, организующий обмен данными через сервисы и характеристики. Разработка BLE-приложений на Android сопряжена с особенностями: нестабильностью соединений, сложным управлением правами доступа и особенностями разных устройств.
Для успешной реализации важно хорошо понимать GATT, уделять особое внимание энергопотреблению и тестировать приложение в реальных условиях. BLE требует асинхронного подхода и постоянной адаптации к аппаратным особенностям, но при правильном подходе обеспечивает надежную и эффективную связь для IoT-устройств с небольшим объемом передаваемых данных.
Статья: https://medium.com/codetodeploy/building-ble-apps-in-android-a-developers-journey-c1ecc04d6bdf (как читать ©)
Платформа: Android
Новый взгляд на Default Actor Isolation в Swift 6.2
После включения строгой проверки конкурентности многие разработчики обнаружили, что их рабочий однопоточный код начинает выбрасывать предупреждения и ошибки — несмотря на явную работу с MainActor. Это происходило потому, что до Swift 6.2, если у функции или типа не было указания области изоляции (isolation domain), компилятор рассматривал их как "non-isolated" (можно использовать конкуррентно). Для железной гарантии компилятор требовал отдельные аннотации, даже если весь модуль работал на MainActor.
Default Actor Isolation (SE-0466) теперь позволяет установить область изоляции по умолчанию на уровне Target — чаще всего это будет MainActor. Весь код без явных аннотаций автоматически будет считаться изолированным к MainActor, а ненужных деклараций станет меньше. Default Actor Isolation не только облегчает жизнь при строгой проверке конкурентности, но и подталкивает к модульному проектированию — ведь для разных Targets можно устанавливать разные области изоляции.
Итог: Default Actor Isolation в Swift 6.2 снижает «болезненность» внедрения строгой конкурентности, автоматизируя то, что раньше требовало от разработчиков рутинной работы. Однако для сложных или гибридных сценариев все еще надо помнить о нюансах и ограничениях новых опций.
Статья: https://fatbobman.com/en/posts/default-actor-isolation/
Платформа: iOS
Функциональное программирование в Android. Побочные эффекты и ELM-архитектура
В четвёртой статье цикла про функциональное программирование в Android мы соберём знания, полученные в предыдущих частях цикла. А ещё применим их на практике — соберём скелет приложения для медитации.
Статья: https://habr.com/ru/companies/dododev/articles/927100/
Платформа: Android
Навигация SwiftUI: объяснение NavigationStack, Deep Linking и TabView
SwiftUI значительно усовершенствовал навигацию во фреймворке с появлением NavigationStack и переходом от привычного NavigationView. Теперь управление навигацией строится не вокруг представлений (views), а вокруг значений (values). Важно понять: NavigationStack не просто переименованная версия NavigationView, а мощный инструмент для построения сложных сценариев переходов между экранами. Вместе с NavigationPath разработчик получает полный контроль над навигацией, включая программное перемещение по стеку и поддержку deep linking — обработки ссылок, ведущих пользователя сразу к нужному экрану внутри приложения. Такой подход особенно полезен для сложных приложений с множеством состояний и переходов между экранами.
Помимо NavigationStack, в статье отдельное внимание уделено TabView — классическому решению для построения таб-ориентированных приложений. Современная архитектура SwiftUI позволяет объединять TabView с NavigationStack, обеспечивая сохранение навигационного состояния внутри каждой вкладки. Это упрощает реализацию профессиональных и масштабируемых интерфейсов с поддержкой глубоких переходов (deep linking) и минимизацией типичных “подводных камней” SwiftUI-навигирования. Понимание этих инструментов экономит часы на отладку и делает код более структурированным и поддерживаемым.
Статья: https://swift-pal.com/swiftui-navigation-navigationstack-deep-linking-and-tabview-explained-0f905bbb20d4 (как читать ©)
Платформа: iOS
متاح الآن! بحث تيليغرام 2025 — أهم رؤى العام 
