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

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
•
Aspect Fit Layout Guide
•
Replacing if let in Swift 5.7
•
Native iOS Game Development w/ Rust
•
iOS App as a Microservice — Build Robust App Architecture
•
New in SwiftUI 4: Stacked Bar Chart
•
Protocol Oriented Design and Protocol Oriented Design Patterns
•
SwiftUI Lists Are Broken And Can’t Be Fixed
•
Swift Combine: Understanding Publisher-Subscriber Pattern in 2 seconds
•
How to Create Custom Header & Footer Using UIHostingConfiguration
•
How To Create Interactive Maps Using SwiftUI
•
Integrate SwiftLint to the iOS project
•
Using Sequence Function to Solve Math Problem in Swift
•
Build Time Optimizations (Xcode)
•
How to Use SwiftUI Table and Charts to Display Housing Data
•
SwiftLint — iOS Apps Code Inspection
•
DIFlowLayout: поток subview для SwiftUI
•
DVIA-v2: чертовски уязвимое iOS-приложение
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
•
How to review Pull Requests using Android Studio?
•
5 Gotchas of Android’s Deep Link Implementation
•
Migrating the AOSP QuickSearchBox App to Kotlin
•
How to make a shaped text background just like in Instagram
•
Jetpack compose ViewModel decoupling mechanism: Wireless ViewMode
•
A Brief History of Android: Founding, Evolution & Industry Impact
•
Kotlin: What are the differences between lateinit and Delegates.notNull?
•
New Android Logcat: Top 5 features
•
Optimize for Android Go: Lessons from Google apps
•
Getting Dynamic Notch On Android
•
Understanding Google Play Billing Library v5.0
•
My Mistake as an Android Developer, which I do not want others to make
•
Kotlin 1.7.20 Released
•
ViewLifecycleLazy and other ways to avoid View memory leaks in Android Fragments
•
7 Useful Android Libraries You Should Use in Your Next Project
•
Travel: планирование путешествий на Compose
•
Koreography: простая анимация в Compose
Кроссплатформа
• Flutter: Настройка тем приложения
• Расплывающаяся менюшка
•
Authentication flows on Flutter Web and Mobile with AWS Amplify
•
Dynamically sized, animated carousel in Flutter
•
Build a Collaborative Pixel Art App With Flutter and Firebase
•
An iOS purist thrown into Flutter
•
Why haven’t PWAs killed native apps yet?
•
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
•
What we learned after I deleted the main production database by mistake
•
30 knowledge base tools for developers in 2022
•
Amazon Software Engineer Interview Handbook (2022)
•
UI/UX case study: Wave App
•
Designing for inclusivity with WhatsApp’s product designers
•
Keep your views separate
•
How we reduced our annual server costs by 80% — from $1M to $200k — by moving away from AWS
•
Awesome Scalability: список чтения по масштабируемости систем
•
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
• Почему я не верю в бум беспилотных машин в ближайшие пять лет
• Lavritech V7.1 Lite: младший брат Wirenboard на ESP32
• Открытый проект мультизонного термосенсора с логированием и блютусом
• Защитить IoT-устройства — что предлагают регуляторы
• Экскурсия в backend Интернета вещей
•
How to Become a Data Engineer: Complete Roadmap
← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.
Подключайтесь к нашему Telegram-каналу Mobile Insights, где подборки статей и новостей выходят каждый день.


• История 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
•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•


• Как заменить стандартное окно сбоя своим экраном ошибки
• Неочевидное про Fragment API. Часть 2. (Не) создаем инстанс
• Миграция с Rx на корутины — опыт «Тинькофф Мобайл»
• Новый Logcat в Android Studio Dolphin превосходен
• Android NDK. Как писать под Android на C++
• На твой телефон пришло новое сообщение
• Java из Python и обратно на Android
• Размер имеет значение! Часть 3
• Видео Droidcon New York 22
• Google Play Store оптимизировали для «не телефонов»
•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•


• Flutter: Настройка тем приложения
• Расплывающаяся менюшка
•

•

•

•

•

•


• Все видео 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
• Самые высокооплачиваемые вакансии сентября в области разработки приложений
•

•

•

•

•

•

•

•

•

•


• RuStore стал первым по аудитории среди отечественных магазинов приложений
• Как эффективно продвигать финансовые продукты на myTarget — кейс «Тинькофф Инвестиции» и Rocket10
• The OG App — Instagram* без рекламы и рекомендаций + The OG App удалили из App Store
• Все приложения VK удалили из App Store
• «Приложения для образования в США 2022» — отчет Sensor Tower
• 65% маркетологов приложений ищут новые способы таргетинга

• Почему я не верю в бум беспилотных машин в ближайшие пять лет
• Lavritech V7.1 Lite: младший брат Wirenboard на ESP32
• Открытый проект мультизонного термосенсора с логированием и блютусом
• Защитить IoT-устройства — что предлагают регуляторы
• Экскурсия в backend Интернета вещей
•

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