На этой неделе мы обсуждаем новинки WWDC 2023, создание своих библиотек для Android и анимированных кнопок, выбор Qt и фичи инклюзивного дизайна, AI-плагины для разработки и многое другое.
В нашем Telegram-канале Mobile Insights, еще больше материалов для мобильных разработчиков, а в IT Insights — об интересном коде и технологиях. Подключайтесь!
![](https://habrastorage.org/r/w780q1/webt/nm/1s/c5/nm1sc5zysiczzix6venvko6mxo0.jpeg)
iOS
• WWDC 2023. Что нового для разработчика
• Конференция Apple WWDC 2023: большой обзор обновлений и гаджетов
• Горячие новинки WWDC 2023
• Работаем с SwiftData в SwiftUI
• Apple добавляет виджетам iOS и iPadOS 17 интерактивности
• Новый TipKit от Apple поможет разработчикам научить людей пользоваться приложениями
• Apple анонсирует visionOS + Первый взгляд на разработку для visionOS
• Победители Apple Design Award 2023
• Стала доступна бета Xcode 15
• Главное выступление WWDC 2023
• Apple анонсировала гарнитуру дополненной реальности Vision Pro
• Регулярные выражения в Swift
• Apple вводит новые правила приватности для разработчиков
• Apple открыла бета-версию iOS 17 и других ОС для всех зарегистрированных разработчиков
•
Все видео WWDC 2023
•
Using Upcoming Feature Flags
•
Network Path Monitoring
•
What’s new in Swift 5.9?
•
Building a robust clean architecture/VIPER iOS app
•
Use UICollectionViewFlowLayout and Let It Rotate!
•
SwiftUI Testing: a Pragmatic Approach
•
Enhancing Security in iOS Applications: Best Practices and Code Examples
•
Beautify Code Without Optionals in Swift
•
SwiftData Overview
•
5 Simple Steps to Find Slow Code Using Xcode Time Profiler
•
ContentUnavailableView: Handling Empty States in SwiftUI
•
iOS 17 Released — 10 Amazing Features You NEED To Know
•
Creating Complex SwiftUI Shapes Using Design Tools
•
Xcode 15 — What’s New
•
What is new in SwiftUI after WWDC 23
•
SwiftData in SwiftUI
•
Simplifying Data Persistence with SwiftData: Building an Intuitive Task Manager App
•
Apple Design Resources – iOS 17 and iPadOS 17
•
Building an AI Bot with Speech-to-Text and Text-to-Speech Functionality in iOS
•
iOS — How to Setup Logging Correctly with CocoaLumberjack
•
Mirador: POI в дополненной реальности RealityKit
•
LeetCode by Swift: решение задач LeetCode
Android
• Своя библиотека под Android за один вечер
• Практическое руководство по Jetpack Compose: создаем анимированную кнопку-счетчик
• Как создать модули со всей обвязкой под проект, аки Танос пальцем щёлкнув?
• Пару слов о полях и свойствах в Kotlin
• «Фокус-покус», или еще одна попытка побороть Leanback
• Как заходить в Android Automation (часть 1 — Kotlin для тестировщика)
• Собеседование на Junior Android Dev у Анны Жарковой
• Как устроен Android WebView
• Android 14 достиг Platform Stability
• Обессахаривание Android по-простому
•
Simplify auth using Credential Manager API
•
Modern Android Development with Koin
•
Understanding Resource Selection in AndroidApps with Multiple Modules
•
Crash Course on the Kotlin Compiler
•
Jetpack Compose Performance, Performance and a bit more Performance
•
Injection Points
•
Custom TabRow Indicator in Jetpack Compose
•
10 Useful Kotlin Extension Functions for Android Developers #2
•
Create a background service that runs forever in Android
•
WhatsApp’s Circular Reveal with Jetpack Compose
•
Practical Guide to Building Powerful and Easy-to-Maintain Android Apps with Clean Architecture, Modularization and Unit Testing
•
The Art of Small Animations in Android with Jetpack Compose
•
Coroutines Playground: Concurrency + Timeout + Exception Handling
•
Network Requests in Android using Retrofit — Beginners Guide
•
Designing Jetpack Compose architecture for a gradual transition from fragments on Android
•
Create a photo grid with multiselect behavior using Jetpack Compose
•
Building Kotlin Coroutine Framework from Scratch
•
Discover the Magic Working Behind our New Mobile App Rebranding
•
Jetpack Compose — Deep-dive into derivedStateOf and comparison with remember(key)
•
Alkaa: управление задачами и лучшие практики Android-разработки
•
ADB Enhanced: CLI обертка для adb
•
Material Files: файловый менеджер с Material Design
Кроссплатформа
• Выбираем Qt
• Что нового во Flutter 3.10, ч.2
•
Flutter: Why you will regret using GetX
•
Flutter Exception Handling with try/catch and the Result type
•
Flutter databases in 2023
•
Class modifiers in Dart 3.0: abstract, interface, base, and sealed
•
Navigation in React Native Apps
•
Efficient React Native UI Testing with Maestro and Ignite
•
Doing More with Expo: Using Custom Native Code
•
Mastering Resizable & Draggable Boxes with Flutter Box Transform: Building Figma’s Crop UI
•
How to run a background job when your Flutter app is terminated
Разработка
• Патистейшен — или как всадить 30 млн рублей, а потом передумать
• Как катить фичи без релизов. Часть 1: про виджеты
• Шпаргалка по техникам тест дизайна
• Собеседование мобильных разработчиков в Яндекс в рамках Weekend Offer
• Как нанимать и растить тимлидов
• Нейросети заменят не всех — зачем программисту математика
• Podlodka #322: 3D-печать
• Вузы с самыми высокооплачиваемыми выпускниками в сфере ИТ в 2023 году
•
An educational side project
•
My Approach to Building Large Technical Projects
•
Be an Engineer, not a Frameworker
•
Native Frame Rate Playback
•
Stop Blaming Your Users for Making Mistakes
•
How Clean Architecture enables McDonald’s to optimize market-specific needs and user experience
Аналитика, маркетинг и монетизация
• Внедрить или не внедрить? Отвечает команда GrowthHacking
• 4 фичи для инклюзивного дизайна на примере приложения Duolingo
• Создатели Replika запустили ИИ ботов для любовных отношений
• RuStore открыл монетизацию для физических лиц
• Coinbase продолжает падение
AI, Устройства, IoT
• Как превратить умную колонку Google в «жучок» и получить за это $100 тысяч
• Хороший, плохой, злой и… свободный? Сравниваем глуповатые, но усердные AI-плагины для разработки
• Интеграция с инфраструктурой NB-IoT МТС. Теория и практика. Часть 3
• Wirenboard — переход со stretch на bullseye
• Выжимаем максимум из ChatGPT для программистов
• «Введение в искусственный интеллект с Python» — бесплатный курс Гарварда
• ИИ AlphaDev придумал более быстрый алгоритм сортировки
• GPT-4 подключили к Minecraft
• Дополненной реальности нужен свой «момент iPhone»
•
SuperAGI: A Dev-First Open Source Autonomous AI Agent Framework
← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.
В нашем Telegram-канале Mobile Insights, еще больше материалов для мобильных разработчиков, а в IT Insights — об интересном коде и технологиях. Подключайтесь!
![](https://habrastorage.org/webt/nm/1s/c5/nm1sc5zysiczzix6venvko6mxo0.jpeg)
![](https://habrastorage.org/getpro/habr/post_images/f19/30a/c49/f1930ac4945596eb9707bc7a01bc5bdc.png)
• WWDC 2023. Что нового для разработчика
• Конференция Apple WWDC 2023: большой обзор обновлений и гаджетов
• Горячие новинки WWDC 2023
• Работаем с SwiftData в SwiftUI
• Apple добавляет виджетам iOS и iPadOS 17 интерактивности
• Новый TipKit от Apple поможет разработчикам научить людей пользоваться приложениями
• Apple анонсирует visionOS + Первый взгляд на разработку для visionOS
• Победители Apple Design Award 2023
• Стала доступна бета Xcode 15
• Главное выступление WWDC 2023
• Apple анонсировала гарнитуру дополненной реальности Vision Pro
• Регулярные выражения в Swift
• Apple вводит новые правила приватности для разработчиков
• Apple открыла бета-версию iOS 17 и других ОС для всех зарегистрированных разработчиков
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/967/16b/cb9/96716bcb926741e79bb1c284a88083ca.png)
•
![](https://habrastorage.org/files/967/16b/cb9/96716bcb926741e79bb1c284a88083ca.png)
![](https://habrastorage.org/getpro/habr/post_images/e1a/3cf/2a8/e1a3cf2a8b65a0da69bbdd5c0ad040fe.png)
• Своя библиотека под Android за один вечер
• Практическое руководство по Jetpack Compose: создаем анимированную кнопку-счетчик
• Как создать модули со всей обвязкой под проект, аки Танос пальцем щёлкнув?
• Пару слов о полях и свойствах в Kotlin
• «Фокус-покус», или еще одна попытка побороть Leanback
• Как заходить в Android Automation (часть 1 — Kotlin для тестировщика)
• Собеседование на Junior Android Dev у Анны Жарковой
• Как устроен Android WebView
• Android 14 достиг Platform Stability
• Обессахаривание Android по-простому
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/967/16b/cb9/96716bcb926741e79bb1c284a88083ca.png)
•
![](https://habrastorage.org/files/967/16b/cb9/96716bcb926741e79bb1c284a88083ca.png)
•
![](https://habrastorage.org/files/967/16b/cb9/96716bcb926741e79bb1c284a88083ca.png)
![](https://habrastorage.org/webt/ma/lx/8h/malx8hbgozt6lee8rmxmg96_s6a.png)
• Выбираем Qt
• Что нового во Flutter 3.10, ч.2
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
![](https://habrastorage.org/getpro/habr/post_images/708/1c6/34e/7081c634ec176ab6b953d9d19e82a09a.png)
• Патистейшен — или как всадить 30 млн рублей, а потом передумать
• Как катить фичи без релизов. Часть 1: про виджеты
• Шпаргалка по техникам тест дизайна
• Собеседование мобильных разработчиков в Яндекс в рамках Weekend Offer
• Как нанимать и растить тимлидов
• Нейросети заменят не всех — зачем программисту математика
• Podlodka #322: 3D-печать
• Вузы с самыми высокооплачиваемыми выпускниками в сфере ИТ в 2023 году
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
![](https://habrastorage.org/getpro/habr/post_images/509/dc9/bde/509dc9bde69347ecbe0c21ff2973d7e7.jpg)
• Внедрить или не внедрить? Отвечает команда GrowthHacking
• 4 фичи для инклюзивного дизайна на примере приложения Duolingo
• Создатели Replika запустили ИИ ботов для любовных отношений
• RuStore открыл монетизацию для физических лиц
• Coinbase продолжает падение
![](https://habrastorage.org/getpro/habr/post_images/853/812/9f5/8538129f5e7b404a720121cb9c3814db.jpg)
• Как превратить умную колонку Google в «жучок» и получить за это $100 тысяч
• Хороший, плохой, злой и… свободный? Сравниваем глуповатые, но усердные AI-плагины для разработки
• Интеграция с инфраструктурой NB-IoT МТС. Теория и практика. Часть 3
• Wirenboard — переход со stretch на bullseye
• Выжимаем максимум из ChatGPT для программистов
• «Введение в искусственный интеллект с Python» — бесплатный курс Гарварда
• ИИ AlphaDev придумал более быстрый алгоритм сортировки
• GPT-4 подключили к Minecraft
• Дополненной реальности нужен свой «момент iPhone»
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.