В новом дайджесте Kotlin Multiplatform на iOS, история Android и ненужные проекты, фермы Яндекса, реклама мобильных приложений и многое другое. Хорошей разработки!
Подключайтесь также к нашему Telegram-каналу Mobile Insights, где подборки статей и новостей выходят каждый день.
![](https://habrastorage.org/webt/hy/uh/rx/hyuhrxwweacusdc8p1ak998rop8.png)
iOS
• Готов ли Kotlin Multiplatform к проду на iOS?
• Flow Engine — движок iOS-навигации в Revolut
• Руководство «Язык программирования Swift» выложили на GitHub
• Внедрение Allure (отчётность) в UI-тесты (swift, XCTest)
• Antiphishing/Antimalware на трафике в iOS с применением Network Extension
• WebKit переехал на GitHub
•
Xcode’s refactoring options for async/await
•
Sharing cross-platform code in SwiftUI apps
•
Using CoordinateSpace to draw over a SwiftUI List
•
Build Amazing UI Design using SwiftUI Grid in SwiftUI 4
•
An iOS Engineer learns about Android’s Jetpack Compose and loves it
•
AttributedString, a better way to handle attributed strings in iOS 15
•
UIKit Components — Animated TabBar
•
From chaining and blending to digital compositing Core Image CIFilter
•
Fastlane Magic in iOS
•
Updating SwiftUI Views From Objective-C Using MVVM
•
SwiftUI Gauge — A New Way of Showing Progress
•
How to Use Xcode Plugins in Your iOS App
•
Setting up custom font style for Text, Labels and Buttons globally in iOS Application
•
Exploring SwiftUI Redraw Behavior with Instruments
•
50+ SwiftUI Open Source Projects With Guided Tutorials
•
HttpRequest: HTTP-клиент для iOS
•
Wordle Guesser: помощник для Wordle на SwiftUI
Android
• История Android от L до T
• Руководство по модуляризации Android-приложений
• Готовим Android к пентесту — WSA edition
• Umbrella-sharing: как система проката зонтиков сделала нас фанатами Android разработки
• Особенности разработки Android приложения-компаньона для Bluetooth LE
• Deep Dive Into Deep Link. Часть 1. Введение и исходная задача
• OAuth в мобильных приложениях
• Google Play открывает регистрацию для использования стороннего биллинга
•
Experimenting with Jetpack Glance
•
Top-notch stateful testing in Android
•
The deep links crash course, Part 1: Introduction to deep links
•
How to make Expandable List with Jetpack Compose
•
Testing Composable in Jetpack Compose Android – Testing Fundamentals
•
Per-app language preferences
•
Why I will no longer use deep linking from the Navigation Component
•
Android Material 3 Widgets
•
Tips and Tricks that would improve your skills as an Android Developer
•
10 Almost Unknown Tools Which Facilitate Android Apps Development
•
Chain of validators with Kotlin
•
Guide to Android app modularization
•
Jetpack Compose Cheat Sheet
•
Can We Use the Front & Back Cameras at the Same Time on Android?
•
Seal: загрузчик видео с Material You
•
Android Circular Slider: круговой слайдер для Jetpack Compose
Кроссплатформа
• StbSharp: история ненужного проекта
• Телепортация игрока в Unity с OpenXR
• Советы по работе с префабами в Unity
• Flutter 3.3 — Что нового во Flutter
•
Flavors in Flutter
•
Dart 2.18: Objective-C & Swift interop
•
Flutter Sembast — The Complete Crash Course
•
Top 5 React Native tools and libraries 2023
•
KMP, iOS Developers and Production
•
How to organize your Flutter app assets, styles, colors, images
Разработка
• Колхоз. Большая история фермы устройств Яндекса
• Повышаем качество сервисов и делаем пользователей счастливыми: как работают в команде QA ВКонтакте
• Как мы зарелизили новую корзину и победили проблему разваливающихся заказов
• Что общего между локализацией багов и расследованием преступления?
• Как проходит интервью QA-инженеров в Тинькофф
• Краткая история тестирования ПО и реалии работы тестировщика в Сбере
• Ускоряем разработку: автоматический перевод C++ в Swift. Часть II
• Пять признаков, что в вашей продуктовой команде не хватает UX-редактора
• Podlodka #284: NDA и коммерческая тайна
• Как GitHub Copilot влияет на продуктивность и удовлетворенность разработчиков
•
I was too cheap to pay $10 a month for copilot, so I made my own
•
Onboarding a Senior QA: week-by-week plan
•
The Joy of Programming
•
UI/UX Case Study: Adapting an app design for Android & iOS
•
7+ Habits that Made Me a Better Software Engineer
•
The Difference Between The Clever Developer & The Wise Developer
•
Awesome Competitive Programming: ресурсы для соревновательного программирования
Аналитика, маркетинг и монетизация
• Производство креативов для мобильной игры с нуля
• Анализ высоких показателей ATT-согласия в сегменте гиперказуальных игр: уроки и советы для мобильных маркетологов
• Ведущие приложения для ставок на спорт в США выросли после старта чемпионата
• «Сравнительный отчет о рекламе мобильных приложений» от Appsumer
• $1.7 млн: eQuoo — игра для подростков, улучшающая психическое здоровье
• Победители Google Play Indie Games Festival
• Как привлечь первых пользователей в свою игру или приложение
• Разбираем успех Fortnite: часть 1 — психология и UX
• В RuStore стали доступны инструменты продвижения приложений
• Avito Analytics meetup #7
• YouTube улучшает образовательные функции
AI, Устройства, IoT
• Шлюз Modbus RTU с поддержкой Ethernet
• Kincony KC868-A8S: Wi-Fi, Ethernet, Bluetooth, 433 МГц, RS485 и GSM в одном флаконе
• Один из альтернативных протоколов для интернета вещей — CoAP
• Google презентует Pixel Watch и Pixel 7
•
Setting Up A Raspberry Pi Home Server
← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.
Подключайтесь также к нашему Telegram-каналу Mobile Insights, где подборки статей и новостей выходят каждый день.
![](https://habrastorage.org/webt/hy/uh/rx/hyuhrxwweacusdc8p1ak998rop8.png)
![](https://habrastorage.org/getpro/habr/post_images/f19/30a/c49/f1930ac4945596eb9707bc7a01bc5bdc.png)
• Готов ли Kotlin Multiplatform к проду на iOS?
• Flow Engine — движок iOS-навигации в Revolut
• Руководство «Язык программирования Swift» выложили на GitHub
• Внедрение Allure (отчётность) в UI-тесты (swift, XCTest)
• Antiphishing/Antimalware на трафике в iOS с применением Network Extension
• WebKit переехал на GitHub
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/967/16b/cb9/96716bcb926741e79bb1c284a88083ca.png)
•
![](https://habrastorage.org/files/967/16b/cb9/96716bcb926741e79bb1c284a88083ca.png)
![](https://habrastorage.org/getpro/habr/post_images/e1a/3cf/2a8/e1a3cf2a8b65a0da69bbdd5c0ad040fe.png)
• История Android от L до T
• Руководство по модуляризации Android-приложений
• Готовим Android к пентесту — WSA edition
• Umbrella-sharing: как система проката зонтиков сделала нас фанатами Android разработки
• Особенности разработки Android приложения-компаньона для Bluetooth LE
• Deep Dive Into Deep Link. Часть 1. Введение и исходная задача
• OAuth в мобильных приложениях
• Google Play открывает регистрацию для использования стороннего биллинга
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/967/16b/cb9/96716bcb926741e79bb1c284a88083ca.png)
•
![](https://habrastorage.org/files/967/16b/cb9/96716bcb926741e79bb1c284a88083ca.png)
![](https://habrastorage.org/webt/ma/lx/8h/malx8hbgozt6lee8rmxmg96_s6a.png)
• StbSharp: история ненужного проекта
• Телепортация игрока в Unity с OpenXR
• Советы по работе с префабами в Unity
• Flutter 3.3 — Что нового во Flutter
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
![](https://habrastorage.org/getpro/habr/post_images/708/1c6/34e/7081c634ec176ab6b953d9d19e82a09a.png)
• Колхоз. Большая история фермы устройств Яндекса
• Повышаем качество сервисов и делаем пользователей счастливыми: как работают в команде QA ВКонтакте
• Как мы зарелизили новую корзину и победили проблему разваливающихся заказов
• Что общего между локализацией багов и расследованием преступления?
• Как проходит интервью QA-инженеров в Тинькофф
• Краткая история тестирования ПО и реалии работы тестировщика в Сбере
• Ускоряем разработку: автоматический перевод C++ в Swift. Часть II
• Пять признаков, что в вашей продуктовой команде не хватает UX-редактора
• Podlodka #284: NDA и коммерческая тайна
• Как GitHub Copilot влияет на продуктивность и удовлетворенность разработчиков
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/967/16b/cb9/96716bcb926741e79bb1c284a88083ca.png)
![](https://habrastorage.org/getpro/habr/post_images/509/dc9/bde/509dc9bde69347ecbe0c21ff2973d7e7.jpg)
• Производство креативов для мобильной игры с нуля
• Анализ высоких показателей ATT-согласия в сегменте гиперказуальных игр: уроки и советы для мобильных маркетологов
• Ведущие приложения для ставок на спорт в США выросли после старта чемпионата
• «Сравнительный отчет о рекламе мобильных приложений» от Appsumer
• $1.7 млн: eQuoo — игра для подростков, улучшающая психическое здоровье
• Победители Google Play Indie Games Festival
• Как привлечь первых пользователей в свою игру или приложение
• Разбираем успех Fortnite: часть 1 — психология и UX
• В RuStore стали доступны инструменты продвижения приложений
• Avito Analytics meetup #7
• YouTube улучшает образовательные функции
![](https://habrastorage.org/getpro/habr/post_images/853/812/9f5/8538129f5e7b404a720121cb9c3814db.jpg)
• Шлюз Modbus RTU с поддержкой Ethernet
• Kincony KC868-A8S: Wi-Fi, Ethernet, Bluetooth, 433 МГц, RS485 и GSM в одном флаконе
• Один из альтернативных протоколов для интернета вещей — CoAP
• Google презентует Pixel Watch и Pixel 7
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.