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

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
Анализ "переводчика с кошачьего" - 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