Introdução ao watchOS 5
Observação
Confira a Introdução ao watchOS 3 para obter uma visão geral dos recursos mais recentes.
Sobre o watchOS
Uma solução de aplicativo watchOS tem 3 projetos:
- Watch Extension – Um projeto que contém o código para o aplicativo watch.
- Watch App – Contém o storyboard e os recursos da interface do usuário.
- iOS Parent App - Este aplicativo é um aplicativo normal para iPhone. O aplicativo e a extensão do relógio são incluídos no aplicativo do iPhone para entrega ao relógio do usuário.
Nos aplicativos do watchOS 1, o código na extensão é executado no iPhone – o Apple Watch é efetivamente uma tela externa. Os aplicativos watchOS 2 e 3 são executados inteiramente no Apple Watch. Essa diferença é mostrada no diagrama abaixo:
Independentemente de qual versão do watchOS é direcionada, no Solution Pad do Visual Studio para Mac uma solução completa será algo como isto:
O aplicativo pai em uma solução watchOS é um aplicativo iOS normal. Este é o único projeto na solução que é visível no telefone. Os casos de uso para este aplicativo incluiriam tutoriais, telas administrativas e filtragem de camada intermediária, cache, etc. No entanto, é possível que o usuário instale e execute o aplicativo/extensão do relógio sem nunca ter aberto o aplicativo pai, portanto, se você precisar que o aplicativo pai seja executado para inicialização ou administração única, você precisará programar seu aplicativo/extensão do relógio para informar isso ao usuário.
Embora o aplicativo pai forneça o aplicativo e a extensão do relógio, eles são executados em caixas de proteção diferentes.
No watchOS 1, eles podem compartilhar dados por meio de um grupo de aplicativos compartilhados ou por meio da função WKInterfaceController.OpenParentApplication
estática , que acionará o UIApplicationDelegate.HandleWatchKitExtensionRequest
método no aplicativo AppDelegate
pai (consulte Trabalhando com o aplicativo pai).
No watchOS 2 ou posterior, a estrutura Watch Connectivity é usada para se comunicar com o aplicativo pai, usando a WCSession
classe.
Ciclo de vida do aplicativo
Na extensão de observação, uma subclasse da WKInterfaceController
classe é criada para cada cena do Storyboard.
Essas WKInterfaceController
classes são análogas aos UIViewController
objetos na programação do iOS, mas não têm o mesmo nível de acesso à exibição.
Por exemplo, você não pode adicionar dinamicamente controles ou reestruturar sua interface do usuário.
No entanto, você pode ocultar e revelar controles e, com alguns controles, alterar suas opções de tamanho, transparência e aparência.
O ciclo de vida de um WKInterfaceController
objeto envolve as seguintes chamadas:
- Despertar : Você deve executar a maior parte da inicialização neste método.
- WillActivate : Chamado pouco antes do Watch App aparecer para o usuário. Use esse método para executar inicialização de última hora, iniciar animações, etc.
- Neste ponto, o Watch App é exibido e a Extensão começa a responder à entrada do usuário e a atualizar a exibição do Watch App de acordo com a lógica do aplicativo.
- DidDeactivate Depois que o Watch App for descartado pelo usuário, esse método será chamado. Depois que esse método retorna, os controles da interface do usuário não podem ser modificados até que a próxima vez
WillActivate
seja chamada. Este método também será chamado se a conexão com o iPhone estiver quebrada. - Depois que a extensão for desativada, ela ficará inacessível ao seu programa. Funções assíncronas pendentes não serão chamadas. As extensões do Watch Kit podem não usar modos de processamento em segundo plano. Se o programa for reativado pelo usuário, mas o aplicativo não tiver sido encerrado pelo sistema operacional, o primeiro método chamado será
WillActivate
.
Tipos de interface do usuário
Há três tipos de interação que o usuário pode ter com seu aplicativo do relógio.
Todos são programados usando subclasses personalizadas de , de modo que a sequência de ciclo de vida discutida WKInterfaceController
anteriormente se aplica universalmente (as notificações são programadas com subclasses de WKUserNotificationController
, que por sua vez é uma subclasse de WKInterfaceController
):
Interação normal
A maior parte da interação do aplicativo de relógio/extensão será com subclasses das WKInterfaceController
quais você escreve para corresponder às cenas no Interface.storyboard do aplicativo de relógio. Isso é abordado em detalhes nos artigos Instalação e Introdução .
A imagem a seguir mostra uma parte do Storyboard do exemplo. Para cada cena mostrada aqui, há um costume WKInterfaceController
correspondente (LabelDetailController
, ButtonDetailController
, SwitchDetailController
, etc.) no projeto de extensão.
Notificações
As notificações são um dos principais casos de uso do Apple Watch. Há suporte para notificações locais e remotas. A interação com as notificações ocorre em duas etapas, chamadas de Short- e Long-Look.
As Aparências curtas são exibidas brevemente e mostram o ícone do aplicativo de observação, seu nome e o Título (conforme especificado com WKInterfaceController.SetTitle
).
O Long Look combina uma área de faixa fornecida pelo sistema e o botão Dispensar com seu conteúdo personalizado baseado em Storyboard.
WKUserNotificationInterfaceController
estende-se WKInterfaceController
com os métodos DidReceiveLocalNotification
e DidReceiveRemoteNotification
.
Substitua esses métodos para reagir a eventos de notificação.
Para obter mais informações sobre o design da interface do usuário de notificação, consulte as Diretrizes de interface humana do Apple Watch
Tamanhos de tela
O Apple Watch tem dois tamanhos de face: 38 mm e 42 mm, ambos com uma proporção de ecrã de 5:4, e um ecrã Retina. Seus tamanhos utilizáveis são:
- 38mm: 136 x 170 pixels lógicos (272 x 340 pixels físicos)
- 42mm: 156 x 195 pixels lógicos (312 x 390 pixels físicos).
Use WKInterfaceDevice.ScreenBounds
para determinar em qual tela seu aplicativo Watch está sendo executado.
Geralmente, é mais fácil desenvolver seu design de texto e layout com a tela de 38 mm mais restrita e, em seguida, aumentar a escala. Se você começar com o ambiente maior, reduzir a escala pode levar a uma sobreposição feia ou truncamento de texto.
Leia mais sobre como trabalhar com tamanhos de tela.
Limitações do watchOS
Existem algumas limitações do watchOS a serem observadas ao desenvolver aplicativos watchOS:
Os dispositivos Apple Watch têm armazenamento limitado - esteja ciente do espaço disponível antes de baixar arquivos grandes (por exemplo, arquivos de áudio ou filme).
Muitos controles watchOS têm análogos em UIKit, mas são classes diferentes (
WKInterfaceButton
em vez deUIButton
,WKInterfaceSwitch
paraUISwitch
, etc.) e têm um conjunto limitado de métodos em comparação com seus equivalentes UIKit. Além disso, o watchOS tem alguns controles comoWKInterfaceDate
(para exibir uma data e hora) que o UIKit não tem.- Você não pode rotear notificações apenas para o Watch ou apenas para o iPhone (que tipo de controle o usuário tem sobre o roteamento não foi anunciado pela Apple).
Algumas outras limitações conhecidas / perguntas frequentes:
A Apple não permitirá mostradores de relógio personalizados de 3ª parte.
As APIs que permitem que o Watch controle o iTunes no telefone conectado são privadas.
Leitura Adicional
Confira a documentação da Apple: