Chacoalhar o iPhone — pode salvar o seu dia

Eduardo Lombardi
3 min readMar 9, 2022
Photo by Omar Al-Ghosson on Unsplash

Uma história não muito conhecida, é como surgiu uma das funcionalidades essenciais do iPhone. O time pensava muito em detalhes e precisavam de algo que fosse genérico o suficiente para funcionar em qualquer situação que o usuário estivesse para desfazer uma ação, como um texto digitado por exemplo. De brincadeira, um dos engenheiros disse que poderia fazer com que o usuário chacoalhasse o iPhone para ativar a função, e Scott Forstall, chefe da equipe na época, adorou a idéia. Como muito do que a Apple faz em termos de código depois vira uma API para desenvolvedores, essa funcionalidade foi mais uma. Aqui vou dar algumas dicas de implementação e de funcionalidades compatíveis com o chacoalho do aparelho.

Vira e mexe precisamos de alguma funcionalidade em nosso aplicativo que funcione apenas em ambiente de desenvolvimento, ou ainda alguma maneira de coletar determinados registros da aplicação produtiva em casos de algum bug mais escabroso. Que tal ter uma maneira especial, e devemos dizer, engraçada de promover essas funcionalidades? Podemos utilizar uma validação do gesto de chacoalhar do telefone para tal. Se quiser procurar mais sobre o tema na internet, procure por easter egg em aplicações mobile.

Mas aonde colocamos tal código? Queremos que a funcionalidade de chacoalhar o dispositivo para capturar um log esteja apenas em uma das telas do app ou em todas? Para funcionalidades ditas "core" ou centrais na aplicação é mais interessante que seu código fique também em um local centralizado de acesso global. Facilita a manutenção e eventual remoção se necessária for. Muitos podem pensar: AppDelegate é a resposta. Não necessariamente. Para este caso, enxergo como melhor estratégia criar uma extensão para uma UIWindow de forma que em qualquer parte da aplicação ela seja executada.

De acordo com a documentação da Apple neste link, temos poucos tipos no enum EventSubtype, e de movimento, apenas o motionShake. O que fazer dentro da validação de chacoalhar o device é de sua criatividade e responsabilidade. Não recomendo colocar funções primordiais do aplicativo porque este movimento ainda é contra-intuitivo. No app do facebook por exemplo aparece um modal para reportar algum problema ou pedir ajuda sobre alguma funcionalidade.

Chacoalhar o dispositivo não é a única opção no entanto, para o desenvolvimento de easter eggs e funcionalidades auxiliares. Podemos utilizar combinações de volume, gestos customizados, multiplos toques, botões escondidos ou uma combinação dessas para tornar a funcionalidade desejada ainda mais escondida. Algo importante é deixar avisado e claro à todos os envolvidos na manutenção da aplicação da existência de tal funcionalidade, a fim de evitar surpresas desagradáveis.

--

--