8 etapas obrigatórias para executar o aplicativo Speech Blubs no Mac Catalyst

No início de junho de 2019, os engenheiros do iOS e do macOS estavam tremendo porque a Apple estava prestes a lançar mudanças em sua conferência anual da WWDC. O que quer que fossem, geralmente mudam muitos planos de engenheiros para o verão. Nosso objetivo é trazer experiências excelentes e de qualidade às plataformas iOS / Mac, o que geralmente significa trabalhar duro para tornar a data de lançamento da Apple do mais novo sistema operacional. O ano de 2019 não foi diferente, embora talvez até um pouco mais especial.

Como sempre, a Apple lançou muitos novos recursos, mas havia um que eu estava pessoalmente ansioso para testar. Sabe-se há mais de um ano que eles trabalham em uma porta UIKit para o macOS. Existem vários aplicativos no macOS Mojave criados com essa tecnologia, que a própria Apple criou.

O que isso significa para os desenvolvedores de aplicativos exatamente

Isso significa que poderíamos executar código para nossos aplicativos para iPhone e iPad com muito poucas alterações nativamente no macOS. Isso também significa que não precisaríamos reescrever nosso código de interface do usuário do UIKit para o AppKit, que é usado no macOS há décadas. Basicamente, poderíamos adicionar toda a plataforma macOS ao nosso portfólio com apenas algumas horas de desenvolvimento.

Como a tecnologia já estava no sistema operacional no ano passado, as pessoas já estavam empolgadas e começaram a experimentar o chamado "Projeto Marzipan". Em 2019, tornou-se oficial e agora é chamado de 'Project Catalyst', que está incluído no lançamento oficial do macOS Catalina. Mas, como isso funciona na prática? Quanto tempo leva para que um aplicativo iOS de produção real seja executado no macOS com Catalyst?

Blubs de fala no Mac

Eu realmente queria saber a resposta para essas perguntas. O Speech Blubs é o nosso aplicativo principal e estamos obtendo ótimos resultados no iOS. É um aplicativo complexo em vários idiomas, com mais de 100.000 linhas de código, várias bibliotecas de terceiros e assim por diante. Para mim, parecia uma ótima e realista opção para este experimento. Então, eu apenas tive que começar a trabalhar em uma versão para Mac. . .

Primeiro, abri o projeto, criei uma nova ramificação e cliquei na plataforma macOS! O próximo passo foi apenas compilá-lo! A criação do aplicativo emite mais de 100 erros. Oh céus. Mas deixe-me continuar. Primeiro, tivemos que garantir que todas as bibliotecas de terceiros estivessem construindo e vinculando. Como o projeto usa o CocoaPods, isso seria um pouco mais complicado, pois o suporte ao Catalyst ainda pode ser um pouco complicado. Então, comecei a remover nossas bibliotecas de análise, incluindo o Facebook, o Crashlytics e suas dependências, pois não precisamos delas para este experimento.

Chegamos ao último problema de vinculação: Reino. O Speech Blubs usa o Realm como um banco de dados, porque é um dos melhores bancos de dados móveis existentes. Estávamos vinculando-o via CocoaPods e ele simplesmente não era construído. A única maneira de incluí-lo foi com o Swift Package Manager, que não tínhamos usado até agora.

Gerenciador de Pacotes Swift

Usamos várias estruturas privadas e construímos o projeto com o CocoaPods. A conversão para o SPM não seria uma tarefa pequena, com certeza. Mas realmente não tivemos que descartar o CocoaPods por completo, pois eles trabalham lado a lado com a integração SPM do Xcode. Então, comecei convertendo nossas estruturas internas para serem vinculadas ao SPM. Isso também incluiu a conversão de todas as suas dependências. Levei aproximadamente uma hora para aprender a escrever um pacote simples, um arquivo rápido e converter todas as nossas dependências.

Até para minha surpresa, consegui passar muito mais rápido do que esperava inicialmente. Ainda é um pouco chato adicionar pacotes Swift manualmente ao Xcode, pois você precisa recarregar toda vez que fizer uma pequena alteração no repositório GIt no GitHub.

Compilando e executando Blubs de fala no Mac

Portanto, agora todas as dependências são compiladas e vinculadas com êxito, mas o aplicativo ainda não. Já removi algumas bibliotecas de terceiros, incluindo nosso suporte de bate-papo. Para continuar, comecei a comentar o código que fazia chamadas para essas bibliotecas e, após cerca de uma hora de trabalho, o projeto estava sendo desenvolvido com êxito. Para finalmente executá-lo, tudo que eu precisava fazer era pressionar o botão 'Reproduzir' no Xcode, no 'My Mac' como dispositivo de destino, e o Speech Blubs estava sendo executado em um desktop pela primeira vez! É uma sensação incrível ver o ícone familiar do iOS no Dock.

Primeira execução do aplicativo Speech Blubs

Glitches and Bugs

A primeira corrida mostrou que havia alguns bugs e falhas. MacOS é uma plataforma completamente diferente. Compreensivelmente, havia algumas coisas no Speech Blubs que precisaríamos corrigir. Tivemos alguns problemas com os botões, pois pareciam grandes demais. Provavelmente, apenas restrições de layout automático que precisavam ser corrigidas. A rolagem funcionou, mas às vezes parecia um pouco sem resposta. Nossos recursos de câmera e microfone não funcionaram corretamente, pois havia grandes diferenças arquitetônicas. Também faltava nossa análise e suporte de terceiros para ser um produto completo.

Rescaldo

Além de algumas falhas e bugs, o Catalyst realmente faz o trabalho pesado para você. Os reconhecedores de gestos funcionaram bem, todos os elementos padrão do UIKit também funcionam muito bem. A maior parte do código do nosso modelo já ficou fora da caixa, pois era independente da interface do usuário. Em casos como esses, a arquitetura sólida realmente ajuda a mover as coisas rapidamente para uma nova plataforma. Faz sentido para o produto em si? Sinceramente, não sei. A maioria das mecânicas que usamos no aplicativo não se encaixa bem no Mac, mas isso não significa que não seguimos a ideia. Cada aplicativo é diferente e tem seus próprios recursos exclusivos. E cada plataforma é diferente, o mesmo vale para watchOS, tvOS e assim por diante. No geral, o Catalyst é um ótimo conjunto de ferramentas e, se o seu aplicativo também faz sentido no Mac, ele pode realmente simplificar e acelerar o processo de desenvolvimento, se você oferece suporte às plataformas iOS e macOS. E ainda mais quando você poderá usar o SwiftUI, que fica a pelo menos um ano de distância. De qualquer maneira, foi um bom experimento, apenas para ver como tudo se desenrolaria. Você pode encontrar erros que existem devido a soluções alternativas implementadas no iOS, mas elas não funcionam mais no Mac. Então, para responder à minha pergunta, quanto tempo leva? Depende. No produto em si, no suporte do iPad, na qualidade do código e em quão nativo você deseja que o aplicativo pareça no Mac.

Entre em contato com a equipe de desenvolvedores do Speech Blubs!

Se você quiser conversar sobre o desenvolvimento de aplicativos, entre em contato. É o que fazemos e o que amamos, por isso gostamos muito de falar sobre isso! :)