Login



Pesquisar

Parceria NDrive

Tenha 10% de desconto com esta parceria na compra do seu Mapa NDrive.
Faixa publicitária

Parceria ZAGG

Com o invisibleSHIELD é possível proteger todo o equipamento ou apenas o seu ecrã.
Entrevista à equipa do TAnDI
Artigos - Entrevistas
Sábado, 08 Agosto 2009 11:20
AddThis Social Bookmark Button

Apresentamos a entrevista realizada aos programadores da aplicação TAnDI. Para quem não conhece, a aplicação permite a aquisição e partilha de fotografias e videos em vários sites de redes sociais. Foi desenvolvida em Portugal no AICOS Fraunhofer por um conjunto de elementos de várias áreas de especialidade e coordenados pelo Filipe Abrantes, investigador sénior da equipa.

 

Queremos agradecer a disponibilidade e a excelente entrevista que nos concederam. A entrevista contém dicas muito úteis para quem quer realizar projectos para a plataforma Android ou outras. Apresentamos a entrevista na integra com alguma pequenas correcções e alterações para maior legibilidade.

 

andPT: Antes de mais, queremos agradecer a vossa disponibilidade para esta entrevista. Vamos começar por pedir-vos que se apresentem individualmente. Qual o envolvimento de cada um no AICOS (Assistive Information and Communication Solutions) da Fraunhofer Portugal?

Olá e muito obrigado pelo convite. O meu nome é Filipe Abrantes, sou investigador sénior no centro Fraunhofer AICOS e coordeno a equipa de desenvolvimento do TAnDI. Os principais membros da equipa de desenvolvimento são o Diogo Júnior e o Bernardo Pina (que também participam nesta entrevista) -- o Diogo é aluno do Mestrado Integrado em Informática na FEUP e o Bernardo é aluno do Mestrado Integrado em Redes e Serviços da FCUP e eles têm desenvolvido o projecto aqui no centro emcomplementaridade à sua actividade lectiva.

Temos contado também com a colaboração dos designers Ricardo Melo e Cláudia Peixoto, e mais recentemente da especialista em interfaces pessoa-máquina a Paula Alexandra Silva, bem como do Luís Ferreira na adaptação do TAnDI para o iPhone. O projecto teve ainda a colaboração pontual do Luís Teixeira e do Paulo Pereira, todos eles colaboradores do AICOS.

andPT: A vossa aplicação TAnDI permite a difusão de fotos e videos por vários serviços de partilha online nomeadamente o Flickr, TwitPic, Picasa, Blogger, YouTube e o T-Online. Está pensado expandir o suporte para outros tipos de redes sociais como o FaceBook? Estão previstas novas funcionalidades?

Neste momento a comunidade Facebook já foi adicionada à lista de serviços em que é possível partilhar conteúdo (esta funcionalidade foi incluída na última actualização no dia 5 de Agosto). É uma comunidade com uma API específica que precisou de algum tempo de estudo para ser implementada de uma forma correcta, tendo sempre em mente proporcionar ao utilizador uma boa interacção e melhor experiência de utilização. Podem esperar uma nova actualização do TAnDI durante a próxima semana que incluirá o Hi5.

Os serviços que temos vindo a suportar, são serviços que 1) estão no top 10 dos mais utilizados a nível mundial e 2) disponibilizam uma API REST que permite a integração. Começamos inicialmente por permitir o envio de conteúdo para serviços do Google como o Picasa e o Blogger e mais tarde fomos adicionando outros como o Flickr, o Twitter e o Youtube.

Decidimos suportar também o serviço Mediencenter da T-Online (que não obedece aos dois critérios acima mencionados) de modo a exemplificar como estes serviços de armazenamento, tipicamente oferecidos pelos ISPs, podem ser usados como uma extensão do armazenamento do telemóvel.

Relativamente a novas funcionalidades, pensamos implementar uma galeria para visualização e gestão de fotos avançada. Não queria adiantar muito porque a ideia ainda não está completamente definida, mas ideia será a de incorporar mecanismos que - conseguindo agrupar automaticamente fotos de acordo com um conjunto de características e parâmetros - permitam aos utilizadores gerir de uma forma mais dinâmica e prática grandes galerias de fotos.

andPT: De onde surge a ideia para a aplicação TAnDI e quanto tempo demorou a implementar? Como chega o projecto até vós? Têm tarefas específicas atribuídas?

O projecto começou há aproximadamente 1 ano! Na altura não tinham ainda saído telefones sequer... Usavamos uma webcam de rede para tirar fotos e corria tudo no emulador :-) . O centro Fraunhofer AICOS tinha também acabado de iniciar a sua actividade e este foi um dos projectos escolhidos para nos conhecermos todos melhor dentro da equipa.

A ideia que motivou o projecto foi a de criar uma aplicação que facilitasse a maneira como os utilizadores partilhavam, guardavam e acediam a conteúdos criados no telemóvel. Como já referi, queriamos também demonstrar a conveniência de usar o espaço de armazenamento online -- quer de serviços online (Picasa, Flickr) quer de ISPs (Mediencenter da T-Online) - como extensão do espaço de armazenamento do próprio telemóvel.

andPT: Os projectos em geral e a programação não deve ser excepção, segue métodos e todas as fases do projecto são de alguma forma geridas. Como tem sido feito esse planeamento? Tem havido muita discrepância entre o tempo planeado para as tarefas e o tempo efectivo de programação? Qual o maior problema encontrado no desenvolvimento do TAnDI?

A nossa equipa adoptou, desde o início, métodos ágeis de desenvolvimento de software. O planeamento é baseado em milestones curtas e bem definidas. Deste modo foi-nos permitido fazer “releases internas”  para demonstração da aplicação quer a parceiros externos, quer aos próprios colaboradores e visitantes do centro.  Internamente, usamos a plataforma Redmine para gerir tarefas e milestones e avaliar o progresso do projecto. Podemos dizer que a ferramenta se tem revelado útil e que a equipa está razoavelmente satisfeita com o ela.

Desenvolver para Android envolve também alguma aprendizagem. Apesar de apenas serem precisos alguns conhecimentos de Java e alguma experiência de linguagens orientadas a objectos, programar algumas funcionalidades para Android requer pesquisa e familiarização com a 'framework'. Por isso normalmente o tempo planeado normalmente não é o tempo efectivo de programação para uma determinada tarefa. Mas à medida que se vai conhecendo cada vez mais a 'framework', a diferença entre esses dois tempos torna-se cada vez menor.

O maior problema que encontramos durante o desenvolvimento do TAnDI surgiu logo na primeira fase, quando não ainda não havia dispositivos com o Android e o emulador não permitia, nem permite acualmente, a possibilidade de ligação de  uma webcam USB para efectivamente se comprovarem os resultados e fazer testes de usabilidade da aplicação. Para superarmos este entrave, tivemos de recorrer a uma câmera de rede que emulava a camâra do telefone.

andPT: Foi efectuado um Press Release em Abril de 2009 a anunciar o beta do TAnDI em que é feito o apelo ao teste e ao feedback dos utilizadores. Deve-se envolver sempre os utilizadores nos testes ou realizar os testes apenas internamente? Não se corre o risco de desmotivar os utilizadores caso a aplicação não funcione correctamente?

Esta é uma das principais diferenças do Android, relativamente a outras plataformas. Não existindo qualquer tipo de controlo sobre a publicação de aplicações, elas podem ser disponibilizadas em qualquer fase do seu desenvolvimento. A minha experiência, tanto na publicação do TAnDI, mas também do RockOn (uma aplicação que tenho desenvolvido a título individual) é de que:

1. Os utilizadores de Android, pelo menos 'estes' da primeira vaga, são entusiastas da plataforma e estão muito abertos a participar no teste de novas aplicações. É normal que este espírito se perca um pouco com a massificação da plataforma, mas é algo que deve ser aproveitado pelos criadores de aplicações nesta fase. Ter um contacto tão próximo e numa fase inicial com os utilizadores é algo excelente! Especialmente para criadores independentes, que normalmente não têm os meios para fazer testes com grande número de pessoas nem com diferentes tipos de dispositivos (neste momento existem apenas 3/4 modelos, mas muito rapidamente vão chegar às dezenas).

2. Os utilizadores toleram melhor a falta de funcionalidade do que funcionalidades deficientes. Por isso é melhor política por uma aplicação mais limitada, mas que tudo o que faz fá-lo bem, do que deixar pontas soltas que tipicamente provocam uma reacção bastante mais negativa.

 

Uma outra possibilidade é a de lançar a aplicação primeiro em meios mais restritos antes de disponibilizar no Market. Por o exemplo a AndAppStore, ou o SlideMe, que têm um numero de utilizadores muito mais pequeno, ou os foruns androidcommunity.com ou xda-developers.com onde os utilizadores têm uma disponibilidade bastante grande para testar aplicações experimentais. Isto permite limar algumas arestas antes de abordar o Market, evitando eventuais reacções negativas iniciais. 

andPT: Alguma aplicação nova em vista ou em desenvolvimento? Em caso afirmativo, para quando?

Estamos já a desenvolver uma outra aplicação, mas não posso levantar o véu nesta fase. Existe a possibilidade de ela ser submetida ainda a tempo de participar no ADC2.

andPT: No que toca ao desenvolvimento de aplicações para Android. Porquê para Android?

O principal argumento a favor do Android é a sua abertura, tanto em termos de não impôr restrições às aplicações disponibilizadas, como em relação à plataforma em si (cujo código fonte é aberto). Começamos já a ver algumas iniciativas que tentam usar Android noutros dispositivos como STBs, molduras digitais, netbooks, etc, o que abre caminho para um cenário, dentro de poucos anos, em que o Android está presente num grande número de dispositivos de consumidor final. Isto torna o Android numa plataforma apetecível para a distribuição de novos serviços e aplicações visto que o custo de desenvolvimento é reduzido (a mesma aplicação corre em múltiplos dispositivos).

andPT: Como descrevem o vosso ambiente? Macs ou PCs? Linux ou Windows? Qual o vosso editor e gestor de versões de código?

A nossa equipa desenvolve essencialmente em Eclipse, sob Linux (Ubuntu) principalmente, mas também usamos Mac e Windows. É excelente ter esta liberdade de escolha. O controlo de versões é SVN com o plugin Subclipse para o Eclipse.

andPT: O mercado móvel de software não se restringe apenas à plataforma Android, temos ainda Symbian, Windows Mobile, iPhone e outros. Existem ainda dispositivos com e sem teclado físico e ecrãns com resoluções diferentes. Quando programam têm o cuidado de criar código portável para outras plataformas? Quais as dificuldades?

Em relação a desenvolvimento para várias plataformas, existem algumas frameworks, mas penso que a única alternativa viável é a de fazer aplicações web... no entanto perde-se imenso da integração com o sistema operativo, tal como ao nivel da UI e da velocidade de resposta da mesma. Nós estamos a desenvolver também uma versão do TAnDI para iPhone (chamada TInDI :-)) e estamos a implementá-la nativamente no iPhone tal como fizemos com o TAnDI no Android.

Quanto a resoluções e hardware diferente, nós temos isso em conta durante o desenvolvimento, mas não ainda ao nível que pensamos que devemos ter. Até agora só sairam telemóveis Android com ecrãs com resolução de 480x320, mas até ao fim do ano deverão sair outros modelos com resoluções quer abaixo quer acima da resolução usada até agora. Quando isso acontecer penso que muitas aplicações vão precisar de actualizações...

andPT: O Google resolveu implementar um ambiente de desenvolvimento bastante aberto para o Android, disponibilizando de uma forma livre o kit de desenvolvimento e testes. São também bastante permissivos no que toca as aplicações no Android Market não criando nenhuma restrição. Em que medida acham que isto contribui para o desenvolvimento e expansão da plataforma Android?

Penso que é um ambiente muito mais atractivo, especialmente para programadores independentes. Desenvolver uma aplicação é sempre um esforço significativo e se o criador nem sequer têm a garantia de que a sua aplicação vai conseguir ser lançada para o público ele pode-se sentir inibido de desenvolver o projecto. No Android isto não acontece.

andPT: Paralelamente à forma aberta de desenvolvimento para Android, existe também a filosofia de partilha do código fonte que tem criado muitos outros projectos importantes. Suportam o modelo Open Source de desenvolvimento? Vêm-se a desenvolver software com uma licença do género GPL ou Apache License?

Neste momento não está nos nossos planos publicar o código da aplicação, uma vez que ainda tencionamos adquirir financiamento para o projecto, que até agora tem sido suportado internamente. Mesmo sendo a favor do modelo de desenvolvimento 'open source' temos sempre de procurar financiamento na indústria para os nossos projectos, o que neste caso, e nesta fase, é incompatível com a publicação do código.

andPT: Um conjunto de sites e blogs sobre Android, do qual o androidPT faz parte, reuniu-se de forma a criar os Android Network Awards que visam premiar as melhores aplicações num conjunto de categorias. Sendo este um movimento espontâneo como vêm a capacidade da comunidade Android de crescer e se autosustentar sem o apoio directo do Google? E quanto à capacidade da comunidade portuguesa de programadores Android crescer?

O apoio da comunidade vai desempenhar um papel crucial no sucesso do Android. Vão ser as aplicações que vão tornar o Android uma plataforma apetecível ou não para o utilizador. O Android precisa de bons criadores de aplicações! É claro que quanto maior for a base de utilizadores de Android, mais criadores vão desenvolver para Android, mas neste aspecto iniciativas como o androidPT, os ANA, e outras vão sem dúvida ajudar também a atrair talento.

Neste momento, não acredito que o Android se aguentasse sem o apoio directo da Google. Talvez daqui a uns 5 anos o Android tenha uma comunidade e momentum tais que a Google possa passar o projecto completamente para as mãos da comunidade. Neste momento não me aprece que isso seja realista. Esta é uma altura em que a competição nos SO's móveis está ao rubro e é preciso ter a Google (e a OHA) a liderar o projecto.

andPT: Têm alguma coisa que queiram acrescentar ou dizer aos frequentadores do androidPT e utilizadores de terminais Android? Uma palavra de incentivo a quem quer começar a programar para Android?

Na minha opinião, o Android é das plataformas de desenvolvimento móvel mais acessíveis e poderosas, por isso vale bem a pena experimentar.

Nós temos vindo a promover um Workshop interno no AICOS sobre desenvolvimento tanto para Android, como para iPhone. Se houver interesse suficiente por parte da comunidade portuguesa podemos equacionar expandir o Workshop ao público em geral. Se quiserem expressar o vosso interesse por favor contactem-nos (andi@fraunhofer.pt).

andPT: Resta-nos mais uma vez agradecer a voss disponibilidade. Esperamo ver mais aplicações desenvolvidas pela vossa equipa ou individualmente. A porta do androidPT está aberta para o vosso contributo e aplicações.

Mais uma vez muito obrigado pelo convite e até uma próxima oportunidade. Da nossa parte vamos continuar a seguir a evolução do androidPT com grande interesse e contribuir sempre que possível.

 

Últimas no Fórum

Publicidade