В этой подборке 0-day уязвимости в iOS и скорость сборки для нее же, StoreKit 2 и Swift 5.5, тестовая ферма и правильная валидация для Android, битва снифферов, игры со шрифтами, подготовка к FAANG, релизные циклы и многое другое!
Этот дайджест доступен в виде еженедельной рассылки. А ежедневно новости мы рассылаем в Telegram-канале.
iOS
• Статья, в которой я раскрываю три 0-day уязвимости в iOS и критикую bug bounty программу Apple
• Скорость сборки в iOS
• Как сделать пейволл, который пройдёт модерацию Apple
• Популярные приложения для iPhone собирают данные несмотря на ATT запрет
• Apple запускает StoreKit 2 и новые серверные API в App Store
• Вышел Swift 5.5
• Apple выпустила iOS 15, iPadOS 15 и watchOS 8
• iOS 14 vs iOS 15: изменение дизайна
• Делаем экран входа в систему в гласморфизме, используя SwiftUI
• Модульная архитектура MVVM-C+SPM+SwiftUI в iOS
• UIKit умер?
• Я наконец-то освоил Case Let в моем Swift-коде
• Реализация чистого MVVM с помощью SwiftUI
• Простая Multipart загрузка на Swift
• accessibilityRotor в SwiftUI
• Реализация TextFieldDelegate с помощью SwiftUI
• Реализация SwiftUI Canvas View в iOS 15
• Box Feed: новости на SwiftUI и Async/Await
Android
• Jetpack Microbenchmark — тестируем производительность кода
• Чему я научился делая игры на LibGDX
• Тестовая ферма из Android-устройств: как собрать, отладить и не взорвать офис
• Правильная валидация в Android
• Android RecyclerView с использованием котлиновских sealed классов
• Подключение SignalR для Android на Kotlin
• Мой рецепт MVI в Android
• Android 12 Митап от Google Россия и Android Broadcast
• Compose UI и смерть androidx.lifecycle.ViewModel
• 4 лучших Android-библиотеки, которые вы должны использовать в 2021 году
• Диспетчер карт в кошельке Android
• Использование WorkManager в Android 12
• Анимация списков в Compose: свайп, чтобы удалить
• Waydroid – Android-контейнеры в Ubuntu
• PasswordStrengthView: стойкость пароля
• Travel Planner: путешествия на складном экране
Разработка
• Код без багов и сломанное авто: как мы нетривиально проверяли Заправки 2ГИС
• Photon Plugin: защищаем игровой процесс от читеров
• Битва снифферов: Charles vs Proxyman
• Map matching, стилизация кластера и игры со шрифтами — что нового в 2GIS Kit
• Фреймворки для тестирования: личный опыт и новые методы
• Реализация in-app purchases на Flutter c помощью Adapty SDK
• gRPC + Dart, Сервис + Клиент, напишем? Часть 4: подключаем мобильное Flutter приложение
• In-app purchases: продвинутые механики работы с покупками на Android и iOS
• Очевидный шаг, который решит ваши проблемы с клавиатурой
• Podlodka #234: нетворкинг
• Не используйте токены, ключи и учетные данные в коде приложений
• Как подготовиться к интервью в FAANG
• Измеряем релизный цикл
• В AWS выпустили SDK для Kotlin и Swift
• $50 млн помогут CodeSignal улучшить найм разработчиков на основе данных
• Типографика данных в интерфейсах
• Haptic UX – дизайн тактильных ощущений сенсорного интерфейса
• UX-исследования не очень помогают делать хорошие продукты
• Чтение кода — это навык
• Как улучшить дизайн чекбоксов, радио и простых переключателей?
• 142 ресурса для улучшения кодинг интервью
• Публикация нативных артефактов из проекта Kotlin Multiplatform
• Как сделать редизайн как профессионал
• Создание лучших лидербордов
• Как я пишу документацию в Google: пример
• Flutter против React Native: сравнение для вашего следующего проекта
• Bitbucket vs. Github vs. Gitlab: подробное сравнение 2021
• Заменяем If-Else и Switch параметрическим полиморфизмом
• Письмо: секретный инструмент гейм-дизайнера
• RE3: реверс инжиниринг GTA III
• Locheck: проверка локализации
Аналитика, маркетинг и монетизация
• “Вовлечённость 2021”: отчет Sensor Tower
• SubHub Podcast: Евгений Курышев (Mirror AI)
• Fortnite не вернется в App Store
• Как выбрать страны для продвижения в поиске App Store
• Как инди-разработчик, я решил предложить поддержку по телефону — вот что получилось
• Tapjoy объясняет работу офферволов в новом руководстве
• App Store — это магазин игр. Apple должна это признать.
• Способы атрибуции рекламы без явного касания — клика или перехода
AI, Устройства, IoT
• Искусство войны ML инженера с FAANG
• Читать не надо слушать: как работает распознавание речи ВКонтакте
← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.
Этот дайджест доступен в виде еженедельной рассылки. А ежедневно новости мы рассылаем в Telegram-канале.
iOS
• Статья, в которой я раскрываю три 0-day уязвимости в iOS и критикую bug bounty программу Apple
• Скорость сборки в iOS
• Как сделать пейволл, который пройдёт модерацию Apple
• Популярные приложения для iPhone собирают данные несмотря на ATT запрет
• Apple запускает StoreKit 2 и новые серверные API в App Store
• Вышел Swift 5.5
• Apple выпустила iOS 15, iPadOS 15 и watchOS 8
• iOS 14 vs iOS 15: изменение дизайна
• Делаем экран входа в систему в гласморфизме, используя SwiftUI
• Модульная архитектура MVVM-C+SPM+SwiftUI в iOS
• UIKit умер?
• Я наконец-то освоил Case Let в моем Swift-коде
• Реализация чистого MVVM с помощью SwiftUI
• Простая Multipart загрузка на Swift
• accessibilityRotor в SwiftUI
• Реализация TextFieldDelegate с помощью SwiftUI
• Реализация SwiftUI Canvas View в iOS 15
• Box Feed: новости на SwiftUI и Async/Await
Android
• Jetpack Microbenchmark — тестируем производительность кода
• Чему я научился делая игры на LibGDX
• Тестовая ферма из Android-устройств: как собрать, отладить и не взорвать офис
• Правильная валидация в Android
• Android RecyclerView с использованием котлиновских sealed классов
• Подключение SignalR для Android на Kotlin
• Мой рецепт MVI в Android
• Android 12 Митап от Google Россия и Android Broadcast
• Compose UI и смерть androidx.lifecycle.ViewModel
• 4 лучших Android-библиотеки, которые вы должны использовать в 2021 году
• Диспетчер карт в кошельке Android
• Использование WorkManager в Android 12
• Анимация списков в Compose: свайп, чтобы удалить
• Waydroid – Android-контейнеры в Ubuntu
• PasswordStrengthView: стойкость пароля
• Travel Planner: путешествия на складном экране
Разработка
• Код без багов и сломанное авто: как мы нетривиально проверяли Заправки 2ГИС
• Photon Plugin: защищаем игровой процесс от читеров
• Битва снифферов: Charles vs Proxyman
• Map matching, стилизация кластера и игры со шрифтами — что нового в 2GIS Kit
• Фреймворки для тестирования: личный опыт и новые методы
• Реализация in-app purchases на Flutter c помощью Adapty SDK
• gRPC + Dart, Сервис + Клиент, напишем? Часть 4: подключаем мобильное Flutter приложение
• In-app purchases: продвинутые механики работы с покупками на Android и iOS
• Очевидный шаг, который решит ваши проблемы с клавиатурой
• Podlodka #234: нетворкинг
• Не используйте токены, ключи и учетные данные в коде приложений
• Как подготовиться к интервью в FAANG
• Измеряем релизный цикл
• В AWS выпустили SDK для Kotlin и Swift
• $50 млн помогут CodeSignal улучшить найм разработчиков на основе данных
• Типографика данных в интерфейсах
• Haptic UX – дизайн тактильных ощущений сенсорного интерфейса
• UX-исследования не очень помогают делать хорошие продукты
• Чтение кода — это навык
• Как улучшить дизайн чекбоксов, радио и простых переключателей?
• 142 ресурса для улучшения кодинг интервью
• Публикация нативных артефактов из проекта Kotlin Multiplatform
• Как сделать редизайн как профессионал
• Создание лучших лидербордов
• Как я пишу документацию в Google: пример
• Flutter против React Native: сравнение для вашего следующего проекта
• Bitbucket vs. Github vs. Gitlab: подробное сравнение 2021
• Заменяем If-Else и Switch параметрическим полиморфизмом
• Письмо: секретный инструмент гейм-дизайнера
• RE3: реверс инжиниринг GTA III
• Locheck: проверка локализации
Аналитика, маркетинг и монетизация
• “Вовлечённость 2021”: отчет Sensor Tower
• SubHub Podcast: Евгений Курышев (Mirror AI)
• Fortnite не вернется в App Store
• Как выбрать страны для продвижения в поиске App Store
• Как инди-разработчик, я решил предложить поддержку по телефону — вот что получилось
• Tapjoy объясняет работу офферволов в новом руководстве
• App Store — это магазин игр. Apple должна это признать.
• Способы атрибуции рекламы без явного касания — клика или перехода
AI, Устройства, IoT
• Искусство войны ML инженера с FAANG
• Читать не надо слушать: как работает распознавание речи ВКонтакте
← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.