В нашей новой еженедельной подборке история Goose Maps и WebView, продолжение неочевидного про Fragment API, перепады высот, эмуляторы, симуляторы, тестовые фермы и многое другое!
Подключайтесь к нашему Telegram-каналу Mobile Insights, где подборки статей и новостей выходят каждый день.

 iOS
iOS
• История Goose Maps, первых автономных офлайн карт для Apple Watch
• Логи в iOS, эпизод 1: os_log
• State Machine в SwiftUI
• Пишем типизированный DI-контейнер для iOS приложения. Часть 1
• Asychronous Flow Kit — Objective-C тулкит для асинхронных операций
• Auto Layout настройка кодом
• Пишем библиотеку для запроса оценки в AppStore
• Stage Manager заработал на старых iPad
• Compose UI for iOS
Compose UI for iOS
• Aspect Fit Layout Guide
Aspect Fit Layout Guide
• Replacing if let in Swift 5.7
Replacing if let in Swift 5.7
• Native iOS Game Development w/ Rust
Native iOS Game Development w/ Rust
• iOS App as a Microservice — Build Robust App Architecture
iOS App as a Microservice — Build Robust App Architecture
• New in SwiftUI 4: Stacked Bar Chart
New in SwiftUI 4: Stacked Bar Chart
• Protocol Oriented Design and Protocol Oriented Design Patterns
Protocol Oriented Design and Protocol Oriented Design Patterns
• SwiftUI Lists Are Broken And Can’t Be Fixed
SwiftUI Lists Are Broken And Can’t Be Fixed
• Swift Combine: Understanding Publisher-Subscriber Pattern in 2 seconds
Swift Combine: Understanding Publisher-Subscriber Pattern in 2 seconds
• How to Create Custom Header & Footer Using UIHostingConfiguration
How to Create Custom Header & Footer Using UIHostingConfiguration
• How To Create Interactive Maps Using SwiftUI
How To Create Interactive Maps Using SwiftUI
• Integrate SwiftLint to the iOS project
Integrate SwiftLint to the iOS project
• Using Sequence Function to Solve Math Problem in Swift
Using Sequence Function to Solve Math Problem in Swift
• Build Time Optimizations (Xcode)
Build Time Optimizations (Xcode)
• How to Use SwiftUI Table and Charts to Display Housing Data
How to Use SwiftUI Table and Charts to Display Housing Data
• SwiftLint — iOS Apps Code Inspection
SwiftLint — iOS Apps Code Inspection
• DIFlowLayout: поток subview для SwiftUI
DIFlowLayout: поток subview для SwiftUI
• DVIA-v2: чертовски уязвимое iOS-приложение
DVIA-v2: чертовски уязвимое iOS-приложение
 Android
Android
• Как заменить стандартное окно сбоя своим экраном ошибки
• Неочевидное про Fragment API. Часть 2. (Не) создаем инстанс
• Миграция с Rx на корутины — опыт «Тинькофф Мобайл»
• Новый Logcat в Android Studio Dolphin превосходен
• Android NDK. Как писать под Android на C++
• На твой телефон пришло новое сообщение
• Java из Python и обратно на Android
• Размер имеет значение! Часть 3
• Видео Droidcon New York 22
• Google Play Store оптимизировали для «не телефонов»
• Android Lint and Detekt warnings in GitHub pull requests
Android Lint and Detekt warnings in GitHub pull requests
• How to review Pull Requests using Android Studio?
How to review Pull Requests using Android Studio?
• 5 Gotchas of Android’s Deep Link Implementation
5 Gotchas of Android’s Deep Link Implementation
• Migrating the AOSP QuickSearchBox App to Kotlin
Migrating the AOSP QuickSearchBox App to Kotlin
• How to make a shaped text background just like in Instagram
How to make a shaped text background just like in Instagram
• Jetpack compose ViewModel decoupling mechanism: Wireless ViewMode
Jetpack compose ViewModel decoupling mechanism: Wireless ViewMode
• A Brief History of Android: Founding, Evolution & Industry Impact
A Brief History of Android: Founding, Evolution & Industry Impact
• Kotlin: What are the differences between lateinit and Delegates.notNull?
Kotlin: What are the differences between lateinit and Delegates.notNull?
• New Android Logcat: Top 5 features
New Android Logcat: Top 5 features
• Optimize for Android Go: Lessons from Google apps
Optimize for Android Go: Lessons from Google apps
• Getting Dynamic Notch On Android
Getting Dynamic Notch On Android
• Understanding Google Play Billing Library v5.0
Understanding Google Play Billing Library v5.0
• My Mistake as an Android Developer, which I do not want others to make
My Mistake as an Android Developer, which I do not want others to make
• Kotlin 1.7.20 Released
Kotlin 1.7.20 Released
• ViewLifecycleLazy and other ways to avoid View memory leaks in Android Fragments
ViewLifecycleLazy and other ways to avoid View memory leaks in Android Fragments
• 7 Useful Android Libraries You Should Use in Your Next Project
7 Useful Android Libraries You Should Use in Your Next Project
• Travel: планирование путешествий на Compose
Travel: планирование путешествий на Compose
• Koreography: простая анимация в Compose
Koreography: простая анимация в Compose
 Кроссплатформа
Кроссплатформа
• Flutter: Настройка тем приложения
• Расплывающаяся менюшка
• Authentication flows on Flutter Web and Mobile with AWS Amplify
Authentication flows on Flutter Web and Mobile with AWS Amplify
• Dynamically sized, animated carousel in Flutter
Dynamically sized, animated carousel in Flutter
• Build a Collaborative Pixel Art App With Flutter and Firebase
Build a Collaborative Pixel Art App With Flutter and Firebase
• An iOS purist thrown into Flutter
An iOS purist thrown into Flutter
• Why haven’t PWAs killed native apps yet?
Why haven’t PWAs killed native apps yet?
• Roadmap to becoming a Flutter developer
Roadmap to becoming a Flutter developer
 Разработка
Разработка
• Все видео Mobius 2022 Spring
• WebView: забыть нельзя интегрировать
• Как мы научились учитывать перепады высот по геокоординатам в мобильном приложении
• Когда тестирование выпало из DevOps, и как его туда вернуть
• Мобильное ТОРО: ускоряем ремонты и бережем лес
• Как Junior-разработчика уволили и оштрафовали за работу над сторонними проектами в рабочее время
• Charles для начинающего QA: от настройки до использования
• Эмуляторы, симуляторы или тестовые фермы. Что выбрать для мобильного тестирования?
• Что такое Quality Gates?
• Как победить выгорание, синдром самозванца и прокраситанцию: советы IT психолога
• Podlodka #287: стейблкойны
• Epic Games и Autodesk привносят 3D в архитектуру и инженерию
• Meta* впервые в истории сокращает персонал
• «Счастье разработчиков 2022» — отчет ZenHub
• Вакансий для IT-специалистов начального уровня стало меньше на 62%
• Loopin помогает повысить продуктивность митингов
• The Open Mainframe Project выпустил обучающий курс по COBOL
• Самые высокооплачиваемые вакансии сентября в области разработки приложений
• The Art of the Error Message
The Art of the Error Message
• What we learned after I deleted the main production database by mistake
What we learned after I deleted the main production database by mistake
• 30 knowledge base tools for developers in 2022
30 knowledge base tools for developers in 2022
• Amazon Software Engineer Interview Handbook (2022)
Amazon Software Engineer Interview Handbook (2022)
• UI/UX case study: Wave App
UI/UX case study: Wave App
• Designing for inclusivity with WhatsApp’s product designers
Designing for inclusivity with WhatsApp’s product designers
• Keep your views separate
Keep your views separate
• How we reduced our annual server costs by 80% — from $1M to $200k — by moving away from AWS
How we reduced our annual server costs by 80% — from $1M to $200k — by moving away from AWS
• Awesome Scalability: список чтения по масштабируемости систем
Awesome Scalability: список чтения по масштабируемости систем
• SAD (Slack-Anti-Delete): сохранение удаленных сообщений в Slack
SAD (Slack-Anti-Delete): сохранение удаленных сообщений в Slack
 Аналитика, маркетинг и монетизация
Аналитика, маркетинг и монетизация
• RuStore стал первым по аудитории среди отечественных магазинов приложений
• Как эффективно продвигать финансовые продукты на myTarget — кейс «Тинькофф Инвестиции» и Rocket10
• The OG App — Instagram* без рекламы и рекомендаций + The OG App удалили из App Store
• Все приложения VK удалили из App Store
• «Приложения для образования в США 2022» — отчет Sensor Tower
• 65% маркетологов приложений ищут новые способы таргетинга
 AI, Устройства, IoT
AI, Устройства, IoT
• Почему я не верю в бум беспилотных машин в ближайшие пять лет
• Lavritech V7.1 Lite: младший брат Wirenboard на ESP32
• Открытый проект мультизонного термосенсора с логированием и блютусом
• Защитить IoT-устройства — что предлагают регуляторы
• Экскурсия в backend Интернета вещей
• How to Become a Data Engineer: Complete Roadmap
How to Become a Data Engineer: Complete Roadmap
← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.
Подключайтесь к нашему Telegram-каналу Mobile Insights, где подборки статей и новостей выходят каждый день.

 iOS
iOS• История Goose Maps, первых автономных офлайн карт для Apple Watch
• Логи в iOS, эпизод 1: os_log
• State Machine в SwiftUI
• Пишем типизированный DI-контейнер для iOS приложения. Часть 1
• Asychronous Flow Kit — Objective-C тулкит для асинхронных операций
• Auto Layout настройка кодом
• Пишем библиотеку для запроса оценки в AppStore
• Stage Manager заработал на старых iPad
•
 Compose UI for iOS
Compose UI for iOS•
 Aspect Fit Layout Guide
Aspect Fit Layout Guide•
 Replacing if let in Swift 5.7
Replacing if let in Swift 5.7•
 Native iOS Game Development w/ Rust
Native iOS Game Development w/ Rust•
 iOS App as a Microservice — Build Robust App Architecture
iOS App as a Microservice — Build Robust App Architecture•
 New in SwiftUI 4: Stacked Bar Chart
New in SwiftUI 4: Stacked Bar Chart•
 Protocol Oriented Design and Protocol Oriented Design Patterns
Protocol Oriented Design and Protocol Oriented Design Patterns•
 SwiftUI Lists Are Broken And Can’t Be Fixed
SwiftUI Lists Are Broken And Can’t Be Fixed•
 Swift Combine: Understanding Publisher-Subscriber Pattern in 2 seconds
Swift Combine: Understanding Publisher-Subscriber Pattern in 2 seconds•
 How to Create Custom Header & Footer Using UIHostingConfiguration
How to Create Custom Header & Footer Using UIHostingConfiguration•
 How To Create Interactive Maps Using SwiftUI
How To Create Interactive Maps Using SwiftUI•
 Integrate SwiftLint to the iOS project
Integrate SwiftLint to the iOS project•
 Using Sequence Function to Solve Math Problem in Swift
Using Sequence Function to Solve Math Problem in Swift•
 Build Time Optimizations (Xcode)
Build Time Optimizations (Xcode)•
 How to Use SwiftUI Table and Charts to Display Housing Data
How to Use SwiftUI Table and Charts to Display Housing Data•
 SwiftLint — iOS Apps Code Inspection
SwiftLint — iOS Apps Code Inspection•
 DIFlowLayout: поток subview для SwiftUI
DIFlowLayout: поток subview для SwiftUI•
 DVIA-v2: чертовски уязвимое iOS-приложение
DVIA-v2: чертовски уязвимое iOS-приложение Android
Android• Как заменить стандартное окно сбоя своим экраном ошибки
• Неочевидное про Fragment API. Часть 2. (Не) создаем инстанс
• Миграция с Rx на корутины — опыт «Тинькофф Мобайл»
• Новый Logcat в Android Studio Dolphin превосходен
• Android NDK. Как писать под Android на C++
• На твой телефон пришло новое сообщение
• Java из Python и обратно на Android
• Размер имеет значение! Часть 3
• Видео Droidcon New York 22
• Google Play Store оптимизировали для «не телефонов»
•
 Android Lint and Detekt warnings in GitHub pull requests
Android Lint and Detekt warnings in GitHub pull requests•
 How to review Pull Requests using Android Studio?
How to review Pull Requests using Android Studio?•
 5 Gotchas of Android’s Deep Link Implementation
5 Gotchas of Android’s Deep Link Implementation•
 Migrating the AOSP QuickSearchBox App to Kotlin
Migrating the AOSP QuickSearchBox App to Kotlin•
 How to make a shaped text background just like in Instagram
How to make a shaped text background just like in Instagram•
 Jetpack compose ViewModel decoupling mechanism: Wireless ViewMode
Jetpack compose ViewModel decoupling mechanism: Wireless ViewMode•
 A Brief History of Android: Founding, Evolution & Industry Impact
A Brief History of Android: Founding, Evolution & Industry Impact•
 Kotlin: What are the differences between lateinit and Delegates.notNull?
Kotlin: What are the differences between lateinit and Delegates.notNull?•
 New Android Logcat: Top 5 features
New Android Logcat: Top 5 features•
 Optimize for Android Go: Lessons from Google apps
Optimize for Android Go: Lessons from Google apps•
 Getting Dynamic Notch On Android
Getting Dynamic Notch On Android•
 Understanding Google Play Billing Library v5.0
Understanding Google Play Billing Library v5.0•
 My Mistake as an Android Developer, which I do not want others to make
My Mistake as an Android Developer, which I do not want others to make•
 Kotlin 1.7.20 Released
Kotlin 1.7.20 Released•
 ViewLifecycleLazy and other ways to avoid View memory leaks in Android Fragments
ViewLifecycleLazy and other ways to avoid View memory leaks in Android Fragments•
 7 Useful Android Libraries You Should Use in Your Next Project
7 Useful Android Libraries You Should Use in Your Next Project•
 Travel: планирование путешествий на Compose
Travel: планирование путешествий на Compose•
 Koreography: простая анимация в Compose
Koreography: простая анимация в Compose Кроссплатформа
Кроссплатформа• Flutter: Настройка тем приложения
• Расплывающаяся менюшка
•
 Authentication flows on Flutter Web and Mobile with AWS Amplify
Authentication flows on Flutter Web and Mobile with AWS Amplify•
 Dynamically sized, animated carousel in Flutter
Dynamically sized, animated carousel in Flutter•
 Build a Collaborative Pixel Art App With Flutter and Firebase
Build a Collaborative Pixel Art App With Flutter and Firebase•
 An iOS purist thrown into Flutter
An iOS purist thrown into Flutter•
 Why haven’t PWAs killed native apps yet?
Why haven’t PWAs killed native apps yet?•
 Roadmap to becoming a Flutter developer
Roadmap to becoming a Flutter developer Разработка
Разработка• Все видео Mobius 2022 Spring
• WebView: забыть нельзя интегрировать
• Как мы научились учитывать перепады высот по геокоординатам в мобильном приложении
• Когда тестирование выпало из DevOps, и как его туда вернуть
• Мобильное ТОРО: ускоряем ремонты и бережем лес
• Как Junior-разработчика уволили и оштрафовали за работу над сторонними проектами в рабочее время
• Charles для начинающего QA: от настройки до использования
• Эмуляторы, симуляторы или тестовые фермы. Что выбрать для мобильного тестирования?
• Что такое Quality Gates?
• Как победить выгорание, синдром самозванца и прокраситанцию: советы IT психолога
• Podlodka #287: стейблкойны
• Epic Games и Autodesk привносят 3D в архитектуру и инженерию
• Meta* впервые в истории сокращает персонал
• «Счастье разработчиков 2022» — отчет ZenHub
• Вакансий для IT-специалистов начального уровня стало меньше на 62%
• Loopin помогает повысить продуктивность митингов
• The Open Mainframe Project выпустил обучающий курс по COBOL
• Самые высокооплачиваемые вакансии сентября в области разработки приложений
•
 The Art of the Error Message
The Art of the Error Message•
 What we learned after I deleted the main production database by mistake
What we learned after I deleted the main production database by mistake•
 30 knowledge base tools for developers in 2022
30 knowledge base tools for developers in 2022•
 Amazon Software Engineer Interview Handbook (2022)
Amazon Software Engineer Interview Handbook (2022)•
 UI/UX case study: Wave App
UI/UX case study: Wave App•
 Designing for inclusivity with WhatsApp’s product designers
Designing for inclusivity with WhatsApp’s product designers•
 Keep your views separate
Keep your views separate•
 How we reduced our annual server costs by 80% — from $1M to $200k — by moving away from AWS
How we reduced our annual server costs by 80% — from $1M to $200k — by moving away from AWS•
 Awesome Scalability: список чтения по масштабируемости систем
Awesome Scalability: список чтения по масштабируемости систем•
 SAD (Slack-Anti-Delete): сохранение удаленных сообщений в Slack
SAD (Slack-Anti-Delete): сохранение удаленных сообщений в Slack Аналитика, маркетинг и монетизация
Аналитика, маркетинг и монетизация• RuStore стал первым по аудитории среди отечественных магазинов приложений
• Как эффективно продвигать финансовые продукты на myTarget — кейс «Тинькофф Инвестиции» и Rocket10
• The OG App — Instagram* без рекламы и рекомендаций + The OG App удалили из App Store
• Все приложения VK удалили из App Store
• «Приложения для образования в США 2022» — отчет Sensor Tower
• 65% маркетологов приложений ищут новые способы таргетинга
 AI, Устройства, IoT
AI, Устройства, IoT• Почему я не верю в бум беспилотных машин в ближайшие пять лет
• Lavritech V7.1 Lite: младший брат Wirenboard на ESP32
• Открытый проект мультизонного термосенсора с логированием и блютусом
• Защитить IoT-устройства — что предлагают регуляторы
• Экскурсия в backend Интернета вещей
•
 How to Become a Data Engineer: Complete Roadmap
How to Become a Data Engineer: Complete Roadmap← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.
 
          