2008年09月08日

iPhone向けWebアプリ→ネイティブアプリの15日間

 ここ最近、iPhone向けWebアプリは放っておいてiPhone向けネイティブアプリを作ってたので、雑感を書いておきますね。Twitter見ながら書いたので日数は適当です。


〜0日:経緯


 もともとjavascriptとかPHPとかやって遊んでました。Cとか分かりません。フレームワークとか使ってぬるくプログラミングしている現代っ子です。
 iPhone向けのWebアプリとか作ってたのですが、ついうっかりiPhone向けネイティブアプリを作りたくなってしまいました。とは言っても、Macを持っていない上に、わざわざこのために買うお金も度胸もなかったので、

iPhoneのネイティブアプリが作りたくてMacbookをとりあえず買った*タムケンブログ
iPhone向けの何かをとりあえずやりたい方いらっしゃったら勉強がてら手伝っていただけると涙を流して喜びます。開発環境とiPhone実機と普通のお給料とお昼ご飯くらいはどうにかなると思うので夏休みの暇つぶしなどに是非。

 
というわけで学生ベンチャーのモバキッズに転がり込んでます。

1日目:Mac



 この日初めてMacを本格的に使いました。Windowsとの細かい違いに悶絶しながら、『Objective-C 2.0』を読みつつ、Hello Worldをいじってみる。なんとなく分かったけど、自分じゃ作れないよねっていうレベル。(後になって、なんとなくも理解できてなかったことが発覚><)


2〜5日目:Objective-C



 『Objective-C 2.0』にif文の書き方も書いていないのでサンプルを見てみていたら、Cを覚えないと始まらないことに気がつく。Cを覚えた上でNSobjectとかメッセージとかそんなのを覚えとく必要がある。さらさらと表面をなでるように勉強。

 とりあえず最初にメッセージの書き方を覚えればいいと思います。

-(NSnanchara *)tekito-na_hennsuu:(NSURL)xmlurl

 こんなフレームワーク側(?)が用意してくれてるメソッドが資料にいっぱい載っているのですが、メッセージの書き方が微妙だとさっぱり動きません。また、NSobject以下用意されているオブジェクトが使いにくすぎて、もう全部Cでいいじゃん!という気持ちになりますが、そんなことはないので理解してあげるといいと思います。配列関係はもう少し使いやすくなるといいなーという気はします。

 
 Objective-Cのメソッドはそれはもう変態的に長すぎて、文字列を連結させるのにも一苦労するくらいなので、CocoaプログラマはドMなの?とか思っていましたが、入力補完が快感になってきた僕も立派なMです。


5〜9日目


 
 ここに来て、NSobjectクラスを継承してるNS系クラスのインスタンス(=オブジェクト)が便利すぎることを発見。選択して右クリック(右クリックができないOSがなくなって良かったですね!)で『APIリファレンスのなんたら』見たいなのを選ぶとリファレンスが出てきて、いろいろ組み合わせると、なんとなくいろんな機能を実装できる。
 個人的にはXpathが使えたのがうれしかった。

 しばらくいじってると、やろうと思っていたことが全部できてしまった。

 この頃になるとXcodeのちょっとした心遣いに癒される。ファイルをコードの中に突っ込むと絶対パスになるとか。「そう、そうしたかったんだよ!」っていう機能がわりと多い。空気読める子。


9〜15日目(今)



 Interface Builderをちゃんと使おうと思ったけど、すぐに挫折。うにょーって引っ張るところがあるんですが、気がつくかよ!っていうようなUIで、間違った『直感的なUI』だと思った。Appleは直せばいいと思うよ。ま、本には普通に書いてあるんですけどね。

 サンプルをじっくり見ると分かるのですが、iPhoneアプリに関してInterface Builderはあってないようなもの。むしろ邪魔なんじゃないかという気さえします。

 そもそもInterface Builderは『基盤となるUIがあり変化しても少し』、というGUIを設計する時に威力を発揮するアプリケーションです(たぶん)。iPhoneアプリでよくある、小さい画面の中で次々にUIを変化させるアプリでは、結局コードの中からボタン等を生成することになり、それなら最初からIBいらないよ><っていうことになるんですよね。

 さらにイケてないことに、あらゆるスタイルはコードの中に書かなければいけません。CSSが欲しくなりますね。おかげで、デザインにこだわり始めるとぐっちゃぐちゃになる可能性大。本当は回避する方法があるのかな?

 悪いことだけではなくて、TableViewっていうのがiUIの本物なんですが、このTableViewの設定はメソッドを作ってその返り値で表現します。これがなかなか使いやすい。


 いままでUIはHTML+CSS+javascriptしか経験したことがなかったので、個人的にはかなり刺激を受けました。Webアプリを作るときは似たような概念で作りたいなーとかいろいろ妄想中。


まとめ



Web系のプログラミングしかしたことがない人が0から勉強してiPhoneのネイティブアプリを作ると、こんな風に進んでいきますよっていう、お話でした。なんかの参考になれば幸いです。

でも、読み返すと文字ばっかで超読みにくいですね><

hayashi311 at 01:24コメント(0)トラックバック(0) 

トラックバックURL

コメントする

名前
URL
 
  絵文字
 
 
Twitter
記事検索
QRコード
QRコード
  • ライブドアブログ