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