Repolode
elijah-semyonov

elijah-semyonov/DuoLikeAnimation

Demo para iOS que usa shaders Metal do SwiftUI e Core Motion para imitar a animação de dobra de um iPhone dobrável e dar à tela aparência de vidro fosco.

Estrelas
158
Forks
40
Issues abertas
0
Último commit
mês passado

O que é?

DuoLikeAnimation é um projeto de demonstração para iOS que imita a animação de dobra do iPhone Duo usando apenas shaders do SwiftUI e Core Motion. Um layerEffect do Metal recebe a atitude do dispositivo em tempo real, fazendo um celular plano parecer dobrar como uma das metades de um dispositivo dobrável.

O efeito trata a tela como uma placa de vidro fosco. A interface permanece fixa no espaço do mundo enquanto o dispositivo se inclina em torno do eixo vertical. O shader reprojeta a visualização em perspectiva, aplica desfoque e escurece a imagem proporcionalmente à distância entre o vidro e o plano da interface, além de renderizar áreas pretas onde os raios não atingem a interface. Por padrão, o olho de quem vê é modelado a uma distância de 320 mm, como ao segurar o aparelho na mão.

O projeto inclui o shader, um modificador SwiftUI com parâmetros ajustáveis, um modelo de Core Motion que calibra a posição de inclinação zero e uma visualização de demonstração com um painel para recalibração e inclinação manual. No simulador, onde não há dados de movimento, a inclinação manual fica ativada por padrão.

Recursos principais

  • 01O shader Metal layerEffect faz reprojeção em perspectiva, desfoque e escurecimento com base na distância.
  • 02O Core Motion fornece a atitude do dispositivo e calibra a posição de inclinação zero a partir da primeira amostra.
  • 03O modificador .foldEffect(angle:parameters:) expõe parâmetros ajustáveis.
  • 04Um painel flutuante permite recalibração e inclinação manual.
  • 05A inclinação manual fica ativada por padrão no simulador.

Casos de uso

  • Aprender a escrever shaders layerEffect do SwiftUI com Metal.
  • Prototipar efeitos de interface para dispositivos dobráveis ou com inclinação 3D no iOS.
  • Estudar como os dados de atitude do Core Motion podem controlar efeitos visuais.

Início rápido

  1. 1

    Abra DuoLikeAnimation.xcodeproj no Xcode

  2. 2

    Execute o app em um dispositivo iOS (o simulador não tem dados de movimento, então a inclinação é controlada manualmente)

Antes de usar

  • Foi desenvolvido apenas para iOS. Para obter o efeito real de inclinação, é necessário um dispositivo físico com sensores de movimento.
  • É um projeto de demonstração, não uma biblioteca reutilizável.

Tópicos

Perguntas frequentes

O que é DuoLikeAnimation?
Demo para iOS que usa shaders Metal do SwiftUI e Core Motion para imitar a animação de dobra de um iPhone dobrável e dar à tela aparência de vidro fosco. DuoLikeAnimation é um projeto de demonstração para iOS que imita a animação de dobra do iPhone Duo usando apenas shaders do SwiftUI e Core Motion. Um layerEffect do Metal recebe a atitude do dispositivo em tempo real, fazendo um celular plano parecer dobrar como uma das metades de um dispositivo dobrável.
DuoLikeAnimation é gratuito? Qual é a licença?
DuoLikeAnimation é open source sob a licença MIT. Confira os termos da licença antes de usá-lo em produtos comerciais.
DuoLikeAnimation ainda é mantido?
Atualizado nos últimos 6 meses. O último commit de DuoLikeAnimation foi em 11 de set. de 2026.
Para que posso usar DuoLikeAnimation?
Aprender a escrever shaders layerEffect do SwiftUI com Metal. Prototipar efeitos de interface para dispositivos dobráveis ou com inclinação 3D no iOS. Estudar como os dados de atitude do Core Motion podem controlar efeitos visuais.
Como instalar DuoLikeAnimation?
Abra DuoLikeAnimation.xcodeproj no Xcode Execute o app em um dispositivo iOS (o simulador não tem dados de movimento, então a inclinação é controlada manualmente)
Onde consigo DuoLikeAnimation?
O código-fonte e as instruções de instalação estão no GitHub: https://github.com/elijah-semyonov/DuoLikeAnimation

Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.

Projetos relacionados