手机软件开发-使用Python进行手机平板移动开发:Kivy与BeeWare框架

过去,Android 和 iOS 上的移动应用程序开发并不是 Python 的强项,但这可能会改变......

使用 Python 开发移动应用程序怎么样? 从历史上看,Python 在编写移动 GUI 应用程序方面并没有什么出色的表现。

事实上,仅使用纯Python进行Android和iOS开发几乎是不可能的,很遗憾

值得庆幸的是,近年来出现的许多发展极大地改善了用 Python 编写移动应用程序的前景。

在本文中,我们将了解使用 Python 开发移动应用程序的一些现代选项。 我想特别提到两个框架:Kivy 和 BeeWare 项目。

Kivy – 跨平台 Python GUI

Kivy 是一个用于开发跨平台 GUI 应用程序的开源 Python 库。 它允许您编写在主要桌面平台(Windows、Linux 和 macOS)以及 iOS 和 Android 上运行的纯 Python 图形应用程序。

现在,每当我听到新的 GUI 工具包时,我总是想知道它“原生”的感觉如何 - 我相信优秀的 GUI 应用程序应该利用它们运行的​​平台。

例如,当我使用 iPhone 时手机软件开发,我希望我使用的应用程序保持一致。 使用根据其他平台的用户界面模式设计的应用程序可能会很烦人。

Kivy 附带了一个自定义 UI 套件,它提供了自己版本的按钮、文本标签、文本输入表单等。 这意味着这些小部件不是使用本机平台 UI 控件呈现的。 这有优点也有缺点:

一方面,这确保了应用程序从一个平台到另一个平台的一致性和可移植性。 但是,另一方面,这也意味着您的 Android 应用程序不会真正看起来像 Android 应用程序......

但是,根据您想要的应用程序类型,这可能根本不是问题。 例如,对于大多数游戏来说,UI 的“原生性”并不是很重要。 对于某些类型的利基应用程序也是如此,例如用于制作音乐的图形 MIDI 控制器。 但对于其他类型的应用程序,这可能会对可用性产生巨大影响。

因此,如果您可以在应用程序中使用非原生 UI 工具包,那么 Kivy 是一个不错的选择。 它允许您使用 Python 编程技能来编写移动应用程序,而无需学习其他特定于平台的语言手机软件开发,例如 Apple 的 Swift。

您可以在 中了解有关 Kivy 的更多信息。

BeeWare 项目 – 原生 Python 移动应用程序

我想向您介绍的第二个 Python GUI 和移动开发框架称为“BeeWare”项目。 它为您提供了一组工具和一个抽象层,用于用 Python 编写具有本机外观的移动和桌面应用程序。

Kivy 和 BeeWare 之间的主要区别在于,BeeWare 程序使用其运行平台的本机 UI 工具包,而 Kivy 应用程序使用自定义 UI 工具包,该工具包在所有平台上使用相同的控件。

使用 BeeWare,您的应用程序使用的 UI 控件将是底层操作系统提供的按钮、复选框和表单元素。 这意味着您可以构建在外观和感觉上 100% 适合每个特定移动(和桌面)平台的应用程序。

听起来不错,对吧?

唯一的缺点是 BeeWare 项目仍然相对较新,目前许多开发工作由 Pythonista Russel Keith-Magee 领导。 与任何多年来没有机会成熟的框架一样,API 更改、错误和缺少功能(可能经常)意味着作为开发人员需要做更多的工作。

不过,我鼓励您阅读 BeeWare,这是一个非常令人兴奋的项目。 您可以在这里了解更多信息:https://pybee.org/project/using/

Pythonic 移动应用程序开发 – 结论

现在,如果你想使用Python构建一个移动应用程序,你应该选择哪种方式? Kivy 和 BeeWare 都值得考虑。 就成熟度而言,Kivy 似乎是更成熟的平台。

对于我个人最感兴趣的用例(使用 Python 制作具有本机外观和感觉的移动和桌面应用程序),我认为 BeeWare 最终将由于“本机 UI 控件”的主导地位而获得进展。

不过,我相信这种情况在未来将会改变。 在移动开发领域,Python 的未来暂时看起来更加光明。 随着Python的日益流行,关于使用它进行移动应用程序开发存在很多争议。

就我个人而言,我喜欢使用 Python 来实现跨平台移动应用程序,因为 Python 是一种非常令人愉快的语言。

我很高兴看到一年后会发生什么。 因此,如果您正在寻找一个出色的开源项目,请考虑 Kivy 和 BeeWare 项目。

你将为我们所有人创造更美好的未来