WWDC 2023: as principais novidades que impactaram o mundo de desenvolvimento iOS e de produtos da Apple

WWDC 2023: as principais novidades que impactaram o mundo de desenvolvimento iOS e de produtos da Apple
Giovanna Moeller
Giovanna Moeller

Compartilhe

Resumindo

Já está sabendo das novidades no ecossistema Apple e como elas impactam (ou vão impactar) o seu trabalho?

A WWDC (Worldwide Developers Conference) é uma conferência anual organizada pela Apple, voltada para desenvolvedores de software.

Se você atua (ou quer atuar) no mercado iOS, principalmente com desenvolvimento de aplicações para “produtos da maçã”, é importante ficar por dentro das novidades anunciadas na WWDC 2023.

Neste ano, o evento ocorreu em junho de 2023 e, como de costume, a Apple apresentou suas últimas novidades em termos de hardware, software, ferramentas de desenvolvimento e tecnologias para os sistemas operacionais iOS, iPadOS, macOS, watchOS e tvOS.

A WWDC é conhecida por ser um evento importante, presencial e online, em que a Apple:

  • Compartilha informações técnicas;
  • Realiza sessões de treinamento; e
  • Oferece oportunidades de networking para desenvolvedores de todo o mundo.

Neste artigo, vamos resumir as principais novidades em relação ao desenvolvimento de aplicativos e também:

  • Novidades na linguagem Swift;
  • Novidades na IDE Xcode;
  • Uma nova ferramenta para persistência de dados em SwiftUI;
  • Atualizações de software e funcionalidades novas;
  • Lançamentos de produtos previstos (um deles impactou o mercado)!

Bora lá?

Imagem que tem um arco colorido e, abaixo, o logotipo da Apple e a sigla “WWDC23” em um fundo preto. Banner da Escola de Mobile: Matricula-se na escola de Mobile. Junte-se a uma comunidade de mais de 500 mil estudantes. Na Alura você tem acesso a todos os cursos em uma única assinatura; tem novos lançamentos a cada semana; desafios práticos. Clique e saiba mais!

Novidades na linguagem Swift: o que muda para devs iOS

Expressões if-else dentro de variáveis: sintaxe mais clara e compreensível

Na linguagem Swift, existe uma construção chamada operador ternário, que permite criar expressões condicionais de forma concisa. Veja o código abaixo, que faz o cálculo de aprovação ou reprovação baseada nas notas de um aluno:

let notaFinal = 6
let aprovado = notaFinal >= 6 ? "Aprovado" : "Reprovado"

Nesse caso, verificamos se a nota final é maior ou igual a 6. Se for verdadeiro (nota igual ou maior a 6), o valor "Aprovado" é atribuído à constante aprovado; caso contrário (nota menor que 6), o valor "Reprovado" é atribuído.

Anteriormente, na linguagem Swift, não tínhamos uma sintaxe equivalente ao if-else para atribuição direta de valores. No entanto, a partir do Swift 5.9, introduziu-se a sintaxe if-else para expressões, como demonstrado no código a seguir:

let notaFinal = 6
let aprovado = if notaFinal >= 6 { "Aprovado" } else { "Reprovado "}

Essa nova sintaxe com if-else permite uma expressão mais legível, facilitando a compreensão do código.

Agora, você pode criar expressões condicionais mais claras e compreensíveis, de acordo com a sua preferência pessoal.

E as novidades em Swift da WWDC 2023 não param por aí!

Melhorias no Swift Foundation: inúmeras melhorias de desempenho e desenvolvimento

O Swift Foundation, um framework essencial no Swift que oferece tipos básicos, protocolos e funções para lidar com operações fundamentais, recebeu melhorias significativas de desempenho em três áreas.

Em relação às operações com calendários, foi alcançada uma melhoria de desempenho de aproximadamente 20%. Isso significa que as operações envolvendo calendários, como cálculos de datas e manipulação de eventos, agora são executadas de forma mais eficiente.

No que diz respeito à formatação de datas, houve um impressionante aumento de velocidade de cerca de 150%! Isso significa que a conversão entre representações de datas - como transformar uma data em uma string formatada e vice-versa - é executada de forma muito mais rápida.

Outra área em que houve grandes melhorias foi na decodificação/codificação com JSON. As operações de serialização e desserialização de dados JSON agora são de 200% a 500% mais rápidas. Isso é particularmente benéfico para aplicativos que dependem fortemente do uso de JSON para comunicação com serviços web ou armazenamento de dados.

Além dessas melhorias, houve avanços notáveis na questão de concorrência com a introdução de Async/Await. Essa funcionalidade permite que os desenvolvedores escrevam código assíncrono de maneira mais concisa e legível, tornando mais fácil lidar com tarefas que envolvem operações assíncronas, como chamadas de rede e processamento paralelo.

Essas melhorias de desempenho e recursos no Swift Foundation contribuem para uma experiência de desenvolvimento mais eficiente e eficaz, permitindo que os desenvolvedores criem aplicativos Swift mais rápidos e robustos.

Interoperabilidade com C++: mais flexibilidade nos projetos

Uma das grandes vantagens do Swift é a sua interoperabilidade com Objective-C, permitindo que desenvolvedores utilizem tanto código Swift quanto Objective-C em um mesmo projeto. Isso tem sido muito útil, especialmente para aqueles que estão migrando de projetos legados escritos em Objective-C para o Swift.

Além disso, com o Swift 5.9, foi introduzida a interoperabilidade com outra linguagem de programação: o C++. Essa linguagem é amplamente utilizada em várias aplicações, desde desenvolvimento de jogos até computação de alto desempenho.

Com essa interoperabilidade, é possível interagir diretamente com tipos e funções em C++ diretamente do Swift.

Se você deseja entender melhor como funciona essa questão de interoperabilidade entre as linguagens, recomendo assistir a este vídeo oficial da Apple. Ele fornecerá uma visão mais detalhada sobre como utilizar a interoperabilidade entre Swift e C++ em seus projetos.

Essa expansão na interoperabilidade do Swift amplia ainda mais as possibilidades de desenvolvimento e oferece aos desenvolvedores mais flexibilidade para aproveitar o melhor de ambas as linguagens em seus projetos.

Macros: simplificando a escrita e reutilização de código

Os Macros são uma nova funcionalidade poderosa que foi introduzida no Swift. Eles têm como objetivo simplificar e tornar a nossa base de código mais expressiva, evitando a repetição de código em várias partes do projeto.

Em um primeiro momento, o seu uso pode parecer um pouco confuso e difícil, mas tenho certeza que, conforme for utilizando essa nova funcionalidade, ela será cada vez mais intuitiva para você.

Em essência, os Macros funcionam como funções personalizadas que podemos criar e utilizar em diferentes partes do nosso projeto. Eles permitem que encapsulemos blocos de código comuns em uma única definição, que pode ser chamada em vários lugares.

E quais as vantagens dessa abordagem?

Ao usar Macros, podemos melhorar a legibilidade do código, reduzir a duplicação e manter um código mais limpo e organizado. Podemos definir nossos próprios Macros personalizados para automatizar tarefas, implementar lógicas complexas ou simplificar operações repetitivas.

Uma grande vantagem dos Macros é que eles podem ser compartilhados com outros desenvolvedores através do Swift Package Manager. Isso permite que você crie pacotes reutilizáveis que contém seus Macros personalizados e compartilhe-os com a comunidade de desenvolvedores. Vamos ver um exemplo!

Ao trabalhar com dados JSON no Swift, é comum encontrar um padrão de nomenclatura chamado snake_case, em que as palavras são separadas por underscores.

Porém, geralmente preferimos trabalhar com dados no formato camelCase, em que as palavras são escritas juntas e cada nova palavra começa com uma letra maiúscula. Para realizar essa conversão de nomenclatura, utilizamos as Coding Keys (chaves de codificação).

As Coding Keys são uma funcionalidade do Swift que nos permite mapear as propriedades de uma estrutura ou classe para as chaves de codificação de um formato de dados, como JSON. Com isso, podemos especificar como as chaves externas do JSON devem ser mapeadas para as propriedades internas da nossa estrutura.

Para facilitar essa conversão de snake_case para camelCase, podemos utilizar um Macro já criado. No exemplo abaixo, temos uma estrutura chamada UserResponse:

@CodingKeys(.all)
struct UserResponse: Codable {
    let id: String
    let age: Int
    let userName: String
    let userDescription: String
}

Ao utilizar o Macro @CodingKeys(.all), automaticamente será feita a expansão para o código abaixo. Essa expansão acontece em tempo de compilação.

struct UserResponse: Codable {
    ...
    enum CodingKeys: String, CodingKey {
        case id
        case age
        case userName = "user_name"
        case userDescription = "user_description"
    }
}

Com a introdução dos Macros, a linguagem Swift se torna ainda mais flexível e adaptável às necessidades dos desenvolvedores, oferecendo uma maneira mais eficiente e intuitiva de lidar com tarefas comuns e repetitivas.

No geral, os Macros são uma adição interessante à linguagem Swift, trazendo mais facilidade e expressividade ao desenvolvimento de projetos, ao mesmo tempo em que promovem a reutilização de código e a colaboração entre as pessoas desenvolvedoras.

E claro, não deixe de assistir o vídeo de apresentação do Macros na WWDC 2023 para entender melhor o seu funcionamento.

Além disso, você pode acessar um repositório no Github com diferentes macrosi já criados e prontos para implementar no seu projeto.

Novidades no Xcode 15.0

Mais uma novidade trazida pela Apple durante a WWDC 2023 foi a nova versão do Xcode que promete melhorias na qualidade de vida das pessoas desenvolvedoras!

O Xcode 15.0 é a mais recente versão da poderosa IDE (Integrated Development Environment) da Apple, amplamente utilizada por desenvolvedores para criar aplicativos para iOS, macOS, watchOS e tvOS.

Com diversas melhorias e recursos adicionais, o Xcode 15.0 traz uma série de novidades no mínimo empolgantes para facilitar e aprimorar o processo de desenvolvimento de software.

Melhorias no preenchimento automático de código

No Xcode 15, você vai experimentar uma melhoria no preenchimento automático de código, que prioriza as sugestões mais relevantes com base no código circundante. Esse aprimoramento garante que você receba sugestões precisas e oportunas, seja ao selecionar o modificador apropriado para uma visualização específica ou encadear modificadores ao personalizar uma visualização.

Por exemplo, ao criar um texto no SwiftUI utilizando o componente Text() e adicionando os modificadores necessários, o autocomplete do XCode irá sugerir modificadores relacionados ao componente que você acabou de criar, como por exemplo o modificador .font(), que altera a fonte do texto.

Já é uma ótima ajuda, não é mesmo?

Preview no UIKit: compilação de app mais rápida e ágil

Esta com certeza é uma das funcionalidades mais interessantes apresentadas na WWDC e vai animar bastante quem trabalha com UIKit!

Agora, é possível desfrutar da visualização em tempo real das alterações no código em aplicações feitas com UIKit, sem a necessidade de executar o aplicativo repetidamente.

No SwiftUI, essa funcionalidade é chamada de live preview (prévia em tempo real) e permite que as modificações sejam visualizadas automaticamente.

Porém, no UIKit, não tínhamos esse recurso, o que significava que toda vez que desejávamos ver uma modificação, precisávamos executar o aplicativo novamente. Esse processo pode ser demorado, especialmente em projetos extensos que levam tempo para compilar.

Felizmente, graças aos Swift Macros, agora é possível implementar a funcionalidade de "Preview" também no UIKit. A imagem abaixo ilustra essa novidade:

Imagem que mostra a funcionalidade de preview em funcionamento no UIKit. Ao lado esquerdo, há as linhas de código e, ao lado direito, há a janela de pré-visualização que mostra o aplicativo em tempo real.

No entanto, essa funcionalidade está disponível apenas para iOS 17 ou versões mais recentes. Embora seja um avanço significativo, é uma pena que ainda não esteja disponível para versões anteriores do iOS.

Símbolos para os Assets: evitando erros de digitação

Mais uma facilitação que foi divulgada na WWDC 2023 pela Apple!

Agora, o Xcode gera automaticamente símbolos para os recursos do seu catálogo de assets.

Isso significa que esses símbolos serão exibidos no preenchimento automático de código, tornando mais fácil utilizar seus assets dentro do código. Ao incorporar esse recurso, você pode se beneficiar da segurança de tipos e ter a tranquilidade de saber que seus assets estão prontamente disponíveis durante a execução do aplicativo iOS.

Anteriormente, ao adicionarmos uma cor ou imagem ao diretório "Assets" do nosso projeto, é necessário fazer referência a eles por meio de uma string. Por exemplo, ao alterar a cor do texto de um label, utilizamos o seguinte código em Swift:

label.textColor = UIColor(named: "ColorPurple")

No entanto, essa abordagem pode gerar alguns problemas, como erros de digitação na string, o que comprometeria o funcionamento correto do projeto.

Felizmente, graças a este novo recurso do Xcode, agora podemos referenciar essa cor como se fosse uma instância da classe UIColor, simplificando o processo. Veja o exemplo a seguir:

text.textColor = UIColor.colorPurple

Essa nova forma de referenciar cores é bastante conveniente, não é mesmo? Além de evitar erros de digitação, torna o código mais legível e intuitivo.

SwiftData: uma poderosa e nova opção para armazenamento de dados em apps iOS em SwiftUI

Se você já teve experiência com o CoreData, um framework iOS utilizado para persistência de dados em aplicativos, certamente se lembra de como pode ser trabalhoso e verboso, exigindo um código extenso, especialmente ao configurar o modelo de dados inicial e as relações entre entidades.

Porém, a WWDC 2023 trouxe mais uma inovação que promete facilitar a vida de quem trabalha com aplicativos iOS (e Swift UI) e precisa armazenar dados.

Agora, temos o SwiftData, uma nova opção que simplifica a persistência de dados usando código declarativo. Com o SwiftData, você pode consultar e filtrar dados utilizando código Swift comum, e ele foi especialmente projetado para integrar-se perfeitamente com o SwiftUI.

Veja o exemplo de código abaixo, que cria um modelo correspondente a uma receita, contendo atributos como nome, descrição e ingredientes. O modelo é definido usando a anotação @Model.

@Model
class Recipe {
    @Attribute(.unique) var name: String
    var description: String?
    var ingredients: [Ingredient]
}

Integrar o SwiftData com o SwiftUI é extremamente simples. Veja o exemplo de código abaixo:

@Query var recipes: [Recipe]
var body: some View {
    List(recipes) { recipe in
        NavigationLink(recipe.name, destination: RecipeView(recipe))
    }
}

Além disso, é possível criar relacionamentos utilizando a palavra-chave @Relationship. O SwiftData também oferece suporte para migrar projetos existentes feitos com CoreData para o SwiftData.

Tudo se torna muito mais simples com o SwiftData, não é mesmo?

Não deixe de conferir o vídeo oficial de apresentação do Swift Data na WWDC 2023. Lá você encontrará mais detalhes sobre essa incrível ferramenta.

Novidades de Software: iOS ganha novas funcionalidades

Além das novidades relacionadas ao desenvolvimento com Swift, SwiftUI e UIKit, houve também o lançamento de novas versões do iOS, iPadOS, MacOS, WatchOS e tvOS, trazendo uma série de melhorias e aprimoramentos.

O iOS 17.0 trouxe algumas atualizações interessantes, incluindo:

  • Função StandBy como um hub de entretenimento, proporcionando acesso fácil a conteúdos multimídia;
  • Siri pode ser ativada apenas pelo nome, simplificando a interação com o assistente virtual;
  • Correio de voz com transcrição de voz, permitindo visualizar o conteúdo das mensagens de voz de forma textual;
  • Envio de mensagens de vídeo pelo FaceTime, tornando as conversas mais interativas e divertidas;
  • Novas funcionalidades no iMessage, adicionando recursos extras para a troca de mensagens;
  • Aprimoramentos na autocorreção, ajudando a digitar com mais precisão e eficiência;
  • Possibilidade de definir imagens de fundo diferentes para cada contato, personalizando ainda mais as conversas;
  • Compartilhamento de contatos por meio do AirDrop, facilitando o compartilhamento de informações de contato entre dispositivos Apple;
  • App Journals voltado para o bem-estar e saúde mental, fornecendo recursos para auxiliar na organização e no autocuidado;
  • Funcionalidade offline no Maps, permitindo utilizar o aplicativo de mapas mesmo sem conexão com a internet;
  • Atualizações de acessibilidade, visando tornar os dispositivos Apple mais inclusivos e acessíveis para todos.

Você pode acessar a página oficial da Apple para conferir todas as novidades do iOS 17.

Já o MacOS recebeu uma nova atualização chamada Sonoma, trazendo diversas novidades, sendo algumas delas:

  • Widgets na Mesa, oferecendo acesso rápido a informações importantes diretamente na área de trabalho;
  • Aprimoramentos significativos para videoconferências, melhorando a qualidade e a experiência em reuniões virtuais.

Você pode conferir a página oficial do Sonoma e ver todas as outras atualizações que vieram para o MacOS.

Novidades de Hardware: novos produtos inovadores anunciados pela Apple

Além de todas as novidades envolvendo desenvolvimento e novas atualizações de sistemas operacionais que vimos anteriormente, a Apple lançou alguns novos produtos:

Vamos conhecer melhor o VisionPRO, que chamou muita atenção?

VisionPRO e VisionOS: uma experiência inovadora e única

Imagem de uma mulher negra utilizando o óculos de realidade aumetada VisionPRO em um fundo na cor preta.

Você provavelmente ouviu falar do VisionPRO, cujo lançamento foi o grande destaque da WWDC 2023.

Anunciado pela Apple como "o produto mais ambicioso que já criamos", trata-se de um dispositivo de óculos de realidade mista que combina Realidade Virtual (RV) e Realidade Aumentada (RA). Essa tecnologia revolucionária oferece uma experiência imersiva ao usuário, seja para fins de entretenimento, trabalho ou estudo.

Uma característica marcante do Apple Vision Pro é o seu método de controle totalmente baseado na voz, movimento dos olhos e das mãos do usuário, eliminando a necessidade de controles físicos.

Diferentemente de outros concorrentes no mercado, como o Meta Quest Pro, os óculos da Apple proporcionam uma interação mais intuitiva e natural, permitindo uma imersão completa no mundo virtual e aumentado.

A proposta do Apple Vision Pro é proporcionar uma experiência imersiva avançada, permitindo que os usuários explorem novas possibilidades no campo da realidade mista.

Seja para jogos, simulações, criação de conteúdo ou até mesmo uso profissional, os óculos oferecem um novo nível de interação e imersão, tornando-se um dispositivo versátil para diferentes cenários de uso.

Com essa abordagem inovadora, a Apple mais uma vez demonstra seu compromisso em criar produtos revolucionários que redefinem as possibilidades tecnológicas e elevam a experiência do usuário a um novo patamar.

O Apple Vision Pro promete abrir novos horizontes no campo da realidade mista, trazendo um futuro emocionante e repleto de oportunidades para os usuários.

A previsão de lançamento é para o início de 2024, embora a data exata ainda não tenha sido confirmada pela Apple. No momento do lançamento, o headset será disponibilizado por um preço de US$ 3,4 mil (aproximadamente R$ 17 mil em conversão direta), mas ainda não foi confirmada a disponibilidade do produto para o mercado brasileiro.

No que diz respeito ao desenvolvimento de aplicações para o Vision Pro, a Apple lançou recentemente o primeiro kit de desenvolvimento de software (SDK) para permitir que os desenvolvedores explorem o mundo da realidade virtual e aumentada. Esse SDK oferece um conjunto de ferramentas e recursos que permitem aos desenvolvedores criar experiências interativas para o Vision Pro.

De acordo com a Apple, o desenvolvimento de aplicações para o visionOS, o sistema operacional do Vision Pro, pode começar utilizando as frameworks tradicionais que os desenvolvedores já estão familiarizados, como o Xcode, SwiftUI, RealityKit, ARKit e TestFlight. Essas ferramentas permitem a criação de aplicativos com recursos básicos de realidade aumentada e virtual.

Em estágios posteriores do desenvolvimento, os desenvolvedores terão acesso a ferramentas mais avançadas e específicas para aproveitar ao máximo as capacidades do Vision Pro.

Uma dessas ferramentas é o Reality Composer Pro, que ajuda na criação de ambientes em 3D e na implementação de recursos exclusivos do headset, como som imersivo e o máximo aproveitamento do campo de visão.

Com essas ferramentas e recursos à disposição, os desenvolvedores terão a oportunidade de criar experiências imersivas e inovadoras para o Apple Vision Pro, proporcionando aos usuários uma nova dimensão de interação com a realidade virtual e aumentada.

Acesse este link para saber mais sobre o VisionOS, o sistema operacional do VisionPRO, e começar a desenvolver aplicativos para ele.

Conclusão

Neste artigo, exploramos diversas novidades reveladas durante a WWDC 2023, a conferência anual de desenvolvedores da Apple.

Como profissionais de tecnologia, é essencial estarmos sempre atentos às últimas atualizações e continuarmos aprendendo para nos mantermos atualizados.

Você pode acessar o site oficial da WWDC 2023, para conferir todos os conteúdos apresentados durante o evento. Lá você encontrará informações detalhadas sobre as novidades do desenvolvimento da Apple.

Além disso, se você deseja aprofundar seus conhecimentos em iOS, recomendamos o curso Swift - Entendendo a Linguagem na Alura, presente na formação de Swift. Este curso e a formação são voltados a iniciantes e proporcionam uma introdução abrangente à linguagem Swift.

Continue se atualizando e aprimorando suas habilidades, e até a próxima!

Giovanna Moeller
Giovanna Moeller

Desenvolvedora de Software e Criadora de Conteúdo @girl.coding

Veja outros artigos sobre Mobile