It depends. If you want to support a lot of devices / screens / versions / defaults / settings / mods / roms / whatever else I forgot, then, yes.
You can always target a sane subset, which makes the number of edge-cases manageable for a smaller team.
I had a WebView that I used to display PDFs in my application then I realized some versions of the internal browser didn't support opening PDFs. For those devices, I tried to create an intent (Was it called that? It has been so long), only to learn that many didn't come with a PDF viewer at all. So I created a service to render PDFs to images server side. A bug in the browser messed up the layout (pages with both orientations existed in documents and even a humble table layout couldn't make them display reliably across the devices). I started loading the images and displaying them in a native view. Then I had memory problems in some devices. Then I started lazy-loading each page. That seemed to work but users from smaller screens complained about double-tap-hold-zoom thing. And so on...