sexta-feira, 24 de maio de 2013

As técnicas mais importantes para um programador iOS




Guia de estudos com técnicas mais importantes para um programador iOS iniciante.
Estou disponibilizando uma lista com as principais e mais relevantes técnicas de programação para que um programador iniciante em iOS se saia bem ao desenvolver uma boa aplicação. Diante de um vasto número de recursos do iOS SDK, esse guia inicial ajudará na sua curva de aprendizado e a obter o  que é mais relevante e é demandado nos mais diversos escopos de projetos. Esta foi uma das minhas dúvidas iniciais, e para ajudar programadores iniciantes vou citar uma lista que pode contribuir para seus estudos e para que se torne um fera em iOS.  Nesta lista não será abordado nenhum tutorial, é um guia para você começar a estudar, buscando em outras fontes (cursos,tutorias,livros e a própria documentação da Apple) cada assunto relatado.



Elementos Visuais (UX)
- UITableView : Criar células customizadas, customizar seções, identificar eventos de edição de célula (deletar).
- UIScrollView : Construir uma paginação com várias telas.
- UINavigationController : Montar estrutura de navegação oara seu aplicativo, modificar botões e cores das barras.
- UITabBarController : Manipular os elementos, botões de ativação e trocar telas via linha de código.
- SplitViewcontroller : Saber como usar para iPad e alternar para iPhone (usando template).
- NavigationBar e ToolBar : muito importante para iPad, inserir botões com icones customizados via linha de código, e mudar a cor.
- MapView : saber manipular o mapa, inserir e customizar pins, traçar rotas e identificar eventos nos elementos.
- UIButton : básico mas é interessante saber criá-lo totalmente via linha de código.
- WebView : para abrir páginas web dentro de seu app.

Temos muitos outros elementos de UI, mas os que citei é um bom começo.


Técnicas e frameworks mais importantes
- CoreLocation : Aprenda a captar a posição do usuário e todos os recursos de navegação disponibilizados.
- CoreData : Aprenda a modelar suas tabelas e criar relacionamentos entre as entidades. Domine bem todos os recursos fornecidos e entenda bem os tipos de valores e sua relação entre sqllite e as classes do Objective-C.
- InApp Purchase : Saiba como vender conteúdo dentro de seu aplicativo.
- Internacionalização : Você deve saber fazer sua aplicação para diversas línguas e regiões.
- EventKit : Anote compromissos no calendário do usuário.
- Imagem e Video : Indispensável saber como obter uma imagem ou video da câmera ou da biblioteca.
- WebService e serviços na internet : Procure saber como fazer uma requisição para um servidor e ler sua resposta. Uma dica é testar com as APIS públicas de localização de mapa do google, para simular consultar e analisar respostas. Comece pelo padrão JSON, mas saiba o SOAP também.
- Manipular arquivos : Ler um arquivo e salvá-lo em no diretório do seu aplicativo.
- Midias sociais : aprenda a como usar o SocialFramework (iOS6) e interagir a aplicação com Facebook e Twitter, no mínimo.
- Enviar email do aplicativo e com anexos.
- CoreAnimation : animações entre os elementos visuais é legal aprender também.

Objective-C , compilador e XCode
- Saiba bem como criar seus Blocks e Delegates.
- ARC.
- XCode, certificados, provisioning, distribuir.
-  XCode debugar sua aplicação e utilizar os schemes.
- Boas práticas em Objective-C e o design pattern MVC.

Finalização de seu aplicativo 
- Avaliar desempenho : saiba como avaliar o desempenho, procurar leaks, ver consumo de memória.
- Preparar imagens da sua aplicação para normal e retina display.
- Cadastrar sua app para mandar para appstore, preparar, gerar certificados e autorizar cópias via AdHoc para teste.
- Publicar na AppStore, escolher o nome, colocar screenshots para diferentes plataformas, escolher região, definir preços e outros.

Tem muitas outras técnicas como acelerômetro, push service, audio e video streamming, operações em background e muito mais, mas procurei dar um guia introdutório para que possa começar seus estudos em IOS.








segunda-feira, 18 de fevereiro de 2013

Tendências Mobile 2013 , Quem ganha Android, IOS ou WindowsPhone ?


Tendências Mobile 2013 , Quem ganha a briga Android, IOS ou WindowsPhone ?



Uma das coisas que o desenvolvedor mobile tem que sempre ficar antenado é qual a tendência  em programação mobile que seguirá para os próximos anos. É muito importante se posicionar em qual plataforma investir em sua carreira que significa tempo para curva de aprendizado, dinheiro e equipamento.

Quem ganhará a briga pelos mercados mobile : IOS , Android ou Windows Phone ? E qual deles é melhor investir sua carreira mobile ?

Os três, mas para não ficar em cima do muro, vou tentar traçar prioridades entre eles.
A tendência é que tanto IOS como Android continuem sendo alvos fortes dos desenvolvedores, e comparando a preferência dos desenvolvedores (mais os internacionais) pelo que tenho acompanhado, de longe ganha o IOS da Apple. Porque ? Isso porque a plataforma da Apple oferece uma lucratividade maior em sua AppStore e oferece um padrão mais seguro de desenvolvimento. Já o Android, devido a fragmentação, traz risco aos desenvolvedores quanto a público em geral e sua loja, a GooglePlay, o foco no ganho é através de publicidade dos aplicativos, o que desanima um pouco na rentabilidade.

Assim os desenvolvedores a nível mundial, continuam prefirindo escolher a AppStore para estratégias de vendas.  Veja o recente lançado Angry Birds StarWars por exemplo, na AppStore, é pago, na Android é grátuito. Ótimo para o consumidor, péssimo para o desenvolvedor.

Mas o Android tem a forte vantagem de ser a plataforma das massas, super popular, dá para fazer o que quiser, a curva de aprendizado é rápida por ser em Java. Assim , como foi o Java, ele vai se mantendo firme por ser totalmente opensource, aberto e dar oportunidade melhores de entrada para novos programadores.

Mas o aproveitamento do Android que acreditado ser uma tendência em que o setor privado ainda está dormindo, é aproveitar a capacidade de OpenSource do Android para desenvolver automação de sistemas, usando tablets. O custo dos aparelhos e do desenvolvimento de software é muito menor e pode trazer vantagens em auditorias, automação de processos e outros.

Para programação, continuar manter-se atualizado nas duas plataformas é algo obrigatório. Agora defina sua prioridade entre as duas.

Já o Windows Phone está comendo pelas beiradas, e tenta abocanhar uma fatia do mercado. A vantagem do Windows é oferecer algo mais organizado para os desenvolvedores, similar a Apple, mas o número de aparelhos ainda está longe de compensar muitas horas de estudo e desenvolvimento. Entretanto, todo mercado que se inicia é uma oportunidade para os pioneiros.

Para programadores, em quem sai ganhando é o IOS da Apple, pois devido a seu carácter de exclusividade, oferece um melhor atrativo para os desenvolvedores que são profissionais mais raros de se achar. Entretanto, ficar de fora do Android pode ser muito perigoso, principalmente com a tendência de demanda para aplicativos para todas as plataformas.

Para 2013 há uma grande expectativa do lançamento do iPhone de preço competitivo, seguindo o iPad mini. Se mais aparelhos iPhone chegarem a mercados emergentes como o nosso, fortalece ainda mais a plataforma e é bom para os desenvolvedores.

No caso de aplicativos para todas as plataformas, o que acontece com as startups que querem colocar seus projetos em mobilidade? Elas querem colocar em todas as plataformas. É normal clientes solicitarem aplicativos que rodam tanto em IOS como Android (e até Windows Phone e BlackBerry). Mas aqui tem um ponto de conflito, dependendo do escopo do projeto, isso pode sair caro demais. Isso porque um projeto muito grande, força um desenvolvedor ou até designer exclusivos!

Depois que se gerou muita expectativa nos Frameworks (PhoneGap,Sencha) como sendo a solução definitiva para programar em diversas plataformas, o que se vê é que isso não é bem assim.
Muitas funcionalidades que são nativas precisam ser escritas conforme a característica de cada plataforma, o que dependendo do escopo do projeto, acaba até atrasando usar um framework. O framework tem até um ar que facilitará a vida, mas na hora mesmo de emigalhar o código, acaba-se enchendo de puglins para lá e para cá.

A Gestão de Projeto Mobile ganhará uma importância.
Gerenciar projetos de software ganham um subnível a mais, o de gerenciar projetos de software mobile. Imagine, produzir um aplicativo para as 3 maiores plataformas, desenhar funcionalidades e no momento de iniciar a programação descobrir que aquela funcionalidade fundamental do seu aparelho, roda perfeito em Android, mas não em IOS , e em Windows Phone você nem sabe. Ou ainda, controlar as diferentes versões para as diferentes plataformas, que faz atualizar uma característica no IOS e replicar ela no Android. Cada atualização terá que ser bem estudada, para não comprometer a funcionalidade em outro sistema operacional. E ainda, deve se estudar como isso se comporta nos market-places, ser haverá aprovação ou não.  Estes ainda, terão obrigatoriamente um servidor Cloud, ou seja , mais uma plataforma para programação.

AEO Application Engine Optimization ? A verdade que se precisa de uma gama de técnicas específicas para alavancar o número de downloads de seu aplicativos. Assim como um especialista em Mídias Sociais e um especialista SEO, teremos o especialista AEO que traz os mesmos conceitos, mas voltado para o universo mobile e para aumentar o número de downloads. E ainda poderá aplicar outras técnicas como modificar a app para atrair mais downloads (atualizações), aumetar acessos, fazer cross-marketing com apps. A partir do momento que os projetos de aplicativos vão sendo lançados, os proprietários percebem que não basta só lançar, tem que investir em divulgação constante e outras atualizações para sempre atrair e aumentar downloads, se vê a necessidade de uma ação de marketing específica.


Agora é ver como o mercado seguirá em 2013!




quarta-feira, 13 de fevereiro de 2013

Certificado edx MIT - The Massachusetts Institute of Technology

Agradeço muito a Deus pela conquista deste certificado.  Para mim foi uma ótima experiência para poder atualizar meus conhecimentos em Algoritimos, Lógica e outros em Ciência da Computação com o mais alto nível oferecido pelo MIT.


Graduação 85% (Nota A)





quarta-feira, 9 de janeiro de 2013

PostFly -para iPhone e iPad - Atualize seu conteúdo nas redes sociais!




PostFly é um aplicativo que desenvolvi para AppStore (Apple) que permite divulgar em um só envio sua atualização de texto e foto para  diversas redes sociais.

É um aplicativo simples e prático para quem tem que lidar com diversas redes sociais ao mesmo tempo, mantendo seu post em um único canal.  Integrado às principais redes sociais através de api. Publicado na App Store para iPhone 4 e iPhone 5 e iPad, Inglês e Português. Conta ainda com In-App purchase.






Sistema de BI em PHP Orientado a Objetos MVC









Ano Passado (2012) foi um ano repleto de projetos, um deles com muito orgulho foi um sistema de algorítimos de BI (Business Inteligence) produzido para a TeorMarketing.

O sistema, produzido em PHP orientado a objetos com design pattern MVC, utilizando o banco Mysql, e uma técnica de processamento on-service , sem interação do usuário. Durou cerca de 6 meses e foi conduzido através das orientações dos requisitos do cliente.

Mais um ótimo projeto que participei para um ótimo cliente.

As demais características de funcionalidade não podem ser descritas aqui.

A TeorMarketing é uma empresa especializada em consultoria de Marketing com consultores especializados a orientar seus clientes em suas estratégias de negócios. Conheça mais a respeito da Teor Marketing.


sábado, 1 de dezembro de 2012

Balanço de um ano no IOS Developer Program.

(foto internet)


Após um ano inscrito no IOS Developer program, ou programa para desenvolvedores da plataformas IOS ( sistema operacional dos aparelho iPhone e iPad) , escrevo este artigo para fazer um balanço da minha experiencia com o relacionamento com a Apple.


Burocrático, mas com motivo.

A primeira coisa que impacta para mim que vim da plataforma Android da Google,onde a publicação de aplicativos é liberada, na Apple tudo é bem burocrático. Começando pelo processo de cadastro, que já escrevi aqui , passando pelas etapa de desenvolvimento para compartilhar versões com outros aparelhos forçando assinaturas e certificados especiais. Fora as cláusulas de termos do programa, que contém diversos restritivos. Aqui, a burocracia da Apple tem um motivo que remete a fiolosofia de toda a empresa: a proteção do conteúdo e o zelo pela segurança.
A Apple mostra no programa que é extremamente preocupada com vazamento de código, ou de cópia indevida ou pirataria. Claro, tudo isso para manter sobre seu domínio o mercado que ela mesmo criou para AppStore (sua loja de download de aplicativos).
Sendo um sistema proprietário, amarrado, se difere bem do Android, que tem tudo liberado, desde sua versão até seu marketplace.

O foco da qualidade, mas o material de conteúdo poderia ser melhor. 

O programa tem um foco na qualidade, com certeza. Tem um bom material de apoio.  Apesar de ter documentação de referencia , acho que eles tem muito o que evoluir quanto a tutoriais originais providos pela própria Apple. Algumas técnicas vem apenas da comunidade, e há certas restrições técnicas do sistema operacional que não ficam claras. Meu exemplo é a comunicação Bluetooth, que até agora não descobri se roda direito, pelo que já li não tem como, só para IOS6+ com o Bluetooth 4.0. Neste quesito, a Google dá um show com material muito mais vasto e amplo.  Talvez por causa da própria abertura que eles dão a comunidade. Quanto mais gente programando, mais material, e mais colaboradores.

Preparação de arquivo para enviar para loja: procedimento mais cansativo para programadores. 

Preparar um arquivo para enviar para loja é mais cansativo e envolve mais etapas para os programadores. Criar um certificado de distribuição, compilar e fazer um upload. Mas a Apple melhorou o XCode e agora está mais simples, mas não deixa de ter etapas que se deve ter o cuidado de tirar um dia no mínimo para fazê-lo.

Processo de aprovação na AppleStore: cansativo mas força a qualidade. 
O processo de publicação na Apple Store é cansativo, sim. Diferente da GooglePlay, que você joga lá qualquer coisa e código e põe a cara para bater direto com o usuário final, na Apple a coisa é diferente. O processo de avaliação segue uma lista enorme de critérios pré-determinados que avaliam a qualidade visual das imagens que está usando, se você esqueceu algum screeshot para determinada plataforma, se seu conteúdo é próprio ou impróprio e por ai vai.
Os mais preguiçosos e apressados (afinal quem não quer ver algo pronto no ar logo?) ficam irritados no início , mas é bem compreensível. Força os novos desenvolvedores a criar um nível mínimo de qualidade e preocupação com o acabamento.
Creio que se a GooglePlay fizesse algo parecido, poderia qualificar mais a sua loja. Mas afinal, ou libera ou não libera não é mesmo ?


Painel de Gestão de aplicativos: muito mais limpo e fácil para o desenvolvedor. 
Eu achei o painel de administração é muito mais limpo e fácil de gerenciar, comparado com nossos amigos da Google. De fato toda a estrutura de desenvolvimento do programa dá um ar muito maior de organização. Quem é acostumado com web-developer, pega ali e põe lá o código, ou os programadores mais antigos da época dos sistemas compilados perceberá a diferença. Eu acho isso bom, porque você ve uma organização do sistema. Destaco o aplicativo do iTunes Connect que permite acompanhar do celular as vendas. Isso achei bem legal.

Investimento : Vale a pena ser um IOS Developer ? 
Claro que sim, gastar seus USD 99,00 por ano é um excelente investimento que dá retorno para o programador. Hoj, não se pode pensar em dominar só Android e só IOS, tem que pensar nos dois no mínimo. E no caso da Apple, é ainda mais vantagem porque torna o profissional especialista em  seu eco-sistema, (MAC e iTv futuramente...).

O que eu acho que o Android Developer é ainda melhor: 
A plataforma da Google traz um ecosistema de ferramentas de programação(leia-se apis, e libs) muito maior, e parece-me que os engenheiros da Google são melhores que o pessoal de Cupertino no que tange a produzir ferramentas de código para facilitar a vida do programador. Talvez por causa do Java, mas isso é outro assunto. Entretanto a Google não tem essa filosofia Android Developer Program, ou seja, o que eles fazem jogam para comunidade e não para um cuidado com relacionamento individual com um desenvolvedor.
Resumo o Android ganha em conteúdo mas perde em relacionamento individual com o programador para Apple.



quarta-feira, 7 de novembro de 2012

CheckList para começar um projeto de aplicativo móvel para iPhone, iPad ou Android de sucesso.

CheckList para começar um projeto de aplicativo móvel para iPhone, iPad ou Android de sucesso.



Hoje vou dar algumas dicas do que seria um checklist com o que você deve se preocupar e verificar para começar um projeto de aplicativo, tanto para gestão e produção.

Recebo muitos emails de pessoas físicas que querem fazer sua app com alguém, mas percebo que falta preparo delas em o que é fazer um software, como será sua publicação e etc.

Checklist de Gestão de Aplicativo : 

1 ) Qual mercado do seu aplicativo e pesquisa de mercado.
2 ) Qual categoria ele se indica nos MarketPlaces (Social,Game,etc).
3 ) Quanto tempo de produção média você precisará.
4 ) Quanto tempo de pós produção.
5 ) Quanto tempo de marketing e divulgação.
6 ) Quanto investimento você precisará fazer.
7 ) Onde você vai achar os profissionais para realizar o projeto.
8 ) Expectativa de venda nos marketplaces.
9 ) Estratégia de divulgação e marketing
10 ) Cronograma.

Basicamente é um escopo de qualquer projeto ou plano de negócios , mas voltado para o software em si.

CheckList de Produção :

1 ) Quantidade de profissionais (programadores, designers e outros) necessários.
2 ) Se seu aplicativo precisará de um servidor de dados (chamamos isso de web-service)
3 ) Se seu aplicativo vai oferecer um sistema integrado na web (back-end ou gerenciador de conteúdo)
4 ) Se seu aplicativo terá localização (internacionalização), ou seja, disponível para várias linguas.
5 ) Qual o Design de Icone e Telas para as lojas AppStore e Google Play
6 ) Quais APIS ele precisará (recursos para redes sociais, leitura de código de barras, e outros)
7 ) Analisar a licença de qualquer API que for utilizada de terceiros. (questões de copyright)
8 ) Elaborar seu EULA conforme o mercado alvo.
9 ) Contruir o design (UI) de seu aplicativo para os diferentes formatos. (smathphone, tablet)
10 ) Consumo de memória, robustez e requisitos de hardware.
11 ) Seus módulos que permitem manutenção (identificação de falhas e erros apps maiores)
12 ) O Script de teste para finalização.
13 ) Sua estrategia de documentação e desenvolvimento. (UML ou Scrum)

Ufa!.  Isso só para começar! Construir um aplicativo de sucesso, principalmente voltado aos MarketPlaces AppleStore e GooglePlay requer preparo e uma boa estratégia de software.

Agora imagina você colocar ainda WindowsPhone e BlackBerry? Cada mercado multiplica suas demandas de preparação adequada para publicação.

Se precisar de alguém para te ajudar na consultoria , entre em contato comigo.

Sucesso.



Olha ai um brinde para você :




segunda-feira, 15 de outubro de 2012

FindME : Projeto experimental de monitoramento de redes sociais em ASP.NET MVC C#


FindME : Projeto experimental de monitoramento de posts nas redes sociais.



FindME é um aplicativo web desenvolvido em ASP.NET MVC 3 C# com as mais novas técnicas de programação nesta plataforma.

Meu objetivo neste projeto é puramente de estudos.  A premissa é proporcionar um monitoramento de todos os posts de determinados usuários em seus perfis de Facebook e Twitter, usando as relativas APIS das redes sociais, podendo guardar os posts para visualizar e analisar o perfil.



Usei ASP.NET  com MVC 3 usando o Entity Framework tudo em C#.  E ainda usando técnicas de AJAX e conectando com SQL Server Compact nativo.

Para o acabamento UI utilizei a Jquery UI e a Dojo para ajudar no visual.


Este projeto é apenas para apresentação a interessados em serviços em ASP.NET C# ou .NET.





terça-feira, 25 de setembro de 2012

Aplicativo iPhone Android MSD Calculadoras HCV





Calculadoras HCV

Calculadoras HCV é um aplicativo que desenvolvi multi-plataforma, para iPhone, iPad e Android para laboratório MSD em parceria com a 2Call.

O aplicativo oferece aos médicos diversas calculadoras para Hepatite, contendo ainda cálculos de dosagem além de fornecer a bula dos medicamentos para o tratamento de hepatite.




Felipe Menezes é programador desenvolvedor freelancer de aplicativos iphone, ipad e android
e presta serviços para todo Brasil. conheça 




quarta-feira, 12 de setembro de 2012

Novo iPhone 5 é lançado e o que podemos esperar como desenvolvedores ?



O novo iPhone 5 foi lançado hoje, e vou fazer uma breve avaliação no que muda para desenvolvedores, com as informações que disponho até aqui.  Veja mais sobre o iPhone 5 na MacMagazine.

Uma delas, a nova tela, maior demandará para nós desenvolvedores uma atenção a formatos de arquivos novos para maior resolução , seguindo a tendência HD para o novo iPad.

E ainda, uma atenção especial aos web-services, que terão que avaliar sua capacidade de armazenamento e otimização de imagens.

Ao que parece teremos problemas de compatibilidade do 4G e do cartão para o Brasil, segundo notícia da MacMagazine e da  Gizmodo Brasil, o 4G do iPhone não será compatível com o nosso.  Isso é bem ruim se esta tendência se confirmar, a não ser que a Apple mude seu 4G para o Brasil, o iPhone não pegará 4G no Brasil.

Então fica ainda mais distante esperar fazer apps que dependam de boa banda no Brasil.

Mas o que realmente importa para os desenvolvedores são as mudanças que vem com o novo IOS 6 , e principalmente com a nova Apple Store.

Segundo descrito pela TechCrunch,  a nova loja da Apple terá um sistema bem diferente para localizar aplicativos e matará a aba de Categorias.


Não sabemos o impacto deste resultado, mas ficará ainda mais difícil fazer uma app específica para um público corporativo chegar a pessoa destinada, apenas por sua colocação na categoria da Apple Store.

Segundo a notícia, o novo algoritimo vai captar o costume da pessoa, mas acho que nem todo mundo que come pizza nos domingos vai precisar de uma app de pizza na segunda  em uma apresentação no trabalho por exemplo.

Dai , o próprio site aponta a tendência de uma necessidade de  “ASO” (app store optimization), a exemplo do SEO. 

Se sua app estiver em produção pronta para entrar no mercado, se prepare para esta nova realidade.