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

    В новом дайджесте — локализация и гиперкубы, библиотеки и декларативные фреймворки, приложения, чтобы побороть зависимость от приложений, Flutter, Unity, подписки, AI для поиска уязвимостей в коде и многое другое.



    В этой статье я расскажу, как мы выстроили процесс локализации, как подходим к контролю качества, как релизим переводы в зависимости от платформы, и главное — как мы добились того, что разработчики хорошо отзываются о нашей системе переводов. Невозможно полноценно тестировать и отлаживать мобильные приложения без тестовых устройств. Таких устройств должно быть много, потому что один и тот же код на разных моделях ведёт себя по-разному. Но как организовать учёт устройств? Как сделать так, чтобы разработчики и тестировщики быстро и без волокиты получали конкретный смартфон в необходимой конфигурации?

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

    iOS

    (+17) Swift Property Wrappers
    (+13) 20 библиотек для эффектного iOS-приложения
    (+9) Бардак на старте: постмортем на скорость запуска iOS-приложения
    (+6) Проблемы архитектуры в больших проектах
    (+4) Валидация данных в iOS приложениях
    (+4) Swift: Контейнеры для хранения значений по ключу
    (+3) Вариант работы с вебсокетами в iOS на языке Swift
    Apple ограничивает использование HTML5
    СтрижПИ, или SwiftUI на практике
    Как в два счёта профукать подписку на Apple Membership (и быстро её вернуть)
    Десять заповедей iOS-разработки
    Можете ли вы ответить на этот простой вопрос о Swift правильно?
    Лучшие iOS-приложения с Interaction-Driven дизайном
    Машинное обучение на устройстве с помощью SwiftUI и PyTorch Mobile
    SwiftUI: создание листаемых карточек в стиле Tinder
    Лучший способ убедиться, что ваш Swift-код больше никогда не сбойнет
    Что нового в Watch OS 6?
    Асинхронное программирование в Swift с Future и Promise
    Показ HTML-кода с картинкой в UILabel и определение нажатия на нее
    Swift: подсказки по распространенным задачам
    SwiftUI — использование Xcode 11 Canvas
    Распознавание речи и синтез речи на iOS со Swift
    Реализация контекстных меню в iOS 13 с использованием SwiftUI или UIKit
    VVVVVV для iOS и tvOS

    Android

    (+14) Инкрементальный annotation proccesing для ускорения gradle-сборок
    (+12) Починить, хакнуть, раскопать. Решаем онлайн-квест Droid Mission
    (+6) Практичные способы маппинга данных в Kotlin
    (+4) Внешняя компонента для 1С Мобильной платформы (BroadcastReceiver)
    Google I/O 2020 пройдет 12-14 мая
    Microsoft выпустила SDK для смартфона с двумя экранами Surface Duo
    Google выпустил новые приложения, чтобы побороть зависимость от смартфонов
    Android Developer Roadmap 2019: карта навыков и модель развития Android-разработчика
    Welltory удалили из Google Play
    Руководство по Jetpack Compose
    Троян Shopper скачивает приложения и оставляет отзывы в Google Play
    Изменение типов в Kotlin с typealias
    Динамическое изменение темы с помощью круговой анимации на Android
    KotlinConf 2019: что нового в Java 19: Конец Kotlin?
    Компонент JetPack Navigation в Android
    Нулевая стоимость абстракции в Kotlin
    Как использовать табы в Jetpack Compose?
    Лучшие горячие клавиши Android Studio
    SharedPreferences в Android
    Квест Google I/O 2020
    KotlinMultiPlatform: кроссплатформенная погода на Kotlin
    RateBottomSheet: предложение оценить приложение

    Разработка

    (+32) Простой зомби-шутер на Unity
    (+27) Физика для мобильного PvP шутера, или как мы из двумерной игру в трёхмерную переделывали
    (+27) Flutter. Часть 3. Для разработчиков React Native
    (+23) Движок, скриптовый язык и визуальная новелла — за 45 часов
    (+18) Особенности реализации динамических списков в пользовательских интерфейсах
    (+16) Основы левел-дизайна: эффект течения или как не дать заскучать игроку
    (+13) Любовь в ненависть indie gamedev'a
    (+10) Книга “Разработка мобильных приложений на C# для iOS и Android”
    (+10) Как я делал 2D тени в Unity
    (+7) Моя первая html5 игра, от Алисы Яндекса и победах в премии до мобильных приложений
    (+7) Оптимизация 3D-моделей для игровой сцены
    (+6) Мобильная разработка — это просто и скучно? Доклад Яндекса
    (+6) Пишем шейдеры кодом в Unity LWRP
    (+4) Визуальный редактор логики для Unity3d. Часть 2
    (+2) Разработка UI: кого слушать — себя или пользователя?
    Podlodka #147: Web-фреймворки
    Подождите, операция выполняется. Как главный факап в истории «Сбербанка Онлайн» изменил компанию
    Минэкономики предлагает создать российский аналог GitHub
    Основы иерархии в дизайне интерфейса
    Геймификация: что и почему это работает, часть первая
    Чему (почти) 2 года Flutter научили меня
    8 трендов UI-дизайна на 2020 год
    21 способ быть плохим разработчиком
    7 способов быть хорошим разработчиком
    Как измерить свои навыки UX-дизайна?
    Nebula — открытый глоабльный сетевой стек от Slack
    9 советов, как быстро улучшить дизайн приложения
    5 принципов дизайна для лучших продуктов
    Видео Mobiconf 2019
    LaunchDarkly: управление фичами

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

    (+4) Вступление в работу с возвратом пользователя: советы для Hooked-модели
    (+3) Отчет App Annie за 2019 год: взгляд в прошлое, заметки на будущее
    Подписки в приложениях в США выросли в 2019 на 21% до $4.6 млрд
    Игры Niantic принесли $249 млн. туристического дохода
    Стикеры Venmo
    ФАС определила список приложений для предустановки
    Реклама в приложении: чеклист
    Вышла книга о локализации и культурализации игр
    Расходы на мобильную рекламу в России вырастут на 22.2%
    Snyk получил новые инвестиции и стал единорогом
    AppsFlyer получил новые инвестиции в $210 млн.
    Ты водишь! AR-игры в сториз — главный тренд 2019 года
    «Додо Пицца» купила «Где Шаверма»
    Гонка Slack, Microsoft Teams и Workplace: одна интрига умерла, новая зародилась
    1000 установок игры за 2 дня с помощью TikTok
    Лучше понимаем игроков с помощью аффинити обучения
    Как бороться с мошенническим шпионским ПО на Facebook?
    Проблемы ASO для мобильных игр в 2020 году

    AI, Устройства, IoT

    (+39) SVM. Объяснение с нуля, имплементация и подробный разбор
    (+28) Хватит всё подряд называть ИИ
    GitHub начал использовать AI для рекомендации задач
    Uber собрал один из самых впечатляющих стеков глубокого обучения с открытым исходным кодом

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

    Комментарии 0

    Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

    Самое читаемое