<?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>WEB・アプリ開発・音楽制作 &#124; Kaleidoscope &#187; Objective-C</title>
	<atom:link href="http://blog.kaleido-jp.net/tag/objective-c/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.kaleido-jp.net</link>
	<description>WEB・アプリ開発・音楽制作</description>
	<lastBuildDate>Mon, 24 Nov 2014 00:40:02 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.6</generator>
		<item>
		<title>Webクリエイター向けにHTMLやJSの記述をObjective-Cに置き換えてみた（UILabel編）</title>
		<link>http://blog.kaleido-jp.net/web/objective-c_for_webcreator/</link>
		<comments>http://blog.kaleido-jp.net/web/objective-c_for_webcreator/#comments</comments>
		<pubDate>Mon, 30 May 2011 08:20:01 +0000</pubDate>
		<dc:creator>kosuke</dc:creator>
				<category><![CDATA[iPhone]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Web制作]]></category>
		<category><![CDATA[スマートフォンアプリ関連]]></category>
		<category><![CDATA[Objective-C]]></category>
		<category><![CDATA[アプリ]]></category>
		<category><![CDATA[スマートフォン]]></category>

		<guid isPermaLink="false">http://blog.kaleido-jp.net/?p=782</guid>
		<description><![CDATA[Web系の人でiPhoneアプリ作ってみたいなーと思ってる人って多いのかな？どうなんだろ？ 個人的には、HTML5技術とか進んでて、Webアプリでもかなりのものが作れるようになってきてますけど、やっぱりまだまだネイティブ [...]]]></description>
				<content:encoded><![CDATA[<div class="indent"><a href="http://blog.kaleido-jp.net/wp-content/uploads/2011/05/10b90480c6c54912a7760bd07f6462c9.png"><img src="http://blog.kaleido-jp.net/wp-content/uploads/2011/05/10b90480c6c54912a7760bd07f6462c9-e1306747824202-150x86.png" alt="テキストカラーの設定例" title="テキストカラーの設定例" width="150" height="86" class="alignleft size-thumbnail wp-image-831" /></a></p>
<p>Web系の人でiPhoneアプリ作ってみたいなーと思ってる人って多いのかな？どうなんだろ？</p>
<p>個人的には、HTML5技術とか進んでて、Webアプリでもかなりのものが作れるようになってきてますけど、やっぱりまだまだネイティブの方が有利な部分が多いと思ってます。あと、iPhoneの仕様を深く知る上でもいいんじゃないかなーと。</p>
<p>ちょっとしたアプリ作るなら、Titanium Mobileとかで全然いいと思うんですが、Titanium MobileのAPIに無いことをやろうとするとObjective-Cしかありません。</p>
<p>Objective-C自体はそんなに難しくないと思うんですよ。どちらかというと、APIやら仕様やらの情報がわかりにくい。それさえ調べ調べやれば、Web系の人でもアプリ作れます。</p>
<p>ということで、Web系の人でObjective-C学んでみたいという人向けに、ちょっとまとめてみました。<br />
ただし、超基本な部分をすっ飛ばして書いてるので、その辺はご自身で学習を。</p>
<p>今回は、viewという基本的なオブジェクトを組み立てていくお話。<br />
（webの記述を置き換えてますが、webViewの話しではないですよ）<span id="more-782"></span></p>
<p><br clear="all" />
</div>
<h3>ビューにテキストを書く</h3>
<div class="indent">
これはHTMLだったらなんてことはない。</p>
<p>たとえば、<br />
[html]<br />
&lt;body&gt;<br />
テキスト<br />
&lt;/body&gt;<br />
[/html]</p>
<blockquote><p>
説明をわかりやすくするため、divで囲って座標系をインラインで加えます。<br />
[html]<br />
&lt;body&gt;<br />
&lt;div style=&quot;position:absolute;top:10px;left:10px;width:100px;height:20px;&quot;&gt;<br />
テキスト<br />
&lt;/div&gt;<br />
&lt;/body&gt;<br />
[/html]</p>
<p>というHTMLの場合、Objective-Cで書くとこうなる。</p>
<p>[cpp]<br />
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(10, 10, 100, 20)];<br />
label.text = @&quot;テキスト&quot;;<br />
[self.view addSubView:label]:<br />
 [/cpp]<br />
みたいな感じ。<br />
（※座標系とサイズはCSSと同じ数値ですが、実際のサイズは異なります。あくまで説明用です。）
</p></blockquote>
<p>まぁ、これくらいだったらInterface BuilderのGUIによる組み立てができるんだけど、<br />
Objective-Cのビューの組み立ては、基本的にパーツを担うオブジェクトを初期化・用意して親となるビューに貼付けていく感じなのです。</p>
<p>HTMLもDOMっていうオブジェクトモデルをインターフェースとしてるので、上記のコードだと、bodyっていうオブジェクトにテキスト込みのdivオブジェクトを貼付けてるようなもの（…と、説明のため極端な言い方させてもらいます）と考えてみて、JavaScriptによるDOM操作の方がイメージしやすいかなと。</p>
<blockquote><p>
最近はピュアなJS書くよりも、jQuery記述の方が分かる人の方が多いだろうからjQueryで書くとこうなる。</p>
<blockquote><p>
<strong>jQuery</strong><br />
[javascript]<br />
label = $(&#8216;&lt;div&gt;テキスト&lt;/div&gt;&#8217;);<br />
label.css({position:&#8217;absolute&#8217;, top:&#8217;10px&#8217;,left:&#8217;10px&#8217;, width:&#8217;100px&#8217;, height:&#8217;20px&#8217;});<br />
$(&#8216;body&#8217;).append(label);<br />
[/javascript]
</p></blockquote>
<p>↓↓↓↓↓</p>
<blockquote><p>
<strong>Objective-C</strong><br />
[cpp]<br />
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(10, 10, 100, 20)];<br />
label.text = @&quot;テキスト&quot;;<br />
[self.view addSubView:label];<br />
 [/cpp]</p></blockquote>
</blockquote>
<p><strong>１行目：テキストを入れるUILabelっていうオブジェクトを、X座標、Y座標、横幅、高さとともに初期化および用意する。<br />
[c]<br />
[[UILabel alloc] initWithFrame:CGRectMake(X座標, Y座標, 横幅, 高さ)];<br />
[/c]<br />
２行目：テキストの内容を定義。@っていうのは、そういう文法なので深く気にしない。<br />
[c]<br />
label.text = @&quot;テキスト&quot;;<br />
[/c]<br />
３行目：そのラベルを親ビューに貼付け。</strong><br />
[c]<br />
[貼付ける先のオブジェクト addSubView:貼付ける対象のオブジェクト];<br />
[/c]</p>
<p style="margin-top:80px;">
上記を踏まえて、テキスト周りの装飾を他にも紹介すると下記みたいな感じ。
</p>
<h4 style="margin-top:30px;">テキストカラー</h4>
<blockquote>
<blockquote><p>
<strong>jQuery</strong><br />
[javascript]<br />
label.css({color:&#8217;#000&#8242;});<br />
[/javascript]
</p></blockquote>
<p>↓↓↓↓↓</p>
<blockquote><p>
<strong>Objective-C</strong><br />
[c]<br />
label.textColor = [UIColor colorWithRed:0.0f green:0.0f blue:0.0f alpha:0.0f];<br />
[/c]<br />
もしくは<br />
[c]<br />
label.textColor = [UIColor blackColor];<br />
[/c]
</p></blockquote>
</blockquote>
<h4>フォントサイズ</h4>
<blockquote>
<blockquote><p>
<strong>jQuery</strong><br />
[javascript]<br />
label.css({fontSize:&#8217;12px&#8217;});<br />
[/javascript]
</p></blockquote>
<p>↓↓↓↓↓</p>
<blockquote><p>
<strong>Objective-C</strong><br />
[c]<br />
label.font = [UIFont systemFontOfSize:12.0f];<br />
[/c]</p></blockquote>
<p>（※座標系とサイズはCSSと同じ数値ですが、実際のサイズは異なります。あくまで説明用です。）
</p></blockquote>
<p>他にも、UILabel系のAPIやプロパティがありますが、大体上記と似たような感じですよ。</p>
<p>ちなみに、ここの説明だとaddSubViewしたあとに、テキストカラーやサイズのプロパティを変えてるような感じですが、実際はプロパティを設定したあとに、addSubViewしてください。<br />
誤りなどありましたら、突っ込み入れていただければです。</p>
<p>※【2011.5.30　追記】HTML＝DOMと書いたつもりではなかったのですが、そのように受取られるご意見がありましたので、その辺を修正させていただきました。</p>
<p><br clear="all" /><br />
<SCRIPT charset="utf-8" type="text/javascript" src="http://ws.amazon.co.jp/widgets/q?ServiceVersion=20070822&#038;MarketPlace=JP&#038;ID=V20070822/JP/kaleidoscopew-22/8001/5d2e33e1-c9a3-42f8-b935-7c9355abdbfd"> </SCRIPT> <NOSCRIPT><A HREF="http://ws.amazon.co.jp/widgets/q?ServiceVersion=20070822&#038;MarketPlace=JP&#038;ID=V20070822%2FJP%2Fkaleidoscopew-22%2F8001%2F5d2e33e1-c9a3-42f8-b935-7c9355abdbfd&#038;Operation=NoScript">Amazon.co.jp ウィジェット</A></NOSCRIPT><br />
<br clear="all" />
</div>
<p><strong>他の人気エントリ</strong>
<ul class="popular-posts">
<li><span><a href="http://blog.kaleido-jp.net/kaleidoscope/unity_develope/" rel="bookmark" title="2012年2月28日">Unityが使える方を探しています</a><a  href="http://b.hatena.ne.jp/entry/http://blog.kaleido-jp.net/kaleidoscope/unity_develope/" > <img src="http://b.hatena.ne.jp/entry/image/http://blog.kaleido-jp.net/kaleidoscope/unity_develope/" /></a></span></li>
<li><span><a href="http://blog.kaleido-jp.net/web/typoinsta_bosyu/" rel="bookmark" title="2011年12月6日">デザイナーさん・イラストレーターさんを募集しています</a><a  href="http://b.hatena.ne.jp/entry/http://blog.kaleido-jp.net/web/typoinsta_bosyu/" > <img src="http://b.hatena.ne.jp/entry/image/http://blog.kaleido-jp.net/web/typoinsta_bosyu/" /></a></span></li>
<li><span><a href="http://blog.kaleido-jp.net/smatphone_app/aboutapp/" rel="bookmark" title="2011年11月19日">Flash終了でアプリは消えないと思うよ？</a><a  href="http://b.hatena.ne.jp/entry/http://blog.kaleido-jp.net/smatphone_app/aboutapp/" > <img src="http://b.hatena.ne.jp/entry/image/http://blog.kaleido-jp.net/smatphone_app/aboutapp/" /></a></span></li>
<li><span><a href="http://blog.kaleido-jp.net/music/kubbe/" rel="bookmark" title="2012年6月17日">ノルウェー絵本「KUBBE（キュッパ）」映像化の音楽を作りました</a><a  href="http://b.hatena.ne.jp/entry/http://blog.kaleido-jp.net/music/kubbe/" > <img src="http://b.hatena.ne.jp/entry/image/http://blog.kaleido-jp.net/music/kubbe/" /></a></span></li>
<li><span><a href="http://blog.kaleido-jp.net/web/%e3%83%95%e3%83%aa%e3%83%83%e3%82%af%e3%82%b9%e3%83%a9%e3%82%a4%e3%83%89/" rel="bookmark" title="2011年4月29日">スマートフォンサイトにフリック・スワイプ実装できるjQueryスライダプラグイン</a><a  href="http://b.hatena.ne.jp/entry/http://blog.kaleido-jp.net/web/%e3%83%95%e3%83%aa%e3%83%83%e3%82%af%e3%82%b9%e3%83%a9%e3%82%a4%e3%83%89/" > <img src="http://b.hatena.ne.jp/entry/image/http://blog.kaleido-jp.net/web/%e3%83%95%e3%83%aa%e3%83%83%e3%82%af%e3%82%b9%e3%83%a9%e3%82%a4%e3%83%89/" /></a></span></li>
</ul>
<p><!-- popular Posts took 4.745 ms --></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.kaleido-jp.net/web/objective-c_for_webcreator/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>iPhoneアプリを開発中</title>
		<link>http://blog.kaleido-jp.net/dialy/iphone%e3%82%a2%e3%83%97%e3%83%aa%e3%82%92%e9%96%8b%e7%99%ba%e4%b8%ad/</link>
		<comments>http://blog.kaleido-jp.net/dialy/iphone%e3%82%a2%e3%83%97%e3%83%aa%e3%82%92%e9%96%8b%e7%99%ba%e4%b8%ad/#comments</comments>
		<pubDate>Thu, 12 May 2011 15:41:15 +0000</pubDate>
		<dc:creator>kosuke</dc:creator>
				<category><![CDATA[iPhone]]></category>
		<category><![CDATA[スマートフォンアプリ関連]]></category>
		<category><![CDATA[雑記]]></category>
		<category><![CDATA[Objective-C]]></category>
		<category><![CDATA[アプリ]]></category>
		<category><![CDATA[開発]]></category>

		<guid isPermaLink="false">http://blog.kaleido-jp.net/?p=597</guid>
		<description><![CDATA[画像は仮デザインのものですが、iPhoneアプリ作り中です。最初は開発スピード重視でTitanium Mobileでの開発を考えていたのですが、アプリ内課金のことなど考えるとObjective-Cの方がいいなーと。（Ti [...]]]></description>
				<content:encoded><![CDATA[<div class="indent">
<div id="attachment_598" class="wp-caption alignleft" style="width: 160px"><a href="http://blog.kaleido-jp.net/wp-content/uploads/2011/05/d2aeb60bec3b16545f8c74c4d2f6ae44.png"><img src="http://blog.kaleido-jp.net/wp-content/uploads/2011/05/d2aeb60bec3b16545f8c74c4d2f6ae44-150x150.png" alt="" title="iPhoneアプリ" width="150" height="150" class="size-thumbnail wp-image-598" /></a><p class="wp-caption-text">開発中のiPhoneアプリ</p></div>画像は仮デザインのものですが、iPhoneアプリ作り中です。最初は開発スピード重視でTitanium Mobileでの開発を考えていたのですが、アプリ内課金のことなど考えるとObjective-Cの方がいいなーと。（Titaniumに、アプリ内課金を後付けする手法もあるみたいですが、なんだか調べるのがめんどかったのでパス…）</p>
<p>でも、著作権フリー音楽をダウンロードできるアプリを作ってるのですが、今のところ世の中的に同じタイプのアプリが出てないみたいなので、実際審査パスするかどうかがわからないです。<br />
（着信音ダウンロードアプリはあるみたいですので、名目としては着信音ダウンロードアプリになるかもです…）</p>
<p>ということで、ブログでのお役立ち情報の更新がやや滞ると思われます（笑）</p>
<p>Web系の方で、なんとなくアプリ開発やってみたいなーと思ってらっしゃる方多いと思うのですが、Objective-C慣れれば簡単ですよ。<br />
とにかくXcodeが優秀です。XcodeがiOSアプリ開発の敷居を下げてくれてますね。<br />
クラスのプロパティとかコード補完してくれるので、仕様やAPIを全て知らなくても勘で行けることも多いです。</p>
<p>ネイティブアプリはダウンロードされてなんぼというところがありますが、やっぱり出来ること多いしWebには無い魅力がありますよ。</p>
<p>あと、アプリのネタが無いもんな〜と思ってらっしゃる方も多いと思うんですが、やっぱりなにか作ってみることかも知れませんね。作ってると、いろいろネタが思い浮かんでくるものです。</p>
<p>とりあえず、このアプリ需要なさそ〜（笑）</p>
<p> <SCRIPT charset="utf-8" type="text/javascript" src="http://ws.amazon.co.jp/widgets/q?ServiceVersion=20070822&#038;MarketPlace=JP&#038;ID=V20070822/JP/kaleidoscopew-22/8001/2bfee1fc-14e8-47ab-84a9-1c3ba093ec23"> </SCRIPT> <NOSCRIPT><A HREF="http://ws.amazon.co.jp/widgets/q?ServiceVersion=20070822&#038;MarketPlace=JP&#038;ID=V20070822%2FJP%2Fkaleidoscopew-22%2F8001%2F2bfee1fc-14e8-47ab-84a9-1c3ba093ec23&#038;Operation=NoScript">Amazon.co.jp ウィジェット</A></NOSCRIPT></p>
<p><br clear="all" />
</div>
<p><strong>他の人気エントリ</strong>
<ul class="popular-posts">
<li><span><a href="http://blog.kaleido-jp.net/kaleidoscope/unity_develope/" rel="bookmark" title="2012年2月28日">Unityが使える方を探しています</a><a  href="http://b.hatena.ne.jp/entry/http://blog.kaleido-jp.net/kaleidoscope/unity_develope/" > <img src="http://b.hatena.ne.jp/entry/image/http://blog.kaleido-jp.net/kaleidoscope/unity_develope/" /></a></span></li>
<li><span><a href="http://blog.kaleido-jp.net/web/typoinsta_bosyu/" rel="bookmark" title="2011年12月6日">デザイナーさん・イラストレーターさんを募集しています</a><a  href="http://b.hatena.ne.jp/entry/http://blog.kaleido-jp.net/web/typoinsta_bosyu/" > <img src="http://b.hatena.ne.jp/entry/image/http://blog.kaleido-jp.net/web/typoinsta_bosyu/" /></a></span></li>
<li><span><a href="http://blog.kaleido-jp.net/smatphone_app/aboutapp/" rel="bookmark" title="2011年11月19日">Flash終了でアプリは消えないと思うよ？</a><a  href="http://b.hatena.ne.jp/entry/http://blog.kaleido-jp.net/smatphone_app/aboutapp/" > <img src="http://b.hatena.ne.jp/entry/image/http://blog.kaleido-jp.net/smatphone_app/aboutapp/" /></a></span></li>
<li><span><a href="http://blog.kaleido-jp.net/music/kubbe/" rel="bookmark" title="2012年6月17日">ノルウェー絵本「KUBBE（キュッパ）」映像化の音楽を作りました</a><a  href="http://b.hatena.ne.jp/entry/http://blog.kaleido-jp.net/music/kubbe/" > <img src="http://b.hatena.ne.jp/entry/image/http://blog.kaleido-jp.net/music/kubbe/" /></a></span></li>
<li><span><a href="http://blog.kaleido-jp.net/web/%e3%83%95%e3%83%aa%e3%83%83%e3%82%af%e3%82%b9%e3%83%a9%e3%82%a4%e3%83%89/" rel="bookmark" title="2011年4月29日">スマートフォンサイトにフリック・スワイプ実装できるjQueryスライダプラグイン</a><a  href="http://b.hatena.ne.jp/entry/http://blog.kaleido-jp.net/web/%e3%83%95%e3%83%aa%e3%83%83%e3%82%af%e3%82%b9%e3%83%a9%e3%82%a4%e3%83%89/" > <img src="http://b.hatena.ne.jp/entry/image/http://blog.kaleido-jp.net/web/%e3%83%95%e3%83%aa%e3%83%83%e3%82%af%e3%82%b9%e3%83%a9%e3%82%a4%e3%83%89/" /></a></span></li>
</ul>
<p><!-- popular Posts took 4.793 ms --></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.kaleido-jp.net/dialy/iphone%e3%82%a2%e3%83%97%e3%83%aa%e3%82%92%e9%96%8b%e7%99%ba%e4%b8%ad/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
