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

• Аудитория https://t.me/apptractor/1066
• Сайт https://apptractor.ru/
Download Telegram
Apple тестирует новый дизайн рекламных объявлений в App Store на iPhone. Некоторые пользователи iOS 26.3 заметили, что синий фон вокруг спонсируемых результатов больше не отображается, размывая границу между платными рекламными результатами и реальными результатами поиска. Это означает, что единственным отличием между органическими результатами и рекламным объявлением является наличие небольшого баннера «Реклама» (Ad) рядом со значком приложения. Сейчас, похоже, этоn вариант дизайна находится на стадии A/B-тестирования. Удаление синего фона будет означать, что все объявления будут отображаться в списке более интегрированным образом. Конечно, это также затрудняет пользователям быстрое различение рекламы и её отсутствия, потенциально вводя некоторых пользователей в заблуждение и не позволяя им понять, что первый результат — это платная реклама. Хотя это и не очень хорошо для пользовательского опыта, это, вероятно, поможет увеличить коэффициент кликабельности, что в конечном итоге повысит доходы Apple от рекламного бизнеса.

Разработка

Firehound — хранилище iOS-приложений, раскрывающих данные пользователей
Как red_mad_robot развивает свою опенсорс-экосистему — от Android и iOS инструментов до AI-систем и агентных фреймворков
2026 UX/UI Design Trends that will be everywhere

Маркетинг

Apple стирает грань между рекламой и результатами поиска
How subscription apps can use hybrid monetization to capture more revenue
State of Web2App 2026

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

Why Cross-Platform Teams Are Shifting to Native — With Case Studies That Might Surprise You
Building the Same App in SwiftUI, Kotlin Multiplatform, and Flutter — What 281 vs. 75 Lines of Code Teaches Us
👍5🔥3
Магазин приложений Setapp Mobile закрывается

Один из наиболее известных альтернативных магазинов приложений, появившихся в ЕС в результате принятия Закона о цифровых рынках (DMA), закрывается. Магазин Setapp Mobile от MacPaw был запущен в сентябре 2024 года и предлагал десятки приложений в таких категориях, как продуктивность, финансы, видео, фото, творчество и многое другое.

Его модель предоставляла пользователям доступ ко всем мобильным приложениям Setapp за ежемесячную подписку в размере 9,99 долларов при условии, что Apple ID пользователя привязан к государству-члену ЕС.

Причиной решения стали «все еще развивающиеся и сложные бизнес-условия, которые не соответствуют текущей бизнес-модели Setapp». Под «сложными бизнес-условиями» здесь подразумеваются сложные сборы Apple за приложения, работающие в соответствии с новыми бизнес-условиями в ЕС, которые включают спорный Core Technology Fee, взимаемый с разработчиков в размере 0.50 евро за каждую первую годовую установку, превышающую 1 миллион за последние 12 месяцев. Технологический гигант пересмотрел свою структуру сборов в прошлом году, чтобы избежать дополнительных штрафов за несоблюдение DMA, но вместо упрощения сборов он сделал их еще более сложными. Одним из результатов этих постоянных изменений является то, что разработчики не могут должным образом планировать развитие и монетизацию своего бизнеса. Это также говорит о том, что существующие комиссии не делают запуск альтернативного магазина приложений в ЕС жизнеспособным вариантом.

В ЕС, однако, продолжат действовать другие альтернативные магазины приложений, в том числе Epic Games Store и AltStore.
😱6🍌2👍1
iOS

День архитектурных чтений. Начните с MVVM, а продолжите  VIPER - на самом деле оба подхода основаны на одинаковых архитектурных принципах, несмотря на то что на первый взгляд выглядят очень разными. Оба шаблона реализуют ключевые компоненты — View, Model и слой, который обрабатывает бизнес-логику и связывает модель с отображением — просто называют и структурируют их по-разному. VIPER происходит из Clean Architecture и вводит дополнительные уровни (Interactor, Presenter, Wireframe), тогда как MVVM опирается на ViewModel и обычно использует координатор для навигации, однако по сути все эти части выполняют аналогичные роли в разделении ответственности.

Apple не использует MVVM? MVVM — это неправильный архитектурный шаблон?
AccessibilitySnapshot — простое создание регрессионных тестов доступности для iOS
5 Common DSA Questions Asked in Almost Every Interview (Swift Edition)
Emptiness in SwiftUI
Why VIPER and MVVM in SwiftUI are actually the same pattern: A lesson in architectural thinking
The unexpected @Binding side effect
👍2
Android

Edge-to-edge интерфейсы в Android уже не просто модная опция, а стандарт поведения системы, особенно с выходом Android 15, где такой режим включается по умолчанию, если приложение нацелено на API 35. В отличие от старой модели, когда система автоматически оставляла «безопасные» зоны для статус- и навигационной панелей, теперь приложение получает полный экран и само должно корректно обрабатывать пересечения с системным UI — иначе элементы будут обрезаны или перекрыты. Автор даёт определение edge-to-edge, описывает, почему это важно, и показывает, как система изменилась в Android 15: система баров становится прозрачной, а старые методы вроде fitsSystemWindows устаревают. Он представляет практический план миграции: разрешить отрисовку интерфейса за системными панелями (WindowCompat.setDecorFitsSystemWindows(window, false)), заменить фиксированные отступы динамической обработкой WindowInsets (как во View, так и в Jetpack Compose) и учитывать особенности жестовой навигации (чтобы кнопки не конфликтовали с системными жестами). Особое внимание уделено BaseActivity/BaseFragment — ошибки там распространяются на многие экраны. В завершение подчёркивает, что тщательное тестирование на Android 15+ с разными режимами навигации обязательно для стабильности и будущей совместимости интерфейсов.

Android Security: What I Learned While Decompiling Our ‘Secured’ Production App? A Senior Dev’s Perspective
Introducing the Experimental Styles API in Jetpack Compose
Malware Analysis: Deconstructing “RTO Challan.apk”
Future-Proofing Android UI with Edge-to-Edge Layouts
👍21🙈1
В 2023 году Twitter впервые частично открыл исходный код своего алгоритма. В те дни миллиардер Илон Маск, владелец Tesla, только недавно приобрел платформу и заявил, что его миссия — реструктурировать социальную сеть, сделав её более прозрачной. Однако публикация кода алгоритма быстро подверглась критике за «театр прозрачности», критики отметили, что он «неполный» и мало что раскрывает о внутренней работе или о том, почему код работает именно так. Теперь X делает вторую попытку и снова открывает исходный код своего алгоритма, выполнив обещание, данное Маском на прошлой неделе. «Мы сделаем новый алгоритм , включая весь код, используемый для определения того, какие органические и рекламные публикации рекомендуются пользователям, открытым в течение 7 дней», — сказал он. Маск также пообещал обеспечивать прозрачность работы алгоритма каждые четыре недели в обозримом будущем.

Разработка

X открывает исходный код своего алгоритма рекомендаций
Why Senior Engineers Let Bad Projects Fail
11 Things I learned after using AI Agents full-time

Маркетинг

Магазин приложений Setapp Mobile закрывается
Большинство приложений терпят неудачу не из-за плохой «идеи»
How to Build a Mobile App That Makes Money in 2026
Apple is coming for your organic traffic. Two updates you need to prepare for now.
How Cem Kansu helped Duolingo scale monetization without breaking freemium

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

How Flutter Apps Fail in Production
👍3
Состояние мобильного рынка в 2025 году — отчет Sensor Tower

Вышел новый годовой отчет Sensor Tower.

• Загрузки выросли на 0.8% и достигли 149 миллиардов
• Доходы от встроенных покупок выросли на 10.6% и достигли 167 миллиардов
• Среднее время в приложениях за день выросло на 1.1% и достигло 3.6 часов, это больше 13 минут в час бодрствования
• В среднем каждый человек использует 34 приложения в месяц, рост на 5.4%

Еще из интересного:

• В 2025 году доходы от покупок в приложениях, не являющихся играми, впервые превысили доходы от игр: результат, который еще несколько лет назад казался крайне маловероятным. Потребители потратили на приложения около 85 миллиардов долларов в 2025 году, что представляет собой впечатляющий рост на 21% по сравнению с аналогичным периодом прошлого года и в 2.8 раза больше, чем пять лет назад.
15 из 20 ведущих поджанров продемонстрировали рост доходов от встроенных покупок как минимум на 10% в годовом исчислении, а некоторые значительно превысили этот порог. Лидерами снова стали ИИ-помощники и короткометражные драмы, а также значительный рост показали приложения для видеомонтажа, такие как CapCut.
• Ведущие издатели продолжают занимать значительную долю мобильного рынка. В 2025 году 1% крупнейших издателей получили 92% дохода от IAP и 81% загрузок. Это составило 154 миллиарда долларов дохода от IAP для 1% крупнейших издателей, по сравнению с всего 13.1 миллиардами долларов для оставшихся 99% издателей с ненулевым доходом, отслеживаемым Sensor Tower. В то же время мобильная экономика предлагает больше возможностей за пределами крупнейших игроков. Рост дохода от IAP среди 99% издателей с наименьшим доходом опережает рост дохода 1% крупнейших. Хотя на долю этих 99% приходилось всего 8% дохода от IAP в 2025 году (по сравнению с 5% в 2019 году), рост ускорился с появлением генеративного ИИ. Генеративный ИИ может помочь выровнять условия конкуренции в определенных случаях, например, ускоряя разработку приложений и игр для небольших издателей.

Краткий мой обзор - тут.
1👍42🤔2
С мест сообщают, что Apple работает над небольшим носимым значком (Pin) с искусственным интеллектом, оснащенным несколькими камерами, динамиком и микрофонами. Если он действительно выйдет на рынок, то, скорее всего, будет работать новый чат-бот Siri, который Apple планирует представить в iOS 27. Значок будет похож по размеру на AirTag, имея тонкую, плоскую, круглую форму диска. У него будет корпус из алюминия и стекла, а также две камеры на передней панели. Будет стандартный и широкоугольный объектив, предназначенные для съемки фотографий и видео, а три микрофона предназначены для улавливания звука вокруг пользователя. Встроенный динамик позволит значку воспроизводить звук, а вдоль одного из краев расположена физическая кнопка управления. Apple хочет, чтобы финальная версия значка была примерно такого же размера, как AirTag, но немного толще. Пока неясно, планирует ли Apple продавать значок отдельно или в комплекте с будущими умными очками или другими устройствами, но физическая кнопка и встроенные камеры, динамики и микрофоны предполагают, что он может работать автономно. Такой пин Apple с ИИ может быть выпущен уже в 2027 году, но разработка находится на ранней стадии и может быть отменена.

Разработка

RunAnywhere — инструментарий для локального запуска ИИ
Google выпустил модель FunctionGemma.
Почему Senior инженеры допускают провал неудачных проектов
Умный дом, у каждого он свой
Why Software Careers Collapse After 5 Years (And What 2031 Will Reward Instead)

Маркетинг

Состояние мобильного рынка в 2025 году — отчет Sensor Tower
Приложения, призывающие к бойкоту американских товаров, вышли на вершину датского App Store
Годовой план
Ship early, learn faster: speed as a strategy for early-stage app growth

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

Kotlin 2.3 Proves Kotlin Is No Longer Just an Android Language

iOS

Apple разрабатывает ИИ-значок размером с AirTag
The Problem with Enums
Copy-on-write teaches you EVERYTHING about Swift Internals

Android

Погружение в разработку плагинов для Android Studio (часть 2)
Stop Guessing, Start Shipping: A Guide to Practical Android TDD
Why Your LazyColumn Drops Frames
State Hoisting in Jetpack Compose: Common Mistakes That Kill Performance
4👍3
📺 Видео и подкасты за неделю

(iOS En) SwiftUI Screenshot Prevention - Prevent Users from Taking Screenshots of a SwiftUI View
(iOS En) Apple Books Hero Effect - Synchronized Scroll Matched Geometry Effect - Complex UI
(iOS En) Mastering Switch Statements in Swift: Pattern Matching, Enums, and Real SwiftUI Examples
(And En) What's New in Kotlin 2.3
(Crs Ru) Бьем по рукам при помощи своего Dart-линтера
(Crs Ru) Изоляционно-плагинная архитектура в Dart-приложениях, переносимость на Flutter
(Crs En) Gradle 9 Will Break Your KMP Project - Here's the Full Migration Strategy
(Dev Ru) Использование AI в процессах разработки
(Dev Ru) Emacs в 2026 — Секретное оружие или старый хлам?
(Dev En) How to create unique App Icon for your next Project
(Dev En) RAG & MCP Fundamentals – A Hands-On Crash Course
(Dev En) Lean Dynamic Programming with Animations – Full Course for Beginners
(Dev En) How to Get Promoted as a Software Engineer: A Practical Strategy

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

(iOS Ru) SwiftUI: алхимия приложений — превращаем идеи в реальность
(iOS Ru) Тактики ускорения билда: матиз, кобальт, камри 3.5
(And Ru) Переезжаем с фрагментов на (De)compose
(And Ru) Как устроена разработка в Яндекс.Клавиатуре
(And Ru) Android + AI. Решаем задачи с умом
(Dev Ru) Основы DevEx: ищем, куда исчезает время программистов

👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Погружение в UX-долг

В этом еженедельном дайджесте разработка приложений с помощью ИИ и состояние мобильного рынка, MVVM и плагины для Android Studio, миграция на Android Gradle Plugin 9.0, сокращение потребления памяти, бесплатный Skip, FunctionGemma от Google и многое другое. Заходите!
👍3
Skip стал бесплатным и открытым

Skip, инновационный фреймворк, позволяющий разработчикам создавать кроссплатформенные приложения на Swift и SwiftUI для iOS и Android, объявил о переходе на полностью бесплатную модель с открытым исходным кодом.

Этот поворот, подробно описанный в блоге, знаменует собой значительную эволюцию для инструмента. Устранив лицензионные сборы и открыв свой код, авторы Skip стремятся демократизировать доступ к высококачественной нативной кроссплатформенной разработке, потенциально ускоряя внедрение как среди независимых разработчиков, так и среди крупных команд. Уникальный подход Skip — транспиляция кода Swift в Kotlin и Jetpack Compose для Android — давно обещал преодолеть разрыв между экосистемой Apple и Google, позволяя разработчикам поддерживать единую кодовую базу, обеспечивая при этом нативную производительность на обеих платформах. Теперь, когда барьеры для входа устранены, эта технология может получить широкое распространение в рабочих процессах, которые ранее избегались из-за финансовых ограничений.

Созданный Марком Этчеверри и командой опытных инженеров, фреймворк появился в результате многолетнего разочарования в существующих решениях, которые часто шли на компромисс в отношении производительности или пользовательского опыта. Как указано в официальных примечаниях к релизу в блоге Skip, инструмент изначально запускался по подписке для финансирования его разработки, но решение сделать его бесплатным отражает стратегическую ставку на рост сообщества, а не на прямую монетизацию.
🥱114🤡2🌚1
iOS

Оптимизировать работу UI важно - это напрямую влияет на пользовательский опыт и удержание. Собственные метрики позволяют получить больше информации - метрики позволяют не только находить проблемы, но и подтверждать улучшения после оптимизаций. В этой статье Виталий Барабанов из HH пишет про их решение для сбора метрик производительности UI.

Когда данных от Apple недостаточно: собираем метрики производительности UI
Uber Asked Me This in an iOS Interview — and I Froze
Managing simultaneous, in sequence and exclusive gestures
Designing a Scalable App-Wide Theming System in SwiftUI
Your Swift Tests Are Great. Until a Mutant Shows Up
SwiftUI Navigation the Easy Way
1
Android

Многие Android-разработчики жалуются на обилие шаблонного кода при верстке на Compose: бесконечные вложенности Column, Row и Modifier съедают кучу времени. Автор этой статьи решил проблему радикально и создал собственный Emmet-подобный плагин для Android Studio. Инструмент позволяет превращать короткие аббревиатуры вроде C.f.p8 в полноценные структуры кода с отступами и выравниванием всего за пару нажатий. Это не просто экономит секунды на каждом компоненте, но и помогает не выгорать на рутинных задачах.

Yet Another Rapid Compose — интеллектуальный генератор сокращений
AwesomeUI — готовые элементы Compose
How to fix the Compose preview naming problem
Dependency Injection with Koin, interfaces and qualifiers
Kotlin DSLs in 2026: Patterns That Stood the Test of Time
How to Create a Tubelight Effect in Android Compose
Swipe-to-Dismiss with Compose Material 3
How I got tired of writing boilerplate in Compose and wrote my own Emmet-like plugin for Android Studio
Kotlin Intrinsics on Android
1👍1
Автор статьи рассказывает, как в 16 лет создал Beam Browser — полноценный браузер, ориентированный именно на iPad и сценарии работы с планшетом как с основным компьютером. Идея проекта родилась из личной боли: стандартные мобильные браузеры не давали ощущения «десктопа», а iPad при этом использовался для учёбы и работы каждый день. Вместо того чтобы мириться с ограничениями, разработчик решил сделать инструмент под себя — с боковой панелью вкладок, рабочими пространствами, командной строкой и поддержкой клавиатурных шорткатов. Самое впечатляющее — результаты. Уже в первые дни после релиза Beam Browser вышел на первое место в категории Productivity в США, собрал сотни загрузок и принёс ощутимый доход, что для нишевого iPad-приложения и соло-разработки звучит более чем достойно. Эта история отлично показывает, что возраст не имеет значения, если ты решаешь реальную проблему, делаешь продукт для себя и не боишься выпускать его в мир. Иногда именно узкие, «не для всех» идеи находят самую лояльную аудиторию. Сильный кейс для всех, кто думает, что рынок переполнен и «уже всё сделано».

Разработка

Использование AI в процессах разработки
Emacs в 2026 — Секретное оружие или старый хлам?
10 things I learned from burning myself out with AI coding agents
How To Review Code

Маркетинг

Мне 16 лет, и я разработал браузер для iPad
Волшебная таблетка
Бывшая тройка сотрудников Google разрабатывает интерактивное обучающее приложение для детей на основе ИИ

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

Skip стал бесплатным и открытым
Бьем по рукам при помощи своего Dart-линтера
Изоляционно-плагинная архитектура в Dart-приложениях, переносимость на Flutter
Building a Text Sentiment Classifier in Kotlin Multiplatform
I Stopped Using JSON in My Flutter App — and My UI Stopped Janking
👍31
Навыки, которые вы теряете, пока ИИ берет на себя рутинные задачи

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

Написание тестов не подразумевало покрытие всего кода. Это было принуждение себя мыслить как противник: что может пойти не так? какой ввод данных сломает это? Этот инстинкт возник не из чтения о крайних случаях. Он пришел от репрезентативных тестов.

Документация выполняла аналогичную функцию, хотя никто так это не формулирует. Акт объяснения выявляет пробелы - места, где ваше понимание нечеткое, выявляет решения, которые вы принимали по причинам, которые вы больше не можете сформулировать. Если пропускать этот процесс достаточно часто, вы перестаете замечать пробелы.

Даже шаблонный код. После написания одного и того же сценария аутентификации в десятый раз ваши пальцы знают, где будут ошибки, раньше, чем ваш мозг. Это не неэффективность. Это распознавание образов, которое нельзя развить никаким другим способом.

Вы ненавидели писать тесты не потому, что они были бессмысленными. Вы ненавидели их потому, что они были сложными и не казались продуктивными.

Это трение было своего рода тренировкой. А теперь его нет. И ваши навыки разработки атрофируются. Что самое примечательное - незаметно для вас. И через некоторое время вы поймаете себя на том, что в недоумении смотрите на баги, который раньше щелкали как орешки, на архитектуру, которую не можете объяснить, или на систему, которую больше не понимаете.

Вопрос не в том, использовать ли ИИ. Вы будете его использовать. Вопрос в том, останетесь ли вы через пять лет инженером, способным работать без него, или же тем, кто не будет знать, с чего начать.

Поддержите мой перевод на Хабре.
💯18🔥3😢3
Ладно, если ИИ вас не пугает, то вот статья про то, что на самом деле означает «агентская разработка» и почему с ней важно менять не инструменты, а мышление. Речь идёт не о привычном использовании ИИ как умного автодополнения, а о работе с агентом, который сам планирует шаги, пишет код, запускает его и исправляет ошибки. Автор предлагает на старте буквально заставить себя отойти от клавиатуры и позволить агенту делать работу, чтобы понять его логику, сильные и слабые стороны. Он показывает, как начать работу с Claude Code, как формулировать задачи, обсуждать план действий с агентом и направлять его, не скатываясь обратно в ручное программирование. В качестве примера он разбирает создание простой CLI-утилиты на Rust, но основной фокус — не на языке или инструменте, а на новом формате взаимодействия с ИИ. Это хороший вводный текст для разработчиков, которые хотят перейти от экспериментов с LLM к осознанному и продуктивному agentic-подходу.

Разработка

Навыки, которые вы теряете, пока ИИ берет на себя рутинные задачи
Agentic development basics
Our JetBrains Devs Switched to VSCode. They Hate VSCode.

Маркетинг

Skylight растет на фоне проблем TikTok
Почему диплинки стали скрытым драйвером роста мобильных приложений

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


Capacitor: от веба к мобильным приложениям. Часть 1. Миграция проекта на Capacitor
Orient UI - Design System for Flutter without Material or Cupertino

iOS

Typhoon — легковесная библиотека для повторных попыток выполнения задач
Swift: Array vs Set vs Dictionary — Does 1,000 Elements Change the Winner?
Swift Debugging Like a Senior iOS Engineer

Android

Swipe-to-Dismiss в Compose Material 3
Don’t Block Suspend Functions
Serverless AI for Android with Firebase AI Logic
Desugaring in Android: The Magic Potion for Modern Kotlin on Every Device
Kotlin Idiomatic Collections — The Ultimate Guide
4👍1
Swift открывает рабочую группу по Windows

Как-будто очнулись от спячки - рабочая группа Android, рабочая группа по сборке и упаковке, рабочая группа по тестированию в прошлом году, уже рабочая группа Windows в этом.

Основная цель — обеспечить постоянную поддержку Swift на Windows, позволяя пользователям разрабатывать приложения для Windows, используя язык программирования Swift и связанные с ним инструменты. Рабочая группа сосредоточится на работе по:

• Улучшению и поддержке поддержки официального дистрибутива Swift для Windows
• Рекомендаций улучшений основных пакетов Swift, таких как Foundation и Dispatch, для лучшей работы с идиомами Windows
• Предложений рекомендации относительно направления будущей поддержки Windows в Swift
• Определения и рекомендаций лучших практик для обеспечения взаимодействия между Swift и Windows API, а также для включения библиотек Swift в приложения Windows

Членство в рабочей группе и участие в собраниях открыты для всех желающих.
🔥12
iOS

На Хабре очередной стон - внезапно оказывается, что PWA на iPhone всё ещё ощущается как гражданин второго сорта. Разбирают суровую техническую реальность Safari 19, ограничения WebKit, о которых Apple предпочитает молчать, и те немногие лазейки, которые позволяют сделать опыт использования веб-приложений хотя бы терпимым. Вы узнаете, почему localStorage умирает при установке, как заставить работать Deep Links (и почему они все равно ломаются), и в каких редких случаях PWA действительно может заменить App Store. Это гайд по выживанию в экосистеме, которая активно сопротивляется вашему присутствию.

Отлаживайте Swift как Senior
Почему PWA на iOS всё ещё не торт — и что на самом деле разрешает Apple
Async Inside Task in Swift: The Clean, Correct, and Modern Way (Most Devs Get This Wrong)
You Won’t Believe These Swift Syntax Tricks Actually Exist
Domain Models vs API Models in Swift
1👍1
Android

По своей сути, Firebase AI Logic — это мост между вашим Android-приложением и моделями генеративного ИИ. В этой статье рассказывают, почему бессерверный ИИ на Android наконец-то стал практичным, и как Firebase AI Logic делает его удивительно простым.

Бессерверный ИИ для Android-приложений с Firebase AI Logic
VICE — KMP MVI фреймворк
Безопасный обмен данными между приложениями на Android: intents, URI schemes, shared preferences
Material 4.0 & Blur Effects — Elevate UIs with Modern Materials and Depth
Cracking Android SDE2/SDE3 Interviews in 2026: Deep Dives, Code, Follow-ups
Android: We Migrated From MVVM to MVI — Because MVVM Was Gaslighting Us
What Kotlin 2.3 Means for Clean Architecture Projects
Shaders on Android: From Fractals to Real UI
👍2