Questão de Arquitetura de Software — Usabilidade — FGV 2024
Arquitetura de Software›Usabilidade
Código
fg098516
Banca
FGV
Órgão
TJ-MS
Ano
2024
Nível
Superior
Cargo
Técnico de Nível Superior - Analista de Sistemas Computacionais - Analista de Sistemas
O analista José desenvolveu a versão para iOS do aplicativo JustNotifica. Mediante o uso do recurso Universal Link do iOS, ele implementou o caso de uso no qual o JustNotifica é acionado por outros aplicativos de forma direta.Ao ser acionado por meio de um Universal Link, o JustNotifica deve receber do iOS um objeto do tipo:
AUIApplication;
BNSUserActivity;
CNSURLQueryItem;
DNSURLComponents;
EUIUserActivityRestoring.
Revelar gabarito e comentário▾
GabaritoB — NSUserActivity;
Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.
Universal Links no iOS – Objeto Recebido
Gabarito: letra B. Quando um aplicativo iOS é acionado por um Universal Link, o sistema operacional entrega um objeto do tipo NSUserActivity ao método application:continueUserActivity:restorationHandler: do UIApplicationDelegate. É por meio desse objeto que o app recebe os dados do link e decide como tratá-lo.
A questão testa o conhecimento específico do mecanismo de Universal Links, introduzido pela Apple para substituir os esquemas de URL customizados (URL Scheme). O fluxo padrão é: o iOS intercepta o link, verifica o arquivo apple-app-site-association e, se válido, chama o delegate passando uma NSUserActivity com activityType igual a NSUserActivityTypeBrowsingWeb.
1Usuário toca no link
2iOS verifica apple-app-site-association
3Se válido, chama o delegate
4Recebe NSUserActivity
5Acessa webpageURL
LEVEL · soulevel.com.br
Alternativa A — ❌ Incorreta
UIApplication é a classe que representa o aplicativo em si, não o objeto recebido no acionamento por Universal Link. Ela é o singleton usado para controlar o ciclo de vida e não contém os dados do link.
Alternativa B — ✅ Correta ⟵ GABARITO
NSUserActivity é o objeto correto. No método application:continueUserActivity:restorationHandler:, o parâmetro userActivity é do tipo NSUserActivity, e a URL do Universal Link é acessada pela propriedade webpageURL dessa atividade.
Alternativa C — ❌ Incorreta
NSURLQueryItem representa um parâmetro individual de uma query string (ex.: ?id=123). Ele não é o objeto recebido; faz parte da decomposição de uma URL, mas não é entregue diretamente pelo sistema no acionamento do link.
Alternativa D — ❌ Incorreta
NSURLComponents é uma classe utilitária para parsear e construir URLs. Também não é o objeto passado ao delegate; é algo que se pode usar para processar a URL contida na NSUserActivity.
Alternativa E — ❌ Incorreta
UIUserActivityRestoring é um protocolo (não uma classe concreta) que objetos podem implementar para restaurar o estado a partir de uma atividade do usuário. Não é o tipo do objeto recebido no acionamento do Universal Link.
PEGA ESSA DICA!
Lembre-se do método do delegate: application:continueUserActivity:restorationHandler:. O nome do parâmetro já entrega o tipo (userActivity). Se a alternativa falar em NSURL ou NSURLComponents, desconfie: o iOS entrega NSUserActivity, e a URL está dentro dela.