Dub-dub 2019: notícias da WWDC e minhas impressões

Oi Meu nome é Azat Zulkarnyaev, estou desenvolvendo aplicativos iOS no Badoo. Tradicionalmente, todos os anos passamos uma semana com colegas da WWDC. No artigo, compartilho minhas impressões da conferência: sob o corte, não apenas atualizações importantes e uma revisão das sessões, mas também algumas emoções pessoais por estar em uma multidão feliz que canta “Dub-dub! DC! e sonha em apertar a mão de Tim Cook.



Um pouco sobre a conferência


Todos os anos, a Apple realiza uma conferência WWDC para desenvolvedores para suas plataformas e não apenas para elas. Tradicionalmente, os eventos organizados pela empresa causam uma grande agitação. As principais inovações, principalmente relacionadas a produtos de software, são anunciadas no primeiro dia da conferência. A seguir, são apresentadas sessões de funcionários da Apple projetadas para ajudar desenvolvedores de terceiros a aplicar essas inovações. No artigo, tentarei contar não apenas sobre as inovações técnicas da conferência, mas também as impressões gerais dela.

Impressões


Acho que todo desenvolvedor da plataforma Apple quer chegar à WWDC pelo menos uma vez. E o assunto não é apenas nas sessões de laboratório, nas quais você pode conversar pessoalmente sobre seus problemas e desejos, mas também no sinal do evento.

A conferência geralmente começa não com a primeira apresentação, chamada Keynote, mas com o registro, ou melhor, a fila para isso. Em geral, as filas são parte integrante da conferência, o que é lógico, porque existem milhares de participantes, todos os eventos são realizados em um local. A posição no início da fila às vezes oferece vantagens agradáveis. Por exemplo, Tim Cook cumprimentou pessoalmente as primeiras pessoas a se registrar.

Após a inscrição, o participante recebe uma jaqueta da empresa e crachás com os símbolos da conferência ou empresa.



A idéia de dar uma jaqueta é simplesmente excelente, porque muitos participantes, enganados pelo tempo ensolarado, chegam a San Jose sem roupas quentes. Mas o tempo na Califórnia é instável e à noite fica frio o suficiente. Além disso, o ar condicionado está esfriando impiedosamente o ar dentro dos edifícios.

Os crachás tornam-se imediatamente uma meta para os colecionadores: as pessoas tentam complementar seu conjunto com os crachás desejados e são constantemente caçados.

Keynote: New


As filas no Keynote começam a levar os participantes muito antes das portas se abrirem. O fato é que esta apresentação apresenta novos produtos importantes deste ano: é mais provável que não seja para desenvolvedores, mas para um círculo muito mais amplo de pessoas que assistem à transmissão. O topo da empresa aparece no palco e, em geral, esta é uma das apresentações mais significativas do mundo do desenvolvimento móvel.

Um dos meus colegas decidiu dessa vez entrar na primeira linha e pegou a linha 10 horas antes da abertura. Mas, infelizmente, este ano houve um problema: as primeiras pessoas foram deixadas de outro quarteirão, e os melhores lugares já foram ocupados. Em geral, os primeiros lugares na fila não garantem os melhores assentos no salão.

Em geral, a atmosfera do evento se assemelha a um feriado: os organizadores parabenizam o participante pelo fato de terem chegado aqui, cantando “Dub-dub! DC! ”, Os fãs da Apple estão procurando novos crachás, tudo é bastante dinâmico e interessante. É bom perceber que as coisas mais importantes no desenvolvimento do iOS / MacOS estão acontecendo aqui e agora, ou seja, a impressão de assistir a um vídeo em casa ou no trabalho é muito diferente da presença real no salão. É muito inspirador, inspirador experimentar todas as inovações e integrá-las aos seus produtos. O breve debate de ideias com colegas do Badoo na conferência se transformou em uma grande lista de coisas que gostaríamos de implementar em nossos aplicativos.

Como sempre, muito antes da conferência, começaram a surgir rumores sobre futuras atualizações. Este ano, a WWDC esperava o anúncio de uma nova versão do iOS, ferramentas para desenvolvimento de plataforma cruzada para iOS e MacOS, o iTunes do pôr do sol, o novo Mac Pro. Havia até especulações sobre óculos de realidade aumentada.

Muitos desses rumores foram confirmados. Mas as primeiras coisas primeiro.

Apple tv


Primeiro sobre o tvOS. A interface do usuário tvOS passou por uma forte reformulação.

A Apple está promovendo ativamente sua plataforma de televisão TV + e, como resultado, vimos o trailer da série na WWDC. Apesar dos esforços feitos, aqui a Apple continua no papel de recuperar o atraso. Plataformas como a Netflix ainda são melhores em termos de UX e conteúdo.

Talvez a inovação mais agradável para a maioria dos AppleTV seja o suporte aos joysticks Xbox e PlayStation.

iPadOS


Visualmente, não é muito diferente do iOS. O objetivo, talvez, é aproximar o iPad do Mac. Como resultado, os desenvolvedores podem portar facilmente aplicativos do iPad para o MacOS. Os tablets da Apple se tornaram mais funcionais: por exemplo, agora eles podem ser usados ​​como um segundo monitor e conectar uma unidade USB a eles. O último é possível devido ao aplicativo Arquivos atualizado para trabalhar com o sistema de arquivos.

O Safari agora deve funcionar de maneira mais adequada, fornecendo layout para a versão para desktop do site, em vez de para celular.

A função de dividir a tela em partes melhorou. Agora, cada aplicativo pode ter várias janelas exibidas simultaneamente na tela. Por exemplo, você pode trabalhar simultaneamente com dois ou mais documentos em um único aplicativo.



Assista ao SO


Agora, para instalar o aplicativo no Apple Watch, não é necessário fazer isso no iPhone conectado. Como uma continuação lógica, o aplicativo AppStore para o Apple Watch apareceu. Tudo isso significa que agora você pode pesquisar e instalar aplicativos desde o relógio. Não está claro o quão útil isso será para os usuários, porque a conveniência desse método de instalação é questionável. Um bom bônus são as novas opções de design para a tela principal do relógio.

Mac OS


O nome da nova versão é MacOS Catalina em homenagem à ilha perto de Los Angeles. Desta vez, não foram anunciados tantos novos produtos. Pelo memorável, podemos apenas mencionar que o aplicativo iTunes não será mais, e suas partes existirão como aplicativos separados.

Apple Music, Podcasts e TV, que costumavam fazer parte do iTunes, foram apresentados com alguma ironia. Será possível trabalhar com dispositivos conectados através do Finder.

iOS 13


Talvez as principais mudanças tenham afetado o iOS. Muitas atualizações foram apresentadas, vamos nos debruçar sobre o principal.

Melhoria de desempenho: os aplicativos começaram a rodar mais rápido - aparentemente, devido ao fato de o Swift Runtime já estar costurado no sistema. O tamanho do arquivo binário baixado durante a instalação e atualização de aplicativos também diminuiu um pouco. Fico feliz que a Apple continue trabalhando na otimização de seus produtos. Será curioso comparar os valores reais das melhorias anunciadas na apresentação.

A principal inovação visual que muitos esperam há muito tempo é um tópico sombrio. Os aplicativos do sistema parecem muito bons em um novo contexto.

Surgiu muito hype em torno da possibilidade de registro / autorização em aplicativos usando o ID da Apple. O que foi apresentado na apresentação evoca respeito pela empresa: finalmente, apareceu uma maneira fácil de entrar rapidamente em serviços de terceiros sem fornecer seus dados reais. Talvez isso seja uma dor de cabeça para alguns aplicativos, porque a Apple está configurada para tornar esse tipo de autorização obrigatório para todos os aplicativos que usam OAuth.

Separadamente, gostaria de mencionar a melhoria no sistema do aplicativo Find My Mac. Agora, mesmo que o laptop esteja no modo de suspensão e / ou não tenha acesso à rede, ele poderá trocar mensagens via Bluetooth com dispositivos Apple próximos, que, por sua vez, enviarão informações sobre a localização do computador Apple. Uma ideia simples, mas muito útil e eficaz, que seria muito difícil de criar para outra empresa devido à falta de confiança e a um único protocolo de comunicação entre smartphones e computadores.

Além disso, é impossível não mencionar que agora o teclado do sistema iOS ainda suporta digitação com letras entre letras, o que significa que os fãs desse método de digitação não precisam mais instalar teclados de terceiros. Por fim, o botão de alternância do teclado emoji é separado do botão de alternância do idioma.

Entre os outros novos produtos, podemos mencionar os esforços da Apple para atualizar o Google Maps, apresentando um análogo do modo Google Streets ao aplicativo Maps, classificação e agrupamento inteligente de fotos, pacotes de adesivos personalizados baseados no Animoji. Também são apresentadas algumas melhorias não muito significativas para aplicativos padrão.

Mac pro


O principal e único produto não relacionado ao software apresentado foi o novo Mac Pro. Não darei possíveis fontes de inspiração para o projetista da aparência do dispositivo: uma primeira olhada na frente da unidade do sistema causou uma risada involuntária, o que é raro para os produtos desta empresa.

Em geral, os designers preferem a praticidade da elegância. A nova geração do computador é muito diferente da anterior, que foi comparada com outro item doméstico. Houve algum retorno às raízes, e o novo Mac Pro é, de várias maneiras, semelhante à sua primeira geração.



No entanto, por dentro é um carro completamente novo. A potência possível do computador e do monitor apresentado são realmente impressionantes, mas o preço faz você pensar na necessidade de dispositivos tão maravilhosos. Aparentemente, para não assustar o público, o preço foi apresentado apenas à configuração mais básica da unidade de sistema, que é de US $ 6.000. O novo monitor XDR 6K de 31,6 polegadas custará pelo menos US $ 4.999 dólares. Bem, aqui você precisa adicionar US $ 999 para o estande. De fato, para não encostar na parede.

Interface do usuário rápida


O anúncio mais importante para os desenvolvedores. A Apple ainda lançou uma nova estrutura declarativa para o desenvolvimento de UI no Swift. As consequências da mudança de conceito dificilmente podem ser superestimadas: a primeira impressão da apresentação foi como um símbolo da conferência na fachada do edifício.



Os oradores não mencionaram suas fontes de inspiração. Geralmente, tudo é apresentado como inovações, evitando com tato a menção de soluções semelhantes. Em geral, as pessoas familiarizadas com outras estruturas para uma maneira declarativa de desenvolver uma interface reconhecem os princípios familiares. A influência das idéias de React e talvez até de Flutter é adivinhada. Mas tudo isso permanece especulação. Existem menções no Twitter que trabalham nessa estrutura há pelo menos três anos, o que não é surpreendente, dado o quanto as coisas mudaram.

Uma mudança no conceito de desenvolvimento de uma interface geralmente se transforma em uma mudança na abordagem de trabalhar com dados, porque uma abordagem na qual, em vez de atribuições explícitas, é declarada uma dependência funcional entre valores, é muito bem combinada com uma interface declarativa.

Talvez a estrutura mais comum para implementar esse conceito para iOS seja o RxSwift. A Apple introduziu uma nova estrutura alternativa, Combine . À primeira vista, as classes nesta estrutura são semelhantes às do Java.

Sessões da WWDC


A parte principal da conferência é uma série de sessões em que os funcionários da Apple falam sobre novas tecnologias e explicam como usá-las corretamente. Cada sessão contém uma apresentação das alterações e sua demonstração usando um exemplo.
Por uma semana, o Centro Convencional de San Jose está se transformando em uma mini-universidade para desenvolvedores e muito mais. Mais de cem apresentações, milhares de participantes, discussões ativas durante os intervalos.

Abaixo, listo a descrição de algumas sessões interessantes, na minha opinião, com a WWDC.

Interface do usuário rápida


Nessas sessões, eles forneceram informações básicas sobre a interface do usuário do Swift, discutiram idéias, objetivos que os desenvolvedores de estruturas estão tentando alcançar e mostraram casos de uso simples. Os exemplos são realmente impressionantes: às vezes até parece bom demais para ser verdade.

Com os novos recursos da linguagem, a descrição da hierarquia de elementos se torna muito expressiva e declarativa. Tanto é assim que não há mais a necessidade de arquivos XML Xib para gerar visualizações baseadas em código.

As principais características da estrutura são o tipo de valor da exibição, a construção automática da diferença entre os dois estados dos dados exibidos e o fato de que a hierarquia de objetos descritos pelo código não coincide necessariamente com a hierarquia real dos elementos de exibição renderizados.

Objetos do tipo valor permitem criar e excluir rapidamente objetos da memória. Ainda não está claro como o renderizador de mapeamentos e o componente que gera a diferença entre estados ainda não está claro: a Apple raramente abre o código-fonte das ferramentas criadas.

Nas primeiras sessões, foram apresentados exemplos simples; mais próximo ao final, casos complexos foram mostrados com renderização complexa de uma grande quantidade de dados. É muito agradável que elementos não interativos que requerem uma grande quantidade de recursos para renderização possam ser alterados para o modo de renderização através do Metal com uma linha, e a produtividade aumenta significativamente.

Combinar


Aqui, os espectadores foram apresentados à nova estrutura de fluxo de dados. Para aqueles que trabalharam com Rx ou ferramentas semelhantes, pouco parecerá novo; outros desenvolvedores na apresentação ficaram impressionados com a expressividade da nova abordagem. A apresentação mostrou exemplos bastante padrão para estruturas reativas. Um caso com um campo de pesquisa e enviando uma solicitação ao servidor com o texto inserido já se tornou um livro didático. Em geral, a biblioteca não é tão grande e a familiarização com a documentaçãoé suficiente.

A combinação, como a Swift UI, usa ativamente tipos de valor para melhorar o desempenho. No entanto, ainda não está claro como os recursos são liberados após a chamada de cancelamento de inscrição. Eu recomendo o artigo de Michael Long sobre este tópico: descreve os possíveis problemas que você pode encontrar ao usar a estrutura.

Além do Combine, a Apple fez extensões do componente Foundation para converter convenientemente o fluxo de dados padrão em reativo.

Gerenciador de pacotes Swift


A Apple decidiu finalmente concluir sua ferramenta de dependência. Agora ele é totalmente suportado pelo Xcode 11 , a integração com o GitHub e outros serviços populares para repositórios foi implementada. As sessões descrevem como trabalhar com o SPM no Xcode (que é bastante simples) e como os conflitos de dependência são resolvidos.

Trabalhar com coleções


Para aqueles que não planejam mudar para a interface do usuário Swift, a Apple introduziu novas ferramentas para facilitar o trabalho com listas de UI (exibição de coleção, exibição de tabela) no UIKit. A nova fonte de dados para coleções em diferentes plataformas facilitará a atualização da exibição de listas sem medo de encontrar um erro de tempo de execução devido ao estado instável da lista. Por meio de muitos relatórios, a idéia de uma única fonte de verdade tem sido um encadeamento comum, e novos componentes implementam esse conceito para listas de UI.

O modo de exibição de coleção apresenta uma nova exibição de layout . Usando o novo conceito de grupo, é possível descrever um arranjo completamente diferente de elementos em uma seção. Assim, dentro da mesma coleção, seções diferentes podem ter diferentes direções de rolagem. Na minha opinião, esta é uma das inovações mais úteis, que simplificarão bastante a criação de listas compostas.

Swift


Na nova versão do Swift, você pode executar os chamados wrappers de propriedades. Em essência, essas são classes genéricas que adicionam algum comportamento à propriedade de um objeto. Parece muito abstrato, mas é uma mudança de linguagem muito poderosa que adiciona um análogo de anotações às propriedades dos objetos no Swift.

Agora também é fácil criar seu próprio DSL digitado. A julgar pelo orador na sessão, um dos desenvolvedores da Apple fez um DSL para tags HTML em algumas horas. A função ainda está na versão beta, e talvez durante a evolução se torne ainda mais interessante.

Para evitar problemas ao usar protocolos com um tipo associado ou um requisito de auto, são derivados tipos opacos. A adição da palavra-chave alguma antes do tipo permitirá o uso desse tipo de protocolo, não apenas como uma restrição genérica.
Todas essas inovações são ativamente usadas no SwiftUI, por isso recomendo que você se familiarize com os princípios dos novos recursos de idioma.

Fundação


A Fundação criou coisas interessantes, como um formatador de hora em relação a uma determinada data, a localização do conteúdo da coleção, cujos elementos, por sua vez, podem ser exibidos em um formato localizado.

Mudanças no IOS


Há muitas mudanças aqui, então vou mencionar apenas as principais.
Se você oferecer suporte à autorização em seu sistema através de serviços de terceiros, como Google ou Facebook, em breve a Apple precisará de suporte para autorização através do Apple ID . Talvez em alguns casos este seja um caso especial de autorização, portanto, não atrase a integração dessa funcionalidade.

Um novo tipo de dados geográficos fornecidos pelo usuário está agora disponível. Agora o usuário tem a oportunidade de fornecer acesso à sua localização somente durante a sessão atual do aplicativo. As transições do estado de autorização não são tão óbvias; portanto, o vídeo deve ser assistido.

Muitos aplicativos usam o trabalho em segundo plano, portanto, talvez seja relevante uma sessão sobre alterações na API para trabalhar com tarefas em segundo plano.Se, por um breve momento, você pode adiar a tarefa antes que o usuário conecte o dispositivo a uma fonte de energia. E sim, agora não funcionará para usar notificações push de VoIP para ativar o aplicativo sem usar o CallKit. Também aconselho que você verifique se o servidor enviará os parâmetros necessários no conteúdo da notificação por push com os valores necessários mencionados no vídeo.

O tema sombrio disponível no iOS 13 também pode ser um desafio para muitos aplicativos. Se um aplicativo de terceiros ignorar o estilo especificado pelo sistema, isso poderá levar os usuários a ficarem insatisfeitos com o aplicativo como um todo. Portanto, seria bom manter um estilo dinâmico em seu aplicativo, se isso for aceitável em termos de design.

Recursos como cores ou imagens podem ser dinâmicos e seu significado específico depende do contexto. As informações de estilo são armazenadas em Coleções de características e, com base em seu valor atual, a mesma cor dinâmica pode ter valores diferentes. Você pode dinamizar facilmente suas cores ou recursos através do diretório de ativos no Xcode ou programaticamente, aceitando uma coleção de características como um parâmetro inicializador.

A alteração do tema pode ser obtida no método traitCollectionDidChange, mas lembre-se de que agora o UIView é criado imediatamente com a coleção fornecida. Ou seja, mesmo antes de adicionar à hierarquia de mapeamentos, o próprio UIKit atribui a coleção futura mais provável ao objeto.

Você pode descobrir mais sobre o tópico obscuro neste vídeo .

Aprendizado de máquina


A principal inovação - agora você pode ajustar os modelos treinados para um usuário específico, produzindo treinamento diretamente no dispositivo. Para fazer isso, você precisa coletar dados para treinamento com base nas ações do usuário e executar o treinamento, que pode usar adaptadores gráficos para cálculos.No caso de redes neurais, é melhor fazer isso na tarefa em segundo plano e quando o dispositivo está carregando.

A Apple também abriu novas APIs para analisar fotos , som e reconhecimento de texto na imagem.

Devo ir à WWDC? Sim


, , . , .

Apple . , .

, Apple , , . , , , . , WWDC programa do aluno : não é tão difícil quanto parece, e este ano a proporção de estudantes participantes foi bastante grande.

Source: https://habr.com/ru/post/pt456028/


All Articles