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
Состояние мобильного рынка в 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
Разработчик Camo, компания Reincubate, подала в суд на Apple из-за функции Continuity Camera, обвиняя Apple в нарушении патентов и обмане, связанном с «копированием» (Sherlocking) её приложения для использования iPhone в качестве веб-камеры. Внедрение функции Continuity Camera в 2022 году стало революционным событием для пользователей, работавших в условиях пандемии COVID-19 в удалённом режиме. Эта функция также «скопировала» ряд приложений, использующих iPhone в качестве камеры для видеоконференций, и одно из них решило занять принципиальную позицию. В иске Apple обвиняется по ряду пунктов. Главный из них — нарушение принадлежащих компании патентов, связанных с захватом видео с одного устройства и его обработкой для отображения на другом. Более интересно, что разработчики также утверждают, что Apple поощряла разработку приложения, в то время как сама планировала создать свою собственную копию, которую позже и представила. Apple обнаружила Camo ещё на стадии бета-версии, поощряла компанию делать на продукт основную ставку, а тысячи сотрудников Apple использовали его внутри компании. Также были обещания помощи и даже номинация на награду. Однако после того как было продемонстрировано наличие рынка для этой функции, авторы Camo увидели демонстрацию своей технологии на WWDC 2022 — её показывали участники команды, которые ранее говорили, что ежедневно использовали Camo в работе.

Разработка

Today’s organisations don’t have an AI problem — they have a thinking problem
Building a Tiny GPU to Understand AI Hardware Engineering
The Age of Pump and Dump Software

Маркетинг

Одно небольшое изменение в тексте пейвола увеличило MRR со $100 до $700
Самые скачиваемые и зарабатывающие приложения в мире в декабре 2025
Разработчик Camo подал иск к Apple по поводу «копирования» в Continuity Camera

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

Swift открывает рабочую группу Windows
React Native. Часть 1: архитектура, производительность и варианты использования
Что нам стоит на КМП построить?
Building a Fully Adaptive Navigation System in Compose Multiplatform
👍3😁2🔥1
Во вторник Google в США достиг предварительного соглашения по коллективному иску о незаконном сборе данных. Если соглашение будет одобрено, Google выплатит пользователям телефонов Android 135 миллионов долларов, что, возможно, станет крупнейшим соглашением такого рода в истории. Согласно иску, начиная с 2017 года, Google в Android автоматически собирал данных о местоположении через операторов связи, без возможности для пользователей отказаться от этого. В иске утверждалось, что сбор данных происходил даже тогда, когда пользователи предпринимали такие шаги, как отключение отслеживания местоположения или закрытие приложений. Компания согласилась получать более явное согласие от пользователей Android при первом использовании новых телефонов, реализовать переключатель для отключения определенных типов сбора данных и более четко раскрывать информацию о сборе данных. Выплаты будут ограничены суммой в 100 долларов на человека, поэтому никто не должен рассчитывать на большее.

Разработка

Тренды UX/UI-дизайна 2026 года, которые будут повсюду
Эпоха «накачки и сброса» ПО
Beyond the four nines: How we architect for reliability
The Standup Is Dead. You Just Haven’t Noticed.
After two years of vibecoding, I'm back to writing by hand

Маркетинг


The $1B app category nobody's paying attention to
Why most activation metrics don’t predict who will stay (and what to use instead)

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

Why We Moved Back From React Native to Swift (After Shipping to Production)
Built a Handwriting Scanner in Flutter — Here’s What Actually Worked

iOS

Простые синтаксические приёмы в Swift
App Store Toolkit — инструменты локализации iOS-приложений
10+ Things You Don’t Know About Core Data (Even If You’ve Been Using It for Years)
The Secret to Buttery Smooth SwiftUI
Reverse masking in SwiftUI using blend modes
Sharing content among apps using AppEntity and Transferable protocol

Android


Утекли скриншоты интерфейса Android для десктопов
Google согласился выплатить $135 млн за сбор данных в Android
Cash Sense — Android-приложение для управления финансами
Kotlin 2.0 — Main, IO, or Default? The Dispatcher Choice That Makes or Breaks Your App
Offline-First System in Android
Case Study: How I Sped Up Android App Start by 10x
2🔥1
📺 Видео и подкасты за неделю

(iOS En) SwiftUI Sortable Grid View
(iOS En) Managing Undo/Redo State in SwiftUI
(iOS En) I Built a macOS Transcription App with Codex 5.2 + Xcode (Real Workflow)
(iOS En) SwiftUI Pickers Deep Dive
(And Ru) Пишу свой телеграм клиент на Android по TDD
(And En) Why you should delete your base classes on Android (BaseActivity, BaseViewModel, etc.)
(And En) Making Apps Accessible with Kotlin and Compose
(And En) Refactor Kotlin code from OO to functional - step by step, safely, and pragmatically
(And En) Unused Return Value Checker in Kotlin 2.3
(And En) Explicit Backing Fields in Kotlin 2.3 - What You Need to Know
(And En) Stop using LaunchedEffect for passing an Argument to a ViewModel
(Crs Ru) Опасный Flutter… Или нет?
(Crs Ru) Курс Dart и Flutter вместе
(Crs En) How to Switch the App Language In KMP (Android & iOS)
(Dev Ru) AntiSOLID
(Dev Ru) Железо для ИИ — AI, Hardware, GPU, Cerebras
(Dev En) Relational Database Design – Full Course

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

(iOS Ru) Как мы адаптировали проект к Strict Concurrency Checking — Swift 6
(iOS Ru) Как избежать утечек памяти при использовании Task, Combine, CurrentValueSubject и AsyncStream
(And Ru) Построение multi-app архитектуры
(And Ru) Старт карьеры в Android-разработке до 18 лет
(And Ru) Compose Navigation Codelab: проходим кодлаб от Google
(Dev Ru) Проектирование и запуск разработки
Please open Telegram to view this post
VIEW IN TELEGRAM
2
Макс Артюшенков и Сережа Рис проводят на следующей неделе серию бесплатных воркшопов про то, как завайбкодить приложение и продвигать его через виральный контент.

Макс запустил приложение на рынок США и продвигает его через виральный контент, без платной рекламы.
Сделал 1 млн просмотров и $1000 выручки в первый же месяц.
Сейчас стабильно получаем $300-600 выручки ежедневно, только AI контент.

Сережа - ex-Yandex, продакт с крутым опытом и фаундер комьюнити вайбкодеров @vibecod3rs

Про что будут воркшопы:

1-ый день "Система"
- Как на самом деле работает продвижение через органику без бюджета.
- Как анализировать контент, находить нишевые идеи продуктов
- Как искать крутой контент и адаптировать сценарии под свой продукт

2-ой день "Вайбкодинг"

- Как сделать MVP приложения или веб продукта с помощью Replit / Cursor / Claude Code.

3-ий день "Виральный контент"
- Как прогревать TikTok / Instagram аккаунты на любое ГЕО и избегать банов.
- Как генерировать реалистичные AI-видео (без камеры и студий)
- Контент-завод, как масштабировать производство контента

Если вы думаете про создание своего приложения, но не знали, как его лучше сделать и продвигать - это то, что нужно.

Воркшопы пройдут в пн-ср 2, 3, 4 февраля в 16 CET / 18 GMT+3 (msk)

Зарегистрироваться тут
🤡10👍4