Всем привет,

Добро пожаловать в мою новую серию, в которой я планирую задокументировать свой путь в разработке библиотеки диаграмм с использованием Canvas и Compose.

В рамках этой серии я хочу разработать различные типы диаграмм, которые были бы гибкими, простыми в использовании и простыми в освоении. Для начала сосредоточусь на разработке библиотеки для Android; однако в конечном итоге я хотел бы увидеть, насколько хорошо библиотека будет работать при попытке использовать ее с платформой JetBrains Compose for Desktop.

Итак, мой первый риторический вопрос: зачем мне создавать библиотеку графиков?

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

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

К счастью, я наконец наткнулся на библиотеку hi-manshu’s Charty на GitHub. Это было именно то, что я искал! Простая в использовании и простая библиотека графиков для Android с использованием Jetpack Compose.

Однако у него все еще не было точного типа диаграммы, который мне нужен для приложения моей жены. Хотя было что-то похожее. Итак, я разветвил репозиторий и начал работать над добавлением своей диаграммы.

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

Моя цель для этой библиотеки состоит в том, чтобы расширить основу, уже заложенную Charty, и расширить ее, чтобы она соответствовала функциям, общим для других известных библиотек для построения диаграмм, таких как Matplotlib, Seaborn и Lets-Plot.

Вот как это может выглядеть для начала:

Давай начнем!