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

Мне хотелось решить ещё одну задачу: сделать AGSL более массовой и понятной технологией для Android-разработчиков. Потому что в нативном виде AGSL мощный, но психологически для многих выглядит как «не трогай, это на Новый год». А мне хотелось, чтобы к шейдерам можно было подойти без дрожи в коленях и без ощущения, что сейчас придётся разговаривать с господином ПЖ на древнем пацакском наречии.

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

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

В статье offline-first определяется как подход, где локальная база данных становится главным источником данных, а сеть — механизмом фоновой синхронизации. Автор отдельно подчеркивает Single Source of Truth: UI читает из локальной БД, сеть только обновляет её, а изменения в интерфейс прилетают через наблюдение за базой. Также в статье разбираются стратегии cache-first, network-first и stale-while-revalidate, плюс паттерн local-first write с отложенной синхронизацией через pending-статусы.

Статья: https://freedium-mirror.cfd/https://medium.com/android-alchemy/android-offline-first-and-mobile-system-design-c96db284e576 🇺🇸
Платформа: Android

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

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

Они буксуют, потому что каждый роадмеп как под копирку требует выучить всё сразу: Kotlin, Compose, XML, Coroutines, Flow, Hilt, Room, Retrofit, Firebase, WorkManager, Clean Architecture, KMP, CI/CD, тестирование, публикацию в Play Store, анимации, performance-оптимизацию, модульную архитектуру, поддержку складных устройств, планшетов, TV, Wear — и, возможно, заодно ещё обрести внутренний дзен.

Так люди и тратят месяцы на «подготовку» и всё ещё не могут создать ни одного чистого Android-приложения с нуля, не открывая двенадцать вкладок и не испытывая панической атаки.

Если вы хотите стать Android-разработчиком быстрее в 2026 году, вам не нужно изучать всё. Вам нужно изучать правильные вещи в Android в правильном порядке.

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

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

Месяц назад мы выпустили перевод книги «iOS 18 App Development Essentials» Нила Смита — автора, которого англоязычное сообщество знает по многолетней серии учебников по разработке приложений под платформы Apple и Android. Книга вышла под названием «Основы разработки приложений для iOS», насчитывает 736 страниц и охватывает всё от синтаксиса Swift до публикации приложения в App Store. Книга вышла довольно толстой (а перевод всегда немного больше оригинала), но этот объем заполнен довольно полезной и актуальной информацией.

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

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

Roxum IDE — это ориентированный на мобильные устройства редактор кода и мини-IDE для Android, созданный на основе Flutter. Он объединяет в одном приложении редактирование, работу в терминале, инструменты Git/GitHub, ИИ-помощь, загрузку runtime файлов и широкие возможности настройки.

Roxum IDE на GitHub: https://github.com/heckmon/roxum-ide
Платформа: Android/кроссплатформа
⭐️: 48

👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность
Please open Telegram to view this post
VIEW IN TELEGRAM
В iOS 26 SwiftUI наконец-то стал таким же быстрым, как UIKit?

Итак. Раз и навсегда. SwiftUI так же производителен, как UIKit?

Статья: https://apptractor.ru/info/articles/ios-26-swiftui.html
Платформа: iOS

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

CocoaLumberjack — это быстрая и простая, но при этом мощная и гибкая платформа для ведения логов, предназначенная для macOS, iOS, tvOS, watchOS и visionOS.

Фичи:

• Lumberjack — быстрый. В большинстве случаев он на порядок быстрее, чем NSLog.
• Lumberjack — простой. Для настройки Lumberjack при запуске вашего приложения достаточно всего одной строки кода. Затем просто замените ваши операторы NSLog на операторы DDLog, и это практически все. (А макросы DDLog имеют точно такой же формат и синтаксис, как и NSLog, поэтому это очень просто.)
• Lumberjack — мощный. Один оператор логирования может быть отправлен нескольким логгерам, что означает, что вы можете одновременно записывать логи в файл и в консоль. Хотите больше? Создавайте собственные логгеры (это легко) и отправляйте свои сообщения в лог по сети. Или в базу данных, или в распределенную файловую систему. Возможности безграничны.
• Lumberjack — гибкий. Настраивайте логирование так, как вам нужно. Изменяйте уровни логирования для каждого файла (идеально подходит для отладки). Изменяйте уровни логирования для каждого логгера (подробная консоль, но лаконичный лог-файл). Изменяйте уровни логирования для каждой конфигурации Xcode (подробная отладка, но лаконичный релиз). Получайте сообщения в лог из релизной сборки. Настраивайте количество уровней логирования для вашего приложения. Добавляйте собственное детальное логирование. Динамически изменяйте уровни логирования во время выполнения. Выбирайте, как и когда вы хотите, чтобы ваши лог-файлы были скомпилированы. Загружайте ваши лог-файлы на центральный сервер. Сжимайте архивированные лог-файлы для экономии места на диске...

CocoaLumberjack на GitHub: https://github.com/CocoaLumberjack/CocoaLumberjack
Платформа: iOS
⭐️: 13.3K

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

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

Ранее соединение нескольких виртуальных устройств Android (AVD) вызывало значительные сложности. Для подключения двух эмуляторов требовалось вручную управлять сложными правилами переадресации портов.

Теперь вы можете воспользоваться новым сетевым стеком для эмулятора Android, который обеспечивает беспроводное соединение без необходимости настройки между всеми вашими AVD.

Статья: https://apptractor.ru/info/articles/testirovanie-vzaimodeystviya-neskolkih-ustroystv-v-android-emulator.html
Платформа: Android

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

Создавайте скриншоты App Store для всех необходимых размеров устройств одной командой. Запускайте ваши UI-тесты на нескольких симуляторах параллельно (или непосредственно в macOS), организуйте вывод по устройству и локали и автоматически определяйте, какому размеру App Store соответствует каждый симулятор. Поддерживает скриншоты App Store для iPhone, iPad, Apple Watch и Mac.

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

• Storescreens (CLI) - основной исполняемый файл. Запускает тесты пользовательского интерфейса на симуляторах, делает снимки экрана, создает галерею предварительного просмотра HTML.
• Storescreens-mcp (MCP-сервер) - структурированная обертка, которая предоставляет доступ к операциям CLI в виде Model Context Protocol инструментов с потоковой передачей прогресса.
• Storescreens-skill - агентский навык с инструкциями и шаблонами, которые учат помощника определять ваш проект Xcode, генерировать конфигурацию, создавать шаблоны UI-тестов пользовательского интерфейса и запускать захват.

StoreScreens на GitHub: https://github.com/ciscoriordan/storescreens-cli
Платформа: iOS
⭐️: 5

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

(iOS En) Automatic App Store Uploads w/ Bitrise and CI/CD
(And Ru) Разработка виджетов в Android: что может пойти не так
(And En) Build Android apps using any AI agent with Android CLI and skills
(And En) Google Play PolicyBytes - April 2026 policy updates
(And En) How Uber Uses AI to Move from Java to Kotlin
(And En) The New Name-Based Destructuring in Kotlin 2.3.20
(And En) Lead Android Engineer Mock Interview – Stock Trading App System Design (все собеседования)
(Crs En) Best KMP libraries with Klibs.io!
(Dev Ru) Почему AI разрушает Open Source прямо сейчас
(Dev En) Build a Voice-Enabled Telegram Bot with the Gemini Interactions API
(Dev En) 3 Theoretical Limits of AI - These Things Can't Be Fixed
(Dev En) System Design Course – APIs, Databases, Caching, CDNs, Load Balancing & Production Infra
(Mrk Ru) Что ждет мобильные приложения? CEO единорога Flo на $1млрд о фандрейзинге, web2app и AI-гонке

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

(iOS Ru) От модуляризации к Clang и обратно
(iOS Ru) Суперапп с чистого листа
(iOS Ru) А так ли нужна Swift Modern Concurrency?
(iOS Ru) Мгновенный фидбэк: как оперативно получать отзывы о приложении в App Store
(And Ru) Универсальное демоприложение
(And Ru) Не два байта переслать: эмуляция бесконтактных карт на мобильных устройствах
(And Ru) Архитектурное собеседование Android разработчика
(And Ru) Устройство Android Music SDK или как мы встроили музыку в суперапп-приложение
(And Ru) Интеграция MediaPipe в Android-приложение видеоконференцсвязи
(Dev Ru) Как устроена мобильная разработка в Кинопоиске

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

Android skills - это специализированный репозиторий оптимизированных для модульных инструкций и ресурсов, призванный LLM лучше понимать и применять конкретные шаблоны, соответствующие лучшим практикам и рекомендациям Google по разработке под Android.

Навыки Android основаны на открытом стандарте — файлах Markdown (SKILL.md), которые предоставляют техническое описание задачи и знакомят языковые модели со специализированными областями и рабочими процессами. В настоящее есть 6 областей, для которых созданы навыки:

• Обновление до AGP 9
• Миграция XML view в Jetpack Compose
• Navigation 3
• R8
• Обновление Play Billing Library
• Edge-to-edge

Android skills на GitHub: https://github.com/android/skills
Платформа: Android
⭐️: 3.7K

👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность
Please open Telegram to view this post
VIEW IN TELEGRAM
Фильтр Калмана, geohash fog of war и три реджекта Apple: как я собрал GPS-трекер на SwiftUI

Контекст: я бэкенд-разработчик, до этого проекта не написал ни строчки на Swift. iOS для меня был чёрным ящиком – CoreLocation, MapKit, жизненный цикл приложения, фоновые режимы, App Store Review. Идея жила в голове три года, но подступиться не мог: казалось, что одному, без мобильного опыта, это неподъёмно. Сдвинулось всё, когда я начал работать с AI-агентами (Claude + Cursor) – но об этом ближе к концу.

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

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

Я переходил на более новую версию The Composable Architecture, а это означало, что нужно было исправить ряд устаревших функций. Одним из пунктов этого списка было добавление InferSendableFromCaptures в качестве флага будущей функции Swift для всех наших таргетов.

SE-0418 действительно интересен. Он делает так, чтобы ссылки на методы более точно участвовали в проверке возможности отправки при использовании в качестве значений. Это одно из тех предложений, которое кажется очевидно правильным, как только вы его прочтете.

Я добавил его во время подготовки к Swift 6, надеясь выявить проблемы до начала работы над TCA 2.0. Я был готов исправлять код. Но я не был готов к еще одному путешествию в мир concurrency. К такому путешествию, которое бросает вызов тому, что я уже знал, просто чтобы убедиться, что я действительно это знаю.

Статья: https://apptractor.ru/info/articles/nebolshoe-preduprezhdenie-swiftui-i-dolgiy-put-k-ego-ponimaniyu.html
Платформа: iOS

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

Google продолжает превращать AI в нативную часть Android, и свежий апдейт для разработчиков это хорошо показывает. Главная идея — больше не нужно выбирать между локальными и облачными моделями: теперь их можно объединять.

Ключевое нововведение — гибридный инференс. Он позволяет запускать часть задач прямо на устройстве, а часть — в облаке. Это работает через Firebase AI Logic API и даёт разработчикам гибкость: можно ускорять отклик, снижать нагрузку на сеть и при этом не терять в качестве. Плюс повышается приватность, потому что не все данные отправляются наружу.

Параллельно Google обновила линейку моделей Gemini, которые теперь проще интегрировать в Android-приложения. Появились новые решения для генерации изображений: более мощная модель делает качественные картинки с точным текстом и даже имитацией почерка, а более лёгкая версия оптимизирована под скорость и массовые сценарии вроде UI-графики, стикеров и визуального контента внутри приложений.

В демонстрациях Google показывает довольно практичные кейсы: например, генерация текстов с последующим переводом на разные языки. При этом всё может работать в гибридном режиме — часть обработки происходит локально, часть в облаке, и пользователь не замечает этой “магии” под капотом.

По сути, Android движется к модели, где AI становится встроенной возможностью системы. Разработчики получают инструменты для создания офлайн-функций, быстрых ассистентов и генеративных фич прямо внутри приложений без сложной инфраструктуры.

Новость: 🇺🇸 https://android-developers.googleblog.com/2026/04/Hybrid-inference-and-new-AI-models-are-coming-to-Android.html
Платформа: Android

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