В этом выпуске зарубы с Apple и Ui-тесты для поиска утечек памяти, вторая жизнь Windows Phone и новая социальная сеть с ИИ, игровой рынок 2023, StoreKit 2, советы для прохождения кодинг-интервью и многое другое
Подписывайтесь на на наш Telegram-канал Mobile Insights, где еще больше материалов для мобильных разработчиков. А в IT Insights — много об интересном коде и технологиях.

iOS
• Осваиваем StoreKit 2 + ProductView и StoreView + SubscriptionStoreView
• Месячная заруба с Apple. Рефакторим бридж. Часть 2 + Часть 1
• Простая анимация для всплывающего окна
• Как мы делали новую iOS-камеру ВКонтакте и VK Клипов
• Показываем красивое с помощью видеоредактора в VK Клипах на iOS
•
Making your SwiftData models Codable
•
Introducing ObservableConverter
•
Scrollable lists using Protocol-Oriented Programming and UICollectionViewCompositionalLayout
•
SwiftData Background Tasks
•
Mastering SwiftUI’s zIndex: A Comprehensive Guide
•
Swift High Performance: Dictionary Keys
•
Park API — Server-Side Swift With Hummingbird
•
Transitioning from MVVM to MV: A Journey of Simplifying App Architecture
•
Jump ???? SwiftUI Coordinator with Router
•
A Beginner’s Guide to Clean Architecture in SwiftUI: Building Better Apps Step by Step
•
10 Lesser Known LLDB Commands used in iOS App development
•
Common Pitfalls Caused by Delayed State Updates in SwiftUI
•
iOS Deeplink Handling: The Asynchronous Way
•
Enabling drag reordering in SwiftUI lazy grids and stacks
•
Xcode 15: Automated accessibility audits
•
An Unusual Rail Adventure
•
Advanced text validation in UIKit with Combine
•
Optionals in Swift
•
Implementing Polling in SwiftUI
•
Mastering SwiftUI Custom Modifiers
•
Enabling drag reordering in SwiftUI lazy grids and stacks
•
Functions and Closures in Swift
•
SwiftUI Animated Tab Icons — Animated SF Symbols
•
Build Switcher: Local Build Caching for Xcode
•
How to Save and Manage Data with Core Data in Swift
•
Using @_exported attribute for Simplified Module Imports
•
Enhancements to ScrollView in iOS 17
•
Crush: работа с CoreData
•
RxSwift: реактивное расширение для Swift
•
GRDB: удобная работа с SQLite
Android
• Запускаем IDEA и CLion на Android
• Как повысить яркость экрана в Android-приложении без запроса разрешения
• Использование Compose для ТВ-версии приложения Иви: мощный фреймворк для создания эффективных Android-приложений
• Используем UI-тесты для поиска утечек
• История разработки приложения для складных смартфонов Samsung. Часть 1
• Библиотека Jetpack Compose для начинающего Android-разработчика
• Кодогенерация. KAPT. KSP. Manual DI
• Что такое Kotlin Symbol Processing (KSP)
• Android-разработчик: Middle за 1 год в Казахстане
•
Empowering Code with High-Order Functions
•
An update on Jetpack Compose Accompanist libraries
•
Set Activity Screen Brightness without Permission
•
A World Beyond Libraries: Cross-Library screenshot tests on Android
•
Building a widget using Jetpack Glance
•
Recreating UseCase: Embracing a Fluent and Fun Approach
•
Dark mode on android with Jetpack Compose using dataStore with Hilt
•
Kotlin’s Reactive Tools: A Deep Dive into RxKotlin and Flow
•
Seeing your composable in shades of grey
•
Become More Senior Android Developer with these 15 Android Studio Tips & Tricks
•
Why Build a Pattern Library in Jetpack Compose?
•
Dagger 2.48 with Dagger and Hilt KSP processors
•
Getting Better with Kotlin — Exploring Advanced Features and Effective Coding Strategies
•
@Preview Driven Development with Compose
•
Mutable State vs. State Management Libraries in Android
•
Top 100 Kotlin Interview Questions and Answers
•
At your Service(Android)
•
Full Guide to Manual Dependency Injection + Removing Dagger
•
How to create an advanced text validation with Combine
•
Using the Gradle Version Catalog in Android projects
•
RemoteCam: веб-камера для Android
•
Ivy Wallet: открытый трекер финансов
Кроссплатформа
• Вложенная навигация во Flutter: что такое декларативный роутер и зачем он нужен
• Полное руководство по использованию FVM (Flutter Version Management) – жонглируйте версиями Flutter sdk в своих проектах
• 4.0 Асинхронность. Isolates, потоки, процессы
•
Flutter Chopper Authentication + Retry on 401 Unauthorized
•
KMP: Work with existing project
•
Hydrated Bloc in Flutter: Simplifying State Management
•
Top 10 Flutter Apps You Must Make as a Beginner
•
Don’t pass TextStyle to Widgets
•
Compose Multiplatform 1.5.0 Release
•
Dart 3.1 & a retrospective on functional style programming in Dart 3
•
Recreating the Telegram Collapsable Header on iOS using Reanimated
•
Expected and Actual Mechanism in Kotlin Multiplatform Mobile
•
Rare cases When to use RN over Native
•
Dart Programming list collection tips & tricks
Разработка
• Не дадим Windows Phone умереть! Как я написал свои клиенты VK, YouTube для Nokia Lumia? Сам себе экосистема ч.2
• Как пройти кодинг интервью со мной
• Новый взгляд на аналитику ошибок в production, или работающая альтернатива Crashlytics
• Как мы разрабатывали приложение с сибирским характером для суровых дальнобойщиков (и победили Яндекс Карты)
• VR: как это работает
• Почему стоит вкладываться в опенсорс
• Мобильные виджеты
• 5 проектов выходного дня, которые значительно повысят ваши навыки кодинга
• Podlodka #334: стартап-акселераторы
• Главные языки программирования 2023
• Microsoft закрывает Visual Studio для Mac
• Треть программистов теряет свои профнавыки на текущем месте работы
• Где платят больше всего в Big Tech: исследование Blind
• Google открывает API о солнечных возможностях, качестве воздуха и уровне пыльцы
•
How Grab uses Graph Databases to Reduce Fraud
•
Ask HN: Where do I find good code to read?
•
8 Reasons Why WhatsApp Was Able to Support 50 Billion Messages a Day With Only 32 Engineers
•
(Life) Advice From The Creator of C++
•
The Unexpected Find That Freed 20GB of Unused Index Space
•
Measuring developer productivity? A response to McKinsey
•
Case Study: Roebuck. UI/UX Design and Illustrations for Educational Mobile App
•
Scrum: Failure By Design?
Аналитика, маркетинг и монетизация
• Маркетологи в мобайле: Дарья Пасюк («Додо Пицца»)
• Как правильно выстроить монетизацию в первую сессию пользователя
• BeFake: социальная сеть с ИИ, в которой не надо быть настоящим
• В AppMetrica появились A/B-эксперименты
• «Игровой рынок 2023»: отчет Data.ai и IDC
• Samsung выпустил свое ИИ-приложение с рецептами
• RuStore станет обязательным для всех
• $6 млн: Kiki — аренда жилья для «друзей»
• Монетал — Учет расходов: разбор приложения
• Доход Gmail вырос в 179 раз с 2021
• Деньги из воздуха. Как приложение зарабатывает миллион долларов ежемесячно на прогнозе ветра?
•
Don’t look up: Google’s meteor of incompetence will kill thousands of apps in four months
AI, Устройства, IoT
• CodeLama в вашей клавиатуре | Локальный Copilot для любого поля ввода
• Одноплатный ПК Cytron Reka:Bit: отличный старт для обучения робототехнике и электронике
• Принцип суперпозиции для Умного дома
• ИИ Duet стал доступен в Google Workspace
• Бесплатный курс «LangChain: чат с вашими данными»
• iPhone 14 Pro Max стал самым продаваемым телефоном в мире
← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.
Подписывайтесь на на наш Telegram-канал Mobile Insights, где еще больше материалов для мобильных разработчиков. А в IT Insights — много об интересном коде и технологиях.

Пройдите наш опрос про архитектурные шаблоны. Опрос займет несколько минут. Доступен здесь.
iOS• Осваиваем StoreKit 2 + ProductView и StoreView + SubscriptionStoreView
• Месячная заруба с Apple. Рефакторим бридж. Часть 2 + Часть 1
• Простая анимация для всплывающего окна
• Как мы делали новую iOS-камеру ВКонтакте и VK Клипов
• Показываем красивое с помощью видеоредактора в VK Клипах на iOS
•
Making your SwiftData models Codable•
Introducing ObservableConverter•
Scrollable lists using Protocol-Oriented Programming and UICollectionViewCompositionalLayout•
SwiftData Background Tasks•
Mastering SwiftUI’s zIndex: A Comprehensive Guide•
Swift High Performance: Dictionary Keys•
Park API — Server-Side Swift With Hummingbird•
Transitioning from MVVM to MV: A Journey of Simplifying App Architecture•
Jump ???? SwiftUI Coordinator with Router•
A Beginner’s Guide to Clean Architecture in SwiftUI: Building Better Apps Step by Step•
10 Lesser Known LLDB Commands used in iOS App development•
Common Pitfalls Caused by Delayed State Updates in SwiftUI•
iOS Deeplink Handling: The Asynchronous Way•
Enabling drag reordering in SwiftUI lazy grids and stacks•
Xcode 15: Automated accessibility audits•
An Unusual Rail Adventure•
Advanced text validation in UIKit with Combine•
Optionals in Swift•
Implementing Polling in SwiftUI•
Mastering SwiftUI Custom Modifiers•
Enabling drag reordering in SwiftUI lazy grids and stacks•
Functions and Closures in Swift•
SwiftUI Animated Tab Icons — Animated SF Symbols•
Build Switcher: Local Build Caching for Xcode•
How to Save and Manage Data with Core Data in Swift•
Using @_exported attribute for Simplified Module Imports•
Enhancements to ScrollView in iOS 17•
Crush: работа с CoreData•
RxSwift: реактивное расширение для Swift•
GRDB: удобная работа с SQLite
Android• Запускаем IDEA и CLion на Android
• Как повысить яркость экрана в Android-приложении без запроса разрешения
• Использование Compose для ТВ-версии приложения Иви: мощный фреймворк для создания эффективных Android-приложений
• Используем UI-тесты для поиска утечек
• История разработки приложения для складных смартфонов Samsung. Часть 1
• Библиотека Jetpack Compose для начинающего Android-разработчика
• Кодогенерация. KAPT. KSP. Manual DI
• Что такое Kotlin Symbol Processing (KSP)
• Android-разработчик: Middle за 1 год в Казахстане
•
Empowering Code with High-Order Functions•
An update on Jetpack Compose Accompanist libraries•
Set Activity Screen Brightness without Permission•
A World Beyond Libraries: Cross-Library screenshot tests on Android•
Building a widget using Jetpack Glance•
Recreating UseCase: Embracing a Fluent and Fun Approach•
Dark mode on android with Jetpack Compose using dataStore with Hilt•
Kotlin’s Reactive Tools: A Deep Dive into RxKotlin and Flow•
Seeing your composable in shades of grey•
Become More Senior Android Developer with these 15 Android Studio Tips & Tricks•
Why Build a Pattern Library in Jetpack Compose?•
Dagger 2.48 with Dagger and Hilt KSP processors•
Getting Better with Kotlin — Exploring Advanced Features and Effective Coding Strategies•
@Preview Driven Development with Compose•
Mutable State vs. State Management Libraries in Android•
Top 100 Kotlin Interview Questions and Answers•
At your Service(Android)•
Full Guide to Manual Dependency Injection + Removing Dagger•
How to create an advanced text validation with Combine•
Using the Gradle Version Catalog in Android projects•
RemoteCam: веб-камера для Android•
Ivy Wallet: открытый трекер финансов
Кроссплатформа• Вложенная навигация во Flutter: что такое декларативный роутер и зачем он нужен
• Полное руководство по использованию FVM (Flutter Version Management) – жонглируйте версиями Flutter sdk в своих проектах
• 4.0 Асинхронность. Isolates, потоки, процессы
•
Flutter Chopper Authentication + Retry on 401 Unauthorized•
KMP: Work with existing project•
Hydrated Bloc in Flutter: Simplifying State Management•
Top 10 Flutter Apps You Must Make as a Beginner•
Don’t pass TextStyle to Widgets•
Compose Multiplatform 1.5.0 Release•
Dart 3.1 & a retrospective on functional style programming in Dart 3•
Recreating the Telegram Collapsable Header on iOS using Reanimated•
Expected and Actual Mechanism in Kotlin Multiplatform Mobile•
Rare cases When to use RN over Native•
Dart Programming list collection tips & tricks
Разработка• Не дадим Windows Phone умереть! Как я написал свои клиенты VK, YouTube для Nokia Lumia? Сам себе экосистема ч.2
• Как пройти кодинг интервью со мной
• Новый взгляд на аналитику ошибок в production, или работающая альтернатива Crashlytics
• Как мы разрабатывали приложение с сибирским характером для суровых дальнобойщиков (и победили Яндекс Карты)
• VR: как это работает
• Почему стоит вкладываться в опенсорс
• Мобильные виджеты
• 5 проектов выходного дня, которые значительно повысят ваши навыки кодинга
• Podlodka #334: стартап-акселераторы
• Главные языки программирования 2023
• Microsoft закрывает Visual Studio для Mac
• Треть программистов теряет свои профнавыки на текущем месте работы
• Где платят больше всего в Big Tech: исследование Blind
• Google открывает API о солнечных возможностях, качестве воздуха и уровне пыльцы
•
How Grab uses Graph Databases to Reduce Fraud•
Ask HN: Where do I find good code to read?•
8 Reasons Why WhatsApp Was Able to Support 50 Billion Messages a Day With Only 32 Engineers•
(Life) Advice From The Creator of C++•
The Unexpected Find That Freed 20GB of Unused Index Space•
Measuring developer productivity? A response to McKinsey•
Case Study: Roebuck. UI/UX Design and Illustrations for Educational Mobile App•
Scrum: Failure By Design?
Аналитика, маркетинг и монетизация• Маркетологи в мобайле: Дарья Пасюк («Додо Пицца»)
• Как правильно выстроить монетизацию в первую сессию пользователя
• BeFake: социальная сеть с ИИ, в которой не надо быть настоящим
• В AppMetrica появились A/B-эксперименты
• «Игровой рынок 2023»: отчет Data.ai и IDC
• Samsung выпустил свое ИИ-приложение с рецептами
• RuStore станет обязательным для всех
• $6 млн: Kiki — аренда жилья для «друзей»
• Монетал — Учет расходов: разбор приложения
• Доход Gmail вырос в 179 раз с 2021
• Деньги из воздуха. Как приложение зарабатывает миллион долларов ежемесячно на прогнозе ветра?
•
Don’t look up: Google’s meteor of incompetence will kill thousands of apps in four months
AI, Устройства, IoT• CodeLama в вашей клавиатуре | Локальный Copilot для любого поля ввода
• Одноплатный ПК Cytron Reka:Bit: отличный старт для обучения робототехнике и электронике
• Принцип суперпозиции для Умного дома
• ИИ Duet стал доступен в Google Workspace
• Бесплатный курс «LangChain: чат с вашими данными»
• iPhone 14 Pro Max стал самым продаваемым телефоном в мире
← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.