Artigos de ‘fev 2012’

And the Oscar goes to: MOBILE


Mobile Trends & Mobile Business
Leandro Blanc
29fevereiro

A edição 2012 da maior premiação do cinema mundial esteve presente não somente nos televisores tradicionais, mas também nos tablets e smartphones. Os acessos mobile impulsionados pelo Oscar, realizado no último domingo, ajudaram a bater recordes no cenário móvel.

A verdade é que o sucesso móvel do evento começou já na divulgação dos concorrentes aos prêmios, realizado ao vivo através de um canal do YouTube e atraindo milhões de usuários móveis, curiosos em saber os nomes dos indicados. Tratava-se claramente de um evento móvel e web, uma vez que a própria TV fora deixada de lado para este anúncio.

Outro ponto importante fora o próprio aplicativo oficial, disponível apenas nos EUA, apresentado como o “companheiro” ideal para ser usado como segunda tela, enquanto se assistia ao evento na TV. Fornecia, muito antes do evento, todas as informações necessárias para acompanhar de perto a chegada do evento. Era possível também uma interação com as redes sociais, que permitia aos usuários o compartilhamento de seus palpites para os vencedores da noite. Durante o evento, o aplicativo divulgou, além dos filmes premiados, fotos do tapete vermelho e outros detalhes, tais como a organização do backstage. Para garantir o sucesso pós evento do aplicativo, a promessa é de que o usuário possa reviver os momentos dos vencedores, com vídeos editados através de 24 câmeras que permitiram capturar toda a emoção da noite.

Fora do aplicativo oficial, os usuários móveis reuniram-se em massa em seus canais preferidos de mídia social, com destaque para o Twitter e comentários sobre o tapete vermelho.

Fontes: Apple Store, Mobile Marketing Watch e Yahoo! News.

permalink
, , , ,

How to – Organizing and versioning your iOS Components


English
Marcio Massaki
28fevereiro

Componentes para plataforma iOS
One challenge we faced while developing iOS apps was to optimize using of third party components and even those developed internally. Although it might look an easy task, it can become a nightmare if not well organized.
In this post we describe our experience, the pros and cons of each distribution type and also how we are dealing with this now.

The main reason of components usage is code reusing, resulting in a much faster project development. Our bigger concern here is related to version control, avoiding changes on the components source code inside each project, solve library interdependence and also easying the process of adding a new component to a project.
In general, iOS libraries can be distributed as source code, static library or static framework. In this article, we will describe each of these aproachs.

Source code

You just have to add the source code files to your project and build them as if they were part of the main project.

Pros

  • - easy to use;
  • - easy to create;
  • - easy to debug.

Cons

  • - hard to manage version-control;
  • - separation between project and components;
  • - component modification inside projects;
  • - library interdependence is user responsible.

Although it is easy to use components this way, it is not easy to control which version is being used. Moreover, all the source code is added to the project promoting the user as responsible for “external” code organization.
Another problem of this kind of distribution is dealing with source code changes by users. If this happens and nobody identifies, the use of this component is compromised.

Static Library

These libraries are already compiled before distribution. It has a library (.a file), headers (.h files) and sometimes resources.

As it is compiled, its distribution does not allow the user access to the source code. Also, there is no need to be compiled within to the main project, resulting in a much faster compilation time.

Pros

  • - easy to use;
  • - separation between project and components.

Cons

  • - Categories bug;
  • - needs project configuration changes;
  • - library interdependence is user responsible;
  • - creation of the distribution package;
  • - debugging difficulty.

When a Static Library uses Categories we need to add the argument -ObjC on the “Other Linker Flags” project configuration (more information here) so that it is loaded by the Linker. However there is a known Linker bug in iOS and 64-bit apps that prevents -ObjC from loading files with only Categories and no classes. There is a workaround that consists to use the flag -all_load together with -ObjC, so that the Linker loads all files.

The Static Library dependencies must be added by the user or included in the Static Library itself, but the last option is not a good option, once it becomes limited to the version specified by the dependence and, also, we can have problems with duplicated symbols (due to -ObjC and -all_load flags used together).

After creating a component, we must create a package with the library (.a file), all the public headers and the resources for each different version.

Static Framework

Unfortunately Cocoa Touch does not allow us to create Dynamic Frameworks. Only Apple can create them, such as UIKit and Foundation. However, we can create Static Frameworks, which are nothing else than Static Libraries with a directory structure that has headers and resources.

There is no templates to create iOS Static Frameworks natively available on XCode, but there is a project on github with scripts to enable this option.

Pros

  • - easy to use;
  • - separation between project and components;
  • - creation of the distribution package.

Cons

  • - Categories bug;
  • - needs project configuration changes;
  • - library interdependence is user responsible;
  • - hard to debugging;
  • - needs to add XCode templates.

This alternative has the same advantage and problems of Static Library, but makes the component distribution easier, once the Static Framework template creates the directory structure with project headers and resources.

Among these alternatives we have not find one that easily solved the interdependence question between libraries and that was kind a “plug-and-play” to users, until we find out CocoaPods.

CocoaPods

CocoaPods is a libraries dependency manager open-source project for Objective-C, similar to what RubyGems is to Ruby. Its goal is to make the process of adding a dependency to a project easier and also create a centralized ecosystem of libraries available today.

With CocoaPods all you have to do is describe which are your project dependencies and execute a command so that the manager search for each library and its dependencies, installing all of them in the project afterward. By doing this, the dependencies between the libraries are not an user responsible anymore and we can keep components updated more easily.

The installation is simple: install the Gem cocoapods so that you can use the tools. More details can be found on the project page at github.

The creation of components (Pods) is also simple: you just need the source in a git or svn server and then create a spec file about this source. It is possible to specify components as open source or as a Static Library.

We have some CocoaPods pros and cons:

Pros

  • - version control;
  • - library interdependence management;
  • - easy to use;
  • - separation between project and components;
  • - easy to debug.

Cons

  • - recent project with some bugs;
  • - many libraries non available yet.

Being a recent project has some downsides, so CocoaPods still have some bugs and also there aren’t many libraries specs already available to Objective-C, but every developer can create them and contribute with the project development. Also, after the acceptance of your first specs they give you write access to the repository so that you can quickly contribute.

Now we are working with CocoaPods to manage the dependencies of our projects with a modified repository of specs to include our internal components, but it is a subject for another post.

This post has a portuguese version – “Como organizar e controlar versão dos seus componentes iOS”

permalink
, , , , , , , , , ,

Como organizar e controlar versão dos seus componentes iOS


Go Tech
Marcio Massaki
28fevereiro

Componentes para plataforma iOS

Um dos desafios que encontramos foi a otimização da utilização de componentes para desenvolvimento, sejam eles internos ou de terceiros. Aparentemente uma tarefas simples, mas pode se tornar um pesadelo se não for feito de maneira organizada.

Neste post descreveremos a experiência que tivemos, os prós e contras de cada tipo de distribuição, tanto para criação quanto para uso, e como estamos trabalhando atualmente.
O objetivo principal da utilização de componentes é o reuso de código, agilizando assim o desenvolvimento de projetos. Nossa maior preocupação aqui é com relação ao controle de versões, para que não hajam componentes modificados em projetos específicos, resolver a inter-dependência entre bibliotecas e facilitar e simplificar o processo de adição de componentes no projeto.

Em geral as bibliotecas para iOS são disponibilizadas em forma de código-fonte, static library ou static framework. Descreveremos a seguir cada uma delas.

Código-fonte

Basta adicionar os arquivos do código-fonte ao projeto e compilá-los como se pertencessem ao projeto principal.

Prós

  • - facilidade de utilização;
  • - facilidade de criação;
  • - facilidade de depuração.

Contras

  • - dificuldade no controle de versão;
  • - separação entre componente e projeto;
  • - edição do componente dentro do projeto;
  • - inter-dependência entre bibliotecas sob responsabilidade do usuário.

Apesar de ser simples criar e utilizar componentes dessa forma, é difícil saber qual versão do componente estamos utilizando. Além disso todo o código-fonte do componente é adicionado ao projeto sendo de responsabilidade do usuário organizar e separar o código “externo”.

Outro problema deste tipo de distribuição é a alteração do código-fonte do componente pelo usuário. Caso isso aconteça e não seja identificado, a atualização do componente será comprometida.

Library

São bibliotecas disponibilizadas já compiladas. Possui a biblioteca (arquivo .a), headers (arquivos .h) e, em alguns casos, alguns resources.

Por serem compiladas sua distribuição não permite que o usuário tenha acesso ao código-fonte da biblioteca e não precisam ser compiladas juntamente com o projeto principal, diminuindo o tempo de compilação.
Prós

  • - facilidade de utilização;
  • - separação entre componente e projeto.

Contras

  • - bug com Categories;
  • - requer mudança na configuração do projeto;
  • - inter-dependência entre bibliotecas sob responsabilidade do usuário;
  • - criação do pacote para distribuição;
  • - dificuldade de depuração.

Quando a Static Library utiliza Categories é necessário adicionar o argumento -ObjC na configuração “Other Linker Flags” do projeto (mais informações aqui) para que as mesmas sejam carregadas no Linker. No entanto há um bug conhecido no iOS e em aplicações 64 bits que faz com que Categories sem Classe não sejam carregadas no Linker. Há um workaround que consiste em utilizar a flag -all_load juntamente com a -ObjC, fazendo com que o Linker carregue todos os arquivos.

As dependências da Static Library devem ser adicionadas pelo usuário ou incluídas na própria Static Library, porém incluí-las no componente não é uma boa opção, pois além de ficarem limitadas a uma versão específica da dependência, podemos ter problemas com símbolos duplicados (devido ao uso das flags -ObjC e -all_load).
Ao final da criação do componente, para cada versão, devemos criar um pacote com a library (arquivo .a), todos os headers públicos e todos os resources.

Static Framework

Infelizmente no Cocoa Touch não é possível criar Dynamic Frameworks. Somente a Apple pode criar esse tipo de framework como por exemplo o UIKit e o Foundation. No entanto há a possibilidade de criar-se Static Frameworks que nada mais são do que Static Libraries com uma estrutura de diretórios com headers e resources.

Não há templates para criação de Static Frameworks para iOS disponível nativamente no XCode, porém há um projeto no github que disponibiliza scripts que habilitam esta opção.
Prós

  • - facilidade de utilização;
  • - separação entre componente e projeto;
  • - criação do pacote para distribuição.

Contras

  • - bug com Categories;
  • - requer mudança na configuração do projeto;
  • - inter-dependência entre bibliotecas sob responsabilidade do usuário;
  • - dificuldade de depuração;
  • - necessidade de adicionar templates no XCode.

Esta alternativa possui as mesmas vantagens e problemas da Static Library, porém facilita a criação do componente para distribuição, pois o template para Static Framework já cria a estrutura de diretórios com os headers e resources do projeto.

Dentre as alternativas mostradas acima ainda não tínhamos uma que resolvesse de forma simples a inter-dependência entre bibliotecas e que fosse “plug-and-play” para o usuário até que descobrimos o CocoaPods.

CocoaPods

O CocoaPods é um projeto Open source de um gerenciador de dependências de bibliotecas para Objective-C assim como o RubyGems para Ruby. Ele tem como objetivo simplificar a adição de dependências em projetos e centralizar as bibliotecas disponíveis atualmente.

Com o CocoaPods basta o usuário descrever quais são as dependências do seu projeto e executar o comando para que o gerenciador busque as bibliotecas e suas dependências e instale-as no projeto. Com isso as dependências entre bibliotecas não ficam mais sob responsabilidade do usuário e podemos manter os componentes atualizados com maior facilidade.

Sua instalação é simples: basta instalar a Gem cocoapods para poder utilizar a ferramenta. Mais detalhes podem ser vistos na página do projeto no github.

A criação de componentes (Pods) também é simples: basta que ele esteja em algum servidor git ou svn e criar um arquivo com suas especificações. É possível deixar o componente com o código aberto ou disponibilizá-lo como uma Static Library.

Podemos citar alguns prós e contras do CocoaPods:

Prós

  • - controle de versão;
  • - controle de inter-dependência de bibliotecas;
  • - facilidade de uso;
  • - separação entre projeto principal e componentes;
  • - facilidade de depuração;

Contras

  • - projeto recente com alguns bugs;
  • - muitas bibliotecas ainda não disponíveis.

O CocoaPods ainda possui alguns bugs, pois trata-se de um projeto recente. Por esse motivo, ainda não foram criadas specs de muitas libraries disponíveis para Objective-C, mas qualquer desenvolvedor pode criá-las e contribuir com o desenvolvimento do projeto. Após a aceitação da sua primeira spec é dado o acesso de escrita ao repositório para que você possa contribuir mais rapidamente.

Atualmente estamos utilizando o CocoaPods como gerenciador de dependências dos projetos com um repositório de specs modificado para nossos componentes internos, mas isso é assunto para um outro post.

Este post também possui uma versão em ingles – “How to – Organizing and versioning your iOS Components”

permalink
, , , , , , , , , , ,

iPad já começa a fazer parte da rotina de clínicas e hospitais


Mobile Trends & Mobile Business
Leandro Blanc
24fevereiro

De acordo com levantamento realizado em cinco países europeus (Alemanha, Espanha, França, Itália e Reino Unido), 26% dos profissionais de saúde já utilizam o dispositivo da Apple para trabalho, em substituição a mídias offline anteriormente utilizadas.

Com relação à participação nos trabalhos realizados pelos médicos, os PCs ainda têm muita força, sendo utilizados por 55% do tempo. Os iPads têm 27%, enquanto os smartphones  ocupam 18%.

Com a facilidade e rapidez apresentadas na realização de tais atividades via iPads, a tendência é que isso se torne cada vez mais comum. A mesma pesquisa apurou que aproximadamente 40% dos profissionais de saúde que não possuem o tablet da Apple pretendem adquirir um.

No Brasil já existem alguns exemplos semelhantes. O Hospital Santa Paula, de São Paulo, por exemplo, iniciou em 2011 uma série de investimentos no iPad como ferramenta estratégica, tendo adquirido cerca de 120 unidades, estas distribuídas entre os profissionais-chave da instituição. Através do gadget tudo que antes era descrito em prontuários eletrônicos, localizados nos balcões de enfermagem, passaram a ser feitos ao lado do paciente, em seu leito, visando o aumento da transparência de suas ações. A nova tecnologia também foi estendida aos seus clientes médicos, que podem consultar, através do tablet da Apple, ou até mesmo de seu iPhone, as cirurgias agendadas, bem como saber em tempo real quais cirurgias estão sendo realizadas em todas as oito salas do complexo cirúrgico, com detalhamento administrativo do seu andamento.

Fontes: Manhattan Research e TI Inside

permalink
, , , , , , ,

Classe C é a que mais consome conteúdo móvel


Mobile Trends & Mobile Business
Leandro Blanc
16fevereiro

Os usuários de dispositivos móveis pertencentes à classe C são os maiores consumidores de conteúdo móvel. A queda dos preços de smartphones e tablets, ocasionada entre outras coisas, pelos incentivos anunciados pelo Governo para a produção interna deste tipo de produto e pelo barateamento dos planos de internet móvel, os tornaram acessíveis a este público, fazendo do celular ou tablet a sua primeira opção de acesso à web.

Este comportamento deve repetir-se no decorrer do ano de 2012, já que eles estão cada vez mais consumindo produtos antes exclusivos às classes mais altas. Smartphones e tablets estão nos planos de compra para o próximo ano para mais de 25% da classe C.

A comunicação móvel deve ser abordada pelas ações publicitárias das companhias, visando atingir esse emergente grupo de consumidores, ávido por novos conteúdos.

Fontes: IDC e Mobile Marketing Association

permalink
, , , , ,

Pizza Hero. O aplicativo do Domino’s que transforma você em um herói da pizza


Mobile Trends & Mobile Business, Ux
Daniel Mack
10fevereiro

Como estratégia de fortalecimento de marca, a pizzaria Domino’s apostou no Pizza Hero (somente na app store americana). O aplicativo que traz um jogo super divertido, desafiando o usuário a se transformar em “herói da pizza” e criar uma pizza em poucos segundos.

O aplicativo também ensina e fornece detalhes interessantes nas etapas de criação, onde o usuário pode criar a pizza da maneira que preferir, podendo inclusive fazer o checkout dela quando terminar a montagem.

A usabilidade impressiona. Com ótimos efeitos sonoros, você também navega e monta a pizza usando gestures, deixando a experiência de uso muito boa.

Confiram trailler do game:


source: http://dominospizzahero.com/

permalink
, , , ,

Investimentos em publicidade móvel devem crescer em 2012


Mobile Trends & Mobile Business
Leandro Blanc
08fevereiro


Com a popularização dos dispositivos móveis, a publicidade nestes aparelhos também tem crescido, apresentando-se em constante inovação. O Google registrou aumento expressivo no número de buscas feitas por aparelhos móveis nos últimos 12 meses. Por isso, nos Estados Unidos, os investimentos neste tipo de publicidade devem crescer 47% em 2012, chegando a 1,8 bilhão de dólares. No Brasil, a Amob, unidade do Google que entrega publicidade em dispositivos móveis, afirmou ter alcançado em setembro de 2011, a marca de um milhão de impressões mensais, mostrando que o tema já começa a apresentar algum sucesso por aqui. Mas será que os usuários estão realmente satisfeitos com este tipo de publicidade? De acordo com o relatório “State of the Midia 2011″, da Nielsen, mais da metade dos usuários não ligam e até gostam da ideia.

O crescimento do investimento em publicidade móvel no Brasil ocorrerá por motivos óbvios. Estima-se que até o final deste ano serão vendidos 450 mil tablets por aqui. A expectativa para smartphones é ainda mais otimista, podendo alcançar até 31 milhões de unidade comercializadas em toda a América Latina.

Seja qual for o formato de mobile ad escolhido, o importante é que possibilite a interação com o público. Diferente das outras formas de propaganda, que interrompem e chamam a atenção para a marca, a publicidade móvel trará resultados de acordo com o tipo de engajamento e ação que oferece aos usuários. O momento é de transição. As novidades tecnológicas estão mudando o comportamento das pessoas e as empresas devem se adaptar a estes “novos usuários”.

Fonte: Administradores.com.br, eMarketer, Google, IDC, Nielsen e Pyramid

permalink
, , , ,

Mobilidade deve ser a maior vencedora no Super Bowl deste domingo


Mobile Trends & Mobile Business
Leandro Blanc
03fevereiro

Uma pesquisa recém publicada nos EUA mostra que 60% dos usuários móveis estarão atentos ou usarão os seus dispositivos móveis durante o Super Bowl deste ano, a ser realizado neste domingo, sendo que 83% destes pretende usar tanto ou mais do que o fizeram no ano passado.

Dentre os usuários acima de 45 anos, 30% assistirá à partida com o dispositivo em mãos, número que sobe entre os usuários de 18 anos ou mais, atingindo quase a metade (47%) desta população, que pretende verificar ou usar os seus dispositivos até 10 vezes durante o jogo.

Esta pesquisa é um indicativo do quão integrado aos dispositivos móveis está o maior evento da televisão americana, evidenciando uma tendência cada vez mais comum durante os eventos esportivos mundiais. Os espectadores sentam-se à frente dos televisores com os seus dispositivos móveis e a verificação da segunda tela acaba ocorrendo de maneira natural.

Os dispositivos móveis vem completar o círculo de envolvimento dos usuários, transformando publicidade em conteúdo.

Fontes: Mobile Marketing Watch e Velti

permalink
, , , ,

Link Roundup – Janeiro de 2012


Go Tech
Felipe Sabino
02fevereiro

Janeiro foi um mês realmente agitado aqui na I.ndigo, logo abaixo compilamos alguns posts e acontecimentos que marcaram o nosso mês por aqui.

I.ndigo

Para comemorar o ano que tivemos e dar o kick-off oficial de 2012, produzimos esse infográfico (lindo!) com os resultados alcançados no último ano.

Foram 29 apps produzidos em 1 ano, alguns deles só lançados neste mês, como o do Minnesota Wild que facilitou a vida dos fans do time que disputa a NHL e o Hy-Vee, já imaginou entrar em um supermercado e ter na palma da mão a localização exata dos produtos que procura?

Design & User Experience

Quando o assunto é experiência do usuário, a Nordstrom Innovation Lab deu uma aula com esse estudo de caso e, durante o mês nos deparamos com alguns apps e resources extremamente interessantes para os designers, como o Clear for iPhone, essa galeria de ícones para iOS e o design guideline lançado pelo Google.

Keep Watching

Entre os apps e tecnologias que mais chamaram nossa atenção, as Smart Tags apresentadas pela Sony na CES ganharam destaque ao apresentar uma maneira inovadora e criativa de lidar com o NFC, já a principal decepção ficou por conta do adiamento/cancelamento dos cursos online de Stanford, provavelmente causados pela renúncia do Professor Sebastian Thrun.

Mobile Trends & Mobile Business

Analisando as tendências e indicadores de mercado o, já previsível, crescimento do m-commerce em 2011 se concretizou e também ganhou destaque no nosso blog.

iOS Development

As novidades da área técnica também não ficaram de lado, o principal destaque do mês foi a nossa participação no iOS 5 Tech Talk Tour 2012 que já nos rendeu ótimos contatos e muitos frutos, inclusive para o blog, com o nosso post de reconhecimento facial e aproveitando o gancho, o artigo sobre falsas impressões do multitasking do IOS vale a pena ser lido também. Quer saber mais sobre o Tech Talk? A Apple disponibilizou alguns vídeos sobre tudo o que rolou na Tour.

Outra ótima referência, quando a dúvida é entre a escolha ente bancos dados relacional ou não relacional, é este artigo do Matin Fowler

Web Development

Nem só de mobile viverá o homem. Como resultado das nossas pesquisas em HTML5 e CSS3 encontramos essa demonstração de como simular o 3D, que nos deixou de queixos caídos. E a implementação do menu do Path em CSS também demonstra que os web mobile apps tem um futuro promissor pela frente (se você ainda não conhece o Path, vale a pena conferir, baixe aqui).

permalink
, , , , , , , , , , , , , , , , , , ,