跨平台python开发_使用Python和BeeWare进行跨平台开发

跨平台python开发

如果要为Android开发,则必须使用Java。 如果要为iOS开发,则必须使用ObjectiveC。如果要为Web开发,则必须使用JavaScript。 对?

这些可能是这些平台的首选语言,但最终,移动电话和Web浏览器是计算平台,并且您只需做一些工作,就可以使用所需的任何语言。 使用BeeWare库和桥套件,您可以仅使用Python。 并且,您可以使用相同的代码在所有这些平台上进行部署。

本文提供了我们即将举行的PyCon US 2017演讲的预览,即浏览器中的Snek ,它深入探讨了BeeWare项目如何使用Python处理BataviaToga的前端开发。

为什么选择Python?

因为我们没有使用HTML和JavaScript,我们就可以开始看浏览器作为,我们可以以适应交付应用程序,而不是一组特定的技术,你必须编写代码的平台。 一旦采用了这种思维方式,它便使我们有空去研究构建Web应用程序的各种新方法。

Python是最容易使用的语言之一,并且没有Java或Objective C的学习曲线。最近,许多科学界,包括天文学和数据科学,都将Python选为他们的首选语言。 为了能够使用他们已经知道的语言来创建自己的应用程序,例如基于移动的数据记录系统,而不必学习全新的语言,对所有这些科学家来说都是一笔巨大的财富。

它是如何工作的?

在浏览器中本机工作的唯一语言是JavaScript。 当然,可以使用Flash,Silverlight等解决方法,但是它们都容易遇到安全性和开发问题。 但是,巴达维亚使用JavaScript运行Python。 怎么样? 通过在JavaScript中实现Python虚拟机。 Python本身只是一种语言规范。 另一方面,CPython是大多数人使用的Python实现,而PyPy是另一个实现。 编译后的CPython会生成您可能在文件系统中看到的.pyc文件。 这些是大约100个不同基本级别操作的组合的字节码表示。 为JavaScript实现一种方法,以了解这些操作的工作方式,并且您具有解释器。

鉴于此,如果我们创建一个基于JavaScript的应用程序,该应用程序可以采用Python字节码并返回与CPython实现相同的结果,则可以在浏览器中运行Python。 实际上,正如Allison Kaptur在她的文章“用Python写的500行或更少的Python解释器 ”中所解释的那样,您可以用不到500行代码来完成此操作。

鉴于这些项目所提供的性能改进,诸如ASM.js和WebAssembly之类的新兴技术使浏览器内语言解释器的前景更加广阔。

本机渲染

为了能够使用与移动部署相同的代码来呈现网站,我们需要一个通用包装器,使我们可以将这些平台作为目标。 这是OS原生的图形用户界面(GUI)工具包Toga所在的位置。Toga提取了不同系统的界面选项。 如果要创建退出按钮,则该按钮在macOS上的位置将与Windows或Linux上的位置不同。 它不仅是本机系统调用的包装,而且是本机层的抽象,捕获了高层用户交互用例。

归根结底,网页和移动屏幕仅仅是在屏幕上呈现字体,形状和线条的位图设备。 HTML引入了一种新的方式来思考图形用户界面的组成部分,但是通过整合我们将内容放置在屏幕上的方式,将其抽象到所有平台变得更加简单。

正在进行中,但您可以提供帮助!

整个BeeWare套件,包括Batavia和Toga,仍在开发中。 我们提供公开报价,以指导任何想要参与该项目的人。 如果您为该项目做出贡献,无论是代码,文档,编写教程,还是帮助其他人做出贡献,您都将获得闪亮的挑战硬币

从教程的第一天起(整个教程已经售罄),我们将在整个活动中参加PyCon US 2017 ,一直到冲刺。 在主要会议期间,我们将位于103号展位的展览厅,所以请打个招呼,看看我们的硬币和代码的光泽度如何。

翻译自: https://opensource.com/article/17/4/cross-platform-development-python-and-beeware

跨平台python开发

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值