• 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

via http://d.hatena.ne.jp/tototti/20081016/p1

瀧内さんから勧めてもらったEricaさん本。Appleのdevサイトからサンプルappをいくつかダウンロードして勉強した私にはいい感じです。

informitでMember登録すれば30%offになるので、$20くらいで(今なら円高だしさらにお得に!)手に入れることができるようです。

The iPhone Developer's Cookbook: Building Native Applications for the iPhone (Developer's Library)
http://www.informit.com/store/product.aspx?isbn=0321553519

http://www.amazon.co.jp/exec/obidos/ASIN/0321555457/:amazon.co.jp

また、本に載っているソースの最新版は大変便利です!(下記)

http://code.google.com/p/cookbooksamples/downloads/list

posted by Png satoko on Sat 13 Dec 2008 at 13:59

いくつかメモ。
京都でおすすめのカフェ等ありましたら、ぜひコメントくださいませ!
京大内のカフェでWIFIで電源ありないのかしらん。京大行ってみたいんですけどねー。

カフェ テラッツア:哲学の道 法然院前

雰囲気が素敵。WIFIがあって電源も貸してもらえるそうです。
場所的には行きづらいですが、気分転換にもなるし良さそう。疲れたら歩くのもいいですしね♪
http://www.cafeterrazza.com/index.html

京都のオープンカフェ

全部でWIFIを使うことはできなさそうですが、雰囲気がいいのは気分が違いますからね。
http://yattemiyou.net/blog/archives/2007/10/post_295.html

AP マクドナルド 四条河原町店

http://fortecafe.seesaa.net/category/745313-1.html

こぎれいで雰囲気良さそうです。

posted by Png satoko on Tue 9 Dec 2008 at 12:32 with 2 comments

iPhoneってメール送信はmailtoしか用意してないんですね。それ以上のものを作る(長い文字列の送信など)には自分でSMTPクライアント作るしかないみたいです。
とりあえずmailtoを使ったアプリSendingEmailを作ってみました。

作業

  1. プロジェクトの新規作成でView-Based Applicationを選択:SendingEmailとする
  2. SendingEmailViewControllerにsendingEmail関数を追加
  3. SendingEmailViewController.xibファイルをダブルクリックしてInterfaceBuilderを起動
  4. InterfaceBuilderで先ほど追加したsendingEmailとGUIをマッピング
  5. Build&Goして動作を確認します:エミュレータではメール送信画面は表示されませんので、実機でどうぞ

UIViewControllerにsendingEmail関数を追加

SendingEmailViewController.hファイル

   1  @interface SendingEmailViewController : UIViewController {
   2  }
   3  
   4  - (IBAction) sendingEmail: (id) sender;
   5  
   6  @end

SendingEmailViewController.mファイル

   1  #import "SendingEmailViewController.h"
   2  
   3  @implementation SendingEmailViewController
   4  
   5  - (IBAction)sendingEmail:(id)sender {
   6   	NSURL* mailURL = [NSURL URLWithString: @"mailto:satoko@somedomain.com?subject=My%20Subject&body=bodyStuff"];
   7  	NSLog(@"mailURL: %@", mailURL); //Debug		[[UIApplication sharedApplication] openURL: mailURL];
   8  } 

InterfaceBuilderでの作業:SendingEmailViewController.xibを編集

  1. Round Rect Button(UIBUtton)をview上にドロップしてtitleにsend Emailと入力
  2. File's Ownerを右クリックしてダイアログを開き(この黒いダイアログなんて呼ぶのかな...)
  3. File's OwnerのsendingEmail関数を、ボタンの関数Touch Up Insideと結びつける
    1. ダイアログ内のReceived Actions項のsendingEmailの右端の丸をクリック&ドラッグして、
    2. ステップ1.で置いたボタン上までマウスを持って行き
    3. ボタンがハイライトされたらマウスを放す
    4. ダイアログ内のTouch Up Insideを選択

sendingEmail_InterfaceBuilder.png

注意

件名や本文はエンコードしないといけないようです。
http://eggbung.blogspot.com/2008/11/iphone-development-creating-email-with.html
http://www.iphonewebdev.com/examples/mailto.html

posted by Png satoko on Thu 4 Dec 2008 at 16:51

とりあえずサンプルは動いた。でも何がなんだかわからないという人はこれをやってみるといいかもしれません。

developer.apple.comのiPhone101
上記リンクの内容のpdf版

学んだ・作業したこと

  • xibはニブ(nib)ファイルと読む
  • Delegatorとプロトコルがなんとなく
  • (初心者には便利な)Interface Builderを使ってのGUI作成

できたアプリ

UITextFieldに名前を入力して、Helloボタンを押すと、"Hello, satoko!"と表示するアプリ iPhone Simulator.png

posted by Png satoko on Thu 4 Dec 2008 at 15:03

メモメモ。

NSLogクラスとDebugger Console

NSLogというクラスを使ってDebugger Consoleに出力できます。
Debugger Console:Run - Console または Shift+Command+Rで開く

サンプルアプリ SpeakHereより

   1  NSLog (@"updateUserInterfaceOnAudioQueueStateChange just called.");
   2  NSLog (@"Recorded file path: %@", fileURL); 

便利なiPhone デバッグ用のマクロがあった

http://d.hatena.ne.jp/Psychs/20081120/1227203259
by Psychsさん

このマクロを使うと下記の関数が使えるようになります。大変便利です!

   1  LOG(@"initialized %@", obj);
   2  LOG_CURRENT_METHOD;

ちなみに、このマクロはSpeakHere_Prefix.pchなどのプリコンパイル済みヘッダにいれるとよいようです。

posted by Png satoko on Thu 4 Dec 2008 at 14:34

下記を参考に実機で動かすことができました。

http://d.hatena.ne.jp/uzulla/20080911#p1
http://www.codeanimato.com/blog/archives/2008/10/iphone-2.html

で、いくつかはまった点があったのでメモしておこうと思います。

エラーコード:0xE800003Aについて

アプリをインストールする際の認証で上記のエラーコードが表示されることがあります。"これは証明書が正しくインストールされていない可能性が高い"(by uzullaさん)とのこと。

私の場合provisioning profileを再設定設定した後、Build&Goを何回やってもエラーコードが表示されたのですが、Clean後Build&GoしたらOKになりました(はまった)。色々設定を変更した時はClean後Build&Goがよいように思います。
Picture 3-1.jpg

Xcodeのプロジェクトでprovisioning profileの指定の画面が変更になっていた

私のxcodeは3.2.1なのですが、TargetのInfoで指定するCode Signingの項目が違いました。
下記のようにDeveloper名と、provisioning profileがセットになって表示されるので正しいセットを選択すればokです。
Picture 1-1.jpg

また、この件はDeveloper ForumsのTopic:Missing "Code Signing Provisioning Profile" in Xcode build options が参考になりました。

Program Portalの各カテゴリにあるHow Toタブが役に立つ

上に挙げたURLばかりみていたのですが、How Toタブにもう少し細かい情報が載っていることがあります。詰まったらそこを見てみるのも一つの手だと思います。

2つの証明書のキーチェーンへのインストール先はlogin

WWDR Intermediate CertificateとiPhone Distribution CertificateはloginキーチェーンにインストールすればOKです。これも下記のHow Toタブで見つけました(もしかしたらloginがmustではないかもしれません)

http://developer.apple.com/iphone/manage/certificates/team/howto.action

provisioning profileの置き場所は‘~/Library/MobileDevice/Provisioning Profiles’

これもHow Toタブからの情報です。
OrganizarからiPhoneにインストールすれば自動的にここにコピーされるようですが、古いprovisioning profileが残って困るということきはこのディレクトリから削除するのも一つの手だと思います。

http://developer.apple.com/iphone/manage/provisioningprofiles/howto.action

appファイルが更新されない

Buildしても生成appファイルが更新されないこともあるようで、YOUR_APP_ROOT/build/Debug-iPhoneosディレクトリにあるappファイルを手動で削除したりしました。エミュレータ用のappファイルもbuild以下にあるので、更新されないようなら同様に手動削除するといいかも。

posted by Png satoko on Wed 3 Dec 2008 at 14:20