Programador usa um exploit para criar o jogo Pong na dock do macOS
A criatividade não tem limites e os programadores não se conformam com o que existe, estão sempre a tentar quebrar as regras instaladas. Conforme veremos, até um ícone na dock do macOS é motivo para desafiar a lógica, afinal, usar este pequeno campo de informação para criar um jogo... é, no mínimo, curioso!
Sardesai, um programador iOS, trouxe o jogo Pong à barra de ícones no sistema operativo dos Macs.
Pong na dock do macOS
Como sabemos, os Macs não são as máquinas talhadas para os jogos. Na verdade, existem muitos jogos para macOS, incluindo grandes títulos, e ano após ano vemos a Apple cada vez mais focada nesta área. Assim, quem sabe, se com a nova arquitetura Apple Silicon, que mostrou o seu poder nos processadores M1, a empresa de Cupertino não aumenta o seu interesse no segmento gaming.
Apesar dos apesares, há sempre quem goste de romper com o convencional. Assim, um programador para iOS, Neil Sardesai, criou um pequeno, mas muito popular, jogo num ícone posicionado na dock do macOS.
O feito é notável e permite que o utilizador se divirta a jogar Pong:
Who says you can’t play games on a Mac 😌 pic.twitter.com/GNVDUd59bQ
— Neil Sardesai (@neilsardesai) February 19, 2021
Segundo o programador, este "truque" usa um exploit possível graças ao AppKit, que permite em particular personalizar os elementos gráficos do macOS. Como podemos ver acima, o jogo corre muito bem e parece suave, jogável com suporte do rato do dispositivo.
Para já, só o criador pode tirar proveito deste pequeno ato de programação. Então, esperemos que um dia destes ele possa partilhar com a comunidade.
Este artigo tem mais de um ano
Usa um exploit?? ou usa o NSDockTile?
Ele ainda não publicou o trabalho (pelo menos até ao momento), mas pelo que parece, ele usou uma “falha” no NSDockTile. Isto porque o NSDockTile permite a representação visual da app no seu ícone que aparece na dock. Ele conseguiu aliar a isso a ação, isto é, usar o rato para criar jogabilidade.
és tu que estás a assumir que usou uma falha, mas há uma grande diferença entre falha na API e usar a API numa maneira diferente. Como exemplo a API possibilita a actualização do icon na Dock representando o conteúdo duma janela.
A API não diz que podes fazer o que foi feito. E repara como descrevi a palavra “falha”, como coloquei entre aspas, poderá ser o usar de outra forma utilizando uma possibilidade até agora não documentada.
A API diz explicitamente que se pode actualizar o icon na Dock, é tudo uma questão de frequência de actualização e de vontade do programador.
Aliás ainda me lembro do tempo do Steve Jobs em que ele apresentou a novidade de minimizar a janela dum filme para a Dock e o filme continuar a correr na dock. Mais tarde a aplicação do quicktime deixou de fazer isso, mas a API que permite isso no Dock continua a existir.
Mas daí a poderes usar o rato para interagir, não me parece que esteja descrito na API. Essa é a diferença que realça esta ação.
Geralmente discordo dos Trolls, mas o FIlipe está correto. Nem mesmo usando “falha” entre aspas seria apropiado.
https://developer.apple.com/documentation/appkit/nsdocktile
A própria documentação fala: ” Draw the tile content yourself.
If you decide to draw the tile content yourself, you must provide a custom content view to handle the drawing.”
Ou seja, pode ser qualquer coisa, até mesmo um jogo.
Eu reescreveria como: “Desenvolver faz jogo na dock do MacOS”
Entretanto admito que nem eu teria clicado na notícia – HAHAHAHAHA
É a tua opinião, respeito, mas pelo que percebi, não está designado que pode ser colocado um jogo, mas sim uma miniatura da app. Basicamente ele foi mais além do que criar um ícone com a miniatura, ele deu-lhe ações que não estariam descrita na API, como usar o rato para controlar uma ação dentro do ícone. 😉
Vítor M.,
uma aplicação não se faz obrigatoriamente só com uma API, pode ser feita com dezenas de APIs. A interação com o rato não é nada do outro mundo, apenas requer a aplicação saber a posição do rato no ecrã e a posição do icon, não tem nada a ver com as APIs da Dock.
Vítor M., até posso dizer mais. Olhando para o código doutra aplicação do mesmo autor, que tem comportamento semelhante (apesar de não ser um jogo), ele determina a posição do rato no ecrã via funções de acessibilidade do sistema, o que requer que o utilizador autorize o acesso da aplicação a essas funcionalidades.
Vitor, com todo respeito, não é uma opinião. É um fato. Está na documentação. Talvez aches que é uma opinião porque não és programador. Compreensível, porém incorreto.
Pode ser, não acho que esteja, ora mostra na documentação onde está isso?
Documentação:
https://developer.apple.com/documentation/appkit/nsdocktile
Trecho:
“…you use the methods of the class to make the following customizations:
– Badge the tile with a custom string.
– Remove or show the application icon badge.
– Draw the tile content yourself.
If you decide to draw the tile content yourself, you must provide a custom content view to handle the drawing.”
“Draw the tile content yourself” – ou seja, você pode renderizar a imagem que você quiser lá, inclusive, um jogo, por exemplo.
“If you decide to draw the tile content yourself, you must provide a custom content view to handle the drawing.” – Nesse trecho a documentação deixa claro que você tem plenos poderes para renderizar o conteúdo que quiser.
Só para deixar claro. A notícia não é irrelevante, eu diria o contrárrio, é interessante de ver e imaginar que alguém explorou essa possibilidade, embora as limitações de se jogar em um dock.
Acredito que o calor da discussão foi provocado pelo criterioso olhar de quem procurou realmente ver um “exploit”, uma falha ou uso de API’s internas da Apple.
Mais um hack para usar algo para o qual a tecnologia não havia sido pensada.
O iOS está todo roto!
há quem não saiba ler…
Da para jogar MineCraft?
Há quem já tenha posto o Doom… de modo que é uma questão de força de vontade e imaginação!