AppFiles - Mobile Development
2.16K subscribers
3.04K photos
41 videos
12 files
4K links
Библиотеки, обучающие статьи, курсы и видео для (мобильных) разработчиков. Если есть вопросы - пишите @lbogolubov.
Download 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
Material Photo Widget - виджет с фото

Material Photo Widget — это максимально простое приложение: виджет для главного экрана Android, отображающий фотографию или коллекцию фотографий. Это бесплатная альтернатива с открытым исходным кодом, без рекламы, для тех, кто хочет персонализировать свой главный экран любимыми фотографиями.

На самом же деле Photo Widget — это площадка для изучения и исследования современной разработки под Android.

Темы:

• Чистый и красивый пользовательский интерфейс, созданный с помощью Jetpack Compose и M3 Expressive
• Android Jetpack, включая Jetpack Compose
• Виджеты для главного экрана

Material Photo Widget на GitHub: https://github.com/fibelatti/photo-widget
Платформа: Android
⭐️: 281
Разбираем Remote Compose: как Google предлагает строить BDUI

Технологии Backend-Driven UI уже давно используются во многих компаниях, включая Альфа-Банк. Существует множество реализаций этого подхода, и недавно Google представил собственное решение — Remote Compose.

Remote Compose выглядит очень перспективной технологией. Фреймворк активно развивается и поддерживается командой Google. Однако на момент написания статьи технология всё ещё находится в alpha-версии, поэтому использовать её на проде пока рано.

Но я изучил этот фреймворк и хочу поделиться своим опытом, а когда Remote Compose выйдет в бета-версию вы будете знать, как с ним работать

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

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

В SwiftUI анимации действительно мощные, и среди них пружинная анимация даёт реалистичное и плавное ощущение — как будто элементы двигаются естественно, с эффектом отскока и переразгона (overshoot).

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

Статья: https://apptractor.ru/info/articles/osvaivaem-pruzhinnuyu-animatsiyu-v-swiftui.html
Платформа: iOS

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

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

Технологический стек

• SwiftUI
• WidgetKit
• SiriKit
• EventKit/EvenKit UI
• WatchKit
• Combine
• Catalyst
• StoreKit

Сейчас автор отдает проект в "добрые руки", так как не может больше поддерживать его.

Clendar на GitHub: https://github.com/vinhnx/Clendar
Платформа: iOS
⭐️: 707

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

Честный анализ от опытного Android-разработчика: что работает, что не работает, и инструмент за 3 доллара, который заменил 3 часа ежедневной рутинной работы.

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

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

PromptKeeper — это зашифрованное хранилище запросов, ориентированное на CLI, которое разделяет возможности изменения запросов и их выполнения.

PromptKeeper был создан для решения следующих проблем:

• Утечка ключей API: секретные ключи внедряются в мобильные приложения, код фронтенда, распределенные системы или «временные отладочные» выходные данные.
• Утечка запросов: шаблоны запросов для производственной среды (часто тела функций) попадают в репозитории, журналы CI, мобильные приложения или артефакты клиентов.
• Отсутствие разделения обязанностей: редактирование и выполнение запросов осуществляются с использованием одних и тех же полномочий, поэтому утечка становится компрометацией всей системы.

PromptKeeper сужает радиус поражения, обеспечивая разделение полномочий по управлению и выполнения.

PromptKeeper не является универсальным менеджером секретов и не заменяет такие системы, как Vault или AWS Secrets Manager. Он ориентирован на изоляцию запросов LLM и секретных ключей. Платформа хранит ключи API в зашифрованном виде с помощью AWS KMS, безопасно передает ключи, доступные только для выполнения, в продакшн, и предотвраoftn утечку ключей, которая может привести к раскрытию ваших данных.

PromptKeeper на GitHub: https://github.com/AI-Prompt-Keeper/promptkeeper
Платформа: разработка
⭐️: 0

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