В нашем новом еженедельном дайджесте WWDC 2024 и DVD-заставка на SwiftUI, более старый Android и инструментальные цепочки Gradle, анализ производительности React Native, инклюзивность и цифровая доступность, временное решение на 30 лет и многое другое. Подключайтесь!
Подписывайтесь на наш Telegram-канал Mobile Insights, где еще больше материалов для мобильных разработчиков. А в IT Insights — много об интересном коде и технологиях.

 iOS
 iOS
• Privacy Manifest: что нужно о нём знать для внедрения в проект
• Вопросы с собеседований: Жизненный цикл UIViewController
• Поваренная книга SwiftUI: тексты и шрифты — часть 2
• Apple запустила на YouTube канал для разработчиков
• WWDC 2024 пройдет с 10 по 14 июня
• Делаем DVD-заставку на SwiftUI
• Introducing the Benchmark Package: Complementing Unit Tests with Performance Checks
 Introducing the Benchmark Package: Complementing Unit Tests with Performance Checks
• Guide to Naming SwiftUI Components
 Guide to Naming SwiftUI Components
• Mobile System Design (iOS): Swiggy/Zomato App
 Mobile System Design (iOS): Swiggy/Zomato App
• Dependency Injection for Modern Swift Applications
 Dependency Injection for Modern Swift Applications
• How to use Swift’s logging API
 How to use Swift’s logging API
• Top 10 SwiftUI Features Every App Developer Should Know
 Top 10 SwiftUI Features Every App Developer Should Know
• Swift 6 New Features
 Swift 6 New Features
• Key press events detection in SwiftUI
 Key press events detection in SwiftUI
• Safe array subscription in Swift
 Safe array subscription in Swift
• Exploring SwiftUI: Orientation Property Wrapper
 Exploring SwiftUI: Orientation Property Wrapper
• Iterating over websocket messages with async / await in Swift
 Iterating over websocket messages with async / await in Swift
• Swift Closures Explained: From Beginner to Advanced
 Swift Closures Explained: From Beginner to Advanced
• SwiftUI Modifier Mastery: Enhancing Views and Layout Control
 SwiftUI Modifier Mastery: Enhancing Views and Layout Control
• Using ViewModel with Protocols in SwiftUI
 Using ViewModel with Protocols in SwiftUI
• Date decoding strategies in Swift
 Date decoding strategies in Swift
• Swift Actors — in depth
 Swift Actors — in depth
• Framework Creation And Code Visibility Control Using Binary
 Framework Creation And Code Visibility Control Using Binary
• Pinch to Zoom — SwiftUI
 Pinch to Zoom — SwiftUI
• Rebuild Spotify in SwiftUI
 Rebuild Spotify in SwiftUI
• Swift has more formatters than you know
 Swift has more formatters than you know
• XCTest Tutorial: How to add automated UI tests for Better iOS App Quality
 XCTest Tutorial: How to add automated UI tests for Better iOS App Quality
• Horizontal Wheel Picker
 Horizontal Wheel Picker
• Stacked Cards Effect using SwiftUI
 Stacked Cards Effect using SwiftUI
• Create Realistic Particle Effects for visionOS
 Create Realistic Particle Effects for visionOS
• Benchmark: производительность Swift с поддержкой CI
 Benchmark: производительность Swift с поддержкой CI
• SQLite.swift: обертка для SQLite3
 SQLite.swift: обертка для SQLite3
• Adwaita for Swift: GNOME приложения на SwiftUI
 Adwaita for Swift: GNOME приложения на SwiftUI
• Ignite: конструктор статических сайтов для Swift-разработчиков
 Ignite: конструктор статических сайтов для Swift-разработчиков
 Android
 Android
• Исходников нет, но мы не сдадимся: как и зачем я портировал более старый Android, чем стоял «с завода»?
• Инструментальные цепочки Gradle редко бывают хорошей идеей
• Context receivers — новые extension functions
• Работа с UI-автотестами под Android: от запрета мерджа к особенностям запуска
• Экспортируем иконки из Figma в проект одним кликом: история одной автоматизации
• Android 15 выйдет только летом, но «потрогать» ОС можно уже сейчас. Что интересного в тестовой версии?
• Кодогенерация токенов дизайн-системы для Android по Figma API
• К чему с годами приводит работа с Dependency Injection и Service Locator
• Line height в Android TextView: где не сходится с Figma, как мешает pixel-perfect, и как это решить
• Реализация Lazy Dependency Holder (Продвинутая ленивая инициализация зависимостей) для больших команд
• Android-разработчица. Как сделать первые шаги?
• Что нужно учить в 2024
• Retaining beyond ViewModels
 Retaining beyond ViewModels
• Create Instagram-like Long Press and Draggable Carousel Indicators in Jetpack Compose
 Create Instagram-like Long Press and Draggable Carousel Indicators in Jetpack Compose
• Random Musings on the Android 15 Developer Preview 2
 Random Musings on the Android 15 Developer Preview 2
• What is FRIDA? Why Every Android Developer should it?
 What is FRIDA? Why Every Android Developer should it?
• Handling UI Events in Jetpack Compose: A Clean Approach
 Handling UI Events in Jetpack Compose: A Clean Approach
• Performance Impact Analysis of Gradle 8.7 in Android Projects
 Performance Impact Analysis of Gradle 8.7 in Android Projects
• Build a Real-Time Zoom Clone with Jetpack Compose
 Build a Real-Time Zoom Clone with Jetpack Compose
• A preview of Animating LazyList items in Jetpack Compose
 A preview of Animating LazyList items in Jetpack Compose
• Drawing a Football Ground with Jetpack Compose
 Drawing a Football Ground with Jetpack Compose
• Starting Lineups on Football Pitch with Jetpack Compose
 Starting Lineups on Football Pitch with Jetpack Compose
• How to build a custom design system with Jetpack compose
 How to build a custom design system with Jetpack compose
• Exploring Kotlin Coroutines Dispatchers: A Look at Dispatchers.Main.immediate
 Exploring Kotlin Coroutines Dispatchers: A Look at Dispatchers.Main.immediate
• Important Coroutine Interview Questions for Experienced Android Developers
 Important Coroutine Interview Questions for Experienced Android Developers
• Introduction to ML Kit Document Scanner for Android
 Introduction to ML Kit Document Scanner for Android
• Optimizing Lazy List in Jetpack Compose: Best Practices
 Optimizing Lazy List in Jetpack Compose: Best Practices
• Scooping Out Vanilla Ice Cream
 Scooping Out Vanilla Ice Cream
• Time for Playtime — Android Developers Backstage
 Time for Playtime — Android Developers Backstage
• How to Implement a Pull-to-Refresh LazyColumn with Material3 in Android
 How to Implement a Pull-to-Refresh LazyColumn with Material3 in Android
• If You’re Making These 5 Use Case Mistakes, You Haven’t Understood Clean Architecture
 If You’re Making These 5 Use Case Mistakes, You Haven’t Understood Clean Architecture
• Material You Review
 Material You Review
• SimpMusic: музыкальный плеер на основе YouTube Music
 SimpMusic: музыкальный плеер на основе YouTube Music
• Better Open With: диалог открытия файлов для Android
 Better Open With: диалог открытия файлов для Android
• AboutLibraries: сведения о зависимостях и лицензиях
 AboutLibraries: сведения о зависимостях и лицензиях
 Кроссплатформа
 Кроссплатформа
• Анализ производительности React Native приложений: как выявить проблемы и улучшить перформанс
• Flutter Dev Podcast #45: Собеседования на позицию Flutter-разработчика
• How to Use and Create Streams from Scratch in Dart and Flutter
 How to Use and Create Streams from Scratch in Dart and Flutter
• Intro to Metaprogramming in Dart
 Intro to Metaprogramming in Dart
• Optimizing Configuration time for Android apps that use React Native
 Optimizing Configuration time for Android apps that use React Native
• Optimizing Flutter Performance: Techniques to Enhance Your App’s Speed and Efficiency
 Optimizing Flutter Performance: Techniques to Enhance Your App’s Speed and Efficiency
• Flutter’s InheritedWidgets: Getting Started
 Flutter’s InheritedWidgets: Getting Started
• Common Mistakes in Flutter and How to Fix Them
 Common Mistakes in Flutter and How to Fix Them
• Display images with Custom Paint using Supabase Storage
 Display images with Custom Paint using Supabase Storage
• Flutter Responsive UI Design
 Flutter Responsive UI Design
 Разработка
 Разработка
• Продуктовый подход к pet-проекту или как я разработал музыкальное веб-приложение
• Адаптация мобильного приложения для пользователей скринридеров. Опыт Яндекс Лавки
• 6 лет из жизни инди-разработчика
• Инклюзивность и цифровая доступность в дизайне: почему это важно для всех
• Эволюция главного экрана: хаос, исследования и редизайн
• Сложная архитектура простых приложений
• Оценочные шкалы в UX-исследованиях
• Пишем рекомендательную систему музыки на Java
• Задача из Моего Собеседования в Amazon
• Ада Лавлейс и программирование
• Осознанный подход к метрикам
• Playtime Engineering хочет упростить создание музыки для детей
• 10 упражнений от боли в спине, которые помогут программистам
• Самые высокооплачиваемые вакансии марта в сфере разработки приложений
• Временное решение просуществовало в Windows уже 30 лет
• Как руководить командой Senior-инженеров
• Create Visual Stories Without Drawing
 Create Visual Stories Without Drawing
• Industrial Product Design Trends for 2024
 Industrial Product Design Trends for 2024
• How Uber increased developer productivity and what you can learn from that
 How Uber increased developer productivity and what you can learn from that
• Design better alerts
 Design better alerts
• 10 Essential Exercises for Programmers to Prevent Back Pain
 10 Essential Exercises for Programmers to Prevent Back Pain
• What I learned from the book Software Architecture: The Hard Parts
 What I learned from the book Software Architecture: The Hard Parts
• 10 Core Product Design Principles
 10 Core Product Design Principles
• I’m A Developer Not A Compiler
 I’m A Developer Not A Compiler
• 10 Elegant and Handy User Interface Design Projects
 10 Elegant and Handy User Interface Design Projects
• Consistent Data Encryption in Android, iOS, and Flutter Apps with AES
 Consistent Data Encryption in Android, iOS, and Flutter Apps with AES
 Аналитика, маркетинг и монетизация
 Аналитика, маркетинг и монетизация
• LinkedIn тестирует ленту с короткими видео
• Spotify тестирует видеокурсы для обучения всему — от создания музыки до Excel
• Евросоюз расследует несоблюдение Apple закона о Цифровых рынках
• Gamification in Product Design (UI/UX)
• The AppsFlyer Performance Index: 2024 Country Edition
 AI, Устройства, IoT
 AI, Устройства, IoT
• Умная квартира айтишника: хотел всё на Wi-Fi, но передумал
• Самый лучший в мире курс по Машинному обучению — Алгоритмы Машинного обучения с нуля
• Будка охраны или космический корабль
• Что делать, если твой заказчик — весы, или Как заговорить на одном языке с бытовой техникой
• AI Flutter Code Generator with Gemini API
 AI Flutter Code Generator with Gemini API
? Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.
Подписывайтесь на наш Telegram-канал Mobile Insights, где еще больше материалов для мобильных разработчиков. А в IT Insights — много об интересном коде и технологиях.

 iOS
 iOS• Privacy Manifest: что нужно о нём знать для внедрения в проект
• Вопросы с собеседований: Жизненный цикл UIViewController
• Поваренная книга SwiftUI: тексты и шрифты — часть 2
• Apple запустила на YouTube канал для разработчиков
• WWDC 2024 пройдет с 10 по 14 июня
• Делаем DVD-заставку на SwiftUI
•
 Introducing the Benchmark Package: Complementing Unit Tests with Performance Checks
 Introducing the Benchmark Package: Complementing Unit Tests with Performance Checks•
 Guide to Naming SwiftUI Components
 Guide to Naming SwiftUI Components•
 Mobile System Design (iOS): Swiggy/Zomato App
 Mobile System Design (iOS): Swiggy/Zomato App•
 Dependency Injection for Modern Swift Applications
 Dependency Injection for Modern Swift Applications•
 How to use Swift’s logging API
 How to use Swift’s logging API•
 Top 10 SwiftUI Features Every App Developer Should Know
 Top 10 SwiftUI Features Every App Developer Should Know•
 Swift 6 New Features
 Swift 6 New Features•
 Key press events detection in SwiftUI
 Key press events detection in SwiftUI•
 Safe array subscription in Swift
 Safe array subscription in Swift•
 Exploring SwiftUI: Orientation Property Wrapper
 Exploring SwiftUI: Orientation Property Wrapper•
 Iterating over websocket messages with async / await in Swift
 Iterating over websocket messages with async / await in Swift•
 Swift Closures Explained: From Beginner to Advanced
 Swift Closures Explained: From Beginner to Advanced•
 SwiftUI Modifier Mastery: Enhancing Views and Layout Control
 SwiftUI Modifier Mastery: Enhancing Views and Layout Control•
 Using ViewModel with Protocols in SwiftUI
 Using ViewModel with Protocols in SwiftUI•
 Date decoding strategies in Swift
 Date decoding strategies in Swift•
 Swift Actors — in depth
 Swift Actors — in depth•
 Framework Creation And Code Visibility Control Using Binary
 Framework Creation And Code Visibility Control Using Binary•
 Pinch to Zoom — SwiftUI
 Pinch to Zoom — SwiftUI•
 Rebuild Spotify in SwiftUI
 Rebuild Spotify in SwiftUI•
 Swift has more formatters than you know
 Swift has more formatters than you know•
 XCTest Tutorial: How to add automated UI tests for Better iOS App Quality
 XCTest Tutorial: How to add automated UI tests for Better iOS App Quality•
 Horizontal Wheel Picker
 Horizontal Wheel Picker•
 Stacked Cards Effect using SwiftUI
 Stacked Cards Effect using SwiftUI•
 Create Realistic Particle Effects for visionOS
 Create Realistic Particle Effects for visionOS•
 Benchmark: производительность Swift с поддержкой CI
 Benchmark: производительность Swift с поддержкой CI•
 SQLite.swift: обертка для SQLite3
 SQLite.swift: обертка для SQLite3•
 Adwaita for Swift: GNOME приложения на SwiftUI
 Adwaita for Swift: GNOME приложения на SwiftUI•
 Ignite: конструктор статических сайтов для Swift-разработчиков
 Ignite: конструктор статических сайтов для Swift-разработчиков Android
 Android• Исходников нет, но мы не сдадимся: как и зачем я портировал более старый Android, чем стоял «с завода»?
• Инструментальные цепочки Gradle редко бывают хорошей идеей
• Context receivers — новые extension functions
• Работа с UI-автотестами под Android: от запрета мерджа к особенностям запуска
• Экспортируем иконки из Figma в проект одним кликом: история одной автоматизации
• Android 15 выйдет только летом, но «потрогать» ОС можно уже сейчас. Что интересного в тестовой версии?
• Кодогенерация токенов дизайн-системы для Android по Figma API
• К чему с годами приводит работа с Dependency Injection и Service Locator
• Line height в Android TextView: где не сходится с Figma, как мешает pixel-perfect, и как это решить
• Реализация Lazy Dependency Holder (Продвинутая ленивая инициализация зависимостей) для больших команд
• Android-разработчица. Как сделать первые шаги?
• Что нужно учить в 2024
•
 Retaining beyond ViewModels
 Retaining beyond ViewModels•
 Create Instagram-like Long Press and Draggable Carousel Indicators in Jetpack Compose
 Create Instagram-like Long Press and Draggable Carousel Indicators in Jetpack Compose•
 Random Musings on the Android 15 Developer Preview 2
 Random Musings on the Android 15 Developer Preview 2•
 What is FRIDA? Why Every Android Developer should it?
 What is FRIDA? Why Every Android Developer should it?•
 Handling UI Events in Jetpack Compose: A Clean Approach
 Handling UI Events in Jetpack Compose: A Clean Approach•
 Performance Impact Analysis of Gradle 8.7 in Android Projects
 Performance Impact Analysis of Gradle 8.7 in Android Projects•
 Build a Real-Time Zoom Clone with Jetpack Compose
 Build a Real-Time Zoom Clone with Jetpack Compose•
 A preview of Animating LazyList items in Jetpack Compose
 A preview of Animating LazyList items in Jetpack Compose•
 Drawing a Football Ground with Jetpack Compose
 Drawing a Football Ground with Jetpack Compose•
 Starting Lineups on Football Pitch with Jetpack Compose
 Starting Lineups on Football Pitch with Jetpack Compose•
 How to build a custom design system with Jetpack compose
 How to build a custom design system with Jetpack compose•
 Exploring Kotlin Coroutines Dispatchers: A Look at Dispatchers.Main.immediate
 Exploring Kotlin Coroutines Dispatchers: A Look at Dispatchers.Main.immediate•
 Important Coroutine Interview Questions for Experienced Android Developers
 Important Coroutine Interview Questions for Experienced Android Developers•
 Introduction to ML Kit Document Scanner for Android
 Introduction to ML Kit Document Scanner for Android•
 Optimizing Lazy List in Jetpack Compose: Best Practices
 Optimizing Lazy List in Jetpack Compose: Best Practices•
 Scooping Out Vanilla Ice Cream
 Scooping Out Vanilla Ice Cream•
 Time for Playtime — Android Developers Backstage
 Time for Playtime — Android Developers Backstage•
 How to Implement a Pull-to-Refresh LazyColumn with Material3 in Android
 How to Implement a Pull-to-Refresh LazyColumn with Material3 in Android•
 If You’re Making These 5 Use Case Mistakes, You Haven’t Understood Clean Architecture
 If You’re Making These 5 Use Case Mistakes, You Haven’t Understood Clean Architecture•
 Material You Review
 Material You Review•
 SimpMusic: музыкальный плеер на основе YouTube Music
 SimpMusic: музыкальный плеер на основе YouTube Music•
 Better Open With: диалог открытия файлов для Android
 Better Open With: диалог открытия файлов для Android•
 AboutLibraries: сведения о зависимостях и лицензиях
 AboutLibraries: сведения о зависимостях и лицензиях Кроссплатформа
 Кроссплатформа• Анализ производительности React Native приложений: как выявить проблемы и улучшить перформанс
• Flutter Dev Podcast #45: Собеседования на позицию Flutter-разработчика
•
 How to Use and Create Streams from Scratch in Dart and Flutter
 How to Use and Create Streams from Scratch in Dart and Flutter•
 Intro to Metaprogramming in Dart
 Intro to Metaprogramming in Dart•
 Optimizing Configuration time for Android apps that use React Native
 Optimizing Configuration time for Android apps that use React Native•
 Optimizing Flutter Performance: Techniques to Enhance Your App’s Speed and Efficiency
 Optimizing Flutter Performance: Techniques to Enhance Your App’s Speed and Efficiency•
 Flutter’s InheritedWidgets: Getting Started
 Flutter’s InheritedWidgets: Getting Started•
 Common Mistakes in Flutter and How to Fix Them
 Common Mistakes in Flutter and How to Fix Them•
 Display images with Custom Paint using Supabase Storage
 Display images with Custom Paint using Supabase Storage•
 Flutter Responsive UI Design
 Flutter Responsive UI Design Разработка
 Разработка• Продуктовый подход к pet-проекту или как я разработал музыкальное веб-приложение
• Адаптация мобильного приложения для пользователей скринридеров. Опыт Яндекс Лавки
• 6 лет из жизни инди-разработчика
• Инклюзивность и цифровая доступность в дизайне: почему это важно для всех
• Эволюция главного экрана: хаос, исследования и редизайн
• Сложная архитектура простых приложений
• Оценочные шкалы в UX-исследованиях
• Пишем рекомендательную систему музыки на Java
• Задача из Моего Собеседования в Amazon
• Ада Лавлейс и программирование
• Осознанный подход к метрикам
• Playtime Engineering хочет упростить создание музыки для детей
• 10 упражнений от боли в спине, которые помогут программистам
• Самые высокооплачиваемые вакансии марта в сфере разработки приложений
• Временное решение просуществовало в Windows уже 30 лет
• Как руководить командой Senior-инженеров
•
 Create Visual Stories Without Drawing
 Create Visual Stories Without Drawing•
 Industrial Product Design Trends for 2024
 Industrial Product Design Trends for 2024•
 How Uber increased developer productivity and what you can learn from that
 How Uber increased developer productivity and what you can learn from that•
 Design better alerts
 Design better alerts•
 10 Essential Exercises for Programmers to Prevent Back Pain
 10 Essential Exercises for Programmers to Prevent Back Pain•
 What I learned from the book Software Architecture: The Hard Parts
 What I learned from the book Software Architecture: The Hard Parts•
 10 Core Product Design Principles
 10 Core Product Design Principles•
 I’m A Developer Not A Compiler
 I’m A Developer Not A Compiler•
 10 Elegant and Handy User Interface Design Projects
 10 Elegant and Handy User Interface Design Projects•
 Consistent Data Encryption in Android, iOS, and Flutter Apps with AES
 Consistent Data Encryption in Android, iOS, and Flutter Apps with AES Аналитика, маркетинг и монетизация
 Аналитика, маркетинг и монетизация• LinkedIn тестирует ленту с короткими видео
• Spotify тестирует видеокурсы для обучения всему — от создания музыки до Excel
• Евросоюз расследует несоблюдение Apple закона о Цифровых рынках
• Gamification in Product Design (UI/UX)
• The AppsFlyer Performance Index: 2024 Country Edition
 AI, Устройства, IoT
 AI, Устройства, IoT• Умная квартира айтишника: хотел всё на Wi-Fi, но передумал
• Самый лучший в мире курс по Машинному обучению — Алгоритмы Машинного обучения с нуля
• Будка охраны или космический корабль
• Что делать, если твой заказчик — весы, или Как заговорить на одном языке с бытовой техникой
•
 AI Flutter Code Generator with Gemini API
 AI Flutter Code Generator with Gemini API? Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.
 
          