В новом выпуске никакое место в конкурсе Telegram и незнание стандартов, большой переезд и актуальное время, приложения на Go, собственный SDK, простое предсказание LTV и многое другое.
В нашем Telegram-канале Mobile Insights, еще больше материалов для разработчиков — подключайтесь!

 iOS
iOS
• Как я участвовал в конкурсе Telegram на создание медиаредактора и занял никакое место (но получил бесценный опыт?)
• Анимация переходов для содержимого в SwiftUI
• Как сделать удобное взаимодействие с Kotlin из Swift: обзор проблем и решений
• Сертификаты Apple. Понимание. Что это и зачем вообще нужны?
• Разбираем tableHeaderView и viewForHeaderInSection на простом приложении
• Незнание стандартов не освобождает от ответственности: Юникод, Swift, Строки
• Native Dependency Injection in Swift
Native Dependency Injection in Swift
• Stop spending more time resolving merge conflicts in .pbxproj
Stop spending more time resolving merge conflicts in .pbxproj
• How to build universal iOS frameworks for distribution
How to build universal iOS frameworks for distribution
• Call multile API calls with Combine and Stateflow
Call multile API calls with Combine and Stateflow
• JetBrains’ AppCode IDE vs. Xcode
JetBrains’ AppCode IDE vs. Xcode
• How Does Swift Concurrency Prevents Thread Explosions?
How Does Swift Concurrency Prevents Thread Explosions?
• Running Code Only Once in SwiftUI
Running Code Only Once in SwiftUI
• Swift Regex Deep Dive
Swift Regex Deep Dive
• VideoPlayer in SwiftUI (iOS 14 +)
VideoPlayer in SwiftUI (iOS 14 +)
• How to Deal With iOS Local Storage and iCloud, to Have Synchronized Data
How to Deal With iOS Local Storage and iCloud, to Have Synchronized Data
• Simple MVVM to Improve coding
Simple MVVM to Improve coding
• Behavioral and General Interview Questions for iOS Developer 2022
Behavioral and General Interview Questions for iOS Developer 2022
• Swift 5.8 Is For Early Adopters
Swift 5.8 Is For Early Adopters
• Drawing App in SwiftUI 3 using Canvas
Drawing App in SwiftUI 3 using Canvas
• The Complete Guide to iOS 16 Passkeys – App and Backend Implementation
The Complete Guide to iOS 16 Passkeys – App and Backend Implementation
• Use a Base Class or a Protocol In Swift?
Use a Base Class or a Protocol In Swift?
• Build an iOS Networking App With Automated JWT Authorization
Build an iOS Networking App With Automated JWT Authorization
• API client in Swift using Generics, Codable
API client in Swift using Generics, Codable
• 31 Days Later and I Finally See the Light with SwiftUI
31 Days Later and I Finally See the Light with SwiftUI
• Top iOS interview questions and answers 2022
Top iOS interview questions and answers 2022
• Language Detection and Text to Speech in SwiftUI Apps
Language Detection and Text to Speech in SwiftUI Apps
• Why is Rosetta 2 fast?
Why is Rosetta 2 fast?
• Introduction to SwiftUI Modularisation with SPM
Introduction to SwiftUI Modularisation with SPM
• Implement Coordinator Design Pattern Using Combine
Implement Coordinator Design Pattern Using Combine
• A macOS Development Playbook
A macOS Development Playbook
• Understanding Swift Compiler
Understanding Swift Compiler
• How to create an iOS app that takes secret photos while the iPhone screen seems to be turned off
How to create an iOS app that takes secret photos while the iPhone screen seems to be turned off
• Pin: простой AutoLayout
Pin: простой AutoLayout
• Iron: трекер тренировок на SwiftUI
Iron: трекер тренировок на SwiftUI
 Android
Android
• История большого переезда одного Android-приложения
• Kotlin Extensions для Android проекта
• Android. Starting Kivy App and Service on bootup
• Туда и обратно: как мы пытались отследить актуальное время в Android
• Deep Dive Into Deep Link. Часть 4. Проблемы: ссылки без схемы, второй хост, перехваты всего
• Form Factors: Android Dev Summit ’22
• Google расширяет действие стороннего биллинга в Play
• 7 Android Lifecycle Interview Questions That Some Got Wrong
7 Android Lifecycle Interview Questions That Some Got Wrong
• What’s new in Modifiers — Notes from ADS’22
What’s new in Modifiers — Notes from ADS’22
• Kotlin JSON Benchmark on Android (2022): Moshi vs Kotlin Serialization
Kotlin JSON Benchmark on Android (2022): Moshi vs Kotlin Serialization
• Retrofit — Effective error handling with Kotlin Coroutine and Result API
Retrofit — Effective error handling with Kotlin Coroutine and Result API
• Graphics Using Jetpack Compose
Graphics Using Jetpack Compose
• Marquee with Jetpack Compose
Marquee with Jetpack Compose
• Exploring Lazy Staggered Grids in Jetpack Compose
Exploring Lazy Staggered Grids in Jetpack Compose
• Effectively using Android Lint in existing projects
Effectively using Android Lint in existing projects
• Implement Integration Tests in Jetpack Compose Android Apps
Implement Integration Tests in Jetpack Compose Android Apps
• Where does TransactionTooLargeException come from if I didn’t do anything wrong?
Where does TransactionTooLargeException come from if I didn’t do anything wrong?
• Mastering Android Dialogs: Don’t follow official Google Guides
Mastering Android Dialogs: Don’t follow official Google Guides
• Allowing other apps to start your app activity using Intent and Intent Filters
Allowing other apps to start your app activity using Intent and Intent Filters
• Quickly scroll to the top of a list
Quickly scroll to the top of a list
• 7 Useful Android Jetpack Compose Libraries You Should Use in Your Next Project
7 Useful Android Jetpack Compose Libraries You Should Use in Your Next Project
• IodéOS Is Open Source
IodéOS Is Open Source
• Show BottomBar conditionally in Compose
Show BottomBar conditionally in Compose
• Easy SharedPreferences with Delegated Properties in Kotlin
Easy SharedPreferences with Delegated Properties in Kotlin
• Simplify Form Validation using Kotlin Flow on Android
Simplify Form Validation using Kotlin Flow on Android
• Kotlin vs. Java: The Clean Code Edition
Kotlin vs. Java: The Clean Code Edition
• Extracting Colors from an Image Using the Palette API Android
Extracting Colors from an Image Using the Palette API Android
• Exploring text on Canvas using drawText API in Jetpack Compose
Exploring text on Canvas using drawText API in Jetpack Compose
• Compose Navigation Reimagined: навигация для Compose
Compose Navigation Reimagined: навигация для Compose
 Кроссплатформа
Кроссплатформа
• Разработка мобильных приложений на Go
• Launch your app with Flutter Native Splash Screen
Launch your app with Flutter Native Splash Screen
• Enhance your app with Firebase Dynamic Link + Riverpod + GoRouter
Enhance your app with Firebase Dynamic Link + Riverpod + GoRouter
• Using Enums like a Pro in Flutter
Using Enums like a Pro in Flutter
• Top 10 Flutter Packages That Speed up Your App Development
Top 10 Flutter Packages That Speed up Your App Development
• 5 Tools I Used To Build a Component Library
5 Tools I Used To Build a Component Library
• Email Verification with Flutter Firebase
Email Verification with Flutter Firebase
• Our journey to Kotlin Multiplatform
Our journey to Kotlin Multiplatform
• Compose Multiplatform: Compose для десктопов и веба
Compose Multiplatform: Compose для десктопов и веба
 Разработка
Разработка
• Как вести дизайн документацию, чтобы твоя команда понимала, что она делает
• Чек-лист по созданию собственного SDK
• Как не разбиться на Soft Launch: разбираем самые частые ошибки
• Continuous Delivery бессмысленен?
• Telegram Bot на службе у автоматизации тестирования. Или как, попивая чай с плюшками, запускать автотесты с телефона
• Декларативный UI: Flutter vs SwiftUI vs Jetpack Compose
• Что учесть в разработке супераппа. Рассказываем на примере приложения «Мой Beeline»
• Tester. Или почему важно, изменить свою роль в команде
• Как подружить разработчиков и тестировщиков с помощью кастомной TMS: опыт Авито
• Quality Gates: I need your clothes, boots, and motorcycle
• Podlodka #293: как продавать свои идеи
• Как предсказать LTV клиента с помощью машинного обучения и Python
• Что я понял за 18 месяцев работы в качестве Product Owner-а
• Яндекс сделал цифровые учебники по программированию
• GitHub представил голосового помощника для Copilot
• 4 Habits That Made Me a Better Developer
4 Habits That Made Me a Better Developer
• How to become a super-focused software developer
How to become a super-focused software developer
• How do One-Time passwords work?
How do One-Time passwords work?
• Learn Google’s Carbon Programming Language — A Tutorial
Learn Google’s Carbon Programming Language — A Tutorial
• Why OOP Is Bad
Why OOP Is Bad
• Redesigning the player pages for the OneFootball app: a UX case study
Redesigning the player pages for the OneFootball app: a UX case study
• Mastodon: децентрализованная социальная сеть
Mastodon: децентрализованная социальная сеть
 Аналитика, маркетинг и монетизация
Аналитика, маркетинг и монетизация
• Установки Twitter выросли на 21%, а доходы на 66%
• Выручка более $10 млн в месяц: как гиперказуальные музыкальные игры обходят непомерно высокие авторские гонорары
• Анализ 2.9 миллиона приложений в Google Play
• YouTube лидирует по доходам в App Store
• Supplementing the test checklist when updating the icon and splash screen in mobile apps
Supplementing the test checklist when updating the icon and splash screen in mobile apps
 AI, Устройства, IoT
AI, Устройства, IoT
• Lavritech V7.1 Lite: программирование Wiren Board блоков на DIN-рейку
• Прокачиваем насос с помощью ESPHome и реле от Sonoff
• Computer Vision Image Analysis 4.0 улучшает обработку изображений
• Google и Renault работают над «программно-определяемым транспортным средством»
• В OpenAI запустили DALL-E API
• 5 Best Books to Learn Machine Learning For Data Scientists
5 Best Books to Learn Machine Learning For Data Scientists
← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.
В нашем Telegram-канале Mobile Insights, еще больше материалов для разработчиков — подключайтесь!

 iOS
iOS• Как я участвовал в конкурсе Telegram на создание медиаредактора и занял никакое место (но получил бесценный опыт?)
• Анимация переходов для содержимого в SwiftUI
• Как сделать удобное взаимодействие с Kotlin из Swift: обзор проблем и решений
• Сертификаты Apple. Понимание. Что это и зачем вообще нужны?
• Разбираем tableHeaderView и viewForHeaderInSection на простом приложении
• Незнание стандартов не освобождает от ответственности: Юникод, Swift, Строки
•
 Native Dependency Injection in Swift
Native Dependency Injection in Swift•
 Stop spending more time resolving merge conflicts in .pbxproj
Stop spending more time resolving merge conflicts in .pbxproj•
 How to build universal iOS frameworks for distribution
How to build universal iOS frameworks for distribution•
 Call multile API calls with Combine and Stateflow
Call multile API calls with Combine and Stateflow•
 JetBrains’ AppCode IDE vs. Xcode
JetBrains’ AppCode IDE vs. Xcode•
 How Does Swift Concurrency Prevents Thread Explosions?
How Does Swift Concurrency Prevents Thread Explosions?•
 Running Code Only Once in SwiftUI
Running Code Only Once in SwiftUI•
 Swift Regex Deep Dive
Swift Regex Deep Dive•
 VideoPlayer in SwiftUI (iOS 14 +)
VideoPlayer in SwiftUI (iOS 14 +)•
 How to Deal With iOS Local Storage and iCloud, to Have Synchronized Data
How to Deal With iOS Local Storage and iCloud, to Have Synchronized Data•
 Simple MVVM to Improve coding
Simple MVVM to Improve coding•
 Behavioral and General Interview Questions for iOS Developer 2022
Behavioral and General Interview Questions for iOS Developer 2022•
 Swift 5.8 Is For Early Adopters
Swift 5.8 Is For Early Adopters•
 Drawing App in SwiftUI 3 using Canvas
Drawing App in SwiftUI 3 using Canvas•
 The Complete Guide to iOS 16 Passkeys – App and Backend Implementation
The Complete Guide to iOS 16 Passkeys – App and Backend Implementation•
 Use a Base Class or a Protocol In Swift?
Use a Base Class or a Protocol In Swift?•
 Build an iOS Networking App With Automated JWT Authorization
Build an iOS Networking App With Automated JWT Authorization•
 API client in Swift using Generics, Codable
API client in Swift using Generics, Codable•
 31 Days Later and I Finally See the Light with SwiftUI
31 Days Later and I Finally See the Light with SwiftUI•
 Top iOS interview questions and answers 2022
Top iOS interview questions and answers 2022•
 Language Detection and Text to Speech in SwiftUI Apps
Language Detection and Text to Speech in SwiftUI Apps•
 Why is Rosetta 2 fast?
Why is Rosetta 2 fast?•
 Introduction to SwiftUI Modularisation with SPM
Introduction to SwiftUI Modularisation with SPM•
 Implement Coordinator Design Pattern Using Combine
Implement Coordinator Design Pattern Using Combine•
 A macOS Development Playbook
A macOS Development Playbook•
 Understanding Swift Compiler
Understanding Swift Compiler•
 How to create an iOS app that takes secret photos while the iPhone screen seems to be turned off
How to create an iOS app that takes secret photos while the iPhone screen seems to be turned off•
 Pin: простой AutoLayout
Pin: простой AutoLayout•
 Iron: трекер тренировок на SwiftUI
Iron: трекер тренировок на SwiftUI Android
Android• История большого переезда одного Android-приложения
• Kotlin Extensions для Android проекта
• Android. Starting Kivy App and Service on bootup
• Туда и обратно: как мы пытались отследить актуальное время в Android
• Deep Dive Into Deep Link. Часть 4. Проблемы: ссылки без схемы, второй хост, перехваты всего
• Form Factors: Android Dev Summit ’22
• Google расширяет действие стороннего биллинга в Play
•
 7 Android Lifecycle Interview Questions That Some Got Wrong
7 Android Lifecycle Interview Questions That Some Got Wrong•
 What’s new in Modifiers — Notes from ADS’22
What’s new in Modifiers — Notes from ADS’22•
 Kotlin JSON Benchmark on Android (2022): Moshi vs Kotlin Serialization
Kotlin JSON Benchmark on Android (2022): Moshi vs Kotlin Serialization•
 Retrofit — Effective error handling with Kotlin Coroutine and Result API
Retrofit — Effective error handling with Kotlin Coroutine and Result API•
 Graphics Using Jetpack Compose
Graphics Using Jetpack Compose•
 Marquee with Jetpack Compose
Marquee with Jetpack Compose•
 Exploring Lazy Staggered Grids in Jetpack Compose
Exploring Lazy Staggered Grids in Jetpack Compose•
 Effectively using Android Lint in existing projects
Effectively using Android Lint in existing projects•
 Implement Integration Tests in Jetpack Compose Android Apps
Implement Integration Tests in Jetpack Compose Android Apps•
 Where does TransactionTooLargeException come from if I didn’t do anything wrong?
Where does TransactionTooLargeException come from if I didn’t do anything wrong?•
 Mastering Android Dialogs: Don’t follow official Google Guides
Mastering Android Dialogs: Don’t follow official Google Guides•
 Allowing other apps to start your app activity using Intent and Intent Filters
Allowing other apps to start your app activity using Intent and Intent Filters•
 Quickly scroll to the top of a list
Quickly scroll to the top of a list•
 7 Useful Android Jetpack Compose Libraries You Should Use in Your Next Project
7 Useful Android Jetpack Compose Libraries You Should Use in Your Next Project•
 IodéOS Is Open Source
IodéOS Is Open Source•
 Show BottomBar conditionally in Compose
Show BottomBar conditionally in Compose•
 Easy SharedPreferences with Delegated Properties in Kotlin
Easy SharedPreferences with Delegated Properties in Kotlin•
 Simplify Form Validation using Kotlin Flow on Android
Simplify Form Validation using Kotlin Flow on Android•
 Kotlin vs. Java: The Clean Code Edition
Kotlin vs. Java: The Clean Code Edition•
 Extracting Colors from an Image Using the Palette API Android
Extracting Colors from an Image Using the Palette API Android•
 Exploring text on Canvas using drawText API in Jetpack Compose
Exploring text on Canvas using drawText API in Jetpack Compose•
 Compose Navigation Reimagined: навигация для Compose
Compose Navigation Reimagined: навигация для Compose Кроссплатформа
Кроссплатформа• Разработка мобильных приложений на Go
•
 Launch your app with Flutter Native Splash Screen
Launch your app with Flutter Native Splash Screen•
 Enhance your app with Firebase Dynamic Link + Riverpod + GoRouter
Enhance your app with Firebase Dynamic Link + Riverpod + GoRouter•
 Using Enums like a Pro in Flutter
Using Enums like a Pro in Flutter•
 Top 10 Flutter Packages That Speed up Your App Development
Top 10 Flutter Packages That Speed up Your App Development•
 5 Tools I Used To Build a Component Library
5 Tools I Used To Build a Component Library•
 Email Verification with Flutter Firebase
Email Verification with Flutter Firebase•
 Our journey to Kotlin Multiplatform
Our journey to Kotlin Multiplatform•
 Compose Multiplatform: Compose для десктопов и веба
Compose Multiplatform: Compose для десктопов и веба Разработка
Разработка• Как вести дизайн документацию, чтобы твоя команда понимала, что она делает
• Чек-лист по созданию собственного SDK
• Как не разбиться на Soft Launch: разбираем самые частые ошибки
• Continuous Delivery бессмысленен?
• Telegram Bot на службе у автоматизации тестирования. Или как, попивая чай с плюшками, запускать автотесты с телефона
• Декларативный UI: Flutter vs SwiftUI vs Jetpack Compose
• Что учесть в разработке супераппа. Рассказываем на примере приложения «Мой Beeline»
• Tester. Или почему важно, изменить свою роль в команде
• Как подружить разработчиков и тестировщиков с помощью кастомной TMS: опыт Авито
• Quality Gates: I need your clothes, boots, and motorcycle
• Podlodka #293: как продавать свои идеи
• Как предсказать LTV клиента с помощью машинного обучения и Python
• Что я понял за 18 месяцев работы в качестве Product Owner-а
• Яндекс сделал цифровые учебники по программированию
• GitHub представил голосового помощника для Copilot
•
 4 Habits That Made Me a Better Developer
4 Habits That Made Me a Better Developer•
 How to become a super-focused software developer
How to become a super-focused software developer•
 How do One-Time passwords work?
How do One-Time passwords work?•
 Learn Google’s Carbon Programming Language — A Tutorial
Learn Google’s Carbon Programming Language — A Tutorial•
 Why OOP Is Bad
Why OOP Is Bad•
 Redesigning the player pages for the OneFootball app: a UX case study
Redesigning the player pages for the OneFootball app: a UX case study•
 Mastodon: децентрализованная социальная сеть
Mastodon: децентрализованная социальная сеть Аналитика, маркетинг и монетизация
Аналитика, маркетинг и монетизация• Установки Twitter выросли на 21%, а доходы на 66%
• Выручка более $10 млн в месяц: как гиперказуальные музыкальные игры обходят непомерно высокие авторские гонорары
• Анализ 2.9 миллиона приложений в Google Play
• YouTube лидирует по доходам в App Store
•
 Supplementing the test checklist when updating the icon and splash screen in mobile apps
Supplementing the test checklist when updating the icon and splash screen in mobile apps AI, Устройства, IoT
AI, Устройства, IoT• Lavritech V7.1 Lite: программирование Wiren Board блоков на DIN-рейку
• Прокачиваем насос с помощью ESPHome и реле от Sonoff
• Computer Vision Image Analysis 4.0 улучшает обработку изображений
• Google и Renault работают над «программно-определяемым транспортным средством»
• В OpenAI запустили DALL-E API
•
 5 Best Books to Learn Machine Learning For Data Scientists
5 Best Books to Learn Machine Learning For Data Scientists← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.
 
          