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

• Аудитория https://news.1rj.ru/str/apptractor/1066
• Сайт https://apptractor.ru/
Download Telegram
Яндекс открыл регистрацию на Yandex Cup 2025 — международный чемпионат по программированию с финалом в Стамбуле и призовым фондом 12 млн рублей. В направлении мобильной разработки приз за первое место составляет 500,000 рублей. Пробный тур пройдет с 20 по 29 октября.

Разработка

Открыта регистрация на чемпионат Yandex Cup 2025
"Your" или "My" в пользовательском интерфейсе
7 Phrases I use to make giving feedback easier for myself
Auditing your Design system for accessibility

Маркетинг

Новое приложение Awake требует выполнения заданий, чтобы отключить будильник
Chat & Ask AI: $1 млн в месяц на шорткатах вместо промптов
7 smart ways to monetize low-intent users

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

Kotlin Multiplatform: 7 Patterns for Truly Shared UIs
Opening URLs in Compose Multiplatform: Why Your Code Breaks on iOS 18 and How to Fix It
Voice Control in Flutter: How to Add Local Speech Recognition to Your App
👍3
🐥 iOS

Вышла новая версия Swift 6.2, направленная на повышение продуктивности разработчиков через улучшения языка, библиотек и рабочих процессов. Ключевым нововведением стала упрощенная модель многопоточности: теперь код по умолчанию может выполняться в главном потоке без специальных аннотаций, асинхронные функции стали интуитивнее, а для параллельного выполнения кода введен атрибут @concurrent. Это снижает сложность написания безопасного асинхронного кода и делает его поведение более предсказуемым. В области системного программирования Swift 6.2 предлагает инструменты для создания высокопроизводительного и безопасного низкоуровневого кода. Появились новые типы InlineArray (массив фиксированного размера с хранением на стеке) и Span (для безопасного доступа к памяти), которые помогают избежать ошибок и повысить производительность. Также расширены возможности Embedded Swift, улучшено взаимодействие с C++, и добавлена опциональная строгая проверка безопасности памяти, что важно для проектов с высокими требованиями к надежности. Среди прочих улучшений — официальная поддержка расширения для VS Code от Swift.org, ускорение сборки проектов с макросами и улучшенная отладка асинхронного кода. Библиотеки пополнились новым пакетом Subprocess для управления внешними процессами, обновленным NotificationCenter и новыми возможностями в фреймворке Swift Testing. Важным шагом стало добавление поддержки WebAssembly, что позволяет использовать Swift для создания клиентских и серверных веб-приложений.

The Dark Side of iOS Development: Why Everyone is Quitting
SwiftUI’s Canvas Revolution: How Apple’s New Drawing API Is Transforming iOS Development in 2025
Swift 6.2 Released
Feature flags in Swift
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
Android

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

Полный айсберг Android. Часть 1
Расширяем возможности GitHub Copilot для IDEA или как писать unit-тесты в пару кликов
Kotlin 2.2.20 for Android Developers: 5 Changes That Make Your Code Cleaner
Kotlin Sealed Classes Part 1 with Interview Questions
Mark your models as stable with the Compose runtime annotation library
👍3
У RevenueCat новый отличный гайд о том, как монетизировать пользователей, не высказывающих намерение к покупке подписки. Если краток, то это одноразовые покупки, предложение краткосрочных планов, что-то вроде reverse trial, очевидная реклама, чаевые, отложенные ограничения и реферальные программы. Надо пробовать.

Разработка

Заработал $5K в прошлом месяце на приложении для переименования файлов. Не секси, но работает.

Маркетинг


7 умных способов монетизировать пользователей с низкой мотивацией
Calm запускает отдельное iOS-приложение для сна
День 0

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

StepsShare — трекер шагов на Compose Multiplatform
Stop Using MediaQuery in Flutter — It’s Killing Your UI (Do This Instead)
👍42
Почему каждый знакомый мне Senior разработчик планирует уйти

К вопросу о кризисе в IT. Топовая статья с Medium, в которой автор сетует на сложившуюся культуру разработки (обилие совещаний, корпоративный бюрократизм, создание ценности, но не получение денег от нее, технический долг, искусственные ограничения и т.п.) и говорит, что каждый его знакомый Senior планирует уйти с работы.
Senior разработчики — это канарейки в угольной шахте. Следующее десятилетие принадлежит:

• Независимым разработчикам, монетизирующим экспертные знания
• Небольшим командам, создающим специализированные продукты
• Консультантам, решающим конкретные проблемы
• Разработчикам, владеющим своей цепочкой создания стоимости

Традиционной занятости была оптимизирована для индустриальной эпохи — стандартизация, контроль и процессы. Информационная эпоха поощряет креативность, скорость и прямое создание ценности.

Исход не грядет, он уже наступил.

Предлагает несколько выходов, но, кажется, каждый из них достаточно оптимистичный. А вы как планируете продолжать карьеру?
👍4
iOS

Большинство из нас, изучив базовый init() в начале своего пути, на этом и останавливаются. Проблема в том, что такой подход заставляет каждый участок кода, создающий объект, знать слишком много о его внутренней структуре. В результате логика инициализации разбросана по всему проекту, код становится хрупким, а его поддержка усложняется. К счастью, система инициализации в Swift предлагает куда более мощные инструменты: пользовательские и вспомогательные инициализаторы. Вместо одного громоздкого init вы можете определить несколько кастомных инициализаторов, каждый из которых решает свою задачу: один для создания нового пользователя со значениями по умолчанию, другой — для разбора данных из JSON, а третий — специально для тестов. Вспомогательные инициализаторы (convenience initializers) идут ещё дальше, позволяя выстраивать гибкие цепочки конфигураций (например, для продакшена, разработки или тестов), которые в итоге вызывают один основной («designated») инициализатор. Такой подход не только делает код чище и семантичнее, но и кардинально упрощает тестирование, позволяя легко подменять зависимости и открывая дорогу к продвинутым паттернам, таким как Builder. В итоге объекты становятся проще в использовании, тестировании и поддержке.

ImmutableData — простое управление состояниями для SwiftUI
This One Swift Feature Will Change How You Write Code Forever
Swift 6.3 Unveiled: Why This Update is More Than Just a Dot Release for iOS
SwiftUI: Horizontal Dial Picker / Slider/ Ruler
How to use [weak self] in Swift Concurrency Tasks?
1
Android

Сегодня вам предстоит увлекательное путешествие по стыку технологий, кода и технических решений, которые и расскажут вам то, о чем адепты съемки мобильного RAW‑видео предпочитают не говорить. А именно о том, что эффективная съемка RAW‑видео на Андроид на сегодняшний день невозможна без "костылей" и ухищрений.

Андроид всё еще не готов к RAW-видео
Model View State Machine: MVS
MVS series: Building the State Machine
I Forced My App To Work Offline Only. Here’s the Architecture Shift That Happened
Avoiding Memory Leaks in Android: Best Practices for Developers
У компании, которую нельзя называть, вышли новые очки. Самые прикольные - Ray-Ban Display, они оснащены полноцветным экраном высокого разрешения в правой линзе, который можно использовать для просмотра сообщений, совершения видеозвонков, чтения субтитров в режиме реального времени, просмотра маршрутов и предварительного просмотра фотографий, которые вы можете сделать с помощью встроенной 12-мегапиксельной камеры. Дисплеем можно управлять с помощью браслета, скролируя экран, нажимая на кнопки и, наконец, набирая сообщения, используя различные жесты. Очки обеспечивают до шести часов работы от аккумулятора в смешанном режиме или до 30 часов при использовании складного зарядного футляра. Цена - от 799 долларов. Вторые по крутизне - Oakley Vanguard. Они отличаются обтекаемым дизайном, защитой от воды и пыли IP67, а также интеграцией с фитнес-приложениями, такими как Garmin и Strava, что позволяет вам задавать ИИ вопросы о ваших фитнес-данных и статистике. Кроме того, очки Vanguard оснащены 12-мегапиксельной камерой с углом обзора 122 градуса на переносице, которая позволяет записывать видео с разрешением до 3K и поддерживает новые режимы съёмки, такие как замедленная съёмка, покадровая съёмка и гиперлапс. Среди других отличительных особенностей — улучшенные динамики и до девяти часов автономной работы. Эти будут стоить 499 долларов. В общем, кажется, у компании, которую нельзя называть, кажется наконец-то получились красивые и функциональные очки. Пора писать приложения для них.

Разработка

Почему каждый знакомый мне Senior разработчик планирует уйти
M*** представила новые умные очки
Wasm 3.0 Completed

Маркетинг

Как заработать первые 1000 долларов на мобильном приложении за 8 простых шагов
Airbuds — это музыкальная социальная сеть, которую Apple и Spotify хотели бы создать

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

Как создать собственный RenderObject
И ещё немного про то, что const в Dart надо ставить где попало
Google’s strategy: Kotlin and Flutter side by side? What’s the real long-term play?
Please open Telegram to view this post
VIEW IN TELEGRAM
Как заработать на Webview

Традиционный дайджест со всеми материалами за неделю - Swift Runtime и производительность iOS-приложений, вопрос на 16К и полный айсберг Android, проектирование интерфейсов по азиатски, 17 платящих клиентов за час из Tinder, реклама на холодильниках и многое другое. Заходите!
👍3
iOS

Тестирование на Swift долгие годы держалось на трех китах: XCTest, сторонние библиотеки и собственная смекалка. Но на WWDC 24 Apple представила новый, современный фреймворк — Swift Testing, который предлагает концептуально новый подход к тестированию. Кирилл Гусев из ОК рассказывает о том, какие возможности предоставляет Swift Testing.

Горизонтальный селектор/слайдер/линейка на SwiftUI
Foqos — блокировка приложений с помощью NFC-метки или QR-кода
Пишем видеоплеер под iOS с нуля
Новые подходы в Swift для тестирования: разбор технологии Swift Testing
Getting started with the Contacts framework
Listing contacts with the Contacts framework
The Hidden Complexity of iOS Audio Engineering: Lessons from the Trenches
Cancelling async tasks in SwiftUI
Create an Interactive Snippet Shortcut using App Intents
3
Android

Арсений Носов из Яндекса разбирает учебное Android‑приложение WeatherApp с ретро‑пиксельным UI. Автор хвалит модульность и сетевой стек, но показывает много типичных ошибок: дублирование кода, слабая типизация, null‑риски, хардкоды, отсутствие доменного слоя и локализации, неверное место логики и неконфигурируемые кастомные компоненты.

To Do — ведение дел на Jetpack Compose
Разбор кода: пиксельная погода на Kotlin
Проблема при выделении текста в TextView на Android 15+
Elevating media playback : A deep dive into Media3’s PreloadManager - Part 2
Clipping and Masking in Jetpack Compose
Card Corners in Jetpack Compose: Convex, Concave, Cut and Sharp
How We Built a Full-Fledged Soft Kiosk App on Android
Running a RAG powered language model on Android using MediaPipe
2
Shopify успешно перевел два крупнейших приложения — Shopify Mobile и Shopify Point of Sale (POS) — на новую архитектуру React Native, при этом сохранив еженедельный график релизов и обеспечив работу миллионов продавцов. Миграция затронула сложный код с сотнями экранов и нативных модулей, большим количеством кастомных компонентов и глубокой интеграцией с собственными библиотеками, такими как FlashList. Ключевые результаты: сохранили темп разработки на протяжении всей миграции; не допустили остановки разработки новых фичей; выявили и решили типовые проблемы миграции на большом масштабе. В этой статье они делятся подходом к миграции, ключевыми решениями и уроками, которые в компании извлекли, чтобы другие команды могли воспользоваться опытом.

Разработка

Офлайн-режим в мобильном приложении: зачем он нужен и как его реализовать
Какие запросы и куда отправляет MAX
Indoor-локация без дополнительных датчиков: Wi-Fi как единственный источник данных
Давайте потестируем Webview
Сколько кнопок нажимает ваш автотест?
Язык программирования Gleam — Gleam, Erlang VM, BEAM, Elixir vs Gleam

Маркетинг

Как разработчики используют локальные ИИ-модели Apple в iOS 26
Маркетологи в мобайле: Пётр Шапиро (ex-Head of Digital, Делимобиль)
Samsung начал показывать рекламу на холодильниках

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

Как Shopify перевела свои крупнейшие приложения на новую архитектуру React Native
Compose Multiplatform 1.9.0 Released: Compose Multiplatform for Web Goes Beta
🤡7👍53👌1
iOS

Докладывают, что Apple переписывает части iOS на Rust. Что это значит? В краткосрочной перспективе не так уж и много. Вы же не запустите Xcode завтра и не обнаружите шаблон «Новый проект на Rust» рядом со SwiftUI. Но в долгосрочной перспективе вы увидите более безопасные фреймворки и повышенную производительность. И если Apple когда-нибудь раскроет API Rust, пусть даже частично, это может открыть двери для совершенно новой волны разработчиков iOS, которые никогда не прикасались к Swift, но любят системное программирование. Представьте себе будущее, в котором часть логики вашего приложения может работать на безопасном и быстром Rust, а пользовательский интерфейс останется на Swift. Как вам такое?

Разбираемся с existential container в Swift
Apple is quietly rewriting iOS and it’s not in Swift or Objective-C
Think You Know iOS? Try Solving These 11 Programming Challenges: Part 1
F💥cking DynamicProperty, how does it work?
4🤔3🤡3🌭1
Android

Геннадий Денисов из Яндекс Браузера днедавно в рамках одного проекта интегрировал С++‑код в мобильное приложение Браузера и в этой статье он делится основными нюансами работы с Java Native Interface (JNI), инструментами для упрощения разработки и подробностями подхода.

ADB Keep Screen On — включенный экран при работе с ADB
Гайд по File Templates: как шарить шаблоны с однотипным кодом
Погружение в JNI: проблемы и решения при взаимодействии между JVM и нативным кодом
Introducing the Google Play Games Level Up program
Building a Modern Android Location Manager: From Legacy Approaches to Clean Architecture Excellence
Android Studio Otter | 2025.2.1 Canary 1 now available
1
У каждого разработчика иногда ночью возникают безумные мысли. У автора этой статьи она была простой: «Что, если я просто отключу интернет и посмотрю, как поведёт себя приложение?». И он так и сделал. Потянулся за стол, выдернул Ethernet-кабель из роутера и понаблюдал, как мигает маленький индикатор Wi-Fi, как будто всё в порядке. Но моё приложение знало правду. Экран входа мгновенно заблокировался. В ленте новостей не было ничего, кроме бесконечного спиннера. Даже страница настроек не работала — как будто для включения тёмного режима нужен интернет. Вот тут-то он и понял, что приложение на самом деле не было приложением. Оно было просто марионеткой, которой управлял интернет, дергая за все ниточки. А когда ниточки отключили, марионетка рухнула. И он принял решение - переделать приложение так, чтобы оно работало только в offline режиме.

Разработка

Я заставил мое приложение работать в офлайне — архитектурный сдвиг
Как небольшая библиотека, которую я создал, помогла мне найти новую работу
Как приручить бассейн: фильтрация, нагрев и химия без участия человека

Маркетинг

Как я получил первых 50 пользователей (не потратив ни копейки)
App Store Optimization: Real-world Best Practices

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


Swift Is Going Multiplatform — And That’s Bad News for Kotlin
Why is Dart Still a Dead Language Outside of Flutter?
😁4👍31
🤖 Google обновляет свой Play Store, добавляя ИИ-функции и многое другое

Google сообщил, что вносит ряд изменений во внешний вид и функциональность Play Store, чтобы лучше персонализировать магазин для своих пользователей и повысить его вовлеченность.

Поиск с использованием ИИ и новая вкладка «Приложения»

Благодаря функции «Управляемый поиск» (Guided Search) пользователи могут найти нужное приложение или игру, введя цель или идею вместо названия приложения. Например, пользователь может ввести «найти дом», чтобы перейти к приложениям для недвижимости. Вкладка «Приложения» в Play Store также обновляется и включает новые «курируемые пространства», посвящённые сезонным темам и темам, подобранным с учётом интересов пользователя.

Персональное пространство «Вы» (You)

Новая вкладка «Вы» (You) призвана привлечь пользователей к более частому использованию Play Store, предлагая централизованное место для отслеживания подписок, наград (например, баллов Play Points), рекомендаций, статистики и обновлений. В частности, на вкладке будут представлены рекомендации, соответствующие вашим интересам, такие как фильмы или сериалы, подкасты, электронные или аудиокниги, а также упростится возвращение к тому, что вы читали, слушали или смотрели в прошлый раз.

Новая вкладка «Игры» и ИИ-помощник Sidekick

Теперь вкладка «Игры» объединит статистику и достижения, награды и сообщество в одном месте. Однако более интересным обновлением является добавление Play Games Sidekick с поддержкой искусственного интеллекта. Это новый внутриигровой оверлей, к которому можно получить помощь в режиме реального времени от Gemini Live. Идея заключается в том, что вы можете обратиться за помощью к Gemini, если застрянете в игре и нуждаетесь в советах или рекомендациях. Эта функция основана на совместной работе Google и DeepMind, представленной в декабре. В ней компания продемонстрировала разработку ИИ-агентов для различных областей, включая игры. Sidekick также будет собирать и организовывать другую важную игровую информацию в одном месте, чтобы вы могли оставаться в игре. Изначально эта функция будет поддерживаться в играх от EA и Netmarble, включая Star Wars: Galaxy of Heroes, FC Mobile и Solo Leveling: Arise. Также появились улучшенные страницы с подробностями об игре, на которых будет отображаться информация об игре, включая текущие события, новости разработчиков и предложения. В следующем месяце игроки также смогут задавать вопросы и делиться ответами на этой странице, чтобы оказать помощь другим игрокам или получить её.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Android

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

Google обновляет свой Play Store, добавляя ИИ-функции и многое другое
Firebase Cloud Messaging: A Complete Guide for Android Developers
Why Kotlin, Jetpack Has Less Job Opportunities As Compared to Flutter and React Native
Whats new in… AndroidX Text
Caching Strategies in Android Architecture
The Golden Rule of Coroutine Exceptions
👍1