Mobile Development by AppTractor
11K subscribers
1.87K photos
38 videos
11 files
4.68K links
Цифры, советы и все интересное о разработке мобильных приложений и сервисов. Комментарии и вопросы можно писать прямо @lbogolubov

• Аудитория https://t.me/apptractor/1066
• Сайт https://apptractor.ru/
Download Telegram
Про мобайл от Кота

Мобильный рынок полон секретов, неожиданных находок и интересных путей. Я давно знаю автора канала BlogOneCat и могу сказать точно - он профи, который умеет зарабатывать на мобильных продуктах. И его канал — это не сухая подборка ссылок, а живые мысли человека, который много лет работает с мобильными приложениями и знает индустрию изнутри.

Здесь нет воды и пустых рассуждений — только ценные наблюдения, разборы и опыт, который можно сразу применить на практике. К тому же его команда вскоре планирует запустить множество обучающих уроков - так что если ты работаешь в мобильной разработке, маркетинге или просто хочешь понимать, как устроен рынок приложений, этот канал стоит твоего внимания.
👍14🤡14🔥84
Скрытые угрозы Google

Все статьи и новости за прошедшую неделю - OCR-сервер на iPhone и разработчики против регистрации Google, скрытые угрозы Room и golden-тесты во Flutter, Kotlett и динамические обновления без релизов и BDUI, мобильный интерфейс без человека, приложения, вышедшие в августе, и заработавшие больше $50К и многое другое.Заходите!
👍1
iOS

При добавлении визуальных элементов в SwiftUI-приложение SF-символы всегда были надежным выбором. В SF Symbols 7 и iOS 26 Apple представляет анимацию рисования — новую функцию, которая оживляет иконки. В отличие от традиционной анимации? вроде изменения масштаба, анимация рисования имитирует естественный процесс рисования иконки пером, создавая более привлекательные и выразительные пользовательские интерфейсы. В результате получается более выразительный и продуманный эффект, который ощущается как созданный вручную, динамичный и реалистичный.

Делаем анимацию отрисовки для SF Symbols в SwiftUI
SwiftUI-Adapter — поддержка новых модификаторов SwiftUI на старых версиях iOS
Переезд на Swift 6: строим графы для успешной миграции
All about Swift Package Manager Traits
iOS 26: Foundation Model Framework - Code-Along Q&A
Less Janky Placeholders in SwiftUI
Learnable, Memorable, Accessible
👍1
Android

На прошлой неделе Amazon провел свою ежегодную осеннюю конференцию, посвященную устройствам, на которой представил линейку смарт-колонок, смарт-дисплеев и устройств для потоковой передачи данных нового поколения. Наряду с выпуском новых устройств, компания наконец-то представила Vega OS — давно разрабатываемый шаг в сторону от платформы Fire OS на базе Android. Но как Amazon удалось заполучить приложения ведущих стримеров, которые вряд ли поспешили переходить на новую платформу? Оказывается, компания сделала стриминг Android-приложений со своих AWS серверов. В результате уже в момент запуска ОС получила довольно обширную библиотеку приложений. Есть множество проблем и с этим решением, но вполне оригинальный подход, который разом решил проблему отсутствия приложений на новой платформе.

Как убрать Activity context из ViewModel и написать Unit-test
Android добрался до ноутбуков
Vega OS будет стримить Android-приложения
QuickBall — быстрый доступ к системным настройкам
Understanding SupervisorJob in Kotlin Coroutines
Breaking the Speed Barrier: How Non-Blocking Splash Screens Cut Android App Launch Time by 90%
Morphing Blobs with Jetpack Compose: From Circle to Organic Waves
Supercharge Your App: Why the Android App Startup Library is a Must-Have
Visibility APIs in Jetpack Compose 1.9
MCP Server for Android UI Analysis
1
Google делает свой ИИ-агент кодирования Jules ещё более полезным для разработчиков благодаря новому интерфейсу командной строки и общедоступному API, позволяющему подключаться к терминалам, системам непрерывной интеграции и непрерывной доставки (CI/CD) и таким инструментам, как Slack. До сих пор Jules — асинхронный агент кодирования от Google — был доступен только через веб-сайт и GitHub. В четверг компания представила Jules Tools — интерфейс командной строки, который позволяет Jules работать непосредственно из терминала. CLI позволяет разработчикам взаимодействовать с агентом с помощью команд, оптимизируя рабочие процессы, устраняя необходимость переключения между веб-интерфейсом и GitHub. Он позволяет разработчикам оставаться в своей среде, делегируя задачи кодирования и проверяя результаты.

Разработка

Jules от Google начал работать с командной строкой и API
Supabase достигла оценки в $5 млрд
Язык программирования Mojo
Docs as Code. Когда документация становится частью кода, а не пыткой
Архитектура LLM — BERT, трансформеры, attentions
Можно ли сделать мобильный интерфейс без человека. Эксперимент с ИИ. Часть 2
Kick для QA-инженеров
Why Sticky Navigation Can Undermine Accessibility

Маркетинг

4270 установок за один день
800 долларов в месяц на инструменте, который исправляет неработающие формулы в Excel. Не секси, но за это платят.
Как рейтинг приложения влияет на ранжирование ключевых слов
Перестань создавать бесполезное г***о

Кроссплатформа

8 Months, Multiple Apps, Small Wins — Lessons from My Side Projects
2👍1
This media is not supported in your browser
VIEW IN TELEGRAM
🤖 OpenAI запускает приложения внутри ChatGPT

OpenAI запускает новый способ создания приложений внутри ChatGPT. С понедельника пользователи ChatGPT смогут получить доступ к интерактивным приложениям таких компаний, как Booking.com, Expedia, Spotify, Figma, Coursera, Zillow и Canva. OpenAI также запускает предварительную версию Apps SDK — инструмент для создания этих приложений.

Новая система — это еще одна попытка OpenAI построить экосистему приложений вокруг ChatGPT. Это немного похоже на «мини-приложения», встроенные в платформы мессенджеров, таких как Telegram и Discord, или на расширения, добавляющие элементы управления музыкальными плеерами в Dynamic Island вашего iPhone, но с использованием искусственного интеллекта. Благодаря этим интеграциям вы можете продолжать общаться с ChatGPT, одновременно предоставляя инструкции о том, как он должен взаимодействовать с приложением. Это позволяет разработчикам эффективнее распространять создаваемые ими приложения, а ChatGPT сделать более удобным для пользователей.

Вводя названия различных приложений в ChatGPT, пользователи могут получать контент из различных сервисов. Например, можно сказать: «Figma, преврати этот набросок в рабочую диаграмму», чтобы открыть приложение Figma. ChatGPT также будет показывать подходящие приложения, когда они могут быть полезны пользователю.

OpenAI заявляет, что новая система построена на основе Model Context Protocol (MCP), который позволяет разработчикам подключать свои источники данных к системе искусственного интеллекта. Приложения ChatGPT также могут активировать действия и отображать полностью интерактивный пользовательский интерфейс в ответах чат-бота. Если пользователи уже подписаны на продукт, они смогут войти в свою учетную запись непосредственно в ChatGPT для доступа к определенным функциям. Альтман также говорит, что OpenAI в будущем будет поддерживать способы монетизации приложений внутри ChatGPT, в том числе с помощью недавно запущенной компанией функции мгновенного оформления заказа в ChatGPT.

Ключевыми вопросами, связанными с приложениями в ChatGPT, будут конфиденциальность и объем данных, к которым будут иметь доступ сторонние разработчики. OpenAI заявляет, что разработчики должны «собирать только минимально необходимые данные и предоставлять прозрачные разрешения». Однако неясно, будут ли разработчики иметь доступ ко всей переписке пользователя с ChatGPT, к нескольким последним сообщениям или только к окошку, вызвавшему запуск приложения. Также неясно, как ChatGPT будет выбирать сервис среди конкурирующих компаний, таких как DoorDash и Instacart. Можно представить, как компании могли бы платить за то, чтобы их имена появлялись в ответах ChatGPT, но OpenAI заявляет, что планирует ставить пользовательский опыт превыше всего.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🤡3
iOS

Многие iOS-разработчики, переходя на async/await, совершают типичные, но серьёзные ошибки — от неправильного использования for await до игнорирования отмены задач. Иногда они просто предполагают, что все асинхронные функции исполняются на фоне, что может привести к «заморозке» интерфейса и отказу приложения при ревью в App Store. Другие часто начинают вручную переписывать существующий код под Swift Concurrency, не учитывая тонкости строгой конкуренции, — и из-за этого миграция растягивается на месяцы. Также опасно создавать задачи внутри onAppear, что может породить дублированные вызовы API и ненужную нагрузку.

The 5 biggest mistakes iOS Developers make with async/await
iOS Developer Struggles Every Swift Dev Should Know
Swift 6.3 Macros: Reducing Boilerplate by 40% in Real Projects
SwiftUI: Eliminating Navigation Registrations
👍61
Android

Подход с неблокирующим сплеш-скрином обеспечивает значительное повышение производительности (на 90% быстрее загрузка страницы при консервативном тестировании и до 95% при сложной анимации), но и здесь есть свои недостатки. Параллельная обработка увеличивает пиковое использование памяти и нагрузку на процессор, что может быть проблематично на устройствах начального уровня. Ключевой вывод: преимущества существенны и измеримы, но они сопровождаются затратами ресурсов, которые необходимо контролировать с помощью стратегий адаптивной реализации.

Преодолевая барьер скорости: как неблокирующие заставки сокращают время запуска приложений Android на 90%
Compose Exploded Layers — слои Compose в 3D
Input to Your Inputs - What Invalidates Gradle Configuration Cache?
Kotlin Mutex: Thread-Safe Concurrency for Coroutines
Scaling Android Apps to Millions of Users: Architecture Lessons
Event-Driven Architecture in Android: Using Flows & SharedFlow for App-wide Events
👍2
Этот репозиторий представляет собой попытку упорядочить ключевые принципы проектирования систем по аналогии с периодической таблицей химических элементов. Автор анализирует десятки фундаментальных работ в области систем (базы данных, операционные системы, распределённые системы и др.) и выделяет более 40 сквозных принципов — таких как Modularity, Scalability, Fault Tolerance, Abstraction Lifting, Consistency Relaxation и др. Каждый принцип снабжён коротким обозначением, группируется по тематическим категориям (структура, эффективность, распределённость, надёжность и т.д.) и сопровождается описанием намерения (intent), без привязки к конкретным технологиям или паттернам. Сильная сторона проекта — универсальность и мастерская синтеза: здесь не «рецепты кода», а словарь концепций, который помогает разработчикам, архитекторам и студентам видеть связи между разными областями систем. Минусы: границы между принципами могут быть нечетки, и некоторые решения подвергаются дублированию или пересечению. В целом, проект полезен как вспомогательный инструмент мышления при проектировании больших систем — как способ быстрее увидеть «что за чем следует» и какие компромиссы заложены в архитектурное решение.

Разработка

OpenAI запускает AgentKit, чтобы помочь разработчикам создавать и поставлять ИИ-агентов
OpenAI запускает приложения внутри ChatGPT
Команда Swift анонсирует Swift Profile Recorder
Supercharge Cursor and Claude with your team’s knowledge
Elements of System Design

Маркетинг

Дилемма локализации

Кроссплатформа

Why Your Compose Multiplatform App Still Needs Native Code
How I Brought a 5-Year-Old Flutter App Back to Life (and What You Can Learn From It)
2😁1
AltStore PAL расширяется

AltStore PAL, запущенный в прошлом году и ставший одним из первых альтернативных магазинов приложений для iOS в ЕС, запускается в новых странах, объявил сегодня его разработчик Райли Тестут. «В частности, мы планируем запуститься в Японии, Бразилии и Австралии до конца года, а в 2026 году — в Великобритании», — говорит Тестут. Запуск в большем количестве стран — «безусловно, наш главный вопрос», хотя команда AltStore всё ещё ждёт от Apple информации о точных сроках.

Тестат также говорит, что AltStore делает серьёзный шаг в сторону федиверса, используя протокол ActivityPub, чтобы «федерализировать приложения, обновления приложений и новости из AltStore в открытой социальной сети». Функции Fediverse появятся в AltStore PAL в «ближайшие несколько месяцев».

AltStore также получает инвестиции в размере 6 миллионов долларов, что позволит команде нанять больше сотрудников и обеспечить «необходимую пропускную способность для завершения интеграции Fediverse и расширения AltStore по всему миру».
🔥41
Apple запрещает бесплатную раздачу приложений

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

В ролике приводится кейс Gym AI: за сутки 4 000 установок и всплеск оценок, после чего пришло официальное предупреждение от Apple. Apple указывает на манипулирование чартами, отзывами и поисковым индексом, а также на возможное «скрытие функциональности от ревью‑команды» и «фальсификацию потребительских отзывов», что подпадает под нарушения Apple Developer Program License Agreement. Автор предполагает, что кратковременная «раздача» может трактоваться как предоставление пользователю ценности в обмен на положительный отзыв, то есть как форма стимулированных отзывов, даже если прямой оплаты нет.

По словам автора, как минимум шесть инди‑разработчиков получили такие предупреждения, а в одном случае Apple приостановила будущие выплаты, что усиливает серьёзность последствий. Письма содержат предупреждение о возможной утрате аккаунта разработчика при манипуляциях рейтингами, отзывами или поисковой выдачей, что ставит под удар весь аккаунт и портфель приложений. Если это первое предупреждение, по опыту из видео у разработчика есть окно, чтобы «привести аккаунт в порядок» и устранить нарушения; в кейсе упоминается 30‑дневный срок.

AppGrowth про инди, пет и монетизацию
3
iOS

В статье подробно раскрывается, как в Swift с помощью фреймворка Natural Language и класса NLLanguageRecognizer определить язык произвольного текста. После обработки строки методом processString можно получить доминантный язык, а также набор возможных языков с вероятностями через languageHypotheses. Авторы показывают, как перевести код языка (например, "en") в читабельную строку через Locale.current.localizedString(forIdentifier:). Кроме базового примера, статья также рассматривает улучшения: как сбрасывать состояние распознавателя (метод reset()), как ограничивать список поддерживаемых языков (languageConstraints) или задавать подсказки (languageHints) для повышения точности. В целом, это полезное руководство, чтобы добавить автоматическое определение языка в iOS/Swift-приложение.

AltStore PAL получает инвестиции и расширяется
SwiftyChat — интерфейс чата на SwiftUI
Adapting SwiftUI Sheet to Fit Content Height
Detecting Text Language with NLLanguageRecognizer in Swift
SwiftUI: Image Generation With Foundation Model
👍1
Android

Если вы Андроид-разработчик, думаю, вам часто приходилось сталкиваться с ситуациями, когда код вашего приложения выбрасывает необрабатываемое исключение и ваше приложение закрывается. На сленге можно сказать, что «приложение крашится». В этой статье автор разберётся, почему это происходит и какие механизмы лежат в основе такого поведения.

Почему моё Android-приложение крашится?
Side Effects in Jetpack Compose — Explained Simply
Difference between emit and tryEmit in Kotlin Flow
Medium Android App — Migrating from Apollo Kotlin 3 to 4: Lessons Learned
👍3🤡3
Google представил новую модель искусственного интеллекта Gemini, предназначенную для навигации и взаимодействия с вебом через браузер. Это позволит ИИ-агентам выполнять действия в интерфейсах, разработанных для людей, а не роботов. Модель, получившая название Gemini 2.5 Computer Use, использует «возможности визуального понимания и рассуждения» для анализа запроса пользователя и выполнения задачи, например, заполнения и отправки формы. Google заявляет, что его Computer Use модель «превосходит ведущие альтернативы в нескольких веб- и мобильных бенчмарках». В отличие от ChatGPT Agent и инструмента «использования компьютера» от Anthropic, новая модель искусственного интеллекта Google имеет доступ только к браузеру, а не ко всей компьютерной среде. Google отмечает, что она «пока не оптимизирована для управления ОС» и в настоящее время поддерживает только 13 действий, включая открытие веб-браузера, ввод текста и перетаскивание элементов.

Разработка

Google выпустил Gemini 2.5 Computer Use для работы с браузером
Your Best Mobile Developer Is the “Slow” One
Solving Double Booking at Scale: System Design Patterns from Top Tech Companies

Маркетинг

Apple запрещает бесплатную раздачу приложений
Доход х5 с помощью микроинфлюенсеров

Кроссплатформа

Rijksmuseum — музей на Kotlin Multiplatform
The Flutter Architecture That Saved Our Team 6 Months of Rework
1👍1
Как обеспечить надёжность автотестов: опыт ЮMoney и SimbirSoft 🪲

Bugs Busters — бесплатный митап ЮMoney для QA-специалистов. Опыт ЮMoney и приглашённого спикера из SimbirSoft применим в любых компаниях, для которых важна надёжность и стабильность цифровых сервисов.

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

Вот о чём расскажут спикеры из ЮMoney и SimbirSoft:

🟣 UI Automation без UI: стабильные автотесты в мире нестабильных iOS-приложений. Поделимся опытом, как мы адаптировали XCUITests на основе SDK-first тестовой архитектуры.
🟣 Мечтают ли Android-эмуляторы о запуске в Docker? Расскажем, как мы обошлись без классической фермы устройств при запуске Android-автотестов на CI.
🟣 Скелеты в шкафу мобильного тестирования: на примере проектов ЮMoney рассмотрим, как поддерживать сотню устройств всегда готовыми к работе. Разберём риски постоянной зарядки девайсов, расскажем о выбранной стратегии и первых шагах к удалённому управлению через DeviceHub.

15 октября, среда, в 19:00 (мск) — присоединяйтесь онлайн или приходите в офис ЮMoney в Санкт-Петербурге, чтобы пообщаться с командами, которые ежедневно тестируют под реальной нагрузкой.

Зарегистрируйтесь, чтобы принять участие. Все подробности — на сайте митапа Bugs Busters ™️
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21👻1
Android

Статья отлично разбирает, как устроены таски (tasks) и стек возврата (back stack) под капотом. Автор показывает, что активити — это «глава истории», а стек — это последовательность этих глав, которыми управляет Android по принципу LIFO (последний зашёл — первый вышел). Но самое интересное — как разработчики могут контролировать это поведение. В статье глубоко объясняются launch modes (standard, singleTop, singleTask, singleInstance) и intent flags (FLAG_ACTIVITY_NEW_TASK, FLAG_ACTIVITY_CLEAR_TOP и др.), а также такие нюансы, как taskAffinity, атрибуты вроде clearTaskOnLaunch и поведение кнопки «назад» на Android 12+. Если вы пишете навигацию или сложные потоки переходов в Android-приложении — эта статья точно стоит внимания.

JetCo Library — готовые UI-компоненты Compose
Understanding “Tasks” and the Back Stack in Android — The Story Behind Your App’s Journey
Android App Architecture Patterns 2025: Building Scalable Apps with Hilt, Navigation, and ViewModel
15 Android Developer Productivity Hacks
4
iOS

Хотите добавить генерацию изображений с помощью Foundation Models прямо в SwiftUI-приложение? В этой статье подробно разобрано, как заставить модель создавать картинки на устройстве — без сторонних API и серверов. Автор показывают, какие подходы не работают (и почему), делится реальными примерами кода и объясняет ограничения фреймворка.

Генерация изображений с использованием Foundation Models в SwiftUI
Stop Using Fixed Frames in SwiftUI: The Complete Guide to containerRelativeFrame()
Building AI features using Foundation Models. Streaming.
Taking control of your navigation in SwiftUI with NavigationPath
Building a Real-Time Trading Co-Pilot on iOS
👍1
Занятная история про то, как человек создал цифровой физический продукт - печатный журнал со всеми кофейнями города, печатающийся по запросу.
Если вы разработчик и думаете о создании чего-то, вам не нужно создавать ещё один SaaS-сервис. Рынок просто переполнен. Но есть множество других видов бизнеса с возможностями автоматизации. Физические товары, локальные услуги, контент-бизнес — что угодно.


Разработка

Я навайбкодил физический продукт, вместо очередного SaaS
8 Tiny UI Fixes That Will Make Your Product Feel 10x Smarter

Маркетинг

Исследование мобильных пушей от Mindbox
Новые требования для iOS-приложений в Техасе
Pokémon Sleep исполнилось два года — как обстоят дела у конкурентов?

Кроссплатформа

«Ох, зря я туда полез…»: история о том, как мы переезжали на React Native
1👍41
📺 Видео и подкасты за неделю @AppFiles

(iOS Ru) Неуловимый iOS-ботовод. Задетекти меня, если сможешь: автореги, боты, спамеры
(iOS Ru) Разработка под Apple Vision Pro: исследуем возможности гарнитуры
(iOS En) Secure your app with Memory Integrity Enforcement
(iOS En) Interactive Map with Draggable Bottom Sheet - SwiftUI
(iOS En) iOS App Development in 2025: How to Choose Your Tech Stack and Architecture
(iOS En) Full-Screen Sheets Using SwiftUI
(iOS En) Customized Animated Paywall using Native SwiftUI StoreKit APIs
(And Ru) Автообновление Android: когда можно не бояться санкций сторов
(And Ru) Доверяй, но проверяй: про корневые сертификаты в Android и не только
(And Ru) Как правильно написать фичу. Часть 1
(And Ru) Что ждёт Android-разработчика на собесе в Wildberries (+ все собеседования)
(Crs Ru) Миграция больших приложений на KMP: проблемы, подводные камни, решения
(Crs En) Build Your First Compose Multiplatform Web App
(Crs En) In-depth on Metro — with Zac Sweers
(Dev Ru) Как мы сделали CI, которому можно доверять
(Dev Ru) Почему текстовый поиск устарел — векторные базы, эмбеддинги, RAG
(Dev En) How to build AI agents with memory
(Dev En) You can write code faster. Can you deliver it faster?

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

(iOS Ru) Собеседование iOS-разработчика: проектирование и лайфкодинг
(Crs Ru) Flutter Web глазами мобильного разработчика
(Dev Ru) Мобильная разработка в Алисе и YaOS: как это работает
(Dev Ru) Перформанс мобильных приложений
Please open Telegram to view this post
VIEW IN TELEGRAM
Генерация крашей

В этом еженедельном дайджесте отрисовка SF Symbols в SwiftUI и краши Android-приложений, неблокирующие заставки и история о переезде на React Native, физический продукт, вместо очередного SaaS, запрет бесплатных раздач приложений от Apple, Топ-10 лучших бесплатных нейросетей и многое другое. Заходите!
👍4🔥2
iOS

В статье подробно разбирается, как в SwiftUI воссоздать визуальный эффект свечения в стиле «Apple Intelligence». Автор показывает, как сочетать несколько слоёв Stroke, размытие и анимированные градиенты, чтобы добиться мягкого светящегося ореола вокруг элементов интерфейса. Ключевая идея — создание многоуровневой композиции: один слой без размытия, другой с наложенным блюром, плюс динамическая смена цветовых стопов градиента. Такое решение позволяет получить плавное и живое свечение, которое легко переиспользовать в разных частях приложения через расширения или модификаторы.

Неуловимый iOS-ботовод. Задетекти меня, если сможешь: автореги, боты, спамеры
Разработка под Apple Vision Pro: исследуем возможности гарнитуры
Elegant Emoji Picker — красивый пикер эмодзи
Adopting Liquid Glass: Experiences and Pitfalls
How to add custom actions to iOS push and local notifications in SwiftUI
VIPER vs TCA: What Large iOS Teams Actually Use
An Apple Intelligence-Style Glow Effect in SwiftUI
👍7