Задача заключалась в создании графиков на основе данных, предоставленных Telegram, без использования сторонних библиотек, для участия в конкурсе с призовым фондом 125 000 долларов. Участник с минимальным опытом работы с графикой принял вызов, чтобы освоить новую технологию.
Цель и сложности проекта
Конкурс требовал создания анимированных графиков за две недели. Сложность заключалась в отсутствии опыта работы с графикой и запрете на использование внешних библиотек. Целью было создание работающего приложения и понимание процесса разработки подобных решений с нуля. Внешний вид графика был простым, основная сложность заключалась в анимации.
Процесс разработки
Дни 1-2: Изучение основ и выбор подхода
Начальные этапы были посвящены изучению основ и выбору оптимального подхода. Было решено использовать Canvas для создания графиков. Проводилось активное изучение документации и поиск решений для реализации основных элементов.
Дни 3-4: Реализация базового функционала
К этому времени был реализован основной функционал: слайдер масштабирования, перемещение по оси X и простая проекция данных. Приложение содержало множество ошибок, базовая функциональность работала нестабильно. Проблемы были связаны с некорректным отображением данных по оси Y и исчезновением элементов при наведении.
День 5: Исправление ошибок и улучшения
День был посвящён исправлению ошибок. Слайдер был отлажен, продолжалась работа над реализацией элементов графика. Был достигнут значительный прогресс: работающие графики, корректно отображающие данные. Несмотря на наличие нескольких графиков, каждый работал независимо и корректно.
Дни 6-7: Оптимизация, рефакторинг и завершение
Шестой день был посвящен оптимизации кода и рефакторингу. Проект был декомпозирован на модули и классы, что улучшило структуру кода. Оптимизация производительности осуществлялась через проксирование контекста. Седьмой день завершился реализацией всех необходимых анимаций, включая плавное изменение непрозрачности элементов при масштабировании. Приложение содержало пять графиков с плавным взаимодействием и функционал переключения тем. Приложение было размещено на Firebase и сдано.
Результат и выводы
За семь дней был разработан полностью функциональный график с анимацией, корректно отображающий данные. Проект был успешно завершён, несмотря на начальный недостаток опыта. Разработчик отмечает важность самостоятельного поиска решений и значительное время, потраченное на изучение материалов и эксперименты с анимацией, а также удовлетворение от результата.