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
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
iOS

В статье подробно разбирается, как улучшить производительность iOS-приложения за счёт кеширования изображений, чтобы избежать постоянных сетевых запросов при повторном отображении тех же картинок. Автор показывает, что стандартный AsyncImage не хранит загруженные изображения между переходами — и предлагает решение: обёртку CachedAsyncImage, которая при помощи NSCache сохраняет изображения в памяти. При появлении вью она сначала пытается загрузить изображение из кеша, а если оно отсутствует — скачивает его и затем заносит в кеш.

RichText — улучшенный TextView
Show icons only in SwiftUI swipe actions on iOS 26
Image caching in SwiftUI
👍3
Все, собесы дошли до совершенства, лучше уже не будет. Давид Додда описывает, как получил приглашение на вакансию от «легитимной» блокчейн-компании, а в техническом задании его попросили исполнить код, который, как выяснилось в последний момент, был вредоносным и мог поставить под угрозу всю систему. Он рассказывает, какие сигналы насторожили его (репозиторий выглядел слишком хорошим, документация отполированной, всё выглядело как «для показа») и как ему удалось вовремя распознать ловушку:
Меня чуть не взломали… через вакансию мечты.

Поставь 👍, если хочешь перевод на русский.

Разработка

У технических экспертов нет клиентов
The State of Developer Ecosystem 2025 — исследование JetBrains
Anthropic запускает облегченную Claude Haiku 4.5
Базовая n8n автоматизация — сумасшедший микро-SaaS
Мы запретили программистам писать код и ускорили релизы в 2 раза. Как к этому пришли
7 subtle signs your UI is frustrating users
How I Almost Got Hacked By A 'Job Interview'

Маркетинг

An In-Depth Look at 4X Strategy Monetization: Two Ways to Win

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

Optimizing react-native-calendars : A Guide to Smooth Scrolling Without Blank Spaces
👍145🙊1
Как меня чуть не хакнули на собеседовании

А вот и мой перевод - автор статьи рассказывает о том, как едва не стал жертвой хакеров, замаскировавших атаку под обычное техническое собеседование. Всё выглядело максимально правдоподобно: сообщение от «руководителя блокачейн-направления» реальной компании, аккуратное тестовое задание на React и Node.js, ссылки на корпоративный сайт и LinkedIn-профиль с историей и сотрудниками. Но за внешней приличностью скрывался вредоносный код — обфусцированный фрагмент в проекте, который подгружал скрипт с удалённого сервера и исполнял его на машине кандидата, открывая доступ к данным и паролям.

Его выводы
Если вы разработчик и ищете работу в LinkedIn:

1. Всегда изолируйте неизвестный код. Docker-контейнеры, виртуальные машины и т.д. Никогда не запускайте его на основной машине.
2. Используйте ИИ для сканирования на предмет подозрительных шаблонов. Это займёт 30 секунд. Может спасти всю вашу цифровую жизнь.
3. Проверяйте всё. Настоящий профиль в LinkedIn не означает реального человека. Реальная компания не означает реальную возможность.
4. Доверяйте своей интуиции. Если кто-то торопит вас с выполнением кода, это тревожный сигнал.
11👍5
📺 Видео и подкасты за неделю @AppFiles

(iOS En) SwiftUI App Update Checker
(iOS En) SwiftUI Concentric Rectangle & Concentric Corners in iOS 26
(iOS En) Building a Drawing App in SwiftUI with PaperKit
(iOS En) Conditional App Store Rating Popup Using SwiftUI
(And Ru) Семантический Gradle: публикуем артефакты со спокойствием и уверенностью
(And En) From natural language to UI tests: A deep dive into Journeys for Android Studio
(And En) Split Buttons in Material3 Expressive - Full Guide
(And En) The NEW Material3 Expressive Motion Physics Animation System
(And En) Koin to Kotzilla - TypeAlias Show
(And En) derivedStateOf() vs remember(key) - Optimize recompositions
(Dev Ru) 7 грехов стартапера
(Dev Ru) Собеседование DS инженера в Авито: ML system design (все собеседования)
(Dev Ru) AI-агенты и безопасность — безопасность, уязвимости, LLM, MCP
(Dev En) Mobile System Design - Design Youtube App
(Dev En) Agentic coding at Airbnb
(Dev En) Google Generative AI Leader Certification Course – Pass the Exam

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

(And Ru) Как следить за качеством работы вашего кода. Tracer. Кирилл Попов
(And Ru) 1000 откликов и 0 собеседований — как не войти в айти в 2024: кодревью
(And Ru) Замена иконок — что может быть проще?
Please open Telegram to view this post
VIEW IN TELEGRAM
3
Слово Божье

Bible Widgets: Verses & Prayer - приложение с цитатами из Библии. Заработок $231,478 за 4 месяца при почти 400К загрузок. 96% из США. Всего у "студии" с десяток приложений для iOS - у всех остальных установки измеряются единицами. Выстрелило.

Возвращаясь к категории, можно вспомнить еще Bible Chat с $6.3 млн life time. По данным Appfigures Explorer, в App Store и Google Play существует более 9,000 библейских приложений, и 46 из них зарабатывают более $10 тыс. в месяц.

Вполне себе благодатная почва - IP без копирайта, аудитория огромная, бери да делай.

AppGrowth про инди, пет и монетизацию
👍52😱1
Трещины в веселье

Традиционный для понедельника дайджест всех материалов за прошлую неделю - трещины в Liquid Glass и опыт собеседования в Microsoft, шутки и веселье в Android и запрет программистам писать код, взлом на собеседовании, Supercell против ЕС, интеграция Predictive back и многое другое. Заходите!
👍43
iOS

Знакома ситуация, когда кнопка не работает, приложение виснет, анимации тормозят, но при этом нет никаких ошибок на экране? Можно часами играть в детектива, гадая по UI и строя догадки, что пошло не так. А можно за несколько минут найти настоящего преступника — ведь iOS щедро оставляет улики в виде логов. Нужно лишь знать, где их искать. Секрет — в грамотном выборе способа, как собрать доказательства.

Сам себе Шерлок: 7 способов найти логи и поймать баг на iOS
Build, run and debug iOS and Mac apps in Zed instead of Xcode
Advanced Codable
Foundation Models profiling with Xcode Instruments
When SwiftUI automatically applies the glass look and when it doesn’t
Tunable, physics-driven motion primitives for SwiftUI
Why a custom ViewModifier is often useless
👍3
Мой новый фаворит в мире бессмысленных приложений - Endless Summer, приложение-фотобудка для iPhone, которое с помощью ИИ создаёт фотографии из отпуска. Вот вы исследуете прибрежный город или любуетесь европейским пейзажем с балкона. Вот вы ходите по магазинам, ужинаете с друзьями или участвуете в светской вечеринке. Все возможно, если наврать использовать ИИ. В нем есть даже режим «Обслуживание номеров», который автоматически присылает вам две фотографии каждое утро с вашими последними летними приключениями и путешествиями по миру. Как объяснил автор, новое приложение создано для тех случаев, когда «наступает выгорание и вам нужно воплотить в жизнь ту спокойную жизнь, которую вы заслуживаете». Если не можешь в “отпуск мечты”, лучше притвориться, верно?

Разработка

Как меня чуть не хакнули на собеседовании
7 грехов стартапера
Собеседование DS инженера в Авито: ML system design
AI-агенты и безопасность — безопасность, уязвимости, LLM, MCP
Anthropic добавляет Skills, чтобы сделать Claude более полезным
How to train your team to say "I was wrong" without drama

Маркетинг

Endless Summer подделывает ваши летние фотографии с помощью ИИ
Чаепитие продолжается: у Tea более 6 млн загрузок

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

Norm — трекер привычек на Flutter
😁3👍2
Как я реверснул обфускацию Amazon Kindle Web, потому что их приложение было отстойным

Отличная история о том, как невозможность читать КУПЛЕННУЮ книгу привела к реверс-инжинирингу читалки Amazon и, как следствие, вскрытии всей системы обфускации.

TL;DR

• Я купил свою первую электронную книгу на Amazon
• Приложение Amazon Kindle для Android было очень глючным и постоянно вылетало
• Пытался скачать книгу, чтобы использовать её в работающей читалке
• Понял, что Amazon больше не позволяет этого делать
• Решил назло провести реверс-инжиниринг их системы обфускации
• Обнаружил несколько уровней защиты, включая случайный алфавит
• Обошел их все с помощью волшебства сопоставления шрифтов
👍9
iOS

Новая статья от Антуана ван дер Ли предлагает практический подход к организации архитектуры SwiftUI-приложений с акцентом на читаемость, повторное использование и поддержку кода. Автор начинает с примера простого списка статей, который со временем может стать перегруженным из-за добавления новых функциональностей, таких как индикаторы загрузки, обработка пустых состояний и действия с ячейками. Чтобы избежать этого, он рекомендует разделять представления на более мелкие компоненты, используя такие техники, как выделение отдельных представлений, создание расширений и вычисляемых свойств. Однако он предостерегает от чрезмерного использования этих методов, чтобы не усложнить структуру кода. В статье подчеркивается важность соблюдения принципов читаемости и повторного использования кода, что способствует более легкому тестированию и поддержке приложения в будущем. Автор также делится практическими рекомендациями по организации представлений и структуры проекта, что делает материал полезным для разработчиков, стремящихся улучшить архитектуру своих SwiftUI-приложений.

MarkdownView — отображение markdown контента в SwiftUI
Integrating Device Camera in SwiftUI Apps
SwiftUI Architecture: Structure Views for Reusability and Clarity
Why SwiftUI Uses some View Instead of View: Every iOS Developer Should Know
👍2
Android

Статья подробно описывает процесс диагностики утечек памяти в Android-приложениях с использованием LeakCanary и YourKit. Автор делится опытом расследования утечки в иерархии представлений, вызванной сторонним SDK, и демонстрирует, как систематически анализировать трассировки утечек для выявления корневой причины проблемы. Особое внимание уделено методологии: важно не просто устранять симптомы, а понимать истинные причины утечек, чтобы избежать их повторения в будущем

Google Регистрация в Android на kotlin + jetpack compose
Building a Production-Ready OTT Video Player for Android
The LeakCanary Method
Animated Material3 ToggleButton in Jetpack Compose
👍2🔥1