iMacs Core i7 sofrem problemas de transporte

Taí uma notícia nada legal pruma manhã de terça-feira — ou melhor, não é legal dia nenhum. Diversos usuários têm reclamado e relatado nos fóruns de suporte da Apple que seus iMacs Core i7 foram …

Continue lendo »
Home » Gadgets, Software, Tecnologia

Aos desenvolvedores de aplicativos para iPhone OS: aprendendo OpenGL ES para design de jogos e aplicativos ricos em mídia

Com base em boas experiências que tive nos últimos meses, uma das coisas que notei em uma parte dos aplicativos brasileiros foi uma certa deficiência na experiência proporcionada aos usuários, já que muitas vezes eles não oferecem um bom design ou não sabem tirar vantagem de pequenos recursos que o próprio iPhone OS oferece para torná-los um pouco mais agradáveis de se usar. Não estou generalizando: acompanhei de perto a concepção de vários projetos com design invejável — alguns que a maioria de vocês nem sequer viu ainda —, mas, em alguns casos, a experiência de usuário fica bem pobre, algo que influencia (e muito) no momento da escolha do cliente na App Store, principalmente quando se trata de um jogo.

OpenGL ES

Verdade seja dita: dos desktops com monitores de 30 polegadas aos smartphones, é difícil produzir interfaces de usuário originais, bem animadas, com nível gráfico de boa qualidade e, ao mesmo tempo, intuitivas. Quando um desenvolvedor alcança isso, o seu aplicativo se torna realmente fácil de usar, mas para chegar até esse nível leva um bom tempo, envolvendo tecnologias que são bem difíceis de trabalhar devido à enorme quantidade de aspectos técnicos envolvidos. O Core Animation no iPhone OS veio para ajudar a resolver essa complicação; todavia, para casos mais complexos, o que realmente tornará sua solução ainda mais flexível aos padrões e fácil de usar nos gadgets da Apple é o OpenGL ES.

Padrão aberto para gráficos 3D em dispositivos móveis, OpenGL ES é uma excelente interface de programação montada na arquitetura do iPhone OS, mas ainda assim requer um certo tempo de aprendizado por ser tão avançada quanto sua irmã no desktop. Antes de você gerar código funcional para seu aplicativo, desenvolver uma interface com um bom design requer um bom gerenciamento dos recursos do aparelho, além de muitos testes para manter a sua boa performance e solucionar bugs e vazamentos de memória — que são ainda piores quando o hardware não é lá essas coisas.

Por causa disso, muitas ideias nem chegam a sair do papel por precisarem de uma interface mais bem trabalhada, especialmente jogos. Nesses casos, é importante que o usuário sinta a experiência de uso do seu aplicativo desde a inicialização a partir da tela inicial do seu iPhone/iPod touch, dando uma visão agradável do que ele está para usar/jogar antes mesmo de o menu principal aparecer. Geralmente, quando você começa a pensar nisso é fácil se perder, o que faz o projeto ser descontinuado antes mesmo de começar a ser executado.

Como OpenGL ES não é algo que se aprende em qualquer curso de informática — ainda mais no Brasil —, é difícil encontrar quem consiga trabalhar nessa área e produzir algo capaz de ir além dos controles padrão do iPhone OS e algumas imagens de fundo. Visando a conhecer um pouco disso, venho acompanhando desde abril uma série de artigos muito interessante sobre OpenGL ES do zero, que ensina como simplificar tarefas complexas trabalhando em 3D no iPhone OS, além de vários fundamentos essenciais para quem está aprendendo a desenvolver aplicativos na plataforma móvel da Apple.

Os textos foram escritos por Jeff Lamarche, co-autor do livro Beginning iPhone Development, que possui esse blog dedicado a falar de desenvolvimento para iPhone OS há um bom tempo. Obviamente, não posso reproduzir o que ele escreveu, mas posso indicar os artigos da série para você aprender um pouco sobre a tecnologia desde o início e buscar mais recursos para se tornar um profissional por conta nessa área. Abaixo está a lista do conteúdo escrito por Lamarche:

  1. Conceitos básicos, onde você aprenderá o mais simples sobre os DataTypes suportados, pontos e vértices;
  2. Dicas sobre geração de elementos, para você compreender quais elementos podem ser renderizados por um iPhone/iPod touch;
  3. Uso de Perspectiva, o que envolve aspectos de desenho técnico e geometria para usar a API de forma mais eficiente;
  4. Uso de iluminação em cenas, o que deve ser feito com moderação para não comprometer o desempenho do aplicativo
  5. Uso de materiais, para você fazer de um objeto 2D qualquer uma composição em 3D com iluminação e perspectiva.

Isso não é tudo o necessário para você criar uma experiência de usuário bombástica usando OpenGL ES; porém, saiba que isso pode te dar um bom começo para criar algo incrível usando essa tecnologia. A documentação do site de desenvolvedores da Apple e a página do Khronos Group são outros dois ótimos lugares onde você pode buscar mais recursos de aprendizado gratuitamente. É interessante que os envolvidos em desenvolvimento de aplicativos busquem um pouco mais sobre OpenGL ES nesses locais, quando tiverem tempo.

Boa sorte! ;-)

« Pasme: 20 horas de vídeos são enviadas a cada minuto para o YouTube! Halex bodejando: iPod OS (?) e músicas »

Artigos relacionados

Quem escreve?

Silvio Sousa Cabral
Silvio Sousa Cabral
Paulista de 17 anos, possui formação técnica em Informática e Web design, além de ser estudante da ETE, em São Bernardo do Campo. Já trabalhou com animações para a web em uma empresa de Tecnologia da Informação e é voluntário aos finais de semana. Possui paixão por Macs e iPods desde 2006, sendo também amante de música, cinema, design e tudo onde a plataforma Mac mostra o melhor de si. É dono de um MacBook branco e sonha em participar de uma Conferência de Desenvolvedores da Apple.

Produtos do seu interesse

This website uses IntenseDebate comments, but they are not currently loaded because either your browser doesn't support JavaScript, or they didn't load fast enough.

2 Comentários »

  • Edu disse:

    Realmente os apps brasileiros estão devendo em muito em visual, e no uso de recursos do aparelho (não se vê jogos 3d, tampouco jogos multiplayer local ou online, por exemplo). A excessão era o Cine Mobits, que até hoje não foi lançado. Em parte isso é devido a falta de $, mas isto não impediu fenômenos como Trism e outros jogos e apps realmente bons feitos por um desenvolvedor individual ou duplas com designers. Não estou esperando algo do nível do Twitterrific ou do Weightbot, mas um pouco mais de capricho nessa área seria muito bom.

  • Gustavo Chaurais disse:

    Silvio, gostei muito, mas concordo apenas em parte com teu post. Também sou desenvolvedor iPhone há algum tempo para uma empresa americana. Pessoalmente, já vi user experiences magníficas sem nada de OpenGL ES. Na verdade, essa tecnologia não está relacionada diretamente à experiência com o usuário. Está relacionada, sim, com a maneira que você apresentará seu programa para o público.
    O UIKit tem muita coisa bacana e dá pra fazer muita coisa com ele, sem sequer tocar no OpenGL ES. Já implementei, por exemplo, um CoverFlow reutilizável para nossos apps do zero utilizando apenas UIKit e um pouco de Quartz2D. Ficou identico ao da Apple.
    Já na parte de jogos, não há o que comentar, certo?
    Mas, acho legal discutir essas coisas. Você vai ao WWDC? Talvez possamos nos encontrar por lá e trocar umas figuras.

Deixe um comentário!

Envie o seu comentário abaixo, ou um trackback do seu próprio site. Você também pode assinar estes comentários via RSS.

Seja legal. Jogue limpo. Foque-se no tópico. Sem spam.

Você pode usar estas tags:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Este blog é integrado ao Gravatar. Crie um você também!

Aviso: todo e qualquer texto publicado na internet através deste sistema não reflete, necessariamente, a opinião deste weblog ou de seu(s) autor(es). Os comentários publicados através deste sistema são de exclusiva e integral responsabilidade e autoria dos leitores que dele fizerem uso. O autor deste weblog reserva-se, desde já, o direito de excluir comentários e textos que julgar ofensivos, difamatórios, caluniosos, preconceituosos ou de alguma forma prejudiciais a terceiros. Textos de caráter promocional ou inseridos no sistema sem a devida identificação de seu autor (nome completo e endereço válido de email) também poderão ser excluídos.