Уходим на длинные выходные с новой подборкой интересных статей и новостей. В ней библиотеки и борьба с Apple, карточки ВКонтакте и качество кода, Flutter и Kotlin, умение заканчивать проекты, понимать путь клиента и многое другое!
![](https://habrastorage.org/webt/cs/qm/wk/csqmwkgkotzmslnczsfr17reuae.jpeg)
Этот дайджест доступен в виде еженедельной рассылки. А ежедневно новости мы рассылаем в
Telegram-канале.
iOS
•
Переход вашего приложения на модули пакетов Swift
•
Мечтал стать сценаристом, а стал программистом
• В App Store появились поисковые подсказки
• 10 SwiftUI-библиотек 2021
• Начато производство Apple M2
• Apple выпускает обновление iOS 14.5
• Немецкие компании подают антимонопольный иск против Apple, касающийся iOS 14.5
• ФАС оштрафовала Apple на $12 млн по иску «Лаборатории Касперского»
•
Начинаем работу с Combine (практические примеры фреймворка Combine в UIKit и SwiftUI)
•
Руководство по многопоточности — Grand Central Dispatch
•
Градиент в Swift за 4 строчки кода
•
SwiftUI в продакшене
•
Что такое Замыкания и как они работают в Swift? (Пошаговое руководство)
•
Кастомные переходы View Controller-ов в Swift
•
Введение в работу с Codable в Swift
•
Swift: как написать полный логер
•
Скелетный проект для масштабируемой разработки под iOS
•
SwiftUI: как создать ячейку со свайпом
•
Кастомный Top Tab
•
Простая валидация форм с RxSwift
•
Начинаем работу с Firebase Realtime DB на WatchOS
•
GLWalkthrough: онбординг с подсветкой
Android
•
Как реализован экран с карточками заявок в друзья и рекомендациями в приложении ВКонтакте
•
Как мы интегрировали Huawei Mobile Services в два этапа
• Google Play усиливает борьбу с мислидами
• Улучшаем работу Layout Preview в Android Studio
• Как повысить качество кода
• Android Studio начала поддерживать M1
• Опубликовано расписание I/O 2021
• Google Play будет собирать данные об использовании приложений для ускорения запуска
• Курс “Kotlin для начинающих”
•
Кастомная форма с помощью Jetpack Compose
•
Уроки, извлеченные при переносе моего приложения на Jetpack Compose
•
Автомиграция Room
•
Тест на Android Studio – бенчмарк компьютеров
•
Не запускайте бенчмарки в отлаживаемом Android-приложении
•
Один AlertDialog, чтобы править ими всеми
•
Jetpack Compose: простой способ сделать RecyclerView
•
Динамическая доставка с помощью Jetpack Compose
•
Эволюция Quality Assurance для приложений в Azimo
•
Красивый сплеш скрин для Android с анимацией
•
Пример WebRTC в Kotlin
•
Как обрабатывать изменения конфигурации в Android
•
Android RecyclerView Swipe Gestures: жесты в RecyclerView
•
Android ScreenshotDetection: определение скриншотов
•
Linkester: тестирование глубоких ссылок в приложении
Разработка
•
Еще пять инструментов против читеров на мобильном проекте с DAU 1 млн пользователей
•
Моя история реализации офлайн приложения Хабра
•
Этический антидизайн: как разработать продукт, не вызывающий привыкания
•
История разработки SDK для приема платежей в мобильном приложении на Flutter
•
Немного о графиках, сплайнах и генерации ландшафта
•
Тестирование push-уведомлений в мобильных приложениях
•
Решение задач позиционирования при просмотре карты во Flutter
•
Нестабильные(Flaky) тесты — одна из основных проблем автоматизированного тестирования
•
Углубленный анализ тестирования виджетов во Flutter. Часть I: testWidgets() и TestVariant
•
Начинающему QA: полезные функции снифферов на примере Charles Proxy
• Podlodka #213: инвестиции в стартапы
• Microsoft Build 2021 пройдет с 25 по 27 мая
• Как заканчивать игры (и другие проекты)
• Книга “Создание мобильных приложений в масштабе: 39 инженерных задач”
• Дизайн приложений: примеры для вдохновения #41
• Хороший дизайн – это наука, а не искусство
• Кейс: как Surf и Росбанк сделали первое в России банковское приложение на Flutter
• Как нобелевский лауреат помог нам с дизайном приложения для I Love Supersport
•
5 лучших инструментов для создания приложений без кода
•
Как великие продуктовые менеджеры принимают правильные решения: подход Привычный
•
Как безопасно выкладывать в open source внутреннее ПО: лучшие практики
•
5 преимуществ парного программирования и как делать это удаленно с помощью VS Code
•
Как ежегодно экономить 135,000 евро с Google Analytics 4 + BigQuery
•
Локальные уведомления во Flutter
•
10 забавных расширений VS Code, которые помогут программировать
•
Лучшие практики для дизайна модальных окон
•
Хотите стать лучшим UX-дизайнером в 2021? Делайте для эмоций
•
Лучшие практики: дизайн автозаполнения
•
Почему хорошие инженеры не начинают собственный бизнес
•
Интервью у senior-инженера в Facebook: единственная статья, которую вам нужно прочитать
•
Метрики качества кода
Аналитика, маркетинг и монетизация
• Понимаем путь клиента по приложению с помощью событий Firebase и BigQuery
• Mobvista покупает Reyun
• Маркетологи в мобайле: Роман Хуртов (Parimatch Russia)
• Neverland помогает с работой по саду
• Oath Care: форум для мам по подписке
AI, Устройства, IoT
•
S в аббревиатуре IoT означает «Security», или Как я лампу хакнул
•
Йога глазами дата-сайентиста: как мы строили computer vision в мобильном приложении
•
О чем спорят строители Умных Домов, Бань, Дач и Гаражей
• Amazon выкладывает софт DeepRacer в open source
•
10 лучших проектов в области науки о данных для начинающих
< Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.
![](https://habrastorage.org/webt/cs/qm/wk/csqmwkgkotzmslnczsfr17reuae.jpeg)
Этот дайджест доступен в виде еженедельной рассылки. А ежедневно новости мы рассылаем в
![](https://habrastorage.org/webt/5e/k7/bf/5ek7bfhjzilma-pbharuioaa7lw.png)
![](https://habrastorage.org/getpro/habr/post_images/f19/30a/c49/f1930ac4945596eb9707bc7a01bc5bdc.png)
•
![](https://habrastorage.org/storage2/c57/b92/af4/c57b92af4ee0d37f787c211a068b1b95.png)
•
![](https://habrastorage.org/storage2/c57/b92/af4/c57b92af4ee0d37f787c211a068b1b95.png)
• В App Store появились поисковые подсказки
• 10 SwiftUI-библиотек 2021
• Начато производство Apple M2
• Apple выпускает обновление iOS 14.5
• Немецкие компании подают антимонопольный иск против Apple, касающийся iOS 14.5
• ФАС оштрафовала Apple на $12 млн по иску «Лаборатории Касперского»
•
![](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/e1a/3cf/2a8/e1a3cf2a8b65a0da69bbdd5c0ad040fe.png)
•
![](https://habrastorage.org/storage2/c57/b92/af4/c57b92af4ee0d37f787c211a068b1b95.png)
•
![](https://habrastorage.org/storage2/c57/b92/af4/c57b92af4ee0d37f787c211a068b1b95.png)
• Google Play усиливает борьбу с мислидами
• Улучшаем работу Layout Preview в Android Studio
• Как повысить качество кода
• Android Studio начала поддерживать M1
• Опубликовано расписание I/O 2021
• Google Play будет собирать данные об использовании приложений для ускорения запуска
• Курс “Kotlin для начинающих”
•
![](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/files/967/16b/cb9/96716bcb926741e79bb1c284a88083ca.png)
![](https://habrastorage.org/getpro/habr/post_images/708/1c6/34e/7081c634ec176ab6b953d9d19e82a09a.png)
•
![](https://habrastorage.org/storage2/c57/b92/af4/c57b92af4ee0d37f787c211a068b1b95.png)
•
![](https://habrastorage.org/storage2/c57/b92/af4/c57b92af4ee0d37f787c211a068b1b95.png)
•
![](https://habrastorage.org/storage2/c57/b92/af4/c57b92af4ee0d37f787c211a068b1b95.png)
•
![](https://habrastorage.org/storage2/c57/b92/af4/c57b92af4ee0d37f787c211a068b1b95.png)
•
![](https://habrastorage.org/storage2/c57/b92/af4/c57b92af4ee0d37f787c211a068b1b95.png)
•
![](https://habrastorage.org/storage2/c57/b92/af4/c57b92af4ee0d37f787c211a068b1b95.png)
•
![](https://habrastorage.org/storage2/c57/b92/af4/c57b92af4ee0d37f787c211a068b1b95.png)
•
![](https://habrastorage.org/storage2/c57/b92/af4/c57b92af4ee0d37f787c211a068b1b95.png)
•
![](https://habrastorage.org/storage2/c57/b92/af4/c57b92af4ee0d37f787c211a068b1b95.png)
•
![](https://habrastorage.org/storage2/c57/b92/af4/c57b92af4ee0d37f787c211a068b1b95.png)
• Podlodka #213: инвестиции в стартапы
• Microsoft Build 2021 пройдет с 25 по 27 мая
• Как заканчивать игры (и другие проекты)
• Книга “Создание мобильных приложений в масштабе: 39 инженерных задач”
• Дизайн приложений: примеры для вдохновения #41
• Хороший дизайн – это наука, а не искусство
• Кейс: как Surf и Росбанк сделали первое в России банковское приложение на Flutter
• Как нобелевский лауреат помог нам с дизайном приложения для I Love Supersport
•
![](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/getpro/habr/post_images/509/dc9/bde/509dc9bde69347ecbe0c21ff2973d7e7.jpg)
• Понимаем путь клиента по приложению с помощью событий Firebase и BigQuery
• Mobvista покупает Reyun
• Маркетологи в мобайле: Роман Хуртов (Parimatch Russia)
• Neverland помогает с работой по саду
• Oath Care: форум для мам по подписке
![](https://habrastorage.org/getpro/habr/post_images/853/812/9f5/8538129f5e7b404a720121cb9c3814db.jpg)
•
![](https://habrastorage.org/storage2/c57/b92/af4/c57b92af4ee0d37f787c211a068b1b95.png)
•
![](https://habrastorage.org/storage2/c57/b92/af4/c57b92af4ee0d37f787c211a068b1b95.png)
•
![](https://habrastorage.org/storage2/c57/b92/af4/c57b92af4ee0d37f787c211a068b1b95.png)
• Amazon выкладывает софт DeepRacer в open source
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
< Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.