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

• Аудитория https://t.me/apptractor/1066
• Сайт https://apptractor.ru/
Download Telegram
iOS

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

Apple реализует промокоды для встроенных покупок
Стеклянный фасад Apple: почему новый дизайн iOS 26 и macOS — красивая ошибка
SwiftUI: The NEW TextEditor/AttributedString/AttributedTextSelection Combo
SwiftUI: Liquid Glass. From Basic to (A Little) Advance
Exploring the Secrets of layoutPriority in SwiftUI ZStack
Migrating internal iOS libraries to a monorepo using Swift Package Manager
From Massive SwiftUI Views to Reusable Components: The Root MVVM Approach to Modular Interfaces
An open source tool to speed up iOS app launch
Android

В Reddit снова недовольство: выкладывать приложение на Google Play стало не просто сложно — абсурдно сложно для одиночек. Один из авторов треда делится, что Google требует всё больше бюрократии: подтверждение адреса, банковские реквизиты, верификация личности, обязательное наличие сайта, а иногда и видеозапись, где ты демонстрируешь, как работает твоё приложение. И всё это — даже если ты просто один человек с простым приложением, без юридического лица и команды. Причём часто причина отказа непонятна: «Кнопка на экране выглядит неинтуитивно» — и весь релиз встал. На этом фоне Apple неожиданно выглядит более дружелюбно. Да, плата за аккаунт есть, но процесс модерации и публикации чёткий, предсказуемый и гораздо менее хаотичный. Разработчики задаются вопросом — не пытается ли Google выдавить с платформы мелких и независимых? Потому что сегодня чувство именно такое: Play Console теперь не для всех.

FigX — надежный импорт ассетов из Figma в Android-проект
Не хотите поговорить о Kotlin Contracts?
Google Play is making it harder for solo devs — Apple handles this way better
Things I Learned from Reverse Engineering My Own Android App
Mastering Coroutine Cancellation in Kotlin: Best Practices, Common Pitfalls, and Safe Handling of Repeating Tasks
Supercharge Your Android Workflow: A Practical Guide to CircleCI Automation
😢3💯3
Совершенно случайно нашел сервис, который позволяет читать закрытые пейволом статьи Medium бесплатно - Freedium. Просто кидаете в него ссылку и он выдает полный текст без украшательств. Кайф! Добавьте в закладки, точно пригодится.

Разработка

Anysphere запускает Ultra подписку на Cursor AI стоимостью $200

Маркетинг и монетизация

AppMetrica поможет маркетологам лучше анализировать целевые действия в приложениях
Как добиться успеха на мобильных устройствах в 2025 году — отчет Sensor Tower
Какого результата ждать от ASO и что можно спрогнозировать на старте работы
What the best subscription apps get right about paywalls

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

PWA vs сторы: что делать, если нужно вернуться в App Store и Google Play?
Supabase × Flutter in 2025 — The Full‑Stack Guide
iOS 26 Just Left Flutter Devs Behind
🔥11👍82🤡2
FaultOrdering — открытый инструмент создания файлов компоновки для ускорения запуска iOS-приложений

Sentry совместно с Emerge Tools открыли исходный код ключевого компонента своего инструмента Launch Booster — теперь он доступен как Swift‑пакет под названием FaultOrdering. Этот инструмент помогает ускорить запуск iOS‑приложений за счёт генерации order‑файлов, которые оптимизируют расположение кода в бинарнике. В результате уменьшается количество обращений к памяти при холодном старте и достигается заметное ускорение запуска — по данным авторов, до 20%.

Особенность FaultOrdering в том, что для его использования не нужно вносить изменения в код приложения. Сбор данных происходит через встроенный отладчик, который ставит брейкпоинты на ключевые функции и отслеживает их выполнение во время UI‑тестов. Итоговый order‑файл автоматически прикрепляется к результатам теста и может быть применён в процессе сборки приложения.
👍53
iOS

Foundation Models, работающие на устройствах, стали одной из главных премьер WWDC 2025 и появились первые примеры использования. В данной статье автор Ice Cubes (открытый клиент Mastodon) использовал модели для автоматической генерации тегов к постам. Сам он описывает свой опыт работы так: Amazing "После многих лет борьбы с ключами API, ограничениями токенов и сетевыми ошибками это кажется обманом. Вся интеграция ИИ занимает около 100 строк кода. Никаких внешних зависимостей. Никаких файлов конфигурации. Фреймворк просто работает". Но на первый взгляд кажется, что сфера применения моделей Apple очень ограничена и вряд ли потянет серьезные задачи. Впрочем, это лишь первый опыт и дальше, возможно, они раскочегарятся.

Внедрение ИИ в ваше приложение: используем Foundation модели Apple
FaultOrdering — открытый инструмент создания файлов компоновки для ускорения запуска iOS-приложений
StructuredQueries — типобезопасный, выразительный и компонуемый SQL
Exploring tab bars on iOS 26 with Liquid Glass
How to use VideoKit to add video to your SwiftUI app
The Ultimate Guide to the Foundation Models Framework
The evolution of Mobile CI: Navigating the shift to Infrastructure-as-a-Service
SwiftUI 3D Charts: Add a Whole New Dimension to Your Data
iOS & macOS Clean Architecture: Part 1 — From Chaos to Clarity
👍3
Android

В команде мобильной платформы Motive недавно всерьёз занялись ускорением сборки Android‑приложений — чем больше инженеров, тем острее проблема долгих билдов и тем нужнее быстрый обратный цикл. Статья рассказывает, как им удалось сократить время сборки и какие решения применили. Первым делом они активировали Configuration Cache — одну из мощнейших фич Gradle, которая позволяет кешировать результаты фазы конфигурации и повторно использовать их для ускорения дальнейших сборок. Но на пути стоял плагин play‑services‑oss‑licenses, без которого они не могли отображать лицензии зависимостей, и который был несовместим с Configuration Cache Чтобы не отказываться от экрана лицензий, команда разработала собственную кастомную реализацию. Они использовали плагин licensee для генерации JSON‑файла с данными по лицензиям, а затем создали Gradle‑таск, помеченный как @CacheableTask, копирующий этот файл в директорию assets. Эта задача обеспечивала нужную зависимость от licensee‑таска и вписывалась в цепочку сборки через androidComponents API. В результате JSON оказывается среди ресурсов приложения, и в рантайме достаточно просто распарсить его для вывода данных пользователю. Такой приём решил конфликт между бизнес‑требованием (отображение лицензий) и необходимостью ускорения билдов с помощью кеша конфигурации. Отличный пример, как можно обойти ограничения сторонних плагинов, не жертвуя UX и используя доступные инструменты Gradle. Вместо тупого увеличения железа Motive копнули глубже и оптимизировали сам процесс сборки, адаптируя его под свои реальные потребности и требования.

Improving the Build Performance of Our Android Apps
Decorator Pattern in Kotlin — Embracing Open/Closed Principle
K2 Mode Takes Off: High Adoption, Fewer Bugs, and Major Improvements in 2025.1
Ktor 3.2.0 Is Now Available
Generating Fractals in Kotlin with Jetpack Compose
2👍1
📺 Видео и подкасты за неделю на @AppFiles

(iOS Ru) Как перевезти 250+ SPM модулей из динамики в статику и не сойти с ума
(iOS Ru) Пагинация: от идеи до реализации
(iOS Ru) Стратегии ускорения старта на практике
(iOS En) AlarmKit - Live Activities
(iOS En) Interactive Snippets - App Intents
(iOS En) Swift 6.2: Apple has listened to developer feedback!
(iOS En) Gradient Generator using On-Device Intelligence - FoundationModels
(iOS En) What's New in SwiftUI - WWDC 2025
(And Ru) Адаптация мобильного приложения под ТВ-платформы
(And Ru) Баттл codegen-инструментов от разработчиков дизайн-систем
(And Ru) История, принципы и концепции библиотеки навигации Decompose
(And Ru) Что нового в Android 16 для разработчиков и пользователей
(And Ru) Как ускоряют Android-приложения в Яндексе: интервью с инженером
(And En) Now in Android: 118 –What’s new in Android development at Google I/O 2025 (part 2)
(And En) Navigating the future with Jetpack Navigation 3 - Core Concepts
(And En) Bot to the future: Two years later
(And En) Build a mobile app using the Home APIs on Android
(And En) Beginner's Crash Course to the New Navigation 3 Library (Android & KMP)
(And En) Kotlin Coroutine Gotchas
(And En) Kotlin Coroutines - Debugging Tools Overview
(And En) Single-Threaded Coroutines in Kotlin
(And En) Let's try implementing Nested Navigation with the New Navigation 3 Library
(Crs Ru) Firebase + KMP: Разрушаем мифы и создаем гибкие решения
(Crs Ru) Duit – как создать эффективный BDUI-фреймворк для Flutter
(Crs Ru) Аудит безопасности мобильных приложений
(Crs En) Full Guide to Material3 Theming in Compose Multiplatform
(Dev Ru) Как ускорить карьеру в ИТ? Перенимаем мировой опыт: от Гарварда и Стэнфорда до Кремниевой долины
(Dev Ru) Легаси. Оптимизации. Обфускация. Героическая борьба с Minecraft
(Dev Ru) Алгоритмы на собеседовании: ритуал или необходимость?
(Dev Ru) Как не сойти с ума от FOMO из-за AI
(Dsg En) How to Make Apple's Liquid Glass Effect In Figma

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

(iOS Ru) iOS-приложения под защитой Apple! Или нет?
(And Ru) Как избавиться от рекурсии, или Как мой код попал в Google
(And Ru) Микширование аудиопотоков в Android
(And Ru) Как мы победили техдолг в проекте Android RuStore
(Crs Ru) Опыт внедрения Kotlin и Compose Multiplatform в продакшн-решение
(Dev Ru) Как решать задачи на Leetcode
(Dev Ru) Как устроен сетевой код в играх
Please open Telegram to view this post
VIEW IN TELEGRAM
4👍1
Трудности обслуживания ИИ

Дайджест со всеми материалами за прошлую неделю - использование Foundation Models и обновления UIKit/SwiftUI по следам WWDC, трудности обслуживания приложений под Android и ускорение карьеры в IT, автомобильный компьютер с нескучным функционалом, стеклянный фасад Apple и многое другое. Заходите!
👍4
🧩 Any Distance выложили в Open Source

Дэниел Кунц открыл код Any Distance, приложения, выигравшего Apple Design Award в 2023 году. Вот что он пишет про свой проект:

"Сегодня я открываю исходный код Any Distance, приложения для фитнес-трекера, над которым я работал вместе с несколькими другими людьми почти 5 лет. Any Distance начинался как способ поделиться красивой графикой ваших тренировок в социальных сетях. В конечном итоге он превратился в венчурный стартап, нацеленный на свержение Strava. Хотя мы так и не приблизились к этой цели или даже к соответствию продукта рынку (на мой взгляд), в итоге мы создали много интересного программного обеспечения, которым я до сих пор горжусь".

"Сейчас в программном обеспечении для iOS происходит возрождение красоты и мастерства, и я горжусь тем, что люди по-прежнему используют нашу работу как источник вдохновения. С середины 2023 года приложение находится в «режиме обслуживания». Я не хочу вдаваться в подробности того, что именно послужило причиной этого, но скажу, что это было довольно распространенное сочетание классических неудач стартапов — проблемы со-основателей, PMF (или, скорее, его отсутствие), выгорание и проблемы со сбором средств".

"Все, кто меня знает, знают, что у меня смешанные отношения к SwiftUI и платформами Apple в целом. Я все еще думаю, что в производственных кодовых базах недостаточно хороших примеров SwiftUI. Apple покажет вам 100 способов сделать базовый список дел, типы в котором компилятор едва успеет проверить за разумное время, но что-то более сложное, и вы будете предоставлены сами себе. Поскольку кода SwiftUI так мало, LLM с трудом могут быть полезны за пределами шаблонов".
Я провел много времени, экспериментируя с различными комбинациями SwiftUI, UIKit и Metal, чтобы сделать Any Distance максимально красивым и производительным. Многое из того, что мы сделали, до сих пор не было воспроизведено (насколько мне известно). Я не буду утверждать, что все, что мы сделали, — это лучший способ что-то сделать. Но этого оказалось достаточно, чтобы получить премию Apple Design Award.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10
Как выжать максимум из ASO: новые возможности, тренды и ошибки в продвижении

Что меняется в App Store и Google Play и какие нововведения нельзя игнорировать — расскажем на бесплатном вебинаре «Большой ASO-разбор».

Рассмотрим:
• Актуальные тренды: персонализация стора, AI и автоматизация в ASO, новые форматы представления приложений
• Важные новости из мира ASO
• Как реалистично оценить потенциал оптимизации и не потратить бюджет впустую
• Ошибки, из-за которых крупные приложения теряют органический трафик
• Кейсы из практики: что работает и не работает в ASO прямо сейчас
• Обновления в сервисе MetaMagic, которые облегчают подготовку метаданных

Спикер: Валерия Шалимова — ASO Lead Appbooster
26 июня (чт) в 16:00 мск

📌 Зарегистрироваться
👍31
iOS

Очередной топ инструментов с WWDC. Вот некоторые дополнения к уже известным, о которых я писал:

AlarmKit — разрешает будильники сторонним приложениям, есть поддержкА Live Activities, кастомные звуки, таймеры и напоминания
🈸 Новая аналитика App Store Connect — теперь с MRR, API для аналитики, офферами для покупок
🐥 Упрощённая Swift 6 concurrency@MainActor по‑умолчанию, @concurrent для постепенного перехода
🌐 Wi‑Fi Aware — ближняя передача данных быстрее, дальше и с большим количеством подключений, т.е. потоковое видео или мультиплеер
📝 Улучшения String Catalog — AI‑комментарии и удобный перевод строк + автозавершение

Any Distance выложили в Open Source
VLCUI — плеер VLC для SwiftUI
Адаптация мобильного приложения под ТВ-платформы
Как перевезти 250+ SPM модулей из динамики в статику и не сойти с ума
Пагинация: от идеи до реализации
Стратегии ускорения старта на практике
URLSession in Swift: Build a Clean and Testable Networking Layer
Top 10 Developer Tools Apple introduced at WWDC25
What is @concurrent in Swift 6.2?
Reverse-Engineering Xcode's Coding Intelligence prompt
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2😱21
Android

С мест докладывают, что Navigation 3 — это не просто обновление, это фундаментальный сдвиг в сторону более поддерживаемой, масштабируемой и удобной навигации в приложениях Compose. Nav3 представляет собой скачок вперед в ясности и контроле. Предоставляя декларативные навигационные графики, безопасные для типов маршруты и пользовательские стратегии сцен, разработчики теперь могут легко создавать более интуитивные и адаптивные потоки навигации. Navigation 3 — это не эволюция, а революция: теперь навигация в Android — это управление состоянием, а не манипуляции с контроллерами и графами.

Анимация текста вдоль траектории в Jetpack Compose
Баттл codegen-инструментов от разработчиков дизайн-систем
История, принципы и концепции библиотеки навигации Decompose
Что нового в Android 16 для разработчиков и пользователей
Как ускоряют Android-приложения в Яндексе: интервью с инженером
Feeder — приложение для чтения лент новостей
Elegant Error Handling in Kotlin: Using runCatching and Result
Autofill in Compose 1.8.0
Testing a LottieAnimation in Compose
Future Of Android: Why Navigation 3 is a Game-Changer!
Kotlin 2.2.0 Released
Top 3 Updates for Android Developer Productivity @ Google I/O ‘25
🤡3👍2
В AppFigures исследовали пульты управления для телевизоров. Как бы не смешно это звучало, но многомиллионная индустрия! По оценке, вся группа получила 11 миллионов долларов потребительских расходов и 22 миллиона загрузок за последний месяц. Эти цифры увеличиваются до 117 миллионов долларов потребительских расходов и 276 миллионов загрузок, если взять весь 2024 год. Согласно Appfigures, 21 приложение собрало более миллиона долларов за последние 12 месяцев. Два из Google Play, а остальные в App Store. Так что когда вы будете в следующий раз думать о том, какое приложение сделать, не связывайте большие идеи с большими деньгами. «Скучные» ниши иногда приносят много денег.

Разработка

Как ускорить карьеру в ИТ? Перенимаем мировой опыт: от Гарварда и Стэнфорда до Кремниевой долины
Легаси. Оптимизации. Обфускация. Героическая борьба с Minecraft
Алгоритмы на собеседовании: ритуал или необходимость?
Как не сойти с ума от FOMO из-за AI
Пора слезать с иглы обновлений: как мы перешли на кросс-платформенную дизайн-систему и перестали ждать iOS и Android

Маркетинг и монетизация

Переключение каналов на ТВ — многомиллионный бизнес в магазинах приложений
Adobe запускает новое приложение для iPhone с функцией «вычислительной фотографии»

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

Firebase + KMP: Разрушаем мифы и создаем гибкие решения
Duit – как создать эффективный BDUI-фреймворк для Flutter
Аудит безопасности мобильных приложений
How I Reduced My Flutter App Size by 60% — Without Removing a Single Feature
👍6
iOS

Знание того, какие у вас есть возможности для настройки TabView в iOS 26, очень поможет вам с внедрением Liquid Glass. Знание того, как можно свернуть панель вкладок или когда назначить дополнительное представление, может действительно помочь вам создать лучший опыт для ваших пользователей. Добавление вкладки поиска поможет SwiftUI правильно и согласованно позиционировать функцию поиска на разных платформах.

Изучаем панели вкладок в iOS 26 с Liquid Glass
Пошаговое руководство по написанию эксплойта ядра iOS
#Playground Macro: Running Code Snippets in Xcode’s canvas
Responding to gestures: Long pressing
Using enumerated() with SwiftUI List and ForEach to show item numbers
Why MVVM Fails in SwiftUI
Deep-dive: Designing a Gmail-scale mobile Mail client in Swift
👍2
Резюме умирают, и ИИ ответственен за это

Работодатели тонут в заявлениях о приеме на работу, созданных с помощью ИИ, а LinkedIn теперь обрабатывает 11,000 откликов в минуту — на 45% больше, чем в прошлом году. The New York Times пишет, что из-за ИИ традиционный процесс найма перегружен автоматизированным шумом. Поток резюме, созданных с помощью ChatGPT, и откликов, отправленных ботами, вызвал гонку вооружений между соискателями и работодателями, причем обе стороны используют все более сложные ИИ-инструменты в противостоянии ботов, которое быстро выходит из-под контроля.

Хаос нарастает и кандидаты все больше автоматизируют поиск работы, оплачивая услуги ИИ-агентов, которые самостоятельно находят работу и подают заявки от их имени. В ответ на это компании вводят системы поиска ИИ в откликах и все больше изменяют процессы, чтобы вообще абстрагироваться от резюме. Разочарование достигло той точки, когда сами ИИ-компании отступают от собственных технологий в процессе найма. Недавно Anthropic посоветовала соискателям не использовать LLM в своих заявках — поразительное признание от компании, чья бизнес-модель зависит от людей, использующих ИИ для всего остального.
И, возможно, это нормально. Когда любой может генерировать сотни индивидуальных откликов с помощью нескольких подсказок, документ, который когда-то демонстрировал усилия и подлинный интерес к должности, превратился в шум.

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

Возможно, конечная цель — это роботы, которые будут проводить собеседования с другими роботами для работы, выполняемой роботами, в то время как люди будут сидеть на пляже, попивая дайкири и играя в винтажные видеоигры.
😁11🔥5😱31