2010/03/19

Multitasking no iPhone

Mais um exemplo que demonstra como o hardware do iPhone é perfeitamente capaz de suportar o multitasking de várias Apps de terceiros (já que no caso das Apps "oficiais" da Apple, essas já funcionam continuamente em segundo plano: como é o caso do Mail, Safari, iPod, Phone)

Num iPhone jailbreak é possível experimentar já as "maravilhas" do multitasking utilizando o ProSwitcher e o Backgrounder, como demonstrado no seguinte vídeo:



No entanto, embora tudo funcione "sem problemas", as preocupações permanecem:

1. O Consumo de Memória


No iPhone 3G, estava-se constantemente "com pouca memória". Dos 256MB de memória RAM do iPhone, normalmente sobravam apenas 30 ou 40MB livres após um reboot. Depois de utilizar várias Apps, não era incomum ficar com apenas 5MB livres - factor que levava muitas Apps mais "intensivas" (como jogos) a recomendar que se fizesse um reboot para libertar memória antes de serem lançados.
O iPhone OS já foi melhorado desde então, mas o factor permanece que o iPhone 3G (e anteriores) estão bastante limitados neste campo.

No caso do 3GS, que tem o dobro da memória RAM, as coisas são bem diferentes, existindo muito mais  "espaço" e permitindo que o multitasking se torne uma possibilidade real sem risco de constantes "erros de falta de memória" que obrigariam a fechar Apps, ou a utilizar a memória Flash como "paging file" - que teria consequências drásticas no desempenho.


2. A Utilização do CPU

Há que dizê-lo: a autonomia do iPhone (e dos modernos Smartphones em geral) não é nada de exepcional. Se isso não é problema para quem passa o dia à distância de uma porta USB num computador ou no carro, que lhe permita ir recarregando a bateria; basta afastarem-se um pouco mais para descobrirem que um iPhone não pode ser usado "à vontade" durante sequer um dia completo sem que o seu indicador de bateria chegue "ao vermelho".

Ao permitir-se a execução de ainda mais Apps em segundo plano (para além das tais "oficiais" que já correm constantemente), seria inevitável que essa autonomia fosse ainda mais afectada.

Claro que, caso as coisas fossem bem feitas, esse problema poderia ser minimizado: há Apps para as quais bastaria uma pequeníssima porção do tempo de processamento - e no fim, isso seria algo pelo qual cada utilizador seria responsável. Isso já acontece: um utilizador que fique a jogar um jogo 3D intensivo rapidamente verá a barra da bateria diminuir a olhos vistos; seria o mesmo caso para quem pretendesse ter Apps "gastadoras" a correr em segundo plano.


Conclusão

A questão é que, tirando casos muito específicos, a possibilidade de saltitar entre Apps é -no fundo- aquilo que as pessoas precisam na maior parte dos casos. A maioria das apps do iPhone é já suficientemente inteligente para saber gerir essas "pausas-resumos" (quando há chamadas, ou notificações) recomeçando do ponto em que estavam. Afinal, na maior parte dos casos, não temos sequer interesse que uma App continue a ser executada se não estivermos a olhar para ela - o que faz com que seja irrelevante se está a correr ou se está "suspendida."
O mais importante passa assim a ser o tempo de resposta que demoram até serem reactivadas - algo que deveria ser o factor essencial, mas que algumas Apps (felizmente não muitas!) insistem em assassinar, com vídeos ou animações desnecessárias que atrasam o seu carregamento.

Um conceito que a até Microsoft quer utilizar no "multitasking" do seu novo Windows Phone 7 Series.


Sim, o multitasking faz falta, não o nego... mas tirando esses casos de "streamings", ou de actualizações periódicas da vossa localização, a possibilidade de regressar a qualquer app de forma imperceptível é substituto suficiente para a maioria das necessidades de utilização diária.

10 comentários:

  1. Concordo com o que dizes sobre o multitasking e a actual implementação de varias empresas do mesmo conceito. A ideia do "paused" é algo a que se deva olhar com alguma atenção no entanto se lhe juntarmos um sistema de Push-notifications (bem pensado e implementado) pode resolver os problemas de Multitasking, por exemplo e porque não a aplicacao "pausada" que permite actualizar a nossa posição GPS para um serviço qualquer não ter um timer interno, que não seria pausado, que a 10 minutos envia um push (mas para o servidor) com a localização actual.

    O MT(multitasking) não é obrigatorio em smartphones a meu ver, no entanto também acho que nenhuma empresa conseguiu implementar um MT em condições, que esteja no ponto certo ao relacionar velocidade do tlm, bateria, e funcionalidades. incluindo nokia/apple/microsoft....

    ResponderEliminar
  2. Alguém devia de patentear o multitasking...just sayin'.

    ResponderEliminar
  3. o conceito da MSFT é o mm ja existente no android.
    as apps de foreground ficam suspensas qd passam para background, os serviços (apps q correm sem user) nunca param, e qd uma app está suspensa, o propio OS trata de a remover de memoria qd n e' usada, tal como o garbage colector faz no JAVA

    axo castiço os users de iphone ter q se preocupar com memoria, e ate ter algo na barra a indicar qq mem tem livre.
    em android n existe nada disso (so com apps de terceiros se ve a mem livre) e nem seker é recomendado terminar à força as apps q tao a correr (a n ser q sejam mal comportadas).
    esta sim deve ser das maiores barreiras q vejos os novos donos de android a ter q ultrapassar: NAO É PRECISO MATAR APPS. :D

    ResponderEliminar
  4. @BUGabundo

    O conceito não é nada de novo, e não foi o Android que o inventou; já o windows mobile fazia coisas semelhantes há "décadas".

    Quanto ao iPhone, não há nenhuma indicação de memória "na barra", nem conheço nenhum utilizador que se preocupe sequer com a memória livre. As coisas funcionam e... pronto.
    Não me lembro sequer da última vez que tenha sido obrigado a fazer um reboot por causa de comportamentos estranhos/falta de memória.
    (As situações que relatei eram com versões já "antigas" do iPhone OS pré 3GS.)

    ResponderEliminar
  5. Eu continuo sem perceber como as pessoas dão tanta importancia e se faz tantos comentarios sobre o multitasking, eu igualo isto a começarmos todos a discutir que uma marca de televisão lançou um tb sem possiblidade de alterar o canal. O multitasking na nokia tem 10 anos assim como o copy paste por isso quem achar que faz falta teres duas páginas de internet a carregar ao mesmo tempo, entre outras coisas ha aparelhos que o permitem.

    ResponderEliminar
  6. @metRo_

    A analogia das TVs que usaste aplica-se perfeitamente.
    A questão é que o actual "multitasking" não se assemelha a proibir a mudança de canal, mas sim à impossibilidade de ver dois canais ao mesmo tempo!
    Apesar de poder interessar em certos casos específicos (de todas as TVs que tive com "picture-in-picture" ou "side-by-side", praticamente nunca usei essas funcionalidades) não me parece que para a maioria das pessoas esse seja sequer um factor decisivo na altura da compra de um novo televisor.


    E para referência, o Safari no iPhone é um exemplo perfeito de "multi-tasking", permitindo navegar entre várias paginas simultaneamente - e é usado inclusivamente como inspiração para os métodos de multitasking "fora" do browser. :)

    ResponderEliminar
  7. Dos_Passos19/3/10 21:50

    Uso o ProSwitcher (que instala o Backgrounder, porque funciona como interface gráfica deste) há bastante tempo.
    Está na barra dos quatro símbolos fixos. No Backgrounder ponham Badge em on que acrescenta um símbolo às app em backgroud, porque às vezes não se sabe quais são.
    Uso mais nos casos em que abro uma dada app e tenho informação no écrã que preciso de consultar, alternadamente, depois de ter aberto outra (ou para fazer copy-paste entre as duas app). Com o ProSwitcher é muito fácil fazer isso e passar de uma app para outra, tendo várias abertas.
    Nem percebo por que é que a Apple não disponibiliza essa funcionalidade, porque o iPhone aguenta perfeitamente.
    É mais uma aplicação do Cydia que não dispenso. Deixei de usar, praticamente, app crakadas, mas algumas do Cydia não dispenso. Pensar que a Apple pode acabar com o jailbreak põe-me doente (atenção que quem se mete nisso tem que ser capaz de resolver o problema de algumas vulnerabilidades que surgem com o jailbreak).

    Já agora a última que uso do Cydia - Categories - para arrumar os símbolos das app em pastas, como o Carlos Martins vem reclamando. Também não percebo por que não é uma função nativa.

    ResponderEliminar
  8. @Carlos Martins
    A analogia que eu queria passar era mais a de se perder tempo com coisas que estão inventadas, é que parece que o multi-tasking é algo novo que os iPhone trouxeram, se reparas começas com: "Mais um exemplo que demonstra como o hardware do iPhone é perfeitamente capaz de suportar o multitasking" e isto na minha opinião é senso comum, pelo menos devia ser, se não tem multi-tasking é porque não quer.
    O caso das páginas estou à espera do meu irmão pois ultimamente ando com o iPod Touch dele (comprou iPhone) e não consigo fazer load de duas páginas ao mesmo tempo, se troco de uma para a outra, pára uma e continua a outra a carregar, e estou à espera dele para actualizar a iPod para a ultima versão para saber se isto já é possivel.
    Até no meu Nokia E51 consigo ter várias páginas a carregar ao mesmo tempo :S

    ResponderEliminar
  9. @metRo_

    Fiz agora mesmo um teste simples:
    Abri uma página no Safari no iPhone, e coloquei a abrir o meu blog; imediatamente abri nova página e abri outro site; e saltei para "fora" como se fosse abrir outra página (ficando as duas no ecra de seleccão da página.)
    O indicador de acesso à net na barra superior continuou activo - a indicar que o loading prosseguia - e em poucos segundos ambas as páginas foram carregadas por completo, actualizando a sua imagem.
    Portanto... carregou-as simultaneamente, e o mesmo aconte se por acaso "maximizar" qualquer uma delas - ficando a outra a carregar (o indicador mostra actividade de rede, e quando pára, se mudar para a outra página ela estará carregada completamente.)

    ResponderEliminar
  10. Também tinha essa ideia, mas isso veio com a ultima versão e ainda não tenho essa versão no meu iPod.

    ResponderEliminar