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

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

Em 2022, o Chrome no iOS vai comemorar o 10o aniversário. O Google Chrome é um dos aplicativos para iOS mais utilizados. Atualmente é o segundo aplicativo de utilitários na App Store dos EUA.

O Chrome no iOS oferece todos os excelentes recursos do Chrome que nossos usuários adoram, incluindo 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 a recursos nativos do iOS, como o preenchimento automático de senhas em todo o dispositivo e várias janelas.

No entanto, uma coisa importante torna o Chrome no iOS muito diferente de todas as outras implementações da plataforma Chrome.

O Chrome no iOS não usa o Blink.

Por causa das 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. Por isso, o Chrome no iOS usa o WebKit, Nitro e CFNetwork quando outras plataformas do Chrome usam Blink, V8 e //net. Por isso, e à API limitada disponível para apps iOS interagirem com o conteúdo de páginas 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 do //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:

  • Como os apps iOS precisam ter processo único, o Chrome no iOS não pode fork().
  • O Chrome no iOS é escrito em Objective-C++ (uma combinação de C++ e Objective-C) e 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 muitos recursos no simulador de dispositivos muito eficiente oferecido pela Apple.

Começar 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 Apple, versão 13.0 ou mais recente.
  • A versão atual do JDK.

Consulte as instruções de build para mais informações.

A busca da origem é muito parecida com outras plataformas:

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

Depois disso, você pode criar 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

Recomendamos que você 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ê normalmente é um desenvolvedor iOS e não tem experiência com o Chromium, consulte a documentação sobre abstrações importantes e estruturas de dados.