В этом выпуске многопоточность Kotlin в iOS и игра в слова, судьба APK и MVVM для Android, первая игра на Unity, траты россиян на социальные сети, умные очки Facebook, худший вопрос разработчику и многое другое!
![](https://habrastorage.org/r/w780q1/webt/1u/sy/f2/1usyf2h9abz-cz9g-dsqkqw6br4.jpeg)
Этот дайджест доступен в виде еженедельной рассылки. А ежедневно новости мы рассылаем в
Telegram-канале.
iOS
• Многопоточность и Kotlin в Яндекс.Картах: как не допустить падения новых фич на iOS
• Поиграем в слова? Автоматическое распознавание букв и нахождение слов в игре Слово
• Джунам в Swift: как делать нейминг правильно?
• Реализация Unidirectional Data Flow в супераппе. Часть I
• Актуальный App store review guidelines на русском языке
• Отображение иерархических данных в виде списка с возможностью поиска
• California streaming: новая конференция Apple пройдет 14 сентября
• Суд Apple и Epic Games завершился со счетом 9:1
•
Внедряем SwiftUI в существующее UIKit-приложение
•
Пожалуйста, делайте это в своем Swift-коде
•
5 потрясающих инструментов для каждого iOS-разработчика
•
Масштабирование iOS-разработки
•
Предотвращаем гонку данных с помощью Акторов в Swift
•
Современный параллелизм в Swift
•
Автоматическое развертывание iOS-приложений с Bitrise и Fastlane
•
Улучшение iOS с помощью шаблона Фабричный метод — базовое представление чата
•
Kavsoft SwiftUI Animations: анимации SwiftUI
•
TTProgressHUD: HUD на SwiftUI
Android
• Как Android пришел к AAB? Что будет с APK? Разбор
• Оптимизируем отображение 10 000 объектов на карте
• Интеграция Huawei Mobile Services со второй попытки
• Производительность и скорость: как в Duolingo внедрили MVVM на Android
• Простой ZoomableImageView своими руками за 2 минуты
• Последняя статья об упрощении recycler view
• Android in-app purchases, часть 5: серверная валидация покупок
• Как добавить независимый Dagger Сomponent в иерархию SubComponnet-ов Hilt используя подход «component dependencies»?
• Упрощаю разработку адаптеров для RecyclerView с BRVAH. Часть 2
• Вышла финальная Android 12 Beta 5
• Google ускоряет сборку Kotlin с Kotlin Symbol Processing 1.0
• Лучшие инди-игры 2021 в Google Indie Games Festival
•
Application Context, Activity Context и утечки памяти
•
Исследуем Android Vibrator API
•
Как установить Android SDK без Android Studio
•
Создаем современный записыватель звонков с помощью Kotlin + Android Jetpack
•
Основы Drag-n-Drop в Jetpack Compose
•
Appwrite, Android и реальное время
•
Принципы S.O.L.I.D: путь Kotlin
•
Реверс инжиниринг обфусцированного Android APK
•
10 лучших советов по повышению скорости сборки Android-проектов
•
Использование ADB для повседневных задач
•
Rudroid – написание худшего в мире эмулятора Android на Rust
•
Trackr выходит на Большой Экран
•
Документация для Kotlin/Android с KDoc
•
Серия MAD Skills: Hilt под капотом
•
Atmostate: погода на Jetpack Compose и MVVM
•
SegmentedArcView: красивый Progress View
Разработка
• Аим-ассист в мультиплеерном шутере — как сделать правильно
• Яблочный CI
• Нет, это не скучно! Или 5 мифов о работе тестировщика
• История создания своей первой игры на Unity
• Чек-лист — как тестировать поиск
• Представляем .NET MAUI Community Toolkit (Preview)
• Podlodka #232: чекап здоровья
• Дизайн приложений: примеры для вдохновения #56
• Худший вопрос, который вы можете задать разработчику
• 15-дневный челлендж UX-письма
• Mail.ru Group открывает набор на бесплатные курсы по аналитике, алгоритмам и администрированию
• UX/UI сложных банковских приложений
•
Признаки того, что вы плохой программист
•
7 примеров вранья, которые разработчики всегда рассказывают другим
•
Фоновый звук во Flutter с Audio Service и Just Audio
•
Начинаем работу с Ktor
•
Как оптимизировать пояснения кнопок
•
6 признаков того, что вы присоединились не к той компании в качестве разработчика
•
6 советов, как преуспеть в разработке темного режима
•
Простой фреймворк для собеседований по системам мобильного дизайна
•
5 практических советов по качественному Code Review
•
10 признаков того, что вы Senior дизайнер
•
Трагический оптимизм программных проектов
•
План обучения Flutter-разработчика
•
Самые сложные вопросы кодинг интервью
•
30 концепций программирования, которые я усвоил после прочтения «Чистого кода»
•
Как Coinbase проводит собеседование на должности инженеров
•
6 лучших расширений браузера для повышения производительности разработчиков
•
Stipop SDK: стикеры для iOS и Android
Аналитика, маркетинг и монетизация
• SubHub Podcast: Виталий и Ольга Урбан (Moonly, HelloBaby, Kids vs Zombies)
• Застряли в поисках креативов для рекламы игр? Попробуйте вдохновиться рекламными стратегиями горячих казуальных игр!
• Epic попросила Apple выпустить Fortnite в Корее
• Самые загружаемые приложения в мире в августе 2021
• Бенчмарки Apple Search Ads в новом дашборде SearchAds.com
• Контекстная мобильная реклама запоминается до 40% лучше
• Calm: 100 млн загрузок и №1 по расходам потребителей
• В myTracker появился прогноз эффективности кампаний на iOS 14.5+
• Три стратегии, которые простимулируют рост вашей мобильной игры
• Multiscription получает $800,000 на сервис подписки на бесплатные игры
• $34 млн потратили россияне в социальных сетях в первом полугодии 2021 года
• Сколько справедливо отдавать Apple за обработку платежей и куда потратить деньги, если убрать комиссии
AI, Устройства, IoT
• Facebook выпустил умные очки Ray-Ban Stories
• JetBrains выпускает IDE DataSpell для дата сайентистов
• Исследователи нашли 16 критических уязвимостей в стеке Bluetooth
•
Как зарабатывать $1,000,000 в год на науке о данных и машинном обучении — надежный метод
← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.
![](https://habrastorage.org/webt/1u/sy/f2/1usyf2h9abz-cz9g-dsqkqw6br4.jpeg)
Этот дайджест доступен в виде еженедельной рассылки. А ежедневно новости мы рассылаем в
![](https://habrastorage.org/webt/5e/k7/bf/5ek7bfhjzilma-pbharuioaa7lw.png)
![](https://habrastorage.org/getpro/habr/post_images/f19/30a/c49/f1930ac4945596eb9707bc7a01bc5bdc.png)
• Многопоточность и Kotlin в Яндекс.Картах: как не допустить падения новых фич на iOS
• Поиграем в слова? Автоматическое распознавание букв и нахождение слов в игре Слово
• Джунам в Swift: как делать нейминг правильно?
• Реализация Unidirectional Data Flow в супераппе. Часть I
• Актуальный App store review guidelines на русском языке
• Отображение иерархических данных в виде списка с возможностью поиска
• California streaming: новая конференция Apple пройдет 14 сентября
• Суд Apple и Epic Games завершился со счетом 9:1
•
![](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 пришел к AAB? Что будет с APK? Разбор
• Оптимизируем отображение 10 000 объектов на карте
• Интеграция Huawei Mobile Services со второй попытки
• Производительность и скорость: как в Duolingo внедрили MVVM на Android
• Простой ZoomableImageView своими руками за 2 минуты
• Последняя статья об упрощении recycler view
• Android in-app purchases, часть 5: серверная валидация покупок
• Как добавить независимый Dagger Сomponent в иерархию SubComponnet-ов Hilt используя подход «component dependencies»?
• Упрощаю разработку адаптеров для RecyclerView с BRVAH. Часть 2
• Вышла финальная Android 12 Beta 5
• Google ускоряет сборку Kotlin с Kotlin Symbol Processing 1.0
• Лучшие инди-игры 2021 в Google Indie Games Festival
•
![](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/708/1c6/34e/7081c634ec176ab6b953d9d19e82a09a.png)
• Аим-ассист в мультиплеерном шутере — как сделать правильно
• Яблочный CI
• Нет, это не скучно! Или 5 мифов о работе тестировщика
• История создания своей первой игры на Unity
• Чек-лист — как тестировать поиск
• Представляем .NET MAUI Community Toolkit (Preview)
• Podlodka #232: чекап здоровья
• Дизайн приложений: примеры для вдохновения #56
• Худший вопрос, который вы можете задать разработчику
• 15-дневный челлендж UX-письма
• Mail.ru Group открывает набор на бесплатные курсы по аналитике, алгоритмам и администрированию
• UX/UI сложных банковских приложений
•
![](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/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)
• SubHub Podcast: Виталий и Ольга Урбан (Moonly, HelloBaby, Kids vs Zombies)
• Застряли в поисках креативов для рекламы игр? Попробуйте вдохновиться рекламными стратегиями горячих казуальных игр!
• Epic попросила Apple выпустить Fortnite в Корее
• Самые загружаемые приложения в мире в августе 2021
• Бенчмарки Apple Search Ads в новом дашборде SearchAds.com
• Контекстная мобильная реклама запоминается до 40% лучше
• Calm: 100 млн загрузок и №1 по расходам потребителей
• В myTracker появился прогноз эффективности кампаний на iOS 14.5+
• Три стратегии, которые простимулируют рост вашей мобильной игры
• Multiscription получает $800,000 на сервис подписки на бесплатные игры
• $34 млн потратили россияне в социальных сетях в первом полугодии 2021 года
• Сколько справедливо отдавать Apple за обработку платежей и куда потратить деньги, если убрать комиссии
![](https://habrastorage.org/getpro/habr/post_images/853/812/9f5/8538129f5e7b404a720121cb9c3814db.jpg)
• Facebook выпустил умные очки Ray-Ban Stories
• JetBrains выпускает IDE DataSpell для дата сайентистов
• Исследователи нашли 16 критических уязвимостей в стеке Bluetooth
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.