Русский
Русский
English
Статистика
Реклама

Разработка мобильных игр

Перевод Четыре приема быстрой разработки на Unity3D

08.12.2020 12:05:45 | Автор: admin

Больше гибкости, меньше кода продуктивнее разработка.

Уже долгое время Unity3D мой любимый инструмент разработки игр, которым я пользуюсь уже более 8лет и для профессиональных продуктов, и для личных проектов, и при обучении программированию и гейм-дизайну. Более того, я писал на Unity почти на всех гейм-джемах, в которых участвовал, благодаря чему получалось создавать основу игры всего за несколько часов.

Как вы, наверное, знаете, гейм-джем это конкурс разработчиков игр, участники которого делают игру с нуля за короткий период времени. Гейм-джем обычно идет от 24 до 72часов, но бывают и более длительные например, GitHub Game Off, который длится весь ноябрь.

После участия в различных гейм-джемах, в том числе и с самодельным движком моей группы на C++ (к сожалению, он только на португальском языке), я составил список правил быстрого прототипирования, которые вскоре превратились в мой основной принцип разработки ПО: меньше кода быстрее работа.

Основная идея писать меньше кода (или, иначе говоря, держать меньшую кодовую базу) решает две задачи:

  1. Защита от ошибок: чем меньше размер кода, тем меньше вероятность сделать ошибку.

  2. Экономия времени: при каждом изменении кода нужны обновления и тесты, что требует времени.

А для Unity есть и третья причина: каждое изменение в коде запускает обновление Unity, на что регулярно тратится некоторое количество времени.

В этой статье я расскажу о нескольких приемах, позволяющих легко реализовать этот принцип в Unity3D и таким образом ускорить прототипирование и создание игр в целом.

Для справки: Unity 3D Technologies мне ничего не платили (пока что).

1. Сериализация классов и структур

Сериализация это процесс автоматического преобразования структур данных или состояний объекта в другой формат. В случае Unity это упрощает хранение и реконструкцию данных.

Класс и структуру можно пометить как сериализуемые указав [Serializable] над именем. Ниже пример из документации Unity:

[Serializable]public struct PlayerStats{   public int movementSpeed;   public int hitPoints;   public bool hasHealthPotion;}

Главное преимущество этого подхода в том, что он дает прямой доступ к соответствующим свойствам через инспектор, что особенно удобно при использовании списков и массивов.

Список характеристик игрока в инспекторе свойств UnityСписок характеристик игрока в инспекторе свойств Unity

В вашем проекте наверняка будут повторяющиеся структуры: например, задания, предметы или даже диалоги их можно реализовать в виде сериализованных классов или структур, что позволит с легкостью изменять их список значений в инспекторе.

То же можно сделать для перечислений (их использование повышает безопасность типов) и более сложных конструкций например, спрайтов. Оба случая приведены на изображении и в коде ниже:

Список характеристик игрока со спрайтами и перечислениями в инспекторе UnityСписок характеристик игрока со спрайтами и перечислениями в инспекторе Unity
public enum PlayerType{    ARCHER, KNIGHT}[Serializable]public struct PlayerStats{    public int movementSpeed;    public int hitPoints;    public bool hasHealthPotion;    public Sprite face;    public PlayerType type;}

Если использовать перечисление в сериализованной структуре, то в качестве приятного дополнения вы получите его идентификаторы в инспекторе Unity в красивом и удобном выпадающем списке и больше не нужно запоминать строки.

2. По возможности используйте RequireComponent

Сценарии с зависимостями от компонентов обычное дело. Например, сценарий контроллера игрока, скорее всего, будет зависеть от Rigidbody и коллайдеров игрока. Самый безопасный способ обеспечить наличие всех зависимостей у игрового объекта во время выполнения сценария это пометить его атрибутом RequireComponent.

У этого атрибута три основных функции:

  1. Обеспечить наличие необходимых компонентов у игрового объекта.

  2. Заблокировать удаление необходимых компонентов.

  3. Автоматически добавлять необходимые компоненты к игровому объекту, когда к нему прикрепляется сценарий.

Пример кода с использованием RequireComponent показан ниже:

[RequireComponent(typeof(Rigidbody))]public class PlayerScript : MonoBehaviour{    Rigidbody rigidbody;    void Awake()    {        rigidbody = GetComponent<Rigidbody>();    }}

Эта функциональность значительно повышает безопасность кода и снижает вероятность непредвиденного исключения пустого указателя при попытке получить доступ к недействительным или несуществующим компонентам. Компоненты можно непосредственно прикрепить в окне редактора или получить их с помощью методов Awake или Start, как показано в примере кода выше.

С точки зрения прототипирования этот подход ускоряет подготовку объектов. Более того, у классов и структур может быть несколько атрибутов RequireComponent сразу. Достаточно указать их в сценарии, а затем просто добавить его в игровой объект и все компоненты будут прикреплены.

А учитывая, что эти компоненты никогда не будут недействительными при обычных обстоятельствах, в сценарии не нужно проверять на значение null, значит, и кода писать нужно меньше.

3. Кнопки интерфейса для нескольких событий

Это, пожалуй, самый простой и эффективный прием из рассматриваемых: использовать одну и ту же кнопку пользовательского интерфейса Unity для нескольких событий одновременно. Многие новички в Unity используют кнопки либо для выполнения одной задачи, либо, что еще хуже, для вызова определенного метода в сценарии, обрабатывающего логику кнопки.

Само по себе это не плохо, но в обоих случаях появляется сильная зависимость от изменений в кодовой базе которые наверняка будут.

Лучше всего перечислять все эффекты кнопки прямо в ее списке событий OnClick: в нем может быть столько событий, сколько нужно, и к ним легче получить доступ и изменить их.

С помощью этого подхода можно, например, использовать onClick одной кнопки для отображения панели Unity, воспроизведения звука и запуска анимации. Конкретно для этих задач дополнительный код не потребуется: отображаем панель ( setActive(true) ), воспроизводим звук ( play() ) и вызываем Animator ( setTrigger() ). Примеры вызова этих методов ниже.

Пример списка с событиями OnClickПример списка с событиями OnClick

Довольно часто этот подход используется для программирования переходов по меню. Каждое меню активирует следующее и деактивируется само. При возврате или закрытии меню каждое из них снова деактивирует себя и активирует предыдущее. Самое приятное здесь то, что не понадобится ни строчки кода. Повторюсь: меньше кода меньше ошибок, быстрее работа.

4. Широкое применение событий Unity

В Unity есть специальный класс с именем UnityEvent, который ведет как себя метод OnClick кнопки интерфейса Unity. Переменная UnityEvent, доступ к которой есть у сценария, дает тот же интерфейс, что и метод OnClick:

Одна переменная UnityEvent с именем EventsToBeCalledОдна переменная UnityEvent с именем EventsToBeCalled

Такая переменная используется практически так же, за исключением того, что для выполнения списка событий переменной UnityEvent ее нужно вызывать через сценарий. Во фрагменте кода ниже показано, как добавить переменную UnityEvent в сценарий и как пишется простая функция вызова Invoke:

using UnityEngine;using UnityEngine.Events;public class CallEventsScript : MonoBehaviour{   public UnityEvent eventsToBeCalled;   public void CallEvents()   {      eventsToBeCalled.Invoke();   }}

Метод CallEvents вызывает список событий для переменной UnityEvent. Это общедоступный метод, поэтому к нему имеют доступ другие сценарии, в том числе сигналы временной шкалы и события анимации. Для этих двух случаев писать код для доступа к методу не нужно всё делается простым перетаскиванием.

Временная шкала анимации с добавленным событием, которое вызывает метод CallEventsВременная шкала анимации с добавленным событием, которое вызывает метод CallEvents

UnityEvent также может использоваться для создания очень гибких сценариев, например, для вызова списка событий в таких методах, как Awake, Start, OnEnable, OnDisable ит.д. Например, можно написать сценарий, который выполняет список событий в методе Start, это позволит быстро создать функции без необходимости писать код.

Пример из практики триггерный ящик, как я его называю: это игровой объект с коллайдером, который выполняет одно или несколько действий при столкновении с другими игровыми объектами. Его можно легко реализовать с помощью UnityEvent:

[RequireComponent(typeof(Collider))]public class TriggerBoxScript : MonoBehaviour{    public UnityEvent eventsToBeCalledOnCollision;    public List<string> objectsTagToActivate;    private void OnCollisionEnter(Collision other)    {        if (OtherHasWantedTag(other.gameObject))        {            InvokeEvents();        }    }    private void OnTriggerEnter(Collider other)    {        if (OtherHasWantedTag(other.gameObject))        {            InvokeEvents();        }    }    private bool OtherHasWantedTag(GameObject other)    {        var found = objectsTagToActivate.Find(other.CompareTag);        return found != null;    }    private void InvokeEvents()    {         eventsToBeCalledOnCollision.Invoke();       }}

Пример выше работает и для триггеров, и для коллайдеров без триггера (метод вызывается и через OnTriggerEnter, и через OnCollisionEnter). При этом его могут использовать только игровые объекты, у которых есть коллайдер.

Пример необходимых компонентов для триггерного ящикаПример необходимых компонентов для триггерного ящика

В примере выше показан игровой объект с триггерным ящиком, использующий этот подход. В этом примере всякий раз, когда игровой объект Player сталкивается с объектом триггерным ящиком, последний воспроизведет звук и деактивируется. Возможности такой структуры почти безграничны: активация врагов, изменение фоновой музыки, точки появления, точки сохранения ит.д.

Заключение

Если коротко, то два главных результата использования описанных подходов это снижение количества кода и расширение возможностей инспектора Unity. Больше гибкость шире простор для действий.

В случае событий (OnClick и UnityEvent) разработчику не нужно беспокоиться о настройке зависимостей объекта (методы объектов можно вызывать напрямую из списков) и проверке их действительности (в списке можно будет привязать только действительные существующие объекты).

Конечно, бывают случаи, в которых эти подходы лучше не использовать: они усложнят работу. Например, если одну и ту же серию задач необходимо выполнить для разных элементов, было бы разумно передать ее определенному методу и вызывать его, а не перечислять все задачи для каждого элемента. Это относится непосредственно ко кнопкам интерфейса Unity, для которых в таких ситуациях может быть удобно назначить конкретные методы.

В любом случае, гибкость описанных подходов наверняка перевесит их недостатки и, конечно же, их легко игнорировать или устранить. Более того, эти приемы позволяют быстро создать прототип и проверить идею, и только после этого приступать к написанию более стабильного и эффективного кода.

Благодарю завнимание :)

Побережье, коричневый песок. Альберт Эдельфельт (1935) [USEUM]Побережье, коричневый песок. Альберт Эдельфельт (1935) [USEUM]

О переводчике

Перевод статьи выполнен в Alconost.

Alconost занимается локализацией игр, приложений и сайтов на 70 языков. Переводчики-носители языка, лингвистическое тестирование, облачная платформа с API, непрерывная локализация, менеджеры проектов 24/7, любые форматы строковых ресурсов.

Мы также делаем рекламные и обучающие видеоролики для сайтов, продающие, имиджевые, рекламные, обучающие, тизеры, эксплейнеры, трейлеры для Google Play и App Store.

Подробнее..

Wild Horizon. Обзор наших первых изменений

02.06.2021 00:12:39 | Автор: admin

Очередной выпуск "игровой газеты". Изменения на первой полосе. Ответы на вопросы.

Доброго времени суток, уважаемый читатель. После того, как был опубликован предыдущий пост, стало поступать множество разных вопросов. Благодарю всех, кто проявил интерес к проекту.

Мы услышали все пожелания, учли наши ошибки, обратили внимание на жалобы.

Проект находится на стадии доработки.

Краткие ответы на ваши вопросы:

Почему мало русского языка?! За прошедшие десять дней мы перевели игру на 95% на русский язык, временно оставив на английском языке некоторые кнопки, исходя из технической проблемы.

Непонятно, что делать! В данный момент готовим подробное начальное обучение, которые полностью введет игрока в курс дела.

На каком движке игра? Unity. Работали на нем ранее, полностью устраивает.

Планируете ли искать издателя? Он нашел нас сам. Сейчас находимся в постоянном контакте с издателем, смотрим метрики, выполняем начальные условия. Пришлось временно отключить некоторые функции игры, включая и рекламу.

Будет ли боевая система? Да, сейчас активно рисую поселения индейцев, спрайты людей, спрайты бандитов. В защиту поселения будут выступать башни, стены, войска в городе, шериф.

Делали ли рекламу, покупали трафик? Нет, на продвижение игры не пострадал ни один рубль. Продвижение это всегда грамотное вливание огромных сумм. Думаю с этим в данных реалиях может справиться только издатель или довольно крупная компания.

Разрешение игры режется, не видно названий иконок. Программист Александр провел огромную работу по оптимизации экранов под разные форматы. В моем распоряжение есть убогий вытянутый формат экрана Samsung а51, наверное один из самых неудобных в плане экрана, с которого и начали замечать проблемы. Проблема решена для него и остальных основных форматов.

Samsung а51Samsung а51

Будут ли еще добавлены ресурсы? Да, раз в неделю добавляем по одной шахте для разных металлов.

ШахтыШахты

Как мне набрать людей / рабочих? Они приходят сами раз в пол часа, а также при строительстве домов. Теперь вы можете изучать, крафтить разные инструменты, снаряжать рабочих и назначать их на работу в ту или иную область карты. Инструменты и снаряжение имею разные уровни, делаются из разных материалов и в зависимости от качества дают повышенный бонус к производству.

Планируете ли внедрять еще персонажей? На данный момент в игре 8 персонажей, но 25 полностью прописанных заготовок. Всех персонажей четко прописывали в табличке, что бы не повторялись бонусы и каждый персонаж был бы уникальным.

Работаешь ли ты еще где то? Да, безусловно, дизайн мое всё, а проект это что-то вроде хобби, которое в будущем хотелось бы превратить в работу.

Также в комментариях под постом и в личку мне постоянно пишут о том, что бы сделал пост о процессе рисования данного проекта. Терпение, господа, терпение. Я помню, обязательно сделаю, в перерыве между основной работой и работой над проектом.

Проект дает интересный опыт каждому из нас, учит нас думать иначе, искать ошибки там, где их не должно быть. До нужного нам результата еще далеко, но я очень рад постоянно получать от вас обратную связь, видеть как проект перевалил за 300+ установок, как органически приходят люди с разных стран. Забавный факт! На втором месте по скачкам - Корея. Хз как так получилось.

Большинство из вас знает, что в разработке игры довольно мало романтики, много нагрузок и много ошибок. Слишком много, они повсюду. Но для меня это все же начальное детище, на которое просто приятно смотреть и не осознавать, что ты на пару с приятелем это смог сделать)

Спасибо за внимание, задавайте вопросы, присылайте пожелания, а мы в свою очередь сделаем все, что бы воплотить в жизнь больше интересных и полезных функций.

Любите игры, играйте в игры!

Подробнее..

Android 11 Beta и обновления для разработчиков

17.06.2020 08:10:07 | Автор: admin

Привет, Хабр!
10 июня вышла бета-версия Android 11! В этой статье мы хотели бы коротко рассказать о главных новинках в Android 11 Beta, Google Play и инструментах для разработчиков. А также, хотели бы пригласить всех читателей на специальное онлайн мероприятие посвященное выходу Android 11 Beta, которое состоится сегодня, 17 июня в 19:00 по Московскому времени. Специальный гость мероприятия, известный каждому Android разработчику Чет Хас! Присоединяйтесь и читайте подробности под катом.


Бета-версия Android 11 уже доступна


Благодаря обратной связи, которую мы получили от сообщества разработчиков на Android 11 Developer Preview, мы смогли подготовить бета-версию Android 11, которая фокусирается на 3 ключевых вещах: люди, элементы управления и приватность.


Люди: мы всегда стараемся сделать Android более ориентированным на людей и для людей. Мы хотим чтобы Android был выразительным и поэтому мы решили переосмыслить то, как мы используем наши телефоны для общения и хотим создавать ОС, способную узнавать и помочь приоритезировать самых важных для вас людей.


  • Conversation notifications или уведомления о разговорах будут появляться в специальном разделе, с улучшенным дизайном и предложениями действий, такими как открытие беседы в виде всплывающей подсказки, создание отдельного ярлыка беседы на главном экране или установка напоминания.
  • Bubbles, они же Пузыри. Надоело переключаться между мессенджерами и другими приложениями во время переписки? Пузыри помогут держать переписку в поле зрения и останутся легко доступны во время многозадачности. Для того чтобы задействовать данный функционал, мессенджеры и другие приложение поддерживающие обмен сообщениями могут использовать новый Bubbles API.
  • Consolidated keyboard suggestions или консолидированные подсказки от клавиатуры. Теперь приложения c функционалом Autofill и редакторы метода ввода (IMEs), такие как клавиатура, смогут безопасно предлагать контекстно правильные подсказки непосредственно в полосе предложений IME, где они наиболее удобны для пользователей.
  • Голосовой доступ, он же Voice Access. Для людей, которые управляют своим телефоном с помощью голоса.Android 11 теперь понимает содержимое экрана и контекст, а также генерирует метки и точки доступа для голосовых команд.
    image

Элементы управления: последняя версия Android поможет быстро подключиться к умным устройствам и управлять ими в одном пространстве:


  • Device Controls или управление устройствами позволит быстрее и проще получать доступ к подключенным устройствам. Теперь, просто нажав и удерживая кнопку питания, пользователи смогут мгновенно получить доступ к управлению устройствами в одном месте. Разработчики смогут использовать новый API для отображения элементов управления. Подробнее здесь.
  • Media Controls или управления мультимедиа позволит быстро и удобно переключаться между устройствами вывода для аудио или видеоконтента, будь то наушники, динамики или даже телевизор. Подробнее здесь.
    image

Приватность: в Android 11 мы даем пользователям еще больший контроль над разрешениями и работаем над тем, чтобы повысить безопасность устройств благодаря более регулярным обновлениям.


  • One-time permission или единовременные разрешения позволят пользователям предоставлять приложениям доступ к микрофону, камере или местоположению устройства только один раз. Приложению нужно будет запросить разрешение заново при следующем использовании приложения. Подробнее здесь.
  • Permissions auto-reset или автоматический сброс разрешений: если пользователь, по какой-то причине, не использовал приложение в течение длительного времени, Android 11 автоматически сбросит runtime разрешения, связанные с приложением, и уведомит об этом пользователя. Приложение нужно будет запросить разрешения снова при следующем запуске. Подробнее здесь.
  • Background location или локация в фоновом режиме. В феврале этого года мы анонсировали, что разработчикам необходимо будет получить отдельное разрешение на доступ к локации в фоновом режиме, чтобы предотвратить злоупотребление таким доступом. Мы даем разработчикам больше времени для внесения изменений и не будем применять политику для существующих приложений до 2021 года. Подробнее здесь.
  • Google Play System Updates или обновления системы Google Play. Запущенные в прошлом году, обновления системы Google Play позволяют нам ускорить доставку и обновление основных компонентов ОС на устройствах. В Android 11 мы более чем удвоили количество обновляемых модулей, и эти 12 новых модулей помогут улучшить приватность, безопасность, и консистентность для пользователей и разработчиков.
    image

Удобство для разработчиков. Мы хотим, чтобы разработчики могли с легкостью воспользоваться преимуществами новой версии и для облегчения тестирования на совместимость мы сделали следующее:


  • Самые важные (ломающие) изменения не вступят в силу до тех пор, пока вы не явно не укажете Android 11 в своем манифесте
  • Добавили новый интерфейс в настройках для разработчиков, позволяющий включать/выключать многие из этих изменений
  • добавили Platform Stability майлстоун в таймлайн, чтобы вы могли приступить к обновлению своего приложения, точно зная что платформа стабильна.

Android 11 также включает в себя ряд других улучшений для разработчиков, таких как поддержка беспроводной отладки по ADB, ADB incremental для быстрой установки больших APK и больше nullability аннотаций в API платформы (для выявления проблем во время сборки, а не во время выполнения) и многое другое.


Бета-версия Android 11 доступна уже сейчас, с финальными API SDK и NDK, которые можно попробовать в своих приложениях.


Если у вас есть устройство Pixel 2, 3, 3a или 4, вы можете зарегистрироваться здесь, чтобы получать обновления Android 11 Beta по воздуху. Также можно отдельно скачать образы для смартфонов Google Pixel и эмулятора Android. Подробно узнать обо всех изменениях вы можете на специальной странице для Android разработчиков.


Также узнать о новинках в Android 11 вы можете узнать из нашего специального мероприятия с русскоговорящими экспертами и специальным гостем Четом Хасом, которое пройдет сегодня в 19-00 по Московскому времени.


Современная Android разработка


В течение последних лет, команда Android усердно работала над улучшением опыта разработчиков мобильных приложений, чтобы сделать их более продуктивными. Это включает в себя улучшения Android Studio, отличный язык (Kotlin), Библиотеки Jetpack для упрощения общих задач и Android App Bundles для улучшения распространения приложений. Мы называем всё это современной Android разработкой и предлагаем вниманию Android разработчиков лучшее из мира Android, чтобы сделать их ещё более эффективным и продуктивным.


image

Android Studio


Новые функции в Android Studio 4.1 Beta и 4.2 Canary доступны уже сегодня. При разработке, мы ориентировались на ряд важных вопросов для разработчиков:


  • Отладка приложений стала проще с поддержкой беспроводной отладки по ADB на устройствах с Android 11. Мы также добавили инспектор баз данных и инструменты Dependency Injection(Dagger);
  • Тестирование устройств стало проще благодаря тому, что эмулятор Android теперь находится непосредственно в IDE. Разработчикам смогут видеть результаты выполнения тестов с нескольких устройств одновременно, а также мы улучшили и сам диспетчер виртуальных устройств.
  • Машинное обучение стало проще (почти). По крайней мере,теперь вы сможете импортировать свои модели для ML Kit и TensorFlow Lite прямо в Android Studio.
  • Сборка и deployment приложений стали быстрее благодаря Kotlin Symbol Processing API, кэшированию графа задач в Gradle и более быстрой установке и запуску приложений на всех устройствах с Android 11. А новый анализатор сборки может помочь вам определить, где в вашей сборке могут быть узкие места.
  • Инструменты для разработки игр стали лучше благодаря обновленному пользовательскому интерфейсу профилировщика производительности, переработанному инструменту System Trace и поддержке встроенного профилирования памяти.

image

Попробовать последнюю версию: Android Studio 4.1 Beta и Android Studio 4.2 Canary вы можете уже сейчас!


Kotlin, Jetpack и новинки


Языки и библиотеки являются одной из основных областей инвестирования для нас в современную Android разработку. Мы сосредоточены на том, чтобы сделать разработчиков более продуктивными с Kotlin и Jetpack.



С ростом популярности Kotlin, а на данный момент, более 70% из 1000 лучших приложений в Google Play используют Kotlin, и таким большим количеством разработчиков, использующих Kotlin, мы можем использовать весь его потенциал, чтобы улучшить опыт разработки под Android новыми способами.


Корутины Kotlin это особенность языка Kotlin, которая упрощает написание и понимание конкурентных вызовы в коде. Теперь мы официально рекомендуем использовать корутины Kotlin и поэтому мы встроили поддержку корутин в наиболее часто используемые библиотек Jetpack Lifecycle, WorkManager и Room.


Сам Kotlin также продолжает улучшаться с каждым выпуском благодаря потрясающей команде Jetbrains. Kotlin 1.4 обеспечивает более быстрый code completion, более мощный вывод типов, включенные по умолчанию функциональные интерфейсы, а также полезные другие улучшения, такие как смешивание именованных и позиционных аргументов.


Мы также продолжаем развивать и продвигать Jetpack набор библиотек предназначенных для быстрой и легкой реализации общих шаблонов разработки для мобильных устройств.


Многие мобильные разработчики давно любят Dagger. Поэтому мы поработали с командой Dagger, чтобы представить вам Hilt дружественную к разработчикам оболочку поверх Dagger.


Мы также рады представить ещё одну новую библиотеку App Startup. Она призвана помочь разработчикам приложений и библиотек оптимизировать инициализацию библиотек в приложении.


У нас много обновлений для существующих библиотек, в том числе серьезное обновление для Paging 3. Теперь оно Kotlin-first с полной поддержкой Корутин!


Compose


Есть еще одна вещь, которая необходима для продуктивности это мощный набор инструментов, позволяющий легко и быстро создавать красивые пользовательские интерфейсы на Android со встроенным доступом к API платформы. Именно поэтому мы развиваем Jetpack Compose наш новый набор инструментов для разработки пользовательских интерфейсов, который позволяет оживить ваши приложения с помощью меньшего количества кода и интуитивно понятных API на Kotlin. Мы рады Jetpack Compose Developer Preview 2, наполненный новыми фичами и улучшениями, о которых нас просили разработчики:


  • Interoperability with Views
  • Animations
  • Testing
  • Constraint Layout
  • Adapter list
  • Material UI components
  • Text and editable Text
  • Theming and Graphics
  • Window management
  • Input and Gestures

Работая в тесном сотрудничестве с командой Kotlin из Jetbrains, мы добавили ряд новых возможностей в Android Studio 4.2, призванных помочь создавать приложения с помощью Compose:


  • плагин компилятора Kotlin для генерации кода
  • Compose Preview Аннотации
  • Предварительный просмотр Compose в режиме реального времени
  • Деплой отдельных composable объектов на устройство
  • Compose Code completion
  • Пример Data API для Compose

Compose еще не готов к использованию в продакшене. В данный момент, мы заканчиваем оптимизацию производительности, и будем рады услышать вашу обратную связь. Мы планируем запустить Alpha этим летом и 1.0 в следующем году.


Абсолютно новая консоль Google Play


Платформа Google Play сфокусирована на том, чтобы помочь разработчикам в развитии их бизнеса. С этой миссией в голове, мы переработали консоль Google Play, чтобы помочь вам добиться максимальных результатов от нашей платформы. Помимо того, что консоль стала проще и понятное в использовании, мы добавили новый функционал и изменения чтобы помочь вам:


  • Найти, обнаружить и понять фичи которые помогут вам процветать в Google Play
  • Легко найти новые руководства по изменениям политиках, статус релизов, и обратную связь от пользователей
  • Лучше понять результативность продвижения, с новыми отчетами о новых пользователях
  • Позволить всем членам вашей команды использовать функции Play Console с новыми опциями управления пользователями

Подробнее о новой консоли Google Play читайте в этом посте или присоединяйтесь к бета-версии прямо сейчас на play.google.com/console.



Вместо заключения


Специально для вас, в связи с выходом бета версии Android 11, сегодня, 17 июня, в 19:00 по Московскому времени, мы встречаемся с русскоязычными экспертами на специальном онлайн мероприятии, чтобы обсудить все в подробностях. Специальный гость мероприятия, известный каждому Android разработчику Чет Хас! Присоединяйтесь, будет интересно!


Расписание:
19:00 19:20 Знакомство с экспертами и гостем Chet Haase
19:20 19:30 Квиз с возможностью выиграть подарки с логотипом Android 11
19:30 20:30 Обсуждение новинок экспертами
20:30 21:00 Ответы на ваши вопросы (пишите в комментариях с #askandroid), авторы самых интересных обязательно получат подарки


Наши эксперты:



P.S.


  1. У нас есть 12 докладов, которые мы разместили на канале Android разработчиков на YouTube.
  2. Мы запускаем 11 недель Android с новым контентом для разработчиков каждую неделю! Темы, которые вы просили: UI, Jetpack, Machine Learning и многое другое. Посмотреть расписание можно здесь.
Подробнее..

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru