Download .APK (1.4 MB)

Testing and Issues

You can test this app and submit issues during the testing period of the Android Chart contest.

Entries with serious issues will not be able to win the contest, but even minor issues might be important for overall results.


by rating


Fair Quokka Apr 28, 2019 at 16:04
— 3 seconds delay on launch.
— Poor performance overall.
— The graphs are slow when filtering and scrolling.
Samsung Galaxy J7, Android 8.1.0
Dreamy Griffin Apr 28, 2019 at 20:22
Thanks for your report!
You are totally right about poor performance.
Check for drag & drop feature and side scrolling on main chart.
Filters are invisible, low performance, blinks on day/night mode change.
Samsung Galaxy S4, Android 5.0.1
Dreamy Griffin May 2, 2019 at 20:59
1. What do you mean under invisible filters?
2. There is a circular reveal effect on night mode change. It is sad if it blinks on your device.
Poor performance on time scroll first chart
Xiaomi a1
Dreamy Griffin Apr 18, 2019 at 13:34
I found out that these drawing overlay bars do not represent how smoothly widget is working. 
There is a trick - if you make a widget based on texture view or surface view - this widget performance won't be shown at all in these bars. Eventually, you could find yourself in the situation when your widget (chart based on TextureView or SurfaceView) could be very buggy with visual lags, but drawing bars will show that everything is fine (because everything indeed would be fine on the main thread).
ANR + CRASH: rotate device twice. Video proof + logs from ADB are attached; (Captured device settings at start, so you can't try to say it's emulator)
Xiaomi A1 / Android 9
Dreamy Griffin Apr 19, 2019 at 20:16
Yes. My fault. I do need to organize the database. Instead, I hardcode ready to use data in the dataset file with the proper model. So the first start of the app (or configuration changes) suffers from this and results in long loading time. This issues could be easily eliminated creating a database - ROOM, SQLite or Realm. Indeed I have ROOM database in first stage. But then I eliminate it. I thought it would save me a few kb from app size.

Thank you for your detailed review.
Or this attention to details?
Dreamy Griffin Apr 22, 2019 at 05:27
Yes. It is due to wrong rounding when I define absolute coordinate for each data set in loop.
Or this?
Dreamy Griffin Apr 22, 2019 at 05:28
Thanks. As I said previously I change colors manually. Obviously I miss this resource.
Okay, I just laughed when you cheat the rating.
Then I laughed on your excuses about performance "bla bla gpu bars is shit, bla bla need textureview, blah blah how to switch theme fast?"
Then I laughed on your excuses in general - who cares why it's shit? Room or Realm? TextureView or canvas? Perf problems with dialog? NestedScrollView and 10 charts? - There are a lot of apps with nice performance without dbs, on canvas, with dialog and nestedscrollview, so the problem in you curved arms, sorry.

And finally I'm rofling that you asked a friend or even just submit a review from fake that it's a good app with A SUCH ATTENTION TO DETAILS. Next few issues I will demonstate the REAL LEVEL OF ATTENTION TO DETAILS IN YOUR APP.
Wtf man, why don't you just admit defeat?

Maybe text clipping is attention to detals?
Xiaomi A1 / Android 9
Dreamy Griffin Apr 22, 2019 at 05:49
Keep Calm. I know that I cannot win because of:
- not good enough performance
- no bonus tasks

About curved hands. I have at least tried my best creating this charts, do you? All those issues (except performance and probably stack bars strange overlaps) could be fixed in few hours. 

Keep calm - I won't win. This rating means far less that you may expect. 

I know that there are lot of issues. The main issue - performance. Sorry. I have still plenty to learn. Why so aggresive?

Issue duplicated. I have already answered above.
Hello. I tested your app on 2 real devices. I found some 
1. If I click on a chart and scroll it, the popup items label will be shaking. (video 1) - only on OUKITEL C5
2. The last value of a chart wrong sometimes - the last date on date label less then date on the popup items label (screenshot 1)
3. The values into the popup items label wrong, sometemis. (video 2/ screenshot 2 'left' item)
4. I can't see whole chart on my device, when I rotate it (screenshot 3)
Innos d6000 (API 22 - android 5.1.1), OUKITEL C5 (Api 24 - android 7.0).
Dreamy Griffin Apr 19, 2019 at 20:03
1. Yes. I admit I have also come across this issue. This small issue happens due to a popup window (date dialog). When in NestedScrollView on some devices when the popup is on the screen you cannot scroll until you dismiss/hide popup explicitly. Though I write specific logic to dismiss offscreen dialogs.

2. Of course, they are different. This last date above chart is equal to the last date at main preview bounds (see the width of Y lines).

3. Yes. This small issue related to android TextSwitcher widget. When data are swapped rapidly and in the dialog then wrong measuring may occur. In this case, "060" are wrong measured width of "1060". I think I should have set "android:measureAllChildren" attribute.

4. Many other participants locked screen orientation. But I don't want to. I do made the height of chart constant, which is not the best decision. But it is not even an issue, considering the feature of side-edge scrolling of main chart and pinch-to-zoom on the preview chart.
X-axis label text is cut at the bottom.
Nexus 5 / Android 6.0.1
Dreamy Griffin Apr 20, 2019 at 16:24
Thanks. In rush I did not pay enough attention to this. When I was reserving space in view for date labels row, I add textSize, offset, etc. That when you draw text you specify x and baseline instead of top comparing to line. And thing come to my mind that I should have been added to baseline extra offset - difference between descent and baseline

Thank you for your detailed review.
And I can stop unfortunately. Now about the same (your) review & stage 1 revisiting....

>As a bonus, he adds the charts optimization from 1 stage, to show hs the best.
>Due to this, there is more complexity, but the app is still flying.
>>> flying

ONLY GPU bars are FLYING up to status bar in your app, nothing else.
Dreamy Griffin Apr 22, 2019 at 05:33
Duplicated. Come on, as I said many times here, performance is the weakeast point of me app. I know that.
Fearless Cry Apr 17, 2019 at 20:38
Very poor performance with normal scrolling. Skipping frames noticeable to the naked eye
Mi A2 Lite / Android 9, Mi A1 / Android 9
1. App becomes very slow, when tooltip is opened.
2. Strange behaviour, while scrolling when tooltip is opened
3. Lags when switching theme
4. Wrong behaviour by click and long click on filter. By click it resizes, but they shouldn't by design. By long click it should switch off others. Also there is a lag between click and action.
LG Nexus 5X, Android 8.0.0
Dreamy Griffin Apr 19, 2019 at 20:37
1. Regretfully, performance is not the best I admit. Probably due to inner precise but heavy logic. Also, I did clip rect of the main chart viewport. For some strange reasons popup drop overall performance. Probably it is due to the heavy calculations of diff utils for data dynamic animated sorting (nobody did that) each time date are changed
2. Duplicated. See explanation of this issue above.
3. Of course, it lags due to circular reveal effect and a whole lot of custom color remapping. Very custom approach when every theme-based colors are changed. All dialog theme, recycler items of every chart, all 10 chart's colors are swapped and invalidated.
4. DRAG & DROP. I am the only one who made this. For line chart rearranging items influence drawing order, for stack sharts - stack order. LONG CLICK - drag & drop. DOUBLE TAP - Filter Others.
Strange delay time on single click is always present if you support click along with double tap.
Thank you for your detailed review.
Fearless Cry Apr 17, 2019 at 20:52
Crash while scrolling histogram
Mi A2 Lite / Android 9, Mi A1 / Android 9
Dreamy Griffin Apr 19, 2019 at 10:42
Could you provide video proof? (Not emulator simulated screen size)
Fearless Cry Apr 17, 2019 at 20:42
Very large lags when switching color schemes. Pay attention to the switch button.
Mi A2 Lite / Android 9, Mi A1 / Android 9
Dreamy Griffin Apr 19, 2019 at 20:51
See "Stout Ladybird Apr 19 at 19:33" 3rd answer below.

Guys, I would really appreciate If you share your knowledge of how to change theme dynamically without recreating activity and without lags considering NestedScrollView, 10 main charts, 9 preview chart, possible few dialogs on screen and a whole bunch of color that are needed to be swapped instantly. Also there is a circular reveal effect.

Thank you for your detailed review.
Wrong behavior, sometimes charts are dissapear
Dreamy Griffin Apr 18, 2019 at 13:21
Could you provide a video demonstration? Because from dialog above screenshot was made during running animation.

No antialiasing on axis labels, the text doesn't look crisp.
Nexus 5 / Android 6.0.1
Dreamy Griffin Apr 20, 2019 at 16:07
Yes, sure. I disable paint antialias flag. Not a big deal to add it. Actually I should have added this flag on text paint.

Thank you for this pixel level review. It mean that my app attract your attention. If you would like me to add it later - I will.
Or this? - No spaces in tooltip values (18784200 instead of 18 784 200)
Dreamy Griffin Apr 22, 2019 at 05:30
Yep, my fault.

Thanks, dude.
When scrolling, the popup remains above the toolbar.
Honor 7X
Dreamy Griffin Apr 17, 2019 at 15:38
It is above toolbar just because of elevation. (popup elevation seems higher that toolbar elevation). Could be fixed changing literally one value. I found this issue not critical, do you?

But I want to report the bug I have found. On some devices under not yet defined circumstances, visible popup prevents nested scroll view from scrolling. Though, I have written the logic that dismisses offscreen dialogs.
Design doesn't match design layouts.
Honor 7X
Dreamy Griffin Apr 17, 2019 at 16:34
1. Again. I could say that video and screenshot provided by telegram were different (because the video is general and probably for web or ios). But the control zone does semi-transparent in android screenshots. Also, the widget is heavily customizable. For instance, for the control zone, you could change width\hight of control zone, side touch zone color, area control color. In other words, everything is customizable.

2. Night mode icon. Does it really matter? Seems that no one cares about this in the first stage. But in the first stage, I was amongst a few persons who did this exact icon. I do not think that another similar icon is an issue.

3. Also each chart area elevation? As my first answer. I do not think that elevation here is an issue (could be literally changed setting one value). Also, consider that there were not any specification about outer layout like.
Can not see points. X scale is not round numbers, so this is very difficult to read this charts
Dreamy Griffin Apr 18, 2019 at 08:30
1. This dialog placement is not an issue. Logic is next: priority to show dialog window to left of date vertical line. If there is no place to completely show the dialog and do not overlap intersect dots, the dialog will be shown at right. Its position is also always coerced to visible screen range.

2. This is not an issue. Logic is next: User can specify how many y line he wants to see. That proper values are shown at each position of screen
It takes about 6 seconds to open, has a very big size for the app without bonuses at all, and without huge database.
Dreamy Griffin Apr 18, 2019 at 13:19
Yes. In the first stage, I made ROOM database with all dataset. But nobody cares about this at that time. Everyone cares about app size (which is strange to my opinion).

Size of the app is relatively high due to android appcompat library. It is not correct in my opinion to assess chart app by the size of the whole sample app, rather than chart module size (chart widget related files) itself.
Empty space on X-axis on start
Xiaomi A1 / Android 9
Dreamy Griffin Apr 19, 2019 at 20:11
The is the drawback of the next approach (I think the best one):

1. First, one may specify how many date labels they want to see.
2. Then, First and Last dates are always added and moreover, they have a sticky effect and properly shifted to align start/end of the chart, respectively.
3. Other dates are calculated with measured step.

So is some scales there will be gaps between pre-last and last date. Probably there is still a small issue in the calculation. It seems that in StackBarChart I have eliminated this issue. Forgot to fix logic in other charts due to lack of time.

Thank you for your detailed review.
Or this detail? Range starts with 10 march, but I've selected 9 march. How come?

FIY: And please without excuses, nobody cares about tech details of your fails
Xiaomi A1 / Android 9
Dreamy Griffin Apr 22, 2019 at 05:55
Duplicated. See anwer above. Date range is shown for inner area, where chart begins and ends (see width of y lines)

P.S. Do not be too selfish. You can't state "nobody cares". You are not everybody to said that.

Actually, I think that at least few people here may find my explanations usefull.
- Attention to details. Circle under the line, although it must be on top.
Dreamy Griffin Apr 22, 2019 at 05:38
Disagree with that. Because lines support drawing order. See by yourself - long press on list item init drag and drop. The circles are parts of respetive lines, and not drawn on top lines. The main thing here, that if line below the higher's line dot - it won't be cut. See screenshot below.
Sum is not 100%
Dreamy Griffin Apr 18, 2019 at 08:20
It is obvious due to rounding. But it is not critical in my opinion. Moreover, there could be only 1 percent total discrepancy (again, due to rounding)
Basil Miller Apr 21, 2019 at 14:25
The app is "exactly good". I like the approach of this developer because of his attention to the details. Look at this. His app looks just the same as in the design preview. The functionality works the same as good in the preview.

PS: Please don't look at the performance Android chart. It is glitched. Just try the app on your own and you will see the high FPS. I already know that from the previous challenge.

- Performance.
- Cool animations.
- Attention to the details.
- Excellent logic and design. (The main AC for the winner app)
- Additional functionality as: reorder of lines and chart side scrolling when in tooltip mode.
- As a bonus, he adds the charts optimization from 1 stage, to show hs the best. Due to this, there is more complexity, but the app is still flying.

- No bonus tasks.
- Initialization FPS drop.
Dreamy Griffin Apr 21, 2019 at 14:51
Thanks for that review.
Nice to hear that you found drag&drop and tooltip sidescrolling additional features useful.

Performance could be better. Probably I should rework it later on TextureView or so.

About first init time. I admit - there is an issue. I have expalained this somewhere above. But it is related more to app architecture, because of database, not to chart widget itself.

Again, thank you for your detailed review.
Nobody added any issues yet...