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

(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
📺 Видео и подкасты за неделю

(iOS En) iOS 26 Fitness App Custom Tab Bar Using SwiftUI
(iOS En) Apple Music Style Background Gradient From Image Colors Using SwiftUI
(And En) How Attackers Can Hack Your In-App Purchases (+ How You Protect Them)
(And En) Context Preservation and Multi-Coroutine Flows
(Crs Ru) Java-Swift interop vs Kotlin-Swift export. Путь к сингулярности
(Crs En) Local Database on the Web - Kotlin Multiplatform Tutorial
(Dev Ru) Генерация случайных чисел — Как работает RNG в Windows, Linux, macOS
(Dev En) Is the cost of AI a dead end?
(Tst Ru) AI в тестировании: кто тут главный?
(Tst Ru) Chaos Engineering: роняем прод, чтобы стать сильнее

Прошлогодние видео:

(iOS Ru) Исследуем мир фото и видео редакторов
(iOS Ru) Найди и исправь ошибки в коде — Задачи с собеседования
(iOS Ru) Запускаем приложения на своем iOS-симуляторе
(iOS Ru) Осторожно, Combine!
(iOS Ru) Позаботимся о памяти при использовании value-типов
(iOS Ru) Swift – больше, чем язык для iOS
(And Ru) Почему вам стоит включить Gradle Configuration Cache
(And Ru) Интеграция GeckoView в Dynamic Feature
(And Ru) Последнее слово в Android-навигации
(Crs Ru) Kotlin не для Android
(Crs Ru) Как мы делали суперапп «Дилер онлайн», и что из этого получилось
(Crs Ru) Совместная работа Kotlin/Native GC и ARC в iOS
(Dev Ru) Задача из Моего Собеседования в Amazon

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

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

В этот момент прокси-инструменты вроде Proxyman начинают играть совсем другую роль. Это уже не просто «посмотреть запросы», а полноценный слой управления трафиком.

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

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

Gemini Nano Playground - приложение для Android, предназначенное для тестирования и экспериментирования с моделью генеративного искусственного интеллекта Google Gemini Nano, работающей непосредственно на устройстве, через API ML Kit Prompt (com.google.mlkit:genai-prompt).

Этот проект создан с использованием современных методов и библиотек разработки Android:

• Kotlin: основной язык программирования.
• Jetpack Compose: для создания нативного пользовательского интерфейса.
• Hilt: фреймворк внедрения зависимостей для управления компонентами приложения.
• Google ML Kit GenAI: предоставляет модели генеративного ИИ и возможности вывода результатов на устройстве.
• Material Design 3: для стилизации и компонентов пользовательского интерфейса.
• Coroutines & Flows: для асинхронного программирования и управления состоянием.

Gemini Nano Playground на GitHub: https://github.com/dinoy-raj/gemini-nano-playground
Платформа: Android
⭐️: 6
Что же "структурированного" в Structured Concurrency?

Только спустя несколько лет работы со структурированным параллелизмом (Structured Concurrency) я наконец понял, к чему именно относится слово структурированный (structured). И раз уж для меня это оказалось неожиданностью, думаю, другим тоже может быть интересно.

Интуитивно мне казалось, что всё внутри современной модели параллелизма в Swift должно считаться structured, особенно Task. Ну правда: у задач есть хендлы, их можно отменять — по сравнению с dispatch_async или pthreads это выглядит довольно структурированно. Но, почитав документацию, я понял, что ошибался.

Статья: https://apptractor.ru/info/articles/structured-concurrency.html
Платформа: Swift

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

TTBaseUIKit — это готовый к использованию iOS-фреймворк корпоративного уровня, который устраняет шаблонный код и ускоряет разработку, предоставляя более 100 готовых к использованию базовых представлений как для UIKit (программный подход), так и для SwiftUI (декларативный подход). Создавайте готовые пользовательские интерфейсы за часы, а не за дни.

Фичи:

• Быстрая разработка
• Чистая архитектура
• Совместимость с iOS 14+
• Фреймворк для отладки
• Настраиваемые темы
• Готово к использованию ИИ-агентами

TTBaseUIKit на GitHub: https://github.com/tqtuan1201/TTBaseUIKit
Платформа: iOS
⭐️: 14

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