С уважаемым
Fian не соглашусь.
- В целом, разницы в производительности с React Native вовсе нет. Это не мое мнение, и не является секретом. В Хабре, Readit и т.д. неоднократно обсуждалось.
- С мнением на счет лучшего функционала, так же необосновательны. Технологии на котором основывается работа Kivy и React Native одна и та же. Различие в способе запуска, это CPython и Javascript движок (V8 или что там). Количество готовых библиотек для Python, наверное, даже чуть больше чем для JS. И там и там можно напрямую обратиться к API операционной системы, в случае чего.
- Для корпоративных приложении и production решении важна поддерживаемость решения. Между Kivy и JS фреймворками (React Native, NativeScript, ...), к сожалению, разница не так велика. И отстает от Native решении. У Kivy недостаток в наличих хороших примеров и документации, а у React Native плохая стабильность продукта (сам был свидетелем и не раз обсуждалось в интернете)
- Хоть Kivy весьма не плоха, и хоть имею более 10 лет опыта с Python, но для себя решил использовать NativeScript+Vue. Решение хоть и молодое, но из за Vue фантастический удобная и за счет NativeScript постабильнее React Native
- Слежу за развитием Kivy, и готов переидти на него после появления лучшего бинарного сборщика(не нравится buildozer) и развития UI фреймворков для него (KivyMD, ...)
В чем плюсы и минусы kivy? Что должен знать перед началом изучения/разработки? Какие есть подводные камни, особенности?
Все зависит от специфики Вашего приложения. Тема слишком обширная. Для создания строгого дизайна в виде форм используйте вместе с KivyMD. Для игр и приложении для обучения, где важна графика, Kivy и так очень хороша.
Могут возникнуть трудности при сборке бинарных пакетов для мобильных ОС. Для Android есть buildozer, с которым люди испытывают проблемы. В Хабре есть
статья про его настройку. А так же серия статьей про сам Kivy.
Для процесса обучения одними советами не обойтись: читайте книги по данной тематике, зарегистрируйтесь и подпишитесь на нужные темы в
dev.to/, не ограничивайтесь только программированием - изучайте сам процесс разработки (Agile, рефакторинг, тестирование, ...)