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

SwiftyChat - готовый интерфейс чата со встроенными ячейками сообщений для быстрого старта. 

Фичи:

• Поддержка строк с атрибутами
• Поддержка альбомной ориентации (автоматически масштабирует ячейки сообщений с заданным свойством cellWidth, если оно задано)
• Аватар пользователя (с различными вариантами расположения, использование необязательно)
• Сокрытие клавиатуры (при касании за ее пределами)
• Многострочная панель ввода
• Прокрутка в самый вниз
• Воспроизведение видео в фоновом режиме «Картинка в картинке»
• Скругление определённых углов текстовых сообщений.
• Реализация кастомных ячеек сообщений
• Свайп для скрытия клавиатуры

SwiftyChat на GitHub: https://github.com/EnesKaraosman/SwiftyChat
Платформа: iOS
⭐️: 312
Rijksmuseum - музей на Kotlin Multiplatform

Rijksmuseum — это многомодульное кроссплатформенное приложение на Kotlin и Compose, которое предлагает захватывающий способ изучения коллекции произведений искусства знаменитого Рейксмузеума в Амстердаме.

Внутри: Kotlin Multiplatform, Compose Multiplatform, корутины, Koin, Coil, Ktor, Compose Navigation, Jetpack Lifecycle и Jetpack ViewModel.

Rijksmuseum на GitHub: https://github.com/fethij/Rijksmuseum
Платформа: Android/кроссплатформа
⭐️: 383
4👍1
Почему моё Android-приложение крашится?

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

Статья: https://habr.com/ru/companies/alfa/articles/950280/
Платформа: Android
1
JetCo Library - готовые UI-компоненты Compose

JetCo — это готовая к использованию библиотека Compose с готовыми компонентами пользовательского интерфейса как для Android, так и для KMP. Разработанная специально для энтузиастов Jetpack Compose, библиотека JetCo сделает вашу жизнь проще, ваши приложения — красивее, а ваших пользователей — счастливее. 

JetCo на GitHub: https://github.com/developerchunk/JetCo
Платформа: Android/кроссплатформа
⭐️: 111
1
Генерация изображений с использованием Foundation Models в SwiftUI

Я хочу генерировать изображения с помощью Foundation Models. Думаю, как только вы это увидели, основной подход тоже стал довольно очевиден.

Определим инструмент для генерации изображений - ImageCreator из фреймворка Image Playground.

Звучит очень просто, правда? Тогда зачем я вообще пишу эту статью? Потому что cуществует много вещей, которые мы не можем возвращать как выходные данные инструмента или определять как тип управляемого ответа модели. Конечно, можно просто предоставить несколько отдельных пользовательских интерфейсов для каждой цели, например: один для чата, один для генерации изображений, и использовать либо Foundation Models, либо Image Playground соответственно.

Возможно, так было два года назад, но в конце 2025 года это точно не то, что нужно делать. Что, если вам нужно генерировать и другие типы артефактов, помимо изображений? Звуковые дорожки. Файлы кода. И бла-бла-бла. Вы собираетесь создавать отдельный пользовательский интерфейс для каждого из них и ожидать, что пользователь будет переключаться между ними?

Статья: https://apptractor.ru/info/articles/generatsiya-izobrazheniy-s-ispolzovaniem-foundation-models-v-swiftui.html
Платформа: iOS
👍1
Elegant Emoji Picker - красивый пикер эмодзи

Почему в UIKit нет встроенного инструмента для выбора эмодзи? По той же причине, по которой нет приложения-калькулятора в iPadOS? Возможно. Но стоит ли нам просто потакать лени Крейга? Не в этот раз. UIEmojiPicker — элегантный инструмент для выбора эмодзи.

Elegant Emoji Picker — настраиваемый, простой в использовании, еще более простой в реализации и красивый (субъективно) пикер эмодзи для iOS, iPadOS и MacOS.

Elegant Emoji Picker на GitHub: https://github.com/Finalet/Elegant-Emoji-Picker
Платформа: iOS
⭐️: 90
👍1
📺 Видео и подкасты за неделю @AppFiles

(iOS Ru) Неуловимый iOS-ботовод. Задетекти меня, если сможешь: автореги, боты, спамеры
(iOS Ru) Разработка под Apple Vision Pro: исследуем возможности гарнитуры
(iOS En) Secure your app with Memory Integrity Enforcement
(iOS En) Interactive Map with Draggable Bottom Sheet - SwiftUI
(iOS En) iOS App Development in 2025: How to Choose Your Tech Stack and Architecture
(iOS En) Full-Screen Sheets Using SwiftUI
(iOS En) Customized Animated Paywall using Native SwiftUI StoreKit APIs
(And Ru) Автообновление Android: когда можно не бояться санкций сторов
(And Ru) Доверяй, но проверяй: про корневые сертификаты в Android и не только
(And Ru) Как правильно написать фичу. Часть 1
(And Ru) Что ждёт Android-разработчика на собесе в Wildberries (+ все собеседования)
(Crs Ru) Миграция больших приложений на KMP: проблемы, подводные камни, решения
(Crs En) Build Your First Compose Multiplatform Web App
(Crs En) In-depth on Metro — with Zac Sweers
(Dev Ru) Как мы сделали CI, которому можно доверять
(Dev Ru) Почему текстовый поиск устарел — векторные базы, эмбеддинги, RAG
(Dev En) How to build AI agents with memory
(Dev En) You can write code faster. Can you deliver it faster?

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

(iOS Ru) Собеседование iOS-разработчика: проектирование и лайфкодинг
(Crs Ru) Flutter Web глазами мобильного разработчика
(Dev Ru) Мобильная разработка в Алисе и YaOS: как это работает
(Dev Ru) Перформанс мобильных приложений
Please open Telegram to view this post
VIEW IN TELEGRAM
«Ох, зря я туда полез…»: история о том, как мы переезжали на React Native

Если кратко, то было интересно и иногда даже страшно. Баги, сложности, неочевидные подводные камни… В общем, история получилась длинная, поехали.

Статья: https://habr.com/ru/companies/profi_ru/articles/954888/
Платформа: кроссплатформа
Понимание Tasks и Back Stack в Android — история работы вашего приложения

Статья отлично разбирает, как устроены таски (tasks) и стек возврата (back stack) под капотом. Автор показывает, что активити — это «глава истории», а стек — это последовательность этих глав, которыми управляет Android по принципу LIFO (последний зашёл — первый вышел). Но самое интересное — как разработчики могут контролировать это поведение. В статье глубоко объясняются launch modes (standard, singleTop, singleTask, singleInstance) и intent flags (FLAG_ACTIVITY_NEW_TASK, FLAG_ACTIVITY_CLEAR_TOP и др.), а также такие нюансы, как taskAffinity, атрибуты вроде clearTaskOnLaunch и поведение кнопки «назад» на Android 12+. Если вы пишете навигацию или сложные потоки переходов в Android-приложении — эта статья точно стоит внимания.

Статья: https://medium.com/@chinazablossom7/understanding-tasks-and-the-back-stack-in-android-the-story-behind-your-apps-journey-fde477dd1fd0
Платформа: Android
This media is not supported in your browser
VIEW IN TELEGRAM
Liquid - жидкое стекло на Jetpack Compose

Liquid добавляет эффекты в стиле Liquid Glass в Jetpack Compose. Он позволяет преломлять, замораживать и искривлять содержимое за элементами пользовательского интерфейса, создавая динамические эффекты матового стекла, линз или жидкости.

Работая с RuntimeShaders, Android Graphics Shading Language (AGSL) и API ModifierNodeElement, он обеспечивает GPU-ускоренные эффекты в вашем пользовательском интерфейсе на Compose.

Liquid на GitHub: https://github.com/FletchMcKee/liquid
Платформа: Android
⭐️: 79
👍72😁2
OTP Helper - копирование кодов из SMS и уведомлений

Приложение с открытым исходным кодом, которое позволяет автоматически копировать одноразовые пароли и коды из SMS и уведомлений. Приложение работает полностью офлайн и без доступа к интернету. Поэтому вы можете быть уверены, что ваши данные не покинут ваше устройство.

Приложение работает в двух режимах:

1. Уведомления

Приложение настраивает прослушиватель уведомлений и считывает все уведомления, отправляемые любыми приложениями. Это позволяет приложению обнаруживать коды в электронных письмах и, возможно, в других приложениях, отправляющих уведомления. При получении уведомления приложение формирует одну строку из всего текста уведомления, а затем проверяет, следует ли его игнорировать. Если текст не игнорируется, он сопоставляется с регулярным выражением для обнаружения кода. Извлеченный код обрабатывается в соответствии с настройками.

2. SMS

Приложение прослушивает все входящие SMS-сообщения и обрабатывает их так же, как в режиме уведомлений: проверяет, следует ли его игнорировать, и если нет, сопоставляет с регулярным выражением для обнаружения кода. Извлеченный код обрабатывается в соответствии с настройками.

OTP Helper на GitHub: https://github.com/jd1378/otphelper
Платформа: Android
⭐️: 695
1👎1
Ускоряем запуск приложения - App Startup Library

Цель этой статьи — подробно разобраться в том, почему появилась новая библиотека Android Jetpack App Startup Library, какие проблемы она решает в текущих шаблонах инициализации приложений и как она помогает сократить это критическое время запуска. Понимание необходимости этой библиотеки — ключ к её эффективному использованию.

Статья: https://apptractor.ru/info/articles/app-startup-library.html
Платформа: Android
🤡1
Время запуска приложения: подборка статей

🔨 iOS

Официальное руководство Apple
Как мы сократили время запуска нашего iOS-приложения на 60%
Как 5 приложений для iOS могут сократить время запуска в среднем на 28%
Измерение задержки старта iOS-приложений в масштабе Uber
FaultOrdering — открытый инструмент создания файлов компоновки для ускорения запуска iOS-приложений
Измерение задержки старта iOS-приложений в масштабе Uber

🚶‍♂️ Android

Официальное руководство Google
Как мы снизили время запуска FullStory на Android на 75%
Как мы сократили время запуска Android-приложения на 77%
Как один Android-разработчик за месяц сократил время запуска приложения Lyft 21%
Notion на Android теперь запускается в два раза быстрее
Преодолевая барьер скорости: как неблокирующие заставки сокращают время запуска приложений Android на 90%
Ускоряем запуск приложения - App Startup Library
Как я сократил время загрузки Android-приложения на 70% с помощью параллельных сетевых вызовов
Улучшение времени запуска приложений на Android: уроки Facebook
Please open Telegram to view this post
VIEW IN TELEGRAM
PostgresNIO - клиент PostgreSQL для Swift

PostgresNIO - неблокирующий event-driven клиент Swift для PostgreSQL, построенный на SwiftNIO. 

Фичи:

• PostgresConnection, позволяющий подключаться к серверу PostgreSQL, авторизоваться, отправлять запросы и получать результаты
• PostgresClient, объединяющий и управляющий соединениями
• Интерфейс async/await с поддержкой backpressure
• Автоматическое преобразование примитивных типов Swift в формат Postgres
• Интеграция с экосистемой серверов Swift, включая использование SwiftLog и ServiceLifecycle
• Разработан для эффективной работы на всех поддерживаемых платформах (протестировано в системах Linux и Darwin)
• Поддержка Network.framework (при наличии) (например, на платформах Apple)

PostgresNIO на GitHub: https://github.com/vapor/postgres-nio
Платформа: Swift/iOS
⭐️: 371
UI Kit как рычаг роста: как связать Figma и код

Мы решили связать Figma и код напрямую: чтобы дизайн-токены, экспортированные из Figma, автоматически превращались в Kotlin-код, XML-ресурсы и Compose-темы.

Для этого мы договорились с дизайнерами об обменном формате — JSON-токены (цвета, типографика, размеры). Эти JSON кладём в проект и генерируем код: типобезопасные структуры для Compose/KMP, Android XML, «raw» слой, который легко шарить и на iOS.

Статья: https://habr.com/ru/articles/956130/
Платформа: Android
This media is not supported in your browser
VIEW IN TELEGRAM
Эффект свечения в стиле Apple Intelligence в SwiftUI

Новый язык дизайна Apple представил эффект светящейся анимированной обводки, которая изящно и динамично подсвечивает формы и компоненты. Давайте рассмотрим, как воссоздать этот эффект в SwiftUI с помощью многоразовых расширений.

Статья: https://apptractor.ru/info/articles/effekt-svecheniya-v-stile-apple-intelligence-v-swiftui.html
Платформа: iOS
👍1
ИИ-генерация изображений в Firebase AI Logic

Добавление кастомных изображений в ваше приложение может значительно улучшить и персонализировать пользовательский опыт, а также повысить вовлеченность пользователей. В этой статье рассматриваются две новые возможности генерации изображений с помощью Firebase AI Logic: специализированные функции редактирования Imagen, которые в настоящее время находятся в стадии предварительной версии, и общедоступный Gemini 2.5 Flash Image (также известный как «Nano Banana»), предназначенный для создания контекстных или диалоговых изображений.

Статья: https://apptractor.ru/info/articles/ii-generatsiya-izobrazheniy-v-firebase-ai-logic.html
Платформа: Android
1
Placeholder Compose - настраиваемые плейсхолдеры для Compose

Placeholder Compose - полностью настраиваемые плейсхолдеры для Jetpack Compose и KMP. Вы можете легко реализовать красивые эффекты загрузки с помощью модификаторов. Библиотека предлагает интуитивно понятные возможности настройки цветов, форм и анимации подсветки, позволяя создавать широкий спектр эффектов загрузки. 

Placeholder Compose на GitHub: https://github.com/RevenueCat/placeholder-compose
Платформа: Android
⭐️: 82
👍1
Xcode: ключевые инструменты для ручного тестирования мобильных приложений

В сети много материалов о сторонних решениях для отладки и контроля качества iOS-приложений, но часто из виду упускается то, что сам Xcode предлагает всё необходимое «из коробки», при этом многие инструменты остаются невостребованными.

В этой статье я подробно разберу 4 инструмента, которые используются в моей команде для отлова тех самых 65% ошибок. Каждый раздел статьи содержит пошаговый разбор работы инструмента и то, как он применяется в тестировании.

Статья: https://habr.com/ru/companies/sovcombank_technologies/articles/956112/
Платформа: iOS
👍1
Android для новичков: как не наломать дров с корутинами и какие привычки оставить в прошлом

Когда только начинаешь разрабатывать под Android, самые неприятные баги появляются не из-за опечаток, а из-за систематических ошибок. Хардкод строк и цветов, корутины, которые живут сами по себе, попытки писать Compose по старинке, как старые view — всё это превращается в технический долг, который мешает развивать продукт.

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

Статья: https://habr.com/ru/companies/netologyru/articles/956346/
Платформа: Android
1
Опыт собеседования с iOS-разработчиком в Microsoft

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

Статья: https://apptractor.ru/info/articles/opyt-sobesedovaniya-s-ios-razrabotchikom-v-microsoft.html
Все собеседования: https://apptractor.ru/sobesedovaniya
Платформа: iOS
👍1