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
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
ИИ меняет подход к разработке программного обеспечения, и Kotlin готов к этим изменениям, предоставляя разработчикам возможность создавать приложения на базе ИИ и расширяя возможности разработки с помощью инструментов на базе ИИ. В этой статье рассматриваются оба аспекта: инструменты для разработки приложений на базе ИИ, как от JetBrains, так и от сообщества, а также пути развития Kotlin, направленные на повышение продуктивности разработки за счёт внедрения ИИ-инструментов.

Разработка

Keeping Secrets Out of Logs
Practical Terminal Commands Every Developer Should Know
The Kotlin AI Stack: Build AI Agents With Koog, Code Smarter With Junie, and More

Маркетинг

Mixboard от Google — ИИ-инструмент для создания мудбордов
Новое приложение Huxe от разработчиков NotebookLM использует аудио, чтобы помочь вам с новостями и исследованиями
Indie App Circle

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

Как поддержать Flutter в своей Библиотеке. Опыт VK ID SDK
Server-Driven UI in Compose Multiplatform: contracts, schema-first codegen, partial updates
🤡6👍52
Мобильный рынок Турции растет и выходит на глобальную арену

Adjust представила новый отчёт Mobile App Trends Spotlight Edition: Türkiye 2025.

Исследование показывает, что Турция постепенно превращается в полноценный мобильный хаб региона и усиливает свое влияние на глобальной арене. В первой половине 2025 года установки приложений здесь выросли на 6% по сравнению с прошлым годом, а количество сессий увеличилось на 4%. По прогнозам Statista, к 2029 году выручка мобильного рынка страны достигнет $1,65 млрд.

Рынок Турции интересен тем, что сочетает молодую и вовлеченные аудиторию (более 50% пользователей младше 34 лет), локальные разработки и быстрый рост сегментов, которые во многом задают тон для соседних стран. Для СНГ-рынка этот опыт может быть показательным: многие тенденции, проявляющиеся в Турции, перекликаются с вызовами и возможностями, знакомыми игрокам постсоветского пространства.
👍3
Все говорят: «Не делайте для бумеров» — мы сделали (12k MRR)

Новый интересный кейс с Reddit:

Я видел советы: «бумеры* не скачивают приложения» или «они не будут платить за ПО». Это определённо напугало меня, когда я изначально пришёл сюда, чтобы проверить своё приложение для бумеров.

Я всё равно его создал. Приложение для виски и сигар, которое, по сути, медленный Reddit для тех, кто действительно разбирается в теме.

Спустя шесть месяцев мы наблюдаем уверенный рост: ежемесячная выручка (MRR) выросла с ~400 до 12,000.

Наши пользователи с самыми высокими расходами? 55–64 года.

Кажется, я знаю, почему это сработало: эти люди, не моргнув глазом, выкладывают 200 долларов за бутылку бурбона. Они привыкли платить за качество. Twitter/Ins/TikTok их ошеломляют — им хочется рассказывать о своих увлечениях только тем, кто их понимает.

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

Данные говорят сами за себя — не списывайте эту демографическую группу со счёта для вашего следующего приложения!

* Бумеры - люди, родившиеся в период примерно с 1946 по 1964 годы.

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

Глава Tuist написал большую статью о том, с какими проблемами сталкиваются большие iOS-проекты - медленная сборка, нестабильное тестирование, сложные графы зависимостей. Говорит ,что стандартные подходы, React Native или Bazel (ну допустим), не работают. А что работает? Конечно, Tuist. По его словам решается все волшебно, но пока не начнешь внедрять - не узнаешь. У кого-нибудь есть опыт перехода на его платформу?

Почему большие проекты Swift утыкаются в стену (и как пробиться сквозь нее)
Миграция на SPM: что мы выиграли и что потеряли
Playback controls for video in a SwiftUI app
.p8 vs .p12: Stop Giving the Wrong Answer in iOS Interviews
Why Your Swift Enums Look Amateur (And How to Fix Them in 15 Minutes)
3😁2
Android

Дискуссии об архитектуре Android часто перерастают в жаркие споры, вызывая и восторг, и резкую критику. Писать на такие темы непросто, и именно поэтому это стоит делать. Как показывает обсуждение в Твиттере, многие разработчики загружают данные в блоке init {} во ViewModel. Хотя подход кажется логичным, у него есть архитектурные недостатки. Автор статьи описал проблемы такого подхода и предложил гибкую альтернативу с использованием Flow.

Valiutchik — курсы обмена валют в Беларуси
Загрузка данных во ViewModel: рекомендации и Flow-based архитектура
The Hidden Dangers of Room Database Performance (And How to Fix Them)
Exploring 5 Lesser-Known Compose Components
The Ktor roadmap and previews
The Future of Android... And How to Prepare For It
👌2
В прошлом году, после более чем десяти лет попыток, Qualcomm наконец-то добился успеха с Windows-ноутбуками на базе Arm, поставив Intel и AMD под угрозу и даже вытеснив Intel из Microsoft Surface. Сегодня компания представила второе поколение процессоров - Snapdragon X2 Elite и Snapdragon X2 Elite Extreme. Собственно, касаются они не только ноутбуков на Windows, но и на Android. Hуководители Qualcomm и Google не просто намекнули на появление Android для ПК. Они практически заявили об этом. «Раньше у нас всегда были совершенно разные системы для ПК и смартфонов, и мы приступили к проекту по их объединению», — сказал Остерлох. «Мы вместе создаём общую техническую основу для наших продуктов для ПК и настольных компьютеров». Амон ответил, что уже видел Android для ПК, и назвал новую экспериментальную ОС Android «невероятной». Они не вдавались в подробности о том, когда и как она будет распространяться, но, похоже, ноутбуки на Android скоро станут реальностью.

Разработка

Qualcomm анонсирует Snapdragon X2 Elite и Extreme для ПК на базе Windows
Прорывная идея для существенного улучшения жизни незрячих: предложение запустить в массы новый интерфейс
Hiring only senior engineers is killing companies

Маркетинг

Adjust: мобильный рынок Турции растет и выходит на глобальную арену
Все говорят: «Не делайте для бумеров» — мы сделали (12k MRR)

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

React Native 0.72 → 0.76: Lessons From the Trenches
2👍2
📺 Видео и подкасты за неделю @AppFiles

(iOS En) Code along with the Foundation Models framework
(iOS En) SwiftUI Pro Components Collection - Build Amazing iOS Apps Faster!
(iOS En) SwiftUI WebView reloaded: adding a "View Original" feature
(iOS En) Convert SwiftUI Views into Multi-Page PDF File
(iOS En) Is MVVM a bad architecture for SwiftUI?
(iOS En) iOS 26 Custom Menu Using SwiftUI
(And Ru) Роболектрик-скриншот-тесты на платформе Android
(And En) Optimize your app battery drain using Android Vitals wake lock metric
(And En) Threads vs. Kotlin Coroutines vs. Dispatchers
(And En) Everything About Context Parameters In Kotlin (Super Cool New Feature!)
(Crs En) Make your UI Beautiful and Adaptive on each platform (Compose Multiplatform
(Dev Ru) Кто такой сеньор глазами тимлида
(Dev Ru) Как нейросети обещали ускорить тестирование, а сделали только хуже
(Dev Ru) Строим продукт на основе AI
(Dev En) REST API Design for Mobile Apps: A Complete Guide
(Dev En) Your First AI Agent in Kotlin
(Dev En) How to Build Advanced AI Agents – Course for Beginners (LiveKit, Exa, LangChain)

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

(iOS Ru) Ускоряем SwiftUI с Observable
(iOS Ru) Как укротить виджеты в супераппе?
(iOS Ru) UICollectionViewLayout с самого начала
(iOS Ru) UITableView с различными типами ячеек
(And Ru) Размер имеет значение: как измерить и уменьшить вес Android-приложения
(And Ru) Установка Android-приложений от доисторических времен до наших дней
(Crs Ru) React Native перевернул игру
(Crs Ru) Темная сторона изолятов в Dart
(Dev Ru) Интероп – неизбежность в больших системах: C и C++, JNI, WinAPI
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍1