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

Казалось бы, RecyclerView — давно знакомый инструмент. Но когда данные становятся разнородными, а списки — большими, простой вызов notifyDataSetChanged() превращается в узкое место, вызывающее фризы и дергающуюся анимацию. Как перейти от лобового обновления к точечным изменениям? Как объединить несколько типов элементов в одном адаптере?

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

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

Piru - приложение для отслеживания принятия веществ для iOS. Регистрирует, что вы принимали, когда и в какой дозе; накладывает фармакокинетические кривые, чтобы вы могли видеть, какие вещества все еще активны; предупреждает о взаимодействии лекарств перед их одновременным применением.

Создано в первую очередь для снижения вреда: контроль за приемом лекарств, отслеживание рекреационных сессий и безопасность сочетания веществ. Данные о веществах получены из TripSit, PsychonautWiki и DailyMed FDA — объединены и дедуплицированы в единую библиотеку, содержащую около 1100 веществ с диапазонами доз, способами применения, продолжительностью действия и периодами полураспада.

Особенности:

• ~1100 веществ с диапазонами доз (пороговые / легкие / обычные / сильные / тяжелые), способами применения, профилями продолжительности действия и периодами полураспада.
• Фармакокинетическая шкала. Однокамерная модель пероральной фармакокинетики оценивает скорость абсорбции с момента начала действия каждого пути введения и отображает результирующую кривую концентрации; дозы масштабируют высоту кривой в зависимости от соотношения количества и концентрации активного вещества.
• Предупреждения о взаимодействиях. 59 правил взаимодействия на основе классов, охватывающих распространенные опасные пары (ингибиторы МАО + стимулятор, опиоиды + бензодиазепины, литий + НПВП и т. д.). • Предупреждения отображаются в режиме реального времени во время регистрации и в виде окна опасности на временной шкале.
• Активность в реальном времени. Активные дозы отображаются на экране блокировки и в динамическом окне с указанием оставшейся продолжительности действия.
• Уведомления о снижении вреда. Дополнительные напоминания о снижении дозы, сгруппированные в 6-часовые сеансы, чтобы последовательные дозы не распадались на отдельные цепочки оповещений.
• Ежедневное отслеживание приема лекарств. Соблюдение режима приема лекарств/добавок с напоминаниями в будние дни, отдельно от дневника рекреационного использования.
• Аналитика. Тепловая карта активности, статистика использования, калькулятор периода полураспада, графики тенденций для каждого вещества.
• Пользовательские вещества. Добавьте любые вещества, отсутствующие в объединенной библиотеке — название, категорию, диапазоны доз, способ введения, период полураспада — и они будут участвовать в поиске, взаимодействии и фармакокинетике.
• Экспорт. Отчеты в формате JSON и PDF, совместимые с PsyLog, с фармакокинетическими диаграммами.

Piru на GitHub: https://github.com/kageroumado/piru
Платформа: iOS
⭐️: 28

👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность
Please open Telegram to view this post
VIEW IN TELEGRAM
🤮1
Один файл CLAUDE.md стал вирусным - причина до смешного проста

Я чуть было не пролистал это сообщение. Пост в LinkedIn о Markdown-файле, ставшем вирусным на GitHub. Звучало как хайп. Типа, когда кто-то делает скриншот количества звезд и выдает это за революцию.

Затем я проверил репозиторий. 91 000 звезд. Никаких зависимостей. Никакоих этапов сборки. Никакой модели. Просто один файл под названием CLAUDE.md с четырьмя правилами поведения внутри. И эти правила не являются чем-то новым. Вот что меня обеспокоило. Это то, что каждый senior инженер рассказал бы младшему в первый день работы. И все же этот файл сейчас является самым популярным репозиторием на GitHub, и кривая растет. Я немного подумал и вот, что происходит на самом деле.

Статья: https://apptractor.ru/info/articles/claude-md.html
Платформа: разработка

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

PovioKit - модульный инструментарий Swift 6, включающий вспомогательные средства для Concurrency, расширения Foundation, компоненты SwiftUI/UIKit/ AppKit и специализированные утилиты (Money, MediaPlayer, IAP, Camera, Exif, обертки свойств и т. д.) — все скомпилировано в условиях строгого параллельного выполнения.

PovioKit на GitHub: https://github.com/povio/PovioKit
Платформа: iOS
⭐️: 26

👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность
Please open Telegram to view this post
VIEW IN 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