A Mobits acaba de lançar mais um aplicativo na App Store!

O Mobits Cam requer o iOS 4 e pode ser baixado aqui por apenas $0.99.

Mobits Cam

Ele é um app de fotografia, que permite a escolhe de diversos efeitos para incrementar as suas fotos tiradas do iPhone! A diferença dele para outros apps de fotografia é que os efeitos são aplicados em tempo real antes da foto ser tirada, bem como os efeitos do iChat no Mac!

Efeitos     Opções

Além de tirar fotos, o app conta com outras opções como a configuração para tirar foto depois de um tempo determinado e o famoso "Big Button" que permite que uma foto seja tirada ao apertar em qualquer ponto da tela, facilitando a árdua tarefa de tirar fotos de si mesmo. O app também acessa a câmera frontal do iPhone 4.

Efeito Borders     Efeito X-Ray

Comece agora a se divertir com a mais nova câmera do iPhone e não esqueça de nos dar feedbacks de como incrementá-la ainda mais.

1 ano de Mobits Button Soccer na App Store

Escrito por Hildi em 16/08/10 19:22

Mobits Button Soccer(MBS) completa 1 ano de vida e quem ganha é você!

Há um ano atrás, resolvemos levar para o iPhone/iPod Touch um jogo que fez parte da infância de muitos brasileiros: o futebol de botão. Logo de cara, o jogo foi um sucesso! Em sua primeira semana de lançamento, o MBS alcançou o segundo lugar na App Store brasileira. Este feito ocorreu novamente, quando lançamos a versão com suporte a bluetooth.

MBS em segundo lugar na App Store

De lá pra cá, o jogo evoluiu bastante, principalmente devido aos feedbacks de nossos usuários. Graças a eles foi possível realizar correções de bugs e trazer novas funcionalidades como a inteligência artificial. Não é a toa que a versão 2.0 do MBS foi tão bem avaliada pelos usuários (4,5 estrelas).

Hoje, ele conta com diferentes modalidades de jogo: treinamento, amistoso (wi-fi ou bluetooth), liga e torneio, além de contar com 32 seleções mundiais. Como próximo passo, estamos trabalhando na adaptação do jogo para o iPad. Aguardem!

MBS no iPad

Promoção de aniversário

Como todo esse sucesso é graças a vocês, até amanhã, o Mobits Button Soccer estará custando a metade do preço! Ou seja, apenas US$0.99! Aproveitem!

Enviando SMS de dentro de um aplicativo iPhone

Escrito por Quintana em 15/08/10 16:20

O envio do chamado In-App SMS é uma das novidades do iOS4. Ela pode ser muito útil em aplicativos como o Cine Mobits, onde um usuário poderá enviar convites via SMS a seus amigos para assistir um determinado filme. Contudo, como podemos implementar uma funcionalidade útil como essa do iOS 4 sem perder a compatibilidade com os sistemas operacionais anteriores e nem com os dispositivos, como o iPod Touch que não tem SMS?

Simples! O primeiro passo é baixar o Xcode do iOS 4. Com ele você vai reparar que não é mais possível compilar aplicações para o iOS 3, apenas para o 4.0 ou para o 3.2 (iPad). Para que dispositivos com sistemas operacionais anteriores possam rodar um aplicativo compilado em 4.0 é preciso primeiro alterar o Deployment target do seu projeto para a mínima versão que você quer que o app execute.

Xcode

Ao fazer isso, a Apple recomenda que você verifique se as funções que irá utilizar (especialmente as novas APIs) estão presentes no dispositivo. Para fazer isso no nosso exemplo do SMS, é só fazer o seguinte código:

Class messageClass = (NSClassFromString(@"MFMessageComposeViewController"));

// Verifica se a classe existe no sistema operacional
if (messageClass != nil) {      

    // Checa se o dispositivo pode enviar SMS
    if ([messageClass canSendText]) {
        [self displaySMSComposerSheet];
    }
    else {  
        feedbackMsg.hidden = NO;
        feedbackMsg.text = @"Esse dispositivo não pode enviar SMS.";

    }
}
else {
    feedbackMsg.hidden = NO;
    feedbackMsg.text = @"Esse dispositivo não pode enviar SMS.";
}

Reparem que para evitar um erro de execução em sistemas operacionais a classe MFMailComposeViewController não foi chamada diretamente. Depois disso, também precisamos verificar o caso do dispositivo possuir ou não suporte a SMS.

Para enfim enviar o SMS, temos que usar o MFMessageComposeViewController, que é a tela onde escrevemos o SMS que nem no app original do iPhone, ou seja, a Apple não permite que o aplicativo envie um SMS sem a confirmação do usuário. A única vantagem é que não precisamos mais sair do app e podemos colocar uma mensagem e vários números de telefone na tela:

-(void)displaySMSComposerSheet 
{
    MFMessageComposeViewController *picker = [[MFMessageComposeViewController alloc] init];
    picker.messageComposeDelegate = self;

    picker.body = @"Teste de SMS do iPhone";
    picker.recipients = [NSArray arrayWithObjects:@"12345678", @"87654321", nil];
    picker.messageComposeDelegate = self;

    [self presentModalViewController:picker animated:YES];
    [picker release];
}

Essa é a imagem da tela de envio de SMS:

In App SMS

Em breve vamos implementar essa funcionalidade no Cine Mobits, bem como nas versões Java e Android onde ela já existe. Até a próxima!

Leia também:

I Prêmio Mobilefest para aplicativos para celular

Escrito por Felipe Barreto em 10/08/10 15:52

Com o patrocínio da Claro, estão abertas a inscrições para o I Prêmio Mobilefest de Aplicativos para Celular, cujos vencedores serão divulgados durante o Mobilefest que ocorrerá em São Paulo de 14 a 26 de setembro, no Museu da Imagem e do Som (MIS).

Prêmio Mobilefest

O objetivo deste prêmio é dar maior visibilidade e incentivar o desenvolvimento de jogos e aplicativos em todo o país. Os melhores trabalhos receberão menções honrosas e “terão a oportunidade de exibir seus aplicativos na Mostra Expositiva Internacional do Festival, um contrato de seis meses com a operadora Claro e o 1 (um) grande vencedor ganhará como prêmio uma viagem à Ontário, no Canadá, para participar do programa Mobilefest - Mobile ICT/Digital Media R&D Exchange (Brasil Canadá)”.

Para quem quiser enviar seus trabalhos, as inscrições vão de 1 a 30 de Agosto pelo site http://www.premiomobilefest.com.br e estão disponíveis as seguintes categorias:

  1. cultura, arte, entretenimento e redes sociais;
  2. meio ambiente, ecologia e sustentabilidade;
  3. educação, saúde e esportes;
  4. terceiro setor, democracia, cidadania, paz e serviços públicos.

As inscrições são gratuitas e podem ser realizadas tanto por Pessoas Físicas e Jurídicas.

Importante: segundo o site, “Os critérios de seleção serão o grau de profissionalismo do aplicativo, originalidade, nível de desenvolvimento e usabilidade. O projeto deve estar em estágio avançado, pois será visualizado pelo júri em um vídeo de até cinco minutos, rodando em um celular, compreensão pela cultura e condições dos usuários finais, além de solução para um problema claramente definido, com foco nas áreas temáticas propostas.”

A Mobits já está preparando-se para inscrever o Cine Mobits e o Mobits Button Soccer e convida a todos os amigos desenvolvedores a fazer o mesmo com seus aplicativos.

Nos vemos lá!

Leia também:

Usando XML em seus projetos iPhone

Escrito por Karin em 28/07/10 20:43

Oi pessoal. Aqui na Mobits a gente trabalha bastante com parser de dados. As duas formas mais comuns são: XML e JSON. Hoje eu vou falar um pouco como usar XML em projetos iPhone. Em um post futuro, será sobre JSON.

Primeiros passos

Nos nossos projetos, utilizamos partes da Google Data APIs Objective-C Client Library que fornece diversas ferramentas de desenvolvimento para Mac e iPhone.

Para começar a trabalhar com XML em seu projeto, baixe o projeto completo do Google ou, para simplificar, somente o arquivo XML.zip onde selecionamos apenas os recursos necessários para este exemplo. Depois, siga os seguintes passos:

  1. Crie uma pasta XML na raiz do seu projeto e copie GDataDefines.h e a pasta XMLSupport para a pasta;

  2. No Xcode, adicione a pasta criada ao seu projeto;

  3. Adicione também libxml2.dylib à lista de Frameworks;

  4. Em Get Info do seu projeto, na aba Build, para todas as configurações, adicione em Header Search Paths:
    /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.0.sdk/usr/include/libxml2 (Observe a versão do iOS no caminho acima. Pode ser necessário mudar de acordo com a versão utilizada pelo projeto.);

  5. Pronto. Agora você poderá usar o framework para fazer parser de XML.

Implementação

Agora que já temos o framework configurado em seu projeto, vamos usá-lo para fazer parser de um XML. Abaixo, um exemplo de XML:

<?xml version="1.0" encoding="utf-8"?>
<projetos>
    <projeto>
        <nome>Cine Mobits</nome>
        <descricao>Veja os horários do cinema direto do seu celular! Disponível para a maioria dos celulares com suporte a Java, iPhone/iPod Touch e também celulares com Android.</descricao>
    </projeto>
    <projeto>
        <nome>Mobits Button Soccer</nome>
        <descricao>O clássico futebol de botão, jogo presente na infância de muitas pessoas, agora em versão para iPhone/iPod Touch.</descricao>
    </projeto>
    <projeto>
        <nome>FaxGuru</nome>
        <descricao>Envie fax direto do seu iPhone! O FaxGuru permite que você tire fotos de documentos e envie-os via fax para mais de 250 países, além de ser simples, fácil de usar e totalmente em português.</descricao>
    </projeto>
</projetos>

A seguir, o código de parse:

#import "GDataDefines.h"
#import "Projeto.h"

@implementation ProjetosParser

+ (NSArray *)parse:(NSString *)xml {
    NSError *error = nil;

    NSXMLDocument *document = [[NSXMLDocument alloc] initWithXMLString:xml options:0 error:&error];
    NSXMLElement rootElement = [document rootElement];

    NSArray *projetosDoXML = [rootElement nodesForXPath:@"//projeto" error:&error];

    NSMutableArray *projetos = [NSMutableArray arrayWithCapacity:[projetosDoXML count]];

    for (NSXMLElement *projetoDoXML in projetosDoXML) {
        Projeto *projeto = [[Projeto alloc] init];
        projeto.nome = [[[projetoDoXML nodesForXPath:@"./nome/text()" error:nil] lastObject] stringValue];
        projeto.descricao = [[[projetoDoXML nodesForXPath:@"./descricao/text()" error:nil] lastObject] stringValue];

        [projetos addObject:projeto];
        [projeto release];
    }

    [document release];

    return projetos;
}

@end

A primeira coisa a ser feita é importar "GDataDefines.h". Se preferir, pode fazer a importação no pch e o parser ficará acessível para todas as classes do projeto.

Para começar a fazer o parse a partir de uma string XML, é preciso transformá-la em NSXMLDocument. Assim, conseguimos obter o elemento raiz do nosso XML. A partir daí, é só fazer as consultas XPath para obter as informações desejadas. No nosso exemplo, o método retorna um array de projetos.

Dica

Caso você se depare com um XML onde a raiz tem namespaces, a consulta XPath será da seguinte forma:

<projetos xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://tempuri.org/">

projeto.nome = [[[projetoDoXML nodesForXPath:@"./*[local-name()=nome]/text()" error:nil] lastObject] stringValue];

Espero que este post seja útil! Como disse, o meu próximo assunto será sobre JSON. Aguardem!