Nessa semana, vamos falar sobre como desenvolver uma aplicação mobile para Android e iOs. Antes de iniciarmos, é importante que o leitor conheça um pouco a história das empresas por trás dessas plataformas, a citar Google e Apple, pois suas peculiaridades impactam diretamente na forma como os sistemas são feitos. Se você já conhece essa história, ótimo! Continue a leitura no parágrafo seguinte. Se não conhece ou deseja relembrar, vá até o fim do post e leia o breve histórico das empresas por trás das plataformas Android e iOs. Depois volte para o começo, a partir do parágrafo seguinte.
Desenvolvendo uma aplicação mobile:
Antes de desenvolver uma aplicação para um dispositivo móvel é essencial que se conheça a arquitetura do sistema operacional e a forma como a sua aplicação é gerenciada (ciclo de vida). A linguagem de programação também é um ponto importante, pois pode demandar um tempo grande de aprendizado.
Confira as principais características de desenvolvimento do Android e do iOS:
Android
O Android foi desenvolvido tendo como base o kernel do Linux, e a figura abaixo detalha bem essa arquitetura:
Como pode ser visto na figura acima, a aplicação desenvolvida será executada no nível “Applications”. Vale destacar também que a aplicação é executada como um sandbox, ou seja, a aplicação tem acesso somente a um restrito conjunto de recursos e bibliotecas, além de restringir também os arquivos e diretórios que a aplicação pode utilizar. Como comparação, é como se a aplicação fosse um Applet Java.Para desenvolver uma aplicação para Android é necessário ter conhecimentos da linguagem de programação Java. A IDE (do inglês, Integrated Development Environment) recomendada pelo Google para desenvolver é o Eclipse. Os programas desenvolvidos para Android são compilados em byte codes (em um formato específico .dex) e são executados em sua máquina virtual chamada Dalvik. Na teoria, qualquer biblioteca Java (.jar) pode ser utilizada no Android, porém não é totalmente garantido que a biblioteca irá funcionar, visto que a Dalvik não implementa Java SE e tão pouco Java ME, e sim um conjunto próprio do Java baseado no projeto Apache Harmony. Na prática são poucas as classes Java que estão de fora dessa implementação. A lista de classes disponíveis está aqui.
Para testar sua aplicação, o Google disponibiliza um Emulador do sistema Android que pode ser executado de dentro do Eclipse. Nenhuma licença especial é necessária para iniciar o desenvolvimento, nem para testar seu código em um aparelho real, visto que a política adotada pelo Google é a do Open Source.
O Eclipse possui uma ótima integração com controles de versão (SVN e CVS são utilizados na Mobiltec, por exemplo), facilitando a identificação de alterações realizadas, bem como o desenvolvimento em equipe.
Em futuros posts iremos mostrar de uma maneira prática o desenvolvimento de aplicativos para Android, mas se você está muito curioso pode encontrar toda documentação necessária para se aventurar nesse mundo aqui.
iOS
Em 2007 Steve Jobs anunciou a primeira versão do kit de desenvolvimento de software (SDK) da plataforma iOS que foi disponibilizada em fevereiro de 2008. Ela permite que desenvolvedores criem aplicações para iPhone e iPod Touch, que podem ser testadas em emulador. Entretanto, carregar o aplicativo em um dispositivo exige uma licença do iPhone Developer Program com custo (em 2011) de U$S 99,00 por ano.
A linguagem de programação nativa da plataforma iOS é o Objective C, havendo possibilidade de utilização da linguagem C e C++. O Objective C é uma linguagem que teve origem nos anos 80, mas não era tão presente no mercado, ganhando força junto ao crescimento da Apple. Por ser uma linguagem pouco difundida, não existe tanto conteúdo em fóruns e sites comparado com C# e Java e a principal fonte de pesquisa da linguagem é a própria Apple. Ela disponibiliza conteúdo completo, suficiente para o bom desenvolvimento de projetos nessa linguagem.
O Objective C não é uma linguagem muito familiar aos programadores Java e C#. É uma linguagem com muito mais características de C e C++ tendo, inclusive, o conceito de ponteiros. Sua IDE é o XCode sendo esse a principal opção dos desenvolvedores. O download do XCODE é gratuito mediante cadastro no Developer Program através do site da Apple . Confira o link.
Pode-se destacar alguns comparativos entre XCode, Eclipse e Microsoft Visual Studio:
- O XCode possui source control nativo, chamado SVN. O Eclipse não possui essa funcionalidade nativa, porém, o SVN pode ser usado no Eclipse através de um plugin. Para o Microsoft Visual Studio (MVS), existe a possibilidade de se trabalhar com o TFS (Team Foundation Server), que é o source control da Microsoft que substituiu o antigo Visual Source Safe. O problema dessa abordagem do Visual Studio é que se torna necessário pagar uma licença para se obter o TFS. No MVS o aplicativo cliente que se conecta ao TFS é o próprio Team Explorer que vem nativo na ferramenta. Existe a possibilidade de se trabalhar com o SVN/CVS, via plugins, mas nada oficial da Microsoft.
- A funcionalidade de IntelliSense também está presente no XCode. Entretanto, a lista de itens é organizada de uma forma diferente. Enquanto o Eclipse e o Visual Studio carregam as opções do IntelliSense com base na tipagem instanciada, no XCode, a lista é uma carga dinâmica não muito intuitiva e organizada, o que torna esse recurso menos agradável ao desenvolvedor. Se perde mais tempo procurando algo no IntelliSense do XCode do que no Eclipse e no Visual Studio.
- Trabalhar com arquivos javascript no XCode foi considerado muito melhor do que no Eclipse e Visual Studio. O XCode interpreta o arquivo JS e permite o uso das funcionalidades da IDE, enquanto o Eclipse e o Visual Studio não, exceto com plugins de terceiros.
Assim como no Android, as aplicações desenvolvidas para iOS encontram-se em uma sandbox, onde os arquivos não podem ser acessados fora do sistema operacional. A sandbox mostra-se como uma tendência segura que deve ser incorporada por outras plataformas de dispositivos móveis.
Distribuindo a aplicação
Para distribuir uma aplicação, cada empresa tem sua política. O Google adota uma política mais flexivel, já a Apple uma politica mais burocrática para manter uma qualidade maior em seus aplicativos, evitando assim os programadores mais aventureiros. Talvez, devido a essa dificuldade, seja mais difícil encontrar aplicativos bons de graça para o iOS. Mas qualquer pessoa, seja pessoa física ou jurídica, pode distribuir sua aplicação em qualquer uma das plataformas.
Veja algumas características da distribuição de aplicativos de cada uma das plataformas:
Android
Para tentar restringir um pouco quem pode distribuir os aplicativos, o Google cobra uma taxa de inscrição de US$ 25. Além dessa taxa de inscrição, é cobrada também uma taxa de 30% do valor do aplicativo a cada venda, o famoso esquema 70-30 (70% fica com o desenvolvedor e 30% com o Google). O preço mínimo de um aplicativo pago é U$ 0,99 e o máximo U$ 200. Não existe nenhuma avaliação formal se o aplicativo submetido para o Market está dentro dos padrões esperados, porém de tempos em tempos, o Google faz uma varredura nos aplicativos presentes, banindo aqueles que não estão de acordo com as normas estabelecidas em contrato (previamente aceito antes de publicar a aplicação). Se você mora no Brasil e pretende distribuir sua aplicação, deve se cadastrar como um desenvolvedor do tipo Comerciante (tradução do termo em inglês Merchant) e para receber os pagamentos precisa vincular sua conta do Google Checkout (criada no cadastro para efetuar o pagamento da inscrição) a uma conta do AdSense. O Google não explica o porquê desse vínculo, apenas cita que isso é temporário enquanto desenvolvem uma outra maneira. Mais recentemente, o Google liberou a possibilidade de licenciamento de aplicativos, assim é possível liberar partes da aplicação mediante pagamento de mensalidade. Assim seria possível, por exemplo, cobrar uma taxa mensal do usuário por armazenar os dados da aplicação nas nuvens. O Google não cobra taxas extras por esse serviço.
iOS
Para realizar a distribuição de aplicações do iOS, é necessário o desenvolvedor estar vinculado ao iPhone Developer Program, como foi citado anteriormente. A aplicação deve ser aprovada pela Apple antes de ir para o mercado, sendo necessário cumprir uma série de normas estipuladas. Geralmente, uma aplicação demora uma semana ou duas para ser aprovada. Dependendo do período do ano, pode levar mais tempo devido ao grande envio de aplicações. Caso a aplicação seja rejeitada, quando a mesma for reenviada, entra na fila de aprovação novamente e mais uma ou duas semanas serão necessárias para nova aprovação.
Assim como no Android, a Apple retém 30% do valor final da aplicação comercializada e os pagamentos são repassados ao desenvolvedor mensalmente. Todos os tramites de aprovação, publicação e pagamentos são realizados através do site da Apple.
Mais informações podem ser encontradas aqui.
Conclusões
Como visto cada um adota uma política diferente em relação ao desenvolvimento, uma mais aberta (Android) outra mais restrita e fechada (iOS) e é importante que se conheça bem as características de ambas, caso o leitor queira ingressar na carreira de desenvolvedor de aplicativos móveis.
Em breve traremos mais posts sobre iOS e Android, mostrando algumas informações sobre as inovações dessas plataformas, bem como posts mostrando algumas das técnicas utilizadas na Mobiltec para desenvolvimento mobile.
Antes de encerrarmos o post, segue um link que mostra uma discussão entre Josh Topolsky, um dos editores do Engadget e Lance Ulanoff, editor chefe da PCmag.com, sobre Android e Apple em relação ao futuro dos dispositivos móveis.
__________________________________________________________
Um breve histórico sobre as empresas por trás do Android e iOs:
É importante saber como tudo começou, para entender melhor o mercado de desenvolvimento de aplicativos.
Veja abaixo um breve histórico de cada uma das plataformas que vamos discutir ao longo desse post.
GOOGLE (ANDROID)
Em 2005 a gigante das pesquisas Google comprou uma startup chamada Android Inc., que tinha a ideia de desenvolver um sistema baseado na localização do usuário, que fosse ajustável às suas preferências e necessidades. Essa compra foi misteriosa porque ninguém sabia o que exatamente o Google estava planejando. Especulava-se que a empresa queria dar um passo na próxima fronteira em pesquisa, trazendo para o usuário uma pesquisa mais personalizada e por que não, “sem fio”. No ano de 2007, o Google lança no mercado o smartphone G1, com o até então desconhecido sistema operacional para dispositivos móveis, Android.
APPLE (iOS)
Foi fundada em 1 de abril de 1976 por Steve Jobs, Steve Wozniak e Ronald Wayne. Tinham como principal foco os computadores pessoais. Ao longo desses 35 anos, a Apple se mostrou inovadora e com grande capacidade de articulação junto a outras grandes empresas. Passou por momentos de turbulência com a saida de Steve Jobs em 1985. Steve retornou à Apple em 1996 e, um ano após seu retorno, assumiu novamente o cargo de CEO, iniciando uma reestruturação na linha de produtos da empresa.
A chegada do iPod no final de 2001 e sua loja de músicas (iTunes Store) integrada com o dispositivo trouxe novo modelo de comercialização de conteúdo digital que passou a estimular um novo tipo de consumidor. Estes consumidores encontram possibilidade de comprar suas músicas prediletas e também dispõe de outras funcionalidades em seus aparelhos.
No periodo entre 2005 e 2007 a Apple fechou uma parceria com a Intel para desenvolverem o MacBook PRO e seus sucessores, retornando para o mercado de dispositivos móveis, em 2007. Neste ano, a Apple anunciou o lançamento do iPhone com sua App Store. No mesmo período também anunciou a nova versão do iPod, o iPod Touch.
Estes produtos colocaram a Apple em um novo patamar. A aceitação dos produtos lançados e a grande capacidade de seus dispositivos, tanto para uso pessoal como para o mercado corporativo, atraiu os olhos de empresas do ramo de desenvolvimento de software, vendo na plataforma da Apple um extremo potencial.
Agora, volte ao início da postagem.
Escrito por Paulo Sérgio Morandi e Luiz Roberto Lethang Rodolpho





Bom artigo. estou na espera dos proximos post.
Bom artigo, parabens.