Diário da WWDC 2018 de um desenvolvedor iOS

Publicados: 2022-03-10
Resumo rápido ↬ Desde 1987, a Apple Worldwide Developers Conference (WWDC) acontece anualmente e mantém os desenvolvedores iOS em alerta. Lou Franco assistiu ao evento deste ano e compartilha suas notas e referências caso você tenha perdido.

Os limites tradicionais do verão nos EUA são o Memorial e o Dia do Trabalho, mas os desenvolvedores do iOS marcam o verão com o lançamento da WWDC e do iPhone. Embora o clima esteja frio e chuvoso esta semana em Nova York, estou em clima de verão e ansioso pela renovação daquele verão e a promessa da WWDC.

Foto em frente ao Centro de Convenções San Jose McEnery
WWDC (Fonte da imagem) (Visualização grande)

É a manhã de 4 de junho e estou revisando minhas anotações da WWDC 2017. No ano passado, escrevi que ARKit e Core ML foram dois dos grandes destaques. Foi revigorante ver o foco da Apple no Machine Learning (ML), mas não houve muito acompanhamento no resto de 2017. O ARKit gerou algum interesse, mas nenhum aplicativo matador (talvez Pokemon Go, mas era popular antes do ARKit) . A Apple não adicionou à sua biblioteca inicial de modelos para download do Core ML após o anúncio do Core ML.

A Apple lançou o Turi Create e a Lobe lançou um novo e interessante fabricante de modelos Core ML no mês passado. No espaço Apple/ML, o criador do Swift, Chris Lattner, está adotando uma abordagem diferente com o Swift for TensorFlow. Mas do lado de fora, o Core ML parece ter principalmente um uso óbvio: classificação de imagens. Não parece haver muita energia em explorar aplicações muito diferentes (mesmo que todos saibamos que o ML está no centro dos carros autônomos e demos incríveis como o Google Duplex).

Mais depois do salto! Continue lendo abaixo ↓

Outra maneira pela qual a Apple usa ML é no Siri e, no início deste ano, escrevi sobre o SiriKit e mencionei suas deficiências percebidas e reais quando comparadas ao Alexa e ao Google. Uma questão que explorei foi como a ênfase da Siri em intenções pré-definidas limita seu alcance, mas não produziu a precisão prometida que você pode obter de um foco limitado.

A introdução do HomePod no ano passado apenas destacou os problemas da Siri, e uma pesquisa de satisfação do cliente amplamente divulgada mostrou 98% de satisfação com o iPhone X, mas apenas 20% de satisfação com a Siri.

Com tudo isso em mente, eu pessoalmente esperava ouvir que a Apple faria algumas melhorias importantes em AR, ML e Siri. Especificamente, como desenvolvedor iOS, eu queria ver muito mais modelos Core ML, abrangendo mais do que apenas classificação de imagens e mais ajuda na criação de modelos. Para a Siri, eu queria ver muito mais intenções e possivelmente alguma indicação de que as intenções seriam algo que seria adicionado durante todo o ano. Foi um tiro no escuro, mas para AR, o próximo passo é um dispositivo. Mas, enquanto isso, eu esperava uma maior precisão espacial.

Por fim, adoro os livros Xcode Playgrounds e iPad Playground, mas eles precisam ser muito mais rápidos e estáveis, então eu esperava algo lá também.

Na manhã da WWDC, eu twittei isso:

Uma imagem de um tweet com meus desejos da WWDC
Meu tweet descrevendo o que eu esperava da WWDC 2018 (pré-visualização grande)

Isso não era uma previsão. É apenas uma lista de coisas que eu queria usar em 2017, mas as achei fracas ou muito difíceis para eu começar, e esperava que a Apple fizesse algumas melhorias.

Meu plano para o dia é assistir à palestra ao vivo e depois assistir ao Estado da União das Plataformas. Esses dão uma boa visão geral do que se concentrar para o resto da semana.

Fim do dia 1: a palestra principal e as plataformas do estado da União

O primeiro dia da WWDC é o keynote, que é destinado ao consumo público, e o Platforms State of the Union, que é uma visão geral de todo o evento, com alguns detalhes para que os desenvolvedores possam escolher em quais sessões participar.

Resumo de anúncios notáveis ​​para desenvolvedores não iOS

A WWDC não é inteiramente sobre desenvolvimento para iOS, então aqui está uma lista rápida de outras coisas que aconteceram com outras plataformas ou que não são muito focadas no desenvolvedor.

  • Para tirar isso do caminho, não houve nenhum anúncio de hardware . Sem pré-visualizações e sem atualizações no Mac Pro. Teremos que esperar pelo iPhone e eventos subsequentes no outono.
  • O iOS 12 tem um novo aplicativo de atalhos que parece ser o resultado da aquisição do Workflow. É uma forma de “roteirizar” uma série de etapas por meio de arrastar e soltar . Você também pode atribuir o atalho a uma palavra-chave da Siri, que abordarei abaixo.
  • O iOS agrupará automaticamente as notificações do mesmo aplicativo e permitirá que você atue nelas como um grupo.
  • Os Animojis agora podem imitar você colocando a língua para fora, e os novos Memojis são rostos humanos altamente configuráveis ​​que você pode personalizar para se parecer com você.
  • O FaceTime suporta bate-papo por vídeo em grupo de até 32 pessoas.
  • Há um novo aplicativo Screen Time que fornece relatórios sobre o uso do telefone e do aplicativo (para ajudá-lo a se controlar e se distrair menos). É também a base de novos controles parentais.
  • A Apple TV recebeu uma pequena atualização: suporte para Dolby Atmos e novos protetores de tela retirados da Estação Espacial Internacional .
Foto do novo protetor de tela Apple TV Space
Protetor de tela Apple TV Space (visualização grande)
  • O Watch tem um modo de competição para desafiar outras pessoas para desafios relacionados a exercícios. Ele também tentará detectar automaticamente o início e o fim dos treinos , caso você esqueça de iniciá-los ou pará-los, e agora possui exercícios de caminhada e ioga.
  • O relógio também possui um novo modo Walkie-Talkie que você pode ativar para contatos confiáveis.
  • Existem mais SDKs de áudio nativos no Watch e o aplicativo Podcasts da Apple já está disponível. Espero que aplicativos de podcast de terceiros também aproveitem esses novos SDKs.
  • O Mac conseguiu o ponto de ancoragem do evento (o que esperamos ser uma indicação de atenção renovada). Ele será chamado de macOS Mojave e possui um modo escuro .
  • Há grandes atualizações na Mac App Store, mas notavelmente, agora ela recebe o mesmo tratamento visual e de conteúdo que a iOS App Store recebeu no ano passado. Há mudanças suficientes no sandbox que Panic decidiu levar o Transit de volta para lá .
  • O Quick Look in the Finder agora tem algumas ações simples que você pode fazer no arquivo (por exemplo, girar uma imagem) e é personalizável via Automator.
  • O Mojave será a última versão do macOS a oferecer suporte a aplicativos e estruturas de 32 bits , o que significa que o Quick Time Framework será desativado. Aparentemente, ele foi substituído por alguns recursos de captura de vídeo no próprio sistema operacional.
  • A Apple anunciou que está usando internamente uma porta do UIKit para fazer aplicativos para Mac e mostrou portas de Stocks, News, Home e Voice Memos. A nova estrutura será lançada em 2019.

Os anúncios do desenvolvedor iOS com os quais estou mais animado

Os desenvolvedores do iOS também receberam boas notícias. Eles atingiram as quatro principais áreas em que eu queria ver melhorias:

  • O SiriKit agora tem intenções personalizadas , o que abre bastante as possibilidades.
  • Criar ML é uma nova maneira de usar o Xcode Playgrounds para treinar modelos por meio de aprendizado de transferência , que permite aumentar os modelos existentes com seus próprios dados de treinamento .
  • Os playgrounds Xcode agora permitem que você adicione código ao final de uma página e execute-o sem reiniciar . É difícil saber se o Playgrounds será mais estável até que tenhamos um lançamento real em setembro, mas isso tornará a tentativa de código muito mais rápida.
  • ARKit 2 foi anunciado junto com um novo formato de arquivo de Realidade Aumentada chamado USDZ , que é aberto e foi desenvolvido com Adobe e Pixar. A Adobe já anunciou algum suporte a ferramentas. Ele permitirá que usuários e desenvolvedores armazenem e compartilhem ativos e experiências de RA. Além disso, o ARKit 2 permite que vários dispositivos estejam no mesmo ambiente AR e suporta detecção de objetos 3D.

Não recebemos um dispositivo AR, mas com certeza parece que teremos um em breve. E precisa vir da Apple (não de terceiros) porque a execução do ARKit requer um dispositivo iOS.

Configurando sua máquina

Tudo o que você precisa está disponível agora no portal do desenvolvedor. Para usar o código do artigo, você precisa do Xcode 10 Beta. Eu ainda não recomendaria usar o iOS 12 Betas, mas se você realmente quiser, acesse o portal no seu dispositivo e baixe o perfil de configuração do iOS 12 Beta.

A única coisa importante para a qual você precisa de um dispositivo com a versão beta é o ARKit 2. Todo o resto deve funcionar bem o suficiente no simulador do Xcode 10. A partir do primeiro beta, o suporte ao Siri Shortcut no simulador é limitado, mas há o suficiente para pensar que isso será corrigido em versões futuras.

Fim do dia 2: jogando com as intenções personalizadas da Siri

No ano passado, escrevi como você precisava se encaixar em uma das intenções predefinidas da Apple para usar o SiriKit em seu aplicativo. Esse mecanismo foi introduzido em 2016 e adicionado em 2017 e até mesmo entre os eventos da WWDC. Mas ficou claro que a abordagem de intenções personalizadas da Amazon era superior para obter o controle de voz em aplicativos mais diversos, e a Apple acrescentou isso ao SiriKit na semana passada.

Para ser claro, esta é uma primeira implementação, por isso ainda não é tão extensa quanto o Alexa Skills, mas abre um pouco as possibilidades da Siri. Como discuti no artigo anterior, a principal limitação das intenções personalizadas é que o desenvolvedor precisa fazer toda a tradução do idioma. O SiriKit contorna isso pedindo ao usuário que forneça a frase que gostaria de usar, mas ainda há mais tradução necessária para intenções personalizadas do que para intenções predefinidas.

E eles foram construídos na mesma base das intenções predefinidas, então tudo que eu abordei ainda se aplica. Na verdade, mostrarei como adicionar uma nova intenção personalizada ao List-o-Mat, o aplicativo que escrevi para o artigo original do SiriKit.

(Gratuito) Suporte ao atalho da Siri se você já suporta o Spotlight

Se você usar NSUserActivity para indicar coisas em seu aplicativo que seu usuário pode iniciar por meio de transferência ou pesquisa, é trivial disponibilizá-las também para a Siri.

Tudo o que você precisa fazer é adicionar a seguinte linha ao seu objeto de atividade:

 activity.isEligibleForPrediction = true

Isso funcionará apenas para atividades habilitadas para Spotlight (onde isEligibleForSearch é true ).

Agora, quando os usuários fazem essa atividade, ela é considerada doada para uso no Siri. A Siri recomendará atividades muito comuns ou os usuários podem encontrá-las no aplicativo Atalhos. Em ambos os casos, o usuário poderá atribuir sua própria frase falada para iniciá-la. Seu suporte para iniciar a atividade via Spotlight é suficiente para permitir que ela seja iniciada por meio de um atalho.

No List-o-Mat, poderíamos disponibilizar as listas individuais para Spotlight e Siri construindo objetos de atividade e atribuindo-os ao ListViewController . Os usuários podiam abri-los via Siri com sua própria frase.

É redundante no nosso caso porque tínhamos uma intenção pré-definida para abrir uma lista, mas a maioria dos aplicativos não tem tanta sorte e agora tem esse mecanismo simples. Portanto, se seu aplicativo tiver atividades que não são compatíveis com as intenções predefinidas da Siri (por exemplo, reproduzir um podcast), você pode apenas torná-las elegíveis para previsão e não se preocupar com intenções personalizadas.

Configurando o SiriKit para usar intenções personalizadas

Se você precisar usar uma intenção personalizada, o SiriKit precisará ser adicionado ao seu aplicativo, o que requer um pouco de configuração.

Todas as etapas para configurar o SiriKit para intenções personalizadas são as mesmas das intenções predefinidas, que são abordadas em detalhes no meu artigo SiriKit aqui no Smashing. Para resumir:

  1. Você está adicionando uma extensão, então você precisa de um novo ID do aplicativo, e o perfil de provisionamento e os direitos do seu aplicativo precisam ter a Siri adicionada.
  2. Você provavelmente precisa de um grupo de aplicativos (é como a extensão e o aplicativo se comunicam).
  3. Você precisará de uma extensão de intents em seu projeto
  4. Existem chaves .plist específicas da Siri e direitos de projeto que você precisa atualizar.

Todos os detalhes podem ser encontrados no meu artigo do SiriKit, então vou apenas abordar o que você precisa para dar suporte a uma intenção personalizada no List-o-Mat.

Adicionando um comando de lista de cópia ao List-o-Mat

As intenções personalizadas devem ser usadas apenas onde não há intenção predefinida, e a Siri realmente oferece muito suporte a listas e tarefas em seu domínio Siri de listas e notas.

Mas, uma maneira de usar uma lista é como um modelo para uma rotina ou processo repetido. Para fazer isso, vamos querer copiar uma lista existente e desmarcar todos os seus itens. As intenções de lista integradas não são compatíveis com essa ação.

Primeiro, precisamos adicionar uma maneira de fazer isso manualmente. Aqui está uma demonstração desse novo comportamento no List-o-Mat:

Um GIF animado com uma demonstração de listas de cópia
Copiando uma lista no List-o-Mat

Para que esse comportamento seja invocável pela Siri, vamos “doar uma intenção”, o que significa que informaremos ao iOS toda vez que você fizer isso. Então, eventualmente, ele aprenderá que, pela manhã, você gosta de copiar essa lista e oferecê-la como um atalho. Os usuários também podem procurar por intents doados e atribuir frases manualmente.

Criando a intenção personalizada

A próxima etapa é criar a intenção personalizada no Xcode. Há um novo modelo de arquivo, então:

  1. Escolha Arquivo → Novo arquivo e escolha “Arquivo de definição de intenção SiriKit”.
    Uma captura de tela da caixa de diálogo Novo arquivo
    Escolha adicionar um arquivo de definição de intent (visualização grande)
  2. Nomeie o arquivo ListOMatCustomIntents.intentdefinition e escolha colocar o arquivo nos destinos App e Intent Extension. Isso gerará automaticamente classes em ambos os destinos que implementam os protocolos de intenção, mas têm seu comportamento personalizado implementado.
  3. Abra o arquivo Definição .
  4. Use o botão + no canto inferior esquerdo para adicionar uma intenção e nomeie-a como "CopyList".
  5. Defina a Categoria como “Criar” e preencha o título e a legenda para descrever a intenção:
    Captura de tela da descrição da intenção personalizada
    Adicione uma categoria, título e legenda à intenção (visualização grande)
  6. Adicione um parâmetro String chamado “list”.
    Captura de tela da seção de parâmetros
    Adicione um parâmetro String chamado “list” (visualização grande)
  7. Adicione um tipo de atalho com o parâmetro de lista e dê a ele um título chamado “Copiar lista”.
    Captura de tela da seção de tipo de atalho
    Adicione um tipo de atalho intitulado “Copiar lista” (visualização grande)

Se você olhar na lista de intents, verá que este intent já foi configurado para você:

Doando a intenção

Quando fazemos uma interação de usuário em nosso aplicativo que queremos que a Siri saiba, nós a doamos para a Siri. A Siri acompanha informações contextuais, como hora, dia da semana e até localização, e se perceber um padrão, oferecerá o atalho ao usuário.

Quando tocamos no menu Copiar, adicione este código:

 @available(iOS 12, *) func donateCopyListInteraction(listName: String) { let copyListInteraction = CopyListIntent() copyListInteraction.list = listName copyListInteraction.suggestedInvocationPhrase = "Copy \(listName)" let interaction = INInteraction(intent: copyListInteraction, response: nil) interaction.donate { [weak self] (error) in self?.show(error: error) } }

Isso simplesmente cria um objeto da classe CopyListIntent gerada automaticamente e o doa para a Siri. Normalmente, o iOS coletaria essas informações e aguardaria o momento apropriado para mostrá-las, mas para o desenvolvimento, você pode abrir o aplicativo Configurações, ir para a seção Desenvolvedor e ativar as configurações de depuração do atalho Siri.

Nota : Até o momento, com os primeiros betas, essa configuração de depuração funciona apenas em dispositivos e não no simulador. Como a configuração está lá, espero que comece a funcionar em outros betas.

Captura de tela das configurações de depuração da Siri
Ativar a depuração do atalho Siri

Ao fazer isso, o atalho doado aparece nas Sugestões da Siri no Spotlight.

Captura de tela do atalho doado na Siri
Você pode depurar seu atalho doado na pesquisa

Tocar isso chamará sua extensão Intent porque estamos permitindo a execução em segundo plano. Adicionaremos suporte para isso a seguir.

Manipulando a intenção personalizada

Já temos uma extensão de intents e, como o arquivo de definições de intent personalizado já foi adicionado ao arquivo, ele também possui as classes de intent geradas. Tudo o que precisamos fazer é adicionar um manipulador.

A primeira etapa é adicionar uma nova classe, chamada CopyListIntentHandler à extensão. Aqui está o seu código:

 import Intents @available(iOS 12, *) class CopyListIntentHandler: ListOMatIntentsHandler, CopyListIntentHandling { func handle(intent: CopyListIntent, completion: @escaping (CopyListIntentResponse) -> Void) { // Find the list var lists = loadLists() guard let listName = intent.list?.lowercased(), let listIndex = lists.index(where: { $0.name.lowercased() == listName}) else { completion(CopyListIntentResponse(code: .failure, userActivity: nil)) return } // Copy the list to the top, and respond with success copyList(from: &lists, atIndex: listIndex, toIndex: 0) save(lists: lists) let response = CopyListIntentResponse(code: .success, userActivity: nil) completion(response) } }

Os intents personalizados têm apenas uma fase de confirmação e tratamento (a resolução personalizada de parâmetros não é compatível). Como o confirm() padrão retorna sucesso, apenas implementaremos handle() , que deve procurar a lista, copiá-la e informar à Siri se foi bem-sucedida ou não.

Você também precisa despachar para essa classe do manipulador de intent registrado adicionando este código:

 if #available(iOS 12, *) { if intent is CopyListIntent { return CopyListIntentHandler() } }

Agora você pode realmente tocar nessa sugestão da Siri e isso trará isso:

Captura de tela do atalho ativado
Ative o atalho (Visualização grande)

E tocar no botão Criar copiará a lista. O botão diz "Criar" por causa da categoria que escolhemos no arquivo de definição de intenção.

Ufa, foi muito. Esses novos atalhos da Siri são o principal recurso do iOS 12 que possui uma nova grande área de superfície do desenvolvedor para explorar. Além disso, como eu tinha um bom (e documentado) exemplo Siri para trabalhar, era razoável tentar adicionar os novos recursos a ele esta semana.

Você pode ver a atualização do List-o-Mat no GitHub. Até que o Xcode 10 e o iOS 12 sejam lançados, ele está em seu próprio branch.

Nos próximos dias, estarei olhando principalmente para o código de amostra da Apple ou fazendo projetos muito menores.

Fim do dia 3: Xcode Playgrounds

Todo o dia anterior foi gasto no Xcode 10 beta, que não travou uma vez e parecia pronto para o desenvolvimento. Então agora eu queria explorar os novos recursos do Playgrounds.

A principal coisa que eu queria dos playgrounds era torná-los mais estáveis ​​e muito mais rápidos. Para torná-los mais rápidos, a Apple adicionou um grande recurso - um modo REPL.

Antes do Xcode 10, quando você estava em um Playground que era executado automaticamente (que é o padrão), cada linha de código reconstruía o arquivo inteiro e o executava desde o início. Se você construiu qualquer estado, ele foi perdido. Mas, a verdadeira questão era que isso era muito lento para o desenvolvimento iterativo. Quando uso o Playgrounds, defino-os para serem executados manualmente, mas mesmo assim é lento.

No Xcode 10, a execução manual é mais a norma, mas depois de executá-la, você pode adicionar mais linhas na parte inferior da página e continuar a execução. Isso significa que você pode explorar dados e desenhar exibições de forma iterativa sem reconstruir constantemente e começar do zero.

Para começar, criei um playground iOS (File → New → Playground) com o modelo Single View.

Ative a execução manual abrindo o menu abaixo do botão Reproduzir (o triângulo no canto inferior esquerdo). Isso coloca uma faixa vertical à esquerda que mostra a posição atual da cabeça de reprodução (como pontos de interrupção).

Você pode tocar em qualquer linha e depois tocar no botão play à sua esquerda. Isso executará o Playground até este ponto. Então você pode ir mais longe tocando nas linhas mais baixas no Playground. Criticamente, você pode adicionar mais linhas na parte inferior e digitar Shift + Enter após cada uma para mover a cabeça de reprodução para esse ponto.

Aqui está um GIF meu alterando o rótulo de uma visualização sem precisar reiniciar o Playground. Após cada linha que digito, estou pressionando Shift + Enter .

GIF de Playground com modo REPL
Adicione mais código e execute-o sem reiniciar

Playgrounds também suportam renderização personalizada de seus tipos agora, e a Apple está fazendo um grande esforço para que cada framework Swift inclua um Playground para documentá-lo.

Foto da WWDC mostrando slide para incentivar mais Playgrounds
TJ Usiyan pede aos participantes da WWDC que adicionem Playgrounds aos seus projetos. (Visualização grande)

Fim do dia 4: criar ML

No ano passado, a Apple deu um grande salto na programação de Machine Learning para seus dispositivos. Havia um novo formato de arquivo de modelo de ML e suporte direto para ele no Xcode.

O potencial era que haveria uma grande biblioteca desses arquivos de modelo, que haveria ferramentas que os criariam e que muito mais desenvolvedores de aplicativos seriam capazes de incorporar ML em seus projetos sem precisar saber como criar modelos.

Isso não se concretizou totalmente. A Apple não adicionou ao repositório de modelos após a WWDC e, embora existam repositórios de terceiros, eles geralmente têm modelos que são variações das demonstrações de classificação de imagens. O ML é usado para muito mais do que classificação de imagens, mas uma ampla seleção de exemplos não apareceu.

Assim, ficou claro que qualquer aplicativo real precisaria de seus desenvolvedores para treinar novos modelos. A Apple lançou o Turi Create para esse fim, mas está longe de ser simples.

Na WWDC 2018, a Apple fez algumas coisas no Core ML:

  1. Eles expandiram a parte de Processamento de Linguagem Natural (NLP) do Core ML , o que nos dá um novo domínio principal de exemplos.
  2. Eles adicionaram o conceito de Transfer Learning to Core ML, que permite adicionar dados de treinamento a um modelo existente . Isso significa que você pode pegar modelos da biblioteca e personalizá-los com seus próprios dados (por exemplo, fazer com que eles reconheçam novos objetos nas imagens que você fornecer).
  3. Eles lançaram o Create ML, que é implementado dentro do Xcode Playgrounds e permite arrastar e soltar dados para treinamento e gerar extensões de modelo (usando o Transfer Learning).

Este é outro bom passo na democratização do ML. Não há muito código para escrever aqui. Para estender um classificador de imagens, você só precisa coletar e rotular imagens. Depois de tê-los, basta arrastá-los para o Create ML. Você pode ver a demonstração neste vídeo Create ML WWDC.

Fim da semana: jogue com as novas demos de RA

O ARKit foi outra grande adição no ano passado e parece ainda mais claro que um dispositivo AR está chegando.

Meu código ARKit do artigo do ano passado ainda é uma boa maneira de começar. A maioria dos novos recursos visa tornar a RA mais precisa e rápida.

Depois disso, se você instalou um beta, você definitivamente vai querer baixar o novo aplicativo de demonstração SwiftShot ARKit. Este aplicativo aproveita os novos recursos do ARKit, especialmente a experiência multijogador. Dois ou mais dispositivos na mesma rede e no mesmo local podem se comunicar e ter a mesma experiência de RA.

Obviamente, para jogar isso, você precisa de dois ou mais dispositivos que deseja colocar no iOS 12 beta. Estou esperando que o beta público faça isso porque tenho apenas um dispositivo beta-safe.

O aplicativo AR mais fácil de usar é o novo aplicativo Measure, que permite medir o comprimento de objetos reais que você vê na visualização da câmera AR. Existem aplicativos de terceiros que fazem isso, mas o da Apple é polido e pré-instalado com o iOS 12.

Links para vídeos da WWDC e código de exemplo

Então, estou ansioso para fazer mais com o Xcode 10 e iOS 12 neste verão enquanto esperamos pelos novos telefones e quaisquer dispositivos que a Apple possa lançar no final do verão. Enquanto isso, os desenvolvedores do iOS podem aproveitar o sol, acompanhar nossas caminhadas com nosso novo sistema operacional beta do Watch e assistir a esses vídeos da WWDC quando tivermos uma chance.

Você pode transmitir vídeos da WWDC 2018 no portal do desenvolvedor da Apple. Há também este aplicativo não oficial para Mac para visualizar vídeos da WWDC.

Aqui estão os vídeos mencionados neste artigo:

  • Palestra da WWDC 2018
  • Estado da União das Plataformas WWDC 2018
  • Introdução aos atalhos da Siri
  • Tirando o máximo proveito dos Playgrounds no Xcode
  • Apresentando o Create ML e, se você quiser algo mais avançado, um guia para o Turi Create

Para começar a jogar com o Xcode 10 e iOS 12:

  • Baixe os betas (visite em um dispositivo para obter o perfil beta)
  • List-o-Mat com atualizações de atalhos da Siri
  • Swift Shot (o jogo multijogador ARKit 2)