python ipad pro_离开 PC,在 iPad Pro 上也能编程了?

news/2025/1/12 21:36:27/

论基于 iPad Pro 平台编码的可行性。

作者 |Andrew Brookins

译者 |弯月

责编 | 屠敏

出品 |CSDN(ID:CSDNNews)

2017年我曾提出过一个问题,“你能在iPad上写代码吗?”(https://andrewbrookins.com/tech/can-you-write-code-on-an-ipad/)时至2019年的今天,答案基本上一样:不太可行。不过如今的事态有点意思了。

注:这篇帖子大部分的内容讲的都是Web应用开发。

在iOS上“编程”:Shortcuts应用

iPad依然缺乏任何原生编程的能力。也就是说,没有任何办法访问Unix shell,也无法安装homebrew和C编译器。

iOS 上唯一接近编程的原生功能就是Shortcuts应用,这个应用能将小型任务自动化,并将应用连接到一起。

Shortcuts是流行的Workflow应用的苹果贴牌版本。你可以使用Shortcuts将一系列动作连接到一起,比如打开免打扰模式、播放特定的专辑(我推荐The Algorithm的《Brute Force》),并打开SSH客户端或文本编辑器。

Shortcuts可能对某些人有用,但我不怎么用,它也不是编程!

使用原生iOS文本编辑器编辑文件

但并不是完全没有希望。首先,如果你肯退一步,把iPad Pro看成一个瘦客户端,与服务器配合使用,那还有点可能。有一些很不错的SSH应用,比如Blink。但你不一定需要直接连到服务器上。如果你更喜欢在iPad上原生地进行编辑,并弄一套流程将代码上传到云服务器上,那也是能做到的。我们来看看这两种方式。

你不太可能在iOS上运行代码,除非是Python代码。

如果你是个Python开发者,那么在iPad上直接运行程序还有点可能。Pythonista应用已经从一个纯粹的、致力于iOS自动化的Python文本编辑器成长为一个可定制的Python开发环境,自带了许多主要的库,如NumPy等,自带一个用Python实现的类似bash的shell,还支持插件。

至于Python之外的其他语言,我还没有找到任何能在iOS上用的编译器或解释器。

原生iOS编辑器变得越来越好

现在出现了很多很不错的不带解释器或编译器的文本编辑器。比如GoCoEdit和Textastic提供了许多基本编辑操作之外的功能,比如模糊查找等,已经接近桌面编辑器了。

这些编辑器可以通过Git和Working Copy应用以及苹果自带的Files应用来配合使用,从而产生一些有趣的效果。Working Copy可以检出一个Git代码仓库,并能够使用GoCoEdit之类的应用进行编辑;在编辑器里作出的修改会自动反馈回Working Copy,然后就可以进行提交了。

iOS文本编辑器缺失的功能

但是,没有任何编辑器自身能够提供真正的软件开发需要的体验。我说的是类似于Dreamweaver的体验,而不是像Emacs那种体验。

缺失的重要功能之一就是项目搜索,即给定一个目录或一组目录,允许用户在其中搜索所有文本。如果你使用GoCoEdit或iVim,那么可以利用Working Copy的搜索工具达到类似的效果,该搜索工具能提供该功能,查找文件并从分享菜单中选择“open in GoCoEdit”之类的选项来编辑。Textastic出于某种原因并没有提供功能。总之,这个功能“能用”,但估计你达不到想要但效果。

关于iVim的边注:它现在越来越好了。现在可以支持.vimrc文件,也可以在应用本身的文件系统中下载插件。用Vimscript编写的插件应该都能正常工作。还要注意,因为它是Vim 7,所以没有异步功能。

但是,使用iOS文本编辑器时,就不要考虑Web应用开发中的常见模式了。除非你是用Pythonista,否则iPad上不可能用服务器来运行代码,所以你需要一些机制将文件传到其他地方运行,比如传到服务器上,或者无服务器平台上。2019年有许多方式可以实现这一点,比如通过Pythonista、Zapier、IFTTT或在Shortcuts中使用Siri语音命令。如果你喜欢在iPad上写代码,那你可以花大把的时间来试试这些方式。

这些编辑器也都不提供任何linter或代码格式化功能。iOS的设计导致了在编辑应用之外使用linter或格式化工具只能通过另一个接受文本作为输入且支持linting和格式化的应用进行。否则,编辑器必须提供二进制文件,比如gofmt。对于使用解释语言编写的工具,估计编辑器必须自带整个编程语言,或者模仿Pythonista的做法。

iOS本身的消息传递机制非常酷

如果尝试用iOS做一些重要的事情,做得越多,你就越能体会到它的消息传递机制。iOS上的应用程序不会通过文件或系统调用互相交互,或与操作系统交互,而是所有应用程序都会互相(以及与操作系统)发送消息并接收消息。

因此,你在Files应用中查找文件,但实际上找的并不是一组文件。更像是一个能发送并接收有关文件的消息的地方,该消息可以在iPad上的所有应用中使用,包括iCloud Drive。

任何需要使用文件的应用都添加了更多高级功能,来利用其他应用支持的文件相关的消息操作,所以许多文本文件现在都可以打开另一个应用暴露的目录或文件(这是iOS在2019年的一个“进步”)。这种方式打开的目录通常会出现在应用的侧边栏中,如果这些文件是本地文件,那就可以一直访问。

最终你会觉得这种功能非常好用、非常自然;回到桌面电脑上,你就会觉得缺少一个一致的“分享”按钮。要是iOS上有专业的文本编辑器、编译器、解释器、Web服务器就更好了。

利用SSH连接到真正的计算机上

你也可以使用Blink或其他SSH应用连接到服务器上,执行任何代码,并在服务器上使用Vim或Emacs,那么通常的Web应用的开发方式——编辑文件用动态语言写代码,等待应用服务器加载编辑后的文件,再刷新网页——依然可以使用。

当然,你需要在iOS中刷新网页。我推荐使用iCab,因为它提供许多自定义选项,最值得一提的就是它提供了iOS上最好的键盘快捷键。

2019年,我应该在哪里运行服务器?

如果你需要远程服务器的强大功能和灵活性,以及像Vim这种真正的编辑器,那么现在有更多的选择。

当然,你可以使用Linode、Digital Ocean等VPS。这些很好用,但缺点就是它们在可再生能源方面不太好。

Google使用100%可再生能源,Google Cloud Shell也能为你提供微型服务器,带有持久化的存储,还自带了开发工具,一切都是免费的。Google Cloud Shell应用可以在iOS上原生地打开Cloud Shell会话。但是,向该应用里粘贴代码时要注意!你还需要在iOS浏览器中启动Cloud Shell来进行一些设置,比如字体大小等。而且该应用无法接收键盘按键,至少在屏幕虚拟键盘上不行。

除了使用Cloud Console应用之外,还可以连接到跳板服务器上,使用gcloud命令行工具。可以从终端上使用最近新加的命令 gcloud alpha cloud-shell ssh来连接到Cloud Shell中。GCP的“永久免费”功能包括一个f1-micro实例,可以用作跳板……它也可以直接当作VM使用。

另一种方法是用一台旧的Mac电脑当作服务器,这样可以进行许多有趣的事情,比如在iPad上使用iCloud Drive,还可以使用osascript给自己发送文本消息。这样一切都在掌控之中了。苹果复活了Mac Mini,它可以作为很不错的家用服务器或桌面电脑,与iPad配合使用。(或者可以买一台真正的便携电脑。)

从iOS浏览器中访问开发用的Web服务器

几年前如果你要在远程服务器上开发Web应用程序,你可能需要在能公开访问的端口上运行开发服务器。现在,有个应用能够支持SSH隧道了!

如果想访问应用服务器(如Django的开发服务器),首先你要使用SSH Tunnel应用,建立到服务器(你的计算机)的隧道。先在服务器的/etc/hosts上定义一个“localhost”之外的主机名,指向127.0.0.1。然后依照SSH Tunnel网站上的指南,在你手头的iOS的网络设置中配置正确的代理设置。

在经历一番痛苦的设置后,就能在iOS浏览器中输入你指定的主机名(如old-faithful)和你的应用服务器使用的端口,比如http://old-faithful:4000,来加载应用了。

浏览器开发工具怎么办?

如果需要调试Web应用,那么可以使用一个名为Inspect的开发工具。它挺好用,尽管没有像桌面浏览器那样健壮的JavaScript调试功能。但是除了JS调试器之外,Inspect有大多数你需要的功能:CSS/HTML查看,JS控制台,所以至少能够使用console.log调试。

2018年以前,在iPad上开发Web应用的最大障碍之一就是缺乏像Inspect这种开发工具。使用这些工具就能在iPad上开发Web应用。是不是很不错?我也不知道。可能并没有。

总结

与2017年相比,2019年的iPad和iOS基本上没太大变化,至少在编程方面如此。真正发生变化的是开发者们为那些想在iOS上写代码的人做了越来越多的应用。

考虑到iOS已经12岁了,直到现在才出现能比得上Dreamweaver的文本编辑器,以及几乎没有任何能真正编程的应用,我估计真正实现在iPad上写程序需要等到2037年。

对此,你怎么看?

链接:https://andrewbrookins.com/technology/coding-on-ipad-pro-2019/

作者:Andrew Brookins,Ruby和JavaScript云架构工程师@IBM。

热 文推 荐


http://www.ppmy.cn/news/314813.html

相关文章

ios在判断设备是ipad_识别您的 iPad 机型

要了解您的 Mac 或 PC 与您的 iPad 是不是兼容,请查看您所持机型对应的系统要求。 12.9 英寸 iPad Pro(第 4 代) 年份:2020 年 容量:128GB、256GB、512GB、1TB 型号(位于后盖上): iPad Pro 上是 A2229 iPad Pro 无线局域网 + 蜂窝网络机型上是 A2069、A2232 iPad Pro 无线局…

ipad协议828稳定版

微信API服务、企微API服务、SCRM系统定制、企微系统定制、服务类软件定制。本文档主要讲述个微API服务相关,以下简称API,它能处理用户微信中的各种事件,提供了开发者与个微对接的能力,技术上来讲是一款基于微信提供的个人开放性AP…

ipad协议更新非常稳定以及介绍

傻瓜式API,掌握JAVA、Go、PHP、Python等任意一种后端代码,你就可以 通过API 搭建一个 微信机器人功能 ,用来自动管理微信消息 我们是一家专业提供个人号API的技术团队,服务于具有SCRM、机器人、营销系统等具有研发能力的公司,同时…

ipad协议,windows协议。

傻瓜式API,掌握JAVA、Go、PHP、Python等任意一种后端代码,你就可以 通过API 搭建一个 微信机器人功能 ,用来自动管理微信消息 我们是一家专业提供个人号API的技术团队,服务于具有SCRM、机器人、营销系统等具有研发能力的公司,同时…

ipad随航黑屏连接失败等问题解决旧版mac随航ipad2017随航

ipad2017,macmini2014,配上蓝牙键盘和鼠标,可移动性强,完美 可惜。。 随航功能支持如下: 惨惨惨,ipad2017也就是第5代不在支持列表,mac mini2014也不在支持列表, 但是&#xff0c…

在知乎逮到一个腾讯10年老测试,聊过之后收益良多...

老话说的好,这人呐,一单在某个领域鲜有敌手了,就会闲得蛋疼。前几天我在上班摸鱼刷知乎的时候认识了一位腾讯测试大佬,在腾讯工作了10年,因为本人天赋比较高,平时工作也兢兢业业,现在企业内有一…

2019年第一次画画,顺便评价一下ipadPro和Surface的画画优劣

难得放假了,除了弹吉他以外,也画一下画。 绘画的过程也发上来给大家看看: 接下来说说绘画的工具。 我是使用iPadPro2 10.5英寸Apple Pencil来画画的。 一开始我打算使用Surface Go来画画的,我想,之前我都是拿Wocam画…

哪款电容笔适用于ipad2017?Ipad2017推荐电容笔

如果你要给 ipad适配一款好用的电容笔,你会发现苹果原装的电容笔要远远超出你的预算。而用来代替apple pencil的平替电容笔,则是最佳的选择。可以想象一下,一款苹果原装的电容笔的售价,就能够入手四款不同品牌的平替的电容笔&…