В нашей новой подборке выход из тюрьмы Apple и внедрение своего кода в чужое iOS-приложение, прошлое, настоящее и будущее Kotlin, переобувка за неделю до релиза, принципы замкнутости, боязнь IoT и многое другое!
![](https://habrastorage.org/r/w780q1/webt/pm/n7/yz/pmn7yzmjkfl3xxnyvqpn-t1ldf4.jpeg)
Этот дайджест доступен в виде еженедельной рассылки. А ежедневно новости мы рассылаем в
Telegram-канале.
iOS
• Выходим из тюрьмы Apple. Установка произвольных приложений на iOS без джейлбрейка
• Взлом и внедрение своего кода в чужое iOS-приложение
• Nivelir: Удобный DSL для навигации
• UI-тесты в iOS: укрощение строптивого
• Про многопоточность
• Как настраивать диплинки: инструкция для Firebase, AppsFlyer и Facebook
• iOS in-app purchases: серверная валидация покупок
• Reactive Data Display Manager. История одного рефакторинга
• Некоторые методы детектирования отладки iOS приложений
• Как тестировщики написали свою мобильную ферму для IOS
•
Задачи Drag and Drop в SwiftUI
•
Kotlin Multiplatform Mobile — наброс от iOS-разработчика
•
5 хитростей списков SwiftUI для iOS 13
•
Автоматический перевод View в использования Auto Layout с Builder Pattern в Swift
•
Делаем Шахматы со SpriteKit
•
Как анимировать AutoLayout Constraints в MVVM с помощью Combine
•
Дело против Immutable объектов в Swift
•
Subscription Blogging App: мобильные блоги с подпиской
•
Daily Check: Todo приложение на Swift
Android
• Готовимся к Windows 11: добавляем поддержку полноценной клавиатуры в Android-приложение
• В шорткаты умеешь? А если научу?
• Десять лет Kotlin: история языка + Будущее Kotlin
• Android 12 достиг стабильной версии
• Стриминг видео с мобильного устройства
• Рекомпоузим живое приложение
•
Как анимировать содержимое BottomSheet с помощью Jetpack Compose
•
UI больших экранов в приложении Google I/O
•
Введение в Navigation-Material
•
Kotlin: советы и рекомендации по эффективному программированию
•
Автоматическая миграция ваших проектов в систему сборки Bazel с помощью Airin
•
Темная сторона persistence и сжатия кода в Android
•
Безопасное управление состояниями с помощью Акторов
•
Искусство оптимизации размера загрузки Android-приложений на практике
•
Шаблоны проектирования в Android с Kotlin
•
Безопасный delay в Android View: до свидания, хендлеры, привет, корутины!
•
Ktor – первый шаг к бэкэнду Android-разработчика
•
Создание Android-библиотек для частного внутреннего репозитория
•
KaMP Kit: быстрый старт в Kotlin Multiplatform
•
Timber: логер для Android
Разработка
• Как за неделю до релиза переобуться и сократить размер билда в 3 раза
• Кроссплатформенная растеризация SVG — сравниваем библиотеки и экспериментируем
• Интерполяция — мать анимации — Твинеры в Unity
• Безопасность для айтишников: как научить разработчиков устранять уязвимости и создавать безопасные приложения
• Flutter Dev Podcast #30: Dart Code Metrics
• Podlodka #228: зрение
• Открылась регистрация Facebook Hacker Cup
• Дизайн приложений: примеры для вдохновения #52
• 3 языка программирования, которые стоит выучить в этом десятилетии
• Как потратить $200 тысяч на первое приложение: история основательницы фитнес-стартапа
• 7 побочных проектов, приносящих прибыль, которые вы можете реализовать как разработчик
• Принцип завершения образа (замкнутости) в визуальном дизайне
•
Как Airbnb построил «стену» для предотвращения ошибок в данных
•
Рекомендации по созданию таблиц с ценами
•
Самые популярные тенденции в дизайне мобильных приложений 2021
•
Как найти open source проекты, в которые вы можете внести вклад
•
Программирование — это ловушка. Бегите
•
Добавление Flutter в существующие кодовую базу iOS и Android
•
У разработчиков нет никакой выгоды или стимула создавать качественный код
•
25 самых популярных вопросов на собеседовании по React Native (с ответами)
•
Осваиваем основы дизайна иконок
Аналитика, маркетинг и монетизация
• Как улучшить ваши A/B-тесты: лайфхаки аналитиков Авито. Часть 1
• У семи нянек дитя без глазу: локализация игр и волонтерский перевод
• SubHub Podcast: Станислав Продан (AMMA Pregnancy Tracker)
• Jerry: суперапп для автовладельцев
• В Сенат внесен новый законопроект, ограничивающий магазины приложений
• App Annie подвела итоги развития рынка мобильных игр в первой половине 2021 года
• Расходы на мобильные настольные игры в США выросли на 40% за год
• Как с помощью предиктивных моделей улучшить показатели РК в 3 раза: кейс Bidease и inDriver
• Что такое хороший Retention. Бенчмарки Retention для разных типов продуктов
•
Маркетинг вашей первой инди-игры — что мы узнали, выпустив одну и ту же игру дважды
AI, Устройства, IoT
• От кофеварки до кардиостимуляторов. Боимся IoT вместе
• Жизненный цикл ML-модели
• OpenAI запустила платформу Codex, превращающую естественный язык в код
• Xiaomi вышла на первое место по продажам смартфонов в мире
← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.
![](https://habrastorage.org/webt/pm/n7/yz/pmn7yzmjkfl3xxnyvqpn-t1ldf4.jpeg)
Этот дайджест доступен в виде еженедельной рассылки. А ежедневно новости мы рассылаем в
![](https://habrastorage.org/webt/5e/k7/bf/5ek7bfhjzilma-pbharuioaa7lw.png)
![](https://habrastorage.org/getpro/habr/post_images/f19/30a/c49/f1930ac4945596eb9707bc7a01bc5bdc.png)
• Выходим из тюрьмы Apple. Установка произвольных приложений на iOS без джейлбрейка
• Взлом и внедрение своего кода в чужое iOS-приложение
• Nivelir: Удобный DSL для навигации
• UI-тесты в iOS: укрощение строптивого
• Про многопоточность
• Как настраивать диплинки: инструкция для Firebase, AppsFlyer и Facebook
• iOS in-app purchases: серверная валидация покупок
• Reactive Data Display Manager. История одного рефакторинга
• Некоторые методы детектирования отладки iOS приложений
• Как тестировщики написали свою мобильную ферму для IOS
•
![](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)
• Готовимся к Windows 11: добавляем поддержку полноценной клавиатуры в Android-приложение
• В шорткаты умеешь? А если научу?
• Десять лет Kotlin: история языка + Будущее Kotlin
• Android 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/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)
• Как за неделю до релиза переобуться и сократить размер билда в 3 раза
• Кроссплатформенная растеризация SVG — сравниваем библиотеки и экспериментируем
• Интерполяция — мать анимации — Твинеры в Unity
• Безопасность для айтишников: как научить разработчиков устранять уязвимости и создавать безопасные приложения
• Flutter Dev Podcast #30: Dart Code Metrics
• Podlodka #228: зрение
• Открылась регистрация Facebook Hacker Cup
• Дизайн приложений: примеры для вдохновения #52
• 3 языка программирования, которые стоит выучить в этом десятилетии
• Как потратить $200 тысяч на первое приложение: история основательницы фитнес-стартапа
• 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/getpro/habr/post_images/509/dc9/bde/509dc9bde69347ecbe0c21ff2973d7e7.jpg)
• Как улучшить ваши A/B-тесты: лайфхаки аналитиков Авито. Часть 1
• У семи нянек дитя без глазу: локализация игр и волонтерский перевод
• SubHub Podcast: Станислав Продан (AMMA Pregnancy Tracker)
• Jerry: суперапп для автовладельцев
• В Сенат внесен новый законопроект, ограничивающий магазины приложений
• App Annie подвела итоги развития рынка мобильных игр в первой половине 2021 года
• Расходы на мобильные настольные игры в США выросли на 40% за год
• Как с помощью предиктивных моделей улучшить показатели РК в 3 раза: кейс Bidease и inDriver
• Что такое хороший Retention. Бенчмарки Retention для разных типов продуктов
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
![](https://habrastorage.org/getpro/habr/post_images/853/812/9f5/8538129f5e7b404a720121cb9c3814db.jpg)
• От кофеварки до кардиостимуляторов. Боимся IoT вместе
• Жизненный цикл ML-модели
• OpenAI запустила платформу Codex, превращающую естественный язык в код
• Xiaomi вышла на первое место по продажам смартфонов в мире
← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.