В нашем юбилейном дайджесте фантастические RecyclerView и замена APK на App Bundle, новинки StoreKit 2 и отказ Wrike от Dart, рекордные расходы пользователей, GPT-3 в домашних условиях и многое другое!
Этот дайджест доступен в виде еженедельной рассылки. А ежедневно новости мы рассылаем в Telegram-канале.
iOS
• Tuist: Xcode-проект на стероидах
• Как мы переходили с CocoaPods на Carthage
• Что нового в API StoreKit 2 и как он упростил интеграцию покупок в приложении
• Как будут работать Custom Product Pages в App Store и как получить от них максимальную отдачу
• Как работает цикл в Swift?
• Как управлять игрой SpriteKit с помощью SwiftUI
• Урок UIBezierPath: как нарисовать Cuphead в слоях
• Лучшие приложения для iOS с открытым исходным кодом 2021 года, написанные на SwiftUI
• Использование оберток свойств Protocols, ObservableObject и @Published в SwiftUI
• Создание настраиваемого ProgressView с помощью SwiftUI
• Начинаем работу с Async/Await в SwiftUI и iOS 15
• Миграция с SwiftUI 2.0 на SwiftUI 3.0
• Представляем DocC: новый инструмент для написания документации в Xcode
• Swift — 7 мощных анимаций для улучшения интерфейса вашего приложения (англ.)
• Реализуем чистую MVVM-архитектуру в SwiftUI с помощью Combine
• Glideshow: слайд-шоу с анимацией
• AHDownloadButton: кнопка загрузки, как в App Store
Android
• View Model не обязательно наследоваться от ViewModel
• Gradle Plugin: Что, зачем и как?
• Фантастические RecyclerView.ViewHolder и где они создаются
• Google Play будет работать с App Bundle, вместо APK
• Почему замена APK на Android App Bundle пугает разработчиков и экспертов
• Google Play внедряет двухэтапную аутентификация разработчиков и просит больше данных
• Как создавать табы с помощью Jetpack Compose
• Способы анимации в Android
• Эффективная стратегия тестирования для Android
• Что не так с Android-разработкой?
• Мифы о Scope Storage
• Поддержка Edge-to-edge экранов для вашего Android-приложения с Insetter
• От ничего к материальным переходам
• Продвинутое использование WorkManager в многопроцессорных приложениях
• PasswordStrengthView: надежность пароля
• WalkThroughAndroid: красивый онбординг
• Compose Arcade: кроссплатформенное судоку на KMM и Compose
Разработка
• Дизайн-система IVI. Взгляд изнутри. Часть 1
• Запихнуть многоквартирный дом в маленький телефон
• Менеджер качества, или как не спалить лоу-энд девайсы ультра-графикой
• Как перестать писать код для взаимодействия с бэкендом
• Разработка Tizen-приложений для Samsung Smart TV: полный гайд для Javascript-разработчиков
• Материалы в Unity: Акрил
• Flutter плагин для импорта стикеров в телеграм
• Flutter Dev Podcast #29: Wrike отказывается от Dart
• Podlodka #222: антифрод
• SubHub: Сергей Маслов (Prisma Labs)
• Как я научился софт-скиллам и захватил мир
• Новый раунд Ably расширит их Pub/Sub платформу
• Почему разработчикам не стоит гуглить решения
• Graylog получает $18 млн на анализ логов
• 11 инструментов повышения продуктивности для разработчиков
• Дизайн приложений: примеры для вдохновения #46
• Сверхспособности великих продуктовых дизайнеров. Сказка о пяти магических навыках
• Кейс DMV Genie: Как мы создали самое популярное в США приложение для подготовки к экзаменам по вождению
• Почему студенты должны участвовать в Open Source проектах
• Мастер в технических интервью: как я дважды получал предложения от Google и Facebook
• Наиболее частые причины увольнения программистов
• Как остановить разработчиков, создающих legacy код
• Забудьте о геймификации: игровой дизайн как основа для разработки продукта
• Быстрая база данных — быстрое приложение (полезные методы оптимизации производительности БД)
• UX-стратегия: дайте вашему продукту преимущество
• Редизайн приложения Figma Mirror — кейс продуктового дизайна
• От нуля до MVP: 3 инструмента, которые я использую для быстрого создания приложений
• Как мы сделали наши карты в 10 раз быстрее
• Как DoorDash экспериментирует, чтобы найти Product Market Fit
• 7 шаблонов для быстрого старта при создании SaaS-приложения
• Как создать систему, которая будет масштабироваться до ваших первых 100 миллионов пользователей
• 5 плохих практик, из-за которых другие разработчики ненавидят ваш код
• Как работает Flutter в ByteDance
• 5 ментальных моделей для улучшения восприятия продукта и принятия решений
• Глубокое погружение в Server-Driven UI систему Airbnb
Аналитика, маркетинг и монетизация
• Mojang закрывает Minecraft Earth
• Расходы на приложения во 2 квартале поставили новый рекорд в $34 млрд
• Brickit: LEGO для взрослых
• Расходы потребителей на приложения в первой половине 2021 выросли на 24% и достигли $65 млрд
• Конференция Up My App 2021. Кейсы, культурализация приложений и ASO-стратегии для разных типов трафика
AI, Устройства, IoT
• 30 миллиардов параметров: реально ли обучить русский GPT-3 в «домашних» условиях?
• MLflow в облаке. Простой и быстрый способ вывести ML-модели в продакшен
• Уязвимости NFC позволяют взломать банкомат, просто взмахнув смартфоном
• Volvo делает свою ОС для автомобилей
• Copilot от GitHub и OpenAI пишет код с помощью ИИ
• 4 обязательных курса по Data Science для абсолютных новичков
← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.
Этот дайджест доступен в виде еженедельной рассылки. А ежедневно новости мы рассылаем в Telegram-канале.
iOS
• Tuist: Xcode-проект на стероидах
• Как мы переходили с CocoaPods на Carthage
• Что нового в API StoreKit 2 и как он упростил интеграцию покупок в приложении
• Как будут работать Custom Product Pages в App Store и как получить от них максимальную отдачу
• Как работает цикл в Swift?
• Как управлять игрой SpriteKit с помощью SwiftUI
• Урок UIBezierPath: как нарисовать Cuphead в слоях
• Лучшие приложения для iOS с открытым исходным кодом 2021 года, написанные на SwiftUI
• Использование оберток свойств Protocols, ObservableObject и @Published в SwiftUI
• Создание настраиваемого ProgressView с помощью SwiftUI
• Начинаем работу с Async/Await в SwiftUI и iOS 15
• Миграция с SwiftUI 2.0 на SwiftUI 3.0
• Представляем DocC: новый инструмент для написания документации в Xcode
• Swift — 7 мощных анимаций для улучшения интерфейса вашего приложения (англ.)
• Реализуем чистую MVVM-архитектуру в SwiftUI с помощью Combine
• Glideshow: слайд-шоу с анимацией
• AHDownloadButton: кнопка загрузки, как в App Store
Android
• View Model не обязательно наследоваться от ViewModel
• Gradle Plugin: Что, зачем и как?
• Фантастические RecyclerView.ViewHolder и где они создаются
• Google Play будет работать с App Bundle, вместо APK
• Почему замена APK на Android App Bundle пугает разработчиков и экспертов
• Google Play внедряет двухэтапную аутентификация разработчиков и просит больше данных
• Как создавать табы с помощью Jetpack Compose
• Способы анимации в Android
• Эффективная стратегия тестирования для Android
• Что не так с Android-разработкой?
• Мифы о Scope Storage
• Поддержка Edge-to-edge экранов для вашего Android-приложения с Insetter
• От ничего к материальным переходам
• Продвинутое использование WorkManager в многопроцессорных приложениях
• PasswordStrengthView: надежность пароля
• WalkThroughAndroid: красивый онбординг
• Compose Arcade: кроссплатформенное судоку на KMM и Compose
Разработка
• Дизайн-система IVI. Взгляд изнутри. Часть 1
• Запихнуть многоквартирный дом в маленький телефон
• Менеджер качества, или как не спалить лоу-энд девайсы ультра-графикой
• Как перестать писать код для взаимодействия с бэкендом
• Разработка Tizen-приложений для Samsung Smart TV: полный гайд для Javascript-разработчиков
• Материалы в Unity: Акрил
• Flutter плагин для импорта стикеров в телеграм
• Flutter Dev Podcast #29: Wrike отказывается от Dart
• Podlodka #222: антифрод
• SubHub: Сергей Маслов (Prisma Labs)
• Как я научился софт-скиллам и захватил мир
• Новый раунд Ably расширит их Pub/Sub платформу
• Почему разработчикам не стоит гуглить решения
• Graylog получает $18 млн на анализ логов
• 11 инструментов повышения продуктивности для разработчиков
• Дизайн приложений: примеры для вдохновения #46
• Сверхспособности великих продуктовых дизайнеров. Сказка о пяти магических навыках
• Кейс DMV Genie: Как мы создали самое популярное в США приложение для подготовки к экзаменам по вождению
• Почему студенты должны участвовать в Open Source проектах
• Мастер в технических интервью: как я дважды получал предложения от Google и Facebook
• Наиболее частые причины увольнения программистов
• Как остановить разработчиков, создающих legacy код
• Забудьте о геймификации: игровой дизайн как основа для разработки продукта
• Быстрая база данных — быстрое приложение (полезные методы оптимизации производительности БД)
• UX-стратегия: дайте вашему продукту преимущество
• Редизайн приложения Figma Mirror — кейс продуктового дизайна
• От нуля до MVP: 3 инструмента, которые я использую для быстрого создания приложений
• Как мы сделали наши карты в 10 раз быстрее
• Как DoorDash экспериментирует, чтобы найти Product Market Fit
• 7 шаблонов для быстрого старта при создании SaaS-приложения
• Как создать систему, которая будет масштабироваться до ваших первых 100 миллионов пользователей
• 5 плохих практик, из-за которых другие разработчики ненавидят ваш код
• Как работает Flutter в ByteDance
• 5 ментальных моделей для улучшения восприятия продукта и принятия решений
• Глубокое погружение в Server-Driven UI систему Airbnb
Аналитика, маркетинг и монетизация
• Mojang закрывает Minecraft Earth
• Расходы на приложения во 2 квартале поставили новый рекорд в $34 млрд
• Brickit: LEGO для взрослых
• Расходы потребителей на приложения в первой половине 2021 выросли на 24% и достигли $65 млрд
• Конференция Up My App 2021. Кейсы, культурализация приложений и ASO-стратегии для разных типов трафика
AI, Устройства, IoT
• 30 миллиардов параметров: реально ли обучить русский GPT-3 в «домашних» условиях?
• MLflow в облаке. Простой и быстрый способ вывести ML-модели в продакшен
• Уязвимости NFC позволяют взломать банкомат, просто взмахнув смартфоном
• Volvo делает свою ОС для автомобилей
• Copilot от GitHub и OpenAI пишет код с помощью ИИ
• 4 обязательных курса по Data Science для абсолютных новичков
← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.