Skip to content

Telegram April 2019 Charts Contest Android App (4th place)

Notifications You must be signed in to change notification settings

opiumfive/android_chart_stage2

Repository files navigation

Telegram April contest 2019. (https://t.me/contest/59) (1 week)

Result - 4th place due to only 1 of 5 bonus goal

(March contest - https://github.com/opiumfive/android_chart_stage1)

Goal is to show simple charts with 5 bonuses (I did only last):

  1. A line chart with 2 lines, exactly like in Stage 1
  2. A line chart with 2 lines and 2 Y axes
  3. A stacked bar chart with 7 data types
  4. A daily bar chart with single data type
  5. A percentage stacked area chart with 6 data types Bonus goal: A percentage stacked area chart with 6 data types that zooms into a pie chart with average values for the selected period

"When selecting the winners of Stage 2, we will consider speed, attention to detail and functionality. "

Result apk:

https://github.com/opiumfive/android_chart_stage2/blob/master/TChart-v2.0.apk

Code for renderer is just a god object for all 4 types of charts, it was only 1 week and almost no free time to make code well constructed.

Small result video:

Overall: https://drive.google.com/open?id=1ISAEmVd3YekvpU1Z5BrJZfNqJjVwtmsK

Area to pie transition: https://github.com/opiumfive/android_chart_stage2/raw/master/area_to_pie_video.mp4

Some notes additional to part 1:

  • still on canvas;
  • reworked y animations;
  • optimized performance for CPU-based drawing functions by bitmap caching;
  • for area to pie chart transition "canvas.drawBitmapMesh()" function used, btw not well documented;
  • optimized for landscape mode
  • apk size 120kb with 50kb json data

Public review: https://contest.dev/chart-android/entry177

Todo things:

  • optimize performance of area by using drawColor-clipPath
  • remove antialiasing from several types of chart
  • make proper animation of filter button

About

Telegram April 2019 Charts Contest Android App (4th place)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages