Есть ли у вас какие-либо советы, как мне сделать свой код более переносимым (простое переключение библиотек)?
Это редко имеет существенное значение.
Если вы считаете, что должны обеспечить мобильность, у вас есть три варианта.
Наименее общий набор функций. Возьмите все библиотеки, которые, возможно, захотите использовать. Запишите все классы, методы и атрибуты и найдите наименьшее общее подмножество. Вы должны подумать, чтобы сопоставить все различные имена, чтобы быть уверенными, что семантика у вас как можно ближе.
Это даст вам минимальную графическую реализацию, которую должен запускать везде.
Тем не менее, он будет неэффективным, и вашему приложению (или оболочке) придется много программировать, чтобы заполнить недостающие функции единообразным способом.
Союз всех функций. Возьмите все библиотеки, которые, возможно, захотите использовать. Запишите все классы, методы и атрибуты и просто добавьте каждую новую вещь в постоянно растущий список функций. Вы должны подумать, чтобы сопоставить все различные имена, чтобы быть уверенными, что семантика у вас максимально близка, чтобы избежать добавления дубликатов.
Это создаст проблемы, потому что функция, находящаяся в одной библиотеке, должна быть реализована во всех других библиотеках. Это много программирования.
Вы не первый, кто задумывается над этим и осознает, что это действительно очень трудно сделать.
Так что же отступить?
Выбор 3.
Выберите свою любимую библиотеку. Получите что-нибудь на работу.
В зависимости от потребностей клиента определите наиболее востребованную альтернативную библиотеку. Создайте необходимую оболочку, чтобы ваше приложение могло работать с этой библиотекой.
Повторяйте этот последний шаг до тех пор, пока у вас не останется клиентов или спрос на них не станет настолько низким, что увольнять их как клиента дешевле, чем поддерживать их.