Дайджест интересных материалов для мобильного разработчика #340 (6 — 12 апреля)

В этом выпуске новый Swift, accessibility-тестирование, преодоление Prince of persia, исследование российских команд мобильной разработки, открытая Eclipse Theia вместо VSC, полив комнатных растений и многое другое!

qeutodmnhc4o_drjuw0zpfyem9u.jpeg

В конце марта вышел релиз Swift 5.2 для Xcode 11.4. В нём улучшена диагностика ошибок, анализ зависимостей, расширен функционал SwiftPM. Обзор некоторых изменений уже был опубликован на Хабре, в этой же статье рассмотрена эволюция самого языка с возможными примерами использования. Альфа-Банк входит в специальную рабочую группу, созданную ЦБ с целью повышения качества финансовых продуктов для групп населения с нарушениями зрения. Уже выработана специальная методология работы и оценок, которой придерживаются все банки.

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

f1930ac4945596eb9707bc7a01bc5bdc.pngiOS

(+17) Из ошибки в алерт с действиями
(+6) Compositional Layout в iOS 13. Основы
(+3) Формируем View в SwiftUI, исходя из условий
• В iOS 14 запускать приложения можно будет без установки
• В App Store тоже нашли fleeceware-приложения
• Apple покупает NextVR
377ae0333d0f4b7b97307c9eea5ee21a.gifDrag and drop в SwiftUI
377ae0333d0f4b7b97307c9eea5ee21a.gifКак запускается iOS-приложение
377ae0333d0f4b7b97307c9eea5ee21a.gifUITableViewCell с автоматическим размером с помощью UIStackView
377ae0333d0f4b7b97307c9eea5ee21a.gifРуководство по документированию кода в Xcode
377ae0333d0f4b7b97307c9eea5ee21a.gifПолезные глобальные функции в Swift
377ae0333d0f4b7b97307c9eea5ee21a.gifСоздаем лучшие приложения для Apple Watch
377ae0333d0f4b7b97307c9eea5ee21a.gifСоздание погодного приложения для iOS
377ae0333d0f4b7b97307c9eea5ee21a.gifДобавьте эффект параллакса к статическому тексту в iOS
377ae0333d0f4b7b97307c9eea5ee21a.gifКод View — управляющий фреймворк для отказа от IB
377ae0333d0f4b7b97307c9eea5ee21a.gifSwift: ставка Google на дифференцированное программирование
96716bcb926741e79bb1c284a88083ca.pngPlaybook: создание UI-компонентов
96716bcb926741e79bb1c284a88083ca.pngSimpleEngine: 2D игровой движок

e1a3cf2a8b65a0da69bbdd5c0ad040fe.pngAndroid

(+25) Open source: CI/CD и тестовая инфраструктура Авито для Android
(+11) Классификация изображений на Android с помощью TensorFlow Lite и сервиса Azure Custom Vision
(+12) Перенаправление функций в native-библиотеках на Android
(+5) Использование библиотеки ColorPicker в Android для реализации гибкого выбора цвета
(+4) Использование библиотеки Volley в Android на примере получения данных из погодного API
(+3) Prosto: убираем бойлерплейт при работе с RecyclerView
• Google сделал виртуальную клавиатуру Брайля
• Android Broadcast #11: Развитие мобильного разработчика
377ae0333d0f4b7b97307c9eea5ee21a.gifЗащита вашей игры и игроков в Google Play
377ae0333d0f4b7b97307c9eea5ee21a.gifLayout Inspector в Android Studio
377ae0333d0f4b7b97307c9eea5ee21a.gifКастомизируем WorkManager — основы
377ae0333d0f4b7b97307c9eea5ee21a.gifМиграция Android-приложения Duolingo на 100% Kotlin
377ae0333d0f4b7b97307c9eea5ee21a.gifViewBinding — новый стандарт обработки взаимодействия с View в Android
377ae0333d0f4b7b97307c9eea5ee21a.gifAndroid Multi-Module & Dagger: реальный пример использования, шаг за шагом
377ae0333d0f4b7b97307c9eea5ee21a.gifСканер карт на Android с использованием Firebase ML Kit и CameraX
377ae0333d0f4b7b97307c9eea5ee21a.gifЛучшая архитектура для Android: MVI + LiveData + ViewModel
377ae0333d0f4b7b97307c9eea5ee21a.gifШпаргалки по генерации кода в Dagger
377ae0333d0f4b7b97307c9eea5ee21a.gifAndroid Canvas API: от нуба до ниндзи
377ae0333d0f4b7b97307c9eea5ee21a.gifAndroid-тестирование батареи на Microsoft YourPhone
377ae0333d0f4b7b97307c9eea5ee21a.gifВсе, что вы должны знать о ViewBinding в Android
377ae0333d0f4b7b97307c9eea5ee21a.gifТоп-20 плагинов для Android Studio
377ae0333d0f4b7b97307c9eea5ee21a.gifМодульное приложение для Android и динамическая доставка
96716bcb926741e79bb1c284a88083ca.pngChip Navigation Bar: красивая панель навигации
96716bcb926741e79bb1c284a88083ca.pngLearn Jetpack Compose By Example: учим Jetpack Compose на примерах

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

(+83) Как создателю Prince of Persia удалось преодолеть ограничения памяти Apple II
(+35) Профессия: мобильный разработчик
(+22) Сколько я просадил на создании мобильного приложения, и как его возродил коронавирус
(+16) Создание навигатора с применением технологий дополненной реальности и методов машинного обучения
(+16) Как воспроизвести реалистичный звук в компьютерных играх и VR и почему это сложно
(+15) Плохой сетевой код убивает ваши любимые файтинги
(+14) Создание дизайн-системы для игры: детальный разбор подхода
(+13) Создание roguelike в Unity с нуля: генератор подземелий
(+10) Как спастись от Covid и от слежки?
(+9) Как попасть на работу в международный геймдев: туториал от 3D-моделлера из Ульяновска, который стал совладельцем студии
(+8) Как НЕ стать геймдизайнером (Game Designer)
(+6) Unity + git = дружба: часть 1 джентльменский набор
(+6) Проблемы доставки фич в больших проектах
(+5) Summer MVP. Насколько гибок Kotlin?
(+3) Реалистичный боевой ИИ для 2D-игры
(0) User flow: как создаются популярные приложения и сайты
• Podlodka #158: Локализация
• Radio QA #58: Не один дома
• Начинается Season of Docs 2020
• Исследование «Известность команд мобильной разработки 2020»
• «Ростелеком» учредил онлайн-хакатон VirusHack с призовым фондом 2.5 млн рублей
• Разработка в Grab: чему я научился, работая в большой технологической компании?
• «Карантин» — концепт приложения для выхода из дома во время COVID-19
377ae0333d0f4b7b97307c9eea5ee21a.gifЯсность — главное при написании кода
377ae0333d0f4b7b97307c9eea5ee21a.gif100 дней кода — это сложно? Как насчет 1 игры в месяц?
377ae0333d0f4b7b97307c9eea5ee21a.gifЧего ожидать в React Native при конвертировании iOS-приложения в Android
377ae0333d0f4b7b97307c9eea5ee21a.gifВаше приложение не должно быть идеальным
377ae0333d0f4b7b97307c9eea5ee21a.gifСторителинг в UX: микровзаимодействия, которые поддерживают путешествие героя
377ae0333d0f4b7b97307c9eea5ee21a.gifДизайн приложения для здоровья, которое мотивирует пользователей строить здоровые привычки с друзьями
377ae0333d0f4b7b97307c9eea5ee21a.gif21 ошибка в моей 21-летней карьере программиста
96716bcb926741e79bb1c284a88083ca.pngEclipse Theia: открытый расширяемый IDE

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

(+7) AdColony: 89% издателей мобильных приложений и игр используют рекламные видео
• Snapchat запустил AR-пожертвования для борьбы с коронавирусом
• Конструктор Builder.ai предлагает готовые заготовки
• Самые популярные приложения в мире в марте 2020
• Tuned — приложение для пар от Facebook
• Zoom, Skype, Кинопоиск и Premier впервые попали в Топ-10 российского App Store
• Quibi: настоящий мобильный стриминг
• Музыкальный стриминг в 2019 вырос на 32%
• Ультимейт-шаблон скриншотов для стора в Figma

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

(+48) Смарт-реплай стикерами
(+27) Raspberry Pi, Python и полив комнатных растений
(+13) Тренируем генеративно-состязательную сеть для рисования картин на Azure ML
(+3) Локализация QR-кода — важная задача, незаслуженно обделенная вниманием
(+1) Индустрия 4.1: Роботовладение, нейросеть и Open Source монетизация
• Google выпустил Local Home SDK

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

© Habrahabr.ru