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
Apple запрещает бесплатную раздачу приложений

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

В ролике приводится кейс Gym AI: за сутки 4 000 установок и всплеск оценок, после чего пришло официальное предупреждение от Apple. Apple указывает на манипулирование чартами, отзывами и поисковым индексом, а также на возможное «скрытие функциональности от ревью‑команды» и «фальсификацию потребительских отзывов», что подпадает под нарушения Apple Developer Program License Agreement. Автор предполагает, что кратковременная «раздача» может трактоваться как предоставление пользователю ценности в обмен на положительный отзыв, то есть как форма стимулированных отзывов, даже если прямой оплаты нет.

По словам автора, как минимум шесть инди‑разработчиков получили такие предупреждения, а в одном случае Apple приостановила будущие выплаты, что усиливает серьёзность последствий. Письма содержат предупреждение о возможной утрате аккаунта разработчика при манипуляциях рейтингами, отзывами или поисковой выдачей, что ставит под удар весь аккаунт и портфель приложений. Если это первое предупреждение, по опыту из видео у разработчика есть окно, чтобы «привести аккаунт в порядок» и устранить нарушения; в кейсе упоминается 30‑дневный срок.

AppGrowth про инди, пет и монетизацию
3
iOS

В статье подробно раскрывается, как в Swift с помощью фреймворка Natural Language и класса NLLanguageRecognizer определить язык произвольного текста. После обработки строки методом processString можно получить доминантный язык, а также набор возможных языков с вероятностями через languageHypotheses. Авторы показывают, как перевести код языка (например, "en") в читабельную строку через Locale.current.localizedString(forIdentifier:). Кроме базового примера, статья также рассматривает улучшения: как сбрасывать состояние распознавателя (метод reset()), как ограничивать список поддерживаемых языков (languageConstraints) или задавать подсказки (languageHints) для повышения точности. В целом, это полезное руководство, чтобы добавить автоматическое определение языка в iOS/Swift-приложение.

AltStore PAL получает инвестиции и расширяется
SwiftyChat — интерфейс чата на SwiftUI
Adapting SwiftUI Sheet to Fit Content Height
Detecting Text Language with NLLanguageRecognizer in Swift
SwiftUI: Image Generation With Foundation Model
👍1
Android

Если вы Андроид-разработчик, думаю, вам часто приходилось сталкиваться с ситуациями, когда код вашего приложения выбрасывает необрабатываемое исключение и ваше приложение закрывается. На сленге можно сказать, что «приложение крашится». В этой статье автор разберётся, почему это происходит и какие механизмы лежат в основе такого поведения.

Почему моё Android-приложение крашится?
Side Effects in Jetpack Compose — Explained Simply
Difference between emit and tryEmit in Kotlin Flow
Medium Android App — Migrating from Apollo Kotlin 3 to 4: Lessons Learned
👍3🤡3
Google представил новую модель искусственного интеллекта Gemini, предназначенную для навигации и взаимодействия с вебом через браузер. Это позволит ИИ-агентам выполнять действия в интерфейсах, разработанных для людей, а не роботов. Модель, получившая название Gemini 2.5 Computer Use, использует «возможности визуального понимания и рассуждения» для анализа запроса пользователя и выполнения задачи, например, заполнения и отправки формы. Google заявляет, что его Computer Use модель «превосходит ведущие альтернативы в нескольких веб- и мобильных бенчмарках». В отличие от ChatGPT Agent и инструмента «использования компьютера» от Anthropic, новая модель искусственного интеллекта Google имеет доступ только к браузеру, а не ко всей компьютерной среде. Google отмечает, что она «пока не оптимизирована для управления ОС» и в настоящее время поддерживает только 13 действий, включая открытие веб-браузера, ввод текста и перетаскивание элементов.

Разработка

Google выпустил Gemini 2.5 Computer Use для работы с браузером
Your Best Mobile Developer Is the “Slow” One
Solving Double Booking at Scale: System Design Patterns from Top Tech Companies

Маркетинг

Apple запрещает бесплатную раздачу приложений
Доход х5 с помощью микроинфлюенсеров

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

Rijksmuseum — музей на Kotlin Multiplatform
The Flutter Architecture That Saved Our Team 6 Months of Rework
1👍1
Как обеспечить надёжность автотестов: опыт ЮMoney и SimbirSoft 🪲

Bugs Busters — бесплатный митап ЮMoney для QA-специалистов. Опыт ЮMoney и приглашённого спикера из SimbirSoft применим в любых компаниях, для которых важна надёжность и стабильность цифровых сервисов.

На митапе Bugs Busters мы не просто рассказываем про внутренние практики, а делимся решениями, которые можно адаптировать под ваши проекты — от оптимизации автотестов до построения устойчивой мобильной инфраструктуры.

Вот о чём расскажут спикеры из ЮMoney и SimbirSoft:

🟣 UI Automation без UI: стабильные автотесты в мире нестабильных iOS-приложений. Поделимся опытом, как мы адаптировали XCUITests на основе SDK-first тестовой архитектуры.
🟣 Мечтают ли Android-эмуляторы о запуске в Docker? Расскажем, как мы обошлись без классической фермы устройств при запуске Android-автотестов на CI.
🟣 Скелеты в шкафу мобильного тестирования: на примере проектов ЮMoney рассмотрим, как поддерживать сотню устройств всегда готовыми к работе. Разберём риски постоянной зарядки девайсов, расскажем о выбранной стратегии и первых шагах к удалённому управлению через DeviceHub.

15 октября, среда, в 19:00 (мск) — присоединяйтесь онлайн или приходите в офис ЮMoney в Санкт-Петербурге, чтобы пообщаться с командами, которые ежедневно тестируют под реальной нагрузкой.

Зарегистрируйтесь, чтобы принять участие. Все подробности — на сайте митапа Bugs Busters ™️
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21👻1
Android

Статья отлично разбирает, как устроены таски (tasks) и стек возврата (back stack) под капотом. Автор показывает, что активити — это «глава истории», а стек — это последовательность этих глав, которыми управляет Android по принципу LIFO (последний зашёл — первый вышел). Но самое интересное — как разработчики могут контролировать это поведение. В статье глубоко объясняются launch modes (standard, singleTop, singleTask, singleInstance) и intent flags (FLAG_ACTIVITY_NEW_TASK, FLAG_ACTIVITY_CLEAR_TOP и др.), а также такие нюансы, как taskAffinity, атрибуты вроде clearTaskOnLaunch и поведение кнопки «назад» на Android 12+. Если вы пишете навигацию или сложные потоки переходов в Android-приложении — эта статья точно стоит внимания.

JetCo Library — готовые UI-компоненты Compose
Understanding “Tasks” and the Back Stack in Android — The Story Behind Your App’s Journey
Android App Architecture Patterns 2025: Building Scalable Apps with Hilt, Navigation, and ViewModel
15 Android Developer Productivity Hacks
4
iOS

Хотите добавить генерацию изображений с помощью Foundation Models прямо в SwiftUI-приложение? В этой статье подробно разобрано, как заставить модель создавать картинки на устройстве — без сторонних API и серверов. Автор показывают, какие подходы не работают (и почему), делится реальными примерами кода и объясняет ограничения фреймворка.

Генерация изображений с использованием Foundation Models в SwiftUI
Stop Using Fixed Frames in SwiftUI: The Complete Guide to containerRelativeFrame()
Building AI features using Foundation Models. Streaming.
Taking control of your navigation in SwiftUI with NavigationPath
Building a Real-Time Trading Co-Pilot on iOS
👍1
Занятная история про то, как человек создал цифровой физический продукт - печатный журнал со всеми кофейнями города, печатающийся по запросу.
Если вы разработчик и думаете о создании чего-то, вам не нужно создавать ещё один SaaS-сервис. Рынок просто переполнен. Но есть множество других видов бизнеса с возможностями автоматизации. Физические товары, локальные услуги, контент-бизнес — что угодно.


Разработка

Я навайбкодил физический продукт, вместо очередного SaaS
8 Tiny UI Fixes That Will Make Your Product Feel 10x Smarter

Маркетинг

Исследование мобильных пушей от Mindbox
Новые требования для iOS-приложений в Техасе
Pokémon Sleep исполнилось два года — как обстоят дела у конкурентов?

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

«Ох, зря я туда полез…»: история о том, как мы переезжали на React Native
1👍41
📺 Видео и подкасты за неделю @AppFiles

(iOS Ru) Неуловимый iOS-ботовод. Задетекти меня, если сможешь: автореги, боты, спамеры
(iOS Ru) Разработка под Apple Vision Pro: исследуем возможности гарнитуры
(iOS En) Secure your app with Memory Integrity Enforcement
(iOS En) Interactive Map with Draggable Bottom Sheet - SwiftUI
(iOS En) iOS App Development in 2025: How to Choose Your Tech Stack and Architecture
(iOS En) Full-Screen Sheets Using SwiftUI
(iOS En) Customized Animated Paywall using Native SwiftUI StoreKit APIs
(And Ru) Автообновление Android: когда можно не бояться санкций сторов
(And Ru) Доверяй, но проверяй: про корневые сертификаты в Android и не только
(And Ru) Как правильно написать фичу. Часть 1
(And Ru) Что ждёт Android-разработчика на собесе в Wildberries (+ все собеседования)
(Crs Ru) Миграция больших приложений на KMP: проблемы, подводные камни, решения
(Crs En) Build Your First Compose Multiplatform Web App
(Crs En) In-depth on Metro — with Zac Sweers
(Dev Ru) Как мы сделали CI, которому можно доверять
(Dev Ru) Почему текстовый поиск устарел — векторные базы, эмбеддинги, RAG
(Dev En) How to build AI agents with memory
(Dev En) You can write code faster. Can you deliver it faster?

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

(iOS Ru) Собеседование iOS-разработчика: проектирование и лайфкодинг
(Crs Ru) Flutter Web глазами мобильного разработчика
(Dev Ru) Мобильная разработка в Алисе и YaOS: как это работает
(Dev Ru) Перформанс мобильных приложений
Please open Telegram to view this post
VIEW IN TELEGRAM
Генерация крашей

В этом еженедельном дайджесте отрисовка SF Symbols в SwiftUI и краши Android-приложений, неблокирующие заставки и история о переезде на React Native, физический продукт, вместо очередного SaaS, запрет бесплатных раздач приложений от Apple, Топ-10 лучших бесплатных нейросетей и многое другое. Заходите!
👍4🔥2
iOS

В статье подробно разбирается, как в SwiftUI воссоздать визуальный эффект свечения в стиле «Apple Intelligence». Автор показывает, как сочетать несколько слоёв Stroke, размытие и анимированные градиенты, чтобы добиться мягкого светящегося ореола вокруг элементов интерфейса. Ключевая идея — создание многоуровневой композиции: один слой без размытия, другой с наложенным блюром, плюс динамическая смена цветовых стопов градиента. Такое решение позволяет получить плавное и живое свечение, которое легко переиспользовать в разных частях приложения через расширения или модификаторы.

Неуловимый iOS-ботовод. Задетекти меня, если сможешь: автореги, боты, спамеры
Разработка под Apple Vision Pro: исследуем возможности гарнитуры
Elegant Emoji Picker — красивый пикер эмодзи
Adopting Liquid Glass: Experiences and Pitfalls
How to add custom actions to iOS push and local notifications in SwiftUI
VIPER vs TCA: What Large iOS Teams Actually Use
An Apple Intelligence-Style Glow Effect in SwiftUI
👍7
Android

Цель этой статьи — подробно разобраться в том, почему появилась новая библиотека Android Jetpack App Startup Library, какие проблемы она решает в текущих шаблонах инициализации приложений и как она помогает сократить это критическое время запуска. Понимание необходимости этой библиотеки — ключ к её эффективному использованию.

Ускоряем запуск приложения — App Startup Library
OTP Helper — копирование кодов из SMS и уведомлений
Liquid — жидкое стекло на Jetpack Compose
Автообновление Android: когда можно не бояться санкций сторов
Доверяй, но проверяй: про корневые сертификаты в Android и не только
Как правильно написать фичу. Часть 1
Что ждёт Android-разработчика на собесе в Wildberries
UI Kit как рычаг роста: как связать Figma и код
Шутки и веселье в публичном Android API
A Simple key to a Better LazyList in Jetpack Compose
Glitch Effect in Jetpack Compose
Reducing Unnecessary Recompositions: 3 Practical Optimization Techniques for Jetpack Compose
Classic Android Lifecycle vs AndroidX Lifecycle (KTX) — Under the Hood
Stop Event-Drilling in Jetpack Compose with Composition Locals
SubComposeLayout and BoxWithConstraints internals in Jetpack Compose
👍4
Иногда разница между «ну и фигня» и «вау» заключается не в какой-то революционной функции, а в мелких деталях, которые делают ваш продукт плавным, современным и простым в использовании. В этой статье 8 небольших исправлений пользовательского интерфейса, которые создадут ощущение, будто его создала команда волшебников из Кремниевой долины (даже если вы и ваш кот пишите код в два часа ночи).

Разработка

8 небольших изменений в UI, которые сделают ваш продукт в 10 раз умнее
Как я заработал 300 тысяч долларов на проекте с открытым исходным кодом менее чем за 4 года
Как мы сделали CI, которому можно доверять
Что такое RAG
Почему текстовый поиск устарел — векторные базы, эмбеддинги, RAG
2025 State of Mobile Release Management Report
I’m a middle-aged developer, and the way I shine has changed

Маркетинг

Необычный вариант использования?
Подражатели Sora заполонили App Store
AI, игры и новые рынки: Adjust представил отчет о росте мобильной индустрии в 2025 году
Fixing Your ASO to Compete Like the Biggest Apps

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

Миграция больших приложений на KMP: проблемы, подводные камни, решения
Building a cross-platform step tracker with Compose Multiplatform
👍52
МТС приглашает всех, кто пишет на С++, Go, Python, JS, Java, C# и других языках, на True Tech Champ — всероссийский чемпионат по программированию. Соревнование будет проходить в двух треках.

Трек 1. Алгоритмический. Индивидуальный зачет [призовой фонд 2 750 000 рублей]


Реши задачи, которые помогут прокачаться в работе с алгоритмами и структурами данных. Похожие задания встречаются на собеседованиях в МТС и других крупных компаниях. До 240 лучших участников попадут в финал и сразятся в лайв-кодинге.

Трек 2. Программирование роботов. Командный формат [призовой фонд 7 500 000 рублей]

Проведи робота по виртуальному лабиринту, затем управляй им дистанционно на офлайн-полигоне, а в финале — пройди испытания на реальной площадке и выбей соперников с платформы.

🎁 Организаторы отправят командам финалистов по одному роботу Waveshare Cobra Flex для кастомизации. После соревнований они останутся у участников в качестве подарка.

📍 Зрелищный шоу-финал с ИИ-технологиями, кодерскими челленджами и выступлениями международных и российских спикеров пройдет 21 ноября в МТС Live Холл.

Стоит участвовать, чтобы:
— Освежить знания и прокачать новые навыки.
— Заявить о себе на всю страну, получить карьерный буст и шанс лично пообщаться с HR-специалистами МТС.

Регистрация участников до 20 октября на сайте.
3🤡3
iOS

Примерно 65% критических багов в iOS-приложениях можно выловить ещё на этапе разработки, если грамотно использовать встроенные инструменты Xcode. В сети много материалов о сторонних решениях для отладки и контроля качества iOS-приложений, но часто из виду упускается то, что сам Xcode предлагает всё необходимое «из коробки», при этом многие инструменты остаются невостребованными. В этой статье подробно разбирается 4 инструмента, которые используются в команде для отлова тех самых 65% ошибок.

Эффект свечения в стиле Apple Intelligence в SwiftUI
PostgresNIO — клиент PostgreSQL для Swift
Xcode: ключевые инструменты для ручного тестирования мобильных приложений
Microsoft iOS Developer Interview Experience
Little SwiftUI Tip: Adding Interactions to Path
Lazy Text Rendering for large texts in SwiftUI
👍31
Android

Добавление кастомных изображений в ваше приложение может значительно улучшить и персонализировать пользовательский опыт, а также повысить вовлеченность пользователей. В этой статье рассматриваются две новые возможности генерации изображений с помощью Firebase AI Logic: специализированные функции редактирования Imagen, которые в настоящее время находятся в стадии предварительной версии, и общедоступный Gemini 2.5 Flash Image (также известный как «Nano Banana»), предназначенный для создания контекстных или диалоговых изображений.

ИИ-генерация изображений в Firebase AI Logic
Android для новичков: как не наломать дров с корутинами и какие привычки оставить в прошлом
К вопросу о шифровании данных на мобильных устройствах бизнес-пользователей
Kotlin DSLs: The Secret Weapon for Writing Elegant Android Code
Avoid Using !! in Kotlin — Safer Alternatives for Null Handling
WhatsApp like backup in Android Using Google Drive API
👍1
Тут, оказывается, в Европе подоспели новые законы. Новый Закон ЕС о цифровой справедливости (Digital Fairness Act) и Руководящие принципы CPC (CPC Guidelines) будут рассматривать игровые валюты, такие как драгоценные камни Clash или золото Candy Crush, как финансовые инструменты, требуя экранов подтверждения и повторного одобрения родителей при каждой трате. Илкка Паананен по их поводу аж написал открытое письмо безликим регуляторам Брюсселя: «Не убивайте последнюю великую историю успеха Европы в сфере технологий». А Михаил Каткофф - большую статью о том, зачем это и к чему приведет. Абстрагируясь от пафоса Михаила очень рекомендую к прочтению, дальше ,вероятно, придут и за приложениями. Что думаете?

Разработка

I sailed to be a developer. Became a designer instead.

Маркетинг

Supercell против ЕС: как Европа рискует убить свою курицу, несущую золотые яйца
Неуспешный неуспех

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

I Made My Flutter App Load 3x Faster
1😱1
iOS

В этом посте подробно описаны все раунды, типы задаваемых вопросов, мой подход к ним и то, что автор понял в процессе. Если вы готовитесь к любой роли, связанной с iOS, особенно в крупной технологической компании, это даст вам реальное представление о том, чего ожидать.

Опыт собеседования с iOS-разработчиком в Microsoft
Swift/iOS: Add Additional (Custom) Setting Options/Info in Settings App
You’re Using Combine Wrong — Here’s What Senior iOS Developers Actually Do
Accenture iOS Developer Interview Experience — What They Actually Ask
7 Custom Progress Indicators for SwiftUI
👍21
Android

В Android 13 Google представил новую «фишку»: predictive‑навигация. Это API позволяет пользователю «посмотреть» на какой экран он вернется, не выполняя непосредственно возврат. Подобный функционал довольно давно есть в iOS и, например, в Telegram на Android. Теперь же данный функционал должен работать в Android «из коробки», а с Android 16 будет включен по умолчанию. Немного поресерчив тему можно найти что для его работы необходимо включить флаг enableOnBackInvokedCallback и мигрировать на BackPressedDispatcher. В данной статье мы рассмотрим как это интегрировать с навигацией на фрагментах, однако если у вас Full Compose, некоторые нюансы BackPressedDispatcher также могут быть полезны.

GrapheneOS выходит за пределы Pixel
Placeholder Compose — настраиваемые плейсхолдеры для Compose
Интеграция Predictive back в Android
6 рекомендаций по запуску современной кодовой базы Android с нуля
From natural language to UI tests: A deep dive into Journeys for Android Studio
Beyond Single Features: Guaranteeing Feature Combinations With CameraX 1.5
Simplifying SDK Development with Gradle Composite Builds — A Practical Guide for Mobile Developers
👍2
Apple только что анонсировала новые iPad Pro, MacBook Pro и  Vision Pro. Единственное их отличие от предшественников - новый чип M5. А главное отличие M5 — обновлённая архитектура графического процессора с нейронным ускорителем, позволяющая увеличить производительность задач искусственного интеллекта до четырёх раз по сравнению с M4. Например, у нового MB до 6.8 раз выше производительность 3D-рендеринга в Blender по сравнению с M1 и до 1.7 раз выше, чем у M4, до 2.1 раза выше производительность сборки при компиляции кода в Xcode по сравнению с MacBook Pro с M1 и до 1.2 раза выше, чем у MacBook Pro с M4. Новый 14-дюймовый MacBook Pro начинается с 1600 долларов.

Разработка

В VK соревнования по созданию рекомендательных алгоритмов
У всех $20K MRR, а у нас $50 — история реального проекта
The State of Developer Ecosystem 2025: Coding in the Age of AI, New Productivity Metrics, and Changing Realities
I am a programmer, not a rubber-stamp that approves Copilot generated code
Reverse Engineering iWork

Маркетинг

Самые скачиваемые и зарабатывающие приложения в мире в сентябре 2025
What makes an app worth buying?

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

Написал приложение с помощью GPT-5 и вот что получилось
Flutter Web vs React: What I Learned Building the Same App in Both
The Dark Side of Flutter Development
Flutter ECS: Rethinking State Management for Flutter Apps
Integrating HealthKit with Flutter
👍5🤔1
The State of Developer Ecosystem 2025 - исследование JetBrains

Вышел ежегодный отчет от JetBrains с исследование разработки программного обеспечения.

Вот один из интересных показателей:

• 85% разработчиков уже регулярно используют ИИ-инструменты в своей работе.
• 62% полагаются по крайней мере на один «ИИ-ассистент» или редактор с ИИ.
• Из тех, кто использует ИИ, около 90% отмечают экономию хотя бы часа в неделю, а 1 из 5 экономит 8 часов и более — то есть целый рабочий день.
• 68% ожидают, что работодатели скоро будут требовать владения ИИ-инструментами.

Что именно доверяют ИИ: написание шаблонного кода, комментариев, документации, поиск информации, преобразование кода между языками и т.д.

Тем не менее, 15% разработчиков ещё не внедрили инструменты ИИ в свою повседневную работу. Независимо от того, вызвана ли их нерешительность скептицизмом, соображениями безопасности или просто личными предпочтениями, это значительное меньшинство представляет собой интересную оппозицию общепринятой тенденции.

Опасения:

1. Непостоянство качества генерируемого кода
2. Недостаточное понимание сложной логики
3. Вопросы безопасности и конфиденциальности
4. Возможное снижение собственных навыков
5. Отсутствие контекстного понимания у ИИ
👍6