安卓平板运行python_使用Python进行手机平板移动开发 | 学步园

过去,Android和iOS上的移动应用程序开发不是Python的强项,但情况可能会发生变化……

使用Python进行移动应用开发怎么样?从历史上看,在编写移动GUI应用程序时,Python并没有很强的故事。

实际上,仅使用纯Python时,Android和iOS开发几乎是不可能的。真可惜

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

提到两个框架:Kivy和BeeWare项目。

Kivy–跨平台的PythonGUI

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

现在,每次我听到一个新的GUI工具包时,我总是想知道它的“本机”感觉-我相信出色的GUI应用程序应该发挥它们所运行平台的优势。

例如,当我使用iPhone时,我希望所使用的应用程序保持一致。使用以其他平台的用户界面模式设计的应用程序感觉很烦。

不会使用本机平台UI控件呈现。这有优点和缺点:

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

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

因此,如果您可以在应用程序中使用非本机UI工具包,那么Kivy是一个不错的选择。它使您可以使用Python编程技能来编写移动应用程序,而不必学习另一种特定于平台的语言,例如Apple的Swift。

您可以在https://kivy.org上了解有关Kivy的更多信息。

BeeWare项目–原生Python移动应用

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

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

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

听起来不错,对吧?

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

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

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

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

对于我个人最感兴趣的用例(使用Python制作具有本机外观的移动和桌面应用程序),我认为BeeWare最终将获得优势,这归因于“本机UI控件”的优势。

但是,我相信这种情况将来会改变。在移动开发领域中,Python的未来一刻看上去更加光明。随着Python的日益普及,使用它进行移动应用程序开发存在着很大的争议。

就个人而言,我喜欢有的跨平台移动应用与Python,只是因为Python是这样一个令人愉快的语言一起工作的能力。

我非常高兴地看到从现在开始一年后可能会发生什么。因此,如果您正在寻找一个很棒的开源项目,请考虑Kivy和BeeWare项目。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/305307.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

专业的软件安装包可以这样做!

C/S客户端开发完成,需要将程序交付给用户,直接压缩发给用户是可以的(只是有点不专业),如果能有一个比较好看的安装界面,那档次就不一样了。本文介绍怎么使用Adanced Installer 17.9 制作专业的Windows 客户…

jsp需要多少java基础_Java基础——JSP(一)

注意:访问JSP的过程如果是第一次访问服务器,则翻译成一个对应的java文件(Servlet)。然后,再被编成 .class 文件并加载到内存中。如果是以后访问,则直接调用内存中的jsp实例,所以第一次访问慢,以后访问会更加快。四、3种…

宝贝,对不起

宝贝,对不起 题记:读在地震中用生命保护三个月大的婴儿的伟大母亲的遗言 “亲爱的宝贝,如果你能活着,请一定要记得我爱你”有感 谨以此文献给那逝去的伟大母亲和幸存下来坚强的宝贝 ——代腾飞 2008年5月21日 于成都 面对这突如其来的空前灾…

IT人喝酒,不同岗位不同姿势

这是Boss们的常用套路,频频举杯,给大家鼓劲加油,但是自己不喝。有的销售,业绩好,酒品也好,不管和自己人喝酒,还是和客户喝酒,都是一副舍我其谁的霸气!这是某些销售的写照…

国产CPU群雄逐鹿谁主沉浮

当下,国内(桌面、服务器)CPU与外商有较大差距,除了海光在性能上可能具有一拼之力外,其它国产CPU在商业市场上面对英特尔、AMD基本不具备竞争力,因而只能在篱笆墙内的市场角逐。而为了能够进入篱笆墙内的市场…

让网站性能最佳的34条黄金守则

Yahoo!的Exceptional Performance团队为改善Web性能带来最佳实践。他们为此进行了一系列的实验、开发了各种工具、写了大量的文章和博客并在各种会议上参与探讨。最佳实践的核心就是旨在提高网站性能。Excetional Performance团队总结出了一系列可以提高网站速度的方法。可以分…

蒙特卡罗方法入门

本文通过五个例子,介绍蒙特卡罗方法(Monte Carlo Method)。一、概述蒙特卡罗方法是一种计算方法。原理是通过大量随机样本,去了解一个系统,进而得到所要计算的值。它非常强大和灵活,又相当简单易懂&#xf…

面向业务的微服务消息总线

源宝导读:移动PaaS项目的异步场景中,随着订阅主题数的增加,会出现开发维护成本高、管理难度大等问题,本文将分享如何通过构建面向业务的微服务消息总线应对这些问题。一、背景面向业务的消息总线本质上是对消息队列进行二次封装&a…

java locale.us_JAVA实现国际化

## 1 Java国际化的思路Java程序的国际化的思路是将程序中的标签、提示等信息放在资源文件中,程序需要支持哪些国家、语言环境,就对应提供相应的资源文件。资源文件是key-value对,每个资源文件中的key是不变的,但value则随不同国家…

模拟时钟中断的产生及设计一个对时钟中断事件进行处理的模拟程序_操作系统基础6-支持操作系统的最基本的硬件-中断...

无论是桌面PC操作系统还是嵌入式都是多任务的操作系统,而很遗憾,处理器往往是单个的,即便在硬件成本逐渐下降,而硬件配置直线上升的今天,PC机的核心可能已经达到4核心,8核心&#xf…

XMLhttp学习应用

Client.htm页面代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns"http://www.w3.org/1999/xhtml"><head><title>客…

机器学习没有想象中的那么难

文末彩蛋&#xff0c;不容错过&#xff01;背景从去年的AlphaGo到今年人工智能首次写进政府工作报告&#xff0c;人工智能正在席卷全球&#xff0c;引发第4次工业革命&#xff0c;而AI的核心技术是机器学习和深度学习。目前&#xff0c;机器学习已广泛应用于数据挖掘、计算机视…

json.net java_java解析JSON (使用net.sf.json)

例如JSON字符串str如下&#xff1a;{"data": [{"basic_title": "运筹帷幄因特网","basic_creator": "马跃&#xff0c;余南阳编著","basic_publisher": "成都市&#xff1a;西南交通大学出版社","…

Docker查看应用的实际内存

前言 我们把应用部署到Docker里面之后&#xff0c;有什么办法查看这个应用占用了多少内存呢&#xff1f;docker本身提供了一个命令让我们可以直接看到当前时间所有容易占用的情况。docker stats --no-stream从上面来看&#xff0c;这几个应用用的内存加起来已经是将近12G了。但…

如何动态的生成某种类型的集合呢_知乎画报」的移动端动态化工程实践

本文基于移动端动态化方案在知乎原生推广落地页「知乎画报」上的实践经验&#xff0c;对该方案技术升级过程中的思考以及技术关键细节做了详尽的解读。商业化是互联网公司发展的重要阶段&#xff0c;App 端的商业广告业务对移动端动态化能力的需求很强烈&#xff0c;一方面需要…

asp.net 得到上一页地址

if(!IsPostBack) ViewState["retu"]Request.UrlReferrer.ToString();

任正非致歉华为前程序员:回来吧,公司错了

近几日&#xff0c;因着任正非连续签发邮件&#xff0c;无处不在热议华为&#xff0c;其中与所有的技术人可谓密切相关。除了一员工因说真话&#xff0c;被晋升两级&#xff0c;根据其自愿选择工作岗位及地点&#xff0c;并由无线网络产品线总裁邓泰华保护其不受打击报复之外&a…

Asp.Net Core之Identity应用(下篇)

一、前言在上篇中简单介绍了 Asp.Net Core 自带的 Identity,一个负责对用户的身份进行认证的框架&#xff0c;当我们按需选择这个框架作为管理和存储我们应用中的用户账号数据的时候&#xff0c;就会添加到自己的项目当中去。这个时候&#xff0c;默认情况我们会使用自带的数据…

python随机数生成验证码_Python随机数random模块学习,并实现生成6位验证码

一、前言学习python随机数random模块的使用 ,并使用模块中的函数&#xff0c;实现6位验证码生成二、random模块1、random.random()返回0-1直接的随机数&#xff0c;类型为float>>>print(random.random())0.12591846916629082、random.randint(1, 8)返回1-8直接的随机数…