Chromium Chronicle #28: primeiros passos com o Chrome no iOS

Episódio 28:Mark Cogan em Paris, França (janeiro de 2022)
Episódios anteriores

Em 2022, o Chrome no iOS vai comemorar seu 10o aniversário. O Chrome é um dos apps iOS mais usados. Atualmente, é o segundo app de utilitários na App Store dos EUA.

O Chrome no iOS oferece todos os recursos incríveis que nossos usuários adoram, como sincronização, tradução, navegação anônima, Gerenciador de senhas, preenchimento automático e muito mais. O Chrome no iOS também se integra aos recursos nativos do iOS, como o preenchimento automático de senhas em várias janelas e em todo o dispositivo.

No entanto, há uma coisa que torna o Chrome no iOS muito diferente de todas as outras implementações de plataforma do Chrome.

O Chrome no iOS não usa o Blink.

Devido às regras da App Store da Apple, o Chrome no iOS precisa usar as APIs da plataforma iOS para buscar e renderizar conteúdo da Web. O Chrome no iOS usa WebKit, Nitro e CFNetwork, enquanto outras plataformas do Chrome usam Blink, V8 e //net. Por causa disso e da API limitada disponível para que apps iOS interajam com o conteúdo da página da Web, muitos recursos do Chrome que usam as APIs //content são implementados no Chrome no iOS usando a injeção de JavaScript.

Os recursos multiplataforma no //components são estruturados para compartilhar o máximo de código possível em todas as plataformas, mantendo as dependências de //content isoladas:

ls components/some_component

content/        # code with dependencies on //content.
core/           # cross-platform code with no //content dependencies.
ios/            # iOS implementation using JavaScript injection.

Outras diferenças importantes entre o Chrome no iOS e outras plataformas incluem:

  • Os apps iOS precisam ser de processo único. Portanto, o Chrome no iOS não pode fork().
  • O Chrome no iOS é escrito em Objective-C++ (uma combinação de C++ e Objective-C), além de um pouco de Swift.
  • Embora seja possível compilar e executar o Chrome no iOS diretamente em um dispositivo iOS, você também pode desenvolver muito recursos no simulador de dispositivo bastante potente oferecido pela Apple.

Comece a usar o Chrome no iOS

Você precisará dos seguintes itens:

  • Um computador macOS de 64 bits com o macOS 11.3 ou mais recente. O Apple Silicon é compatível.
  • Xcode, o ambiente de desenvolvimento integrado para plataformas da Apple, versão 13.0 ou mais recente.
  • A versão atual do JDK.

Consulte as instruções de criação para ver mais informações.

A busca da origem é muito semelhante à de outras plataformas:

mkdir ${HOME}/chromium-ios
cd ${HOME}/chromium-ios
fetch ios

Depois disso, você pode compilar a partir da linha de comando (ou do Xcode):

autoninja -C out/Debug-iphonesimulator chrome

Saiba mais sobre o desenvolvimento de recursos do Chrome no iOS

Consulte o Guia de estilo do Chromium. Leia a documentação do desenvolvedor da Apple para saber mais sobre Swift, xCode e outros recursos específicos do iOS.

Se você costuma ser um desenvolvedor iOS e não conhece o Chromium, consulte a documentação sobre abstrações e estruturas de dados importantes.