Tecnologia marada

Uma coisa que é fixe no «mundo» Apple — apenas fixe, não necessariamente «útil» — é uma tecnologia que a Apple chama «Handoff». Isto serve para se poder começar a fazer uma tarefa num dispositivo Apple e continuar noutro, precisamente no ponto em que se estava.

Dir-se-á que não se trata de «nada de novo»; chama-se a isto «virtualização aplicacional» e é uma área bem estudada há muitas décadas. Bem, sim e não. Para quem, como eu, está habituado a mundos virtuais (como o Second Life), este tipo de tecnologia está na raíz da problemática: quando um personagem num ambiente virtual está a deslocar-se ao longo de um percurso e tem de mudar de servidor — porque chegou a outra área, controlada por outro servidor; ou porque a carga no sistema aumentou de tal forma que é preciso dividir os jogadores por vários servidores — é preciso transferir uma aplicação que esteja a correr num servidor para outro, de forma completamente transparente, sem que o utilizador se aperceba. Imagine-se um veículo, por exemplo, que tem uma série de programação associada. Todas as aplicações que simulam o veículo têm de «passar» de um servidor para o outro, de preferência sem que o utilizador note alguma coisa (o que significa tentar fazer com que este procedimento leve menos de 200 ms!).

Isto já foi resolvido para o Second Life em 2003, e, mesmo na altura, já não era «novidade». Eu brincava com essas coisas durante os meus tempos de trabalho de fim de curso, em 1991/2. E mesmo nessa altura não era «novidade». Hoje em dia, claro, temos cloud systems que fazem isto dinamicamente. No entanto, seja em 2015, seja em 2003, seja mesmo antes disso, não se trata de algo de trivial. Pelo contrário, é mesmo muito difícil de fazer — especialmente quando se trata de passar aplicações que estão a correr num tipo de hardware e passar para outro tipo diferente. E manter a aplicação a correr sem falhas. Não é pêra doce. Os gajos que fazem este tipo de coisas costumam ser doutorados em sistemas distribuídos 🙂

Seja como for, a Apple fá-lo. E isto serve para quê? Bem, talvez a aplicação com mais impacto seja uma chamada de voz. Toca no telemóvel mas atendemos a chamada no tablet ou mesmo no desktop, conforme nos der mais jeito. Isto para mim é útil, porque mesmo em casa, eu não ando com todos os dispositivos às costas. Deixo o desktop junto ao telefone fixo. O telemóvel pode estar em qualquer ponto da casa. E o tablet serve para eu ler livros na casa de banho 🙂 Escusado será dizer que as pessoas ligam-me sempre quando estou a dormir, na casa de banho, ou a conduzir 🙂 Pelo menos na casa de banho, tem a vantagem de eu poder atender as chamadas (sejam elas de telemóvel, sejam elas do telefone fixo, que redirecciono via VoIP e posso atender em qualquer dispostivo que seja um «computador») onde me der mais jeito — sem andar à procura da porra do telemóvel ou do telefone fixo.

Dir-me-ão que isto não propriamente útil, que as pessoas se deviam habituar mas é a trazer sempre os telefones consigo no bolso, mesmo quando estão na casa de banho ou a dormir 🙂 Pois é, é verdade; devia fazer isso; mas acabo por me esquecer.

Também dir-me-ão que isto não é nada de especial. O Android, ou melhor, o AirDroid, é aparentemente uma aplicação que permite fazer o mesmo, pelo que Apple nem sequer está a fazer nada de original. E não são os únicos. Aparentemente é uma área cujo interesse está a crescer exponencialmente, e o que não faltam é empresas a tentar fazer o mesmo — incluindo a própria Google. Mas, claro, há sempre uma diferença. A principal é que esta tecnologia, como disse, é tudo menos trivial. Não é impossível de todo colocá-la a funcionar entre dispositivos com sistemas operativos e conceitos completamente diferentes, mas não é fácil. As soluções que existem partem do pressuposto que as aplicações são desenvolvidas explicitamente para tirarem proveito desta capacidade de poder correr em qualquer dispositivo; quando há dezenas de tecnologias concorrentes, cada fabricante de apps vai ter de optar para que plataforma irá desenvolver. Não poderá suportá-las todas (devido aos custos de reprogramar tudo para cada caso). É plausível que escolham, por exemplo, a solução da Google — faz sentido, não é? No entanto, a solução da Google só vai funcionar em Android e Chrome OS — e sejamos sinceros, quantas pessoas é que usam Chrome OS nos seus laptops? (consta que são um milhão)

O ideal, claro, é apostar numa solução mista Windows/Android, que é a combinação mais usada em todo o mundo. É possível que tenhamos um Windows Phone e que a Microsoft lance também este tipo de funcionalidade para uma solução Windows/Windows. O problema está que a esmagadora maioria das pessoas tem equipamentos móveis Android. Pôr aplicações a correr entre um desktop/laptop Windows e um telemóvel/tablet Android não é trivial — mas não necessariamente por «limitação» de qualquer uma das plataformas. É mesmo porque grande parte do código do Windows é segredo de negócio (muito mais seguramente protegido que as patentes, em que pelo menos se sabe como é que as coisas funcionam), e a Microsoft não vai dar, de mão beijada, essa tecnologia à Google.

E depois, é importante também ter em conta que a Apple de hoje não é a Apple de antigamente: em que as coisas «simplesmente funcionavam». Tentei colocar o Handoff a funcionar nos meus dispositivos Apple, e a início, nada acontecia. Praticamente já tinha desistido de conseguir pôr isto a funcionar (as explicações online pouco mais do que se resumem a activar/desactivar, por sequência, a funcionalidade em todos os dispositivos; se não funcionar à primeira, que se faça reboot ao equipamento e tente-se de novo — uma solução a la Microsoft). Um dia, no entanto, acordei de manhã e reparei que todos os dispositivos estavam sincronizados por si só. Sem eu fazer nada. Não é bom sinal. Não sei quantas horas levaram a sincronizar. Nem sei se fiz alguma coisa para isso. Pior que isso, se des-sincronizarem, não sei como os sincronizar de novo. Quer isto dizer que não posso estar a contar que possa sempre atender as chamadas telefónicas em todos os dispositivos. Vão haver dias em que isto funciona, e noutros não funcionará, e nada que eu faça irá repôr a situação. Por isso não é lá muito fiável.

Também é verdade que os milhões de aplicações no iTunes não estão ainda preparadas para Handoff. Por exemplo, o meu cliente VoIP de certeza que não funciona com Handoff. Mas como o tenho instalado em vários dispositivos diferentes, todos tocam ao mesmo tempo quando é redireccionada uma chamada do telefone fixo. Mas é batota: não há aqui passagem de aplicações virtualizadas de um dispositivo para outro — há apenas aplicações independentes que recebem a comunicação telefónica via VoIP ao mesmo tempo. É diferente, mas para o utilizador final é a mesma coisa: poder atender chamadas em dois sítios ao mesmo tempo. O mesmo se passa com o email, o Facebook, o Twitter, etc. São sempre aplicações independentes que recebem os mesmos dados da mesma fonte remota, e que se actualizam independentemente, indo buscar os dados à fonte. «Parece» que há virtualização de aplicações (pois a mesma aplicação em vários dispositivos apresenta precisamente o mesmo estado), mas não há. Muitas das soluções de virtualização aplicacional em Android funcionam assim: usam um servidor remoto para sincronizar os dados.

O Handoff da Apple (parte do projecto Continuity) é um pouco mais sofisticado que isso. Não é preciso «servidor central» para funcionar (excepto que todos os dispositivos têm de estar autenticados na iCloud com um Apple ID; isto é uma questão de segurança, para impedir que alguém possa simplesmente entrar na mesma rede Wi-Fi ou interceptar as comunicações Bluetooth — há, pois, um passo de autenticação adicional). A virtualização aplicacional é peer-to-peer, ou pelo menos é o que é suposto ser (quando funciona!). E do ponto de vista dos programadores de apps, basta acrescentarem esta funcionalidade extra às suas aplicações. Mas, como é evidente, se não o fizerem, as aplicações não irão funcionar em «modo» Continuity. E como explica o artigo da Ars Technica, mesmo aplicações «semelhantes», de empresas diferentes, não poderão tirar proveito desta tecnologia para sincronizar o estado aplicacional entre si. Cada empresa terá a sua própria forma de o fazer.

Mas é melhor que nada. Como sempre, a vantagem para os programadores é terem uma fonte única para a tecnologia: a própria Apple. Não precisam de andar a escolher entre dezenas, ou mesmo centenas, de plataformas diferentes (como é o caso do Android) e escolher a que for mais popular — ou inventarem a roda de raíz e criarem a sua própria tecnologia. Escolhem a da Apple e pronto, funciona em todas as centenas de milhões de dispositivos Apple.

Bem, funciona quase sempre. Ou pelo menos às vezes.

Pessoalmente, claro, acho a tecnologia engenhosa por si só. É de facto muito útil poder fazer e receber chamadas telefónicas no dispositivo que estou a usar de momento — tal como é útil começar a escrever qualquer coisa num dispositivo e continuar a fazê-lo noutro. Quantas vezes tive que começar a escrever um mail para interromper a meio porque precisava de ir à casa de banho; agora levo o iPad para a casa de banho e continuo a acabar de escrever o mail aí. É útil. Mas não posso dizer que seja uma vantagem que «só exista na Apple». Se usar o Gmail, seja em que browser for, a opção de auto-save para draft no fundo faz a mesma coisa, sem precisar de grande tecnologia sofisticada, nem de desenvolvimento aplicacional «especial». E, segundo consta, muitas Web Apps no Chrome podem transferir o estado da aplicação para muitas apps em Android, o que no fundo vai dar quase ao mesmo, e evita a problemática das diferenças entre sistemas operativos — desde que se use Chrome com consistência em todos os dispositivos, isto vai funcionar em qualquer um deles. Por isso, talvez esta «novidade tecnológica» da Apple passe despercebida. A verdade é que foi uma coisa que me chamou a atenção quando a Apple começou a fazer beta-testing do Yosemite, e que foi referida aqui e ali nalguns sites mais pro-Apple (ou pelo menos que não sejam muito anti-Apple), mas não foi anunciado como a maior invenção depois do pão fatiado…

Anúncios

Deixe uma Resposta

Preencha os seus detalhes abaixo ou clique num ícone para iniciar sessão:

Logótipo da WordPress.com

Está a comentar usando a sua conta WordPress.com Terminar Sessão / Alterar )

Imagem do Twitter

Está a comentar usando a sua conta Twitter Terminar Sessão / Alterar )

Facebook photo

Está a comentar usando a sua conta Facebook Terminar Sessão / Alterar )

Google+ photo

Está a comentar usando a sua conta Google+ Terminar Sessão / Alterar )

Connecting to %s