C праздником и новым дайджестом! В новом выпуске два года Unit-тестов и убыль приложений в Google Play, темная сторона виджетов и бэкенд от Snap, год ATT, четыре всадника джуна и многое другое.
У нас есть Telegram-канал Mobile Insights, где подборки статей и новостей выходят каждый день, а так же AppFiles с библиотеками и самыми интересными статьями о мобильной разработке!
iOS
• Тест-ревью: как прошли два года написания unit-тестов
• Как использовать дженерики в Swift
• Как работает Backend-Driven UI на мобильном клиенте
• Автоматическое развертывание инфраструктуры в iOS проекте
• Почему ваше приложение могут не пропустить или даже удалить из App Store?
• Простой способ обнаружить retain cycle в UIViewController
• В App Store снова начали удалять устаревшие приложения
• Использование типографики Apple для iOS-дизайнера
• Шесть принципов, которые помогут лучше писать модули для iOS-приложений
• Пример использования SwiftUI: моделирование данных Brotherhood Alchemist
• Кастомный индикатор активности с изображением
• Запускаем агентов Azure на macOS с локальным размещением на Apple M1
• Совместное использование Core Data с CloudKit в SwiftUI
• Типы памяти в Swift
• Более чистый Swift MVVM с Property Wrapper
• Повышаем производительность в iOS-приложений
• Полное руководство по модульному тестированию в iOS с лучшими практиками
• Перемещение представлений и моделей SwiftUI в отдельные пакеты Swift
• Моделирование тестируемых зависимостей в кодовых базах iOS
• TDD для начинающих с примерами на Swift
• Эволюция архитектуры приложений Medium для iOS
• Почему iOS-разработчики никогда не должны использовать iCloud в своих приложениях
• Локализация в приложении iOS с MapKit и CoreLocation
• 3 причины, почему мне не нравится SwiftUI
• Два способа юнит-тестирования центра уведомлений в Swift
• YPImagePicker: выбор фото, как в Instagram
• iOS Clean Architecture MVVM: шаблон чистой архитектуры
Android
• Отменяем операции правильно на примере корутин
• Запись разговоров на мобильных
• Google выпустил developer preview версию Privacy Sandbox для Android
• Конвергенция в многомодульном приложении
• Адаптация Compose в hh.ru
• Темная сторона Android App widgets
• Топ вопросов работодателю от Android-разработчика
• Google в 2021 заблокировал более 1М приложений и 190 разработчиков
• Количество приложений в Google Play сокращается
• Google Play начинает внедрение пометок о конфиденциальности данных
• Вышла первая публичная бета-версия Android 13
• Четыре всадника апокалипсиса джуна Android разработчика
• Дженерики в Kotlin
• Важность проверки обертки Gradle
• Android KSP для чайников от чайника
• Моделирование ответов Retrofit с помощью изолированных классов и корутин
• Изучаем библиотеку Google Map Compose для Android
• Измеряйте и улучшайте производительность с помощью Macrobenchmark
• Использование DiffUtil в RecyclerView
• Как ViewModels переживают изменения конфигурации
• Пагинация с Paging 3 в Android Example
• Овладеваем корутинами за два часа — бесплатный курс
• Однонаправленная связь сервер-клиент с использованием SSE в Android
• Метапрограммирование с Kotlin для Android
• Compose или не Compose, вот в чем вопрос
• Мой путь в размещении моего open source приложения в Google Developers Dev Library
• Понимание функций Kotlin Scope за 2 минуты
• LibreTube: свободный YouTube
• Awesome Android Lint: лучшие правила
• SlimeKT: платформа для статей
Разработка
• Левел-дизайн 101: язык разработки локаций
• К чему приводят тестовые задания или как я реализовал Match-3 для терминала
• Редизайн ивентового арта: поиск и разработка новых пайплайнов для улучшения контента
• Как мы сделали мобильные устройства круглосуточно доступными для распределенной QA-команды и не только
• Быстрый переход на UNIGINE с Unity: первые шаги
• Aurora OS: первый взгляд
• Встречают по одежке: как мы меняем главную в приложении с 13 миллионами MAU
• Программное обеспечение приходит в упадок?
• Альф, переведи мне на телефон миллион рублей
• Как использовать Kotlin Multiplatform ViewModel в SwiftUI и Jetpack Compose
• Погружение в Charles Proxy
• Основа про App Transport Security: что это и зачем
• Java для начинающих: новый обучающий курс от Microsoft
• Podlodka #265: Erlang
• Lens Cloud предлагает бэкенд для AR-разработчиков Snap
• $412 млн: SonarSource — чистый код для всех
• Google открывает доступ к Media CDN
• VK будет делать российский магазин приложений
• Google показал скрытые интерфейсы для Ambient Computing
• Google выпустил новую коллекцию иконок Material Symbols
• Первые ошибки начинающего разработчика или как я создала свою первую F2P-игру
• 2022 год: продакт-менеджеры и дизайнеры должны говорить об эмбиентных вычислениях
• Основы UX-дизайна для приложений Web 3.0
• Искусство продуктового менеджмента. Важность софт скилов
• AppYou.ru — универсам мобильных приложений и телеграм ботов
• Хороший дизайн сводится к своевременности
• Создание качественного программного обеспечения требует больше усилий и навыков, а не времени
• Важность чистого кода
• Написание кода — это одно, а обучение на инженера-программиста — другое
• Глубокое погружение в конструкторы Dart
• Непрерывная доставка в Airbnb
• Как разработчики Google пишут свои комментарии
• Полное руководство по анимациям во Flutter
• Как масштабировать приложение для поддержки миллионов пользователей
• Разбор инцидента Slack 22-22-22
• 7 причин, по которым я объясняю ответ во время собеседования
• Чистый код — практический подход
• Лучшие вызовы API во Flutter
• Худшая ошибка — случайная потеря лучших игроков
Аналитика, маркетинг и монетизация
• Как увеличить количество оценок приложения одним простым шагом
• Индекс Лепрекона
• Локализация продукта и ее подводные камни
• «ATT — 1 год»: отчет AppsFlyer
• Краткий анализ лучших мобильных игр в Twitter
• Diablo Immortal выходит на iOS и Android 2 июля
• Рост BeReal, приложения одномоментной фотографии
AI, Устройства, IoT
• KC868-AG: IoT шайба
• Властелины колец
• Go для самых маленьких. –азрабатываем для Arduino и других микроконтроллеров
• Snap выпустил мини-дрон для съемки фото и видео
• 14 датасетов для вашего следующего Data Science проекта
• Современные рекомендательные системы с нейронными сетями
• Как настроить среду разработки дя€ машинного обучения
< Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.
У нас есть Telegram-канал Mobile Insights, где подборки статей и новостей выходят каждый день, а так же AppFiles с библиотеками и самыми интересными статьями о мобильной разработке!
iOS
• Тест-ревью: как прошли два года написания unit-тестов
• Как использовать дженерики в Swift
• Как работает Backend-Driven UI на мобильном клиенте
• Автоматическое развертывание инфраструктуры в iOS проекте
• Почему ваше приложение могут не пропустить или даже удалить из App Store?
• Простой способ обнаружить retain cycle в UIViewController
• В App Store снова начали удалять устаревшие приложения
• Использование типографики Apple для iOS-дизайнера
• Шесть принципов, которые помогут лучше писать модули для iOS-приложений
• Пример использования SwiftUI: моделирование данных Brotherhood Alchemist
• Кастомный индикатор активности с изображением
• Запускаем агентов Azure на macOS с локальным размещением на Apple M1
• Совместное использование Core Data с CloudKit в SwiftUI
• Типы памяти в Swift
• Более чистый Swift MVVM с Property Wrapper
• Повышаем производительность в iOS-приложений
• Полное руководство по модульному тестированию в iOS с лучшими практиками
• Перемещение представлений и моделей SwiftUI в отдельные пакеты Swift
• Моделирование тестируемых зависимостей в кодовых базах iOS
• TDD для начинающих с примерами на Swift
• Эволюция архитектуры приложений Medium для iOS
• Почему iOS-разработчики никогда не должны использовать iCloud в своих приложениях
• Локализация в приложении iOS с MapKit и CoreLocation
• 3 причины, почему мне не нравится SwiftUI
• Два способа юнит-тестирования центра уведомлений в Swift
• YPImagePicker: выбор фото, как в Instagram
• iOS Clean Architecture MVVM: шаблон чистой архитектуры
Android
• Отменяем операции правильно на примере корутин
• Запись разговоров на мобильных
• Google выпустил developer preview версию Privacy Sandbox для Android
• Конвергенция в многомодульном приложении
• Адаптация Compose в hh.ru
• Темная сторона Android App widgets
• Топ вопросов работодателю от Android-разработчика
• Google в 2021 заблокировал более 1М приложений и 190 разработчиков
• Количество приложений в Google Play сокращается
• Google Play начинает внедрение пометок о конфиденциальности данных
• Вышла первая публичная бета-версия Android 13
• Четыре всадника апокалипсиса джуна Android разработчика
• Дженерики в Kotlin
• Важность проверки обертки Gradle
• Android KSP для чайников от чайника
• Моделирование ответов Retrofit с помощью изолированных классов и корутин
• Изучаем библиотеку Google Map Compose для Android
• Измеряйте и улучшайте производительность с помощью Macrobenchmark
• Использование DiffUtil в RecyclerView
• Как ViewModels переживают изменения конфигурации
• Пагинация с Paging 3 в Android Example
• Овладеваем корутинами за два часа — бесплатный курс
• Однонаправленная связь сервер-клиент с использованием SSE в Android
• Метапрограммирование с Kotlin для Android
• Compose или не Compose, вот в чем вопрос
• Мой путь в размещении моего open source приложения в Google Developers Dev Library
• Понимание функций Kotlin Scope за 2 минуты
• LibreTube: свободный YouTube
• Awesome Android Lint: лучшие правила
• SlimeKT: платформа для статей
Разработка
• Левел-дизайн 101: язык разработки локаций
• К чему приводят тестовые задания или как я реализовал Match-3 для терминала
• Редизайн ивентового арта: поиск и разработка новых пайплайнов для улучшения контента
• Как мы сделали мобильные устройства круглосуточно доступными для распределенной QA-команды и не только
• Быстрый переход на UNIGINE с Unity: первые шаги
• Aurora OS: первый взгляд
• Встречают по одежке: как мы меняем главную в приложении с 13 миллионами MAU
• Программное обеспечение приходит в упадок?
• Альф, переведи мне на телефон миллион рублей
• Как использовать Kotlin Multiplatform ViewModel в SwiftUI и Jetpack Compose
• Погружение в Charles Proxy
• Основа про App Transport Security: что это и зачем
• Java для начинающих: новый обучающий курс от Microsoft
• Podlodka #265: Erlang
• Lens Cloud предлагает бэкенд для AR-разработчиков Snap
• $412 млн: SonarSource — чистый код для всех
• Google открывает доступ к Media CDN
• VK будет делать российский магазин приложений
• Google показал скрытые интерфейсы для Ambient Computing
• Google выпустил новую коллекцию иконок Material Symbols
• Первые ошибки начинающего разработчика или как я создала свою первую F2P-игру
• 2022 год: продакт-менеджеры и дизайнеры должны говорить об эмбиентных вычислениях
• Основы UX-дизайна для приложений Web 3.0
• Искусство продуктового менеджмента. Важность софт скилов
• AppYou.ru — универсам мобильных приложений и телеграм ботов
• Хороший дизайн сводится к своевременности
• Создание качественного программного обеспечения требует больше усилий и навыков, а не времени
• Важность чистого кода
• Написание кода — это одно, а обучение на инженера-программиста — другое
• Глубокое погружение в конструкторы Dart
• Непрерывная доставка в Airbnb
• Как разработчики Google пишут свои комментарии
• Полное руководство по анимациям во Flutter
• Как масштабировать приложение для поддержки миллионов пользователей
• Разбор инцидента Slack 22-22-22
• 7 причин, по которым я объясняю ответ во время собеседования
• Чистый код — практический подход
• Лучшие вызовы API во Flutter
• Худшая ошибка — случайная потеря лучших игроков
Аналитика, маркетинг и монетизация
• Как увеличить количество оценок приложения одним простым шагом
• Индекс Лепрекона
• Локализация продукта и ее подводные камни
• «ATT — 1 год»: отчет AppsFlyer
• Краткий анализ лучших мобильных игр в Twitter
• Diablo Immortal выходит на iOS и Android 2 июля
• Рост BeReal, приложения одномоментной фотографии
AI, Устройства, IoT
• KC868-AG: IoT шайба
• Властелины колец
• Go для самых маленьких. –азрабатываем для Arduino и других микроконтроллеров
• Snap выпустил мини-дрон для съемки фото и видео
• 14 датасетов для вашего следующего Data Science проекта
• Современные рекомендательные системы с нейронными сетями
• Как настроить среду разработки дя€ машинного обучения
< Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.