目标
BeeWare 项目的最终目标:像 Django 为网络软件所做的一样,为移动和用户面对的软件这样做:为用户提供一套工具和库让他们能够开发丰富的本地用户界面,并将其部署到他们的设备上。这包括:
- 使 Python 能够在不同设备上运行的工具、
- 打包 Python 项目以便在这些设备上运行的工具、
- 用于访问设备的原生小组件和功能的库、
- 帮助开发、调试、分析这些项目的工具。
我们的目标是,这套工具将足够简单易用,适合新手在类似 Django Girls 的环境中使用;但又足够强大,强大到可以用来推动下一个 Instagram、Pinterest 或 Disqus。
最重要的是,它的目标是作为一个开源社区完成所有这些工作。开放源代码开发流程已被证明是开发稳健可靠软件的最可靠方式,而且任何人都可以访问该软件意味着每个人都可以从同一套优秀的工具开始,无论是专家还是热心的业余爱好者。
Python 无处不在
现代计算项目不能忽视过去 10 年计算领域的最大发展。Python 以自己是一种跨平台语言而自豪。10 年前,跨平台意味着可用于 Windows、macOS 和 Linux。如今,移动计算更为重要。尽管如此,在移动平台上进行 Python 编程的好选择并不多,跨平台移动编码仍然难以实现。
BeeWare 将移动平台和其他新兴平台(如手表和机顶盒)视为计算生态系统中的一等公民。因为如果人们拥有了这些设备,为什么不能用 Python 编写给这些设备的软件。
到处原生
使用主题实现跨平台很容易。不过,很容易发现使用主题构建的应用程序--它们的行为与其他应用程序不太一样。小部件看起来不太对,或者在 OS X 应用程序的窗口上有一个菜单栏。主题可以做的很接近,但总会有蛛丝马迹。
最重要的是,原生小部件总是比主题通用小部件更快。毕竟,您使用的是经过调整和优化的原生系统功能,而不是在通用小部件之上叠加的绘图引擎。
主题也错过了原生平台的许多的无障碍优势。现代操作系统的作者花费了大量时间为行动不便、视力或认知能力受损的用户调整功能。如果使用本地小组件,通常可以免费获得这些功能。如果使用主题的小部件,也必须重新实现这些功能。
BeeWare 使用原生部件和原生功能,而不是使用基于主题的应用程序开发方法。
Python 原生
BeeWare 还是一个毫无保留的 “Python 优先” 框架。我们喜欢 Python。我们喜欢它的外观和工作方式。如果 Python 在某一特定平台上不可作为一流的选项,我们将尽一切必要的努力使 Python 成为一种开发语言。 当我们有机会将 Python 习语用于 API 或设计时,我们就会这样做。这意味着我们将 使用生成器、上下文管理器、yield from,异步调用等等,以便提供最好的 Python 原生 API。
我们还着眼于未来--这意味着我们只支持 Python 3。
原生体验
任何工具的使用体验都始于安装过程。BeeWare “到处原生”理念的一部分就是采用适当的原生安装机制。如果您使用的是用户空间工具,则应将其作为一个软件包展示给您,并以与安装其他工具相同的方式进行安装 -- 无论是通过应用程序商店、安装程序或简单的可执行文件包。最终用户不应该知道你是用 Python 编写应用程序的。
但如果您使用的是开发工具或库,那么它应该集成到你的开发环境中。既然我们使用的是 Python,这意味着您应该能够使用 pip install 将其安装到您的虚拟虚拟环境中,仅此而已。不需要 C 扩展,不需要编译器,不需要设置系统路径或环境变量 -- 只需安装、导入,然后开始编写(或运行)代码。