iOS
Отладка — это навык, которому разработчики часто уделяют мало внимания. Он полезен не только для исправления ошибок, но и для лучшего понимания кодовой базы и языка, на котором вы пишете программное обеспечение. Особенно сейчас, когда мы вступаем в эпоху отладки с помощью искусственного интеллекта, когда чаще всего нам приходится разбираться в коде, который нам выдал LLM, или, что ещё хуже, в ошибках, которые он внёс. Знание того, как отлаживать приложение, и знание или хотя бы знакомство с имеющимися в вашем распоряжении инструментами — это навык, который сэкономит вам много времени и позволит быстрее перейти к следующей задаче. В этой статье - несколько примеров реальных ошибок, которые автор недавно исправил в своих приложениях, и он покажет вам весь процесс отладки в каждом случае.
• Взгляд на мой процесс отладки (с реальными примерами)
• Position — легковесное геопозиционирование для Swift 6
• SwiftUI @Environment Complete Guide: System Values, Custom Keys & Best Practices
• 17 Xcode Hacks Every iOS Developer Should Know in 2025
• Combine and Swift Concurrency: A threading risk
• Logging Privacy Shenanigans
Отладка — это навык, которому разработчики часто уделяют мало внимания. Он полезен не только для исправления ошибок, но и для лучшего понимания кодовой базы и языка, на котором вы пишете программное обеспечение. Особенно сейчас, когда мы вступаем в эпоху отладки с помощью искусственного интеллекта, когда чаще всего нам приходится разбираться в коде, который нам выдал LLM, или, что ещё хуже, в ошибках, которые он внёс. Знание того, как отлаживать приложение, и знание или хотя бы знакомство с имеющимися в вашем распоряжении инструментами — это навык, который сэкономит вам много времени и позволит быстрее перейти к следующей задаче. В этой статье - несколько примеров реальных ошибок, которые автор недавно исправил в своих приложениях, и он покажет вам весь процесс отладки в каждом случае.
• Взгляд на мой процесс отладки (с реальными примерами)
• Position — легковесное геопозиционирование для Swift 6
• SwiftUI @Environment Complete Guide: System Values, Custom Keys & Best Practices
• 17 Xcode Hacks Every iOS Developer Should Know in 2025
• Combine and Swift Concurrency: A threading risk
• Logging Privacy Shenanigans
AppTractor
Взгляд на мой процесс отладки (с реальными примерами)
Главный вывод заключается в том, что знание инструментов и системный подход к отладке сэкономят вам бесчисленное количество часов. Будь то логи сбоев, инструменты профилирования или старое доброе комментирование кода, правильный инструмент для каждой задачи…
👍3❤2
Android
Понимание работы Zygote, SystemServer, AMS и Binder IPC — ключ к глубокому владению платформой Android. Механизм сохранения состояния через Bundle, координируемый AMS и реализуемый через Binder и Parcel, является фундаментальным для обеспечения устойчивости приложений к пересозданию процессов. Используйте ViewModel с SavedStateHandle для простых UI‑данных, Parcelable для эффективной сериализации и постоянные хранилища для критически важной информации, соблюдая ограничения Bundle. Это гарантирует плавную работу приложения в любых условиях.
• Шифруем базу данных Room в Android с помощью SQLCipher
• Под капотом Android: как создаются, управляются и восстанавливаются процессы приложений в системе
• From Fastlane to Jules: Modern CI/CD for Android That Doesn’t Feel Like a DevOps Degree
• One Repo to Rule Them All: Android Modules with Git Submodules
• Top 10 Compose Mistakes in Large-Scale Apps
Понимание работы Zygote, SystemServer, AMS и Binder IPC — ключ к глубокому владению платформой Android. Механизм сохранения состояния через Bundle, координируемый AMS и реализуемый через Binder и Parcel, является фундаментальным для обеспечения устойчивости приложений к пересозданию процессов. Используйте ViewModel с SavedStateHandle для простых UI‑данных, Parcelable для эффективной сериализации и постоянные хранилища для критически важной информации, соблюдая ограничения Bundle. Это гарантирует плавную работу приложения в любых условиях.
• Шифруем базу данных Room в Android с помощью SQLCipher
• Под капотом Android: как создаются, управляются и восстанавливаются процессы приложений в системе
• From Fastlane to Jules: Modern CI/CD for Android That Doesn’t Feel Like a DevOps Degree
• One Repo to Rule Them All: Android Modules with Git Submodules
• Top 10 Compose Mistakes in Large-Scale Apps
Хабр
Под капотом Android: как создаются, управляются и восстанавливаются процессы приложений в системе
Эта статья родилась из практической задачи — понять, как устроен Android в общем и целом, как он сохраняет и восстанавливает состояния приложения (помимо БД и файлов)...
👍2❤1
Figma Make, prompt-to-app инструмент для создания приложений, представленный Figma ранее в этом году, теперь доступен всем пользователям. Подобно инструментам ИИ, таким как Gemini Code Assist от Google и GitHub Copilot от Microsoft, Figma Make позволяет пользователям создавать рабочие прототипы и приложения, используя описания на естественном языке, без необходимости обладать навыками программирования. Пользователи тарифных планов View, Collab, Dev и Starter Seat смогут экспериментировать с Figma Make в своих личных черновиках. Это означает, что все пользователи могут как минимум попробовать демоверсию Figma Make, но для того, чтобы что-то сделать с этими творениями, потребуется подписка с полным доступом.
Разработка
• ИИ-инструмент для создания приложений Figma Make теперь доступен всем
• Бизнес требует стабильной работы мобильного приложения у всех пользователей. Что делать?
• Learning Basic Electronics By Building FireFlies
Маркетинг
• Роль онбординга: как построить первые шаги пользователя так, чтобы инсайт случился мгновенно
• What marketing channels actually work for your apps?
Кроссплатформа
• Building a Cross-Platform Mobile Rendering Engine with KMM
• Supercharge Your Dart & Flutter Development Experience with the Dart MCP Server
Разработка
• ИИ-инструмент для создания приложений Figma Make теперь доступен всем
• Бизнес требует стабильной работы мобильного приложения у всех пользователей. Что делать?
• Learning Basic Electronics By Building FireFlies
Маркетинг
• Роль онбординга: как построить первые шаги пользователя так, чтобы инсайт случился мгновенно
• What marketing channels actually work for your apps?
Кроссплатформа
• Building a Cross-Platform Mobile Rendering Engine with KMM
• Supercharge Your Dart & Flutter Development Experience with the Dart MCP Server
AppTractor
ИИ-инструмент для создания приложений Figma Make теперь доступен всем
Одним из важных преимуществ Figma Make перед аналогичными инструментами для разработки приложений является возможность добавлять референсы дизайна.
👍3❤2
Результаты опроса разработчиков Stack Overflow 2025
Stack Overflow опубликовал результаты опроса разработчиков 2025 года.
Вот, например, данные о средней по миру зарплате. Руководители высшего звена (139 тыс. долларов), инженерные менеджеры (130 тыс. долларов) и финансовые аналитики (104 тыс. долларов) имеют самую высокую медианную годовую зарплату в мире. Разрыв в зарплатах между США и другими странами велик для высокооплачиваемых должностей. Медианная зарплата инженерного менеджера в США составляет 200,000 долларов, в то время как в Германии — 118,000 долларов, а в Индии — всего 52,000 долларов.
Медианная зарплата мобильного разработчика в мире - $69,609. Это более чем на $15К больше, чем в опросе прошлого года.
Stack Overflow опубликовал результаты опроса разработчиков 2025 года.
Вот, например, данные о средней по миру зарплате. Руководители высшего звена (139 тыс. долларов), инженерные менеджеры (130 тыс. долларов) и финансовые аналитики (104 тыс. долларов) имеют самую высокую медианную годовую зарплату в мире. Разрыв в зарплатах между США и другими странами велик для высокооплачиваемых должностей. Медианная зарплата инженерного менеджера в США составляет 200,000 долларов, в то время как в Германии — 118,000 долларов, а в Индии — всего 52,000 долларов.
Медианная зарплата мобильного разработчика в мире - $69,609. Это более чем на $15К больше, чем в опросе прошлого года.
👍6
iOS
SwiftUI значительно усовершенствовал навигацию во фреймворке с появлением NavigationStack и переходом от привычного NavigationView. Теперь управление навигацией строится не вокруг представлений (views), а вокруг значений (values). Важно понять: NavigationStack не просто переименованная версия NavigationView, а мощный инструмент для построения сложных сценариев переходов между экранами. Вместе с NavigationPath разработчик получает полный контроль над навигацией, включая программное перемещение по стеку и поддержку deep linking — обработки ссылок, ведущих пользователя сразу к нужному экрану внутри приложения. Такой подход особенно полезен для сложных приложений с множеством состояний и переходов между экранами. Помимо NavigationStack, в статье отдельное внимание уделено TabView — классическому решению для построения таб-ориентированных приложений. Современная архитектура SwiftUI позволяет объединять TabView с NavigationStack, обеспечивая сохранение навигационного состояния внутри каждой вкладки. Это упрощает реализацию профессиональных и масштабируемых интерфейсов с поддержкой глубоких переходов (deep linking) и минимизацией типичных “подводных камней” SwiftUI-навигирования. Понимание этих инструментов экономит часы на отладку и делает код более структурированным и поддерживаемым.
• SwiftUI Navigation: NavigationStack, Deep Linking, and TabView Explained
• SwiftUI: Authenticator App from Scratch + How Those Authenticator App Work Under-hood
• Default Actor Isolation: New Problems from Good Intentions
SwiftUI значительно усовершенствовал навигацию во фреймворке с появлением NavigationStack и переходом от привычного NavigationView. Теперь управление навигацией строится не вокруг представлений (views), а вокруг значений (values). Важно понять: NavigationStack не просто переименованная версия NavigationView, а мощный инструмент для построения сложных сценариев переходов между экранами. Вместе с NavigationPath разработчик получает полный контроль над навигацией, включая программное перемещение по стеку и поддержку deep linking — обработки ссылок, ведущих пользователя сразу к нужному экрану внутри приложения. Такой подход особенно полезен для сложных приложений с множеством состояний и переходов между экранами. Помимо NavigationStack, в статье отдельное внимание уделено TabView — классическому решению для построения таб-ориентированных приложений. Современная архитектура SwiftUI позволяет объединять TabView с NavigationStack, обеспечивая сохранение навигационного состояния внутри каждой вкладки. Это упрощает реализацию профессиональных и масштабируемых интерфейсов с поддержкой глубоких переходов (deep linking) и минимизацией типичных “подводных камней” SwiftUI-навигирования. Понимание этих инструментов экономит часы на отладку и делает код более структурированным и поддерживаемым.
• SwiftUI Navigation: NavigationStack, Deep Linking, and TabView Explained
• SwiftUI: Authenticator App from Scratch + How Those Authenticator App Work Under-hood
• Default Actor Isolation: New Problems from Good Intentions
Medium
SwiftUI Navigation: NavigationStack, Deep Linking, and TabView Explained
🧭 This guide demystifies SwiftUI’s navigation system — from TabView setups to deep linking and advanced NavigationPaths. No breadcrumbs…
👍4
Android
Заключительная статья цикла про функциональное программирование в Android от Додо - собираем знания, полученные в предыдущих частях цикла, и делаем скелет приложения для медитации.
• Liquid Glass — «жидкое стекло» в Compose
• Функциональное программирование в Android. Побочные эффекты и ELM-архитектура
• 5 Gradle Scripts I Use in Every Android Project!
• Edge-to-Edge Is No Longer Optional — Android 16 Migration Guide
• Building BLE Apps in Android: A Developer’s Journey
Заключительная статья цикла про функциональное программирование в Android от Додо - собираем знания, полученные в предыдущих частях цикла, и делаем скелет приложения для медитации.
• Liquid Glass — «жидкое стекло» в Compose
• Функциональное программирование в Android. Побочные эффекты и ELM-архитектура
• 5 Gradle Scripts I Use in Every Android Project!
• Edge-to-Edge Is No Longer Optional — Android 16 Migration Guide
• Building BLE Apps in Android: A Developer’s Journey
Хабр
Функциональное программирование в Android. Побочные эффекты и ELM-архитектура
О чём статья В четвёртой статье цикла про функциональное программирование в Android мы соберём знания, полученные в предыдущих частях цикла. А ещё применим их на практике — соберём скелет приложения...
👍2
В Reddit обсуждают маркетинговые каналы, которые действительно работают для приложений. Главный для большинства - TikTok, но в целом более правильный подход: "ваш лучший канал — тот, который у вас есть". А какие каналы (кроме, собственно, ASO) вы используете и какие работают наиболее эффективно?
Разработка
• Результаты опроса разработчиков Stack Overflow 2025
Маркетинг
• Какие маркетинговые каналы действительно работают для ваших приложений? — обсуждение в Reddit
• How Theo, a 2-Month-Old App, Hit $200K Monthly Revenue
Кроссплатформа
• Flutter and the Liquid Glass Dilemma: A Developer’s Perspective
• Setup IDE-like environment for Flutter in neovim (Windows included)
Разработка
• Результаты опроса разработчиков Stack Overflow 2025
Маркетинг
• Какие маркетинговые каналы действительно работают для ваших приложений? — обсуждение в Reddit
• How Theo, a 2-Month-Old App, Hit $200K Monthly Revenue
Кроссплатформа
• Flutter and the Liquid Glass Dilemma: A Developer’s Perspective
• Setup IDE-like environment for Flutter in neovim (Windows included)
AppTractor
Какие маркетинговые каналы действительно работают для ваших приложений? — обсуждение в Reddit
Интересно, что на самом деле двигает вас вперёд, не сжигая весь ваш бюджет.
👍2
$1M+ ARR → $0 за одну ночь… Как я потерял свою ИИ-платформу с 6 млн пользователей
На Reddit занятная история ИИ-платформы Moemate. Начиналось все как ИИ-компаньон для десктопов, потом превратилось в подобие Character.AI с (судя по всему) изрядной долей NSFW, ну а затем Google продал свой доменный бизнес компании Squarespac и
К моменту, когда все прояснилось, всё уже было кончено. 6 миллионов пользователей, более миллиона MAU, $1 млн ARR — всё исчезло.
Глубинные проблемы, о которых говорит автор:
1. Бесконечное добавление новых функций вместо концентрации: всё время добавляли новые фичи (память, больше моделей, навыки, AR/VR), вместо того чтобы улучшать ключевые вещи — скорость работы и глубину взаимодействия.
2. Кризис идентичности: застряли между тремя группами:
• NSFW-пользователи (мы этого не хотели, но не могли от этого уйти)
• Любители фентези/ролевых игр (наша целевая аудитория)
• Те, кто искал полезность/продуктивность (их привлекали технические возможности)
3. Проблемы с приложениями: просто адаптировали веб-приложение под мобильные устройства, вместо создания нативного решения. Не было нормального сценария конверсии пользователей, перегруженный интерфейс, плохой UX.
4. Разрыв между ростом и продуктом: мы развивали рост отдельно от работы над продуктом, а не интегрировали их друг в друга.
Ну а выводы - в статье.
На Reddit занятная история ИИ-платформы Moemate. Начиналось все как ИИ-компаньон для десктопов, потом превратилось в подобие Character.AI с (судя по всему) изрядной долей NSFW, ну а затем Google продал свой доменный бизнес компании Squarespac и
moemate.io заблокировали. После 3 недель бюрократического ада выяснилось, что настоящая причина блокировки — как раз «неприемлемый пользовательский контент».К моменту, когда все прояснилось, всё уже было кончено. 6 миллионов пользователей, более миллиона MAU, $1 млн ARR — всё исчезло.
Глубинные проблемы, о которых говорит автор:
1. Бесконечное добавление новых функций вместо концентрации: всё время добавляли новые фичи (память, больше моделей, навыки, AR/VR), вместо того чтобы улучшать ключевые вещи — скорость работы и глубину взаимодействия.
2. Кризис идентичности: застряли между тремя группами:
• NSFW-пользователи (мы этого не хотели, но не могли от этого уйти)
• Любители фентези/ролевых игр (наша целевая аудитория)
• Те, кто искал полезность/продуктивность (их привлекали технические возможности)
3. Проблемы с приложениями: просто адаптировали веб-приложение под мобильные устройства, вместо создания нативного решения. Не было нормального сценария конверсии пользователей, перегруженный интерфейс, плохой UX.
4. Разрыв между ростом и продуктом: мы развивали рост отдельно от работы над продуктом, а не интегрировали их друг в друга.
Ну а выводы - в статье.
👍6🌚2
iOS
Обертка
• PokedexUI — современные покемоны на SwiftUI
• Покажу вам фокус: настраиваем property wrapper @FocusState — короткая инструкция
• What’s New in Swift Package Manager (SPM) for 2025
• Stack vs Heap in Swift: What Every iOS Developer Should Actually Know
• Streaming changes with Observations
Обертка
@FocusState появилась в SwiftUI начиная с iOS 15. Она сильно упростила управление фокусом для view и улучшил взаимодействие пользователя с приложением. В статье автор рассказывает, как создать UI-элемент, который включает в себя @FocusState и модификатор .toolbar для переключения фокуса между полями ввода.• PokedexUI — современные покемоны на SwiftUI
• Покажу вам фокус: настраиваем property wrapper @FocusState — короткая инструкция
• What’s New in Swift Package Manager (SPM) for 2025
• Stack vs Heap in Swift: What Every iOS Developer Should Actually Know
• Streaming changes with Observations
Хабр
Покажу вам фокус: настраиваем property wrapper @FocusState — короткая инструкция
Всем привет! Меня зовут Дмитрий Демми, компания AGIMA . Мы часто разрабатываем приложения для банков или еком-продуктов. И в большинстве из них нужно заполнять поля: вписывать имя, контакты, адрес,...
👍1
Android
Многие разработчики в Jetpack Compose сталкиваются с тем, что
• 7 Software Engineering Principles I Never Skip in Android Projects
• Coroutines Vs Threads: An Interview-Ready Guide
• Why Modifier.scrollable() Doesn't Scroll in Jetpack Compose — And What To Use Instead
Многие разработчики в Jetpack Compose сталкиваются с тем, что
Modifier.scrollable не заставляет контент прокручиваться. Причина в том, что этот модификатор сам по себе не изменяет смещение элементов на экране. Его основная задача — отслеживать жесты прокрутки и сообщать о дельтах смещения, но он не применяет это смещение к контенту автоматически. Это низкоуровневый инструмент, который дает вам контроль над событиями скролла, но требует ручного управления состоянием для фактической прокрутки содержимого. Для реализации стандартной прокрутки следует использовать более высокоуровневые модификаторы, такие как Modifier.verticalScroll и Modifier.horizontalScroll, в сочетании с rememberScrollState(). Эти модификаторы уже содержат всю необходимую логику для управления состоянием и автоматического смещения контента, обеспечивая ожидаемое поведение «из коробки» для таких контейнеров, как Column или Row. Таким образом, Modifier.scrollable предназначен для создания кастомных взаимодействий с прокруткой, в то время как для большинства стандартных задач достаточно использовать verticalScroll или horizontalScroll.• 7 Software Engineering Principles I Never Skip in Android Projects
• Coroutines Vs Threads: An Interview-Ready Guide
• Why Modifier.scrollable() Doesn't Scroll in Jetpack Compose — And What To Use Instead
Medium
Why Modifier.scrollable() Doesn't Scroll in Jetpack Compose — And What To Use Instead
A beginner-friendly guide to understanding the difference between scrollable() and verticalScroll() in Jetpack Compose.
👍3
В США Google начинает использовать модель оценки возраста для определения возраста пользователя аккаунта (меньше ему или больше 18 лет). Google анализирует «различные сигналы, уже связанные с аккаунтом пользователя», чтобы определить его возраст, независимо от указанной пользователем даты рождения. Сюда входят «типы информации, которую пользователь искал, или категории видео, которые он смотрел на YouTube». Ещё одним сигналом является длительность существования аккаунта. Если модель допустила ошибку, у взрослых есть несколько вариантов подтверждения возраста. Например, с помощью удостоверения личности государственного образца, цифрового удостоверения личности, поиска по номеру телефона, кредитной карты или селфи (обработка производится на устройстве). Можно предположить, что работать это будет так же криво, как все у Гугла - наверное, стоит заранее прекратить смотреть все детские видео 📺
Разработка
• $1M+ ARR → $0 за одну ночь… Как я потерял свою ИИ-платформу с 6 млн пользователей
• Разбираемся, когда приложению нужен редизайн и какие исследования провести, чтобы не слить бюджет
• What is a Mobile Platform Engineer?
• Vibe code is legacy code
Маркетинг
• Google начал внедрение ML-модели определения возраста
• Footnotes — краудсорсинговая система проверки фактов TikTok — запускается в США
• Лучшие приёмы подталкивания пользователя к AHA-моменту: уведомления, подсказки и «микро-успехи»
• Casual LiveOps Report H1 2025
Кроссплатформа
• Flutter Web: The good, the bad and the ugly
• KMP Gradle Convention: What It Is, How It Works, and Why It Matters
Разработка
• $1M+ ARR → $0 за одну ночь… Как я потерял свою ИИ-платформу с 6 млн пользователей
• Разбираемся, когда приложению нужен редизайн и какие исследования провести, чтобы не слить бюджет
• What is a Mobile Platform Engineer?
• Vibe code is legacy code
Маркетинг
• Google начал внедрение ML-модели определения возраста
• Footnotes — краудсорсинговая система проверки фактов TikTok — запускается в США
• Лучшие приёмы подталкивания пользователя к AHA-моменту: уведомления, подсказки и «микро-успехи»
• Casual LiveOps Report H1 2025
Кроссплатформа
• Flutter Web: The good, the bad and the ugly
• KMP Gradle Convention: What It Is, How It Works, and Why It Matters
Please open Telegram to view this post
VIEW IN TELEGRAM
AppTractor
Google начал внедрение ML-модели определения возраста
В США Google начинает использовать модель оценки возраста для определения возраста пользователя аккаунта (меньше ему или больше 18 лет).
❤2👍2💯1
Epic выиграла апелляцию у Google [и Android, возможно, уже никогда не будет прежним]
Epic снова победила. Апелляционный суд подтвердил вердикт присяжных от 2023 года о том, что магазин приложений и платёжная система Google стали незаконными монополиями.
Последствия судебного решения выйдут далеко за рамки магазина Epic и игры Fortnite. Суд фактически вынудил Google открыть свой магазин приложений для конкурентов на целых три года. Google будет обязан распространять приложения других конкурирующих магазинов в Google Play, предоставлять конкурентам доступ ко всему каталогу приложений Google Play, а также запрещена реализация ряда антиконкурентных практик, включая требование об использовании Google Play Billing для приложений.
Epic первоначально подала в суд на Google и Apple в 2020 году из-за удаления Fortnite из обоих магазинов, хотя дело было намного сложнее. Epic намеренно использовала Fortnite в качестве тарана, чтобы бросить вызов монополии магазинов приложений, и в случае с Apple она в основном проиграла. Но дело Epic против Google оказалось совсем другим. Присяжные увидели секретные соглашения о разделе доходов между Google, производителями смартфонов и разработчиками игр. Присяжные увидели внутреннюю переписку руководителей Google, из которой следовало, что Google опасается, что Epic может убедить своих коллег-разработчиков игр присоединиться к ним или создать конкурирующие магазины приложений, создав нежелательную конкуренцию для Google.
В декабре 2023 года жюри присяжных в Сан-Франциско пришло к выводу, что Google нарушил антимонопольное законодательство. Но потом, перед апелляцией, судья приостановил действие решения. Теперь ему дан зеленый свет.
«Полная победа в апелляции по делу Epic против Google!» — написал в Твиттере генеральный директор Epic Тим Суини.
Компания Epic уже объявила, что разместит свой магазин приложений в Google Play.
«Это решение существенно навредит безопасности пользователей, ограничит выбор и подорвет инновации, которые всегда были основой экосистемы Android. Нашим главным приоритетом в ходе апелляции остается защита наших пользователей, разработчиков и партнеров, а также поддержание безопасности платформы», — пишет представитель Google.
Google снова подает апелляцию, скорее всего, в Верховный суд.
Epic снова победила. Апелляционный суд подтвердил вердикт присяжных от 2023 года о том, что магазин приложений и платёжная система Google стали незаконными монополиями.
Последствия судебного решения выйдут далеко за рамки магазина Epic и игры Fortnite. Суд фактически вынудил Google открыть свой магазин приложений для конкурентов на целых три года. Google будет обязан распространять приложения других конкурирующих магазинов в Google Play, предоставлять конкурентам доступ ко всему каталогу приложений Google Play, а также запрещена реализация ряда антиконкурентных практик, включая требование об использовании Google Play Billing для приложений.
Epic первоначально подала в суд на Google и Apple в 2020 году из-за удаления Fortnite из обоих магазинов, хотя дело было намного сложнее. Epic намеренно использовала Fortnite в качестве тарана, чтобы бросить вызов монополии магазинов приложений, и в случае с Apple она в основном проиграла. Но дело Epic против Google оказалось совсем другим. Присяжные увидели секретные соглашения о разделе доходов между Google, производителями смартфонов и разработчиками игр. Присяжные увидели внутреннюю переписку руководителей Google, из которой следовало, что Google опасается, что Epic может убедить своих коллег-разработчиков игр присоединиться к ним или создать конкурирующие магазины приложений, создав нежелательную конкуренцию для Google.
В декабре 2023 года жюри присяжных в Сан-Франциско пришло к выводу, что Google нарушил антимонопольное законодательство. Но потом, перед апелляцией, судья приостановил действие решения. Теперь ему дан зеленый свет.
«Полная победа в апелляции по делу Epic против Google!» — написал в Твиттере генеральный директор Epic Тим Суини.
Компания Epic уже объявила, что разместит свой магазин приложений в Google Play.
«Это решение существенно навредит безопасности пользователей, ограничит выбор и подорвет инновации, которые всегда были основой экосистемы Android. Нашим главным приоритетом в ходе апелляции остается защита наших пользователей, разработчиков и партнеров, а также поддержание безопасности платформы», — пишет представитель Google.
Google снова подает апелляцию, скорее всего, в Верховный суд.
👍5😢2
Forwarded from AppFiles - Mobile Development
•
(iOS En) Custom Liquid Morphing Menu Effect•
(iOS En) Create Beautiful Liquid Glass: iOS 26 & SwiftUI in Figma & Xcode 26•
(iOS En) Supercharge Your SwiftUI App with SF Symbols & Emoji Pickers•
(iOS En) Liquid Glass Morphing Effects Using SwiftUI•
(And Ru) Нюансы работы Android Runtime в сравнении с HotSpot VM•
(And Ru) Как Google тайно изменил Android на глазах у всех: Project Mainline•
(And En) WearOS Material 3 shape morphing•
(And En) Compose Prototyping in Kotlin Notebooks•
(And En) Writing Your Third Kotlin Compiler Plugin•
(And En) Kotlin compatibility crash course•
(And En) Compose draw speedrun - reloaded•
(And En) Gradle 9.0.0 is Live - What's new? Configuration Cache, Java 17, Kotlin 2, and more•
(And En) Gradle Build Cache - Deliver faster by doing less•
(Crs En) The Easing Symphony: AnimationSpec in detail•
(Crs En) Using Previews with Compose Multiplatform•
(Dev Ru) Запись Avito Mobile Meetup•
(Dev Ru) Как работает синтез речи: от робота до живого голоса — синтез речи, TTS•
(Dev En) What is a Mobile Platform Engineer? 4 Years of Real Experience•
(Mrk Ru) Заработок на AI-фоторедакторах и аватарах. iOS. Подписки. Разбор нишиПрошлогодние видео:
•
(iOS Ru) Почему Metal перестал быть страшным•
(iOS Ru) Локализация iOS-приложения за 1$ в 2024 году•
(And Ru) Нужно ли учить Java для Android-разработки в 2024•
(Vrs Ru) KMP на ОС Аврора: проблемы и пути их решения•
(Dev Ru) Алгоритмическая сессия на собеседовании (все собеседования)•
(Dev Ru) Автоматическая генерация верстки под Server-driven UI из макетов Figma•
(Dev Ru) Учимся договариваться о деньгах — Офферы, Зарплаты, ПовышениеPlease open Telegram to view this post
VIEW IN TELEGRAM
❤2👍1
Взгляд на чайник
Все материалы за прошлую неделю - чайник в Metal и работа с телевизионными каналами на Android, результаты опроса разработчиков Stack Overflow 2025 и какие маркетинговые каналы действительно работают, под капотом Android, процессы отладки, нейросеть у себя на компьютере и многое другое. Заходите!
Все материалы за прошлую неделю - чайник в Metal и работа с телевизионными каналами на Android, результаты опроса разработчиков Stack Overflow 2025 и какие маркетинговые каналы действительно работают, под капотом Android, процессы отладки, нейросеть у себя на компьютере и многое другое. Заходите!
👍1
iOS
Появление типа
• Стриминг изменений с помощью Observations
• AsyncGraphics — редактирование изображений и видео с Swift Concurrency и Metal
• High Performance SwiftData Apps
• SwiftUI for Mac 2025
• Ways SwiftData’s ModelContainer Can Error on Creation
• How to use the @available attribute in Swift
• Using the FoundationModels Framework for Streaming from external LLM providers
Появление типа
Observations знаменует собой значительное улучшение возможностей Swift по наблюдению за данными, особенно для разработчиков, использующих Swift Concurrency. Он стирает разрыв между реактивными обновлениями и современными асинхронными шаблонами, упрощая создание понятных, эффективных и отзывчивых пользовательских интерфейсов.• Стриминг изменений с помощью Observations
• AsyncGraphics — редактирование изображений и видео с Swift Concurrency и Metal
• High Performance SwiftData Apps
• SwiftUI for Mac 2025
• Ways SwiftData’s ModelContainer Can Error on Creation
• How to use the @available attribute in Swift
• Using the FoundationModels Framework for Streaming from external LLM providers
👍2
Android
Опубликованы все видео конференции droidcon NYC 2025. Всего 61 видео. Все доступны на сайте DroidCon.
• Все видео droidcon NYC 2025
• Нюансы работы Android Runtime в сравнении с HotSpot VM
• Как Google тайно изменил Android на глазах у всех: Project Mainline
• YA Habit Tracker — современный трекер привычек для Android
• Deform the canvas
• Auto-sizing Text in Jetpack Compose with BasicText
• Exploring the Android Google Home APIs SDK
• Previewing retain{} API: A New Way to Persist State in Jetpack Compose
• Enhancing User Interaction with Haptic Feedback in Jetpack Compose
Опубликованы все видео конференции droidcon NYC 2025. Всего 61 видео. Все доступны на сайте DroidCon.
• Все видео droidcon NYC 2025
• Нюансы работы Android Runtime в сравнении с HotSpot VM
• Как Google тайно изменил Android на глазах у всех: Project Mainline
• YA Habit Tracker — современный трекер привычек для Android
• Deform the canvas
• Auto-sizing Text in Jetpack Compose with BasicText
• Exploring the Android Google Home APIs SDK
• Previewing retain{} API: A New Way to Persist State in Jetpack Compose
• Enhancing User Interaction with Haptic Feedback in Jetpack Compose
AppTractor
Все видео droidcon NYC 2025
Всего 61 видео.
👍1
Разработка
• Запись Avito Mobile Meetup
• Как работает синтез речи: от робота до живого голоса — синтез речи, TTS
• I Stopped Writing UI Code. Now I Let MCP Servers Build My Interfaces with ShadCN
Маркетинг
• Заработок на AI-фоторедакторах и аватарах. iOS. Подписки. Разбор ниши
• Epic выиграла апелляцию у Google, и Android, возможно, уже никогда не будет прежним
Кроссплатформа
• Setting up Compose Multiplatform previews
• KMP x Swift: How to Use Swift Libraries in Kotlin Multiplatform (with Google Sign-In as Example)
• One-Line Flutter Hacks That Instantly Improve Your UI
• Запись Avito Mobile Meetup
• Как работает синтез речи: от робота до живого голоса — синтез речи, TTS
• I Stopped Writing UI Code. Now I Let MCP Servers Build My Interfaces with ShadCN
Маркетинг
• Заработок на AI-фоторедакторах и аватарах. iOS. Подписки. Разбор ниши
• Epic выиграла апелляцию у Google, и Android, возможно, уже никогда не будет прежним
Кроссплатформа
• Setting up Compose Multiplatform previews
• KMP x Swift: How to Use Swift Libraries in Kotlin Multiplatform (with Google Sign-In as Example)
• One-Line Flutter Hacks That Instantly Improve Your UI
AppTractor
Запись Avito Mobile Meetup
На митапе эксперты Авито расскажут о кэшировании мобильных приложений и разработке на BDUI, как на полноценном языке программирования.
👍2
iOS
Уже есть немало статей об опыте перехода на Swift Package Manager — успешных и не очень. У автора переезд прошел удачно, но на каждом шагу возникали проблемы, которые было сложно нагуглить или вообще найти решения. Поэтому он решил собрать все накопленные знания и поделиться ими в этой статье, надеясь, что другие разработчики сэкономят кучу времени.
• Игра в SPM
• Global actor in Swift Concurrency explained with code examples
• SwiftUI Component Architecture Mastery: Professional Styling, Testing & Performance
• A SwiftData alternative with SQLite + CloudKit: Public beta
Уже есть немало статей об опыте перехода на Swift Package Manager — успешных и не очень. У автора переезд прошел удачно, но на каждом шагу возникали проблемы, которые было сложно нагуглить или вообще найти решения. Поэтому он решил собрать все накопленные знания и поделиться ими в этой статье, надеясь, что другие разработчики сэкономят кучу времени.
• Игра в SPM
• Global actor in Swift Concurrency explained with code examples
• SwiftUI Component Architecture Mastery: Professional Styling, Testing & Performance
• A SwiftData alternative with SQLite + CloudKit: Public beta
Хабр
Игра в SPM
Привет, хабражители! На Хабре уже немало статей об опыте перехода на Swift Package Manager — успешных и не очень. В моем случае переезд прошел удачно, но на каждом шагу возникали проблемы, которые...
👍3❤2
Android
Появление
• Первый взгляд на retain{}: новый способ сохранения состояния в Jetpack Compose
• Flocon — отладка и проверка Android-приложений
• Swipe to Pay, или Как мы переписали слайдер оплаты на Compose
• Kotlin DSL: What’s New?
• Top 10 Must-Know Kotlin Extension Functions: Turn Jetpack Compose Code from Mundane to Magical
• Jetpack Compose Offline-First Architectures
• How I Made My Own ScrollBar in Android Compose (With Drag Support!)
• The Magic Behind Retrofit: How a Simple Interface Becomes Your API Gateway
Появление
retain в Compose Runtime стало важным шагом к тому, чтобы сделать Compose самостоятельной UI-системой. Этот механизм закрывает разрыв между краткоживущим состоянием и длительным хранением в памяти, позволяя сохранять значения при переходах, не выходя за пределы composable-мирa. Будь то сложная навигация, обработка конфигурационных изменений или управление временным UI-состоянием — retain предлагает новый многообещающий механизм восстановления состояния за пределами композиции непосредственно в рамках Compose Runtime.• Первый взгляд на retain{}: новый способ сохранения состояния в Jetpack Compose
• Flocon — отладка и проверка Android-приложений
• Swipe to Pay, или Как мы переписали слайдер оплаты на Compose
• Kotlin DSL: What’s New?
• Top 10 Must-Know Kotlin Extension Functions: Turn Jetpack Compose Code from Mundane to Magical
• Jetpack Compose Offline-First Architectures
• How I Made My Own ScrollBar in Android Compose (With Drag Support!)
• The Magic Behind Retrofit: How a Simple Interface Becomes Your API Gateway
AppTractor
Первый взгляд на retain{}: новый способ сохранения состояния в Jetpack Compose
Появление retain в Compose Runtime стало важным шагом к тому, чтобы сделать Compose самостоятельной UI-системой. Этот механизм закрывает разрыв между краткоживущим состоянием и длительным хранением в памяти, позволяя сохранять значения при переходах, не выходя…
👍3
OpenMind разрабатывает программную среду OM1 для гуманоидных роботов, которая выполняет функции операционной системы. Компания сравнивает себя с Android для робототехники, поскольку её программное обеспечение открыто и не зависит от оборудования. Так что если вы хотите первыми открыть новую среду и экономику - посмотрите на OM1, возможно это и правда "Android будущего" 🤖
Разработка
• OpenMind хочет стать Android для роботов
• «Чёрное зеркало» в реальности: как мы сделали приложение будущего
• You Have Too Many Metrics
Маркетинг
• Самые скачиваемые и зарабатывающие приложения в России в июле 2025
• Stories в ecommerce-приложениях: как привычный формат соцсетей увеличивает продажи
Кроссплатформа
• Опенсорсим yx_state — свой State Management для Flutter
• Dynamic Loading in a Clean Architecture KMM Engine
• Beyond print(): Levelling Up Your Flutter Logging
Разработка
• OpenMind хочет стать Android для роботов
• «Чёрное зеркало» в реальности: как мы сделали приложение будущего
• You Have Too Many Metrics
Маркетинг
• Самые скачиваемые и зарабатывающие приложения в России в июле 2025
• Stories в ecommerce-приложениях: как привычный формат соцсетей увеличивает продажи
Кроссплатформа
• Опенсорсим yx_state — свой State Management для Flutter
• Dynamic Loading in a Clean Architecture KMM Engine
• Beyond print(): Levelling Up Your Flutter Logging
AppTractor
OpenMind хочет стать Android для роботов
OpenMind разрабатывает программную среду OM1 для гуманоидных роботов, которая выполняет функции операционной системы. Компания сравнивает себя с Android для робототехники, поскольку её программное обеспечение открыто и не зависит от оборудования.
👍5
Золотое правило метрик: любая метрика должна напрямую приводить к действиям, если выходит за рамки нормы. Если вы не реагируете на изменения — вы зря тратите время и ресурсы на сбор и поддержку этих данных.
Почему это важно:
• Настроить и поддерживать каждую метрику — затратно
• Метрика, не ведущая к решениям, — просто красивая картинка
Что делать?
1. Выбирайте только самые существенные метрики. Лучше 2–3, но работающих.
2. Регулярно проверяйте их корректность. Метрика «гниёт», если ей не заниматься.
3. Ясно формулируйте ожидания и пороги: когда стоит беспокоиться? На сколько % должно скакнуть значение, чтобы бить тревогу?
4. Обеспечьте действия. Если метрика вышла за пределы — делайте что-то, а не откладывайте в папку «обсудим потом».
Когда вы в последний раз меняли что-то в продукте или бизнес-процессах, опираясь именно на метрики? Если не вспомните — возможно, ваши метрики не работают на вас. И вообще, сколько метрик вы отслеживаете для вашего продукта?
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4✍2