<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Разработка под Mac и iPhone</title>
	<atom:link href="http://macdever.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://macdever.wordpress.com</link>
	<description>Just another WordPress.com weblog</description>
	<lastBuildDate>Wed, 08 Apr 2009 07:53:29 +0000</lastBuildDate>
	<language>ru</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='macdever.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Разработка под Mac и iPhone</title>
		<link>http://macdever.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://macdever.wordpress.com/osd.xml" title="Разработка под Mac и iPhone" />
	<atom:link rel='hub' href='http://macdever.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Objective C и XCode: первые шаги. часть 2.</title>
		<link>http://macdever.wordpress.com/2009/04/07/objective-c-%d0%b8-xcode-%d0%bf%d0%b5%d1%80%d0%b2%d1%8b%d0%b5-%d1%88%d0%b0%d0%b3%d0%b8-%d1%87%d0%b0%d1%81%d1%82%d1%8c-2/</link>
		<comments>http://macdever.wordpress.com/2009/04/07/objective-c-%d0%b8-xcode-%d0%bf%d0%b5%d1%80%d0%b2%d1%8b%d0%b5-%d1%88%d0%b0%d0%b3%d0%b8-%d1%87%d0%b0%d1%81%d1%82%d1%8c-2/#comments</comments>
		<pubDate>Tue, 07 Apr 2009 11:03:15 +0000</pubDate>
		<dc:creator>macdever</dc:creator>
				<category><![CDATA[первые шаги]]></category>
		<category><![CDATA[разработка]]></category>
		<category><![CDATA[xcode]]></category>

		<guid isPermaLink="false">http://macdever.wordpress.com/?p=20</guid>
		<description><![CDATA[Как вызывать методы объектов Методы в Objective C дёргаются в виде сообщений, которые посылаются соответствующему объекту. Весь вызов обрамляется в квадратные скобки. Пример на Java: if (x.intersectsArc(35.0, 19.0, 23.0, 90.0, 120.0)) Аналог на Objective C: if ([x intersectsArcWithRadius:35.0 centeredAtX:19.0 Y:23.0 fromAngle:90.0 toAngle:120.0]) То есть все параметры метода передаются через пробел друг за другом. С указанием имени этого параметра. Сперва это [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=macdever.wordpress.com&amp;blog=7046407&amp;post=20&amp;subd=macdever&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<h2>Как вызывать методы объектов</h2>
<p>Методы в Objective C дёргаются в виде сообщений, которые посылаются соответствующему объекту. Весь вызов обрамляется в квадратные скобки.</p>
<p>Пример на Java:</p>
<p><code>if (x.<span style="color:#333399;">intersectsArc</span>(35.0, 19.0, 23.0, 90.0, 120.0))</code></p>
<p>Аналог на Objective C:</p>
<p><code>if ([x <span style="color:#333399;">intersectsArcWithRadius</span>:35.0 <span style="color:#333399;">centeredAtX</span>:19.0 <span style="color:#333399;">Y</span>:23.0 <span style="color:#333399;">fromAngle</span>:90.0 <span style="color:#333399;">toAngle</span>:120.0])</code></p>
<p>То есть все параметры метода передаются через пробел друг за другом. С указанием имени этого параметра. Сперва это кажется дебилизмом, но потом к этому привыкаешь и понимаешь, что так даже лучше и понятнее – сразу видно что каждый параметр означает.</p>
<p> </p>
<h2>Базовые классы</h2>
<p>Проводя аналогию с Java, вот иерархия основных классов (аналогов Object, String, ArrayList и т. п.):</p>
<p><img class="alignnone size-full wp-image-24" title="base-cocoa-classes" src="http://macdever.files.wordpress.com/2009/04/base-cocoa-classes.gif?w=340&#038;h=400" alt="base-cocoa-classes" width="340" height="400" /></p>
<p>Причём Array в Objective C не может иметь дырки (т. е. ячейки с пустым указателем), если нужно иметь дырку, можно вставить туда специальный NULL объект.</p>
<p>Null вообще клево обрабатывается, например вот такую проверку</p>
<p><code><span style="color:#993366;">if</span> (foo != <span style="color:#800000;">null</span>) { <br />
foo.<span style="color:#333399;">doThatThingYouDo</span>();<br />
}<br />
</code> не нужно делать:<br />
<code><span style="color:#993366;">id</span> foo;<br />
foo = <span style="color:#993300;">nil</span>;<br />
<span style="color:#993366;"> int</span> bar = [foo <span style="color:#333399;">count</span>];</code></p>
<p>Этот код не вызовет никакого Null pointer exception, переменная bar будет установлена в дефолтное значение (ноль). id – это такой специальный тип данных, означающий указатель на объект любого типа.</p>
<p> </p>
<h2>Основные методы базового класса NSObject</h2>
<p>NSObject – базовый класс для всех других классов. Аналог класса Object в Java. И как в жаве он имеет важные методы (о других важных методах в следующих выпусках):</p>
<p><strong>- (id) init</strong> – аналог конструктора в Java.</p>
<p>Создаются объекты обычно так:</p>
<p> <code><span style="color:#008080;">TheClass</span> *newObject = [[<span style="color:#008080;">TheClass</span> <span style="color:#333399;">alloc</span>] <span style="color:#333399;">init</span>];</code></p>
<p><code> <strong>alloc </strong>– метод класса TheClass, который аллоцирует память и создаёт экземпляр класса.<br />
 <strong>init </strong>– инициализирует поля класса и выполняет всю необходимую логику. Естественно конструктор (метод init) можно перегружать. </code></p>
<p><strong>- (NSString *) description – <span style="font-weight:normal;">аналог toString() в Java. Строковое описание объекта, для дебага и тому подобных нужд.</span></strong></p>
<p><strong><span style="font-weight:normal;"><br />
</span></strong></p>
<h2>Как устроен проект в XCode</h2>
<p>Вот как выглядит основное окно среды разработки для простейшего проекта (консольное приложение без GUI):</p>
<p><a href="http://macdever.files.wordpress.com/2009/04/xcode-snap-foundation-tool.png"><img class="alignnone size-full wp-image-27" title="xcode-snap-foundation-tool" src="http://macdever.files.wordpress.com/2009/04/xcode-snap-foundation-tool.png?w=480&#038;h=447" alt="xcode-snap-foundation-tool" width="480" height="447" /></a></p>
<p>Слева видно всё содержимое проекта – исходники, документация, ссылки на библиотеки, использующиеся в проекте (в Mac OS X они называются frameworks, в данном случае это только Foundation.framework), продукты, которые получаются из проекта, build-targets (не знаю как это по-русски правильно назвать) c наглядным представлением шагов сборки, ошибки и предупреждения, найденные при компиляции, закладки, поиски и т. п.</p>
<p>Вверху настраиваемая менюшка с разными кнопками (сборка, сборка+запуск, рефакторинг, выбор типа компиляции – debug/release, intel/ppc), справа – редактор кода и навигатор по файлам.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/macdever.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/macdever.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/macdever.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/macdever.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/macdever.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/macdever.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/macdever.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/macdever.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/macdever.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/macdever.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/macdever.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/macdever.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/macdever.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/macdever.wordpress.com/20/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=macdever.wordpress.com&amp;blog=7046407&amp;post=20&amp;subd=macdever&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://macdever.wordpress.com/2009/04/07/objective-c-%d0%b8-xcode-%d0%bf%d0%b5%d1%80%d0%b2%d1%8b%d0%b5-%d1%88%d0%b0%d0%b3%d0%b8-%d1%87%d0%b0%d1%81%d1%82%d1%8c-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/dcce2a9c4410170a0129725e7962c7c6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">macdever</media:title>
		</media:content>

		<media:content url="http://macdever.files.wordpress.com/2009/04/base-cocoa-classes.gif" medium="image">
			<media:title type="html">base-cocoa-classes</media:title>
		</media:content>

		<media:content url="http://macdever.files.wordpress.com/2009/04/xcode-snap-foundation-tool.png" medium="image">
			<media:title type="html">xcode-snap-foundation-tool</media:title>
		</media:content>
	</item>
		<item>
		<title>Objective C и XCode: первые шаги. часть 1.</title>
		<link>http://macdever.wordpress.com/2009/03/23/objective-c-%d0%b8-xcode-%d0%bf%d0%b5%d1%80%d0%b2%d1%8b%d0%b5-%d1%88%d0%b0%d0%b3%d0%b8-%d1%87%d0%b0%d1%81%d1%82%d1%8c-1/</link>
		<comments>http://macdever.wordpress.com/2009/03/23/objective-c-%d0%b8-xcode-%d0%bf%d0%b5%d1%80%d0%b2%d1%8b%d0%b5-%d1%88%d0%b0%d0%b3%d0%b8-%d1%87%d0%b0%d1%81%d1%82%d1%8c-1/#comments</comments>
		<pubDate>Mon, 23 Mar 2009 11:56:33 +0000</pubDate>
		<dc:creator>macdever</dc:creator>
				<category><![CDATA[первые шаги]]></category>
		<category><![CDATA[разработка]]></category>
		<category><![CDATA[xcode]]></category>

		<guid isPermaLink="false">http://macdever.wordpress.com/?p=14</guid>
		<description><![CDATA[Что интересного обнаружилось в этой платформе: В Objective C все методы классы публичные, а все поля — protected.   По удобству редактор кода в XCode значительно уступает Intellij IDEA, но превосходит всякие Дельфи, Билдеры, вижуал студии и проч.   Редактор интерфейсов изумителен. Вот эти синие пунктирные линии — автопривязки объектов. Они позволяют соблюдать макосевые гайдлайны по дизайну [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=macdever.wordpress.com&amp;blog=7046407&amp;post=14&amp;subd=macdever&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Что интересного обнаружилось в этой платформе:</p>
<ol>
<li>В Objective C все методы классы публичные, а все поля — protected.<br />
 </li>
<li>По удобству редактор кода в XCode значительно уступает <a href="http://www.jetbrains.com/idea/index.html">Intellij IDEA</a>, но превосходит всякие Дельфи, Билдеры, вижуал студии и проч.<br />
 </li>
<li>Редактор интерфейсов изумителен. Вот эти синие пунктирные линии — автопривязки объектов.<br />
<img class="alignnone size-full wp-image-7" title="guide-lines" src="http://macdever.files.wordpress.com/2009/03/guide-lines.png?w=438&#038;h=146" alt="guide-lines" width="438" height="146" /><br />
Они позволяют соблюдать макосевые гайдлайны по дизайну (которые представляют собой многотомный документ) их не читая.    </p>
<p>А привязки размеров и краёв различных объектов тут же динамически отображаются на маленькой превьюшке.<br />
<img class="alignnone size-full wp-image-9" title="resize" src="http://macdever.files.wordpress.com/2009/03/resize.png?w=277&#038;h=262" alt="resize" width="277" height="262" /></li>
<li>Смущает идиотская привычка начинать названия классов с аббревиатур автора. Так почти все классы из основных библиотек (той же Cocoa) начинаются с NS — NSObject, NSButton и т. д. NS означает NextStep — контора Стива Джобса, разработавшая window server и ещё кучу библиотек. <br />
Эту контору купила Apple, что позволило ей вылезти из жопы и сделать Mac OS X в том виде, в котором она стала завоёвывать мир и сердца пользователей.<br />
 </li>
<li>Вот какое положение занимает Cocoa в Mac OS X:<br />
<img class="alignnone size-full wp-image-8" title="macos-cocoa-wserver" src="http://macdever.files.wordpress.com/2009/03/macos-cocoa-wserver.png?w=250&#038;h=162" alt="macos-cocoa-wserver" width="250" height="162" /></li>
</ol>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/macdever.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/macdever.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/macdever.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/macdever.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/macdever.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/macdever.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/macdever.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/macdever.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/macdever.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/macdever.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/macdever.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/macdever.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/macdever.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/macdever.wordpress.com/14/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=macdever.wordpress.com&amp;blog=7046407&amp;post=14&amp;subd=macdever&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://macdever.wordpress.com/2009/03/23/objective-c-%d0%b8-xcode-%d0%bf%d0%b5%d1%80%d0%b2%d1%8b%d0%b5-%d1%88%d0%b0%d0%b3%d0%b8-%d1%87%d0%b0%d1%81%d1%82%d1%8c-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/dcce2a9c4410170a0129725e7962c7c6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">macdever</media:title>
		</media:content>

		<media:content url="http://macdever.files.wordpress.com/2009/03/guide-lines.png" medium="image">
			<media:title type="html">guide-lines</media:title>
		</media:content>

		<media:content url="http://macdever.files.wordpress.com/2009/03/resize.png" medium="image">
			<media:title type="html">resize</media:title>
		</media:content>

		<media:content url="http://macdever.files.wordpress.com/2009/03/macos-cocoa-wserver.png" medium="image">
			<media:title type="html">macos-cocoa-wserver</media:title>
		</media:content>
	</item>
		<item>
		<title>Start point</title>
		<link>http://macdever.wordpress.com/2009/03/21/startpoint/</link>
		<comments>http://macdever.wordpress.com/2009/03/21/startpoint/#comments</comments>
		<pubDate>Sat, 21 Mar 2009 12:47:34 +0000</pubDate>
		<dc:creator>macdever</dc:creator>
				<category><![CDATA[первые шаги]]></category>
		<category><![CDATA[менеджмент]]></category>
		<category><![CDATA[планы]]></category>

		<guid isPermaLink="false">http://macdever.wordpress.com/?p=10</guid>
		<description><![CDATA[Ближайший план — сделать удобный твитер-клиент для Mac OS X, лишенный недостатков существующих клиентов.  Вот на какие шаги я разбил этот план: Изучить Objective C, для чего была взята книга «Cocoa programming for Mac OS X» by Aaron Hillegass.  Проанализировать недостатки конкурентов, написать список главных фич продукта и придумать общую концепцию. Разбить главные фичи на задачи [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=macdever.wordpress.com&amp;blog=7046407&amp;post=10&amp;subd=macdever&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Ближайший план — сделать удобный <a href="http://twitter.com">твитер</a>-клиент для Mac OS X, лишенный недостатков существующих клиентов. </p>
<p>Вот на какие шаги я разбил этот план:</p>
<ol>
<li>Изучить Objective C, для чего была взята книга «<a href="http://www.amazon.com/Cocoa-Programming-Mac-OS-3rd/dp/0321503619" target="_self">Cocoa programming for Mac OS X</a>»  by Aaron Hillegass. <br />
<a href="http://www.amazon.com/Cocoa-Programming-Mac-OS-3rd/dp/0321503619"><img class="alignnone size-full wp-image-6" title="cocoa-book-cover" src="http://macdever.files.wordpress.com/2009/03/cocoa-book-cover.jpg?w=200&#038;h=265" alt="cocoa-book-cover" width="200" height="265" /></a></li>
<li>Проанализировать недостатки конкурентов, написать список главных фич продукта и придумать общую концепцию.</li>
<li>Разбить главные фичи на задачи и сделать их.</li>
<li>Запустить бета-версию, состоящую из главных фич, рассказать о ней миру, собрать фидбек.</li>
<li>Учесть фидбек, решить что дальше делать с программой (to be or not).</li>
</ol>
<p>Вот такая вот загогулина.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/macdever.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/macdever.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/macdever.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/macdever.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/macdever.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/macdever.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/macdever.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/macdever.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/macdever.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/macdever.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/macdever.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/macdever.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/macdever.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/macdever.wordpress.com/10/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=macdever.wordpress.com&amp;blog=7046407&amp;post=10&amp;subd=macdever&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://macdever.wordpress.com/2009/03/21/startpoint/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/dcce2a9c4410170a0129725e7962c7c6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">macdever</media:title>
		</media:content>

		<media:content url="http://macdever.files.wordpress.com/2009/03/cocoa-book-cover.jpg" medium="image">
			<media:title type="html">cocoa-book-cover</media:title>
		</media:content>
	</item>
	</channel>
</rss>
