AppFiles - Mobile Development
2.17K subscribers
3.08K photos
41 videos
12 files
4.05K links
Библиотеки, обучающие статьи, курсы и видео для (мобильных) разработчиков. Если есть вопросы - пишите @lbogolubov.
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
Swarm - фреймворк оркестрации агентов на Swift

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

• Параллелизм Swift — это неотъемлемая часть функционала. Весь пакет построен на StrictConcurrency.
• Инструменты остаются типобезопасными. Макрос @Tool генерирует JSON-схемы из структур Swift.
• Рабочие процессы могут выдерживать сбои. Надежное сохранение контрольных точек рабочих процессов позволяет возобновлять работу с явно заданного идентификатора контрольной точки.
• Облачные и локальные модели используют одни и те же абстракции. Foundation Models, Anthropic, OpenAI, Ollama, Gemini, MiniMax, OpenRouter и MLX — все они соответствуют одной и той же архитектуре.
• Все написано на Swift. AsyncThrowingStream, акторы, конструкторы результатов и макросы — используются все возможности Swift.

Swarm на GitHub: https://github.com/christopherkarani/Swarm
Платформа: iOS
⭐️: 484

👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Я перестал доверять стримингам. Поэтому написал свой iOS-плеер — с CarPlay и без вранья про звук

Я перестал верить стримингам. Не философски, а практически. Половина любимых альбомов либо ушла из каталогов, либо вернулась пересведенной так, что слушать тошно. Концертные записи, винил‑рипы, региональные релизы — их там и не было. А моя коллекция в FLAC просто лежит на диске и никуда не девается.

Для своей коллекции я написал плеер. Для себя. Через полгода это превратилось в нишевое приложение для iOS на 11 языках: с собственным DSP, распознаванием музыки и CarPlay.

Что в итоге внутри и где было не очевидно. Места, в которых документация молчит, а ты сидишь и гадаешь, почему оно вообще так себя ведет.

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

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

Каждый раз, когда нужно добавить новую модель в проект, приходится писать буквально одинаковый код: с одинаковыми проверками, с одинаковыми корректировками, с одинаковыми Codable, с одинаковыми тестами.

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

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

Kotlin 2.4.0 уже вышел — релиз получился крупным и особенно интересным для тех, кто следит за развитием языка и мультиплатформы. Среди главных новинок: стабильные context parameters, explicit backing fields и улучшения для annotation use-site targets. В стандартной библиотеке стабилизировали UUID API и добавили проверку отсортированности коллекций.

Для JVM-разработчиков важны поддержка Java 26 и включённые по умолчанию аннотации в metadata. В Kotlin/Native появился support Swift packages as dependencies, обновился Swift export, а CMS GC теперь включён по умолчанию. Kotlin/Wasm тоже заметно прокачали: инкрементальная компиляция стала дефолтной, плюс появилась поддержка WebAssembly Component Model.

Есть изменения и в инструментах: Kotlin 2.4.0 совместим с Gradle 9.5.0, а Maven теперь автоматически согласует версии Java и JVM target. Ещё компилятор Kotlin стал последовательнее вести себя с inline-функциями при компиляции .klib. Обновиться можно стандартно — поменять версию Kotlin в build scripts на 2.4.0; свежая версия уже входит в актуальные IntelliJ IDEA и Android Studio.

Новость: https://blog.jetbrains.com/kotlin/2026/06/kotlin-2-4-0-released/
Платформа: Android

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

Play Billing Skills превращает два руководства RevenueCat — руководство по биллингу Google Play и руководство по Android SDK RevenueCat — в готовые инструкции для агентов по организации оплаты покупок на Android. Каждый навык ориентирован на выполнение задачи. Вы просите своего агента «настроить RTDN», «обработать неудачное продление» или «перейти на Play Billing Library 9», и соответствующий навык проведет агента через вызовы API, коды ответов, шаги проверки и подводные камни, с которыми сталкиваются разработчики в продакшене.

Claude Code поддерживает эти навыки нативно через систему навыков. Режим агента Android Studio, Gemini CLI, Cursor и другие агенты ИИ-программирования могут использовать те же инструкции в виде обычного Markdown, указав инструменту соответствующий каталог навыков.

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

Play Billing Skills на GitHub: https://github.com/RevenueCat/play-billing-skills
Платформа: Android
⭐️: 30

👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность
Please open Telegram to view this post
VIEW IN TELEGRAM
Представляем AdaEngine 0.1.0 — игровой движок на Swift

После долгого пути я рад представить AdaEngine 0.1.0: бесплатный игровой движок и фреймворк для приложений с открытым исходным кодом, написанный на Swift.

AdaEngine строится вокруг простой идеи: Swift должен быть отличным языком для создания игр, интерактивных приложений, инструментов и творческого софта — не только приложений для платформ Apple. Swift выразителен, безопасен, быстр и удобен в написании. AdaEngine пытается перенести эти сильные стороны в разработку игр через модульный движок, data-driven архитектуру и API, которые ощущаются естественно для Swift-разработчиков.

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

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

Библиотека Doordash, которая реализует фаззинг с учетом покрытия кода в тестирование Swift. 

Фичи:

• Фаззинг с учетом покрытия кода — автоматическое обнаружение входных данных, открывающих новые пути выполнения кода
• Сохранение корпуса — сохранение и воспроизведение интересных входных данных между запусками тестов
• Регрессионное тестирование — воспроизведение сохраненного корпуса для выявления регрессий
• Фаззинг с планированием — детерминированное исследование чередования параллельных задач для выявления зависимых от порядка состояний гонки
• Высокая пропускная способность — ~35 млн итераций/сек с полной изоляцией параллельного покрытия для каждого теста

PropertyTestingKit на GitHub: https://github.com/doordash-oss/PropertyTestingKit
Платформа: iOS/тестирование
⭐️: 12

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

Только что был опубликован доклад Platforms State of the Union, и у нас появилось много новых API, которые нужно изучить, исследовать и использовать для создания новых функций и приложений. Давайте начнем с самого важного фреймворка для наших приложений. На этой неделе мы рассмотрим, что WWDC26 привносит в новую версию SwiftUI.

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

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

На сегодняшний день использование UIKit практически ничего не стоит. Я бы сказал, что сейчас самое подходящее время (да, действительно!), чтобы попробовать наш старый добрый UI-фреймворк в вашем приложении. Apple предоставила доступ к навыкам, позволяющим сделать это правильно, эффективно и быстро. Итак, давайте посмотрим, что нового.

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

👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность
Please open Telegram to view this post
VIEW IN TELEGRAM
Как мы мигрируем навигацию на Compose в Android-приложениях с 400+ экранами

Меня зовут Константин Дубинко, я — Android-техлид в hh.ru. Сейчас мы заканчиваем большой переезд навигации в двух Android-приложениях — для соискателей и работодателей. В этой статье я покажу, как у нас там устроена навигация, почему мы решили отказаться от Fragment-навигации и как превратили хаотичную миграцию с «островками» новой архитектуры в управляемый процесс с метриками и понятным планом работ. Заодно расскажу, какие решения сработали, какие — нет, и что я сделал бы иначе, если бы начинал заново.

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

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

Модуль Xposed, отображающий ход загрузки в виде анимированного кольца вокруг выреза для камеры.

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

• Кольцо прогресса вокруг выреза для камеры (через собственный DisplayCutout API) с возможностью настройки цвета, толщины, прозрачности и направления для каждого состояния (активно/завершено/неудачно)
• Анимация завершения с дополнительной тактильной обратной связью
• Бейдж счетчика загрузок
• Калькуляция смещения текста и значка при каждом повороте
• Выразительный пользовательский интерфейс настроек Material 3
• Поддержка тестового режима, рендеринга в режиме экономии заряда батареи и контура выреза в форме таблетки

Punch-hole Download Progress на GitHub: https://github.com/hxreborn/punch-hole-download-progress
Платформа: Android
⭐️: 191

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

Apple представила Xcode 27 на WWDC 26, добавив множество улучшений для агентной разработки, включая официальные агентские навыки (Agent Skills). Как вы уже наверняка знаете, важно выбирать навыки из авторитетных источников. Apple, конечно, абсолютно к таким относится!

Статья: https://apptractor.ru/info/articles/ispolzovanie-agentskih-navykov-v-xcode-27.html
Платформа: iOS

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