AppFiles - Mobile Development
2.17K subscribers
3.08K photos
41 videos
12 files
4.05K links
Библиотеки, обучающие статьи, курсы и видео для (мобильных) разработчиков. Если есть вопросы - пишите @lbogolubov.
Download Telegram
Архитектура Android-приложений. Как повысить качество архитектуры, не говоря об архитектуре

Я Марк, Android-разработчик, работаю над мобильным приложением для управления умным домом Салют. Для мира Android-разработки вопросы архитектуры, её надёжности и качества актуальны, но… на самом деле не так уж интересны. Интересно, чтобы приложения были надёжными, устойчивыми к ошибкам, поддерживаемыми и легко масштабируемыми. Самый популярный подход — по-прежнему архитектурные паттерны (MV* паттерны) и разделение архитектуры по слоям. Что никак не избавляет от ошибок.

Статья: https://habr.com/ru/companies/sberdevices/articles/1045987/
Платформа: Android

👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность
Please open Telegram to view this post
VIEW IN TELEGRAM
😁1
This media is not supported in your browser
VIEW IN TELEGRAM
Compose Navigation Graph - визуализация потоков приложения

Compose Navigation Graph превращает весь поток вашего приложения в единую живую карту: каждый экран отображается в виде существующей миниатюры @Preview, а каждый переход — в виде стрелки, по которой можно следовать. Он работает с Navigation 3, Navigation 2, любыми другими библиотеками навигации Compose и даже обычными Activity.

Вы добавляете аннотации к своим экранам, а плагин Gradle и процессор KSP статически извлекают граф навигации и отображают миниатюру каждого экрана без эмулятора. Затем плагин для IntelliJ/Android Studio отрисовывает всю навигацию вашего приложения, объединенную по модулям, в окне инструментов, где вы можете перейти к исходному коду и добавить переходы. Вы даже можете проверять изменения навигации в запросах на слияние с помощью закомиченного базового файла .nav, так что никакие изменения пунктов назначения или переходов не останутся без проверки.

Compose Navigation Graph на GitHub: https://github.com/skydoves/compose-nav-graph
Платформа: Android
⭐️: 286

👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
iOS: отправляем почту по SMTP с нуля на сокетах

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

В данной статье мы ознакомимся с протоколами, по которым работает почта. Сфокусируемся на реализации протокола для отправки почтовых сообщений (SMTP) на низком уровне (BSD сокеты). И, используя собственный сетевой слой для работы с почтой, реализуем iOS клиент для отправки почтовых сообщений через любые почтовые провайдеры (ex: gmail, yandex, mail).

Статья: https://habr.com/ru/articles/1038760/
Платформа: iOS

👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность
Please open Telegram to view this post
VIEW IN TELEGRAM
Datadog предоставляет миллионы инсайтов о производительности с помощью ProfilingManager

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

Datadog совместно с Google снизила эту боль, встроив ProfilingManager API, доступный на устройствах с Android 15 и новее, в свои платформы мониторинга реальных пользователей (Real User Monitoring, RUM) и непрерывного профилирования (Continuous Profiling). Эта интеграция меняет процесс отладки: разработчики могут перейти от поверхностных симптомов к пониманию причины провала в производительности.

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

Статья: https://apptractor.ru/info/articles/datadog-predostavlyaet-milliony-insaytov-o-proizvoditelnosti-s-pomoschyu-profilingmanager.html
Платформа: Android

👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Что нового в Swift 6.4 после WWDC26

Swift 6.4 включает в себя ряд улучшений языка и дополнений к стандартной библиотеке, которые делают повседневный код более чистым и выразительным. В этой статье рассматриваются наиболее заметные изменения, представленные на WWDC26.

Статья: https://apptractor.ru/info/articles/chto-novogo-v-swift-6-4-posle-wwdc26.html
Платформа: iOS

👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность
Please open Telegram to view this post
VIEW IN TELEGRAM
ListKit - списки и сетки для SwiftUI

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

ListKit на GitHub: https://github.com/danielsaidi/ListKit
Платформа: iOS
⭐️: 9

👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность
Please open Telegram to view this post
VIEW IN TELEGRAM
LLM на iPhone: от llama.cpp до Foundation Models

В 2025 году вместе с iOS 26 компания Apple представила разработчикам Apple Foundation Models. Теперь порог входа для on-device AI упал до нескольких строк, и далее в статье мы рассмотрим как он выглядит.

А в январе 2026 года Apple заключила сделку с Google в рамках которой следующее поколение Apple foudation models будет основано на технологии Google Gemini. По данным Bloomberg стоимость этой сделки составляет 1 млрд долларов в год. Apple по-прежнему держит контроль над пользовательскими данными, запросы будут выполняться локально, что-то сложное, с чем не может справиться локальная модель - будет отправляться в облако Apple Private Cloud Compute.

Статья: https://habr.com/ru/articles/1047288/
Платформа: iOS

👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность
Please open Telegram to view this post
VIEW IN TELEGRAM
Kore - дизайн-система для Compose Multiplatform

Kore — это платформа дизайна Compose Multiplatform (Android, iOS, Desktop, Web), предоставляющая красиво оформленные компоненты, помогающие создавать масштабируемые и согласованные дизайн-системы.

Основные фичи: полностью настраиваемый по темам интерфейс, есть готовые стили, кастомизация всего, функции доступности. 

Kore на GitHub: https://github.com/dev778g-me/Kore
Платформа: Android/кроссплатформа
⭐️: 3

👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность
Please open Telegram to view this post
VIEW IN TELEGRAM
Разработка плагина для Android Studio или Чистим безумную простыню логов в LogCat

Недавно я дошёл до точки кипения. Локализовать плавающий баг в этом бесконечном водопаде текста стало физически больно - глаза просто вытекали. Стандартные фильтры Android Studio, конечно, работают, но когда тебе нужно постоянно переключаться между логами пяти разных фич и при этом не видеть спам от остальных, ручная настройка регулярных выражений начинает сниться в кошмарах. Нужно постоянно помнить точные названия тегов всех модулей, собирать длинные конструкции с исключениями через минусы и вертикальные черты, а через пять минут переписывать всё заново под другую задачу.

Сначала я пробовал стандартные фильтры LogCat, затем написал скрипты которые чистили по нужным тегам, затем переключался на скармливание этих логов в AI. Выжранные токены заставили чистить уже подготовленные логи. Но все равно это было неудобно и отнимало время.

Поняв, что так дальше жить нельзя, я решил сделать инструмент под себя. Результатом стал плагин TAO LogExt для Android Studio, который превращает эту рутину в удобное управление в несколько кликов.

Статья: https://habr.com/ru/articles/1047962/
Платформа: Android

👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность
Please open Telegram to view this post
VIEW IN TELEGRAM
Лучшие практики SwiftUI из агентского навыка Xcode 27

Xcode 27, представленный на WWDC 2026, впервые включает в себя агентские навыки разработки, в том числе на SwiftUI, от Apple. Эти навыки отлично подходят для агентской разработки в Xcode или при использовании навыков из Xcode 27 в Claude, Codex и Cursor — любой IDE для ИИ.

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

Статья: https://apptractor.ru/info/articles/luchshie-praktiki-swiftui-iz-agentskogo-navyka-xcode-27.html
Платформа: iOS

👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность
Please open Telegram to view this post
VIEW IN TELEGRAM
SWCompression - работа с архивами на Swift

SWCompression - фреймворк с алгоритмами (де)компрессии и функциями для работы с различными архивами и контейнерами.

Фичи:

• Декомпрессия (а иногда и сжатие) с использованием различных алгоритмов
• Чтение (а иногда и запись) архивов различных форматов
• Чтение (а иногда и запись) контейнеров, таких как ZIP, TAR и 7-Zip

Работает на платформах Apple, Linux и Windows.

SWCompression на GitHub: https://github.com/tsolomko/SWCompression
Платформа: iOS
⭐️: 273

👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность
Please open Telegram to view this post
VIEW IN TELEGRAM
Создание гида в смешанной реальности с использованием Android XR, геопространственного API и Gemini

Представьте, что вы приезжаете в незнакомый город, надеваете проводные очки расширенной реальности — например, готовящиеся к выпуску XREAL Project Aura — и сразу получаете персонального местного экскурсовода, который хорошо знает город. Вам больше не нужно постоянно смотреть на плоскую карту: трёхмерные модели ненавязчиво указывают путь, а интеллектуальный голосовой помощник рассказывает об исторических достопримечательностях, находящихся прямо перед вами.

Мы объединили геопространственные программные интерфейсы, программный интерфейс Gemini с использованием Firebase AI Logic, привязку данных Google Maps к реальному миру и комплект средств разработки Jetpack XR. В результате получилось иммерсивное приложение для пешеходных экскурсий, которым можно пользоваться без помощи рук.

Статья: https://apptractor.ru/info/articles/sozdanie-gida-v-smeshannoy-realnosti-s-ispolzovaniem-android-xr-geoprostranstvennogo-api-i-gemini.html
Платформа: Android

👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
От класса размера к доступному пространству: остается ли horizontalSizeClass надежным параметром?

Как показали на WWDC 26, при зеркальном отображении приложения для iPhone на Mac через функцию iPhone Mirroring, размер его окна можно свободно изменять. Одновременно с этим, приложения для iPhone, работающие на iPad, также получат возможность изменять размер окна. Даже без обновления физического устройства до бета-версии новой ОС, разработчики уже могут оценить это изменение в предварительных версиях Xcode 27 или в среде симулятора iOS 27 в Device Hub.

Однако влияние этого обновления выходит далеко за рамки простого изменения размера окон приложений для iPhone. Оно меняет представление многих разработчиков о системе компоновки. Некоторые характеристики, которые ранее часто использовались в качестве параметров компоновки, такие как horizontalSizeClass, больше не подходят в качестве основного критерия определения ширины окна.

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

Статья: https://apptractor.ru/info/articles/ot-klassa-razmera-k-dostupnomu-prostranstvu-ostaetsya-li-horizontalsizeclass-nadezhnym-parametrom.html
Платформа: iOS

👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Chucker - HTTP инспектор для Android

Chucker упрощает проверку HTTP(S) запросов/ответов, отправляемых вашим Android-приложением. Chucker работает как Charles, только на устройстве - он перехватывает OkHttp, сохраняя все события внутри вашего приложения и предоставляя пользовательский интерфейс для проверки и шаринга их содержимого.

Приложения, использующие Chucker, будут отображать уведомление с кратким обзором текущей HTTP-активности. Нажатие на уведомление запускает полный пользовательский интерфейс Chucker. Приложения могут по желанию подавить уведомление и запустить пользовательский интерфейс Chucker непосредственно из своего собственного интерфейса.

Chucker на GitHub: https://github.com/ChuckerTeam/chucker
Платформа: Android
⭐️: 4.5K

👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность
Please open Telegram to view this post
VIEW IN TELEGRAM
🤣1