AppFiles - Mobile Development
2.16K subscribers
3.04K photos
41 videos
12 files
4K links
Библиотеки, обучающие статьи, курсы и видео для (мобильных) разработчиков. Если есть вопросы - пишите @lbogolubov.
Download Telegram
Monzo повысил производительность на 35% благодаря простому обновлению R8

Полностью включив оптимизацию R8, Monzo добился огромного снижения на 35% показателя «Приложение не отвечает» (ANR). Это простое изменение доказало, что для эффективной оптимизации не всегда требуются сложные инженерные решения.

Статья: https://apptractor.ru/info/articles/monzo-35.html
Платформа: Android

👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность
Please open Telegram to view this post
VIEW IN TELEGRAM
1
Наконец-то нашел Android Service своей мечты после того, как потерял его 13 лет назад

Изучая недра Android, я наткнулся на один Service, который привлек моё внимание. Класс, который я обнаружил, не только заинтриговал меня своим названием, но и снова удивил интересными возможностями, скрытыми внутри Android.

Ещё в 2012 году команда Android System UI представила в Android 4.2 новую функцию Daydream, которая позволяет показывать контент пользователю, пока телефон находится в спящем режиме. Вы можете просто отрисовать любой UI или анимацию для пользователя, пока его телефон заряжается. UI-элементы также могут содержать кнопки, так что в целом можно создать полноценный экран для продакшена. К сожалению, эту функцию нельзя включить автоматически. Пользователь должен включить её в настройках дисплея.

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

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

Felicity - многофункциональный премиальный аудиофильский музыкальный плеер для Android с встроенным DSP, визуализатором, 10-полосным эквалайзером с предусилителем и поддержкой Milkdrop.

Felicity на GitHub: https://github.com/Hamza417/Felicity
Платформа: Android
⭐️: 82

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

Это наш фреймворк для тестирования пользовательских интерфейсов на Android, основанный на Kakao, Espresso и UI Automator.

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

Статья: https://habr.com/ru/companies/kaspersky/articles/1015854/
Платформа: Android/тестирование

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

В этой статье последовательно разберем, как Swift управляет памятью: от базовых понятий вроде ARC, Copy‑on‑Write, экзистенциальных контейнеров до нетипичных задач с «зомби»-объектами и non-frozen типами. Материал основан на документации Swift, докладах WWDC и практических примерах. Статья рассчитана на middle- iOS‑разработчиков, которые хотят лучше понимать, что происходит с их кодом на уровне памяти и почему одни решения оказываются дороже других.

Эта статья выйдет в двух частях: в первой разберем теорию, а во второй — практические примеры с кодом.

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

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

Я пишу код на Swift ежедневно уже почти 10 лет. Синдром самозванца меня не пугает. Я всё повидал.

Но иногда… не знаю.

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

Сегодня мы откопаем кое-что из того, что Apple хранит в шкафу под лестницей. Мы выясним, есть ли у этих ключевых слов и функций какое-либо реальное применение, и прольем на них немного света.

Статья: https://apptractor.ru/info/articles/zapretnaya-storona-swift-kotoruyu-my-kak-pravilo-voobsche-ne-vidim.html
Платформа: iOS/Swift

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

AdaEngine — это игровой движок, полностью написанный на Swift. Предлагает полный набор функций для 2D-графики, основан на data-oriented парадигме и использует собственную ECS-инфраструктуру, вдохновлен фреймворком RealityKit от Apple.

AdaEngine прост в использовании, и главная цель — обеспечить быстрый старт и быстрый результат.

AdaEngine на GitHub: https://github.com/AdaEngine/AdaEngine
Платформа: iOS
⭐️: 113

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

Я хочу поделиться историей о том, как обычное желание разобраться в корутинах привело к детальному аудиту проекта Марчином Москалой, по итогам которого архитектурные решения в GeminiAI были отмечены как качественный пример реализации Structured Concurrency.

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

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

Производительность Flutter-приложения напрямую зависит от качества написанного кода: лишние перестроения UI, тяжёлые операции в основном потоке, неправильная работа со списками и изображениями — всё это ведёт к фризам, падению FPS и ухудшению пользовательского опыта.

В данной статье мы собрали наиболее распространённые ошибки, которые снижают производительность Flutter-приложений, и показали, как их избежать на практике.

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

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

В течение последних шести месяцев большая часть моей работы была сосредоточена на улучшении производительности и стабильности в большом устаревшем коде. И я пришел к выводу: большинство проблем с производительностью вызваны не аппаратными ограничениями. Они возникают из-за недостатков в логике и архитектуре, которые заставляют систему достигать этих пределов.

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

Статья: https://apptractor.ru/info/articles/uzkie-mesta-android.html
Платформа: Android

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

ArchiveTune — это не просто очередная стандартная оболочка для YouTube Music. Это полностью разработанный с нуля плеер, потому что ваша музыка должна оставаться конфиденциальной, выглядеть безупречно и работать именно так, как вы ожидаете. Если для вас важна качество звука и вы хотите что-то, что действительно удобно в использовании, то это именно то, что вам нужно.

ArchiveTune на GitHub: https://github.com/koiverse/ArchiveTune
Платформа: Android
⭐️: 1.1K

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

Сегодня Google представил Gemma 4 — самые интеллектуальные открытые модели на сегодняшний день. Разработанная специально для решения задач сложного логического вывода и создания агентных рабочих процессов, Gemma 4 обеспечивает беспрецедентный уровень «интеллекта на параметр».

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

Все семейство выходит за рамки простого чата и способно обрабатывать сложную логику. Крупные модели демонстрируют флагманскую производительность для своих размеров: модель 31B на данный момент занимает 3-е место среди открытых моделей в мире в текстовом рейтинге Arena AI, а модель 26B — 6-е место. Там Gemma 4 успешно конкурирует с моделями, которые в 20 раз больше её по размеру. На периферийных устройствах (Edge) модели E2B и E4B переопределяют полезность ИИ на устройстве, отдавая приоритет мультимодальности, низкой задержке и бесшовной интеграции в экосистему.

Размеры моделей Gemma 4 подобрали специально для эффективного запуска и дообучения (fine-tuning) на различном оборудовании — от миллиардов Android-устройств и ноутбуков с GPU до рабочих станций и мощных ускорителей.

Что делает Gemma 4 лучшим семейством открытых моделей:

• Продвинутое мышление: Способность к многошаговому планированию и глубокой логике.
• Агентные рабочие процессы: Нативная поддержка вызова функций (function-calling), структурированного вывода JSON и системных инструкций позволяет создавать автономных агентов.
• Генерация кода: Поддержка высококачественного написания кода офлайн.
• Зрение и аудио: Все модели нативно обрабатывают видео и изображения. Модели E2B и E4B также поддерживают нативный аудиоввод для распознавания речи.
• Увеличенный контекст: Модели Edge имеют окно контекста 128K, а крупные модели — до 256K токенов.
• Более 140 языков: Нативно обучена для работы с глобальной аудиторией.

Gemma 4 уже можно применить для разработки под Android - модель была обучена специфике Android-разработки и поддержке агентного вызова инструментов (tool calling). Выбрав Gemma 4 в качестве локальной модели, вы можете использовать «Режим агента» для различных сценариев:

• Проектирование новых функций: Попросите агента создать новую функцию или целое приложение (например, «создай калькулятор»). Агент не только сгенерирует UI-код, но и применит лучшие практики Android, такие как написание кода на Kotlin и использование Jetpack Compose.
• Рефакторинг: Вы можете давать высокоуровневые команды, такие как «Извлеки все захардкоженные строки и перенеси их в strings.xml». Агент просканирует кодовую базу, найдет нужные места и внесет правки сразу в несколько файлов.
• Исправление багов и ошибок сборки: Если проект не собирается или есть ошибки линтера (lint errors), просто скажите: «Собери проект и исправь ошибки». Агент найдет проблемный код и будет итеративно применять исправления, пока сборка не завершится успешно.
📺 Видео и подкасты за неделю

(iOS En) Don't make this mistake with a Spacer in SwiftUI
(iOS En) macOS OnBoarding Animation Using SwiftUI
(iOS En) Apple Style 2D Slider Interaction Using SwiftUI
(And Ru) Сколько стоит BDUI?
(And En) How to build on-device AI with Gemma 4
(And En) Claude Code & Cursor built the same app. There's a clear winner.
(And En) What are Gradle Dependency Configurations?
(And En) My first Plugin is LIVE on Jetbrains Marketplace! 
(Crs En) How KMP Helped a 378-Year-Old Company
(Dev Ru) 7 грехов тимлида
(Dev Ru) Зачем нужны Vim и NeoVim в 2026 — Своя среда разработки вместо готовой IDE
(Dev En) What’s new in Gemma 4
(Dev En) AIventure: Learning about vibe-coding, agents and Gen AI with Gemma 4
(Dev En) AI-Assisted Coding Tutorial – OpenClaw, GitHub Copilot, Claude Code, CodeRabbit, Gemini CLI

Прошлые видео:

(iOS Ru) Одна билд-система, чтоб править всеми
(iOS Ru) Влияние Swift Runtime на производительность приложения
(iOS Ru) Разрабатываем CLI-инструменты на Swift
(iOS Ru) Как мы разработали свой фреймворк SingleState-навигации на Android
(And Ru) Танцы вокруг дерева семантики: UI-тесты Compose-экранов
(And Ru) Многомодульность — ответы на вопросы с экспертами
(And Ru) Как работает Android Work Profile
(And Ru) Разбор кода магазина приложений
(And Ru) Опыт, Java vs Kotlin и работа со списками
(Crs Ru) Как я перестал бояться и полюбил компилятор Dart
(Crs Ru) Как Compose Multiplatform for iOS может убить Flutter?
(Alg Ru) Открытое алгоритмическое собеседование

👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность
Please open Telegram to view this post
VIEW IN TELEGRAM
Создаем Java обертку для C++ класса в Android приложении, а также реализуем обратные вызовы из нэйтива

Я более десяти лет пишу приложения под Android, около пяти лет под IOS, и сейчас переношу свои наработки под десктопы. Приложения мои предназначены для сисадминов, это SSH клиент, сетевые сканеры, утилиты. В общем, самое сложное — не сам интерфейс, а то, что спрятано под капотом. Все мои приложения состоят из двух частей: общего для всех систем ядра на С++ и платформозависимого интерфейса, написанного на Java/Swift/C++ в зависимости от системы.

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

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

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

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

👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность
Please open Telegram to view this post
VIEW IN TELEGRAM
Apple хочет чтобы я купил Mac за 200к. У меня два приложения в App Store и ни одного макбука

У меня нет макбука. Но два моих приложения лежат в App Store. Рассказываю весь путь: регистрация Apple Developer из России, сертификаты без Xcode, автоматическая сборка через GitHub Actions. Три варианта: для вайбкодеров, программистов без мака и хардкорщиков.

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

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

Cascade Editor - первый нативный блочный редактор для Compose Multiplatform.

Редактирование в стиле Notion/Craft, реализованное в виде общего ядра редактора Kotlin для Android и iOS: перетаскиваемые блоки, слэш-команды, span-элементы с форматированным текстом, пользовательские типы блоков и сериализация документов с версионированием — всё без WebView, HTML/contentEditable или встроенных редакторов JavaScript.

Cascade Editor на GitHub: https://github.com/linreal/cascade-editor
Платформа: Android/кроссплатформа
⭐️: 67
AppFiles - Mobile Development
Cascade Editor - блочный редактор текста для Compose Multiplatform Cascade Editor - первый нативный блочный редактор для Compose Multiplatform. Редактирование в стиле Notion/Craft, реализованное в виде общего ядра редактора Kotlin для Android и iOS: перетаскиваемые…
Blitz - ИИ-агенты для работы с App Store Connect

Blitz — это нативное приложение для macOS, позволяющее отправлять iOS-приложения в App Store Connect с помощью ИИ-агентов. Оно предоставляет Claude Code (или любому другому клиенту MCP) полный контроль над жизненным циклом разработки iOS-приложений: запуск симуляторов, настройка встроенных покупок, загрузка скриншотов и отправку на проверку в App Store — всё это из единого нативного графического интерфейса macOS.

Если вы страдаете от работы с App Store Connect, Blitz автоматизирует самые сложные этапы.

Blitz на GitHub: https://github.com/blitzdotdev/blitz-mac
Платформа: iOS
⭐️: 1.2K

👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность
Please open Telegram to view this post
VIEW IN TELEGRAM
Room 3 — новый мажор «комнаты». И да, теперь с поддержкой wasmJs

Давайте разберёмся, что там накатили в новом мажоре Room. На момент написания актуальная версия — 3.0.0-alpha02, а стабильный релиз, вероятно, будет к лету.

Если вдруг выпали из контекста: Room — это повсеместно используемая ORM-обёртка над SQLite. Раньше только для Android, с недавнего времени и для Kotlin Multiplatform.

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

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

Мы постепенно уходим от app-centric мира (открыть приложение → нажать кнопки) к intent-centric миру (сказать, что хочешь → система сама всё сделает).

AppFunctions — это новый API в Android, который позволяет приложению открыть свои функции для AI-ассистентов (например, Gemini).

Это уже называют переходом к agent-first модели, где приложения — это просто инструменты для AI. Очень похоже на то, как веб-сервисы когда-то стали API, только теперь это происходит прямо на уровне операционной системы.

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

Статья: https://blog.shreyaspatil.dev/the-future-of-android-apps-with-appfunctions
Платформа: Android

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

Когда вы задумываетесь о создании прокручиваемого экрана в SwiftUI, вы, возможно, рассматриваете использование List. Однако это не всегда лучший выбор. Списки отлично подходят для отображения однородных данных. Для всего остального почти всегда лучшим вариантом является ScrollView с ленивым стеком. В этой статье мы научимся создавать пользовательский прокручиваемый контейнер в SwiftUI с точным контролем внешнего вида.

Статья: https://swiftwithmajid.com/2026/04/06/building-list-replacement-in-swiftui/
Платформа: iOS

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