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
Приложения, вышедшие в августе, и заработавшие больше $50,000

По данным AppMagic, в августе было выпущено 6 приложений, которые заработали более 50,000 долларов.

1. FOX One: Live News, Sports, TV ($572,654) - стриминговая платформа FOX, все понятно.

2. MyFollowers - Unfollow Tracker ($93,658) - инструмент для управления вашим присутствием в социальных сетях, ориентированный на отслеживание подписчиков и отписавшихся. С определенной вероятностью это какой-то скам.

3. 喵爪小説 ($80,783) - китайские “короткие драмы”.

4. MenuFit ($68,902) - приложение для здорового питания.

5. Oumi – Story Roleplay Worlds ($67,985) - интерактивные истории.

6. Clozo ($65,199) - платформа для обмена луками и стилями. Здесь вы можете общаться с единомышленниками, обмениваться модными идеями и жизненными моментами, а также знакомиться с людьми, разделяющими ваши интересы, чтобы вместе развиваться.

Традиционный вопрос - что можно повторить? Навскидку второе - MyFollowers. Но тут вопрос продвижения этого приложения, у автора 83% доходов из США и как он этого достиг хз (в комментариях явно пишут про скам, так что вдвойне непонятно). Может быть четвертое и шестое - MenuFit и Clozo, но у этих проектов тоже все очевидно упрется в маркетинг.

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

Докладывают, что Apple ускоряет работу над умными очками и приостанавливает планы по выпуску более лёгкой гарнитуры Vision Pro. Компания, по всей видимости, работает как минимум над двумя разными версиями очков — без дисплея, которую она может представить в следующем году и выпустить в 2027 году, и с дисплеем, изначально запланированным на 2028 год, разработку которого компания хочет «ускорить». Очки Apple будут оснащены динамиками, камерами, будут доступны в нескольких вариантах и, по данным Bloomberg, «будут активно использовать голосовое управление и искусственный интеллект». Сообщается, что Apple сократила производство оригинальной Vision Pro, но регулирующие документы, обнаруженные на этой неделе, показали, что новая версия находится в разработке — это «скромное обновление», которое может быть выпущено «уже в конце этого года».

Apple ускоряет работу над умными очками
Swift Configuration — пакет API для чтения конфигураций
SwiftUI Without Swift: I Rebuilt It in JavaScriptCore
Implementing draw animations for SF Symbols in SwiftUI
How to Use OptionSet in Swift with code samples
💅3👏2
Android

Вам говорят добавить офлайн кэширование в приложение для Android. «Просто используйте Room, всё будет просто». Несколько запросов, пара сущностей, и всё готово за полдня. Три дня спустя ваше приложение зависает, запросы еле ползают, а в консоли Play накапливаются ANR-ошибки. Знакомо? Вот что происходит, когда база данных Room сталкивается с реальными масштабами. А хорошая новость? У большинства этих проблем есть проверенные решения.

Скрытые угрозы Room: почему база тормозит и как это исправить
Optimize your app battery using Android vitals wake lock metric
LiveData From Scratch: Building Your Own Lifecycle-Aware Observable
3
Kotlett — это внутренняя платформа VK, которая реализует паттерн code-push, то есть динамическую доставку фич для Android- и iOS-приложений без использования BDUI и релиза приложения в магазине. В этой статье автор подробно рассказывает, как устроен Kotlett, как он решает проблемы BDUI, обеспечивает офлайн-работу и почему в компании считают его перспективным фреймворком «динамики для народа».

Разработка

Отделяем мух от Kotlett. Динамические обновления без релизов и BDUI
Development gets better with Age
Distracting software engineers is way more harmful than most managers think

Маркетинг

Приложения, вышедшие в августе, и заработавшие больше $50,000
Simple получил $35 млн на развитие приложения для похудения и здорового образа жизни

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


Introducing LiquidGlassBottomBar: The Easiest Way to Modernize Your Flutter App's UI
Level Up Your Flutter App: A Smooth Transition to Android SDK 36
1👍1🔥1
Про мобайл от Кота

Мобильный рынок полон секретов, неожиданных находок и интересных путей. Я давно знаю автора канала 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