iOS Digest No. 8 (14 a 27 de junho)


Fonte da imagem: The Verge
O carro autônomo da Apple, suporte para um manipulador do tipo mouse no iPad, uma câmera no Apple Watch e ainda mais notícias no novo resumo do iOS. Ao mesmo tempo, vamos ver como o SwiftUI é bom em termos de desempenho e como usar a estrutura Combine se as cadeias RxSwift não se apegam mais à alma.

Notícias do setor


  • O Verge relata que a Apple está pensando em integrar a câmera ao seu relógio. Podemos apenas adivinhar a seriedade desses planos, mas, para garantir, a empresa registrou várias patentes para integrar a câmera na alça, uma das quais remonta a 2016. Durante esse período, a câmera não apareceu em novas versões, mas continuará sendo.

    É relatado que tirar fotos será possível usando o controle de voz ou segurando o relógio. A julgar pelas imagens, para remover do ângulo desejado, basta girar a alça (que parece muito mais conveniente do que virar a mão se a câmera estiver embutida no próprio estojo).
  • O iPad está coberto pelo número de possíveis dispositivos emparelhados: além do teclado e da caneta, o iPadOS agora suporta um mouse de computador. Não houve anúncio oficial; essa funcionalidade está desativada por padrão, mas pode ser ativada nas configurações de Acesso Universal.
  • A Apple comprou a startup Drive.ai , que está desenvolvendo um carro autônomo. Sobre o fato de a Apple estar trabalhando em seu próprio carro com controle autônomo, isso já era conhecido, mas no ano passado houve notícias de que o projeto foi encerrado. Aparentemente não, o trabalho continua.
  • A Apple contratou um dos principais designers de processadores da ARM para trabalhar em seu próprio processador MacBook, informa a Bloomberg . A julgar pelas informações disponíveis, um plano para substituir os processadores Intel já existe há vários anos, e o objetivo é mudar para seus parentes baseados em ARM em 2020.

Notícias sobre desenvolvimento de IOS


  • Os desenvolvedores continuam a jogar com a nova versão do ARKit 3, várias demos interessantes foram lançadas: por exemplo, uma com a capacidade de remover pessoas de vídeo em tempo real. Provavelmente será semelhante à função "Bloquear usuário" nas redes sociais para óculos inteligentes no futuro.

    Até agora, sem uso prático específico, mas é bastante pegajoso que o corpo seja dividido em partículas em tempo real:

    Você conseguiu fazer algo semelhante usando o ARKit? Compartilhe idéias nos comentários.
  • A complexidade do idioma rápido está aumentando, com cada atualização, mais e mais funcionalidades são adicionadas. No Swift 5.1, é possível escrever wrappers para propriedades e estruturas de classe (nos wrappers de propriedades originais). Eles são necessários para adicionar declarativamente alguma funcionalidade e comportamento sobre o tipo declarado da variável, aumentando assim a segurança do código.

    Por exemplo, considere um invólucro que corta automaticamente espaços e quebras de linha em uma sequência:

    import Foundation @propertyWrapper struct Trimmed { private(set) var value: String = "" var wrappedValue: String { get { value } set { value = newValue.trimmingCharacters(in: .whitespacesAndNewlines) } } init(initialValue: String) { self.wrappedValue = initialValue } } 

    Uma variante da declaração e uso no código terá a seguinte aparência:

     struct Post { @Trimmed var title: String @Trimmed var body: String } let quine = Post(title: " Swift Property Wrappers ", body: "...") quine.title // "Swift Property Wrappers" (no leading or trailing spaces!) quine.title = " @propertyWrapper " quine.title // "@propertyWrapper" (still no leading or trailing spaces!) 

    Consulte o artigo Swift Property Wrappers para obter mais detalhes.

    Enquanto isso, o GitHub já possui uma coleção de wrappers que podem ser úteis.
  • Existem dois artigos sobre o uso da estrutura Combine : Introdução à estrutura Combine na estrutura Swift e Combine em ação . Escolha um ou leia os dois!
  • Acontece que o novo recurso do Xcode 11 Preview pode ser usado sem o SwiftUI, mas você precisará alterar a versão minimamente suportada do iOS, que parece um pouco confusa e talvez não aplicável a um projeto grande existente. O procedimento pode ser encontrado aqui .
  • Se você, como eu, estiver interessado no problema de sincronização de dados do cliente, leia o artigo Novo Core Data Sync da Apple, baseado em CloudKit . Nele, o desenvolvedor da biblioteca de sincronização de dados do Ensembles reflete sobre a nova reencarnação do CloudKit da estrutura de sincronização baseada no Apple CoreData.
    Para os interessados: na Mobius em maio, tive a chance de fazer uma apresentação sobre os problemas de sincronização de dados em clientes móveis durante a edição conjunta. Além disso, em julho será possível se comunicar pessoalmente com um dos embaixadores de questões de sincronização de dados Martin Kleppman na conferência Hydra 2019 , que será realizada de 11 a 12 de julho de 2019 em São Petersburgo. Enquanto isso, há uma oportunidade de ler uma ótima entrevista com ele.
  • O Twitter relata que o desempenho da animação da interface SwiftUI não é inferior às primitivas gravadas usando CALayer e CoreGraphics.

    O SwiftUI pode processar de 5 a 10 vezes mais primitivas antes que o desempenho caia abaixo de 60 FPS.

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


All Articles