Маркетинг и монетизация
Дайджест интересных материалов для мобильного разработчика #324 (28 сентября — 4 октября)
В этом дайджесте — обновления Android, собственный движок для игр, симуляция волос и создание VHS-эффектов, No-Code платформы машинного обучения и доходы приложений. Приятного чтения!
Qt? ImGUI? wxWidgets? Пишем свое
У меня был простой рендер спрайтов и текста, простая система обработки ввода, из которой можно было получать информацию о мышке и нажатых клавишах, и всякие утилиты-обвязки вспомогательных систем движка. В общем какую-то простую картинку вывести я мог. В последствии это все очень сильно изменилось и поросло архитектурными хитростями.
Бесшовные A/B-обновления в Android: как они устроены
Начиная с Android 8 (у некоторых вендоров с 7.1) в системе появился новый механизм накатки OTA-обновлений, т. н. Seamless A/B OTA Updates — бесшовные обновления. В этом посте я опишу общие принципы его работы, рассмотрю механизм с точки зрения разработчика, а также проведу сравнение со старым (будем его называть recovery-based) подходом применения обновлений.
Этот дайджест доступен в виде еженедельной рассылки. А ежедневно новости мы рассылаем в Telegram-канале.
iOS
- Navigation bar и анимация перехода
- Apple запустила генератор коротких ссылок и QR-кодов для App Store
- Apple отказалась от 30% налога ради малого бизнеса
- Использование AVAudioEngine для записи, сжатия и потоковой передачи звука на iOS
- SKOverlay в SwiftUI
- Core Data и SwiftUI 2.0
- Используем кастомные Debug Descriptions, чтобы упростить отладку Swift
- 10 запутанных, но важных функций Swift
- 2 способа исполнения MVVM iOS
- SwiftUI и Firestore: обновление данных
- Как сделать раздвигающийся TableView с помощью Swift
- Instructions: пояснения и обучение работе с продуктом
- Tiktok Clone: короткие видео на Swift и Firebase
- Twitter Text: парсинг текста
Android
- Как разработать аналог Zoom для ТВ-приставок на RDK и Linux. Разбираемся с фреймворком GStreamer
- «Холодный» запуск Android-приложения
- Еще раз про многомодульность Android-приложений
- Как устроен Push Kit от Huawei
- Как спроектировать пошаговое заполнение данных в мобильном приложении
- Google Play In-App Review API: пошаговое руководство по внедрению
- Голос в мобильном приложении: учимся вызывать экраны и заполнять формы без рук
- Google упростит работу со сторонними магазинами в Android 12
- Google Play будет тщательнее следить за оплатой покупок в приложениях
- Беспроводная Android-разработка с локальным устройством
- Асинхронные сообщения с Kotlin и RabbitMQ
- Первые мысли о Jetpack Compose
- Изменение стартовых шаблонов Android
- Splash Screen в Android
- Время плыть: переход с Kotlin на Flutter
- Исследуем Kotlin DSL
- Развенчиваем мифы о производительности Android
- Создание тепловых карт с помощью Google Maps для Android
- Все, что вам нужно знать о биометрической библиотеке Android
- JetMessenger: клон Facebook Messenger на Jetpack Compose
- CircleMenu: круговое меню для Android
Разработка
- Plague M.D. Я остался в России и меня поглотила Чума. Сопли и нытье прогера
- Выводы, которые я сделал, помогая стартапу для секс-чатов повысить конверсию
- InheritedWidget во Flutter
- Симуляция волос и тканей с Unity Cloth на мобильных устройствах
- Создание эффекта VHS-видео в Unreal Engine
- «Flutter клёвенький — у меня только такое объяснение». Обзор лучших выпусков Flutter Dev Podcast
- Как создать мини-приложение: база знаний VK Mini Apps
- Podlodka #183: обратная связь
- Финал фестиваля программирования RuCode
- GitHub запускает сканирование кода на уязвимости
- Как изменить жизнь программиста с правилом 80/20
- Курсы “Как создавать мобильные приложения и игры” в Humble Bundle
- 4 расширения VS Code для того, чтобы «расслабиться» на работе
- Интервью с product-менеджером Flutter и Dart (Google)
- Facebook против Google: битва межплатформенных фреймворков
- Лучшие практики CI/CD
- GitHub Codespaces: работа с Flutter
- Лучший совет по созданию программного обеспечения от моего ментора
- Четыре вещи, которые нужно забыть, чтобы стать лучшим программистом
- Мои первые 24 часа с Flutter
- 7 способов действительно чему-то научиться из туториалов
Аналитика, маркетинг и монетизация
- Как приложения без возможности выигрыша вытягивают у пользователей миллионы долларов
- История Waze: от бессмыслицы до миллиардной компании
- Разбор игры RAID: Shadow Legends (монетизация через поведенческую психологию)
- Локализационное тестирование: зачем оно нужно приложению или сайту?
- Сингл группы BLACKPINK «Lovesick girls» выходит в PUBG MOBILE
- IronSource открывает доступ к in-app bidding платформе для всех
- make sense: О выходе на зарубежный рынок
- Доходы приложений в 3 квартале выросли на 32% до $29 млрд.
- Epic и Apple отказались от суда присяжных
- В России вступил в силу Закон о блокировке пиратских приложений
- Почему инфлюэнсеры-звезды, такие как Ли Цзяци, так важны для бизнеса, нацеливающегося на Китай
- Rephrase.ai: генерация людей для рекламы
- Как мы запустили приложение для анимации фото на Product Hunt
- Запуск инди-приложения
AI, Устройства, IoT
- Лучшие IDE для Raspberry Pi
- Знакомство с Node-RED и потоковое программирование в Yandex IoT Core
- Добавляем в плеер функцию Ambilight при помощи умных ламп Xiaomi
- NB-IoT. Non-IP Data Delivery или просто NIDD. Тестирование с коммерческим сервисом МТС
- «Умный дом» в каждую квартиру многоквартирного дома. Детально о контроллере и шлюзах
- 8 No-Code платформ машинного обучения для мобильных разработчиков
- Продажи Apple Watch 6 вдвое опережают продажи предыдущей версии
-
Разработка1 месяц назад
Чистка Android-проекта для уменьшения размера APK, ускорения сборки и улучшения опыта разработки
-
Разработка1 месяц назад
Поваренная книга SwiftUI: лучшие практики управления состояниями в SwiftUI
-
Разработка1 месяц назад
Прекратите спорить в Code Review — начните внедрять с правилами линтера
-
Разработка1 месяц назад
Разработка, управляемая тестами (TDD), для исправления ошибок