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

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

В статье рассказывают, как программисты из Турции обнаружили странную ошибку: сборка Kotlin-проекта выдавала сообщение «Unknown compiler message tag: INFO», и выяснилось, что дело в локали системы. Оказалось, что методы вроде toLowerCase() и capitalize() в компиляторе работали с учётом языка системы, и на турецкой раскладке буква «I» приводилась к «ı» (без точки) — из-за этого часть алгоритма не находила нужные ключи. Ошибка проявлялась не сразу, но с ростом сложностей (например, при корутинах и примитивных массивах) стала серьёзной. Команда Kotlin изменила библиотеку, чтобы использовать инвариантную локаль (например, Locale.US), и в версии 1.5 баг наконец окончательно закрылся. Вывод: даже самая банальная строковая операция может оказаться уязвимой из-за языковых нюансов и настроек локали. Стоит помнить, что код работает в мире, где культура, алфавит и система имеют значение — и тестировать не только в «английской» среде.

Cahier — пример современного блокнота для Android от Google
Gradle для QA-инженера
The Country That Broke Kotlin
Under the Hood of Suspension: Tracing the State Machine Behind Kotlin Coroutines
👍21
App Store тоже улучшается! Во-первых, теперь вы можете отправлять дополнительные материалы на рассмотрение независимо от существующей заявки. Это касается событий, функций Game Center, критических обновлений. Вто-вторых, Custom Product Pages теперь стало 70. Теперь вы можете назначать ключевые слова каждой кастомной странице, чтобы ее было легче найти в App Store. Страницы с назначенными им ключевыми словами могут отображаться в результатах поиска по выбранным ключевым словам вместо страницы продукта по умолчанию. В третьих, промо-коды уходят. Теперь вместо них оффер-коды. И они поддерживают все типы покупок внутри приложения, включая расходуемые, нерасходуемые и непродлеваемые подписки, а также расширенную поддержку для автоматически продлеваемых подписок.

Разработка

Octoverse 2025: ежегодный отчет от GitHub
Маленькая RAM vs новые фичи: как мы повышаем детализацию Карт и сохраняем стабильность
10 UI/UX Cheat Codes for INSTANTLY Better Designs
Google Launches Mangle: A New Language That Could Change How We Work With Databases

Маркетинг

Google открывает внешние оплаты в Play Store в США
Улучшения в App Store — больше проверок и оффер коды для всего
Скопировал неудачную идею, исправил ее и превратил в SaaS-проект на $30K

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

Подстраиваемся под новые требования Google: переходим на 16 KB memory page (гайд для разработчиков React Native)
Когда .arb не тянет: как я подключаю TMS к Flutter-проекту
Advanced Flutter Tools Used by Senior Developers
Building a Premium Glassmorphism Flutter Login
🐳3👍2
📺 Видео и подкасты за неделю @AppFiles

(iOS En) Optimize your app's speed and efficiency
(iOS En) Modern SwiftUI Callbacks using AsyncStream
(iOS En) How hard can it be to send a postcard?
(iOS En) Beyond Xcode
(iOS En) Building Complex Scroll Animations - Custom Bottom Sheet Interaction
(iOS En) Keychain Unlocked: Mastering Advanced Security for Smarter, Safer Apps
(iOS En) SwiftUI Alert With Progress View
(iOS En) iMessage Style Photo Picker Using SwiftUI
(And Ru) ART Memory Management
(And Ru) Kotlin и контекстно-ориентированное мышление
(And Ru) VK Звонки в лесу: звоним в плохих сетях
(And En) TheAndroidShow: live from Droidcon, with Agents in Android Studio, Android XR and more!
(And En) Google Play Console: Streamlining workflows, from testing to growth
(And En) Building for Samsung Galaxy XR, featuring Calm's blueprint to Android XR development
(And En) Android XR #AskAndroid
(And En) Explaining Google's Guide to App Architecture In Simple Terms
(And En) FAB Menu In Material3 Expressive
(And En) From Java to Kotlin: Mercedes-Benz.io’s Journey
(And En) Merge Queue at Uber Scale
(And En) From 25 Minutes to 2.5: Okta's Journey to Faster Builds
(Crs Ru) Что не так с Dart и Flutter в 2025 году?
(Crs Ru) KMP для ОС Аврора
(Crs Ru) Backend-Driven UI как ответ на рост числа платформ
(Dev Ru) Как устроена мобильная разработка сегодня
(Dev Ru) Как вас взламывают через Open Source — DevSecOps и безопасная разработка

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

(iOS Ru) Как устроена библиотека AppMetrica
(iOS Ru) Здесь куют Metal
(iOS Ru) Как iOS-разработчику выжить на проекте с KMP?
(And Ru) Android cookbook: готовим WebView правильно
(And Ru) Kotlin Coroutines. Устройство и возможности использования
(And Ru) Фреш на полке, фреш в стеке
(Dev Ru) От натива до SDUI через гибрид
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Octoverse 2025

У GitHub вышел ежегодный отчет Octoverse. Из более или менее интересного:

TypeScript впервые стал самым используемым языком на GitHub, обогнав Python. Это завершает десятилетнюю тенденцию перехода разработчиков на типизированный JavaScript и сигнализирует о новом стандарте для современной разработки.
• Рост популярности типизированных языков свидетельствует о том, что ИИ не только меняет скорость написания кода, но и влияет на то, каким языкам разработчики доверяют внедрение кода, сгенерированного ИИ, в эксплуатацию.
Luau стал самым быстрорастущим в процентном отношении языком. Luau — это язык программирования постепенной типизации, используемый в Roblox, что тоже отражает более широкую тенденцию отрасли к типизированной гибкости.
• На первый квартал 2025 года Kotlin находился на 15 месте по популярности на GitHub, Swift на 17, Objective-C на 18, Dart на 22.
👍41
Приложения, вышедшие в сентябре, и заработавшие больше $50,000

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

1. Tea App for Women: TeaOnHim ($150,147) - видимо перезапуск приложения, которое Apple на прошлой неделе удалила из App Store. Новая версия вышла 24 октября и уже заработала больше 150К. 

2. TruthSeek: AI People Search ($75,915) - декларируется как поиск людей в социальных сетях. Что делает ИИ в нем не очень понятно, но видимо без него сейчас никуда.

3. Vidoo: AI Video Generator ($68,105) - Android-обертка для Sora, Veo 3, Kling, Hailuo и Genova, генерящая видео. 

4. True Heritage & Ancestry: EDNA ($58,024) - определение происхождения человека по селфи (wat?), плюс генерация старинных фото и прочих генеалогических историй. Судя по 90% однозвездочных отзывов (при средней оценке 4.7) что-то не очень работающее. 

Что можно повторить в одно лицо? Скорее всего, все, кроме первого (хотя и первое при должном бюджете на продвижение). Во втором случае возникнет вопрос доступа к социальным сетям и интерпретации социального графа, в четвертом этичности работы. А третье реализуется вполне просто, вопрос, опять же, упирается в бюджет и/или виральность. Можно сделать "заготовку" и быстро обновить при появлении следующей ИИ-модели.

Приложения за август и июль.

AppGrowth про инди, пет и монетизацию
👍5🔥31🤩1
Apple обновила веб-версию App Store

Apple запустила новый веб-интерфейс App Store. Теперь вы можете пользоваться всеми функциями App Store прямо в браузере.

Раньше домен Apple «apps.apple.com» просто перенаправлял вас на общую страницу App Store на сайте Apple. Теперь он перенаправляет вас на полноценную версию App Store, которую вы можете просматривать на своем компьютере.

Веб-версия App Store теперь предлагает полную копию вкладки «Сегодня», которую вы знаете по iPhone. Доступен удобный доступ к текущим специальным мероприятиям, топам, редакционным обзорам и многому другому.

Редизайн также распространяется на страницы приложений. Страницы приложений теперь имеют насыщенный медиа-интерфейс с новой иконографией для таких элементов, как категории, награды, мероприятия и многое другое.

Также появился новый интерфейс поиска, который позволяет быстро найти нужное приложение. Раньше единственным способом сделать это было ввести название приложения в Google, а затем открыть страницу продукта из результатов поиска Google.
👍3
Купим прилы. Дорого. Звучит как скам?

ZM app market — новая программа для вас, уважаемые разработчики iOS-приложений, где ваш труд не просто высоко ценится, но и монетизируется на всей дистанции жизни аппки.

Никакого байта и скама, предлагаем win-win:
Фикс оплата за выкуп (вверх по рынку) + Revshare за установки.

Есть готовая прила? Или вы готовы разработать аппку специально под наши требования? Ни слова больше.

Система проста как мир:
1️⃣Вы отправляете приложение на оценку ➡️ @mikezmapps
2️⃣ Мы оцениваем его по ZM app index — нашей системе метрик качества
3️⃣ При одобрении — мы выплачиваем фиксу за выкуп и начинаем отслеживать инсталлы.
4️⃣Вы получаете ревшару за все установки до конца жизни прилы — сверки и выплаты по расписанию.

Вопрос: работает ли это? Да, уже есть кейсы.

Остались вопросы? Сомнения? Или даже возражения? Пишите нашему менеджеру ➡️ @mikezmapps. Он готов ко всему.

Заинтересованы? Значит, нужно делать. С ZM app market в выигрыше останутся все.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🤡16🌭5👍1
Новые инструменты в Google Play

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

Что нового:

• Проверка диплинков с помощью встроенного эмулятора: вы можете использовать встроенный эмулятор для тестирования глубокой ссылки и сразу же увидеть ожидаемый пользовательский опыт, как если бы кто-то щелкнул URL-адрес на реальном устройстве.
• Локализация на базе Gemini в Google Play: этот сервис автоматически переводит новые бандлы приложений на выбранные языки, ускоряя выход приложения на новые рынки.
• Быстрая аналитика с помощью автоматизированных сводок по графикам: новая функция Gemini на странице «Статистика» автоматически генерирует описания ваших диаграмм.
• Доступ к метрикам, связанным с целями, и практическим советам для расширения аудитории: новая обзорная страница «Рост пользователей» уже доступна, предоставляя вам комплексное, персонализированное представление, которое поможет вам привлекать новых пользователей и расширять охват.
• Повторное взаимодействие с помощью вкладки «Вы»: разработчики приложений могут воспользоваться этим персонализированным разделом, интегрировав его с Engage SDK
• Оптимизируйте свою стратегию монетизации и отслеживайте эффективность: теперь вы можете предлагать товары в приложении в качестве аренды на ограниченный срок и зарегистрироваться в программе раннего доступа, чтобы начать оформлять предварительные заказы.
Упростите управление каталогом для разовых товаров
• Анализ влияния и эффективности промоакций Play Points: новая страница позволяет увидеть общий доход, количество покупателей и конверсий, полученных в результате всех промоакций Play Points.
👍5
iOS

Apple представила в iOS 26 новую технологию Language Discovery, которая помогает приложениям понимать реальные языковые предпочтения пользователя, а не просто выбранный язык интерфейса. Система с помощью машинного обучения анализирует, на каких языках человек пишет, читает и общается — всё локально и с сохранением приватности. Новый API Locale.preferredLocales возвращает богатую информацию о локалях: язык, регион, систему чисел, направление письма, календарь и т.д. Для разработчиков это шанс сделать приложения более персональными и инклюзивными. Вместо статичного списка языков можно показывать сначала те, что реально важны пользователю, адаптировать формат дат и чисел под его культуру и сделать интерфейс комфортнее для мультиязычной аудитории. Подробности — в статье.

Apple обновила веб-версию App Store
StoreKit Helper — обертка StoreKit2 для SwiftUI
Snapshot-тесты для дизайн-системы hh.ru
Understanding Apple’s Retention Messaging API
SwiftUI Custom URL Schemes
Turning a Menu into a Mini Settings Panel in SwiftUI
A deep dive into Collections, Sequences, and Iterators in Swift
Making Apps More Personal with Language Discovery
Building a License Plate Recognition App on iOS with CreateML and Vision Framework
👍1
Android

Антон Николаев из Okko рассказывает о JSON Schema и как они используют эту спецификацию на проекте, а также о библиотеке kotlinx.serialization и том, как упростила нам работу со схемами. Статья будет полезна разработчикам, которые интересуются библиотекой kotlinx.serialization и хотят глубже узнать её устройство.

Новые инструменты в Google Play
Nice Toast — красивы и настраиваемые тосты для Android
ART Memory Management
Kotlin и контекстно-ориентированное мышление
VK Звонки в лесу: звоним в плохих сетях
Кастомная сериализация с помощью kotlinx.serialization
Finding Order in the Mayhem: A Novel Concurrency Testing Tool that Improved the Kotlin Compiler
ML Kit’s Prompt API: Unlock Custom On-Device Gemini Nano Experiences
8 steps to success with Gemini in Android Studio
We Put Kotlin Coroutines Against Java Virtual Threads — And One Got Wrecked at 1M Requests
🔥5
А в этой статье автор рассказывает, как превратить инструменты на основе ИИ для программирования (автодополнение, ассистенты, генерация кода) в действительно полезных партнёров по разработке — если грамотно составлять запросы (промпты). Он подчёркивает: качество ответа ИИ сильно зависит от того, какой запрос мы ему задаём — контекст, цель, детали имеют решающее значение. Применение этих принципов может серьёзно повысить вашу эффективность. Впрочем, в статье упоминается, что промпт-инженерия это скорее ремесло, чем строгий набор правил.
Разработка

Как создать первую дизайн-систему для твоего стартапа
Backend-Driven UI как ответ на рост числа платформ
Как устроена мобильная разработка сегодня
Как вас взламывают через Open Source — DevSecOps и безопасная разработка
Руководство по промпт-инжинирингу для программистов
Пишем свою мобильную ОС с нуля на Rust
Создать мобильное приложение с zero опыта! Рассказываю, как сделал свой первый проект на Java
Microdosing AI for Mobile Dev
Architectural debt is not just technical debt

Маркетинг

Письмо от «Будущего Я»
Google и Epic заключат мировое соглашение, которое положит конец многолетней борьбе за Play Store
Рост Suno — магия ИИ-музыки
Финтех-приложения в 2025: рынок перестал гнаться за объёмом — побеждают измеримость и точность
Приложения, вышедшие в сентябре, и заработавшие больше $50,000

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

Что не так с Dart и Flutter в 2025 году?
KMP для ОС Аврора
KMP Starter — шаблон кроссплатформенного приложения на KMP
Публикация PWA в App Store и Play Store на github actions
Liquid Glass Components in Compose Multiplatform
Swift Android Gradle Plugin
The most desired missing features of Flutter
😁3🐳1
Основатель Foursquare выпустил новое приложение (для AirPods) BeeBot

Основатель Foursquare Деннис Кроули представил своё новое приложение. И да, это ещё одно социальное приложение, основанное на геолокации. Но вместо чекинов, которые Кроули впервые популяризировал более 15 лет назад, BeeBot представляет собой концепцию, актуальную для 2025 года.

Приложение представляет собой «диджея» на базе искусственного интеллекта, который может воспроизводить контекстные аудиосообщения в зависимости от ваших действий в течение дня. «Диджей» BeeBot, который, конечно же, обладает сгенеренным ИИ голосом, может общаться с вами в течение всего дня и сообщать об интересных событиях, достопримечательностях (приложение будет использовать местные Substacks и новостные рассылки для получения актуальной информации о заданном районе) или обновлениях от друзей, которые находятся поблизости..

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

И, поскольку на дворе 2025 год, в приложении также присутствует целый набор функций искусственного интеллекта, включая «микс различных LLM» и «синтетические голоса». По словам Кроули, приложение «работает на алгоритме в стиле TikTok», но с учётом того, что происходит поблизости и в реальной жизни.

BeeBot, первый проект новой компании Кроули Hopscotch Labs, уже доступен в App Store, хотя, по словам Кроули, он всё ещё «в значительной степени находится в стадии разработки». «Мне кажется, что версия продукта, которой мы делимся с людьми сегодня, чем-то напоминает Foursquare, которым он был запущен на SXSW в 2009 году — интересная концепция, достаточно хорошее исполнение, но полный потенциал его раскроют сами люди в процессе использования».
2🔥1
Android

MVVM, как и Java, пережил своё время. Современная разработка под Android эволюционировала. Благодаря Jetpack Compose, GraphQL и однонаправленному потоку данных нам больше не нужны хрупкие цепочки LiveData и несогласованные состояния ViewModel. Встречайте MVI (Model–View–Intent) — шаблон, который делает состояние предсказуемым, тестируемым и масштабируемым. Если вы всё ещё жонглируете булевыми значениями и несколькими объектами MutableStateFlow в MVVM, пора выходить на новый уровень. В этой статье автор показывает, как он модернизировал своё приложение Hockey Hub с помощью MVI, Kotlin Flows и Hilt.

This One Build Setting Shrunk My APK by 40% — And I Almost Missed It
Inside Kotlin Coroutines: State Machines, Continuations, and Structured Concurrency
Compose UI Tests for Larger Font Sizes: Scrolling and Text Truncation
MVVM Is Outdated: The Modern Android Stack Is MVI + GraphQL + Compose
👍1
Skip начинался как транспилятор Swift/SwiftUI в Kotlin/Compose. Он был бесплатным для инди-разработчиков более года, но с запуском режима Fuse (на основе Swift SDK для Android) за него стали просить деньги. Сегодня Skip Fuse тоже стал бесплатен для инди-разработчиков. Этот режим не транслирует код, а компилирует его нативно для Android, что дает множество преимуществ. Пишут, что теперь, когда Android стал официально поддерживаемой платформой для языка Swift, сейчас самое время начать создавать двухплатформенные приложения с помощью Skip.

Разработка

Tik Tok saved $300000 per year in computing costs by having an intern partially rewrite a microservice in Rust

Маркетинг

Основатель Foursquare выпустил новое гиперлокальное приложение BeeBot
AI has broken subscription app pricing models: the end of one-size-fits-all subscriptions
Make your paywall do more than sell: 7 unexpected uses for your paywall

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

Skip Fuse стал бесплатным для инди-разработчиков
5 Open Source Boilerplate Templates for React Native (2025 Edition)
Swift on Android in 2025: The Experiment That Surprised Every iOS Developer
SKIE: The missing bridge for KMP on iOS
👍2
📺 Видео и подкасты за неделю @AppFiles

(iOS En) Perplexity App's Animated Bottom Bar Using SwiftUI
(iOS En) Press Start: Game development on Apple platforms
(iOS En) SwiftLeeds Evening Talkshow 2025
(iOS En) PencilKit: From simple drawings to custom creative tools
(iOS En) Practical Guide to Shipping Fast
(iOS En) Side Effects as Behavior
(iOS En) Tuning your app using Xcode's Instruments
(iOS En) Guided Generation with Foundation Models in Swift
(iOS En) Hero Confirmation Dialogs Using SwiftUI
(And Ru) Swift на Android — ход отчаяния Apple или стратегический манёвр?
(And En) All Material3 Expressive Loading Indicators Explained (+ When to Use Which)
(Crs Ru) Как адаптировать свой KMP код под Аврору
(Crs Ru) Flutter Aurora UI Kit
(Crs Ru) Наша навигация и её эволюция
(Crs Ru) Выбираем DI для Kotlin Multiplatform
(Dev Ru) ИИ в кармане: как встроить ИИ в мобильное приложение
(Dev Ru) ИИ в серьёзной разработке: революция в IT или переоценённый хайп?
(Dev Ru) Как с нуля создать ферму мобильных устройств
(Dev Ru) Всё про новый найм в Яндексе — честный разбор
(Tcn Ru) Криптофинансы — блокчейн, криптовалюты, DeFi, web3
(Dsg Ru) Когнитивная нагрузка в интерфейсах и как с ней бороться

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

(iOS Ru) SDK и BDUI в Яндекс Пэй и Яндекс Банке
(And Ru) 5 СЕКРЕТНЫХ преимуществ Android эмулятора которые вы не знали!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Быстрее, чище, стабильнее

Дайджест за прошлую неделю - самый задаваемый вопрос с собеседования и приватный Android без слежки, новые инструменты в Google Play и App Store, своя мобильная ОС с нуля на Rust, магия ИИ-музыки, концентрированный маркетинг и многое другое. Заходите!
1👍41
Valdi - кроссплатформенный UI фреймворк от Snap

На прошлой неделе Snapchat выпустил свой кроссплатформенный UI фреймворк Valdi, который используется в собственных приложениях Snap уже 8 лет.

Как пишут, он обеспечивающий нативную производительность без ущерба для скорости разработки. Один раз напишите свой пользовательский интерфейс на декларативном TypeScript, и он сразу же скомпилируется в нативные (Kotlin, Objective-C и Swift ) представления на iOS, Android и macOS — без веб-представлений и JavaScript-бриджей.

В отличие от фреймворков, использующих веб-представления или JavaScript-мосты, Valdi компилирует декларативно отрисованные компоненты TypeScript в платформенно-зависимые представления. Valdi также обладает рядом других преимуществ в плане производительности:

• Автоматическое переиспользование представлений — глобальная система пула представлений повторно использует нативные представления на всех экранах, значительно сокращая задержки.
• Оптимизированный рендеринг компонентов — компоненты перерисовываются независимо, не запуская повторную визуализацию родительских элементов, что обеспечивает быстрые инкрементальные обновления.
• Оптимизированный движок компоновки — движок компоновки C++ работает в основном потоке с минимальными затратами на преобразование данных из одного представления в другое.
• Рендеринг с учётом области просмотра — он выполняется только видимых представлений, что делает бесконечную прокрутку производительной по умолчанию.

Valdi устраняет традиционный цикл компиляция-тестирование-отладка, замедляющий разработку нативных приложений:

• Мгновенная горячая перезагрузка — отслеживайте изменения за миллисекунды на iOS, Android или настольных компьютерах без перекомпиляции.
• Полноценная отладка VSCode — устанавливайте точки останова, проверяйте переменные, профилируйте производительность и создавайте дампы кучи прямо в VSCode.
• Привычный синтаксис — компоненты TSX с TypeScript для обеспечения типобезопасности.

Valdi генерирует типобезопасные биндинги между TypeScript и нативными платформами:

• Автоматическая генерация кода — интерфейсы TypeScript компилируются в биндинги Kotlin, Objective-C и Swift.
• Доступ к нативному API — прямой доступ к API платформы и сторонним нативным библиотекам через многоязычные модули.
• Двунаправленная связь — безопасная передача сложных структур данных и колбеков между TypeScript и нативным кодом.
• Встроенная поддержка Protobuf — бесшовная интеграция с Protobuf для эффективной сериализации данных.
• Поддерживает продвинутую анимацию, рендеринг в реальном времени и сложные системы жестов.
💅10🤡6
iOS

В статье показано, как использовать новый инструмент из Xcode 26 для профилирования приложений на SwiftUI: вы запускаете приложение через Instruments, выбираете шаблон SwiftUI, записываете сессию, а затем в разделе «All Updates» сортируете виды по числу обновлений, чтобы определить те, которые изменяются чаще всего. Далее автор описывает, как с помощью графа «Cause & Effect» можно отследить, что именно вызывает обновление конкретного View. Это помогает выявить, например, изменение данных как причину обновления.

Find the SwiftUI Views that Update the Most Using Instruments
Roadmap for improving the type checker
Smoothly Switching Between Layouts in SwiftUI with AnyLayout
MainActorMessage & AsyncMessage: Concurrency-safe notifications
How I Structure My SwiftUI Projects for Scalability
👍3