Se você procurou um app de captura de código para iPhone, provavelmente esperava uma lista. Dez apps, uma tabela comparativa, um vencedor.
Não há nenhuma para escrever. Vá procurar e o que você acha são ferramentas web para abrir no Safari e editores de código que colorem sintaxe mas não produzem imagens compartilháveis. A categoria que existe em abundância no desktop quase não existe como software nativo de iPhone.
É uma lacuna estranha para algo que tantos desenvolvedores fazem, e vale entendê-la antes de se contentar com a primeira aba que carregar.
Transparência antes de seguir: nós fazemos o Codeshot, uma das poucas opções nativas, e ele não é gratuito. A última seção diz quem não deveria comprá-lo. É assim que ele fica num iPhone, para você saber o que está sendo defendido aqui:
O que você encontra de fato
Ferramentas web. Carbon.now.sh, ray.so e uma longa cauda de sites parecidos. São elas que ocupam o terreno de verdade. Funcionam num telefone no sentido de que a página carrega.
Editores de código. Textastic e Koder são apps nativos de iOS realmente bons que colorem código. Nenhum dos dois está tentando produzir uma imagem estilizada para um post — simplesmente não é para isso que serve um editor.
Muito pouca coisa no meio. Essa lacuna é o assunto inteiro desta página.
Para ser justo com a App Store: ela é enorme, e pode muito bem existir algo que nem nós nem uma busca tragam à tona. Mas o fato de ser preciso caçar já é a conclusão. No desktop essa categoria está lotada a ponto de virar piada.
Por que a lacuna existe
Não porque ninguém queira. Por causa do que a coisa custa para construir.
Uma ferramenta de captura de código são três peças que precisam se entender. Um destacador de sintaxe cobrindo linguagens suficientes para ser útil — o que significa distribuir e manter um conjunto de gramáticas, não escrever uma expressão regular. Um renderizador que componha texto com a fonte, o espaçamento e a moldura de janela certos, e produza os mesmos pixels toda vez. Uma cadeia de exportação que redimensione limpo e entregue a imagem para onde ela vai.
Na web, as três saem quase de graça. O navegador já tem um motor de layout, o highlight.js é uma tag de script, e exportar é um canvas. É por isso que o Carbon existe, e é por isso que a dúzia de ferramentas que vieram depois também são páginas web — o custo marginal da próxima é baixíssimo.
Nativo é o oposto. Você traz o seu destacador, o seu layout de texto e a sua renderização. E, ao contrário de uma ferramenta web, você não entrega uma correção dando push numa branch.
Então o incentivo sempre apontou para o navegador. Os apps que foram nativos foram para onde o nativo compensa: editores, onde você precisa de tratamento real de texto de qualquer jeito.
O que quebra quando uma ferramenta web encontra um telefone
Nada dramático. É atrito, três vezes, toda vez.
Fazer o código entrar. O editor é uma caixa de texto web. As alças de seleção, o cursor e a correção automática se comportam como em qualquer outro campo web no iOS, ou seja, não como um editor de código.
Ajustar qualquer coisa. A premissa do Carbon é que tudo seja ajustável: tema, fonte, espaçamento, fundo, escala. Num computador isso é uma fileira de menus que você percorre. Num telefone são alvos pequenos que você precisa caçar, e cada um cobre a pré-visualização que você está ajustando. O ray.so sobrevive melhor a isso justamente por oferecer menos.
Fazer a imagem sair. Exportar é um download do navegador. No iOS isso quer dizer que o arquivo cai em algum lugar e você vai procurá-lo, em vez de seguir direto para o app de onde ia publicar.
Uma vez por mês, nada disso importa. Toda semana, são as mesmas três brigas.
O que o nativo realmente traz
Três coisas, e todas são sobre as pontas, não sobre o meio.
A área de transferência é um toque. A área de transferência universal faz com que o trecho copiado no Mac já esteja no telefone. Um app nativo pode pegá-lo direto.
A exportação vai para a folha de compartilhamento. Não um download — direto para Mensagens, Slack, um rascunho, Arquivos ou a fototeca.
Seus ajustes ficam. Tema, fundo e proporção continuam sendo os que você escolheu da última vez, o que explica quase todo o motivo de a décima imagem levar segundos e não minutos.
Há um quarto que importa para alguns e nada para outros: seu código nunca entra numa página web. Se você está colando trabalho de cliente ou um recurso não lançado, essa distinção pode importar para alguém acima de você mesmo que não importe para você.
Então o que você deveria usar
De vez em quando — ray.so no Safari. Grátis, com opções em número suficientemente pequeno para uma tela pequena não virar problema, e resultado decente. Uma ferramenta gratuita que você usa duas vezes por mês não precisa ser substituída.
Principalmente numa mesa — Carbon.now.sh no seu Mac, e pare de tentar no telefone. É grátis, código aberto e excelente onde foi feito para ser usado.
Com frequência, do telefone — é para esse caso que o nativo existe. O Codeshot é um app nativo para Mac e iPhone: cola da área de transferência num toque, 30 temas de sintaxe, 60 linguagens detectadas pelo próprio código, proporções de 1:1 a 9:16 e exportação para a folha de compartilhamento.
Nunca — a captura de tela nativa. Ela registra a largura do seu telefone em vez da do seu código, e as linhas já vêm quebradas antes de você apertar qualquer coisa.
Quem não deveria comprar o nosso
Custa US$ 5,99 e é só para aparelhos Apple. Todas as ferramentas web desta página são gratuitas e rodam em qualquer lugar.
Se você faz uma imagem de código por mês, o ray.so é a resposta certa e preferimos que você use ele. Se você não está num iPhone nem num Mac, essa decisão nem se coloca. E se as suas imagens são sempre feitas numa mesa, o Carbon no computador é grátis e muito bom.
O argumento a favor de um app nativo é estreito e específico: você faz isso com frequência, faz do telefone, e o atrito passou a custar mais do que o app.
Se for o seu caso, Como capturar código no iPhone percorre tudo, e Carbon.now.sh no iPhone aprofunda o que quebra no navegador.