<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Out of Memory &#187; Mac</title>
	<atom:link href="http://www.outofmemory.blog.br/category/mac/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.outofmemory.blog.br</link>
	<description>Blog sobre Tecnologia, desenvolvimento e games !!!</description>
	<lastBuildDate>Thu, 13 Oct 2011 13:25:04 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Steve Jobs</title>
		<link>http://www.outofmemory.blog.br/2011/10/06/steve-jobs/</link>
		<comments>http://www.outofmemory.blog.br/2011/10/06/steve-jobs/#comments</comments>
		<pubDate>Thu, 06 Oct 2011 12:58:37 +0000</pubDate>
		<dc:creator>Alex Chiaranda</dc:creator>
				<category><![CDATA[Geral]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[steve jobs]]></category>

		<guid isPermaLink="false">http://www.outofmemory.blog.br/?p=924</guid>
		<description><![CDATA[É com muito pesar que recebemos ontem a notícia do falecimento de um dos grandes inovadores deste século (e do século passado também, é bom lembrar). Tenho certeza que ele mudou a vida de muita gente, e nossos filhos vão &#8230; <a class="more-link" href="http://www.outofmemory.blog.br/2011/10/06/steve-jobs/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div id="attachment_927" class="wp-caption alignleft" style="width: 250px"><a href="http://www.outofmemory.blog.br/wp-content/uploads/2011/10/steve_jobs_black_apple.jpg"><img class="size-medium wp-image-927 " title="Apple Steve Jobs" src="http://www.outofmemory.blog.br/wp-content/uploads/2011/10/steve_jobs_black_apple-300x300.jpg" alt="" width="240" height="240" /></a><p class="wp-caption-text">Apple Steve Jobs</p></div>
<p>É com muito pesar que recebemos ontem a notícia do falecimento de um dos grandes inovadores deste século (e do século passado também, é bom lembrar).</p>
<p>Tenho certeza que ele mudou a vida de muita gente, e nossos filhos vão se beneficiar de tudo que ele começou nesses últimos anos.</p>
<p><a title="Steve Jobs" href="http://www.apple.com/stevejobs/" target="_blank">Steve Jobs</a>, o mundo sentirá sua falta !</p>
]]></content:encoded>
			<wfw:commentRss>http://www.outofmemory.blog.br/2011/10/06/steve-jobs/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>We&#8217;re back!</title>
		<link>http://www.outofmemory.blog.br/2011/10/03/were-back/</link>
		<comments>http://www.outofmemory.blog.br/2011/10/03/were-back/#comments</comments>
		<pubDate>Tue, 04 Oct 2011 00:10:40 +0000</pubDate>
		<dc:creator>Gabriel Biffi</dc:creator>
				<category><![CDATA[Filmes]]></category>
		<category><![CDATA[Geral]]></category>
		<category><![CDATA[Informática]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Jogos]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[Seriados]]></category>
		<category><![CDATA[Tecnologia]]></category>
		<category><![CDATA[batman]]></category>
		<category><![CDATA[dark souls]]></category>
		<category><![CDATA[elder scrolls]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[lord of the rings]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[rage]]></category>
		<category><![CDATA[skype]]></category>
		<category><![CDATA[tela de iphone 4 quebrada]]></category>

		<guid isPermaLink="false">http://www.outofmemory.blog.br/?p=881</guid>
		<description><![CDATA[Muitas coisas aconteceram nesses últimos meses. Jogos, filmes, séries, novas tecnologias, adquiri um Android (sim&#8230;podem acreditar &#8211; mas por pouco tempo), OSX Lion, Windows 8, novos tablets, novos smartphones, anúncios bombásticos (Microsoft compra Skype, Google compra Motorola)&#8230;ufa! quanta coisa! Impossível &#8230; <a class="more-link" href="http://www.outofmemory.blog.br/2011/10/03/were-back/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Muitas coisas aconteceram nesses últimos meses. Jogos, filmes, séries, novas tecnologias, adquiri um Android (sim&#8230;podem acreditar &#8211; mas por pouco tempo), OSX Lion, Windows 8, novos tablets, novos smartphones, anúncios bombásticos (Microsoft compra Skype, Google compra Motorola)&#8230;ufa! quanta coisa! Impossível eu relatar todos os acontecimentos em um único post.</p>
<p>O meu amigo Alex não deixou o blog morrer. Publicou algumas matérias bem interessantes. O meu post sobre <a href="http://www.outofmemory.blog.br/2010/10/04/tela-de-iphone-4-quebrada/" target="_blank">&#8220;Tela de iPhone 4 Quebrada&#8221;</a> foi bem útil para diversas &#8220;vítimas&#8221; dessa catástrofe.</p>
<p>Mas vamos la, nada como um post de games pra voltar com ânimo! E olha que esse mês de Outubro/Novembro está de arrebentar.</p>
<p>Não vou fazer os meus previews, pois seria muita burrice. Digo isso pois como fiquei ausente nos últimos meses, o que não faltou foram sites publicando notícias desses jogos.</p>
<p>Por outro lado, vou listar os que eu mais aguardo esse ano e que, ao meu ver, são GOTY. Se você é um gamer, não pode perder esses lançamentos (de jeito nenhum).</p>
<ul>
<li><a href="http://www.youtube.com/watch?v=yopt1hJtzQU" target="_blank">Dark Souls</a> (sucessor espiritual de Demon&#8217;s Souls) &#8211; Lançamento 04/10</li>
<li><a href="http://www.youtube.com/watch?v=OVX9V_Uf30Q" target="_blank">Rage</a> - Lançamento 04/10</li>
<li><a href="http://www.youtube.com/watch?v=-V1ZF5cNYCs" target="_blank">Batman: Arkham City</a> &#8211; Lançamento 18/10</li>
<li><a href="http://www.youtube.com/watch?v=k5ySDehGEYE" target="_blank">The Lord of the Rings: War in the North</a> &#8211; Lançamento 01/11</li>
<li><a href="http://www.youtube.com/watch?v=PjqsYzBrP-M" target="_blank">The Elder Scrolls Skyrim</a> &#8211; Lançamento 11/11</li>
</ul>
<p>E, amanhã, temos o evento tão aguardando da Maça. Chega de <a title="Rumor: iPhone 5" href="http://www.outofmemory.blog.br/2011/01/21/rumor-iphone-5/">rumores</a>, e vamos ao iPhone 5!! e torcer para que ele não seja de vidro!!!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.outofmemory.blog.br/2011/10/03/were-back/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Instalando o mercurial no Mac</title>
		<link>http://www.outofmemory.blog.br/2011/05/03/instalando-o-mercurial-no-mac/</link>
		<comments>http://www.outofmemory.blog.br/2011/05/03/instalando-o-mercurial-no-mac/#comments</comments>
		<pubDate>Wed, 04 May 2011 02:18:35 +0000</pubDate>
		<dc:creator>Alex Chiaranda</dc:creator>
				<category><![CDATA[Dev]]></category>
		<category><![CDATA[Geral]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[mercurial]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://www.outofmemory.blog.br/?p=841</guid>
		<description><![CDATA[para quem não conhece, o Mercurial é um gerenciador de versão para código (como o SVN e o saudoso CVS), ele é muito popular hoje no meio opensource, sendo possível até encontrar repositórios gratuítos pela internet. Após encontrar vários métodos &#8230; <a class="more-link" href="http://www.outofmemory.blog.br/2011/05/03/instalando-o-mercurial-no-mac/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft" title="Mercurial" src="http://www.selenic.com/hg-logo/logo-droplets-100.png" alt="" width="100" height="120" />para quem não conhece, o Mercurial é um gerenciador de versão para código (como o SVN e o saudoso CVS), ele é muito popular hoje no meio opensource, sendo possível até encontrar repositórios gratuítos pela internet.</p>
<p>Após encontrar vários métodos mirabolantes, baixando source, binário, usando o ports (que por sinal não deu certo), finalmente encontrei o melhor jeito de instalar</p>
<pre>

Alex-Chiarandas-MacBook-Pro:~ aechiara$ easy_install -U mercurial
</pre>
<p>após várias mensagens na tela (downloading, installing &#8230;.) você deve ver a mensagem &#8220;Finished processing dependencies for mercurial&#8221;, para verificar basta digitar hg no prompt, a saída deve ser algo assim:</p>
<pre>

Alex-Chiarandas-MacBook-Pro:~ aechiara$ hg
Mercurial Distributed SCM

basic commands:

add        add the specified files on the next commit
annotate   show changeset information by line for each file
clone      make a copy of an existing repository
commit     commit the specified files or all outstanding changes
diff       diff repository (or selected files)
export     dump the header and diffs for one or more changesets
forget     forget the specified files on the next commit
init       create a new repository in the given directory
log        show revision history of entire repository or files
merge      merge working directory with another revision
pull       pull changes from the specified source
push       push changes to the specified destination
remove     remove the specified files on the next commit
serve      start stand-alone webserver
status     show changed files in the working directory
summary    summarize working directory state
update     update working directory (or switch revisions)

use "hg help" for the full list of commands or "hg -v" for details
</pre>
<p>simples, rápido e funciona</p>
]]></content:encoded>
			<wfw:commentRss>http://www.outofmemory.blog.br/2011/05/03/instalando-o-mercurial-no-mac/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Apple libera iOS 4.2 Beta</title>
		<link>http://www.outofmemory.blog.br/2010/09/16/apple-libera-ios-4-2-beta/</link>
		<comments>http://www.outofmemory.blog.br/2010/09/16/apple-libera-ios-4-2-beta/#comments</comments>
		<pubDate>Thu, 16 Sep 2010 10:52:25 +0000</pubDate>
		<dc:creator>Alex Chiaranda</dc:creator>
				<category><![CDATA[Informática]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[Tecnologia]]></category>
		<category><![CDATA[AirPlay]]></category>
		<category><![CDATA[AirPort]]></category>
		<category><![CDATA[AirPrint]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[AppleTV]]></category>
		<category><![CDATA[HP]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[ipad]]></category>
		<category><![CDATA[ipod]]></category>

		<guid isPermaLink="false">http://www.outofmemory.blog.br/?p=478</guid>
		<description><![CDATA[Ontem recebi um email da Apple dizendo que já estava disponível a versão 4.2 beta do iOS, devo confessar que fiquei surpreso pois foi a primeira vez que vi a Apple lançar uma versão oficial do iOS (4.1) e a &#8230; <a class="more-link" href="http://www.outofmemory.blog.br/2010/09/16/apple-libera-ios-4-2-beta/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Ontem recebi um email da Apple dizendo que já estava disponível a versão 4.2 beta do iOS, devo confessar que fiquei surpreso pois foi a primeira vez que vi a Apple lançar uma versão oficial do iOS (4.1) e a beta (4.2) praticamente na mesma semana.</p>
<p>Infelizmente ainda não tive tempo de baixar e instalar no iPhone, mas pelo que eu li, tem algumas coisas interessantes. Alem de finalmente unificar as plataformas (mesma versão de iOS para iPhone e iPad) e do <strong>Multitask</strong> para o iPad, ainda introduziram o <strong>AirPrint</strong> (para o iPad) e o <strong>AirPlay</strong>, entre outras funcionalidades.</p>
<p><span id="more-478"></span>O <strong>AirPrint</strong>, como já havia sido anunciado, disponibilizará impressão Wireless direto do <strong>iPad</strong>. Segundo a Apple disse no seu último evento, o AirPrint funcionará de duas maneiras:</p>
<ol>
<li>uma impressora HP (esperamos outras marcas) compatível com a funcionalidade</li>
<li>uma impressora compartilhada em um Mac</li>
</ol>
<p>Já o <strong>AirPlay</strong> possibilitará o Stream de audio/vídeo a partir do seu dispositivo móvel (seja ele iPad, iPhone, iPod) à qualquer aparelho compatível com o <strong>AirPlay</strong>. No entanto, por hora, isso apenas será possível utilizando o <strong>AirPort Express</strong> (para os audios) e a <strong>AppleTV</strong> (para os vídeos), mas a Apple anunciou que vai licenciar fabricantes para produzirem seus produto compatíves com a tecnologia <strong>AirPlay</strong>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.outofmemory.blog.br/2010/09/16/apple-libera-ios-4-2-beta/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Apple anuncia WWDC 2010</title>
		<link>http://www.outofmemory.blog.br/2010/04/29/apple-anuncia-wwdc-2010/</link>
		<comments>http://www.outofmemory.blog.br/2010/04/29/apple-anuncia-wwdc-2010/#comments</comments>
		<pubDate>Thu, 29 Apr 2010 13:24:23 +0000</pubDate>
		<dc:creator>Alex Chiaranda</dc:creator>
				<category><![CDATA[Informática]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[Tecnologia]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[ipad]]></category>
		<category><![CDATA[ipod]]></category>
		<category><![CDATA[ipod touch]]></category>
		<category><![CDATA[wwdc]]></category>

		<guid isPermaLink="false">http://www.outofmemory.blog.br/?p=414</guid>
		<description><![CDATA[A Apple finalmente anunciou a data e local do evento mais esperado pelos MacManíacos do mundo, o WWDC (WorldWide Developers Conference) de 2010 será (como de costume) em San Francisco, no Moscone West, nos dias 7-11 de Junho. Quem tiver &#8230; <a class="more-link" href="http://www.outofmemory.blog.br/2010/04/29/apple-anuncia-wwdc-2010/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>A Apple finalmente anunciou a data e local do evento mais esperado pelos MacManíacos do mundo, o WWDC (WorldWide Developers Conference) de 2010 será (como de costume) em San Francisco, no Moscone West, nos dias 7-11 de Junho.</p>
<p>Quem tiver 1600 dollares disponíveis para inscrição mais despesas de hospedagem e passagem aérea, pode ver mais detalhes de como se cadastrar no <a title="WWDC 2010" href="http://developer.apple.com/wwdc/" target="_blank">site do evento</a>.</p>
<p>Eu infelizmente vou ter que deixar para o ano que vem (de novo).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.outofmemory.blog.br/2010/04/29/apple-anuncia-wwdc-2010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Introdução ao Objective-C &#8211; Synthesized Accessor</title>
		<link>http://www.outofmemory.blog.br/2010/04/29/introducao-ao-objective-c-synthesized-accessor/</link>
		<comments>http://www.outofmemory.blog.br/2010/04/29/introducao-ao-objective-c-synthesized-accessor/#comments</comments>
		<pubDate>Thu, 29 Apr 2010 03:03:02 +0000</pubDate>
		<dc:creator>Alex Chiaranda</dc:creator>
				<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[Objective-C]]></category>
		<category><![CDATA[Tecnologia]]></category>
		<category><![CDATA[accessor]]></category>
		<category><![CDATA[getter]]></category>
		<category><![CDATA[ipad]]></category>
		<category><![CDATA[memória]]></category>
		<category><![CDATA[objective-c]]></category>
		<category><![CDATA[setter]]></category>
		<category><![CDATA[xcode]]></category>

		<guid isPermaLink="false">http://www.outofmemory.blog.br/?p=396</guid>
		<description><![CDATA[Quem programa utilizando Orientação a Objetos sabe bem a importância de criar os atributos de uma classe como private e criar os &#8220;Accessors&#8221; para alterar ou recuperar os valores desses atributos; o Objective-C 2.0 disponibiliza uma maneira muito simples e &#8230; <a class="more-link" href="http://www.outofmemory.blog.br/2010/04/29/introducao-ao-objective-c-synthesized-accessor/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Quem programa utilizando Orientação a Objetos sabe bem a importância de criar os atributos de uma classe como private e criar os &#8220;<strong>Accessors</strong>&#8221; para alterar ou recuperar os valores desses atributos; o Objective-C 2.0 disponibiliza uma maneira muito simples e prática para isso, os &#8220;<strong>Synthesized Accessor Methods</strong>&#8220;.<br />
<span id="more-396"></span><br />
Quando estamos falando de mobile devices (iPhone/iPad) deve-se levar em conta o consumo de memória, e pensando nisso um bom accessor para um atributo <strong>nome</strong> seria mais ou menos assim:</p>
<pre>
- (void) setNome: (NSString *) _nome
{
[nome release];
nome = [[NSString alloc] initWithString: _nome];
}

- (NSString *) nome
{
return nome;
}
</pre>
<p>antes de fazer o set do novo valor, o valor antigo é liberado da memória evitando &#8220;<strong>vazamentos</strong>&#8221; indesejáveis.</p>
<p>Para que o compilador realize essa tarefa, nos poupando muito trabalho, primeiro você declara o atributo utilizando a diretiva &#8220;<strong>@property</strong>&#8221; na sua interface, e depois na implementação da classe utilizar a diretiva &#8220;<strong>@synthesize</strong>&#8220;. Desse modo o compilador vai gerar automaticamente o &#8220;<strong>getter</strong>&#8221; e o &#8220;<strong>setter</strong>&#8221; do seu atributo.</p>
<p>Nada melhor que um exemplo, vamos começar com a interface &#8220;MyClass1.h&#8221;:</p>
<pre>
#import  &lt;Foundation/Foundation.h&gt;

@interface MyClass1 : NSObject
{
int aInt;
NSString *nome;
}

@property int aInt;
@property (copy, nonatomic) NSString *nome;

@end
</pre>
<p>a diretiva &#8220;<strong>@property</strong>&#8221; aceita alguns parâmentros para informar ao compilador como criar o &#8220;<strong>Accessor</strong>&#8220;, no nosso caso queremos que seja feita uma cópia no setter do atributo (como no exemplo acima), então usamos o parâmetro &#8220;<strong>copy</strong>&#8220;, e ainda o &#8220;<strong>nonatomic</strong>&#8221; pois não queremos que o getter faça um &#8220;<strong>retain</strong>&#8221; ou um &#8220;<strong>autorelease</strong>&#8221; antes que ele retorne o valor do atributo (mais sobre o &#8220;<strong>retain</strong>&#8221; e o &#8220;<strong>autorelease</strong>&#8221; nos próximos artigos).</p>
<p>agora o &#8220;MyClass1.m&#8221;:</p>
<pre>
#import "MyClass1.h"

@implementation MyClass1

@synthesize aInt;
@synthesize nome;

@end
</pre>
<p>não está faltando código, é só isso mesmo.</p>
<p>e finalmente um programa que faz a chamada:</p>
<pre>
#import &lt;Foundation/Foundation.h&gt;
#import "MyClass1.h"

int main (int argc, const char * argv[])
{
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];

MyClass1 * m = [[MyClass1 alloc] init];

[m setAInt: 5];
NSLog(@"Valor eh: %i", [m aInt]);

[m setNome: @"Alex"];
NSLog(@"Nome eh: %s", [[m nome] UTF8String]);

[m release];
[pool drain];
return 0;
}
</pre>
<p>você deve ter notado, que nas chamadas eu utilizei &#8220;<strong>setAInt</strong>&#8221; e &#8220;<strong>setNome</strong>&#8221; para setar os valores e &#8220;<strong>aInt</strong>&#8221; e &#8220;<strong>nome</strong>&#8221; para recuperar os valores, o &#8220;<strong>@synthesize</strong>&#8221; criou esses métodos na hora da compilação, mas se você utiliza o XCode, ficará surpreso em saber que ele oferece no auto-complete esses métodos.</p>
<p>após compilar e rodar a saída que obtive foi essa:</p>
<pre>
2010-04-28 23:24:13.552 acessor[1217:a0f] Valor eh: 5
2010-04-28 23:24:13.554 acessor[1217:a0f] Nome eh: Alex
</pre>
<p>Até o próximo artigo.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.outofmemory.blog.br/2010/04/29/introducao-ao-objective-c-synthesized-accessor/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Introdução ao Objective-C – parte 2 (classes)</title>
		<link>http://www.outofmemory.blog.br/2010/01/05/introducao-ao-objective-c-parte-2-classes/</link>
		<comments>http://www.outofmemory.blog.br/2010/01/05/introducao-ao-objective-c-parte-2-classes/#comments</comments>
		<pubDate>Wed, 06 Jan 2010 00:06:09 +0000</pubDate>
		<dc:creator>Alex Chiaranda</dc:creator>
				<category><![CDATA[Dev]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[Objective-C]]></category>
		<category><![CDATA[Tecnologia]]></category>
		<category><![CDATA[objective-c]]></category>
		<category><![CDATA[xcode]]></category>

		<guid isPermaLink="false">http://www.outofmemory.blog.br/?p=359</guid>
		<description><![CDATA[Agora que você já teve o primeiro contato com a linguagem (no post anterior), vamos ver como declarar classes, métodos e propriedades. Em Objective-C usa-se a seguinte nomenclatura para os arquivos: arquivo.h &#8211; header arquivo.m &#8211; arquivo que pode conter &#8230; <a class="more-link" href="http://www.outofmemory.blog.br/2010/01/05/introducao-ao-objective-c-parte-2-classes/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Agora que você já teve o primeiro contato com a linguagem (<a href="http://www.outofmemory.blog.br/2009/10/19/introducao-ao-objective-c-parte-1/" target="_blank">no post anterior</a>), vamos ver como declarar classes, métodos e propriedades.</p>
<p>Em Objective-C usa-se a seguinte nomenclatura para os arquivos:</p>
<ul>
<li>arquivo.h &#8211; header</li>
<li>arquivo.m &#8211; arquivo que pode conter tanto código Objective-C como C</li>
</ul>
<p>Para esse tutorial eu usarei o XCode (falarei mais sobre ele depois), mas qualquer editor de texto serve para editar os arquivos, e o GCC cria os executáveis. Neste código específico, usarei o &#8220;<strong>vi</strong>&#8221; e o compilador &#8220;<strong>gcc</strong>&#8221; apenas para exemplificar como proceder neste caso.</p>
<p><span id="more-359"></span>Vamos agora para a nossa primeira classe, vou chama-la de &#8220;MyFirstClass.m&#8221;, para este exemplo, vou digitar todo o código no mesmo arquivo:</p>
<pre>
#import &lt;Foundation/Foundation.h&gt;

@interface MyFirstClass : NSObject
{
   int aInt;
}

-(int) aInt;
-(void) setAInt: (int) _aInt;

-(void) print;

@end

@implementation MyFirstClass
-(void) print
{
   NSLog(@&quot;Número informado é: %i&quot;, aInt);
}

-(void) setAInt: (int) _aInt
{
   aInt = _aInt;
}

-(int) aInt
{
   return aInt;
}
@end

int main(int argc, const char *argv[])
{
   NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
   MyFirstClass *m = [[MyFirstClass alloc] init];

   [m setAInt: 5];
   [m print];

   [m release];
   [pool drain];

   return ( 0 );
}
</pre>
<p>Para compilar um programa usando o GCC em qualquer plataforma suportada, basta digitar o seguinte:</p>
<pre>gcc -framework Foundation MyFirstClass.m -o MyFirstClass</pre>
<p>se não houve nenhum erro o executável &#8220;MyFirstClass&#8221; será criado, e quando executado exibirá a seguinte saída:</p>
<pre>
Alex-Chiarandas-MacBook-Pro:trainning aechiara$ ./MyFirstClass
2010-01-05 22:02:15.169 MyFirstClass[380:903] Número informado é: 5
Alex-Chiarandas-MacBook-Pro:trainning aechiara$
</pre>
<p>Divirta-se alterando o código para exibir outras mensagens ou realizar somas por exemplo. O NSLog se comporta como o &#8220;printf&#8221; do C.</p>
<p>Até o próximo artigo.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.outofmemory.blog.br/2010/01/05/introducao-ao-objective-c-parte-2-classes/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Introdução ao Objective-C – parte 1</title>
		<link>http://www.outofmemory.blog.br/2009/10/19/introducao-ao-objective-c-parte-1/</link>
		<comments>http://www.outofmemory.blog.br/2009/10/19/introducao-ao-objective-c-parte-1/#comments</comments>
		<pubDate>Mon, 19 Oct 2009 19:06:50 +0000</pubDate>
		<dc:creator>Alex Chiaranda</dc:creator>
				<category><![CDATA[Dev]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[Objective-C]]></category>
		<category><![CDATA[Tecnologia]]></category>
		<category><![CDATA[MacOS]]></category>
		<category><![CDATA[objective-c]]></category>

		<guid isPermaLink="false">http://www.outofmemory.blog.br/?p=325</guid>
		<description><![CDATA[Se você pretende desenvolver para MacOS e/ou iPhone, você deve ter levado em consideração aprender a programar em Objective-C. A boa notícia (talvez não para todos) é que Objective-C é muito parecida com C/C++ e Java, o que com certeza &#8230; <a class="more-link" href="http://www.outofmemory.blog.br/2009/10/19/introducao-ao-objective-c-parte-1/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Se você pretende desenvolver para MacOS e/ou iPhone, você deve ter levado em consideração aprender a programar em Objective-C. A boa notícia (talvez não para todos) é que Objective-C é muito parecida com C/C++ e Java, o que com certeza agiliza o aprendizado.</p>
<p>Não é o objetivo desse artigo, contar como ou porque a linguagem surgiu, mas se quiser informações a respeito, a página do Objective-C no <a title="Objective-C" href="http://en.wikipedia.org/wiki/Objective-C" target="_blank">Wikipedia</a> é um bom lugar para começar.</p>
<p><span id="more-325"></span><br />
Vamos começar mostrando como se invoca um método. Na verdade, em Objective-C um método não é invocado, o que acontece é que você envia uma &#8220;mensagem&#8221; para um objeto,  e ele se encarrega de responder de maneira apropriada (mais sobre isso nos próximos artigos).</p>
<p>em Java:</p>
<pre>
user.doSomething();
user.setName(&quot;Alex&quot;);
</pre>
<p>em C:</p>
<pre>
doSomething();
setName(&quot;Alex&quot;);
</pre>
<p>em Objective-C:</p>
<pre>
[user doSomething];
[user setName:@&quot;Alex&quot;];
</pre>
<p>Como podem ver, apesar da sintaxe ser um pouco diferente, a chamada é bem intuitiva, a diferença é que ao invés de se chamar &#8220;objeto.metodo&#8221; (que também é suportado), usa-se a chamada entre colchetes com espaço &#8220;[objeto metodo:parametro]&#8220;.</p>
<p>Se para &#8220;enviar uma mensagem&#8221; para um objeto é um pouco diferente, associar o retorno é tão simples quanto nas outras linguagens:</p>
<p>Em &#8220;C++&#8221; seria algo assim:</p>
<pre>
string name = user.getNome();
</pre>
<p>Em &#8220;Objective-C&#8221;:</p>
<pre>
NSString *name = [NSString string];
name = [user nome];
[name release];
</pre>
<p>No exemplo acima, a string &#8220;nome&#8221; é alocada, o valor contido na proprieda &#8220;nome&#8221; do objeto &#8220;user&#8221; é associado a nossa string e então nossa string é desalocada.</p>
<p>Bom, agora que já fizemos o primeiro contato com a linguagem, no próximo artigo veremos como declarar e implementar classes.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.outofmemory.blog.br/2009/10/19/introducao-ao-objective-c-parte-1/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Desenvolvendo aplicativos para iPhone, preparando o ambiente</title>
		<link>http://www.outofmemory.blog.br/2009/04/13/desenvolvendo-aplicativos-para-iphone-preparando-o-ambiente/</link>
		<comments>http://www.outofmemory.blog.br/2009/04/13/desenvolvendo-aplicativos-para-iphone-preparando-o-ambiente/#comments</comments>
		<pubDate>Mon, 13 Apr 2009 15:22:59 +0000</pubDate>
		<dc:creator>Alex Chiaranda</dc:creator>
				<category><![CDATA[Dev]]></category>
		<category><![CDATA[Informática]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[Objective-C]]></category>
		<category><![CDATA[Tecnologia]]></category>
		<category><![CDATA[aplicativos]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[Connections]]></category>
		<category><![CDATA[desenvolvimento]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[firmware]]></category>
		<category><![CDATA[ipod touch]]></category>
		<category><![CDATA[MacOS]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[xcode]]></category>

		<guid isPermaLink="false">http://www.outofmemory.blog.br/?p=289</guid>
		<description><![CDATA[No artigo que publiquei anteriormente aqui fiz uma breve introdução ao iPhone e iPod Touch e como eles chegaram trazendo todo um novo mundo de possibilidades para desenvolvedores e usuários. No momento em que estava escrevendo este artigo a Apple &#8230; <a class="more-link" href="http://www.outofmemory.blog.br/2009/04/13/desenvolvendo-aplicativos-para-iphone-preparando-o-ambiente/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>No artigo que publiquei anteriormente <a title="Desenvolvendo aplicativos para iPhone" href="http://www.outofmemory.blog.br/2009/04/06/desenvolvendo-aplicativos-para-iphone/" target="_blank">aqui</a> fiz uma breve introdução ao iPhone e iPod Touch e como eles chegaram trazendo todo um novo mundo de possibilidades para desenvolvedores e usuários. No momento em que estava escrevendo este artigo a Apple anunciava a versão 3.0 do firmware para iPhone (overview <a title="Overview novo firmware da Apple" href="http://www.apple.com/iphone/preview-iphone-os/" target="_blank">aqui</a>) que traz algumas novidades interessantes para os usuários, dentre elas:</p>
<blockquote>
<ul>
<li>Search your iPhone</li>
<li>Cut, copy, and paste</li>
<li>Send photos, contacts, audio files, and location via MMS (iPhone 3G only)</li>
<li>Read and compose e-mail and text messages in landscape</li>
</ul>
</blockquote>
<p>Para os desenvolvedores, algumas features novas também se destacam, entre elas:</p>
<blockquote>
<ul>
<li>in-app purchases — like subscriptions, additional game levels, and new content.</li>
<li>They can also create apps that connect peer to peer via Bluetooth, communicate with hardware accessories</li>
<li>use the Apple Push Notification service to provide alerts.</li>
</ul>
<p>Falarei dessas features com mais detalhes mais tarde.</p></blockquote>
<p>Pois bem, agora você está empolgado, e gostaria de fazer o seu primeiro software para iPhone, e está se perguntando por onde começar. Abaixo eu listo os passos básicos que você deve seguir para iniciar seu desenvolvimento:</p>
<ol>
<li>se você ainda não possui um iPhone/iPod Touch, eu (e a Apple) recomendamos que você se prepare para adquirir um. O emulador é bem fiel ao device, mas todo o software deve ser testado no aparelho antes de submetido à Apple para aprovação;</li>
<li>se ainda não possuir, compre um Apple Intel Based, não pode ser os da linha PowerPC; (read me do SDK <a title="Readme SDK iPhone" href="http://developer.apple.com/iphone/download.action?path=/iphone/iphone_sdk_for_iphone_os_2.2.1__9m2621a__final/iphone_sdk_for_iphone_os_2.2.1readmefinal.pdf" target="_self">aqui</a>, precisa ser cadastrado para visualizar o arquivo)</li>
<li>vá até o iPhone Developer Center da Apple (clicando <a title="iPhone Developer Center" href="http://developer.apple.com/iphone/" target="_blank">aqui</a>) e cadastre-se. Isso já dará acesso ao download do XCode (IDE para desenvolvimento) e à vários vídeos e exemplos de código. Se você chegou até aqui, já consegue fazer e testar seus aplicativos com o XCode, mas se quer vender suas aplicações, precisa seguir adiante;</li>
<li>agora você precisa pagar a taxa (anual) de 99 obamas (U$ 99.00) para a Apple, esse valor é cobrado para que você faça parte do &#8220;<strong>iPhone Developer Program&#8221;</strong> e possa publicar suas aplicações (se aprovadas pela Apple) na AppStore. Após realizar este processo, você receberá um email da Apple, parabenizando você por fazer parte do &#8220;iPhone Developer Program&#8221;, e sua chave para ativação. Se sua aplicação será usada em vários aparelhos em uma empresa, existe outro tipo de assinatura chamada &#8220;<strong>Enterprise</strong>&#8221; e o valor é de 299 obamas (U$ 299.00) que além do que é oferecido pela versão &#8220;single developer&#8221; ainda disponibiliza uma nova feature para o iTunes conseguir fazer deploy da aplicação nos vários aparelhos da sua empresa.</li>
</ol>
<p>Feito isso, é só pegar o livro de Objective C, ler os tutoriais do site da Apple e fazer a sua aplicação. No próximo posts, veremos o XCode e como fazer um Hello World !!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.outofmemory.blog.br/2009/04/13/desenvolvendo-aplicativos-para-iphone-preparando-o-ambiente/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Desenvolvendo aplicativos para iPhone</title>
		<link>http://www.outofmemory.blog.br/2009/04/06/desenvolvendo-aplicativos-para-iphone/</link>
		<comments>http://www.outofmemory.blog.br/2009/04/06/desenvolvendo-aplicativos-para-iphone/#comments</comments>
		<pubDate>Mon, 06 Apr 2009 17:26:38 +0000</pubDate>
		<dc:creator>Alex Chiaranda</dc:creator>
				<category><![CDATA[Dev]]></category>
		<category><![CDATA[Informática]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[Objective-C]]></category>
		<category><![CDATA[Tecnologia]]></category>
		<category><![CDATA[aplicativos]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[bibliotecas]]></category>
		<category><![CDATA[celulares]]></category>
		<category><![CDATA[desenvolvimento]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[interface]]></category>
		<category><![CDATA[ipod touch]]></category>
		<category><![CDATA[MacOS]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[telefonia móvel]]></category>
		<category><![CDATA[tutoriais]]></category>

		<guid isPermaLink="false">http://www.outofmemory.blog.br/?p=285</guid>
		<description><![CDATA[Todos conhecem a Apple por sempre tentar inovar e quebrar os padrões existentes fornecendo uma experiência nova e agradável para o usuário final. O lançamento do iPhone agitou o mundo da telefonia trazendo um aparelho elegante, com funcionalidades inovadoras , &#8230; <a class="more-link" href="http://www.outofmemory.blog.br/2009/04/06/desenvolvendo-aplicativos-para-iphone/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Todos conhecem<strong> a Apple por sempre tentar inovar e quebrar os padrões existentes fornecendo uma experiência nova e agradável</strong> para o usuário final. O lançamento do <a title="Funcionalidades do Apple Iphone" href="http://www.apple.com/br/iphone/features/">iPhone</a> agitou o mundo da telefonia trazendo um aparelho elegante, com <a title="Funcionalidades do Apple Iphone, em inglês" href="http://www.apple.com/iphone/features/">funcionalidades inovadoras</a> , mudando para sempre o conceito de aparelhos móveis e reaquecendo um mercado que estava carente de novidades, pois os fabricantes líderes estavam acomodados com as poucas “inovações” que seus lançamentos apresentavam.</p>
<p><a title="Especificações do Apple Iphone" href="http://www.apple.com/br/iphone/specs.html"><img class="size-full alignleft" src="http://images.apple.com/br/iphone/images/specs_dimensions_20100607.jpg" alt="Apple iPhone especificações de tamanho" /></a><br />
O <em>iPhone</em> (e posteriormente o<em> iPod Touch</em>) chegaram gerando uma movimentação em usuários, blogs, fóruns e comunidades de uma forma que eu não via a muito tempo,  pois, <strong><a title="Especificação do iPhone" href="http://www.apple.com/iphone/specs.html">além de um excelente hardware</a>, trazia um design moderno</strong>:  era fino (aproximadamente 12 milímetros), tinha um display grande (aproximadamente 62 milímetros de largura por aproximadamente 115 milímetros de altura), pesava impressionantes 90 gramas, câmera de 2 megapixels e contava com wi-fi, bluetooth. Além disso, foi lançado em duas versões, com HD interno de 4GB (já extinta), e a popular versão com 8GB. Todos os concorrentes se apressaram em apontar a impossibilidade de aumentar a capacidade de armazenamento, por se tratar de um HD interno, mas isso não chegou a ser uma ameça ao sucesso do aparelho.</p>
<p>Porém,  passado o calor do lançamento, logo os felizes <strong>donos do novo aparelho estavam famintos por aplicativos que utilizassem todo o seu potencial</strong>. Para atender essa demanda, a Apple não tardou a lançar o <a href="http://developer.apple.com/iphone/">iPhone Dev Center</a>, voltado ao desenvolvimento para iPhone e iPod Touch e que incluiu <a title="Apple prepara iPhone para empresas e lança kit de desenvolvimento, no Futuro.vc" href="http://futuro.vc/2008/03/07/apple-prepara-iphone-para-empresas-e-lanca-kit-de-desenvolvimento/">o lançamento de um kit de desenvolvimento</a> (<abbr title="Software Development Kit">SDK</abbr> &#8211; <em>Software Development Kit</em>), vídeos, tutoriais, bibliotecas e códigos de exemplo.</p>
<p>Mas nem tudo são flores:  a <abbr title="End User License Agreement">EULA</abbr> é extensa e fechada, limitando muito os aplicativos que poderiam ser desenvolvidos, e obrigando a todos que quisessem disponibilizar seus aplicativos a passar por um extenso processo de homologação e validação.</p>
<p>Se você tem interesse em desenvolvimento de aplicativos para <em>iPhone</em> ou <em><a title="Informações sobre o iPod Touch, no site da Apple" href="http://www.apple.com/br/ipodtouch/">iPod Touch</a></em>, <strong>acompanhe os próximos posts onde vamos comentar sobre todo o processo necessário para começar a desenvolver aplicações para <em>iPhone</em> e <em>iPod Touch</em></strong>, desde o hardware e softwares necessários, linguagem, <em>framework</em>, até os modelos de inscrições que a Apple oferece.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.outofmemory.blog.br/2009/04/06/desenvolvendo-aplicativos-para-iphone/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

