В этой подборке SwiftLint и VSO, панические кнопки и властелины модулей, шутеры без даунтаймов и масштабируемые команды, ускорение билдов, открытый Lumberyard, миллиарды Pokémon GO и многое другое!
![](https://habrastorage.org/webt/ae/qm/x3/aeqmx30mpamqxwwnj_6zs5tbip0.jpeg)
Этот дайджест доступен в виде еженедельной рассылки. А ежедневно новости мы рассылаем в
Telegram-канале.
iOS
•
Пишем плагин Parcelize для компилятора Kotlin под iOS
• Применяем стиль и соглашения Swift с помощью SwiftLint
•
Создаем красивые текстовые эффекты в SwiftUI с помощью SpriteKit
•
Как поделиться сертификатом дистрибуции iOS
•
DevOps в iOS
•
10 лучших ресурсов для изучения SwiftUI-разработки
•
5 сложных алгоритмов, упрощенных с помощью функций высшего порядка Swift
•
Масштабируемая архитектура iOS-приложения
•
SwipeCellKit: ячейка со сдвигом
•
SwiftUI Tooltip: подсказки для SwiftUI
Android
•
Пишем паническую кнопку под Android (Часть 1) + (Часть 2)
•
Властелин модулей. Продолжение истории
• Google Play Services прекращают поддержку Jelly Bean
•
Изменения в вашем коде, необходимые для работы приложения в Windows 11 через Amazon App Store
•
Навигация в мультимодульном Android Compose UI проекте + Hilt
•
Почему приложения Android в Windows изменят наш способ написания приложений
•
Двусторонняя связь без интернета: Nearby Connections
•
Быстрый старт с KMM
•
История разработки API repeatOnLifecycle
•
Распространенные ошибки при использовании Architecture Components
•
Как реализовать шаблон шины событий с помощью Kotlin SharedFlow
•
Погодное демо-приложение погоды с Awareness Kit
•
Использование API-интерфейсов Scaffold и Slot в Jetpack Compose
•
Где писать Android UI тесты
•
QuizZon: готовая викторина для Android
•
NotyKT: заметки на Kotlin (Backend + Android)
Разработка
•
Как полностью выгореть на примере разработки квеста
•
Как мы ускоряли ввод текста на смартфоне: динамическая сетка в Яндекс.Клавиатуре
•
PvP-шутер без даунтаймов: архитектура, аварийные режимы и сервера с рубильником
•
Дебаг-панель для тестирования рекламных интеграций
•
Комьюнити как соавтор игрового контента, или создаем карту вместе с игроками
•
Как мы улучшили интерфейс VSO — движка Playrix и приблизили его по удобству к Unity
•
Масштабируем команду мобильной разработки: как мы в Ozon справились с ростом до 44 iOS, Android и QA на одном приложении
•
Тап в статус бар. Делаем простое сложно c помощью Flutter
•
Получаем реальное покрытие тестами для приложений на Flutter
• Mobile People Talks: “Нас не догонят” или как можно ускорить билд
• Podlodka #223: техническая документация
• Дизайн приложений: примеры для вдохновения #47
• Как личный проект делает вас лучшим разработчиком
• Mail.ru Group открывает набор на бесплатное обучение в Академию продуктовых менеджеров MADE
• Средний разработчик тратит 6 часов в неделю на технический долг
• Не пишите код в стартапе
• Amazon делает Lumberyard открытым
• Книги по веб и мобильной разработке в Humble Bundle
• Глубокое погружение в Server-Driven UI систему Airbnb
• Как стать разработчиком игр 2020
• Дизайн иконок мобильных приложений: 3 правила
• Реальная цена редизайна большого продукта
• Подборка лучших библиотек 3D-иллюстраций для дизайна интерфейсов
• 7 советов, как дизайнеры могут привить продуктовой команде культуру визуального дизайна
•
Зарплата различных типов разработчиков
•
Мой опыт с сертификатом UX -дизайна от Google
•
Сделайте, а они не придут
•
Firebase против AWS — сравнение Google Firebase и Amazon Lambda
•
Apple M1 еще не готов к мобильной разработке
•
Mobile-first мертв. Так?
•
Firebase почти разрушила мой стартап
•
5 лучших способов приоритезировать ваш бэклог
•
6 лучших советов по анимации пользовательского интерфейса
•
7 методов отточить свои технические навыки разработчика
•
Как создать надежные продуктовые гипотезы: пошаговое руководство
•
Недопонимание в разработке: качество — это самый быстрый способ отправить код в продакшн
Аналитика, маркетинг и монетизация
• Как не игровым продуктам выйти на китайский рынок Android
• Comscore: предустановленные приложения доминируют
• Прокуроры США подали иск против Google Play
• Rohlik: доставочный единорог
• Продвижение мобильных приложений ВКонтакте: как работать с инструментом и что учитывать при запуске кампаний
• Pokémon GO заработал $5 млрд за 5 лет
• После внедрения ATT цены на рекламу в iOS упали, а на Android выросли
• Отказ от IDFA, GAID и cookie. Неминуемое будущее рекламных систем
• Как я ошибался, развивая EdTech-стартап с 400 000 пользователей по всему миру
• Чеклист: как подготовить приложение к рекламным активностям
AI, Устройства, IoT
•
Как на Raspberry Pi запустить модель ML и сэкономить пространство одноплатника
• ByteDance начинает продажи алгоритмов ИИ
•
Нет доступа к GPT-3? Вот GPT-J — его кузен с открытым исходным кодом
•
BrickRegistration: распознавание кубиков LEGO
← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.
![](https://habrastorage.org/webt/ae/qm/x3/aeqmx30mpamqxwwnj_6zs5tbip0.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)
• Применяем стиль и соглашения Swift с помощью SwiftLint
•
![](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)
•
![](https://habrastorage.org/storage2/c57/b92/af4/c57b92af4ee0d37f787c211a068b1b95.png)
•
![](https://habrastorage.org/storage2/c57/b92/af4/c57b92af4ee0d37f787c211a068b1b95.png)
• Google Play Services прекращают поддержку Jelly Bean
•
![](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)
•
![](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 #223: техническая документация
• Дизайн приложений: примеры для вдохновения #47
• Как личный проект делает вас лучшим разработчиком
• Mail.ru Group открывает набор на бесплатное обучение в Академию продуктовых менеджеров MADE
• Средний разработчик тратит 6 часов в неделю на технический долг
• Не пишите код в стартапе
• Amazon делает Lumberyard открытым
• Книги по веб и мобильной разработке в Humble Bundle
• Глубокое погружение в Server-Driven UI систему Airbnb
• Как стать разработчиком игр 2020
• Дизайн иконок мобильных приложений: 3 правила
• Реальная цена редизайна большого продукта
• Подборка лучших библиотек 3D-иллюстраций для дизайна интерфейсов
• 7 советов, как дизайнеры могут привить продуктовой команде культуру визуального дизайна
•
![](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)
• Как не игровым продуктам выйти на китайский рынок Android
• Comscore: предустановленные приложения доминируют
• Прокуроры США подали иск против Google Play
• Rohlik: доставочный единорог
• Продвижение мобильных приложений ВКонтакте: как работать с инструментом и что учитывать при запуске кампаний
• Pokémon GO заработал $5 млрд за 5 лет
• После внедрения ATT цены на рекламу в iOS упали, а на Android выросли
• Отказ от IDFA, GAID и cookie. Неминуемое будущее рекламных систем
• Как я ошибался, развивая EdTech-стартап с 400 000 пользователей по всему миру
• Чеклист: как подготовить приложение к рекламным активностям
![](https://habrastorage.org/getpro/habr/post_images/853/812/9f5/8538129f5e7b404a720121cb9c3814db.jpg)
•
![](https://habrastorage.org/storage2/c57/b92/af4/c57b92af4ee0d37f787c211a068b1b95.png)
• ByteDance начинает продажи алгоритмов ИИ
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/967/16b/cb9/96716bcb926741e79bb1c284a88083ca.png)
← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.