Essa semana nosso blog falará sobre as IDEs (Integrated Development Enviroment) para o desenvolvimento para smartphones. Vamos comparar o Visual Studio 2010 (VS2010) da Microsoft tanto para o desenvolvimento de aplicações Windows Mobile (WMobile) quanto de Windows Phone (WPhone), o Eclipse para desenvolvimento Android e XCode para IPhone.
Vale salientar que o objetivo não é comparar as IDEs de forma genérica, mas sim compará-las no desenvolvimento de APLICAÇÕES MÓVEIS.
Para facilitar o comparativo, dividimos a avaliação das IDEs em 7 tópicos:
1-Construtor de interface: Facilidade de construir as interfaces e associar código a ela;
2-Controle de versão: Opções de controle de versão e a eficiência deles integrados na ferramenta;
3-Editor de código: Avalia a facilidade de navegação entre os objetos e componentes, teclas de atalho, autocompletar, etc;
4-Compilador: Gerenciamento das referências e mensagens de compilação;
5-Depurador: Eficiência na depuração;
6-Emuladores: Avaliação dos emuladores/simuladores de cada IDE;
7-Organização dos projetos: Descreve como a IDE trabalha com diversos projetos.
Construtor de interface
O WMobile é o único que mantém o desenvolvimento da interface no estilo “form like”/drag&drop introduzido no início da década de 90 pelo MS Visual Basic. No WPhone é possível arrastar os componentes porém o ajuste é manual – “web like”.
Nesse tópico de construção de interface, o Android é parecido com WPhone com a diferença que a associação de código a eventos é manual e o preview do eclipse geralmente não reflete a realidade.
Já no XCode a construção da interface gráfica é fácil e otimizada. No entanto, a ferramenta da Apple peca na complexidade de associar os objetos visuais ao código.
Controle de versão
A Microsoft oferece uma excelente ferramenta de controle de versão para o VS2010 que é o TFS (Team Foundation Server). Porém, como quase tudo no mundo MS, é uma ferramenta paga. Na Mobiltec não utilizamos o VS com plugins de SVN, mas segundo relatos, não me pareceu que a convivência entre as duas ferramentas seja muito harmônica.
O destaque NEGATIVO nessa seção é sem dúvida o XCode! Simplesmente não funciona o SVN client nativo da ferramenta. Perde a conexão; updates de fontes não funcionam – e pior – não geram nenhum alerta de erro, causando perda de código.
Editor de código
A melhor IDE para edição de código é o Eclipse. Possui teclas de atalho mais fáceis e intuitivas que o VS. Sugestão de autocomplete de variáveis contextualizada por tipo, refactoring e outras facilidades.
O XCode se destaca pela análise sintática e semântica em tempo de digitação e pelo autocomplete disponível para código javascript.
Compilador
No Eclipse o gerenciamento das referências pode ser feito da forma clássica do java ou pelo Maven. Nos dois casos o gerenciamento é mais complexo e “chato” quando comparado ao VS2010. Já o XCode está ainda mais aquém nesse ponto. É necessário colocar o caminho dos headers, da mesma forma como é feito há 20 anos nos códigos C. O compilador do XCode só gera warnings e permite executar a aplicação mesmo com erros de nome de métodos, por exemplo. Essa característica é controversa entre nossos desenvolvedores, uns acham uma vantagem outros não.
Depurador
O Eclipse tem uma distinção entre rodar e depurar. Esse detalhe muitas vezes atrapalha. O desenvolvedor está testando a aplicação e decide colocar um breakpoint e nesse momento repara que executou no modo “rodar” e não “depurar” – stop and run. Também tem algumas variáveis que não são resolvidas pelo watch.
O depurador do XCode só é menos vergonhoso que o controle de versão. Utilza o GDB que é ruim. Freqüentemente ocorre erro no depurador sem mostrar nenhuma exceção. Watch tem problemas e existem breakpoints fantasmas ou highlander, aquele break que excluímos, mas o depurador insiste em continuar parando ali.
Emuladores
O emulador do WPhone, a partir do SDK 7.1 ficou bastante pesado, sendo que alguns componentes não rodam em máquinas sem uma boa interface gráfica. O emulador do Android é lento a partir das versões 3.0 e 4.0 do Android. O XCode tem um simulador, que é diferente do emulador, pois gera código nativo para hardware que será testado. O problema dessa abordagem é que o teste no simulador fica pouco fiel a realidade principalmente com relação ao desempenho. Já ocorreu na Mobiltec, do desenvolvedor só descobrir que uma determinada funcionalidade estava lenta quando foi testar no dispositivo, no simulador estava ok. Para conseguir rodar a aplicação no dispositivo, além de ter a disponibilidade do dispositivo, é necessário pagar a licença anual de desenvolvedor da Apple de US$ 99,00.
Organização de projetos
O XCode se destaca por conseguir alterar o contexto entre projetos nas mesmas janelas já abertas. Não necessita abrir uma nova instância do XCode. Já o Eclipse vai ficando pesado à medida que vai adicionando novos projetos ao Workspace. O VS trabalha com conceito de solução e projeto, é possível ter mais de uma solução para o mesmo projeto.
Abaixo segue uma tabela sumarizada com as características de cada ferramenta:
| Visual Studio 2010 for winmobile | Visual Studio 2010 for winphone | Java Eclipse for Android | Xcode for iphone | |
| Construtor de Interface | “Form like”, drag & drop | manual (“web like”) | manual (web like); preview não é preciso; associação de eventos manual; | Construção da interface fácil e otimizada; associação de objetos visuais ao código é manual e complexa |
| Controle de versão | TFS 2010 | TFS 2010 | SVN/CVS/gitHub | SVN (builtin) – sincronização de fontes não funciona; updates não atualiza e não gera erro |
| Editor | não tem a opção de intelisense para javascript nativo; algumas teclas de atalho são complexas: atalho para comentário (ctrl +K+C) | não tem a opção de intelisense para javascript nativo;algumas teclas de atalho são complexas: atalho para comentário (ctrl +K+C) | tecla atalho para abrir um recurso; Import automático de pacotes; Atalho para definição: ctrl+click mais eficiente que F12 do VS; sugestão no preenchimento de parâmetros; |
Tem a opção de intelisense para javascript; detecta erros em tempo de digitação; |
| Compilador | gerência eficiente e simples das dependências e referências | gerência eficiente e simples das dependências e referências | Gerenciamento das dependências pode ser feita da forma clássica ou pelo Maven; Gerenciamento é mais complexo e chato que o VS2010 | Gerenciamento de referências complexo; necessário colocar o caminho dos headers; mesmo conceito de aplicações C++; em tempo de compilação não gera erro; somente warnings; |
| Depurador | simples e eficiente | simples e eficiente | distinção entre rodar e depurar; watch das variáveis não é muito eficiente | GDB – muito ruim. Dá erro e não diz o que aconteceu; watch não funciona; breakpoints fantasmas |
| Emuladores | eficiente | Pesado a partir do SDK 7.1; Dependência de uma boa placa gráfica; | pesado, principalmente nas versões mais recentes (3.0 e 4.0) | mais eficiente por ser um simulador, mas é menos fiel a realidade do HW destino; para rodar no aparelho precisa pagar a licença anual de US$ 99,00 |
| Organização dos projetos | Organização em solução e projetos é mais versátil | Organização em solução e projetos é mais versátil | Organização de projetos em workspace. Workspace com muitos projetos tornam-se pesados. | fácil de trabalhar com múltiplos projetos. Altera o contexto dos projetos na mesma instância do XCode |
Abaixo uma tabela de classificação das IDEs feita por mim, com base nas opiniões coletadas com a equipe de desenvolvedores da Mobiltec.
|
1º Lugar |
2º Lugar |
3º Lugar |
|
| Construtor de Interface |
VS2010- WMobile |
VS2010- WPhone |
Eclipse |
| Controle de versão |
Eclipse |
VS2010 |
* |
| Editor |
Eclipse |
VS2010 |
XCode |
| Compilador |
VS2010 |
Eclipse |
XCode |
| Depurador |
VS2010 |
Eclipse |
XCode |
| Emuladores |
VS2010- WMobile |
Eclipse |
VS2010- WPhone |
| Organização dos projetos |
XCode |
VS2010 |
Eclipse |
| * XCode não merece o 3º lugar neste tópico | |||
Conclusões:
Precisa? Cada um que tire as suas.
Abraço.
Escrito por Ricardo Silveira



