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 без слежки, новые инструменты в 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
Анализ "переводчика с кошачьего" - Human to Cat Translator (13 млн установок по App Magic) - показал, что внутри генератор случайных фраз. ML используется для того, чтобы определить голос кошки, а дальше включается rand(). Просто, эффективно, пользователям нравится 😀.

Разработка

Что такое Маршалинг
Язык программирования Zig — чем он может заменить C и Rust
ИИ в кармане: как встроить ИИ в мобильное приложение
ИИ в серьёзной разработке: революция в IT или переоценённый хайп?
Когнитивная нагрузка в интерфейсах и как с ней бороться
Всё про новый найм в Яндексе — честный разбор
Криптофинансы — блокчейн, криптовалюты, DeFi, web3
DroidRun — управление смартфоном с помощью ИИ-агентов
Как я запустил локальную LLM на Raspberry Pi 5
How to Apply Depth Contrast for Better UI Navigation
If you've ever wanted to make a Voxel Engine, here's how to do it this weekend

Маркетинг

Fake it till you... make it?
Приложение GoWish для покупок и составления списков желаний переживает самый успешный год за всю историю
Концентрированный маркетинг: как фокус на одной аудитории помогает брендам расти 
Kindle Translate в Amazon будет переводить книги с помощью ИИ

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

Valdi — кроссплатформенный UI фреймворк от Snap
Наша навигация и её эволюция
Выбираем DI для Kotlin Multiplatform
Understanding the native SDK wrapper pattern in Kotlin Multiplatform
👍32😁1
🤖 Android

С 1 марта 2026 года Google в Play начнет пессимизировать приложения, которые излишне жрут батареи у пользователей. Определять будут по метрике чрезмерных частичных блокировок пробуждения (excessive partial wake locks). Пороговое значение нежелательного поведения достигается, когда 5% пользовательских сеансов приложения за последние 28 дней являются чрезмерными. Сеанс пользователя чрезмерным, если он содержит более 2 часов в общей сложности неисключенных блокировок пробуждения в течение 24 часов. Если ваше приложение превысит этот порог, вы получите уведомление непосредственно на странице обзора Android Vitals. Там же есть таблица, которая классифицирует сеансы блокировки пробуждения по  конкретным тегам и длительности, что позволяет легко идентифицировать длительные блокировки пробуждения в Android Studio для упрощения отладки.

Google начнет блокировать приложения, излишне тратящие батареи
Актуальные практики работы в фоне Android-приложений
Любовь, смерть и жизненный цикл: считаем, сколько люди проводят времени в вашем Android-приложении
Race Conditions in Modern Android App Development
Compose Stability Analyzer: Real-Time Stability Insights for Jetpack Compose
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
iOS

Swift мощнее, чем вы думаете. Большинство разработчиков используют лишь около 60% его потенциала, и есть много функций, которые вы не использовали или о которых даже не слышали. В этой статье рассмотрены 7 ключевых слов Swift, которые вас поразят своей новизной: some, unowned, @frozen, associatedtype, @autoclosure, @discardableResult и @_specialize.

7 ключевых слов Swift, которые вы не используете (а следовало бы)
Temporal Swift SDK: создание надежных и долговечных рабочих потоков
One Swift mistake everyone should stop making today
6 SwiftUI Components You Didn’t Know Existed
5 Things About Swift Optionals That Confuse Everyone
Make Loading Screens Fun with the SwiftUI Game Engine
🤡2👍1
Праздничный сезон в США — это не просто время шопинга. Это культурный момент, который формирует то, как люди празднуют, общаются и тратят деньги. Следующие несколько недель — самое напряженное и конкурентное время для брендов, желающих привлечь внимание, увеличить продажи и укрепить отношения с клиентами. В этом отчете, подготовленном совместно Mobupps и Apptica, представлен обзор праздников 2024 года, прогноз на 2025 год, а также отраслевые бенчмарки, данные о потребительских настроениях и передовой опыт работы с каналами сбыта, которые помогут спланировать сезонные стратегии.

Разработка

Как мы в Saby эмоции добавляли
Тестирование мобильных приложений: какие особенности важно учитывать
Как я сделал аудиогид с ИИ без опыта мобильной разработки
Как я создал тиндер для подбора подарков, не умея кодить
Building AI Agents in Kotlin – Part 1: A Minimal Coding Agent
Why I Rejected a Google Offer as an Android Developer

Маркетинг

Нужен ли сайт для продвижения моего мобильного приложения?
Игрок «Никс» Майлз Макбрайд запускает приложение для обмена местоположением Mmotion
Маркетологи в мобайле: Денис Демидов (автор канала «In-App: Блог про мобильный маркетинг», ex-Mobile Marketing Lead МТС Ads)
US Holiday Season Growth Playbook
Rank higher on App Store and make more money: Full guide

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

Build a Reusable Flutter Design System
👍31
iOS

Недавно автор этой статьи наткнулся на удобную Android-библиотеку, которая упрощает работу с разными версиями API и подумал: «Почему бы не сделать что-то подобное для SwiftUI?». После этого родилась идея разработать инструмент, который избавит вас от бесконечных проверок available и сделает код чище.

SwiftUI-Adapter: поддерживаем новые модификаторы SwiftUI на старых версиях iOS
Generating images in Swift using Image Playground
Stop Overusing @State in SwiftUI
Monitor and reduce your mobile app size with Size Analysis
Tracking workouts with HealthKit in iOS apps
1👍1
Android

Представьте, что тот же алгоритмический трюк, который обеспечивал быстродействие текстовых редакторов в 1960-х, скрытно делает ваши современные Android-приложения плавными сегодня. Звучит дико? Но это правда! Jetpack Compose, современный инструментарий Google для разработки пользовательского интерфейса для Android, использует проверенную временем концепцию Gap Buffer («буфер с разрывом» или «разрывной буфер» или «буфер с промежутком») для молниеносного обновления пользовательского интерфейса.

Понимаем «буфер с разрывом» в Jetpack Compose: 60-летний алгоритм, лежащий в основе современного UI
Compose Stability Analyzer — аналитика стабильности композабл в Android Studio
Я нашел причину №1 фризов в вашем приложении, и вот доказательства
Рецензия на книгу «Основы JetPack Compose: Разработка приложений для Android»
Slashing CI Wait Times: How Pinterest Cut Android Testing Build Times by 36%+
Why Your ViewModel Is Technically Unstable — and Why Compose Doesn’t Mind
Taking ExoPlayer Further: Reddit’s performance techniques
Android 16 QPR1 source finally lands on AOSP
3👍3
Новая мода - платные триалы с уменьшенной ценой (за 1 доллар, например, или даже меньше). Вроде так не только получается заинтересованная аудитория, но и рекламные сетки тренируют свои алгоритмы только на реально заинтересованных пользователях, что, несомненно, есть хорошо. С другой стороны наш вечный антагонист Никита уже опробовал технику и пишет: "Я так сделал, теперь у меня 7d ретеншн - 1%. Отфильтровал всех пользователей которые хотят проверить ценность перед покупкой, и нагнал негативных отзывов. Гугл увидел низкий ретеншн и скрыл прилу в сторе, продукт считай умер". Один пример, конечно, не показателен - поэтому вопрос к вам. Есть у вас опыт работы с такими триалами? Что думаете о таком подходе?

Разработка

Запись JetBrains Plugin Developer Conf 2025
Infrastructure as Code is a MUST have

Маркетинг

Больше никаких бесплатных триалов
Apple продвигает приложения с Liquid Glass
Robyn создает эмпатичный ИИ
ElevenLabs запускает маркетплейс ИИ-голосов знаменитостей

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


.NET MAUI is Coming to Linux and the Browser
Avalonia Partnering with Google's Flutter Team to Bring Impeller Rendering to .NET
👍32
Google смягчает новые ограничения на загрузку сторонних приложений в Android

В конце августа Google анонсировал> серьёзное изменение в Android. Начиная со следующего года Android запретит пользователям устанавливать приложения непроверенных разработчиков. Это заявление вызвало негативную реакцию со стороны многих энтузиастов и независимых разработчиков, которые посчитали, что новые ограничения фактически уничтожат загрузку сторонних приложений. Сегодня Google объявил о серьёзной уступке, чтобы успокоить этих пользователей. Компания заявляет, что разрабатывает новый «продвинутый процесс», который позволит «опытным пользователям принять риски установки непроверенного ПО».

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

Google также объявил сегодня, что приглашает разработчиков, распространяющих приложения исключительно за пределами Play Store, присоединиться к программе раннего доступа для проверки разработчиков. Эти разработчики смогут зарегистрироваться в Android Developer Console для подтверждения своей личности до вступления в силу требований проверки в следующем году. Приглашения для этих разработчиков работают с 3 ноября. Разработчики, распространяющие приложения через Play Store, получат приглашения на регистрацию с 25 ноября 2025 года.
👍62🍾2
Chad: The Brainrot IDE — дикая среда разработки с играми и развлечениями

Когда бывший CEO Twitter Дик Костоло выступал на TechCrunch Disrupt, кто-то из аудитории спросил его, будет ли возрождён хит HBO «Кремниевая долина». Костоло, который был сценаристом шоу, по сути, ответил отрицательно. Хотя сценаристы регулярно говорят об этом, он сказал, что не занимается этим, потому что современная Кремниевая долина сама настолько странная, что её невозможно спародировать.

Последний пример — новая компания Clad Labs, которая была прорекламирована Y Combinator на этой неделе. Продукт Clad настолько нестандартен, что сначала люди приняли его за первоапрельскую шутку.

Но это реальный продукт, рассказал основатель компании Ричард Ван. Продукт называется Chad: The Brainrot IDE (в вольном переводе — Дегенеративная среда разработки). Это ещё одна интегрированная среда разработки для вайб-кодинга, но с изюминкой. Ожидая, пока ИИ-инструмент завершит свою задачу, разработчик может заниматься своими любимыми развлечениями прямо в окне IDE.

Или, как рекламируется на сайте компании: «Делайте ставки, пока пишете код. Смотрите TikTok. Свайпайте в Tinder. Играйте в мини-игры. Это не шутка — это Chad IDE, и она решает самую большую проблему производительности в разработке с использованием ИИ, о которой никто не говорит».

Основатели утверждают, что их IDE повышает производительность, помогая «переключаться контекст». Их аргумент заключается в том, что развлекаясь в самой IDE, как только ИИ завершит задачу, вы сразу же вернётесь к работе, а не будете сосредоточены на телефоне или браузере.

Хотя продукт существует, он пока недоступен широкой публике.

«Сейчас мы находимся в стадии закрытого бета-тестирования», — сказал Ван. Сейчас он пытается сформировать «сообщество» пользователей, которым нравится эта идея. Clad Labs надеется вскоре открыть продукт для публики, но пока пользователи должны получить приглашение от кого-то, кто уже участвует в бета-тестировании.
🤡11😁82
Калькулятор

Вот чувак в Reddit пишет, что делает калькулятор для iOS. Сначала поулыбался - не, ну серьезно, калькулятор? - а потом полез в AppMagic и перестал улыбаться. Вот, например, Calculator+ - 66 миллионов (!) установок, $16 миллионов (!) валового дохода, $264K за прошлый месяц. Не, ну падает, да. Но в октябре 10 калькуляторов заработали больше $10K, 3 больше $100K, у 29 приложений из категории больше 100 тысяч установок. Так что не такая уж это и плохая тема - калькулятор…
👏7👍43
iOS

Нашел интересное открытое приложение для macOS. Dayflow записывает данные с экрана с частотой 1 кадр/с, анализирует их каждые 15 минут с помощью ИИ и формирует сводки и таймлайн ваших действий с отчётами (можно пересматривать таймлапсы). Оно лёгкое (размер приложения — 25 МБ), использует около 100 МБ оперативной памяти и менее 1% загрузки процессора. Кроме того, Dayflow по умолчанию означает владение и конфиденциальность. Вы контролируете данные, выбираете поставщика ИИ и можете хранить всё локально, если вам это удобно.

Dayflow — таймлайн вашего дня за компьютером
5 вещей о Optional в Swift, которые всех сбивают с толку
Флаги функций в Swift
10 SwiftUI Performance Secrets Every iOS Developer Should Know
7 Swift Operators That Look Weird but Are Actually Brilliant
Prompting users to review your app
SwiftUI: Discardable Slider
👍3
Android

Как приручить WebView: пререндерим экраны заранее (AndroidX WebKit prerenderUrlAsync), меряем не ощущения, а TTVR — время до визуальной готовности — лёгким offscreen-детектором, шлём метрики в Grafana. Внутри — когда и что пререндерить, таймауты/отмена, cookie-политика и готовые сниппеты. На проде — до 2.5× быстрее и меньше «белых экранов».

Google смягчает новые ограничения на загрузку сторонних приложений в Android
Как ускорить WebView в Android и доказать это цифрами
Fixing YouTube Playback in Jetpack Compose: The 3 Changes That Brought My Player Back
From ExoPlayer2 to Media3: Rebuilding Android Playback at Patreon
Google's automated review system is now protecting pirates and punishing developers for using Firebase App Check
👍4
Хоронили Flutter - порвали два Хабра (С) Автор статьи разбирает все любимые мифы: что Flutter тормозит (на самом деле просто не любит плохой код), что экосистема маленькая (55 000 пакетов — это, конечно, крошки), и что state management — это хаос (скорее, творческий выбор по вкусу). А потом показывает, что BMW, Google Pay и куча других серьёзных игроков уже давно спокойно живут на этом «похороненном» фреймворке. Так что, кажется, пора не хоронить Flutter, а признать: зомби-фреймворк оказался удивительно живучим.

Разработка

Hero выпускает SDK для автодополнения промптов
Chad: The Brainrot IDE — дикая среда разработки с играми и развлечениями

Маркетинг

Свой калькулятор
A guide to lifetime subscriptions: are they right for your app?
Oops! They Did It Again: How Supercell Made 5.7x Revenue For Clash Royale

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

Flutter — везде (и даже в чайнике). Часть 1
Распознаём позу человека во Flutter Web с MediaPipe
Как на Хабре каждый раз хоронят Flutter
How to Get the Most Out of Junie in a Kotlin Multiplatform Project
What’s new in Flutter 3.38
🥱7🤷‍♀5🍾31
🩼 Apple анонсировала партнерскую программу для мини-приложений в App Store

Мини-приложения внутри больших продуктов — это «программные пакеты, скрипты или игровой контент, добавляемые после установки приложения и выполняемые на устройстве, при условии, что такой код написан на HTML5, JavaScript или другом языке, одобренном Apple». Например, это мини-игры, чат-боты, плагины или игры в эмуляторах. При этом важно, чтобы мини-приложения не контролировались разработчиком основного приложения.

Приложения-участники должны поддерживать определённые технологии App Store:

• Advanced Commerce API и вспомогательные технологии для надлежащего продвижения мини-приложений и любых связанных с ними покупок
• Declared Age Rating API для предоставления контента и возможностей, соответствующих возрасту
• Использовать систему встроенных покупок Apple, которая предоставляет пользователям привычный и надежный способ совершать покупки, легко проверять историю покупок, просматривать, изменять или отменять подписки, а также обращаться в службу поддержки, например, для запроса возврата средств
• Конечную точку Send Consumption Information в App Store Server API для отправки информации о встроенной покупке пользователя в Apple при запросе возврата средств (эта информация также помогает информировать и улучшать процесс запроса возврата средств)

Уже можно подать заявку на участие в программе, в ответ Apple снизит комиссию за встроенные в такие мини-приложения покупки до 15%.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21
📺 Видео и подкасты за неделю @AppFiles

(iOS En) Location OnBoarding Animation Using SwiftUI
(iOS En) Please stop making this Swift mistake
(iOS En) Using SwiftUI Foundation Models Transcripts to build a Chatbot
(iOS En) Monetizing Apps With SwiftUI - Tip Jar
(iOS En) Android developer verification walkthrough
(And En) Now in Android: 122 – Android Studio updates, Android 16 beta feature, and more
(And En) Building Androidify: an AI-powered Android experience
(And En) More customization in Material 3: the path to expressive apps
(And En) Building adaptive apps for Android
(And En) Building intelligent Android apps with Gemini
(And En) What's new in Android Studio's AI Agent
(And En) Building for TV and cars with Compose
(And En) All Types of Sliders In Material3 Expressive Explained
(And En) The 5 Coolest Android Studio Hacks In 5 Minutes
(And En) Gradle Tutorial: Task Types (for Build Engineers)
(And En) Gradle Tutorial: Build Lifecycle (for Build Engineers)
(Crs Ru) Как закалялся код — история большой оптимизации
(Crs Ru) Flutter везде, и даже в чайнике
(Crs Ru) WhiteLabel App на Flutter. Один код — тысяча лиц
(Crs Ru) Как Flutter преобразует графический слой микроядерной ОС
(Crs Ru) Многомодульность на Flutter. Переезжаем с монолита
(Crs Ru) Перевод OpenHarmony на статический язык и рантайм
(Crs En) Liquid Glass effect is now available in Compose Multiplatform
(Dev Ru) Калибровки в бигтехе: как оценивать сотрудников
(Dev Ru) Надя Зуева — стартап в Дубае, AI в моде, инвестиции и жизнь фаундера
(Dev Ru) IT рынок перегрет. Удаленка vs Работа в офисе. Сколько стоит содержать офис?
(Dev En) Discrete Mathematics Course for Beginners

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

(Dev Ru) Как начинающему программисту получить первый оффер
(Dev Ru) Релокация в США, часть 1: Безопасность, оружие, визы и медицина
(Dev Ru) А/В-тесты на коленке
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3