Python 跨平台的 Kivy 和 Toga(Beeware 项目)的区别
Difference between Kivy and Toga (Beeware project) for Cross platform in Python
我知道在 Python 中构建跨平台的唯一方法是 Kivy,但我最近听说了 Beeware 项目和这个名为 Toga 的工具。据我所知,它仍处于早期阶段,很多人也不熟悉它,但网站上有几个基本教程。它看起来很有前途,但我不知道它的未来,也不知道如果我开始研究它可能会遇到的问题,因为它现在可能有很多错误。我在文档中读到 Toga 可以让你构建原生跨平台应用程序,Kivy 应用程序不是原生的吗?它们是否像混合应用程序,就像您在 Phonegap 上构建的应用程序一样?谢谢
Toga 通过将 Toga api 映射到不同系统上的本机平台小部件来实现其图形用户界面。这意味着这些应用程序的外观和行为将自动与该系统中的其他 'native' 应用程序一样。相比之下,Kivy 使用 opengl 进行绘图,使用它自己的 widget 工具包。这意味着默认情况下它在所有不同平台上的外观和行为都完全相同。您可以对其进行自定义,但实际上很难获得真正像另一个框架一样运行的东西。
两种方法各有利弊。 Kivy 非常灵活和便携,因为您几乎可以在任何地方使用 opengl,而更难的部分可能是编译 Kivy 和 Python 本身。另一方面,Toga 的方法是获得真正像本机应用程序一样运行的东西的唯一方法,并且还可能回避一些 Kivy 问题,例如 Android 上的启动速度相对较慢。也就是说,我不确定是否需要显式包装不同的小部件意味着它可能不太灵活,与 Kivy 的绘图 API 相比,它基本上可以在没有特殊平台支持的情况下实现任何事情。
我知道在 Python 中构建跨平台的唯一方法是 Kivy,但我最近听说了 Beeware 项目和这个名为 Toga 的工具。据我所知,它仍处于早期阶段,很多人也不熟悉它,但网站上有几个基本教程。它看起来很有前途,但我不知道它的未来,也不知道如果我开始研究它可能会遇到的问题,因为它现在可能有很多错误。我在文档中读到 Toga 可以让你构建原生跨平台应用程序,Kivy 应用程序不是原生的吗?它们是否像混合应用程序,就像您在 Phonegap 上构建的应用程序一样?谢谢
Toga 通过将 Toga api 映射到不同系统上的本机平台小部件来实现其图形用户界面。这意味着这些应用程序的外观和行为将自动与该系统中的其他 'native' 应用程序一样。相比之下,Kivy 使用 opengl 进行绘图,使用它自己的 widget 工具包。这意味着默认情况下它在所有不同平台上的外观和行为都完全相同。您可以对其进行自定义,但实际上很难获得真正像另一个框架一样运行的东西。
两种方法各有利弊。 Kivy 非常灵活和便携,因为您几乎可以在任何地方使用 opengl,而更难的部分可能是编译 Kivy 和 Python 本身。另一方面,Toga 的方法是获得真正像本机应用程序一样运行的东西的唯一方法,并且还可能回避一些 Kivy 问题,例如 Android 上的启动速度相对较慢。也就是说,我不确定是否需要显式包装不同的小部件意味着它可能不太灵活,与 Kivy 的绘图 API 相比,它基本上可以在没有特殊平台支持的情况下实现任何事情。