Этот дайджест доступен в виде еженедельной рассылки. А ежедневно новости мы рассылаем в
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 должна это признать.
- Способы атрибуции рекламы без явного касания — клика или перехода