Andrew Brookins
On Dezembro 23, 2021 by adminEm 2017 eu perguntei: “Você consegue escrever código em um iPad? Em 2019 a resposta é basicamente a mesma: não realmente. Mas as coisas estão ficando interessantes.
Atualizar: se você codificar em um iPad, confira minha visão detalhada sobre como sincronizar a área de transferência do iOS com uma máquina remota sobre SSH. Eu também explorei como usar ferramentas de desenvolvimento de navegador no iPadOS usando o aplicativo Inspect em um post recente.
“Programming” on iOS: the Shortcuts App
O iPad ainda não tem a capacidade de fazer qualquer programação nativa. Ou seja, você não vai encontrar uma porta secreta que leve a uma shell UNIX onde você pode instalar homebrew e um compilador C. Se apenas!
Você pode ignorar com segurança o Swift Playgrounds, a menos que seu objetivo seja aprender o Swift. Playgrounds não é um ambiente de programação de propósito geral; é voltado para crianças aprendendo a code.
O mais próximo da programabilidade que existe como uma função nativa do iOS é o aplicativo Shortcuts, que pode automatizar pequenas tarefas e conectar aplicativos juntos.
Esta é a versão rebranded Apple do Workflow, um aplicativo popular que fez mais ou menos a mesma coisa. Você pode usar o Shortcuts para unir uma série de ações que você normalmente pode fazer, como ligar o Do Not Disturb, tocar um álbum específico (eu recomendo Brute Force by The Algorithm), e abrir um aplicativo cliente SSH ou um editor de texto.
Shortcuts é provavelmente útil para alguém, mas eu não o uso muito e é muito limitado para eu chamá-lo de programação!
Editar em Native iOS Text Editors
Yet all is not completely lost. Primeiro, se você admitir que o iPad Pro é um cliente fino em potencial que se emparelha com um servidor, então você tem opções. Há ótimos aplicativos SSH disponíveis, como o Blink. Mas você não precisa necessariamente se conectar diretamente ao servidor para fazer tudo. Se você prefere editar nativamente no iPad e construir um sistema de roldanas que enche seu código até um servidor em nuvem, talvez com um sistema de integração contínua como o GitLab’s, isso também é possível. Vamos explorar as duas opções.
Hey, Eu Escrevi um Livro!
O Templo do Desempenho do Banco de Dados Django é o meu novo livro que mascara jogos de mesa, bancos de dados e Django. Explore um templo em ruínas enquanto aprende truques avançados de desempenho de banco de dados Django!
Provavelmente você não pode executar seu código no iOS a menos que seja Python
Existe algum espaço de manobra para executar seu código diretamente no iPad se você for um desenvolvedor Python. O aplicativo Pythonista cresceu com o tempo, de um editor de texto Python focado na automação do iOS para um ambiente de desenvolvimento Python hackeável que vem com grandes pacotes como NumPy, tem um shell tipo bash- implementado em Python, e suporta plugins.
Outros que Python, eu não encontrei nenhum aplicativo de interpretação ou compilador geralmente útil no iOS.
Update: Os leitores me indicaram Continuous, um IDE C# e F# para iOS, e Rescript, um IDE JavaScript/node.js para iOS. Estes dois parecem promissores e podem ser equivalentes ao Pythonista, mas eu não os usei. Há também o Replete, uma aplicação iOS que lhe dá um ClojureScript REPL (read-eval-print loop); embora divertido, parece menos rico em funcionalidades do que os outros.
Native iOS Editors Are Getting Better
Existem cada vez mais editores de texto decentes que funcionam sem o componente de intérprete ou compilador. Apps como GoCoEdit e Textastic oferecem experiências de edição que começaram a ganhar algumas das características dos editores de desktop que vão além do básico – por exemplo, fuzzy-finding files.
Estes editores estão começando a trabalhar uns com os outros e com o poderoso aplicativo Git Working Copy e o aplicativo Apple-provided Files para produzir efeitos interessantes. Working Copy pode verificar um repositório Git e torná-lo disponível para edição para aplicativos como GoCoEdit; alterações feitas no editor refletem automaticamente de volta em Working Copy, onde você pode então submetê-los.
Faatures Missing from iOS Text Editors
Nenhum destes editores fornece uma experiência adequada para o desenvolvimento de software real por eles mesmos, no entanto. Estamos falando do Dreamweaver, não do Emacs.
Uma peça que falta atualmente é a pesquisa de projeto; ou seja, dado um diretório ou conjunto de diretórios, permite que o usuário procure por texto em todos os arquivos nele contidos. Se usar o GoCoEdit ou iVim, pode obter uma aproximação disto usando a grande ferramenta de pesquisa da Working Copy, que fornece esta funcionalidade, para encontrar ficheiros e depois escolher por exemplo “abrir no GoCoEdit” a partir do menu de partilha. A Textastic não oferece esta funcionalidade por alguma razão. De qualquer forma, é funcional num aperto, mas provavelmente não vai conseguir o procurado “fluxo”
Nota lateral no iVim: ficou melhor. Você pode ter um arquivo .vimrc
e baixar plugins para o sistema de arquivos do aplicativo. Supostamente os plugins funcionam desde que estejam escritos em Vimscript. Note também que é o Vim 7, portanto não há async.
Apesar de trabalhar com um editor de texto iOS, não espere que o padrão típico de desenvolvimento de aplicações web seja aplicado. A menos que você use Pythonista, não há nenhum servidor rodando seu código no iPad, então você vai precisar de alguma cola para fazer sua transferência de arquivos editados em algum lugar que realmente execute código, como um servidor ou uma plataforma sem servidor. Há muitas maneiras de fazer isso em 2019, possivelmente envolvendo algum uso do Pythonista, Zapier, IFTTT, e/ou um comando de voz Siri em Shortcuts. Se codificar em um iPad é o seu novo hobby, então você pode satisfazer todos os seus piores hábitos de Desordem de Déficit de Atenção explorando este tópico.
Nenhum destes editores oferece qualquer linters ou formatadores de código também. O design do iOS sugere que obter linters e formatadores externos a um aplicativo de editor para trabalhar provavelmente envolveria um aplicativo separado que suportasse a impressão e formatação de mensagens com texto como entrada. Caso contrário, o editor precisará fornecer o binário, por exemplo, gofmt
. Para ferramentas escritas em linguagens interpretadas, suponho que o editor teria que agrupar toda a linguagem de programação ou o que quer que o Pythonista esteja fazendo.
A Natureza de Passagem de Mensagens do iOS é Muito Legal
Quanto mais você usa o iOS para fazer qualquer coisa não trivial, mais você começa a sentir a sua natureza de passagem de mensagens. Ao invés de aplicativos interagindo entre si e com o SO através de arquivos e chamadas do sistema, todos os aplicativos enviam e recebem mensagens entre si e o SO.
Então você encontra seus arquivos no aplicativo Files, mas não é apenas um diretório de arquivos. É mais como um único lugar para enviar e receber mensagens sobre arquivos em todos os aplicativos do seu iPad, incluindo iCloud Drive.
Aplicações que fazem qualquer coisa com arquivos adicionaram recursos mais avançados para aproveitar essas novas mensagens relacionadas a arquivos que outros aplicativos suportam, então muitos aplicativos editor de texto agora podem fazer coisas como abrir um diretório de arquivos expostos por outro aplicativo (em 2019 isso é “avançado” para iOS). Diretórios abertos dessa forma geralmente ficam em algo como uma barra lateral no aplicativo e continuam acessíveis como se fossem locais ao aplicativo.
Eventualmente isso começa a parecer muito legal e natural; voltando a um computador desktop, você pode esperar um botão consistente de “compartilhamento” que não existe. Se ao menos houvesse um editor de texto de nível profissional disponível no iOS – e compiladores, intérpretes, servidores web, etc.
Receba a minha newsletter.
Terá um e-mail ocasional quando eu estiver suficientemente entusiasmado com uma tecnologia para escrever sobre ela.
Conectar a um computador real com SSH
Se você usar Blink ou outro aplicativo SSH para se conectar a um servidor que pode executar código arbitrário e executar Vim ou Emacs de lá, então o padrão típico com aplicativos web escritos em linguagens dinâmicas de edição de um arquivo, esperando que o servidor do aplicativo recarregue o arquivo editado, e então refrescar uma página web ainda pode funcionar.
Você estará refrescando um navegador no iOS, é claro. Sugiro o iCab devido às suas extensas opções de personalização, incluindo os melhores atalhos de teclado modificáveis que vi no iOS.
Where Should You Run Your Server in 2019?
Para pessoas que precisam da potência e flexibilidade de um servidor remoto e um verdadeiro editor como o Vim, há ainda mais opções do que costumava haver.
Digital Ocean é uma ótima escolha para começar rapidamente. O site tem uma ótima UI/UX, e o suporte está incluído.
Meanwhile, o compromisso do Google em usar 100% de energia renovável faz do Google Cloud Platform uma escolha atraente se você não precisa de suporte e quer gastar um pouco mais de esforço. A camada “sempre livre” do GCP inclui uma instância f1-micro, que poderia funcionar como sua VM de desenvolvimento, dependendo de suas necessidades.
O que também funciona bem é um Mac antigo que você pode configurar como servidor, porque então você pode sincronizar arquivos entre o servidor e seu iPad usando o iCloud Drive, ou usar o osascript
para enviar mensagens de texto que façam um link profundo para os aplicativos iOS. O mundo é a sua ostra nesse ponto. A Apple reavivou o Mac Mini, então esse é um par de computadores home server/desktop viável para o iPad.
Reaching Your Development Web Server from an iOS Browser
Alguns anos atrás se você estivesse desenvolvendo um aplicativo web em um servidor remoto você poderia ter que rodar o servidor dev do aplicativo em uma porta de acesso público. Agora há uma aplicação para tunelamento SSH chamada – espere por ela! – SSH Tunnel.
Para chegar ao seu servidor de aplicação (por exemplo, o servidor de desenvolvimento do Django), primeiro você estabelece um túnel para o servidor (o computador) no qual o servidor de aplicação está rodando com o SSH Tunnel. Você vai querer definir um hostname diferente de “localhost” em /etc/hosts
no servidor, apontado para 127.0.0.1. Então siga as instruções no site do SSH Tunnel para definir as configurações de proxy corretas na conexão de rede iOS que você está usando.
Depois de realizar o sacrifício de sangue, você pode digitar o nome da máquina que você especificou, por exemplo old-faithful
e a porta em que o seu servidor de aplicações está a correr para o seu navegador iOS de escolha, por exemplo http://old-faithful:4000
para carregar a aplicação.
Browser Dev Tools, Where Art Thou?
Quando precisar de depurar a aplicação web, existe agora uma aplicação Dev Tools chamada Inspect. Ela funciona muito bem, embora lhe falte o robusto ambiente de debugging JavaScript que você obtém em um navegador desktop. Mesmo assim, além de um depurador JS, o Inspect tem a maior parte do que você precisa: Inspecção CSS/HTML e um console JS, assim você pode pelo menos fazer console.log
debugging.
Falta de um aplicativo de ferramentas de desenvolvimento como o Inspect era o bloqueador número um para o desenvolvimento de aplicativos web no iPad antes de 2018. Usando apenas estas ferramentas, você pode fazer o desenvolvimento de aplicações web a partir do iPad. Vai ser ótimo? Eu não sei. Provavelmente não.
So There You Have It
Em 2019 o iPad e o iOS são basicamente os mesmos que eram em 2017, no que diz respeito à programação. O que é diferente é o crescente número de desenvolvedores de aplicativos iOS atendendo a pessoas que querem escrever código no iOS.
Dado que o iOS foi lançado há 12 anos e só agora tem editores de texto parecidos com o Dreamweaver disponíveis, com poucas maneiras de executar código além dos aplicativos “aprender a codificar”, proponho que você será capaz de codificar em um iPad em 2037.
Deixe uma resposta