Дайджест интересных материалов для мобильного разработчика #307 (15 — 21 июля)

В этом дайджесте рефакторинг, UI, UX и анимации, возвращение триала в App Store, Kotlin как «прорыв года», хакатоны для развития команды, скрытые игровые механики и заработки FaceApp.

m9txvx_m9ufbslrijolp7ve-m9q.jpeg

Что делает инженер, когда необходимый инструмент отсутствует? Верно, сделает всё сам! Ранее мы уже рассказывали о создании своих кастомных инструментов, теперь поговорим о том, как модифицировать Xcode и заставить его работать по твоим правилам. Я неустанно собирал ui kit«ы, экспериментировал с контентом в плейсхолдерах, стилями, тенями текстами и состояниями, чтобы понять влияет ли это на конверсию. Иначе говоря, смогу ли я увеличить продажи дизайн-продуктов для Figma, если добавлю немного визуальной динамики в статичные дизайн-макеты, чтобы сделать темплейты интереснее и функциональнее.

Этот дайджест доступен в виде еженедельной рассылки. А ежедневно новости мы рассылаем в 5ek7bfhjzilma-pbharuioaa7lw.pngTelegram-канале.

f1930ac4945596eb9707bc7a01bc5bdc.pngiOS

(+20) Custom refactoring tool: Swift
(+16) Разработка приложения на SwiftUI. Часть 1: поток данных и Redux
(+14) Вот это поворот: почему Apple изменила требования к разработчикам приложений
(+9) Создаем шаблон Xcode проекта
(+2) Из веба и банков в iOS-разработку: личный опыт программиста Apiqa
• Лояльность владельцев iPhone достигла минимума
976d3e38a34b003f86f91795524af9f8.gifРабота с CloudKit
• Apple представляет новые эмодзи
• Триал для приложений: возвращение в App Store?
• Обзор новой операционной системы iPadOS Beta от Apple
377ae0333d0f4b7b97307c9eea5ee21a.gifКак использовать iOS Background Task, чтобы поддерживать ваше приложение в актуальном состоянии
377ae0333d0f4b7b97307c9eea5ee21a.gifИнкрементальная загрузка и анимация изображений в SwiftUI
377ae0333d0f4b7b97307c9eea5ee21a.gifiOS 13 — готово ваше приложение к темноте?
377ae0333d0f4b7b97307c9eea5ee21a.gifСокращение объема памяти и OOM-завершений в iOS
377ae0333d0f4b7b97307c9eea5ee21a.gifСоздание статичных фреймворков в Carthage
377ae0333d0f4b7b97307c9eea5ee21a.gifНачинаем работу с Combine в Swift
377ae0333d0f4b7b97307c9eea5ee21a.gifРазбил лобовое стекло и заработал $ 10 000 в программе поиска уязвимостей Tesla
377ae0333d0f4b7b97307c9eea5ee21a.gifКак использовать Swift для WatchConnectivity
377ae0333d0f4b7b97307c9eea5ee21a.gifБыстрые очереди на Swift
377ae0333d0f4b7b97307c9eea5ee21a.gifСоздаем Поисковую панель с материальным дизайном в iOS
377ae0333d0f4b7b97307c9eea5ee21a.gifУправление фоновыми задачами с новым Task Scheduler в iOS 13
96716bcb926741e79bb1c284a88083ca.pngMagazineLayout: UICollectionView от Airbnb

e1a3cf2a8b65a0da69bbdd5c0ad040fe.pngAndroid

(+15) Как реализовать чистую архитектуру на Android?
• Google во много раз увеличил вознаграждения за поиск уязвимостей в Chrome, Chrome OS и Google Play
• Kotlin стал «Прорывным проектом года»
• Разработка под Android: советы самому себе
• Microsoft Word достиг 1 млрд. скачиваний на Android
377ae0333d0f4b7b97307c9eea5ee21a.gif976d3e38a34b003f86f91795524af9f8.gifВидео Conference for Kotliners 2019
377ae0333d0f4b7b97307c9eea5ee21a.gif976d3e38a34b003f86f91795524af9f8.gifКурс по Kotlin — руководство для начинающих
377ae0333d0f4b7b97307c9eea5ee21a.gifРазработка игры в рулетку для Android
377ae0333d0f4b7b97307c9eea5ee21a.gifGoogle Analytics вместе с Tag Manager + Firebase
377ae0333d0f4b7b97307c9eea5ee21a.gifСоздание обложек для Wear OS
377ae0333d0f4b7b97307c9eea5ee21a.gifГотовим приложение для Android Q
377ae0333d0f4b7b97307c9eea5ee21a.gifКак сделать View функцией State в Kotlin
377ae0333d0f4b7b97307c9eea5ee21a.gifПакет приложений и Sideloading: как предотвратить сбои
377ae0333d0f4b7b97307c9eea5ee21a.gifСоздаем сканер QR-кодов с использованием Firebase ML Kit и CameraX
377ae0333d0f4b7b97307c9eea5ee21a.gifИсследуем App Actions на Android
377ae0333d0f4b7b97307c9eea5ee21a.gif10 самых многообещающих трендов Android-разработки в 2019
377ae0333d0f4b7b97307c9eea5ee21a.gifКак Kotlin упростил мою жизнь в мире Java
377ae0333d0f4b7b97307c9eea5ee21a.gifМодели потоков в Корутинах и Android SQLite API
377ae0333d0f4b7b97307c9eea5ee21a.gifЭксперимент: превращаем MVP в MVVM без ViewModel library
96716bcb926741e79bb1c284a88083ca.pngPro Bulk Sms Sender: массовая отправка СМС

7081c634ec176ab6b953d9d19e82a09a.pngРазработка

(+15) Как UX-писатель помогает улучшить продукт
(+12) React Native: делаем draggable & swipeable список
(+11) Дизайнеры vs разработчики: об истории создания приложения «Мой умный город»
(+7) Вышла Preview-версия XAML Hot Reload для Xamarin.Forms
(+7) Нативная разработка, React Native и Flutter: критерии выбора
(+3) Как обеспечить безопасность разработки, сохранив время и нервы
(+2) Базовые навыки для работы с Unity
(+1) Как разработать ещё один платформер с помощью Unity. Ещё один туториал, ч.2
• 6 принципов функциональной анимации: как сделать правильные переходы
• Podlodka #120: Kubernetes
976d3e38a34b003f86f91795524af9f8.gifUI-тесты
• AppsCast #9: Тимлид, или Туда и обратно
• Stein: база данных из Таблицы Google
• Как повысить эффективность удаленной команды с помощью хакатонов
• Могут ли цифровые продукты быть безвременными?
• Wilberries открывает школу программирования
• Наталья Першиц (World of Tanks Blitz): все танки различаются
• Сравнение Ionic и Flutter для разработки мобильных и прогрессивных приложений
• Постбраузерная эпоха
377ae0333d0f4b7b97307c9eea5ee21a.gif976d3e38a34b003f86f91795524af9f8.gifВ поисках неявной стоимости дизайна
377ae0333d0f4b7b97307c9eea5ee21a.gifАрхитектура Instagram — как хранить и искать миллиарды изображений
377ae0333d0f4b7b97307c9eea5ee21a.gifПрекратите писать комментарии в коде
377ae0333d0f4b7b97307c9eea5ee21a.gifЗабудьте о пользователях, думайте о людях
377ae0333d0f4b7b97307c9eea5ee21a.gifКто такой тестировщик?
377ae0333d0f4b7b97307c9eea5ee21a.gifХороший UX, плохой UX: Создаем UX, который работает
377ae0333d0f4b7b97307c9eea5ee21a.gif4 минуты на то, чтобы стать лучшим разработчиком
377ae0333d0f4b7b97307c9eea5ee21a.gifCode Reviews в Medium
377ae0333d0f4b7b97307c9eea5ee21a.gifКак думать по noSQL с Firebase 
377ae0333d0f4b7b97307c9eea5ee21a.gifСколько стоит локализация?
377ae0333d0f4b7b97307c9eea5ee21a.gifОбъектно-ориентированное программирование — Бедствие на триллион долларов
96716bcb926741e79bb1c284a88083ca.pngShineButton: сияющие кнопки

509dc9bde69347ecbe0c21ff2973d7e7.jpgАналитика, маркетинг и монетизация

(+54) Зачем нужны скрытые игровые механики
(+8) Продолжая ASO: тренды, рейтинги и немножко отзывов
• FaceApp заработал $1 млн за 10 дней
• 10x Ascend: торг с работодателем
• Маркетинг влияния вырос на 83%
• 1,500 игровых автоматов входят в бар: дело в количестве, а не качестве
• Blackstone покупает Vungle
• Minecraft Earth начинает бета-тестирование
• Идея для приложения: с чего все начинать?
• Самые зарабатывающие приложения с подпиской во 2 квартале 2019
• Google AdSense отказывается от мобильных приложений
• Сегментация как инструмент поиска инсайтов
• Anvyl: управление D2C
377ae0333d0f4b7b97307c9eea5ee21a.gifКак определить токсичного издателя мобильных игр

8538129f5e7b404a720121cb9c3814db.jpgAI, Устройства, IoT

(+74) Как мы обучили нейронную сеть классифицировать шурупы
(+40) Опыт моделеварения от команды Computer Vision Mail.ru
(+26) Галерея лучших блокнотов по ML и Data Science
(+15) Риски и угрозы в Интернете вещей
(+12) Роботы и клубничка: как AI повышает урожайность полей
• Инструкция: создать и загрузить разметку изображений в новый инструмент Apple для обучения нейросетей Create ML
377ae0333d0f4b7b97307c9eea5ee21a.gifТоп-10 инструментов Data Science и ML для не-программистов
377ae0333d0f4b7b97307c9eea5ee21a.gifРазбил лобовое стекло и заработал $ 10 000 в программе поиска уязвимостей Tesla

← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.

© Habrahabr.ru