Great idea!
Could you include a function to change the size of the rectangles in which brightness is averaged? Perhaps a function to exclude selected rectangles from calculations? I also wonder how you average within the rectangles. Simple mean? If so, is there a provision to exclude outliers?
How about this for display: the app calculates an exposure based on whatever preferences on has selected. Then, I would like to see the little rectangles not tinted in zone values or such, as I suspect that would be harder to view, especially in sunlight, than visualising it in one's mind. Rather I'd like to see "+X" or "-X", X being the distance in stops from middle gray (or perhaps the chosen exposure index such as IRE), with just those outside of the (pre-selected) recordable range colored as a warning.
If you expose based on measurement at the "dimmest" block that area becomes "correctly" exposed. However what happens to your highlights is another story..
I believe most people mean something like placing it in zone II or III or on IRE index, not "correct" (Zone V) exposure when they say "basing exposure on shadows". In a similar vein:
What puzzles me at the moment is that typically the brighest "block" is 1-2 stops higher than what I get when exposure is calculated from the whole picture.
Isn't ~2 stops higher about right? After all you want the brightest block to be rendered brighter than middle gray?
The terminology issues make this stuff so much harder!