В новом дайджесте — локализация и гиперкубы, библиотеки и декларативные фреймворки, приложения, чтобы побороть зависимость от приложений, 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 собрал один из самых впечатляющих стеков глубокого обучения с открытым исходным кодом
< Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.
В этой статье я расскажу, как мы выстроили процесс локализации, как подходим к контролю качества, как релизим переводы в зависимости от платформы, и главное — как мы добились того, что разработчики хорошо отзываются о нашей системе переводов. Невозможно полноценно тестировать и отлаживать мобильные приложения без тестовых устройств. Таких устройств должно быть много, потому что один и тот же код на разных моделях ведёт себя по-разному. Но как организовать учёт устройств? Как сделать так, чтобы разработчики и тестировщики быстро и без волокиты получали конкретный смартфон в необходимой конфигурации?
Этот дайджест доступен в виде еженедельной рассылки. А ежедневно новости мы рассылаем в 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 собрал один из самых впечатляющих стеков глубокого обучения с открытым исходным кодом
< Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.