Existem duas opções para criar aplicativos móveis: Android e iOS. Os aplicativos Android modernos são escritos em uma linguagem de programação chamada Kotlin, e os aplicativos iOS são escritos em Swift. Embora haja semelhanças entre as duas linguagens, elas são diferentes o suficiente para que todos, exceto os maiores desenvolvedores, tendam a se concentrar em uma em detrimento da outra.
Existem soluções de desenvolvimento multiplataforma que permitem que os criadores de aplicativos escrevam um programa e o exportem para Android e iOS (Flutter e React Native são dois dos mais populares). Ainda assim, eles têm compromissos que podem ser inaceitáveis da perspectiva do usuário e do desenvolvedor, particularmente em relação ao desempenho. Isso significa que os desenvolvedores de aplicativos móveis tiveram que escolher entre desenvolver exclusivamente para iOS ou Android, gastar recursos extras no desenvolvimento para ambas as plataformas ou sacrificar o desempenho ao desenvolver com uma estrutura multiplataforma não nativa.
Graças a uma nova tecnologia, os desenvolvedores podem não ter mais que escolher qual pílula amarga engolir. Skip é um transpilador que converte código Swift nativo do iOS em Kotlin nativo do Android. Os desenvolvedores agora podem trabalhar exclusivamente em Swift enquanto desenvolvem para os melhores tablets Android de hoje e evitam as armadilhas de frameworks multiplataforma.
Quem são os talentos por trás do Skip?
Skip é uma criação dos desenvolvedores Marc Prud’hommeaux e Abe White. Marc e Abe se conhecem há cerca de 25 anos e trabalharam juntos em várias empresas de sucesso, a mais proeminente das quais foi Stanza, um dos primeiros aplicativos de e-reader lançados para iOS no final dos anos 2000. Stanza fez tanto sucesso que a Amazon o comprou e trouxe Marc e Abe para desenvolver o aplicativo Kindle para iOS e Android. Então, essa é a história de origem do super-herói Skip?
Fonte: Pular
“Sim!” Abe me disse. “Talvez não diretamente, mas a luta para ir de uma plataforma para a outra tem sido uma preocupação incômoda para nós desde que estávamos recebendo solicitações para trazer o Stanza do iOS para o Android. Acontece que o primeiro protótipo do Stanza que desenvolvemos em 2008 foi realmente implementado para Android antes mesmo do iOS SDK ser anunciado. Decidimos focar na versão para iPhone quando ela foi lançada na App Store, mas estávamos sempre recebendo solicitações de usuários para lançar uma versão para Android.” Assim, a semente para o Skip foi plantada.
É extremamente difícil construir e enviar um aplicativo para uma única plataforma. Enviar para duas plataformas muito diferentes está simplesmente fora das habilidades da maioria das equipes pequenas.
Desenvolver para ambas as plataformas pode ser uma dor, mesmo para equipes grandes. “É um esforço enorme coordenar duas equipes diferentes de desenvolvimento móvel escrevendo aplicativos para as duas plataformas diferentes”, disse Abe. “A paridade de recursos precisa ser sincronizada, os bugs precisam ser resolvidos em sincronia e as diferenças de plataforma precisam ser acomodadas. Nós mesmos passamos por isso quando fomos trabalhar na equipe do Kindle na Amazon, onde íamos e voltávamos entre as equipes do iOS e do Android trabalhando no aplicativo Kindle.”
Depois do Kindle, Marc e Abe seguiram caminhos separados. Abe foi um dos primeiros desenvolvedores móveis do Twitter. “Comecei no Twitter quando havia apenas um punhado de desenvolvedores móveis”, ele me disse. “Todos nós fazíamos um pouco de tudo. Conforme a equipe cresceu e se especializou, me tornei o líder técnico para frameworks de interface de usuário iOS dentro da empresa. Minha equipe era responsável por fornecer aos desenvolvedores do Twitter ótimas ferramentas para ajudá-los a adicionar recursos de forma eficiente.”
E Marc? “Enquanto Abe estava no Twitter, eu estava prestando consultoria e contratando em uma variedade de projetos, trabalhando em todos os tipos de aplicativos grandes e pequenos, incluindo para grandes clientes como o New York Times e a Bose.”
Os dois mantiveram contato por quase uma década, apesar de trabalharem em projetos diferentes. “Durante esse período, Abe e eu nos entrávamos em contato intermitentemente para falar sobre os projetos paralelos em que estávamos trabalhando”, particularmente o desenvolvimento multiplataforma. “Essas discussões se transformaram em experimentos — alguns deles bem selvagens — mas, lentamente, eles se fundiram no que Skip é hoje. Percebemos bem rápido que estávamos em algo grande, e foi quando decidimos entrar de cabeça no projeto.”
Como funciona o transpilador Skip?
Explicando o que é um aplicativo e como construir um
Todos os aplicativos, sejam iOS ou Android, funcionam de forma semelhante. Abe explicou: “Para criar um aplicativo Android moderno, você codifica em uma linguagem chamada Kotlin e constrói a interface do usuário (UI) com uma estrutura chamada Jetpack Compose. Você escreve seu código usando um dos vários IDEs (Integrated Development Environments), com o Android Studio provavelmente sendo o mais popular. Você especifica quaisquer localizações, imagens e outros recursos que seu aplicativo precisa usando formatos definidos pelo Android.”
Fazer um aplicativo para iPhone não é muito diferente. “O pipeline de desenvolvimento de aplicativos para iPhone tem os mesmos elementos, mas as tecnologias são diferentes. Para fazer um aplicativo moderno para iPhone, você codifica em uma linguagem chamada Swift e constrói a interface do usuário com uma estrutura chamada SwiftUI. Você escreve seu código usando o IDE Xcode da Apple e especifica seus recursos usando formatos Apple.”
Pular não teria sido possível apenas alguns anos atrás.
Percebeu como os blocos de construção para criar um aplicativo são semelhantes entre as duas plataformas? Isso é algo relativamente novo e a maior parte do que torna o Skip possível. O resto é devido a mudanças em como as UIs são implementadas.
De acordo com Abe, “Houve uma mudança em todo o setor no modelo de programação de interfaces de usuário. A primeira geração de desenvolvimento de aplicativos normalmente usava arquivos de dados separados para definir o layout da IU.” As coisas começaram a mudar há cerca de cinco anos, quando a Apple criou o SwiftUI, uma estrutura para criar IUs programaticamente. O Google seguiu o exemplo logo depois com o Jetpack Compose.
Fonte: Pular
“Os detalhes de implementação do Compose e do SwiftUI são drasticamente diferentes”, Abe me disse, mas “essas duas abordagens de interface em código são surpreendentemente semelhantes em muitos aspectos e, funcionalmente, tendem a oferecer recursos muito semelhantes”. Essa é a chave final que levou ao Skip.
Introdução ao transpilador Skip
Você encontrará os detalhes de como o Skip funciona na documentação do site do Skip). Para começar, você precisará do Xcode. O Skip é um plugin para o Xcode que só transpila do Swift para o Kotlin, e não o contrário. Quando perguntado se ele tem planos para um transpilador Kotlin-para-Swift, Abe é direto: “Não”. Isso não se deve ao elitismo do iOS, mas sim à forma como cada linguagem de programação lida com a memória. “Mesmo que toda a lógica e estruturas de dados pudessem ser traduzidas perfeitamente, o resultado seria um vazamento gigante de memória porque o código Kotlin assume que a memória será limpa pelo coletor de lixo.”
Idealmente, ao usar o Skip, um desenvolvedor passará todo o seu tempo na codificação Xcode em Swift. De acordo com Marc, “Quando você testa seu aplicativo durante o desenvolvimento… ele inicia em seus dispositivos iPhone e Android ou simuladores! O Skip não interfere na compilação do iPhone e gera e compila a versão Android na hora. Então você vê as duas versões do seu aplicativo rodando lado a lado.”
O futuro do transpilador Skip
Skip ainda é uma tecnologia jovem. Marc e Abe lançaram oficialmente a versão 1.0 do Skip em agosto, mas eles acham que estão no caminho certo. “A recepção que o Skip recebeu até agora valida que muitos outros compartilham nossa crença”, eles disseram. “Independentemente de continuarmos a iterar no Skip sozinhos ou com outros, acreditamos que o futuro é brilhante, tanto para nós quanto para os desenvolvedores que adotarem o Skip como sua ferramenta para atingir todo o mercado móvel.”
Não há como dizer que tipo de impacto o Skip terá daqui para frente. Esperançosamente, usuários do Android verão alguns aplicativos exclusivos do iOS como Procreate ou Garageband chegarem aos seus dispositivos. Enquanto isso, os usuários podem fazer um telefone Android parecer e funcionar como um iPhone.