Artigos da contendo a tag ‘ipad’

I.ndigo Blog.

Ux

Uma Semana, um App e um Estudo de Caso

30janeiro

Um aplicativo muito interessante que foi criado dentro de uma loja, consiste em comparar modelos de óculos através da interação com o aplicativo de iPad.
O lado deslumbrante é como foi produzido de uma forma nunca visto antes.

A equipe de Nordstrom Innovation conseguiu introduzir os processos de design centrado no usuário tendo feedback instantâneo das funcionalidades principais. O aplicativo torna-se fácil, rápido e vai direto ao ponto.
Confira como foi tudo isso foi implementado no vídeo.

Criação e produção de Nordstrom Innovation.

permalink
, , , , , , , , , , , ,
English

Mobile Year in Review

20janeiro

2011 was a really intense year here at I.ndigo. More rewarding than launching 29 apps, was being able to witness the Brazilian market maturation and successfully accomplish worldwide recognized cases.

We would like to thank all partners, agencies, clients, employees and our families for believing in our potential and helping us build this result that we are pleased to share with you.

Bring on 2012!

permalink
, , , , , , , , , , ,
App Forward, Apps, Go Tech, Keep Watching, Mobile Trends & Mobile Business

Mobile Year in Review

20janeiro

Infografico I.ndigo 2011

O ano de 2011 foi realmente intenso aqui na I.ndigo. Mais gratificante do que o lançamento dos 29 apps, foi poder testemunhar o amadurecimento do mercado brasileiro e emplacar cases reconhecidos no mundo inteiro.

Agradecemos a todos os parceiros, agências, clientes, colaboradores e às nossas famílias por confiarem em nosso potencial e nos ajudarem a construir o resultado que temos o prazer de compartilhar com vocês.

Que venha 2012!

permalink
, , , , , , , , , , ,
English

iOS Facial Recognition

19janeiro

iOS Facial Recognition Test

Core Image was one of the many interesting topics discussed at iOS Tech Talk Tour that took place in São Paulo on january 9th. It is a framework that was already available at the MacOS and now can also be used by iOS developers.

It is important to notice that this framework is available only after iOS 5.0, resulting in a use limited to the application requirements. However, according to CNET the percentage of devices using iOS 5 in November, 2011 was already 40%, showing that apps developed to this version will shortly be available to the majority of users

Facial recognition is, by far, the most interesting of Core Image’s features, which will be detailed in this article. This new technique allow developers to think about new apps using this concept with a very low implementation cost.

We will show you how to implement the facial recognition straight from the device’s camera data stream. The source code is based on Apple’s SquareCam example project.


Camera Configuration

The first step is to configure the camera using the AVFoundation Framework, available since iOS 4 release in a way we can directly read the device stream.

This configuration is made in order to use the following objects:

  • AVCaptureSession – This object represents a session that coordinates the data flow from AV input devices to the output. In order to accomplish that, We add the input and output devices to this session object and start data flow using the startRunning messages (and stop it by using stopRunning).

  • AVCaptureDevice – It is a physical device abstraction which provides an input for a AVCapureSession object. There is an object available for every input device type, for instance: there is one video input for iPhone 3G, but there are two of them for iPhone 4.

  • AVCaptureDeviceInput – It is an AVCaptureInput subclass used to add and input device into a session (AVCaptureSession).

  • AVCaptureOutput – It is an abstract class used to find a session output (AVCaptureSession).
The image below, from Apple’s AV Foundation Programming Guide shows the interaction between the instances and their data flow:

The folowing chunk of code was taken from SquareCam project. It shows how to configure the camera:

- (void)setupAVCapture
{
    AVCaptureSession *session = [AVCaptureSession new];
    if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone)
        [session setSessionPreset:AVCaptureSessionPreset640x480];
    else
        [session setSessionPreset:AVCaptureSessionPresetPhoto];
 
    // Select a video device, make an input
    AVCaptureDevice *device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
    AVCaptureDeviceInput *deviceInput = [AVCaptureDeviceInput deviceInputWithDevice:device error:nil];
 
    if ( [session canAddInput:deviceInput] )
        [session addInput:deviceInput];
 
    // Make a video data output
    videoDataOutput = [[AVCaptureVideoDataOutput alloc] init];
 
    // we want BGRA, both CoreGraphics and OpenGL work well with 'BGRA'
    NSDictionary *rgbOutputSettings = [NSDictionary dictionaryWithObject:
    [NSNumber numberWithInt:kCMPixelFormat_32BGRA] forKey:(id)kCVPixelBufferPixelFormatTypeKey];
    [videoDataOutput setVideoSettings:rgbOutputSettings];
    [videoDataOutput setAlwaysDiscardsLateVideoFrames:YES]; // discard if the data output queue is blocked (as we process the still image)
 
    videoDataOutputQueue = dispatch_queue_create("VideoDataOutputQueue", NULL);
    [videoDataOutput setSampleBufferDelegate:self queue:videoDataOutputQueue];
 
    if ( [session canAddOutput:videoDataOutput] )
        [session addOutput:videoDataOutput];
 
    previewLayer = [[AVCaptureVideoPreviewLayer alloc] initWithSession:session];
    [previewLayer setBackgroundColor:[[UIColor blackColor] CGColor]];
    [previewLayer setVideoGravity:AVLayerVideoGravityResizeAspect];
    CALayer *rootLayer = [previewView layer];
    [rootLayer setMasksToBounds:YES];
    [previewLayer setFrame:[rootLayer bounds]];
    [rootLayer addSublayer:previewLayer];
    [session startRunning];
 
}

Identifying a face with a CIDetector

According to CIDetector’s Class Reference the CIDetector object (available since iOS 5 inside CoreImage.framework) uses image processing to find “features” inside an image.

So, the next step is to identify the face in our video data stream is to configure a CIDetector. We can create an instance of the object by instantiating:

NSDictionary *detectorOptions = [[NSDictionary alloc] initWithObjectsAndKeys:CIDetectorAccuracyLow, CIDetectorAccuracy, nil];
 
faceDetector = [[CIDetector detectorOfType:CIDetectorTypeFace context:nil options:detectorOptions] retain];

When we previously initialized the camera, we configured our controller to act as a the video output stream’s delegate (videoDataOutput) at the line:

[videoDataOutput setSampleBufferDelegate:self queue:videoDataOutputQueue];

We can now implement the following method to read the video data stream:

- (void)captureOutput:(AVCaptureOutput *)captureOutput didOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer fromConnection:(AVCaptureConnection *)connection
{}

Finally, with a CIDetector’s instance and the video data stream, We can identify our face.

// got an image
CVPixelBufferRef pixelBuffer = CMSampleBufferGetImageBuffer(sampleBuffer);
CFDictionaryRef attachments = CMCopyDictionaryOfAttachments(kCFAllocatorDefault, sampleBuffer, kCMAttachmentMode_ShouldPropagate);
CIImage *ciImage = [[CIImage alloc] initWithCVPixelBuffer:pixelBuffer options:(NSDictionary *)attachments];
if (attachments)
    CFRelease(attachments);
NSDictionary *imageOptions = nil;
 
// '6' identifies device on vertical position
imageOptions = [NSDictionary dictionaryWithObject:[NSNumber numberWithInt:6] forKey:CIDetectorImageOrientation];
NSArray *features = [faceDetector featuresInImage:ciImage options:imageOptions];
[ciImage release];

The array features have each element as an instance of a CIFaceFeature, which identify a new face found in the video and allow us to retrieve several information from it.


Image’s CIFaceFeature

A CIFaceFeature object properties describes the face found in a image. These properties are:

hasLeftEyePosition
hasRightEyePosition
hasMouthPosition
leftEyePosition
rightEyePosition
mouthPosition

Besides that, due to its CIFeature inheritance, it also has the following properties:

bounds – The rectangle that the feature was found inside
type – The feature type

By using this information several actions can be taken, such as adding new visual elements on top of the face which was found in the image.


CIDetectorAccuracyLow Vs CIDetectorAccuracyHigh

When we created our CIDetector, we provided the CIDetectorAccuracyLow parameter:

NSDictionary *detectorOptions = [[NSDictionary alloc] initWithObjectsAndKeys:CIDetectorAccuracyLow, CIDetectorAccuracy, nil];

The reason we did that is because we are trying to read from a video stream, and using this option results in a faster analysis for each video frame, however, with a higher chance of not detecting any face at all.

In general, the CIDetectorAccuracyHigh option is used to analyse a single picture, resulting in a slower processing time, but with a higher face detection rate.

As you can notice, iOS 5 made it extremely easy to integrate facial recognition, which allows us to think again in several features that would be impracticable to implement in a project before. That said, we still have to be aware of the project requirements, since not all the users updates their operating system to the latest iOS version.

This post is also available in portuguese here.

permalink
, , , , , ,
Go Tech

Reconhecimento de Faces no iOS

19janeiro

iOS Facial Recognition Test

Um dos interessantes tópicos abordados no evento iOS 5 Tech Talk Tour, que aconteceu em São Paulo no último dia 9 de janeiro, se refere ao Core Image, um framework que já era disponível no MacOS e agora pode ser usado pelos desenvolvedores de aplicativos para o iOS.

É importante ressaltar que este framework está disponível apenas a partir do iOS 5.0, o que torna o seu uso ainda limitado aos requisitos do aplicativo. Porém, de acordo com artigo do site CNET em novembro de 2011 a porcentagem de devices utilizando o iOS 5 já era de 40%, o que mostra que em pouco tempo os aplicativos lançados para essa versão já poderão ser baixados pela maior parte dos usuários.

Com certeza uma das características mais interessantes do Core Image para o iPhone é sua capacidade de reconhecimento de face, que vamos abordar neste artigo. Esta nova técnica faz com que possamos pensar em diversas aplicações utilizando este conceito, com baixo custo de implementação.

Vamos mostrar como fazer o reconhecimento de faces lendo diretamente do stream da câmera do iPhone. O código-fonte mostrado baseia-se no projeto SquareCam disponibilizado pela Apple como exemplo de uso de Reconhecimento de Faces, presente aqui.


Configuração da Camera

Primeiramente, iremos configurar a câmera utilizando o framework AVFoundation, disponível a partir do iOS 4, de modo que possamos ler diretamente o stream do dispositivo.

A configuração é feita para que tenhamos as seguintes instâncias:

  • AVCaptureSession – Este objeto representa uma sessão que coordena o fluxo de dados dos dispositivos de entrada AV para as saídas. Para isso, adicionamos os dispositivos de captura e saídas para esta sessão e iniciamos o fluxo de dados enviando uma mensagem startRunning e paramos com uma mensagem stopRunning.

  • AVCaptureDevice – É uma abstração de um dispositivo físico de captura que fornece uma entrada para um objeto AVCaptureSession. Há um objeto disponível para cada tipo de dispositivo de entrada. Por exemplo: no iPhone 3GS há uma entrada de vídeo, enquanto que no iPhone 4 há duas entradas.

  • AVCaptureDeviceInput – É uma subclasse de AVCaptureInput usada para adicionar um dispositivo de entrada em uma sessão (AVCaptureSession).

  • AVCaptureOutput – É uma classe abstrata usada para buscar uma saída da sessão (AVCaptureSession).
A imagem abaixo, retirada do AV Foundation Programming Guide da Apple mostra a interação entre estas instâncias e o fluxo de dados entre elas:

Vamos ver, em termos de código, como configurar a câmera. Utilizaremos o seguinte código, que foi reduzido do projeto SquareCam, para melhor visualização:

- (void)setupAVCapture
{
    AVCaptureSession *session = [AVCaptureSession new];
    if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone)
        [session setSessionPreset:AVCaptureSessionPreset640x480];
    else
        [session setSessionPreset:AVCaptureSessionPresetPhoto];
 
    // Select a video device, make an input
    AVCaptureDevice *device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
    AVCaptureDeviceInput *deviceInput = [AVCaptureDeviceInput deviceInputWithDevice:device error:nil];
 
    if ( [session canAddInput:deviceInput] )
        [session addInput:deviceInput];
 
    // Make a video data output
    videoDataOutput = [[AVCaptureVideoDataOutput alloc] init];
 
    // we want BGRA, both CoreGraphics and OpenGL work well with 'BGRA'
    NSDictionary *rgbOutputSettings = [NSDictionary dictionaryWithObject:
    [NSNumber numberWithInt:kCMPixelFormat_32BGRA] forKey:(id)kCVPixelBufferPixelFormatTypeKey];
    [videoDataOutput setVideoSettings:rgbOutputSettings];
    [videoDataOutput setAlwaysDiscardsLateVideoFrames:YES]; // discard if the data output queue is blocked (as we process the still image)
 
    videoDataOutputQueue = dispatch_queue_create("VideoDataOutputQueue", NULL);
    [videoDataOutput setSampleBufferDelegate:self queue:videoDataOutputQueue];
 
    if ( [session canAddOutput:videoDataOutput] )
        [session addOutput:videoDataOutput];
 
    previewLayer = [[AVCaptureVideoPreviewLayer alloc] initWithSession:session];
    [previewLayer setBackgroundColor:[[UIColor blackColor] CGColor]];
    [previewLayer setVideoGravity:AVLayerVideoGravityResizeAspect];
    CALayer *rootLayer = [previewView layer];
    [rootLayer setMasksToBounds:YES];
    [previewLayer setFrame:[rootLayer bounds]];
    [rootLayer addSublayer:previewLayer];
    [session startRunning];
 
}

Identificando um Rosto com um CIDetector

De acordo com o CIDetector Class Reference da Apple, um objeto CIDetector, disponível a partir do iOS 5 no framework CoreImage.framework, usa processamento de imagem para encontrar “features” em uma imagem.

Assim, o próximo passo para identificar o rosto no nosso stream de vídeo é configurar um CIDetector. Após adicionamos este framework no projeto, criamos uma instância dele para utilizarmos da seguinte forma:

NSDictionary *detectorOptions = [[NSDictionary alloc] initWithObjectsAndKeys:CIDetectorAccuracyLow, CIDetectorAccuracy, nil];
 
faceDetector = [[CIDetector detectorOfType:CIDetectorTypeFace context:nil options:detectorOptions] retain];

Em nossa inicialização da câmera feita anteriormente configuramos nosso controller para atuar como delegate do stream de vídeo (videoDataOutput) com a seguinte linha:

[videoDataOutput setSampleBufferDelegate:self queue:videoDataOutputQueue];

Desta forma, podemos implementar o seguinte método para ler o stream do vídeo:

- (void)captureOutput:(AVCaptureOutput *)captureOutput didOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer fromConnection:(AVCaptureConnection *)connection
{}

Por fim, com uma instância de um CIDetector e um método que lê o stream da câmera, podemos identificar um rosto utilizando o seguinte:

// got an image
CVPixelBufferRef pixelBuffer = CMSampleBufferGetImageBuffer(sampleBuffer);
CFDictionaryRef attachments = CMCopyDictionaryOfAttachments(kCFAllocatorDefault, sampleBuffer, kCMAttachmentMode_ShouldPropagate);
CIImage *ciImage = [[CIImage alloc] initWithCVPixelBuffer:pixelBuffer options:(NSDictionary *)attachments];
if (attachments)
    CFRelease(attachments);
NSDictionary *imageOptions = nil;
 
// '6' identifies device on vertical position
imageOptions = [NSDictionary dictionaryWithObject:[NSNumber numberWithInt:6] forKey:CIDetectorImageOrientation];
NSArray *features = [faceDetector featuresInImage:ciImage options:imageOptions];
[ciImage release];

No código acima, temos o array features onde cada elemento é uma instância de um CIFaceFeature, que identifica uma face encontrada no vídeo e permite encontrar diversas informações sobre ela.


CIFaceFeature de uma Imagem

Um objeto CIFaceFeature descreve uma face encontrada em uma imagem. Suas propriedades informam as posições dos olhos e da boca da face. Estas propriedades são as seguintes:

hasLeftEyePosition – Informa se a posição do olho esquerdo esta disponível
hasRightEyePosition – Informa se a posição do olho direito esta disponível
hasMouthPosition – Informa se a posição da boca esta disponível
leftEyePosition – Informa a posição do olho esquerdo
rightEyePosition – Informa a posição do olho direito
mouthPosition – Informa a posição da boca

Além disso, por herdar de um CIFeature, também possui as seguintes propriedades:

bounds – Um retângulo que contém a feature encontrada
type – O tipo de feature encontrado

A partir destas informações diversas ações podem ser tomadas, como inserir elementos visuais sobre a face encontrada.


Modo CIDetectorAccuracyLow Vs CIDetectorAccuracyHigh

Quando criamos nosso CIDetector, um parâmetro de configuração utilizado foi CIDetectorAccuracyLow, como pode ser visto a seguir:

NSDictionary *detectorOptions = [[NSDictionary alloc] initWithObjectsAndKeys:CIDetectorAccuracyLow, CIDetectorAccuracy, nil];

O motivo desse uso foi pelo fato de estarmos fazendo a detecção diretamente do stream de vídeo e, por isso, utilizar esta opção faz com a análise de cada frame seja mais rápida, porém tendo uma chance maior de não detectar uma face.

De modo geral, a opção CIDetectorAccuracyHigh é utilizada somente quando vamos analisar uma única imagem, o que permite que possamos ter um processamento um pouco mais lento, encontrando com mais facilidade as faces.

Como podemos ver, a partir do iOS 5 ficou bem mais fácil utilizar detecção de faces em aplicativos, o que nos permite pensar em diversas soluções que anteriormente poderiam ser consideradas inviáveis para um projeto. Porém, como dito, devemos ainda nos alertar quanto aos requisitos do projeto, uma vez que nem todos os usuários já possuem esta versão de iOS.

Este post também está disponível em inglês aqui.

permalink
, , , , , ,
Go Tech, Mobile Trends & Mobile Business

iOS 5 Tech Talk World Tour – Brazil 2012

10janeiro

iOS 5 Tech Tour World Tour Brazil 2012

Aconteceu ontem em São Paulo o grande evento oficial da Apple que reuniu desenvolvedores de todo o país e, claro que a I.ndigo esteve presente.
O “iOS 5 Tech Talk World Tour” contou com palestras e consultorias de funcionários da Apple que compartilharam suas experiências com a comunidade de desenvolvedores, principalmente sobre as últimas novidades do iOS 5, o sistema operacional lançado há alguns meses pela empresa.
Confira a seguir um pouco das nossas percepções sobre o evento:
Lab
Sem sombra de dúvidas, o Lab foi para nós o ponto alto do evento. Tivemos o privilégio de interagir com a equipe de especialistas da Apple, que analisaram sob a ótica de desempenho, usabilidade, estética e experiência do usuário os últimos aplicativos lançados pela I.ndigo, como o Hy.vee, Minnesota Wild, Pilão Desperta e o da universidade de Stanford.
Foi muito gratificante receber, do diretor da Apple responsável pelo evento, John Geleynse, feedbacks e elogios sobre a identidade visual e experiência do usuário do iCardinal, além dos elogios e dicas sobre o desempenho dos nossos aplicativos como o Hy.vee e o Royal Wedding.
Descobrimos também, conversando com o responsável pelo time de aprovação de aplicativos na App Store, detalhes importantes sobre o processo de revisão dos aplicativos o que nos dá ainda mais tranquilidade e liberdade de criação de novos modelos e arquiteturas, o que tende a deixar os nossos projetos mais flexíveis e até mais baratos.
Palestras
Foram realizadas 18 palestras ao longo do dia, nos quais foram tratados assuntos específicos sobre os novos recursos da última versão do sistema operacional da Apple o iOS 5. Novidades que vão desde a criação de interfaces gráficas, melhorias nos serviços de localização até o grande serviço disponibilizado recentemente pela Apple: o iCloud.
Seguindo a mesma linha do WWDC, os profissionais da Apple expuseram a tecnologia de forma bastante didática, com o objetivo de ampliar a visão dos desenvolvedores para o máximo aproveitamento do iOS 5, sem entrar muito nos detalhes de implementação e API.
Só nos resta agradecer e parabenizar a Apple pelo modelo do evento e sua infraestrutura, não temos do que reclamar de um evento (gratuito) que nos aproximou de especialistas estratégicos da Apple e que marca o começo de um relacionamento mais estreito com as empresas brasileiras.
Não perca nossos próximos posts que vão tratar alguns dos assuntos abordados nas palestras.
permalink
, , , , , , , , , , ,
Apps

The Royal Wedding Rebound

18abril

Na semana passada completamos 15 dias do lançamento dos aplicativos iPhone e iPad que fizemos para a NBC – o The Royal Wedding by NBC News.

O fato do aplicativo ter sido lançado durante os programas de maior audiência da televisão norte-americana, nos rendeu uma repercursão que não acreditávamos ser possível em tão pouco tempo, em pouquíssimas horas nosso app já figurava entre os vinte mais baixados da App Store Americana, chegando ao segundo lugar entre os aplicativos da categoria lifestyle.

Os dias que sucederam o lançamento foram de mais surpresas ainda, figuramos entre os aplicativos recomendados pela Apple nas seções “What’s Hot” e “New and Noteworthy” ao lado do Justin Bieber e da Oprah (rs). Outro fato curioso foi a criação de uma área inteira de destaque na App Store para aplicativos voltados à cobertura do casamento real.

Nosso app em destaque entro o Justin Bieber e a Oprah

Nosso app em destaque no New and Noteworthy

Área de destaque criada pela Apple para Apps do Royal Wedding

Área de destaque criada pela Apple para Apps do Royal Wedding

A notícia do aplicativo também repercurtiu em alguns sites que gostamos muito como o appolicious e o mobilepedia, no youtube a NBC publicou um vídeo com o Vice-Presidente deles contando detalhes do desafio de lançar um aplicativo tão completo, em tão pouco tempo.

O aprendizado com o projeto foi grande também para o nosso time, por exemplo em mobile-advertising, tivemos a oportunidade de lidar de perto com o iAd aproveitando todo o buzz criado pela NBC e compará-lo com a busca de patrocínios independentes. Tem sido interessante também analisar o padrão de comportamento e o país de origem dos usuários que baixaram o aplicativo.

Estamos agora ansiosos para acompanhar a evolução de usuários com a proximidade do casamento, e fiquem de olho para acompanhar as próximas novidades que vamos lançar até lá.

permalink
, , , , , , , ,
Go Tech

Permitindo Untrusted Certificates com UIWebView

11abril

Recentemente caímos em uma situação em que necessitávamos testar uma aplicação iPhone (SDK 4.0) tentando acessar uma aplicação web via UIWebView. Porém, havia um problema: todas as páginas do servidor eram fornecidas por conexão HTTPS, mas o certificado não era válido.

Uma forma de resolver este problema foi usando o método estático setAllowsAnyHTTPSCertificate:forHost: da classe NSURLRequest, que faz parte da API privada da Apple. Este método permite que você especifique quais host podem ter seu certificado HTTPS aceito pela aplicação.

Usando o método acima há grandes chances de ter seu app rejeitado, mas em uma situação de teste a alternativa funciona muito bem.

Você deve usar este método antes de fazer o request do UIWebView, como o seguinte:

NSURL *url = [[NSURL alloc] initWithString:@”https://www.something.com”];
[NSURLRequest setAllowsAnyHTTPSCertificate:YES forHost:[url host]];
[webView loadRequest:url];

Isto seria suficiente, mas você verá que seu código mostrará uma mensagem de warning dizendo “‘NSURLRequest’ may not respond to ‘+setAllowsAnyHTTPSCertificate:forHost:’”. Se você quer resolver isso, adicione o seguinte ao final do arquivo .h que corresponde ao .m que você está trabalhando:

@interface NSURLRequest (Certificates)
+ (void)setAllowsAnyHTTPSCertificate:(BOOL)allow forHost:(NSString*)host;
@end

Este código sobrecarrega a interface do método da classe NSURLRequest, mas não iremos reimplementá-lo, então a implementação existente na API privada pode ser usada.

Como pode ser visto, embora o uso da API privada da Apple não seja permitido, ele pode ser bastante útil em algumas situações.

Espero que este post tenha ajudado. Obrigado!

permalink
, , , ,
Mobile Trends & Mobile Business

O sucesso do iPad no Brasil mesmo antes de sua chegada

21outubro

iPadPouco meses após o lançamento nos Estados Unidos, o iPad já começou a gerar interesse das empresas brasileiras em explorar os recursos desta maravilha tecnológica. Sua chegada ainda não foi oficializada no Brasil, mas há rumores que o iPad invada o mercado brasileiro até o final deste ano.

A aposta é grande de que quando isto ocorrer, uma reviravolta no mercado nacional aconteça, criando uma chuva de possibilidades tanto para o segmento corporativo quanto para o mercado consumidor.

A busca de soluções móveis mundialmente torna-se cada vez mais evidente, pois fabricantes de hardware não pretendem ficar atrás e já estão prometendo lançar versões de tablets para concorrer com o iPad.

Obviamente, ainda há bastante espaço e tecnologia a ser explorada, mas certamente estes equipamentos surgirão para bagunçar o mercado, no sentido positivo, é claro. Um dos impactos que se enxerga com o surgimento desses gadgets é o mercado editorial. Leitores eletrônicos (e-readers) e tablets prometem revigorar o mercado abrindo novas fronteiras e possibilidades de negócio.

No Brasil por exemplo, revistas como Época, Veja, Estadão já mesmo antes da sua vinda oficial possuem uma versão iPad para seu público. Livros digitais interativos para o público jovem também já podem ser encontrados na Apple Store brasileira.

Para as empresas, é um prato cheio para criação de um novo canal junto ao seu público. Soluções como jogos, utilitários para organização pessoal, serviços baseados em localização, realidade aumentada são alguns exemplos de aplicativos para focados este segmento. Para o mercado corporativo há uma série de possibilidades, soluções de automação de vendas, relacionamentos,  m-commerce, inteligência de mercado, entre outros.

Agora, resta saber qual vai ser a linha que as empresas irão seguir. Os fabricantes de hardware terão condições de replicar a febre Apple que tem acontecido nos últimos tempos? Ou o iPad já aniquilou seus concorrentes mesmo antes deles terem nascido?

Será que as empresas e marcas terão várias versões de seus aplicativos, cada um em um sistema operacional diferente? O mercado móvel está crescendo, e rápido. Esta é unica certeza que temos hoje e não há indicios de que o “vento passe a soprar para o outro lado”.

permalink
, , , ,
Mobile Trends & Mobile Business

Pesquisa de Desenvolvimento de Aplicações Móveis

30junho

Appcelerator (http://www.appcelerator.com/) empresa responsável pelo desenvolvimento da plataforma Appcelerator Titanium (discutido neste post) realizou uma pesquisa com 2700 desenvolvedores de aplicações para dispositivos móveis.  Esta pesquisa engloba detalhes e percepções de plataformas como iOS (Apple), Android (Google), webOS (Palm/HP), Windows Phone 7 (Microsoft), Symbian (Nokia) e Blackberry (RIM).

Informações interessantes como aumento da motivação em desenvolver aplicações na plataforma Apple tem aumentado desde o lançamento do iPad.

A pesquisa pode ser encontrada na íntegra no site da Appcelerator ou baixada aqui.

Fonte: Mobile Developer Survey, June 2010

permalink
, , ,