Я создаю пользовательский интерфейс для многофункционального веб-приложения, которое должно одинаково хорошо работать на настольных компьютерах и смартфонах.Интерфейс содержит некоторые непрямоугольные элементы и изогнутые линии, поэтому его нельзя сделать с помощью обычного HTML.Также есть значки (изначально представленные как SVG) и некоторые сложные эффекты (тени, размытие и т. Д.).
SVG - лучший выбор, но, насколько я знаю, встроенный браузер Andnroid не поддерживал его.С другой стороны, canvas может быть быстрее, но возникают проблемы с реализацией эффектов, генерацией событий и невозможностью выделить / скопировать текст.
Возможно сделать независимую реализацию для обоих случаев и выбрать лучшую во время выполнения, но с поддержкойи дальнейшее развитие такой системы может стать настоящей головной болью.Я имею в виду промежуточный абстрактный слой, который можно подключить к SVG или Canvas рендереру.Поиск готовых решений не увенчался успехом.
Я новичок в программировании с графическим интерфейсом, поэтому мой вопрос: каковы лучшие практики для такой структуры абстракции?