"Native apps are bad at rendering text" is interesting framing. Web browsers are native apps, after all, and they're great at rendering web text. Native PDF viewers are great at rendering PDF text. And native rich text editors are great at RTF text—with rulers containing tab stops, etc.
(Back in the '90s, I built parsers and renderers for all three of these: OmniWeb on AppKit, OmniPDF on AppKit, and RTF text for Java.)
The very real, hard problem is round-tripping content between text systems.