В новом дайджесте окукливание Android и тестирование документации, конкурс Kotlin Heroes и понимание стоимости AWS, осциллограф своими руками и новые открытые карты, акторы, профайлеры, батлрояли и многое другое!
![](https://habrastorage.org/webt/u1/xn/jc/u1xnjcptoarh-p3wahg_axdlldy.png)
Этот дайджест доступен в виде еженедельной рассылки. А ежедневно новости мы рассылаем в
Telegram-канале.
iOS
•
Паттерн Observer в Swift
• Создаем 3D модели из фотографий с помощью RealityKit и Swift
• Apple объясняет в отчете чем плоха сторонняя загрузка приложений
• Погружение в Акторы в Swift 5.5
• iOS 15 – что нового для продуктовых дизайнеров и разработчиков
•
Создаем бота для Telegram на Swift с помощью Vapor
•
Реализуем MVVM с Swift в iOS
•
Модульность приложения iOS с помощью SPM
•
Составной список в SwiftUI
•
Создаем приложение без кода с помощью SwiftUI
•
Как iOS 15 ускоряет запуск вашего приложения
•
Локализация пуш-уведомлений
•
Mamazu: помощь бездомным животным
Android
•
Android окукливается и сообщество потворствует этому
•
Пишем свой профайлер для анализа производительности приложения на Android
•
Android: 12 лет истории дизайна ОС
•
Основы темизации в Android
•
Пишем комикс-приключение на Kotlin
•
Портирование UE4.23 игры на Android
•
Более безопасный способ сбора потоков данных из пользовательских интерфейсов Android
• Начать карьеру разработчика с Android было плохой идеей
• В Windows 11 будут работать нативные Android-приложения
• Google принудительно установил приложение для отслеживания контактов
• compileSdkVersion и targetSdkVersion: в чем разница?
•
Мультимодульная навигация в Android
•
Превратите старый Android-смартфон в Backup-сервер
•
От синтетики Kotlin к Android ViewBinding: полное руководство
•
View Model не обязательно должна зависеть от ViewModel
•
Изучаем хелпер CircularFlow
•
Как приоритеты потоков влияют на ваше Android-приложение?
•
Как писать удобочитаемые тесты на Kotlin с помощью Kotest и MockK
•
Compose StarWars: звезды на Jetpack Compose
Разработка
•
Как за день потерять 30% онлайна и за два месяца сделать батлрояль
•
Превращаем старый телефон на Android в резервный сервер с помощью UrBackup/Linux Deploy. Часть 1
•
Персонализация инвайтов в приложении с использованием AppsFlyer
•
Личный левел-ап: как работа помогает прокачаться и (возможно) улучшить мир
•
Как лояльные пользователи помогают тестировать любимый сервис. Бета-тест IVI — грани невозможного
•
Разработка большого проекта за 6 месяцев: как не облажаться
•
Юзер-стори идеальная, а багов 100500? Как мы тестируем документацию
•
#unitytips: Подборка советов и приемов от сообщества Unity, которыми вы можете похвастаться перед друзьями
•
Внедрение зависимостей (Dependency Injection) с GetIt во Flutter
•
Регрессионное тестирование на Scrum-проектах: руководство по проведению
• Mobile People Talks: как эффективно работать в большой команде
• Podlodka #221: переработка вторсырья
• Amazon запустил конкурс AWS BugBust по устранению ошибок в коде
• Дизайн приложений: примеры для вдохновения #45
• 79% разработчиков никогда не обновляет сторонние библиотеки
• Stack Overflow запустил сообщества Collectives
• 10 советов успешного code review
• Как улучшать архитектурные навыки в ежедневных задачах по программированию
• Лучше в черном: переосмысление самых важных кнопок в Spotify
• 7-ой конкурс Kotlin Heroes пройдет 29 июня
• Руководство по Modern Minimal стилю UI дизайна
•
Как базы данных работают с 10 миллионами устройств
•
Изменение дизайна SportsYapp: кейс
•
11 инструментов повышения продуктивности, которые должен знать каждый программист
•
Общий код для загрузки из сети для iOS и Android
•
E-milk — приложение для доставки молока: пример UI/UX
•
Шесть приложений React Native, которые стоит смотреть в 2021
•
Разработка ПО — это творческий процесс, оригинальный шедевр, а не раскраска по номерам
•
Flutter опоздал на вечеринку?
•
Почему большинство разработчиков программного обеспечения не развиваются
•
Analog Clock: часы на Flutter
•
Organic Maps: офлайн карты для Android и iOS
Аналитика, маркетинг и монетизация
• LOVEMOBILE #13: паблишинг неигровых приложений с Wowmaking
• Новый навигатор прокладывает маршрут в тени
• Vantage получил $4 млн на понимание стоимости AWS
• Маркетологи в мобайле: Аркадий Кузнецов (Gismart)
• Rovio получила права на создание игр с Муми-троллями
• Podz: умный поиск подкастов
• Как я масштабировал приложение с 0 до 100,000 загрузок без единого потраченного доллара
• Топ-100 игр в 2020 получили 64% всех расходов игроков в США
• In-app: трафик и рекламные сети
• Как мы набивали шишки с Mental Wellness мобильным приложением
• Как увеличить конверсию приложения на 6,3% за счет графического ASO?
• Как из дипломного проекта сделать сервис с 45 000 пользователей по всему миру: история Asodesk
•
Продуктовые метрики, которые имеют значение
•
Полезный фреймвор для выпуска ваших инди-игр
•
Почему персональная аналитика будет определять экономику в этом десятилетии
•
Ключевые метрики мобильных приложений в 2021
AI, Устройства, IoT
•
Краткий обзор возможностей — для построения осциллографа
•
ruCLIP — мультимодальная модель для русского языка
•
ABBYY NeoML 2.0: Python и многое другое
•
Понимаем GPT-3 за 5 минут
← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.
![](https://habrastorage.org/webt/u1/xn/jc/u1xnjcptoarh-p3wahg_axdlldy.png)
Этот дайджест доступен в виде еженедельной рассылки. А ежедневно новости мы рассылаем в
![](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)
• Создаем 3D модели из фотографий с помощью RealityKit и Swift
• Apple объясняет в отчете чем плоха сторонняя загрузка приложений
• Погружение в Акторы в Swift 5.5
• iOS 15 – что нового для продуктовых дизайнеров и разработчиков
•
![](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)
•
![](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)
• Начать карьеру разработчика с Android было плохой идеей
• В Windows 11 будут работать нативные Android-приложения
• Google принудительно установил приложение для отслеживания контактов
• compileSdkVersion и targetSdkVersion: в чем разница?
•
![](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/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)
• Mobile People Talks: как эффективно работать в большой команде
• Podlodka #221: переработка вторсырья
• Amazon запустил конкурс AWS BugBust по устранению ошибок в коде
• Дизайн приложений: примеры для вдохновения #45
• 79% разработчиков никогда не обновляет сторонние библиотеки
• Stack Overflow запустил сообщества Collectives
• 10 советов успешного code review
• Как улучшать архитектурные навыки в ежедневных задачах по программированию
• Лучше в черном: переосмысление самых важных кнопок в Spotify
• 7-ой конкурс Kotlin Heroes пройдет 29 июня
• Руководство по Modern Minimal стилю 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/967/16b/cb9/96716bcb926741e79bb1c284a88083ca.png)
•
![](https://habrastorage.org/files/967/16b/cb9/96716bcb926741e79bb1c284a88083ca.png)
![](https://habrastorage.org/getpro/habr/post_images/509/dc9/bde/509dc9bde69347ecbe0c21ff2973d7e7.jpg)
• LOVEMOBILE #13: паблишинг неигровых приложений с Wowmaking
• Новый навигатор прокладывает маршрут в тени
• Vantage получил $4 млн на понимание стоимости AWS
• Маркетологи в мобайле: Аркадий Кузнецов (Gismart)
• Rovio получила права на создание игр с Муми-троллями
• Podz: умный поиск подкастов
• Как я масштабировал приложение с 0 до 100,000 загрузок без единого потраченного доллара
• Топ-100 игр в 2020 получили 64% всех расходов игроков в США
• In-app: трафик и рекламные сети
• Как мы набивали шишки с Mental Wellness мобильным приложением
• Как увеличить конверсию приложения на 6,3% за счет графического ASO?
• Как из дипломного проекта сделать сервис с 45 000 пользователей по всему миру: история Asodesk
•
![](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/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)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.