Номинируйте кейсы на Workspace Digital Awards 2026. Прием заявок до 15 декабря по льготной цене, успейте принять участие!
БиномТех
демонстрация нативной анимации на Android без использования сторонних библиотек.
БиномТех
#Приложение под ключ

демонстрация нативной анимации на Android без использования сторонних библиотек.

349 
БиномТех Россия, Москва
Поделиться: 0 0 0
Клиент

binomtech

Сфера

Развлечение и спорт

Регион

Россия

Мобильная платформа

Android

Сдано

Март 2019

Задача

Требуется разработать мобильное приложение для операционной системы Android, которое служит демонстрацией возможностей по созданию сложной и плавной анимации, используя только встроенные (нативные) API, без привлечения каких-либо сторонних библиотек. Основная цель заключается в том, чтобы доказать, что даже при наличии ограничений на итоговый размер приложения, можно создать визуально насыщенную игру с реалистичными эффектами. Игровой процесс должен быть простым для понимания и управления, но при этом визуально убедительным: игрок обнаруживает танки противника на карте и уничтожает их одним касанием, что запускает целую цепочку анимационных событий — поворот собственного танка в сторону цели, полет снаряда по траектории, взрыв и последующее горение уничтоженного танка.

Решение

    1. Архитектура приложения:

        ◦ За основу берется стандартный архитектурный паттерн MVVM (Model-View-ViewModel), который обеспечивает четкое разделение между логикой приложения и пользовательским интерфейсом.

        ◦ Реализация карты осуществляется с помощью компонента MapView из Google Maps API, что предоставляет максимальный контроль над отображением и анимациями.

        ◦ Все анимации создаются исключительно средствами пакета android.animation, включая такие классы, как ValueAnimator, ObjectAnimator, AnimationSet и различные реализации Interpolator.

        ◦ Для отрисовки игровых объектов (танков, снарядов и визуальных эффектов) используется Canvas в сочетании с Bitmap, которые загружаются из ресурсов (drawable).

    2. Функционал мобильного приложения:

        ◦ Экран приветствия:

            ▪ На экране отображается логотип разработчика «БИНОМТЕХ» и кнопка с текстом «Начать».

            ▪ Нажатие на эту кнопку инициирует переход на основной экран с картой.

        ◦ Экран карты:

            ▪ На карте в случайных позициях размещаются иконки, обозначающие танки противника (зеленые танки).

            ▪ В центре экрана, в фиксированной точке, располагается собственный танк игрока (коричневый).

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

        ◦ Логика выстрела:

            ▪ В момент касания танка противника запускается следующая последовательность:

                1. Собственный танк плавно поворачивается в направлении цели; это реализовано с помощью ObjectAnimator, анимирующего свойство поворота (rotation).

                2. Создается графический объект «снаряд» (например, маленькая иконка или круг), который анимированно перемещается от позиции собственного танка к позиции цели; анимация движения реализуется через ValueAnimator с применением PathInterpolator для задания траектории.

                3. Как только снаряд достигает цели, запускается анимация взрыва: иконка огня масштабируется с использованием ScaleAnimation, после чего появляется эффект разлетающихся частиц, создаваемый последовательностью ImageView с применением анимации прозрачности (альфа-анимации).

                4. После взрыва иконка танка противника заменяется на иконку горящего танка, которая затем медленно тускнеет и полностью исчезает с экрана за счет комбинации альфа-анимации и анимации изменения масштаба.

        ◦ Учет результатов:

            ▪ После каждого успешного попадания и уничтожения цели счетчик уничтоженных танков увеличивается на единицу.

            ▪ В случае, если уничтожен ваш собственный танк, на экране появляется диалоговое окно с сообщением, например: «Поражение. Танк уничтожен. В Вас попали 15 раз.».

            ▪ Можно предусмотреть функциональность для перезапуска текущего уровня.

        ◦ Оптимизация производительности:

            ▪ Несмотря на то, что все анимации выполняются в основном потоке, их реализация оптимизирована за счет минимального количества создаваемых объектов и использования оптимизированных Bitmap.

            ▪ Для управления последовательностью анимаций и обеспечения их правильного порядка без блокировки пользовательского интерфейса используются Handler и метод postDelayed.

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

    3. Дизайн интерфейса:

        ◦ Применяется минималистичный дизайн: карта является фоном, на котором четко видны контрастные игровые элементы.

        ◦ Танки представлены в виде стилизованных иконок, имеющих четкие геометрические формы.

        ◦ Эффекты взрыва выполняются в ярких оранжево-желтых цветах и сопровождаются плавным затуханием.

        ◦ Все кнопки имеют крупный размер и закругленные углы, что делает их легко доступными для нажатия.

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

    4. Технологический стек:

        ◦ Язык программирования: Kotlin.

        ◦ Фреймворк: Android Jetpack (в частности, компоненты ViewModel, LiveData и Navigation).

        ◦ Анимация: Классы из пакета android.animation.*, ViewPropertyAnimator, TranslateAnimation, ScaleAnimation.

        ◦ Графика: Canvas, Bitmap, Drawable.

        ◦ Карты: Google Maps SDK.

Результат

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

    • Интерактивную карту, на которой динамически размещаются цели-танки.

    • Реалистичную и сложную анимацию, такую как поворот объекта, полет снаряда по траектории, эффект взрыва и последующее горение.

    • Простой и интуитивно понятный пользовательский интерфейс управления.

    • Оптимизированные код и ресурсы, которые обеспечивают плавность работы даже на устройствах с невысокой производительностью.

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

https://binomtech.com/portfolio/20

Стек технологий

  • Kotlin Kotlin Язык программирования

Выскажите мнение
Авторизуйтесь, чтобы добавить свой комментарий.
оставить заявку

Хотите заказать похожий проект?

БиномТех с удовольствием обсудит вашу задачу

Оставить заявку