<?xml version="1.0" encoding="UTF-8"?>
<feed xml:lang="en-US" xmlns="http://www.w3.org/2005/Atom">
  <title>Mobits - Blog</title>
  <id>tag:mobits.com.br,2012:mephisto/blog</id>
  <generator version="0.8.0" uri="http://mephistoblog.com">Mephisto Drax</generator>
  <link href="http://mobits.com.br/feed/atom.xml" rel="self" type="application/atom+xml"/>
  <link href="http://mobits.com.br/blog" rel="alternate" type="text/html"/>
  <updated>2012-02-03T22:00:49Z</updated>
  <entry xml:base="http://mobits.com.br/">
    <author>
      <name>Karin</name>
    </author>
    <id>tag:mobits.com.br,2012-02-03:795</id>
    <published>2012-02-03T21:11:00Z</published>
    <updated>2012-02-03T22:00:49Z</updated>
    <category term="Blog"/>
    <category term="Not&#237;cias"/>
    <category term="android"/>
    <category term="aplicativos para celular"/>
    <category term="vc globo.com"/>
    <link href="http://mobits.com.br/2012/2/3/vc-globo-com-aplicativo-de-colaboracao-para-android" rel="alternate" type="text/html"/>
    <title>VC Globo.com: aplicativo de colabora&#231;&#227;o para Android</title>
<summary type="html">&lt;p&gt;Desenvolvido pela Mobits, a Globo.com lançou no dia 31/01 o seu aplicativo de colaboração para &lt;em&gt;smartphones&lt;/em&gt; Android.&lt;/p&gt;</summary><content type="html">
            &lt;p&gt;Desenvolvido pela Mobits, a Globo.com lançou no dia 31/01 o seu aplicativo de colaboração para &lt;em&gt;smartphones&lt;/em&gt; Android.&lt;/p&gt;
&lt;p&gt;O aplicativo &lt;a href=&quot;http://g1.globo.com/vc-no-g1/noticia/2011/05/saiba-como-enviar-fotos-e-videos-ao-g1-pelo-iphone.html&quot;&gt;VC Globo.com&lt;/a&gt; é uma ferramenta para enviar fotos, vídeos e textos, que poderão ser utilizados na cobertura da Globo.com pela internet.&lt;/p&gt;

&lt;p&gt;&lt;img title=&quot;VC Globo.com&quot; src=&quot;http://www.mobits.com.br/assets/2012/2/3/inicio.png&quot; alt=&quot;VC Globo.com&quot; /&gt;&lt;/p&gt;

&lt;p&gt;E ele é bem simples, basta selecionar o canal desejado, escolher as fotos e/ou vídeos que quer enviar, cadastrar um título e uma descrição sobre a sua colaboração e pronto! Você terá contribuído para a equipe da Globo.com.
Para envio de colaborações em alguns canais é necessário o cadastro Globo.com.&lt;/p&gt;

&lt;p&gt;&lt;img title=&quot;Colabore&quot; src=&quot;http://www.mobits.com.br/assets/2012/2/3/colabore.png&quot; alt=&quot;Colabore&quot; /&gt;&lt;/p&gt;

&lt;p&gt;As suas colaborações são salvas no aplicativo. É só conferir na aba &lt;strong&gt;Meus Envios&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;img title=&quot;Meus Envios&quot; src=&quot;http://www.mobits.com.br/assets/2012/2/3/envios.png&quot; alt=&quot;Meus Envios&quot; /&gt;&lt;/p&gt;

&lt;p&gt;VC Globo.com já está disponível no &lt;a href=&quot;https://market.android.com/details?id=br.com.mobits.colaborativo&quot;&gt;Android Market&lt;/a&gt;, é gratuito e necessita do Android 2.0 ou superior. Contribuam!&lt;/p&gt;

&lt;div class=&quot;relacionados&quot;&gt;
  &lt;h4&gt;POSTS RELACIONADOS:&lt;/h4&gt;
    &lt;ul&gt;
      &lt;li&gt;&lt;a href=&quot;http://www.mobits.com.br/2012/1/24/zurbb-descubra-o-que-esta-acontecendo-em-sua-cidade&quot;&gt;Zurbb: descubra o que está acontecendo em sua cidade!&lt;/a&gt;&lt;/li&gt;
    &lt;/ul&gt;
&lt;/div&gt;
          </content>  </entry>
  <entry xml:base="http://mobits.com.br/">
    <author>
      <name>Afonso Junior</name>
    </author>
    <id>tag:mobits.com.br,2012-02-02:792</id>
    <published>2012-02-02T15:18:00Z</published>
    <updated>2012-02-02T15:18:23Z</updated>
    <category term="Blog"/>
    <category term="desenvolvimento"/>
    <category term="iphone sdk"/>
    <category term="objective-c"/>
    <link href="http://mobits.com.br/2012/2/2/blocos-de-codigo-em-objective-c" rel="alternate" type="text/html"/>
    <title>Blocos de c&#243;digo em Objective-C </title>
<summary type="html">&lt;p&gt;Na versão 4 do iOS foi introduzido o conceito de &lt;strong&gt;bloco de código&lt;/strong&gt; na linguagem. Para aqueles que não estão habituados com o conceito, um bloco de código é um conjunto de instruções que podem ser passadas adiante para serem executadas em um momento oportuno. Para uma leitura mais detalhada, basta ler a &lt;a href=&quot;http://en.wikipedia.org/wiki/Closure_%28computer_science%29&quot;&gt;página da Wikipédia (em inglês)&lt;/a&gt;, que fala mais a respeito.&lt;/p&gt;

&lt;p&gt;Nesse &lt;em&gt;post&lt;/em&gt; vamos entender os casos mais básicos de bloco e saber como utilizá-los em nossos códigos&lt;/p&gt;</summary><content type="html">
            &lt;p&gt;Na versão 4 do iOS foi introduzido o conceito de &lt;strong&gt;bloco de código&lt;/strong&gt; na linguagem. Para aqueles que não estão habituados com o conceito, um bloco de código é um conjunto de instruções que podem ser passadas adiante para serem executadas em um momento oportuno. Para uma leitura mais detalhada, basta ler a &lt;a href=&quot;http://en.wikipedia.org/wiki/Closure_%28computer_science%29&quot;&gt;página da Wikipédia (em inglês)&lt;/a&gt;, que fala mais a respeito.&lt;/p&gt;

&lt;p&gt;Nesse &lt;em&gt;post&lt;/em&gt; vamos entender os casos mais básicos de bloco e saber como utilizá-los em nossos códigos&lt;/p&gt;
&lt;h3&gt;Introdução&lt;/h3&gt;

&lt;p&gt;Para contextualizar, veja os dois exemplos de utilização de bloco de código. No primeiro exemplo, vamos chamar o método do &lt;strong&gt;&lt;em&gt;animateWithDuration:animations:&lt;/em&gt;&lt;/strong&gt; da classe &lt;strong&gt;&lt;em&gt;UIView&lt;/em&gt;&lt;/strong&gt;:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;CGRect novoFrame = CGRectMake(176.0, 258.0, 72.0, 96.0);
[UIView animateWithDuration:2.0
     animations:^ {
          self.view.alpha = 1.0;
          self.view.frame = novoFrame;
          self.view.transform = CGAffineTransformMakeRotation(M_PI);
     }
];
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Nesse caso, quando a animação for chamada, três transformações serão efetuadas: o &lt;strong&gt;&lt;em&gt;alpha&lt;/em&gt;&lt;/strong&gt;, o &lt;strong&gt;&lt;em&gt;frame&lt;/em&gt;&lt;/strong&gt; e a rotação de 180 graus na &lt;strong&gt;&lt;em&gt;view&lt;/em&gt;&lt;/strong&gt;. Perceba que não há nenhum parâmetro sendo passado para o bloco, e que é possível utilizar variáveis criadas fora do bloco, desde que o escopo permita isso. Além disso, é possível utilizar propriedades da instância da classe onde está o código.&lt;/p&gt;

&lt;p&gt;Já no segundo, vamos chamar o método &lt;strong&gt;&lt;em&gt;enumerateObjectsUsingBlock:&lt;/em&gt;&lt;/strong&gt; da classe &lt;strong&gt;&lt;em&gt;NSArray&lt;/em&gt;&lt;/strong&gt;:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;NSArray *nomes = 
     [NSArray arrayWithObjects:
            @&quot;Afonso&quot;, @&quot;Felipe&quot;, 
            @&quot;Hildi&quot;, @&quot;Karin&quot;, 
            @&quot;Quintana&quot; nil];

[nomes enumerateObjectsUsingBlock:^(id object, NSUInteger index, BOOL *stop) {
     NSLog(@&quot;%@ nome na posição %d&quot;, object, index);
}];
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Já explico melhor como esse bloco funciona. Por hora, perceba que ele recebe três parâmetros. Olhando a documentação, sabemos que o bloco de código é executado para cada um dos elementos do &lt;strong&gt;&lt;em&gt;NSArray&lt;/em&gt;&lt;/strong&gt;. O primeiro parâmetro, &lt;strong&gt;&lt;em&gt;object&lt;/em&gt;&lt;/strong&gt;, é um dos elementos da coleção. A segunda variável (&lt;strong&gt;&lt;em&gt;index&lt;/em&gt;&lt;/strong&gt;) armazena o índice de &lt;strong&gt;&lt;em&gt;object&lt;/em&gt;&lt;/strong&gt; no &lt;em&gt;array&lt;/em&gt;. E o terceiro parâmetro (um ponteiro para uma variável &lt;em&gt;boolean&lt;/em&gt;) serve para ser utilizado dentro do bloco caso você queira parar a enumeração dos itens.&lt;/p&gt;

&lt;p&gt;Uma vez explicado (bem por alto, reconheço) o modo como utilizar os blocos, vamos mostrar como funciona a sintaxe deles.&lt;/p&gt;

&lt;h3&gt;Sintaxe básica&lt;/h3&gt;

&lt;p&gt;Como explicado anteriormente, um bloco é simplesmente um conjunto de código executável. Neste exemplo mais simples,&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;^ {
     NSDate *data = [NSDate date];
     NSLog(@&quot;A data e a hora agora é %@&quot;, data);
};
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;o acento circunflexo inicia o bloco, enquanto as chaves delimitam o corpo do bloco. Nesse caso, temos um bloco se comportando como um método anônimo.&lt;/p&gt;

&lt;p&gt;Mas, sendo anônimo, como utilizar esse bloco? A maneira mais comum é a do primeiro exemplo (animação da &lt;em&gt;view&lt;/em&gt;), em que eu passo o bloco como parâmetro, que, obviamente, é um bloco anônimo. Outra maneira de utilizar o bloco é associá-lo a uma variável e então chamar a variável. Veja como ficaria o código anterior:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;void (^agora)(void) = ^ {
     NSDate *data = [NSDate date];
     NSLog(@&quot;A data e a hora agora é %@&quot;, data);
};
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Agora sim a sintaxe ficou um pouco mais complexa. Veja a imagem abaixo para entender como o bloco deve ser declarado:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;http://www.mobits.com.br/assets/2012/1/31/sintaxe-bloco-1.png&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Como você pode perceber, o nome do bloco é sempre declarado entre parêntesis. No nosso exemplo, a variável agora pode ser atribuída a blocos que não tenham retorno (o primeiro &lt;strong&gt;void&lt;/strong&gt;) e que não tenham parâmetro (o segundo &lt;strong&gt;void&lt;/strong&gt;). Para executar o código dentro do bloco, basta chamar:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;agora();
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Olhando o exemplo da animação da &lt;strong&gt;UIView&lt;/strong&gt;, caso eu quiséssemos passar o bloco agora para o método bastaria fazer:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;[UIView animateWithDuration:2.0 animations:agora];
&lt;/code&gt;&lt;/pre&gt;

&lt;h3&gt;Parâmetros para o bloco&lt;/h3&gt;

&lt;p&gt;Como toda função que se preze, um bloco pode receber parâmetros. Imagine um bloco que, dado um inteiro, retorna esse número ao quadrado. Declarando um bloco anônimo, temos o seguinte:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;^(int numero) {
     return numero * numero;
};
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;agora, associando a uma variável, temos:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;int (^quadrado)(int) = ^(int numero) {
     return numero * numero;
};
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;e fazendo a associação anterior:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;http://www.mobits.com.br/assets/2012/1/31/sintaxe-bloco-2.png&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Para utilizar a variável, nada mais simples:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;int q = quadrado(8); //q tem valor 64
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Nesse caso, só há um parâmetro inteiro. Para outros parâmetros, basta separar os tipos deles por vírgula. Um bloco de método que multiplica duas variáveis ficaria assim:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;int (^multiplicar)(int, int) = ^(int a, int b) {
    return a * b;
};
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;E, obviamente, a variável pode ser chamada da seguinte forma:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;int x = multiplicar(2,3); //x tem valor 6
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Enfim, espero que essa breve (nem tão breve assim) introdução sobre blocos tenha ajudado. Para um maior aprofundamento, vale a pena dar uma lida na &lt;a href=&quot;http://developer.apple.com/library/ios/#documentation/cocoa/Conceptual/Blocks/Articles/00_Introduction.html&quot;&gt;documentação da Apple&lt;/a&gt; sobre o assunto. Qualquer dúvida, manda aí nos comentários.&lt;/p&gt;

&lt;div class=&quot;relacionados&quot;&gt;
  &lt;h4&gt;POSTS RELACIONADOS:&lt;/h4&gt;
    &lt;ul&gt;

      &lt;li&gt;&lt;a href=&quot;http://www.mobits.com.br/2011/12/30/utilizando-imagens-redimensionaveis-no-ios&quot;&gt; Utilizando imagens redimensionáveis no iOS &lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;http://www.mobits.com.br/2011/11/18/como-integrar-seu-aplicativo-com-o-twitter-no-ios-5&quot;&gt; Como integrar seu aplicativo com o Twitter no iOS 5 &lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;http://www.mobits.com.br/2011/9/26/configurando-o-nszombieenabled-no-xcode-4&quot;&gt; Configurando o NSZombieEnabled no Xcode 4 &lt;/a&gt;&lt;/li&gt;

    &lt;/ul&gt;
&lt;/div&gt;
          </content>  </entry>
  <entry xml:base="http://mobits.com.br/">
    <author>
      <name>Quintana</name>
    </author>
    <id>tag:mobits.com.br,2012-01-27:787</id>
    <published>2012-01-27T21:00:00Z</published>
    <updated>2012-01-27T21:05:02Z</updated>
    <category term="Blog"/>
    <category term="desenvolvimento"/>
    <category term="iphone sdk"/>
    <link href="http://mobits.com.br/2012/1/27/customizando-sua-uitabbar-no-ios-5" rel="alternate" type="text/html"/>
    <title>Customizando sua UITabBar no iOS 5</title>
<summary type="html">&lt;p&gt;O iOS 5 oferece novas APIs que permitem que elementos antes padronizados do iOS agora possam ser modificados de acordo com seu &lt;em&gt;layout&lt;/em&gt;. &lt;/p&gt;</summary><content type="html">
            &lt;p&gt;O iOS 5 oferece novas APIs que permitem que elementos antes padronizados do iOS agora possam ser modificados de acordo com seu &lt;em&gt;layout&lt;/em&gt;. &lt;/p&gt;
&lt;p&gt;Uma dessas APIs permite que você altere o fundo da &lt;i&gt;UITabBar&lt;/i&gt; da seguinte forma:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;UIImage *tabBackground = [[UIImage imageNamed:@&quot;tab_bg&quot;] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 0, 0, 0)];
[[UITabBar appearance] setBackgroundImage:tabBackground];
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Se você tentar executar esse código no iOS 4 ou inferior receberá o erro &lt;em&gt;unrecognized selector sent to class&lt;/em&gt; ao tentar chamar o &lt;em&gt;[UITabBar appearance]&lt;/em&gt;, isso ocorre porque esse método de classe está disponível apenas no iOS 5.&lt;/p&gt;

&lt;p&gt;Outra coisa que pode ser alterada é a imagem sobre o item selecionado, feita da seguinte forma: &lt;/p&gt;

&lt;pre&gt;&lt;code&gt;[[UITabBar appearance] setSelectionIndicatorImage:[UIImage imageNamed:@&quot;tab_select_indicator&quot;]];
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Utilizando a API &lt;em&gt;appearance&lt;/em&gt; é possível fazer interfaces bem mais customizadas, como essa tabBar:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;http://mobits.com.br/assets/2012/1/27/tabbar.png&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Em breve daremos mais dicas de &lt;em&gt;layout&lt;/em&gt;.&lt;/p&gt;

&lt;div class=&quot;relacionados&quot;&gt;
  &lt;h4&gt;POSTS RELACIONADOS:&lt;/h4&gt;
    &lt;ul&gt;

      &lt;li&gt;&lt;a href=&quot;http://www.mobits.com.br/2011/12/30/utilizando-imagens-redimensionaveis-no-ios&quot;&gt; Utilizando imagens redimensionáveis no iOS &lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;http://mobits.com.br/2011/12/1/dicas-de-layout-para-aplicativos-android&quot;&gt; Dicas de layout para aplicativos Android &lt;/a&gt;&lt;/li&gt;


    &lt;/ul&gt;
&lt;/div&gt;
          </content>  </entry>
  <entry xml:base="http://mobits.com.br/">
    <author>
      <name>Hildi</name>
    </author>
    <id>tag:mobits.com.br,2012-01-27:785</id>
    <published>2012-01-27T17:59:00Z</published>
    <updated>2012-01-27T17:59:19Z</updated>
    <category term="Blog"/>
    <category term="android"/>
    <category term="desenvolvimento"/>
    <category term="sdk"/>
    <link href="http://mobits.com.br/2012/1/27/como-enviar-arquivos-via-http-no-android" rel="alternate" type="text/html"/>
    <title>Como enviar arquivos via HTTP no Android</title>
<summary type="html">&lt;p&gt;Quem algum dia precisou fazer envio de arquivos mais elaborado via &lt;em&gt;http&lt;/em&gt; no Android, já deve ter percebido que não existe um &lt;em&gt;&lt;a href=&quot;http://developer.android.com/reference/org/apache/http/HttpEntity.html&quot;&gt;HttpEntity&lt;/a&gt;&lt;/em&gt; especial para isso. Foi ao passar por este problema que precisei buscar alternativas e é este o tema deste post. &lt;/p&gt;</summary><content type="html">
            &lt;p&gt;Quem algum dia precisou fazer envio de arquivos mais elaborado via &lt;em&gt;http&lt;/em&gt; no Android, já deve ter percebido que não existe um &lt;em&gt;&lt;a href=&quot;http://developer.android.com/reference/org/apache/http/HttpEntity.html&quot;&gt;HttpEntity&lt;/a&gt;&lt;/em&gt; especial para isso. Foi ao passar por este problema que precisei buscar alternativas e é este o tema deste post. &lt;/p&gt;
&lt;p&gt;O problema era fazer envio de arquivo como &lt;a href=&quot;http://www.w3.org/Protocols/rfc1341/7_2_Multipart.html&quot;&gt;&lt;em&gt;multipart/form-data-encoded&lt;/em&gt;&lt;/a&gt; e o Android não traz essa funcionalidade nativamente. Para fazer esse tipo de envio, descobri o MultipartEntity, que faz parte do &lt;em&gt;&lt;a href=&quot;http://hc.apache.org/httpcomponents-client-ga/index.html&quot;&gt;HttpClient&lt;/a&gt;&lt;/em&gt; da &lt;a href=&quot;http://www.apache.org/&quot;&gt;Apache&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Antes de utilizá-lo, lembre-se de incluir os &lt;em&gt;jars&lt;/em&gt; do &lt;em&gt;&lt;a href=&quot;http://hc.apache.org/httpcomponents-client-ga/index.html&quot;&gt;HttpClient&lt;/a&gt;&lt;/em&gt; no seu projeto. Veja como o &lt;em&gt;&lt;a href=&quot;http://hc.apache.org/httpcomponents-client-ga/httpmime/apidocs/org/apache/http/entity/mime/MultipartEntity.html&quot;&gt;MultipartEntity&lt;/a&gt;&lt;/em&gt; funciona no exemplo abaixo:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt; MultipartEntity entity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE, boundary, Charset.defaultCharset());    
 byte[] data = //seu arquivo em array de bytes
 ByteArrayBody b = new ByteArrayBody(data, &quot;image/png&quot;, &quot;nome_arquivo.png&quot;);
 entity.addPart(&quot;file&quot;, b);
 in.close();
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Neste exemplo, vale lembrar que é preciso passar o &lt;em&gt;boundary&lt;/em&gt; e seu arquivo em formato de &lt;em&gt;array&lt;/em&gt; de &lt;em&gt;bytes&lt;/em&gt;. Você pode passar seu arquivo de outras maneiras, além do &lt;em&gt;ByteArrayBody&lt;/em&gt;, existem outros tipos como: &lt;em&gt;AbstractContentBody&lt;/em&gt;, &lt;em&gt;FileBody&lt;/em&gt;, &lt;em&gt;InputStreamBody&lt;/em&gt; e &lt;em&gt;StringBody&lt;/em&gt;. Veja a documentação &lt;a href=&quot;http://hc.apache.org/httpcomponents-client-ga/httpmime/apidocs/org/apache/http/entity/mime/content/package-summary.html&quot;&gt;aqui&lt;/a&gt; para saber mais detalhes.&lt;/p&gt;

&lt;p&gt;Espero que a dica também seja útil a vocês!&lt;/p&gt;

&lt;div class=&quot;relacionados&quot;&gt;
  &lt;h4&gt;POSTS RELACIONADOS:&lt;/h4&gt;
    &lt;ul&gt;

      &lt;li&gt;&lt;a href=&quot;http://www.mobits.com.br/2011/12/1/dicas-de-layout-para-aplicativos-android&quot;&gt; Dicas de layout para aplicativos Android &lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;http://www.mobits.com.br/2011/10/21/android-ice-cream-sandwich-novidades-para-desenvolvedores&quot;&gt;Android Ice Cream Sandwich: novidades para desenvolvedores &lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;http://www.mobits.com.br/2011/5/20/personalizando-fontes-no-android&quot;&gt;Personalizando fontes no Android&lt;/a&gt;&lt;/li&gt;

    &lt;/ul&gt;
&lt;/div&gt;
          </content>  </entry>
  <entry xml:base="http://mobits.com.br/">
    <author>
      <name>Hildi</name>
    </author>
    <id>tag:mobits.com.br,2012-01-24:768</id>
    <published>2012-01-24T18:15:00Z</published>
    <updated>2012-01-24T18:16:02Z</updated>
    <category term="Blog"/>
    <category term="Not&#237;cias"/>
    <category term="aplicativos para celular"/>
    <category term="blackberry"/>
    <category term="iphone"/>
    <category term="zurbb"/>
    <link href="http://mobits.com.br/2012/1/24/zurbb-descubra-o-que-esta-acontecendo-em-sua-cidade" rel="alternate" type="text/html"/>
    <title>Zurbb: descubra o que est&#225; acontecendo em sua cidade!</title>
<summary type="html">&lt;p&gt;A Mobits acaba de desenvolver as versões para iPhone/iPod Touch e Blackberry do &lt;a href=&quot;http://www.zurbb.com/&quot;&gt;Zurbb&lt;/a&gt; - serviço que mostra o que está acontecendo na cidade, através de colaborações (zurbbs) feitas pelos próprios usuários e promoções feitas pelos estabelecimentos (lugares) catalogados. Veja como ele funciona para evitar furadas e a aproveitar o que há de melhor ocorrendo na cidade!&lt;/p&gt;</summary><content type="html">
            &lt;p&gt;A Mobits acaba de desenvolver as versões para iPhone/iPod Touch e Blackberry do &lt;a href=&quot;http://www.zurbb.com/&quot;&gt;Zurbb&lt;/a&gt; - serviço que mostra o que está acontecendo na cidade, através de colaborações (zurbbs) feitas pelos próprios usuários e promoções feitas pelos estabelecimentos (lugares) catalogados. Veja como ele funciona para evitar furadas e a aproveitar o que há de melhor ocorrendo na cidade!&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://www.mobits.com.br/assets/2012/1/23/zurbb_iphone.png&quot; /&gt;&lt;/p&gt;

&lt;p&gt;No aplicativo, é possível ter uma visão geral do que está acontecendo na cidade, através da listagem dos útlimos zurbbs, promos e lugares recentemente mencionados. Os zurbbs, promos e lugares podem ser vistos de acordo com sua categoria (para comer, bares, noite e carnaval) e localização (próximos a mim ou próximo a um endereço) ou de acordo com o radar do usuário ou um determinado lugar. O radar é um conjunto de lugares de interesse do usuário.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;http://www.mobits.com.br/assets/2012/1/23/zurbb_bby.png&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Os zurbbs e promos podem ser respondidos ou ganhar um &lt;em&gt;Up&lt;/em&gt;. Responder um zurbb ou promo é o mesmo que fazer um comentário a respeito dele. E fazer um &lt;em&gt;Up&lt;/em&gt; significa aumentar a importância daquele zurbb ou promo, fazendo com que ele pule para o topo da lista. As promos podem ser obtidas a qualquer momento e seus cupons ficam disponíveis no perfil do usuário.&lt;/p&gt;

&lt;p&gt;No perfil, o usuário tem rápido acesso ao seu radar, seus pontos, promos e avisos gerais do Zurbb.&lt;/p&gt;

&lt;p&gt;Para fazer parte do &lt;a href=&quot;http://www.zurbb.com/&quot;&gt;Zurbb&lt;/a&gt; é fácil, basta se cadastrar pelo aplicativo ou pelo site. &lt;/p&gt;

&lt;p&gt;Os aplicativos já estão disponíveis gratuitamente em suas respectivas lojas. Seguem os links abaixo:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://appworld.blackberry.com/webstore/content/65865?lang=pt_br&quot;&gt;Download Zurbb Blackberry&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://itunes.apple.com/br/app/zurbb/id472076028?mt=8&quot;&gt;Download Zurbb iPhone&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
          </content>  </entry>
  <entry xml:base="http://mobits.com.br/">
    <author>
      <name>Felipe Barreto</name>
    </author>
    <id>tag:mobits.com.br,2011-12-30:780</id>
    <published>2011-12-30T17:46:00Z</published>
    <updated>2011-12-30T20:18:27Z</updated>
    <category term="Blog"/>
    <category term="desenvolvimento"/>
    <category term="iphone sdk"/>
    <link href="http://mobits.com.br/2011/12/30/utilizando-imagens-redimensionaveis-no-ios" rel="alternate" type="text/html"/>
    <title>Utilizando imagens redimension&#225;veis no iOS</title>
<summary type="html">&lt;h3&gt;O Problema&lt;/h3&gt;

&lt;p&gt;É comum desenvolvermos telas que utilizam imagens com cantos arredondados e gradientes de modo a enriquecer a aparência do produto final. Em geral, pedimos para o designer cortar essas imagens no tamanho exato para o qual ela foi planejada. Contudo, existem diversos casos onde queremos redimensioná-las ou apresentá-las em diversos formatos diferentes.&lt;/p&gt;</summary><content type="html">
            &lt;h3&gt;O Problema&lt;/h3&gt;

&lt;p&gt;É comum desenvolvermos telas que utilizam imagens com cantos arredondados e gradientes de modo a enriquecer a aparência do produto final. Em geral, pedimos para o designer cortar essas imagens no tamanho exato para o qual ela foi planejada. Contudo, existem diversos casos onde queremos redimensioná-las ou apresentá-las em diversos formatos diferentes.&lt;/p&gt;
&lt;h3&gt;Solução trivial&lt;/h3&gt;

&lt;p&gt;Se, inocentemente, você simplesmente redimensionar a &lt;em&gt;UIImageView&lt;/em&gt; para o formato desejado, a imagem ficará distorcida como nos exemplos abaixo.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;http://mobits.com.br/assets/2011/12/30/uiimage_resize_errado.png&quot; alt=&quot;UIImage redimensionada de modo errado&quot; /&gt;&lt;/p&gt;

&lt;p&gt;A segunda opção, e provavelmente a escolhida pela maioria, é criar uma imagem para cada cenário onde será utilizada, chegando aos resultados abaixo. &lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;http://mobits.com.br/assets/2011/12/30/uiimage_3_arquivos.png&quot; alt=&quot;Uma UIImage para cada cenário&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Essa solução atinge o objetivo visual esperado, mas dificulta a gerência de diversos arquivos muito semelhantes e ainda aumenta o tamanho do aplicativo final.&lt;/p&gt;

&lt;h3&gt;Soluções com apenas uma imagem&lt;/h3&gt;

&lt;p&gt;Como vimos anteriormente, o &lt;a href=&quot;http://mobits.com.br/2011/12/1/dicas-de-layout-para-aplicativos-android&quot;&gt;Android SDK possui suporte nativo ao conceito de 9-patch&lt;/a&gt; o que resolve facilmente o problema acima a partir de um único arquivo .9.png. No iOS não existe suporte nativo ao formato, mas existem soluções menos flexíveis que podem ser empregadas para atingir o mesmo objetivo.&lt;/p&gt;

&lt;h4&gt;UIImage strechable/resizable&lt;/h4&gt;

&lt;p&gt;Se seu aplicativo precisa funcionar em &lt;strong&gt;iOS 4.x&lt;/strong&gt; ou inferior:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;- (UIImage *)stretchableImageWithLeftCapWidth:(NSInteger)leftCapWidth topCapHeight:(NSInteger)topCapHeight;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;O método acima cria uma imagem a partir da original informando a porção desta (em pixels) que deve permanecer inalterada quando houver redimensionamento. Conceitualmente, o resultado fica assim:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;http://mobits.com.br/assets/2011/12/30/uiimage_stretchable.png&quot; alt=&quot;Conceito do UIImage stretchableImageWithLeftCapWidth:topCapHeight:&quot; /&gt;&lt;/p&gt;

&lt;p&gt;O retângulo vermelho será preenchido pelo pixel na posição (leftCapWidth + 1, topCapHeight + 1), enquanto as regiões amarelas serão preenchidas pelo segmento lateral de 1px no sentido indicado pelas setas.  &lt;/p&gt;

&lt;p&gt;Ex:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;UIImage *image = [[UIImage imageNamed:@&quot;stretch.png&quot;] 
                  stretchableImageWithLeftCapWidth:13 topCapHeight:15];

self.imageView.image = image;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;O método acima está obsoleto no &lt;strong&gt;iOS 5&lt;/strong&gt;. Neste caso, você poderá usar:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;- (UIImage *)resizableImageWithCapInsets:(UIEdgeInsets)capInsets;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Assim, como o método antigo, este cria uma imagem a partir da original com definições de como esta deve ser redimensionada. A diferença é que utilizamos um &lt;em&gt;UIEdgeInsets&lt;/em&gt; para definir um retângulo que servirá de referência para o processo de redimensionamento. Eis o conceito:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;http://mobits.com.br/assets/2011/12/30/uiimage_resizable.png&quot; alt=&quot;Conceito do UIImage resizableImageWithCapInsets:&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Agora, ao invés de expandir um único pixel, será definida uma área (em vermelho) que deverá ser &lt;strong&gt;replicada&lt;/strong&gt; para preencher o espaço necessário. As áreas amarelas também serão replicadas nos sentidos indicados. Para realizar um comportamento semelhante ao método anterior, basta definir os &lt;em&gt;insets&lt;/em&gt; com tamanho zero (ou &quot;negativo&quot;). Ex.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;// defino os insets com o right e o bottom exagerados, para que apenas 1px seja replicado
UIImage *image = [[UIImage imageNamed:@&quot;stretch_tile.png&quot;] resizableImageWithCapInsets:UIEdgeInsetsMake(48, 38, 1000, 1000)]; 
self.imageView.image = image;
&lt;/code&gt;&lt;/pre&gt;

&lt;h4&gt;UIView contentStretch&lt;/h4&gt;

&lt;p&gt;As soluções anteriores agem diretamente sobre a &lt;em&gt;UIImage&lt;/em&gt;. Existe um outro caminho que age sobre o &lt;em&gt;container&lt;/em&gt; (&lt;em&gt;UIView&lt;/em&gt;):&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;@property(nonatomic) CGRect contentStretch; //Em UIView.h
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Este método causa um comportamento ligeiramente semelhante aos anteriores, mas é utilizado na &lt;em&gt;UIImageView&lt;/em&gt; e não na &lt;em&gt;UIImage&lt;/em&gt;.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;self.imageView2.contentStretch = CGRectMake(0.1, 0.05, 0.7, 0.8);
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Repare que neste caso, o retângulo de referência não é mais definido em pixels, mas em proporções (de 0.0 a 1.0). No exemplo acima, o retângulo terá a origem em (10%, 5%) do tamanho da &lt;em&gt;UIImageView&lt;/em&gt; e seu tamanho será de (70%, 80%) da mesma.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;http://mobits.com.br/assets/2011/12/30/contentStretch.png&quot; alt=&quot;Conceito do UIView contentStretch&quot; /&gt;&lt;/p&gt;

&lt;h3&gt;Limitações&lt;/h3&gt;

&lt;h4&gt;Gradientes&lt;/h4&gt;

&lt;p&gt;Os métodos que atuam sobre a &lt;em&gt;UIImage&lt;/em&gt; e o &lt;em&gt;contentStretch&lt;/em&gt; manipulam a imagem de maneiras diferentes. Essa diferença é perceptível em alguns casos como no redimensionamento de uma imagem com gradiente. Veja os exemplos:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;http://mobits.com.br/assets/2011/12/30/diferencas_gradiente_uiimage_e_contentstretch.png&quot; alt=&quot;Diferenças entre a UIImage com stretch/resize e o uso do contentStretch&quot; /&gt; &lt;/p&gt;

&lt;p&gt;Somente o &lt;em&gt;contentStretch&lt;/em&gt; de fato estica a área central, permitindo que o gradiente se distribua mais uniformemente. Se for necessário que uma imagem se expanda no mesmo sentido que o gradiente, então essa técnica é a mais indicada. Se a expansão for majoritariamente no eixo perpendicular ao gradiente, então todas terão o efeito semelhante: &lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;http://mobits.com.br/assets/2011/12/30/semelhancas_gradiente_uiimage_e_contentstretch.png&quot; alt=&quot;Semelhanças entre a UIImage com stretch/resize e o uso do contentStretch&quot; /&gt; &lt;/p&gt;

&lt;h4&gt;UIButtons&lt;/h4&gt;

&lt;p&gt;O caso mais comum de uso de imagens como as anteriores é como fundo dos &lt;em&gt;UIButton&lt;/em&gt;. Infelizmente, o comportamento do &lt;em&gt;contentStretch&lt;/em&gt; nos &lt;em&gt;UIButton&lt;/em&gt; não é o esperado e não influencia a maneira como a imagem de fundo é exibida. Neste caso, precisamos usar os métodos de &lt;em&gt;UIImage&lt;/em&gt; para resolver nosso problema:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;[self.button setBackgroundImage:image forState:UIControlStateNormal];
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Contudo, quando queremos que o botão realce ou esmaeça a imagem se selecionado ou desabilitado, preenchemos as propriedades &lt;em&gt;adjustsImageWhenHighlighted&lt;/em&gt; e &lt;em&gt;adjustsImageWhenDisabled&lt;/em&gt;. Infelizmente, ao usarmos a técnica acima, os efeitos de &lt;em&gt;highlight&lt;/em&gt; e de desabilitado são aplicados de maneira errada.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;http://mobits.com.br/assets/2011/12/30/erros_no_uibutton.png&quot; alt=&quot;UIButton com o highlight e disable errados&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Para contornar esse problema, precisamos criar outras duas imagens, uma para cada estado e associá-las ao &lt;em&gt;UIButton&lt;/em&gt;.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;[self.button setBackgroundImage:imageDisable forState:UIControlStateDisabled];
[self.button setBackgroundImage:imageHighligh forState:UIControlStateHighlighted];
&lt;/code&gt;&lt;/pre&gt;

&lt;h3&gt;Outras técnicas&lt;/h3&gt;

&lt;p&gt;Todas as soluções acima são nativas do iOS. Existem soluções de terceiros, que ainda não testamos, que permitem, p. ex. &lt;a href=&quot;http://blog.tortuga22.com/2010/05/31/announcing-tortuga-22-ninepatch/&quot;&gt;utilizar o 9-patch&lt;/a&gt; de maneira semelhante ao Android. Se alguém tiver a oportunidade de usar essa ou outra solução e quiser comentar aqui, não se acanhe.&lt;/p&gt;

&lt;div class=&quot;relacionados&quot;&gt;
  &lt;h4&gt;POSTS RELACIONADOS:&lt;/h4&gt;
    &lt;ul&gt;

      &lt;li&gt;&lt;a href=&quot;http://mobits.com.br/2011/12/1/dicas-de-layout-para-aplicativos-android&quot;&gt; Dicas de layout para aplicativos Android &lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;http://mobits.com.br/2011/11/23/atalhos-de-teclado-para-o-xcode-4&quot;&gt; Atalhos de teclado para o Xcode 4 &lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;http://mobits.com.br/2011/9/9/2-dicas-simples-para-trabalhar-com-nsnull&quot;&gt; 2 dicas simples para trabalhar com NSNull &lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;http://mobits.com.br/2011/8/13/5-referencias-uteis-para-desenvolvedores-ios&quot;&gt; 5 referências úteis para desenvolvedores iOS &lt;/a&gt;&lt;/li&gt;

    &lt;/ul&gt;
&lt;/div&gt;
          </content>  </entry>
  <entry xml:base="http://mobits.com.br/">
    <author>
      <name>Karin</name>
    </author>
    <id>tag:mobits.com.br,2011-12-27:777</id>
    <published>2011-12-27T16:54:00Z</published>
    <updated>2011-12-27T16:54:40Z</updated>
    <category term="Blog"/>
    <category term="Not&#237;cias"/>
    <category term="android"/>
    <category term="aplicativos para celular"/>
    <category term="iphone"/>
    <category term="peixe urbano"/>
    <link href="http://mobits.com.br/2011/12/27/peixe-urbano-e-mobits-desenvolvem-aplicativos-para-iphone-e-android" rel="alternate" type="text/html"/>
    <title>Peixe Urbano e Mobits desenvolvem os aplicativos para iPhone e Android</title>
<summary type="html">&lt;p&gt;O &lt;a href=&quot;http://www.peixeurbano.com.br&quot;&gt;Peixe Urbano&lt;/a&gt; lançou na última quarta-feira, dia 21/12, os seus aplicativos para iPhone/iPod Touch e &lt;em&gt;smartphones&lt;/em&gt; com Android. Agora ficou mais fácil comprar uma oferta e acessar seus cupons de qualquer lugar!&lt;/p&gt;</summary><content type="html">
            &lt;p&gt;O &lt;a href=&quot;http://www.peixeurbano.com.br&quot;&gt;Peixe Urbano&lt;/a&gt; lançou na última quarta-feira, dia 21/12, os seus aplicativos para iPhone/iPod Touch e &lt;em&gt;smartphones&lt;/em&gt; com Android. Agora ficou mais fácil comprar uma oferta e acessar seus cupons de qualquer lugar!&lt;/p&gt;
&lt;p&gt;Tanto no aplicativo para iOS quanto para Android, o usuário pode ver na palma da mão as ofertas do dia, comprar e conferir seus cupons. Acessar seu saldo e cadastrar uma cidade para receber as ofertas do dia por e-mail também ficou bem simples.&lt;/p&gt;

&lt;p&gt;&lt;img title=&quot;Lista de ofertas&quot; src=&quot;http://www.mobits.com.br/assets/2011/12/26/postPeixe4.jpg&quot; alt=&quot;Lista de ofertas&quot; /&gt;&lt;img title=&quot;Meus cupons&quot; src=&quot;http://www.mobits.com.br/assets/2011/12/26/postPeixe1.jpg&quot; alt=&quot;Meus cupons&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Além dessas funcionalidades, é possível compartilhar uma oferta e sua compra via Facebook, Twitter, e-mail e sms com os amigos.&lt;/p&gt;

&lt;p&gt;&lt;img title=&quot;Compartilhar oferta&quot; src=&quot;http://www.mobits.com.br/assets/2011/12/26/postPeixe2.jpg&quot; alt=&quot;Compartilhar oferta&quot; /&gt;&lt;img title=&quot;Compartilhar oferta&quot; src=&quot;http://www.mobits.com.br/assets/2011/12/26/postPeixe3.jpg&quot; alt=&quot;Compartilhar oferta&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Requisito mínimo para iPhone é o iOS4 e para &lt;em&gt;smartphones&lt;/em&gt; Android é o 1.6. Os aplicativos Peixe Urbano já estão disponíveis na &lt;a href=&quot;http://itunes.apple.com/br/app/peixe-urbano-iphone/id423021834&quot;&gt;App Store&lt;/a&gt; e no &lt;a href=&quot;https://market.android.com/details?id=br.com.mobits.peixeurbano&quot;&gt;Android Market&lt;/a&gt;. Confira!&lt;/p&gt;

&lt;div class=&quot;relacionados&quot;&gt;
  &lt;h4&gt;POSTS RELACIONADOS:&lt;/h4&gt;
    &lt;ul&gt;
      &lt;li&gt;&lt;a href=&quot;http://www.mobits.com.br/2011/12/19/mobits-desenvolve-aplicativo-do-ego-para-a-globo-com&quot;&gt;Mobits desenvolve aplicativo do Ego para a Globo.com&lt;/a&gt;&lt;/li&gt;
    &lt;/ul&gt;
&lt;/div&gt;
          </content>  </entry>
  <entry xml:base="http://mobits.com.br/">
    <author>
      <name>Quintana</name>
    </author>
    <id>tag:mobits.com.br,2011-12-21:775</id>
    <published>2011-12-21T18:56:00Z</published>
    <updated>2011-12-21T21:36:32Z</updated>
    <category term="Blog"/>
    <category term="Not&#237;cias"/>
    <category term="promo&#231;&#227;o"/>
    <link href="http://mobits.com.br/2011/12/21/promocao-de-natal-mobits-aplicativos-a-0-99" rel="alternate" type="text/html"/>
    <title>Promo&#231;&#227;o de Natal Mobits - aplicativos a $0,99</title>
<summary type="html">&lt;p&gt;A Mobits está presenteando seus usuários neste Natal! Baixamos o preço dos nossos principais jogos para $0.99, não perca!&lt;/p&gt;</summary><content type="html">
            &lt;p&gt;A Mobits está presenteando seus usuários neste Natal! Baixamos o preço dos nossos principais jogos para $0.99, não perca!&lt;/p&gt;
&lt;p&gt;
    &lt;img src=&quot;http://mobits.com.br/assets/2011/12/21/promocaoAppStoreMobits.jpg&quot; /&gt;
&lt;/p&gt;  

&lt;h3&gt;Jogos em promoção&lt;/h3&gt;

&lt;p&gt;Os jogos abaixo estão em promoção até o dia 31/12 e disponíveis tanto na App Store Brasileira quanto na internacional.&lt;/p&gt;

&lt;h4&gt;The Hungry Pets - &lt;del&gt;$1,99&lt;/del&gt; $0,99&lt;/h4&gt;

&lt;table&gt;
  &lt;tr&gt;
            &lt;td height=&quot;92&quot; width=&quot;112&quot;&gt;
                &lt;img src=&quot;http://mobits.com.br/assets/2011/12/21/icoHungry.png&quot; /&gt;
            &lt;/td&gt;
            &lt;td&gt;
                Ideal para jogar com seus filhos e amigos, o &lt;a href=&quot;http://thehungrypets.com/pt&quot;&gt;The Hungry Pets&lt;/a&gt; é um jogo de tabuleiro que exige inteligência e estratégia. Neste jogo, cada jogador deve achar o caminho para sua comida antes dos demais. Itens especiais podem ajudá-lo a chegar mais rápido ou atrapalhar seus adversários :P. 
            &lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;

&lt;p&gt;&lt;a href=&quot;http://itunes.apple.com/br/app/the-hungry-pets-brasil/id452288781?mt=8&quot;&gt;Download na App Store Nacional&lt;/a&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;| &amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&quot;http://itunes.apple.com/us/app/the-hungry-pets/id407074062?mt=8&quot;&gt;Download na App Store Americana&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;Mobits Button Soccer - &lt;del&gt;$1,99&lt;/del&gt; $0,99&lt;/h4&gt;

&lt;table&gt;
  &lt;tr&gt;
            &lt;td height=&quot;92&quot; width=&quot;112&quot;&gt;
                &lt;img src=&quot;http://www.mobits.com.br/assets/2011/8/11/icoMbs98.png&quot; /&gt;
            &lt;/td&gt;
            &lt;td&gt;
                Nosso famoso futebol de botão em versão de bolso, &lt;a href=&quot;http://www.mobitsbuttonsoccer.com/pt&quot;&gt;Mobits Button Soccer&lt;/a&gt;, permite jogos com dois jogadores no mesmo dispositivo, dois dispositivos conectados por bluetooth ou online, além de jogos contra a máquina em amistosos e campeonatos.
            &lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;

&lt;p&gt;&lt;a href=&quot;http://itunes.apple.com/us/app/mobits-button-soccer-brasil/id325537064?ls=1&amp;amp;amp;mt=8&quot;&gt;Download na App Store Nacional&lt;/a&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;| &amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&quot;http://itunes.apple.com/us/app/mobits-button-soccer/id325505542?ls=1&amp;amp;amp;mt=8&quot;&gt;Download na App Store Americana&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;Mobits Button Soccer HD - &lt;del&gt;$2,99&lt;/del&gt; $0,99&lt;/h4&gt;

&lt;table&gt;
  &lt;tr&gt;
            &lt;td height=&quot;92&quot; width=&quot;112&quot;&gt;
                &lt;img src=&quot;http://mobits.com.br/assets/2011/12/21/icoMBSHD98.png&quot; /&gt;
            &lt;/td&gt;
            &lt;td&gt;
                A versão HD do &lt;a href=&quot;http://www.mobitsbuttonsoccer.com/pt&quot;&gt;Mobits Button Soccer&lt;/a&gt; foi totalmente adaptada para o iPad, ideal para fazer do seu iPad um mini tabuleiro de futebol de botão.
            &lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;

&lt;p&gt;&lt;a href=&quot;http://itunes.apple.com/us/app/mobits-button-soccer-brasil/id451751048?ls=1&amp;amp;amp;mt=8&quot;&gt;Download na App Store Nacional&lt;/a&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;| &amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&quot;http://itunes.apple.com/us/app/mobits-button-soccer-hd/id450495255?ls=1&amp;amp;amp;mt=8&quot;&gt;Download na App Store Americana&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;Promoção Cine Mobits&lt;/h3&gt;

&lt;p&gt;Também estamos realizando uma promoção no &lt;a href=&quot;http://cine.mobits.com.br/&quot;&gt;Cine Mobits&lt;/a&gt;, nosso aplicativo de consulta de programação de cinemas no celular: todos os usuários que curtirem &lt;a href=&quot;http://pt-br.facebook.com/pages/Cine-Mobits/356704457220&quot;&gt;a página do Cine Mobits no Facebook&lt;/a&gt; irão concorrer a 3 vale-ingressos da &lt;a href=&quot;http://www.ingresso.com&quot;&gt;ingresso.com&lt;/a&gt; no valor de 50 reais cada.&lt;/p&gt;

&lt;p&gt;&lt;img title=&quot;Promoção Cine Mobits&quot; src=&quot;http://mobits.com.br/assets/2011/12/21/383995_10150442012672221_356704457220_8151324_910678220_n.jpg&quot; alt=&quot;Promoção Cine Mobits&quot; /&gt;&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://mobits.com.br/">
    <author>
      <name>Afonso Junior</name>
    </author>
    <id>tag:mobits.com.br,2011-12-19:773</id>
    <published>2011-12-19T18:06:00Z</published>
    <updated>2011-12-20T16:47:00Z</updated>
    <category term="Blog"/>
    <category term="Not&#237;cias"/>
    <category term="ego"/>
    <category term="globo.com"/>
    <category term="ipad"/>
    <link href="http://mobits.com.br/2011/12/19/mobits-desenvolve-aplicativo-do-ego-para-a-globo-com" rel="alternate" type="text/html"/>
    <title>Mobits desenvolve aplicativo do Ego para a Globo.com</title>
<summary type="html">&lt;p&gt;Desenvolvido pela Globo.com e pela Mobits, o aplicativo para iPad com conteúdo exclusivo do portal Ego chega à App Store.&lt;/p&gt;</summary><content type="html">
            &lt;p&gt;Desenvolvido pela Globo.com e pela Mobits, o aplicativo para iPad com conteúdo exclusivo do portal Ego chega à App Store.&lt;/p&gt;
&lt;p&gt;&lt;img title=&quot;Capa do Ego&quot; src=&quot;http://www.mobits.com.br/assets/2011/12/16/ego-capa.png&quot; alt=&quot;Capa do Ego&quot; /&gt;&lt;/p&gt;

&lt;p&gt;O aplicativo traz o conteúdo do portal &lt;a href=&quot;http://ego.globo.com&quot;&gt;Ego&lt;/a&gt; com uma experiência diferente - visualização das matérias no formato de uma revista - e permite ao leitor ver os detalhes das notícias, as fotos, além de compartilhar nas principais redes sociais.&lt;/p&gt;

&lt;p&gt;&lt;img title=&quot;Página do Ego&quot; src=&quot;http://www.mobits.com.br/assets/2011/12/16/ego-pagina.png&quot; alt=&quot;Página do Ego&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img title=&quot;Matéria do Ego&quot; src=&quot;http://www.mobits.com.br/assets/2011/12/16/ego-materia.png&quot; alt=&quot;Matéria do Ego&quot; /&gt;&lt;/p&gt;

&lt;p&gt;O aplicativo está disponível para download na &lt;a href=&quot;http://itunes.apple.com/br/app/ego/id488836833?mt=8&quot;&gt;App Store&lt;/a&gt;. &lt;/p&gt;

&lt;div class=&quot;relacionados&quot;&gt;
  &lt;h4&gt;POSTS RELACIONADOS:&lt;/h4&gt;
    &lt;ul&gt;
      &lt;li&gt;&lt;a href=&quot;http://www.mobits.com.br/2011/2/1/aplicativo-do-g1-para-ipad-lancado&quot;&gt;Aplicativo do G1 para iPad é lançado!&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;http://www.mobits.com.br/2011/1/12/mobits-participa-do-bbb-11&quot;&gt;Mobits participa do BBB 11&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;http://www.mobits.com.br/2010/3/16/globoesporte-com-e-mobits-lancam-app-sobre-futebol&quot;&gt;Globoesporte.com e Mobits lançam app sobre futebol&lt;/a&gt;&lt;/li&gt;
    &lt;/ul&gt;
&lt;/div&gt;
          </content>  </entry>
  <entry xml:base="http://mobits.com.br/">
    <author>
      <name>Hildi</name>
    </author>
    <id>tag:mobits.com.br,2011-12-01:761</id>
    <published>2011-12-01T22:01:00Z</published>
    <updated>2011-12-01T22:03:03Z</updated>
    <category term="Blog"/>
    <category term="Not&#237;cias"/>
    <category term="androidconf"/>
    <category term="evento"/>
    <link href="http://mobits.com.br/2011/12/1/mobits-na-androidconf-brasil-2011" rel="alternate" type="text/html"/>
    <title>Mobits na AndroidConf Brasil 2011</title>
<summary type="html">&lt;p&gt;Como já havíamos comentado por &lt;a href=&quot;http://www.mobits.com.br/2011/11/8/vem-ai-a-androidconf-2011&quot;&gt;aqui&lt;/a&gt;, no último sábado rolou a primeira edição do &lt;a href=&quot;http://androidconf.com.br/&quot;&gt;AndroidConf Brasil&lt;/a&gt;. E tenho que dizer que o evento foi um sucesso! Com todas as 250 vagas preenchidas, a conferência foi marcada por palestras muito interessantes. Veja o que rolou por lá!&lt;/p&gt;</summary><content type="html">
            &lt;p&gt;Como já havíamos comentado por &lt;a href=&quot;http://www.mobits.com.br/2011/11/8/vem-ai-a-androidconf-2011&quot;&gt;aqui&lt;/a&gt;, no último sábado rolou a primeira edição do &lt;a href=&quot;http://androidconf.com.br/&quot;&gt;AndroidConf Brasil&lt;/a&gt;. E tenho que dizer que o evento foi um sucesso! Com todas as 250 vagas preenchidas, a conferência foi marcada por palestras muito interessantes. Veja o que rolou por lá!&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://www.mobits.com.br/assets/2011/11/30/android_conf_foto.png&quot; /&gt;&lt;/p&gt;

&lt;p&gt;O AndroidConf contou com quatro &lt;em&gt;keynotes&lt;/em&gt; principais, dois nacionais e dois internacionais. São eles:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Bruno de Oliveira (&lt;a href=&quot;http://www.google.com.br/intl/pt-BR/about/corporate/company/&quot;&gt;Google Brasil&lt;/a&gt;) - em sua palestra de abertura, ele contou sobre as novidades do &lt;a href=&quot;http://developer.android.com/sdk/android-4.0-highlights.html&quot;&gt;Ice Cream Sandwich&lt;/a&gt;, versão recém-lançada do sistema operacional Android;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Mark Allison (&lt;a href=&quot;http://blog.stylingandroid.com/&quot;&gt;StylingAndroid.com&lt;/a&gt;) - blogueiro do site &lt;a href=&quot;http://blog.stylingandroid.com/&quot;&gt;StylingAndroid.com&lt;/a&gt; e deu diversas dicas de como fazer diagramações no Android;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Ricardo Lecheta (&lt;a href=&quot;http://www.livetouch.com.br/&quot;&gt;Livetouch&lt;/a&gt;) - autor do primeiro livro em português sobre o assunto (&lt;a href=&quot;http://www.livroandroid.com.br/&quot;&gt;Google Android - aprenda a criar aplicações para dispositivos móveis com o Android SDK&lt;/a&gt;) falou sobre como o uso de &lt;em&gt;Fragments&lt;/em&gt; pode facilitar a vida quando se tem muitas informações em telas de &lt;em&gt;tablet&lt;/em&gt;;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Michael Burton (&lt;a href=&quot;http://www.groupon.com.br/&quot;&gt;Groupon&lt;/a&gt;) - fechou o evento, apresentando o &lt;a href=&quot;http://code.google.com/p/roboguice/&quot;&gt;RoboGuice: Dependency Injection for Android&lt;/a&gt;. O RoboGuice visa facilitar o desenvolvimento de aplicações Android.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Além dos &lt;em&gt;keynotes&lt;/em&gt;, também teve palestras abordando os mais diversos assuntos como: a criação de jogos, uso de OpenGL,  o gerenciamento de memória, persistência de dados e automação residencial. Houve também um Coding Dojo e um Lightning Talks dos participantes. No Lightning Talks, os participantes tiveram a oportunidade de realizar uma mini-palestra de 5 minutos cada.&lt;/p&gt;

&lt;p&gt;Nós, da Mobits, ficamos muito felizes e satisfeitos com a organização e o resultado do evento. Acreditamos que é importante apoiar e incentivar iniciativas como esta, que visam o crescimento da comunidade de desenvolvedores &lt;em&gt;mobile&lt;/em&gt; no Brasil.&lt;/p&gt;

&lt;div class=&quot;relacionados&quot;&gt;
  &lt;h4&gt;POSTS RELACIONADOS:&lt;/h4&gt;
    &lt;ul&gt;

      &lt;li&gt;&lt;a href=&quot;http://www.mobits.com.br/2010/9/28/mobits-no-i-prmio-mobilefest-de-aplicativos-para-celular&quot;&gt;Mobits no I Prêmio Mobilefest de Aplicativos para Celular&lt;/a&gt;&lt;/li&gt;

      &lt;li&gt;&lt;a href=&quot;http://www.mobits.com.br/2010/3/30/mobits-no-movilforum-latinoamerica-2010&quot;&gt;Mobits no Movilforum Latinoamerica 2010&lt;/a&gt;&lt;/li&gt;
    &lt;/ul&gt;
&lt;/div&gt;
          </content>  </entry>
  <entry xml:base="http://mobits.com.br/">
    <author>
      <name>Karin</name>
    </author>
    <id>tag:mobits.com.br,2011-12-01:763</id>
    <published>2011-12-01T18:01:00Z</published>
    <updated>2011-12-01T18:18:09Z</updated>
    <category term="Blog"/>
    <category term="android"/>
    <category term="layout"/>
    <link href="http://mobits.com.br/2011/12/1/dicas-de-layout-para-aplicativos-android" rel="alternate" type="text/html"/>
    <title>Dicas de layout para aplicativos Android</title>
<summary type="html">&lt;p&gt;O &lt;a href=&quot;http://developer.android.com&quot;&gt;Android SDK&lt;/a&gt; provê diversos recursos interessantes para a criação de layouts que se adaptam às diversas telas e resoluções dos aparelhos. Seguem algumas dicas que costumamos utilizar em nossos projetos.&lt;/p&gt;</summary><content type="html">
            &lt;p&gt;O &lt;a href=&quot;http://developer.android.com&quot;&gt;Android SDK&lt;/a&gt; provê diversos recursos interessantes para a criação de layouts que se adaptam às diversas telas e resoluções dos aparelhos. Seguem algumas dicas que costumamos utilizar em nossos projetos.&lt;/p&gt;
&lt;h3&gt;Imagens .9.png&lt;/h3&gt;

&lt;p&gt;Como aplicativos Android podem ser instalados em vários &lt;em&gt;smartphones&lt;/em&gt; que possuem &lt;a href=&quot;http://developer.android.com/guide/practices/screens_support.html&quot;&gt;telas diferentes&lt;/a&gt;, a gente acaba tendo que fazer várias imagens de tamanhos diferentes. Mas em alguns casos, nós podemos utilizar as imagens .9.png. &lt;/p&gt;

&lt;p&gt;Mas o que é esse formato? Simples, ele permite que as imagens sejam esticadas, sem perder qualidade, vertical e horizontalmente (conforme determinado por você), dependendo da tela do aparelho. E como fazer? Basta utilizar um programinha disponibilizado pela Google quando você baixa o Android SDK chamado &lt;strong&gt;draw9patch&lt;/strong&gt;. Para saber mais, &lt;a href=&quot;http://developer.android.com/guide/developing/tools/draw9patch.html&quot;&gt;clique aqui&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Abaixo, um exemplo de imagem .9.png:&lt;/p&gt;

&lt;p&gt;&lt;img title=&quot;Imagem .9.png&quot; src=&quot;http://www.mobits.com.br/assets/2011/11/28/button.9.png&quot; alt=&quot;Imagem .9.png&quot; /&gt;&lt;/p&gt;

&lt;p&gt;O exemplo acima poderia gerar os seguintes resultados sem nenhum esforço:&lt;/p&gt;

&lt;p&gt;&lt;img title=&quot;Botão 1&quot; src=&quot;http://www.mobits.com.br/assets/2011/12/1/button1.png&quot; alt=&quot;Botão 1&quot; /&gt; &lt;img title=&quot;Botão 2&quot; src=&quot;http://www.mobits.com.br/assets/2011/12/1/button2.png&quot; alt=&quot;Botão 2&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Aqui na empresa nós utilizamos muito esse artifício para botões que possuem o mesmo &lt;em&gt;background&lt;/em&gt;, economizando o trabalho do designer e também o tamanho do aplicativo.&lt;/p&gt;

&lt;h3&gt;Gradiente (Degradê)&lt;/h3&gt;

&lt;p&gt;Quando queremos utilizar algum tipo de gradiente nos nossos layouts, podemos criar um arquivo xml em &lt;em&gt;drawable&lt;/em&gt; da seguinte maneira:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&amp;gt;
&amp;lt;shape xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;
android:shape=&quot;rectangle&quot;&amp;gt;
&amp;lt;gradient android:startColor=&quot;#7F9BA4&quot; android:endColor=&quot;#59707D&quot;
    android:angle=&quot;270&quot; /&amp;gt;
&amp;lt;/shape&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;O que ele faz nada mais é que determinar o formato do gradiente, no nosso caso é retangular, e as cores de início e fim. É bem simples e o resultado é igual ao de uma imagem feita do mesmo jeito. O mais legal é que você também economizará o trabalho do designer e o tamanho do aplicativo.&lt;/p&gt;

&lt;h3&gt;Borda arredondada&lt;/h3&gt;

&lt;p&gt;Abaixo, outra dica: implementar bordas arredondadas.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&amp;gt;
&amp;lt;shape xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;&amp;gt; 
    &amp;lt;solid android:color=&quot;#00FFFF&quot; /&amp;gt; 
    &amp;lt;padding android:left=&quot;4dp&quot; android:top=&quot;4dp&quot; 
        android:right=&quot;4dp&quot; android:bottom=&quot;4dp&quot; /&amp;gt; 
    &amp;lt;corners android:radius=&quot;4dp&quot; /&amp;gt; 
&amp;lt;/shape&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Basta você colocar na pasta &lt;em&gt;drawable&lt;/em&gt; e chamá-lo no &lt;em&gt;background&lt;/em&gt; de um &lt;em&gt;LinearLayout&lt;/em&gt;, por exemplo. Os cantos ficarão arredondados!&lt;/p&gt;

&lt;h3&gt;Diferentes estados de botão&lt;/h3&gt;

&lt;p&gt;Quando temos um botão em nosso layout, é importante exibir os seus diferentes estados para o usuário saber o que está acontecendo. Para isso, precisamos criar um arquivo xml em &lt;em&gt;drawable&lt;/em&gt; com o seguinte conteúdo, por exemplo:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&amp;gt;
&amp;lt;selector xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;&amp;gt;
    &amp;lt;item android:state_pressed=&quot;true&quot;  android:drawable=&quot;@drawable/botao_selecionado&quot; /&amp;gt;    
    &amp;lt;item android:state_focused=&quot;true&quot; android:drawable=&quot;@drawable/botao_com_foco&quot; /&amp;gt; 
    &amp;lt;item android:drawable=&quot;@drawable/botao_normal&quot; /&amp;gt;
&amp;lt;/selector&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Para usá-lo, basta chamá-lo no &lt;em&gt;background&lt;/em&gt; do botão em questão.&lt;/p&gt;

&lt;p&gt;Espero que essas dicas ajudem a vocês como me ajudaram. E se tiver outra, deixe seu comentário! Até breve :)&lt;/p&gt;

&lt;div class=&quot;relacionados&quot;&gt;
  &lt;h4&gt;POSTS RELACIONADOS:&lt;/h4&gt;
    &lt;ul&gt;
      &lt;li&gt;&lt;a href=&quot;http://www.mobits.com.br/2011/10/3/criando-lista-com-secoes-em-android&quot;&gt;Criando lista com seções em Android&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;http://www.mobits.com.br/2011/5/27/como-criar-cabecalho-e-rodape-no-android&quot;&gt;Como criar cabeçalho e rodapé no Android&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;http://www.mobits.com.br/2011/5/20/personalizando-fontes-no-android&quot;&gt;Personalizando fontes no Android&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;http://www.mobits.com.br/2010/6/10/como-fazer-layouts-para-android&quot;&gt;Como fazer layouts para Android&lt;/a&gt;&lt;/li&gt;
    &lt;/ul&gt;
&lt;/div&gt;
          </content>  </entry>
  <entry xml:base="http://mobits.com.br/">
    <author>
      <name>Hildi</name>
    </author>
    <id>tag:mobits.com.br,2011-11-28:760</id>
    <published>2011-11-28T17:11:00Z</published>
    <updated>2011-12-22T14:19:40Z</updated>
    <category term="Blog"/>
    <category term="Not&#237;cias"/>
    <category term="rh"/>
    <link href="http://mobits.com.br/2011/11/28/vaga-de-estgio-para-dispositivos-mveis" rel="alternate" type="text/html"/>
    <title>Vaga de est&#225;gio para dispositivos m&#243;veis</title>
<summary type="html">&lt;p&gt;Venha aprender e desenvolver para dispositivos móveis!&lt;/p&gt;</summary><content type="html">
            &lt;p&gt;Venha aprender e desenvolver para dispositivos móveis!&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;ATUALIZADO&lt;/strong&gt;: Inscrições encerradas. Obrigado a todos que enviaram seus currículos.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;http://www.mobits.com.br/assets/2011/11/28/PanfletoVaga.png&quot; width=&quot;400px&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Estamos em busca de um estagiário para participar de nossos projetos para dispositivos móveis. A oportunidade é para aprender e desenvolver nas seguintes plataformas:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;iOS&lt;/li&gt;
&lt;li&gt;Android&lt;/li&gt;
&lt;li&gt;Blackberry&lt;/li&gt;
&lt;li&gt;Outras (dependendo da demanda)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A carga horária é de 20h/semana no local (Centro) com horário flexível.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Requisitos&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Estar cursando o 5o período em diante;&lt;/li&gt;
&lt;li&gt;Bons conhecimentos em Java;&lt;/li&gt;
&lt;li&gt;Facilidade para aprender novas linguagens.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Desejável&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Contato com desenvolvimento Android;&lt;/li&gt;
&lt;li&gt;Experiência de trabalho em equipe.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Interessados, enviem currículo para rh[arroba]mobits.com.br&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://mobits.com.br/">
    <author>
      <name>Felipe Barreto</name>
    </author>
    <id>tag:mobits.com.br,2011-11-23:758</id>
    <published>2011-11-23T17:15:00Z</published>
    <updated>2011-11-23T17:16:37Z</updated>
    <category term="Blog"/>
    <category term="desenvolvimento"/>
    <category term="iphone sdk"/>
    <link href="http://mobits.com.br/2011/11/23/atalhos-de-teclado-para-o-xcode-4" rel="alternate" type="text/html"/>
    <title>Atalhos de teclado para o Xcode 4</title>
<content type="html">
            &lt;p&gt;Há pouco tempo, publiquei um &lt;a href=&quot;http://mobits.com.br/2011/8/13/5-referencias-uteis-para-desenvolvedores-ios&quot;&gt;artigo com algumas dicas&lt;/a&gt; para desenvolvedores iOS, incluindo uma lista com os principais atalhos de teclado para o Xcode 3.x. &lt;/p&gt;

&lt;p&gt;Contudo, com a migração para o Xcode 4, qualquer desenvolvedor que esteja acostumado com os atalhos antigos, poderá ficar &lt;del&gt;furioso&lt;/del&gt; perdido, pois além dos novos comandos, os atalhos antigos foram em grande parte alterados.&lt;/p&gt;

&lt;p&gt;Para ajudar a quem gosta de programar usando atalhos de teclado para tudo, seguem as listas:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://pragmaticstudio.com/media/Xcode4Shortcuts.pdf&quot;&gt;Principais atalhos&lt;/a&gt; (http://pragmaticstudio.com/)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://cloud.github.com/downloads/Machx/Xcode-Keyboard-Shortcuts/Xcode_Shortcuts.pdf&quot;&gt;Lista completa&lt;/a&gt; (http://cocoasamurai.blogspot.com/)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Se você &lt;del&gt;estiver revoltado&lt;/del&gt; sentir-se desconfortável com alguma mudança, também é possível reconfigurar facilmente os atalhos antigos em Xcode &gt; Preferences... &gt; Key Bindings&lt;/p&gt;

&lt;div class=&quot;relacionados&quot;&gt;
  &lt;h4&gt;POSTS RELACIONADOS:&lt;/h4&gt;
    &lt;ul&gt;

      &lt;li&gt;&lt;a href=&quot;http://mobits.com.br/2011/8/13/5-referencias-uteis-para-desenvolvedores-ios&quot;&gt;5 referências úteis para desenvolvedores iOS&lt;/a&gt;&lt;/li&gt;

      &lt;li&gt;&lt;a href=&quot;http://mobits.com.br/2011/9/26/configurando-o-nszombieenabled-no-xcode-4&quot;&gt; Configurando o NSZombieEnabled no Xcode 4 &lt;/a&gt;&lt;/li&gt;

      &lt;li&gt;&lt;a href=&quot;http://mobits.com.br/2011/9/9/2-dicas-simples-para-trabalhar-com-nsnull&quot;&gt;2 dicas simples para trabalhar com NSNull&lt;/a&gt;&lt;/li&gt;

    &lt;/ul&gt;
&lt;/div&gt;
          </content>  </entry>
  <entry xml:base="http://mobits.com.br/">
    <author>
      <name>Quintana</name>
    </author>
    <id>tag:mobits.com.br,2011-11-18:755</id>
    <published>2011-11-18T22:17:00Z</published>
    <updated>2011-11-18T22:20:22Z</updated>
    <category term="Blog"/>
    <category term="desenvolvimento"/>
    <category term="ios"/>
    <category term="iphone sdk"/>
    <link href="http://mobits.com.br/2011/11/18/como-integrar-seu-aplicativo-com-o-twitter-no-ios-5" rel="alternate" type="text/html"/>
    <title>Como integrar seu aplicativo com o Twitter no iOS 5</title>
<summary type="html">&lt;p&gt;A nova versão do sistema operacional da Apple trouxe muitas &lt;a href=&quot;http://mobits.com.br/2011/6/13/ios-5-0-novidades-para-desenvolvedores&quot;&gt;novidades para os desenvolvedores&lt;/a&gt;, uma delas é a integração com o &lt;a href=&quot;http://www.twitter.com/&quot;&gt;Twitter&lt;/a&gt;.&lt;/p&gt;</summary><content type="html">
            &lt;p&gt;A nova versão do sistema operacional da Apple trouxe muitas &lt;a href=&quot;http://mobits.com.br/2011/6/13/ios-5-0-novidades-para-desenvolvedores&quot;&gt;novidades para os desenvolvedores&lt;/a&gt;, uma delas é a integração com o &lt;a href=&quot;http://www.twitter.com/&quot;&gt;Twitter&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Antes dessa integração, já era possível compartilhar no &lt;a href=&quot;http://www.twitter.com/&quot;&gt;Twitter&lt;/a&gt; usando suas APIs, mas o usuário precisava se autenticar pelo menos uma vez em cada aplicativo antes de compartilhar algo. Com a integração nativa, agora basta ele colocar seu usuário e senha uma vez nas configurações do aparelho e usar o mesmo login em todos os aplicativos que implementarem essa integração.&lt;/p&gt;

&lt;h3&gt;Implementando a integração&lt;/h3&gt;

&lt;p&gt;Existem duas formas de integrar o seu aplicativo com o &lt;a href=&quot;http://www.twitter.com/&quot;&gt;Twitter&lt;/a&gt; no iOS 5. A mais complexa e flexível é utilizar a classe &lt;i&gt;TWRequest&lt;/i&gt;, que é capaz de acessar a API do &lt;a href=&quot;http://www.twitter.com/&quot;&gt;Twitter&lt;/a&gt; e suas mais diversas funcionalidades. A outra forma é bem mais rápida e prática, mas para um uso restrito, que utiliza a classe &lt;i&gt;TWTweetComposeViewController&lt;/i&gt;. Trataremos nesse post apenas a segunda forma.&lt;/p&gt;

&lt;p&gt;A primeira coisa que precisamos fazer é autenticar o usuário, para isso utilizamos o &lt;i&gt;Accounts Framework&lt;/i&gt;, vale dizer que esse &lt;i&gt;framework&lt;/i&gt; hoje só é usado pelo &lt;a href=&quot;http://www.twitter.com/&quot;&gt;Twitter&lt;/a&gt; mas futuramente ele poderá ser usado por outras redes, como o &lt;a href=&quot;http://www.facebook.com/&quot;&gt;facebook&lt;/a&gt;. Para usá-lo importe o framework &lt;i&gt;Accounts.framework&lt;/i&gt; para o seu código e escreva no &lt;i&gt;viewDidLoad&lt;/i&gt; da sua classe:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;ACAccountStore *accountStore = [[ACAccountStore alloc] init];
ACAccountType *accountType = [accountStore accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierTwitter];

[accountStore requestAccessToAccountsWithType:accountType withCompletionHandler:^(BOOL granted, NSError* error) {

    ACAccount *account = [[ACAccount alloc] initWithAccountType:accountType];
    NSLog(@&quot;%@, %@&quot;, account.username, account.description);
}];
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Esse código vai solicitar a permissão do usuário para acessar a sua conta do Twitter:&lt;/p&gt;

&lt;p&gt;&lt;img title=&quot;Twitter no iOS&quot; src=&quot;http://mobits.com.br/assets/2011/11/18/IMG_0696.PNG&quot; alt=&quot;Twitter no iOS&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Se o usuário negar a permissão, a variável &lt;i&gt;granted&lt;/i&gt; virá negativa no método de &lt;em&gt;callback&lt;/em&gt;. O próximo passo é importar o &lt;em&gt;framework&lt;/em&gt; &lt;i&gt;Twitter.framework&lt;/i&gt; e usar o &lt;i&gt;TWTweetComposeViewController&lt;/i&gt; para enviar o &lt;em&gt;tweet&lt;/em&gt;. O código fica dessa forma:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;if([TWTweetComposeViewController canSendTweet]) {

    TWTweetComposeViewController *controller = [[TWTweetComposeViewController alloc] init];
    [controller setInitialText:@&quot;Testando a integracao com o Twitter&quot;];
    controller.completionHandler = ^(TWTweetComposeViewControllerResult result)  {

        [self dismissModalViewControllerAnimated:YES];

        switch (result) {
            case TWTweetComposeViewControllerResultCancelled:                    
                break;

            case TWTweetComposeViewControllerResultDone:
                break;

            default:
                break;
        }
    };

    [self presentModalViewController:controller animated:YES];
}
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;O &lt;em&gt;callback&lt;/em&gt; retorna se o &lt;em&gt;tweet&lt;/em&gt; foi enviado ou cancelado. A tela do &lt;i&gt;TWTweetComposeViewController&lt;/i&gt; é uma tela padrão:&lt;/p&gt;

&lt;p&gt;&lt;img title=&quot;Twitter no iOS&quot; src=&quot;http://mobits.com.br/assets/2011/11/18/Screen_shot_2011-11-18_at_18.05.37.png&quot; alt=&quot;Twitter no iOS&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Como um usuário pode cadastrar várias contas na configuração do iOS 5, ele poderá escolher a conta na hora de &lt;em&gt;twittar&lt;/em&gt;.&lt;/p&gt;

&lt;h3&gt;Cuidados com o iOS 4&lt;/h3&gt;

&lt;p&gt;Não podemos esquecer de que uma grande quantidade de aparelhos ainda possui o iOS 4, então é importante tomar os seguintes cuidados: importar os &lt;em&gt;frameworks&lt;/em&gt; necessários (&lt;em&gt;Twitter.framework&lt;/em&gt; e &lt;em&gt;Accounts.framework&lt;/em&gt;) de forma opcional (ou &lt;em&gt;weak&lt;/em&gt;) e verificar a existência das classes que não existem no iOS 4 antes de usá-las, conforme exemplo abaixo:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;Class twitterClass = (NSClassFromString(@&quot;TWTweetComposeViewControllerResult&quot;));

// Verifica se a classe existe no sistema operacional
if (twitterClass != nil) {
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Desta forma, você poderá usar a nova integração apenas nos aparelhos atualizados e continuar rodando o aplicativo nos aparelhos antigos.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://mobits.com.br/">
    <author>
      <name>Hildi</name>
    </author>
    <id>tag:mobits.com.br,2011-11-08:750</id>
    <published>2011-11-08T15:22:00Z</published>
    <updated>2011-11-08T15:23:05Z</updated>
    <category term="Blog"/>
    <category term="Not&#237;cias"/>
    <category term="androidconf"/>
    <category term="evento"/>
    <link href="http://mobits.com.br/2011/11/8/vem-ai-a-androidconf-2011" rel="alternate" type="text/html"/>
    <title>Vem a&#237; a AndroidConf 2011</title>
<summary type="html">&lt;p&gt;Quem curte desenvolvimento Android não pode deixar de participar da primeira edição do &lt;a href=&quot;http://androidconf.com.br/&quot;&gt;AndroidConf&lt;/a&gt;!&lt;/p&gt;</summary><content type="html">
            &lt;p&gt;Quem curte desenvolvimento Android não pode deixar de participar da primeira edição do &lt;a href=&quot;http://androidconf.com.br/&quot;&gt;AndroidConf&lt;/a&gt;!&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://www.mobits.com.br/assets/2011/11/8/androidConf.png&quot; /&gt;&lt;/p&gt;

&lt;p&gt;A conferência, que conta com o patrocínio da Mobits, será composta por palestras (&lt;em&gt;key-notes&lt;/em&gt;), mini-palestras, &lt;em&gt;lightning talks&lt;/em&gt; (palestras relâmpago) e até mesmo um &lt;em&gt;Coding Dojo&lt;/em&gt; utilizando a plataforma Android.&lt;/p&gt;

&lt;p&gt;Dentre os temas do evento, serão tratados:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Desenvolvimento de apps para Android;&lt;/li&gt;
&lt;li&gt;Ferramentas de desenvolvimento para Android;&lt;/li&gt;
&lt;li&gt;Desenvolvimento de jogos;&lt;/li&gt;
&lt;li&gt;Integração do Android a eletrônicos;&lt;/li&gt;
&lt;li&gt;Android no mercado nacional e internacional.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Inscreva-se já: &lt;a href=&quot;http://androidconf.com.br/&quot;&gt;http://androidconf.com.br/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Até lá!&lt;/p&gt;
          </content>  </entry>
</feed>

