I suggest throwing up a spinner while calculating and maybe let the user enter start and end dates. Healthkit calculations on step interval data are not super quick right now even on Apple's newest devices so if you wanted to offer higher granularity output like 5 minute or even 1 minute data, restricted reporting intervals I think are a must.
Its cool that it looks like you're putting in your own 0s for step data even when Apple's HKStatisticsCollectionQuery API's doesn't return anything for intervals where the phone wasn't moving. I think thats probably the right behavior for something that gets integrated over time like steps. I find Apple's own health app misleading with the hourly graphs that it shows in this regard since if I walk 2000 steps between 3 and 4, then do nothing till 7, then walk another 4000 steps between 7 and 8 I'll see a line (granted a dotted line) from 2000 to 4000 between 3:30 and 7:30. (Apple's argument would be that it really didn't know what I was doing between 4 and 7 but I think thats kind of silly ... if the phone didn't move, that's 0 steps)
But I wonder if for something like weight (a discreet unit as opposed to a cumulative unit in Apple-speak) if it might make more sense to leave the table cell blank (or interpolate between the rows with actual values) rather than put in 0 (though I guess consuming apps / spreadsheets could fix it for any discreet measures that don't usually have allowable values near 0).