В новом дайджесте все еще обсуждаем WWDC, рассматриваем историю ограничений фоновой работы в Android и ускорение приложений, специфику мобильной разработки и самые популярные языки программирования, push-уведомления, стартап из одного за 50 млн и многое другое!

В нашем Telegram-канале Mobile Insights, еще больше материалов для мобильных разработчиков, а в IT Insights — об интересном коде и технологиях. Подключайтесь!



iOS

• Хватит тратить время на модульное тестирование: как Tokopedia добилась ускорения тестов в 8 раз
• Новенькое с WWDC23: Отчёты о тестировании и аудит доступности
• Аутентификация Firebase с помощью Google Sign-In в iOS
Введение в UICollectionViewCompositionalLayout
• Самое большое преимущество Vision Pro — это не аппаратное обеспечение, а разработчики
•  Spatial computing!
•  How to use Refreshable modifier in SwiftUI
•  Xcode 15 — What’s New
•  Transition Animations w/ ScrollViews in SwiftUI
•  All new frameworks presented at WWDC23
•  WWDC 2023: What’s New In Swift
•  WWDC 2023: What’s New In UIKit
•  WWDC 2023: What’s New In SwiftUI
•  WWDC 2023:Discover Observation in SwiftUI
•  Swift Result Builders: Getting Started
•  New SwiftUI Support for MapKit in Xcode 15
•  Short Introduction to Multithreading and Thread-Safe Operations in Swift
•  EventKitUI Framework in iOS 17
•  Swift Macros: Extend Swift with New Kinds of Expressions
•  Apple Has Done It Again. And no, I’m NOT talking about Vision Pro.
•  How to preview UIView in Xcode Previews
•  Unlocking the Power of the Decorator Pattern
•  Swift Actors — Common Problems and Tips
•  SwiftUI: How to Implement Scheduled View Updates
•  SwiftSyntax: парсинг Swift кода
•  AudioKit: обработка аудио на Swift
•  Backyard Birds: игра с новинками WWDC

Android

• История ограничений фоновой работы в Android для разработчиков
• Подписываем Android-приложение внутренним ключом Google Play для публикации в сторонних магазинах •
• Где и как можно ускорить приложение на Android
• Compose-recompose: почему происходят рекомпозиции и как уменьшить их количество
• Круговое раскрытие как в WhatsApp с помощью Jetpack Compose
• Как тестировать Android-приложения без использования эмуляторов? Знакомство с фермами мобильных устройств
• Кто и в каких задачах быстрее? Coroutines, RxJava, Executor?
• Permissions в Android: как не допустить ошибок при разработке
• Android-разработка для новичков: 20+ полезных ресурсов
• Генерируем файлы с кодом по шаблону в Android Studio LiveTemplates
•  Now in Android: 85 — Platform and Quality at I/O, Android 14 Beta 3, Jetpack releases
•  Top 3 things to know in Multi-device for Android at Google I/O ’23
•  Tasks, Back Stack & Launch Modes — Android Basics 2023
•  Activities & the Activity Lifecycle — Android Basics 2023
•  Wear OS home workouts with Health Services
•  Use Android Knowledge to build side hustles
•  Create a photo grid with multiselect behavior using Jetpack Compose
•  Testing Android Flows in ViewModel with Turbine
•  Gradle Deep Dive — Demystifying the Groovy Script
•  Kotlin Coroutines Tutorial for Android: Getting Started
•  Super-charge your Android Developer Workflow with Chat-GPT
•  How to Avoid Multiple onClick Events on Jetpack Compose Buttons
•  Jetpack Compose Tutorial: Replicating the Water Level Widget
•  Jetpack Compose List Sticky Header
•  Dynamic Kotlin with Zipline
•  Paging With Clean Architecture In Jetpack Compose
•  How to create Expandable List in Jetpack Compose
•  Card Game Animation: анимация карт на Jetpack Compose
•  Platform Samples: примеры платформенных API Android

Кроссплатформа

• Почему KMM — не кроссплатформа?
• Настройка Flutter/Dart на Linux
•  Write unit tests and UI tests in your Kotlin Multiplatform app
•  React Native ECharts, Victory Native, or React Native Chart Kit
•  Build A Realtime Photo Sharing App with Supabase & Riverpod
•  From Android to Multiplatform: Real 100% Jetpack Compose App
•  Flutter Custom Theme with ThemeExtension + Templates

Разработка

• Специфика и эффективное управление разработкой мобильных приложений
• Видео Techdoc Meetup
• Canva выпускает SDK и новые API для своей платформы
• 4 из 5 работодателей в IT и телекоме повышали зарплаты в течение последнего года
• Результаты опроса разработчиков Stack Overflow 2023
•  Designing the latest generation of Uber Navigation: maps built for ridesharing
•  10 scariest UI /UX design mistakes
•  The Surprising Power of Documentation
•  Self-healing code is the future of software development
•  To Build A Top Performing Team, Ask For 85% Effort
•  Live Comment System Design
•  Technical Debt Has Taken Over The Economy
•  UI & UX micro tips: best of the best
•  Case Study: Kaiten. Brand Identity and Product Design for Food Marketplace
•  The Stupid Programmer Manifesto
•  Grokking the Coding Interview: Mastering the 20 Coding Patterns

Аналитика, маркетинг и монетизация

• Стартап Wargraphs, состоящий из одного человека, продан за $54 млн
• Читать push нельзя игнорировать. Или как писать уведомления, которые хотя бы не будут бесить
• Data driven’ность — как командам аналитики фокусироваться на важных вещах
• $4 млн: Pollen — профессиональная сеть для фрилансеров
• В AppMetrica стал доступен инструмент быстрого экспорта данных Data Stream API
• Новое приложение Rex позволяет делиться любимыми местами с друзьями
• Самые скачиваемые приложения в мае 2023
• Как Duolingo использовал психологию, чтобы сделать обучение увлекательным

AI, Устройства, IoT

• Первые агенты для самообучения сильного ИИ
• Управление, интерфейсы и доступность в Apple Vision Pro
• $5 млн в посевном раунде: Sol Reader — VR-очки для чтения книг

Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.