В нашем новости дайджеста анонсы с Google I/O 2022 и выселение Carthage из git, загадочный WorkManager и замена натива веб-приложением, регрессионное тестирование, вопросы с собеседования, миллиарды уведомлений в месяц и многое другое. Подключайтесь!
У нас есть Telegram-канал Mobile Insights, где подборки статей и новостей выходят каждый день, а так же AppFiles с библиотеками и самыми интересными статьями о мобильной разработке!
iOS
• Как нативно визуализировать голос в iOS
• Выселяем Carthage из git, или Как мы связали Carthage + Rome + S3 в нашем проекте
• Заполнители типа в Swift: что это такое и когда их следует использовать
• Apple реструктурирует Сервисы и выделяет рекламу в отдельное направление
• Apple Music выкидывает другие приложения из дока iOS
• 5 актуальных расширений Xcode для оптимизации разработки
• Об архитектуре iOS-приложений
• Как читать веб-сайты в SwiftUI — парсинг данных в iOS
• 6 советов по улучшению кода Swift
• Пользовательская геометрия в SceneKit в SwiftUI
• Core Data Relationship в Swift 5 — проще простого
• Анимированный рейтинг в SwiftUI
• Моделирование ошибок в Swift
• Пишите красивый код с помощью Swift Result Builder
• Создание списка для выбора с использованием дженериков
• SwiftUI: выбор архитектуры приложения
• Как мы используем SwiftUI в приложении Medium для iOS
• Возможен ли полумодальный View в SwiftUI?
• Измерение производительности приложения в Swift
• AR-приложение в Swift — туториал
• 20 лучших вопросов на собеседовании по iOS для уровня от начального до среднего
• CHIPageControl: анимированные индикаторы страниц
• UIPilot: типобезопасная навигация для SwiftUI
Android
• Как мы используем фича-флаги в мобильном приложении QIWI Кошелек
• Загадочная история сбоя WorkManager
• Письмо счастья: как мы разделили наши сборки для AppGallery и Google Play
• Работа с памятью в Android: GC, ARC, RAM
• Kotlin, обрабатываем исключения в корутинах правильно
• Android Studio. Kotlin. Подключение Google календаря через Content Provider
• Android и Play на Google I/O 2022
• Расширение Google Home для Visual Studio Code
• Google Play запускает кастомные продуктовые страницы и события
• Google Play предлагает предоплаченную подписку и снижает минимальную цену до 5 центов
• Вышла стабильная версия Android Studio Chipmunk
• Новое в инструментах Android-разработки
• Jetpack Compose Beta 1.2
• Jetpack Compose для Wear OS
• Вторая бета Android 13 для всех
• Google Play SDK Index
• Новый Health Connect — API для безопасного доступа к данным о здоровье
• Хак для экономии времени при работе с Jetpack Compose
• Доступность в приложении с двумя экранами
• Сворачивание тулбара в Jetpack Compose — проблема, решения и альтернативы
• Понимание файлов, сгенерированных Proguard, и ручная деобфускация Stacktrace
• Принципы S.O.L.I.D. с примерами на Kotlin
• Создаем собственный плагин проверки кода IntelliJ
• Надежные тесты для Android-уведомлений
• 7 вещей, о которых нужно помнить при создании Jetpack Composable
• Dagger 2 и Hilt для Android менее чем за 10 минут
• Andromeda — система дизайна Jetpack Compose с открытым исходным кодом
• Now in Android: лучшие практики Android-разработки
• PowerSpinner: выпадающие меню для Android
• Compose Animated Music Card: анимированные карточки
Кроссплатформа
• Я заменил нативное iOS-приложение кроссплатформенным веб-приложением — и никто не заметил!
• Представлен Flutter 3
• Flutter для Apple TV
• Jugger – внедрение зависимостей как в Android
• Flutter Dev Podcast #35: безопасность инфраструктуры для Flutter-разработки
• Почему деление на 0 не приводит к ошибке в Dart
• Flutter и работа с нативным кодом
• 7 крутых особенностей языка Dart
• Основные ошибки, которые допускают разработчики при разработке Flutter-приложения
• Flutter: полная дорожная карта 2022
Разработка
• Всё что нужно знать про ECS
• К ориентиру по хлебным крошкам, или базовые приёмы левел-дизайна
• Как мы потратили на разработку игры 1.000.000 рублей, а заработали 80.000 рублей
• QA без рутины: как мы автоматизировали регрессионное тестирование
• Конец Продуктового менеджмента
• Сравниваю UX/UI сервисов доставки продуктов: Яндекс Лавка, Самокат, Сбермаркет, Ozon Fresh, Утконос
• Как мы создавали движок на Unity (часть 0)
• Зачем разработчикам игр на Unity использовать статический анализ?
• 10 советов от Unity по геймдизайну для начинающего разработчика игр
• Отправляем миллиард уведомлений в месяц
• Podlodka #266: рекрутмент как продукт
• Podlodka #267: кодеки
• $6.6 млн в посевном раунде: Novu — открытая инфраструктура уведомлений
• $80 млн в Серии B: Supabase — альтернатива Firebase
• Firebase обновляется
• Fleksy выпускает свой SDK для клавиатуры
• Appwrite открывает фонд для поддержки проектов с открытым исходным кодом
• 10 вещей, которым я научился при проектировании децентрализованных финансовых приложений
• Формула собеседования, благодаря которой вы получите офер FAANG/MAANG
• Мой вопрос на собеседовании по программированию в Google
• Никто не должен использовать резиновую уточку для отладки в 2022
• Ваша история коммитов Git должна читаться как историческая книга
• Я прощаюсь с Firebase
• Самая грустная история «Just Ship It»
• Полное руководство по системному дизайну 2022
• Если бы я мог выучить только 6 языков программирования в своей жизни, я бы выучил эти
• Как стать Web3 разработчиком
Аналитика, маркетинг и монетизация
• Зачем в Альфа-Банке создали команды Growth Hacking, или «Кнопки мы и сами поменяем»
• 78% пользователей отказывается от персонализированной рекламы в App Store
• Match Group: компания является «заложником» Google
• Отчет «State of Customer Messaging 2022» от OneSignal
• Самые зарабатывающие приложения США в апреле
AI, Устройства, IoT
• Как улучшить распознавание скелетов в MediaPipe
• Как и для чего мы построили ML Space
• Google представил Pixel 6a
← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.
У нас есть Telegram-канал Mobile Insights, где подборки статей и новостей выходят каждый день, а так же AppFiles с библиотеками и самыми интересными статьями о мобильной разработке!
iOS
• Как нативно визуализировать голос в iOS
• Выселяем Carthage из git, или Как мы связали Carthage + Rome + S3 в нашем проекте
• Заполнители типа в Swift: что это такое и когда их следует использовать
• Apple реструктурирует Сервисы и выделяет рекламу в отдельное направление
• Apple Music выкидывает другие приложения из дока iOS
• 5 актуальных расширений Xcode для оптимизации разработки
• Об архитектуре iOS-приложений
• Как читать веб-сайты в SwiftUI — парсинг данных в iOS
• 6 советов по улучшению кода Swift
• Пользовательская геометрия в SceneKit в SwiftUI
• Core Data Relationship в Swift 5 — проще простого
• Анимированный рейтинг в SwiftUI
• Моделирование ошибок в Swift
• Пишите красивый код с помощью Swift Result Builder
• Создание списка для выбора с использованием дженериков
• SwiftUI: выбор архитектуры приложения
• Как мы используем SwiftUI в приложении Medium для iOS
• Возможен ли полумодальный View в SwiftUI?
• Измерение производительности приложения в Swift
• AR-приложение в Swift — туториал
• 20 лучших вопросов на собеседовании по iOS для уровня от начального до среднего
• CHIPageControl: анимированные индикаторы страниц
• UIPilot: типобезопасная навигация для SwiftUI
Android
• Как мы используем фича-флаги в мобильном приложении QIWI Кошелек
• Загадочная история сбоя WorkManager
• Письмо счастья: как мы разделили наши сборки для AppGallery и Google Play
• Работа с памятью в Android: GC, ARC, RAM
• Kotlin, обрабатываем исключения в корутинах правильно
• Android Studio. Kotlin. Подключение Google календаря через Content Provider
• Android и Play на Google I/O 2022
• Расширение Google Home для Visual Studio Code
• Google Play запускает кастомные продуктовые страницы и события
• Google Play предлагает предоплаченную подписку и снижает минимальную цену до 5 центов
• Вышла стабильная версия Android Studio Chipmunk
• Новое в инструментах Android-разработки
• Jetpack Compose Beta 1.2
• Jetpack Compose для Wear OS
• Вторая бета Android 13 для всех
• Google Play SDK Index
• Новый Health Connect — API для безопасного доступа к данным о здоровье
• Хак для экономии времени при работе с Jetpack Compose
• Доступность в приложении с двумя экранами
• Сворачивание тулбара в Jetpack Compose — проблема, решения и альтернативы
• Понимание файлов, сгенерированных Proguard, и ручная деобфускация Stacktrace
• Принципы S.O.L.I.D. с примерами на Kotlin
• Создаем собственный плагин проверки кода IntelliJ
• Надежные тесты для Android-уведомлений
• 7 вещей, о которых нужно помнить при создании Jetpack Composable
• Dagger 2 и Hilt для Android менее чем за 10 минут
• Andromeda — система дизайна Jetpack Compose с открытым исходным кодом
• Now in Android: лучшие практики Android-разработки
• PowerSpinner: выпадающие меню для Android
• Compose Animated Music Card: анимированные карточки
Кроссплатформа
• Я заменил нативное iOS-приложение кроссплатформенным веб-приложением — и никто не заметил!
• Представлен Flutter 3
• Flutter для Apple TV
• Jugger – внедрение зависимостей как в Android
• Flutter Dev Podcast #35: безопасность инфраструктуры для Flutter-разработки
• Почему деление на 0 не приводит к ошибке в Dart
• Flutter и работа с нативным кодом
• 7 крутых особенностей языка Dart
• Основные ошибки, которые допускают разработчики при разработке Flutter-приложения
• Flutter: полная дорожная карта 2022
Разработка
• Всё что нужно знать про ECS
• К ориентиру по хлебным крошкам, или базовые приёмы левел-дизайна
• Как мы потратили на разработку игры 1.000.000 рублей, а заработали 80.000 рублей
• QA без рутины: как мы автоматизировали регрессионное тестирование
• Конец Продуктового менеджмента
• Сравниваю UX/UI сервисов доставки продуктов: Яндекс Лавка, Самокат, Сбермаркет, Ozon Fresh, Утконос
• Как мы создавали движок на Unity (часть 0)
• Зачем разработчикам игр на Unity использовать статический анализ?
• 10 советов от Unity по геймдизайну для начинающего разработчика игр
• Отправляем миллиард уведомлений в месяц
• Podlodka #266: рекрутмент как продукт
• Podlodka #267: кодеки
• $6.6 млн в посевном раунде: Novu — открытая инфраструктура уведомлений
• $80 млн в Серии B: Supabase — альтернатива Firebase
• Firebase обновляется
• Fleksy выпускает свой SDK для клавиатуры
• Appwrite открывает фонд для поддержки проектов с открытым исходным кодом
• 10 вещей, которым я научился при проектировании децентрализованных финансовых приложений
• Формула собеседования, благодаря которой вы получите офер FAANG/MAANG
• Мой вопрос на собеседовании по программированию в Google
• Никто не должен использовать резиновую уточку для отладки в 2022
• Ваша история коммитов Git должна читаться как историческая книга
• Я прощаюсь с Firebase
• Самая грустная история «Just Ship It»
• Полное руководство по системному дизайну 2022
• Если бы я мог выучить только 6 языков программирования в своей жизни, я бы выучил эти
• Как стать Web3 разработчиком
Аналитика, маркетинг и монетизация
• Зачем в Альфа-Банке создали команды Growth Hacking, или «Кнопки мы и сами поменяем»
• 78% пользователей отказывается от персонализированной рекламы в App Store
• Match Group: компания является «заложником» Google
• Отчет «State of Customer Messaging 2022» от OneSignal
• Самые зарабатывающие приложения США в апреле
AI, Устройства, IoT
• Как улучшить распознавание скелетов в MediaPipe
• Как и для чего мы построили ML Space
• Google представил Pixel 6a
← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.