2011年4月29日金曜日

アプリをローカライズする手順メモ

Localizable.strings を用意する.




  • ファイル>新規ファイル>Resource>Strings Filesと選択












  • Localizable.string をResourcesフォルダに入れる




  • Localizable.string を右クリックし[情報を見る] を選択





    [一般] タブの下部にある[ファイルをローカライズ可能にする] ボタンを押下





  • [一般] タブに、"ローカリゼーション"欄ができる
    [ローカリゼーションを追加] ボタンを押下。一覧に出てこない国名はISO-639の省略形をつければ良い。韓国なら「kor」かな?







  • ファイルを開いてローカリゼーションの追加をおこなっていく
    例:"Hellow"="こんにちは";








アプリ名のローカライズ



  • Localizable.stringを作った時と同じような手順で、"InfoPlist.string"というファイルを作成する.
  • InfoPlist.string は、アプリの設定ファイルである Info.plist の項目を、ローカライズ毎に上書きするために用いるファイルとなる.
  • 特に、Info.plist の内容をローカライズする必要が無いときには、 InfoPlist.string を作成する必要は無い.


CFBundleDisplayName = "Hellow Timer"; CFBundleDisplayName = "Hellow Timer";

プログラム側をLocalizedStringに対応させる



正式に書くなら下のような感じ。 NSString *localizedString = [[NSBundle mainBundle] localizedStringForKey:@"Hoge" value:@"Hoge" table:nil]; ただし、マクロが用意されているので下記で書くのがふつう NSString *localizedString = NSLocalizedString(@"String", @"message"); messageは特に表示されるわけでは無いので@""と空にしても良い。

Xibのローカライズ




これの右クリック>情報をみる から設定が可能。
でも、かりにIBで画面を作っていたとしてもViewDidLoadのところでラベルやボタンのタイトルにlocalizedStringでテキストを再設定するように書いておいた方が明らかに便利。

国によって表示する画像や色を変えたりという場合に使うのかな。
でも、どの国でどういうデザインがうけるのかリサーチが必要だな。。。


その他、Sqliteのファイルもローカライズする設定がでてくるんだけれど、国別にファイルを分けられるって事?
うーん、必要にかられたら今度実験してみよう。
でも、必要なカラムを持っておいてコードで分岐させる方が楽かな。

NSArray *languages = [NSLocale preferredLanguages];
//NSLog(@"preferredLanguages : %@", languages);

language = [languages objectAtIndex:0];

こんな感じで NSStringで持って来ちゃえばいいんだもんなぁ。

2011年4月22日金曜日

とりあえずプロジェクトを作ってみる

順序がおかしいかもしれませんが、ようやくXcodeを使ってプロジェクトを作ってみるところを解説したいと思います。

  • Xcodeを起動


  • 新規プロジェクトを選択


  • Window-Basedにてプロジェクトを作成



  • プロジェクト名はとりあえず「Hellow-World」としますか。
  • とりあえずビルドしてみる。


ビルドしてみて真っ白な画面が出れば成功です。 シュミレーター(実機でもよい)にもインストールされて真っ白なアイコンが表示されていますね。

それではプロジェクトの中身を色々と見て行きます。


グループとファイル>Hellow-Worldの左横の▶をクリックするとツリー状に整列されたフォルダーが出てきますね。 これがHellow-Worldというアプリの中身になります。
  • Classes
    Hellow-WorldAppDelegate.hとHellow_WorldAppDelegate.mがあります。Objective-Cのクラスファイルは.hと.mのファイルが2つで一組になります。プロジェクト名+AppDelegateという名前のファイルがこのアプリの全ての動作を全てまかされた代表のファイルのなります。ちなみにDelegateとは代理という意味です。
  • Other Sources
    1. アプリ名_Prefix.pch
      コンパイル開始時に実行する事を書くファイル。今は変更しない。
    2. main.m
      このファイルが一番最初に実行される。が、いじる事はない。
  • Resources
    • MainWindow.xib
      アプリケーションの内容を描画する為のウインドウ。
    • アプリ名-info.plist
      プロパティリスト。XML形式でアプリのさまざまなプロパティ情報を保持する。アプリをリリースするまでには必ずいじる。
  • Frameworks
    • UIKit.framework
      アプリケーション・ユーザインターフェイスの構築と管理に必要なクラスの集合体
    • Foundation.framework
      Cocoaフレームワークの基礎的な部分を担当するAPIの集合体です。
    • CoreGraphics.framework
      グラフィックのAPI。
  • Products
用語解説
  • API
    要するにプログラムの固まり。これにより、機械語レベルのプログラミングを人間が書かないですむ。
  • フレームワーク
    APIを寄せ集めたものだと個人的には理解。


次回はiOSの概要について解説します。

2011年4月21日木曜日

ダウンロードしたサンプルプログラムをビルドする。

僕がDeveloper登録して一番最初に行ったことは、ネットなどで見つけたサンプルコードを実行してみた事です。
実際に形ある物で動かしてみることはとても大事です。

でも大抵のサンプルは過去に作られたものなので、Xcodeで起動してみると「BaseSDK missing」となってビルドできないですよね。

前回までの記事で解説した実機でのビルドをしっかりとマスターされた方なら「余裕っすよ」なんて言ってくれるかもしれませんが。。。

僕もここで少しつまずいたので、さっそく解説しちゃいます(^^)

  • まず、適当なサンプルをダウンロードしてきます。
    アップルのでも、書籍のサンプルでも何でも良いです。
  • ほとんどの場合、zip形式になっているので解凍します。
  • プロジェクトファイルをダブルクリックしてXcodeで起動します。


  • はい、思った通りBase SDK Missingです。


  • メニュー>プロジェクト>プロジェクトの設定を編集を開く


  • ベースSDKがiOS 3.1.2になってますね。これはSDKが3.1.2の時に作られたものだということが推測されます。


  • これを最新のSDKに書き換えます。この記事を書いてる現在はiOS4.3なのでそれにします。
  • もうひとつ、Code signing > コード署名>Any iOS をTeam Provisionning Profileに設定します。
  • 通常はここで Base SDK Missing からDebug〜に変わる。変わらなければOptionを押しながらBase SDK Missingとなっているボタンをクリックするとビルド先が設定できるようになる。(ここ大事)


  • iPhoneを接続してビルド。
  • 見事に立ち上がる
※まれに作者のidが残ったままになり、code sign errorが出る場合があるが、その場合は僕は諦めちゃいます。キーチェーンの設定を見直したり色々とやり方がありますが、サンプルはビルドできずにさらに自分の作ったプロジェクトまでビルドできなくなりましたなんてこともあったのでw

その場合は、自分で新規プロジェクトを作ってコードをコピーしてFrameworkなども取り込み直して作り直します。

アプリを実機でビルドする 実践編

アプリの作り方については、まだ一切解説していないが
自分で作ったプロジェクトを実機でビルドする方法について解説します。

X-codeを起動

p-listの編集 

  • プロジェクトの左側のグループとファイル>Resourceから、プロジェクト名-Info.plistを開きます。
  • Bundle identifierに、App IDとして登録した内容を入力します。

プロジェクト情報の編集

  • メニュー>プロジェクト>プロジェクト情報を編集>「ビルド」タブ
  • ビルド構成をDebugへ変更



  • Code Signing>コード署名ID>Any iPhone OS Deviceを作成したProvisioningにする
  • アーキテクチャ>ベースSDKを最新のSDKに設定
  • Deployment>Target Device Familyを設定
  • Deployment>iPhone OS Deployment Target>ベースSDKよりも古いバージョンを設定。※注意が必要。後日に別途解説します。
Deployment Targetは、複数のバージョンで動作するアプリをビルドするときに設定します。 しかし、最新のSDKに存在していて古いバージョンのSDKには存在しないFrameworkなどを使用していたりすると、古いバージョンのiOSで動かした際にアプリが落ちるなどの不具合が発生する可能性があるのでプログラムの中で対応が必要だったりもするので結構大変です。 今回はとりあえず最新のSDKにしておいてください(^^; ビルドエラーで failed to upload xxx.appと出たらXcodeを再起動してください。×で閉じるだけじゃなくてcommand + Qできっちりと終了させる。

2011年4月18日月曜日

アプリを実機でビルドする。 準備編

アプリの作り方の解説の前に、作ったアプリを実機で動かす為の手順を解説しちゃいます。

なんでかって言うと、色々なサイトや書籍とかに付いているサンプルコードを実機で動かしてみたいってのが人情じゃないですか。


※iOS Developer Program に登録されていることが前提です。



アプリの作り方の解説の前に、作ったアプリを実機で動かす為の手順を解説しちゃいます。

なんでかって言うと、色々なサイトや書籍とかに付いているサンプルコードを実機で動かしてみたいってのが人情じゃないですか。



PCでの準備

  • アプリケーション>ユーティリティ>キーチェーンアクセスを起動。
  • [設定確認]より、OCSPとCRLが「切」になっている事を確認。


  • キーチェーンアクセス>証明書アシスタント>認証局に証明書を要求を選択して、証明書を作成します。
  • ユーザのメールアドレス:iOS Developer Program に登録した際のメールアドレス コモンネーム:iOS Developer Program に登録した際のFirstname とLastnameを記入する。
    要求の処理:[ディスクに保存]を選択して、「鍵ペア情報を指定」をチェックします。


iOS Provisining Portal

    iOS Dev Centerの「log in」ボタンを押すとIDとパスワードを入力するフォームが出てくるので、入力してログインします。
  • ログイン後、iOS Developer Programのメニューに表示された iOS Provisioning Portal へ入る。


  • 左側にあるメニューより、「Certificates」>「Development」タブ。

  • 「Request Certificate」をクリックして,次の画面で証明書要求のファイル(キーチェーンで作成した作成したCSRファイル)を選択し、「Submit」をクリック
  • タブを一旦、「Distribution」タブにします。それから、「Development」タブに戻します。
  • Request Certificate の箇所に「Approve」ボタンが表示されますので、クリックします。
  • タブを一旦、[Distribution]タブにします。それから、[Development]タブに戻します。
  • Approve の箇所に「Downloade」ボタンが表示されますので、クリックすると、証明書をダウンロードします。
    リストの下にある「WWDR intermediate certificate」もダウンロード
  • ダウンロードして、ファイルをダブルクリックすると、キーチェーンアクセスの証明書に追加されます。
  • If you do not have the WWDR intermediate certificate installed click here to download now. のアンカーをクリックして「AppleWWDRCA.cer」をダウンロード。
  • ダウンロードして、ファイルをダブルクリックすると、キーチェーンアクセスの証明書に追加されます。
  • キーチェーンアクセスに、以下の証明書が追加されていれば成功。
    • ■iOS Development: Firstname Lastname
    • ■Apple Worldwide Developer Relations Certification Authority

Deviceの登録

  • iPhoneをMac に接続し、Xcode を起動。
  • メニュー>ウィンドウ>オーガナイザ
  • iPhone の「Identifier」(Device ID)をコピーします。後で貼付ける為。
  • iOS Provisioning Portalにログインします。
  • 左側にメニューDevicesをクリックします。
  • Manageタブを選択する。
  • Add Devices からDevice Name とさっきコピーしたDeviceIDをコピペで入力

Provisioning Profileを作成する

  • 左側メニュー>App IDs
  • ユニークなアプリのIDを作成する為の手続き
    • 以下の項目を記入して[submit]ボタンをクリックする。
    • Description: xxxx (後で何のアプリか分かればよい)
    • Bundle Seed ID:Generate New
    • Bundle Identifier:com.xxx.appriname(com.domainname.appnameの形が推奨されている)
  • メニュー>Provisioning>Developmentタブ
  • [New Profile]ボタンをクリックして、以下の項目を記入して[submit]ボタンをクリックする。
    • Profile Name:xxxx(後で、何アプリの開発用だとわかるように記入する)
    • Certificates:チェックを入れる
    • AppID: さきほどAppIDsで作成したIDを入力
    • Devices:実行したいデバイスにチェックを入れる。
  • メニュー>Provisioning>Developmentタブ
  • 先ほど作成したProvisioning ProfileのDownloadボタンをクリックしてダウンロード。(作成後しばらく待つ必要有り)
  • ダウンロード後、ファイルをダブルクリックするとXcodeに取り込まれる。
以下にあるようにcertificateは自分おPCが正規な開発者のものかどうかを認証する為のものなので、一台のPCで開発している人は一回だけしかやらない作業です。 Provisioningの作成とインストールは頻繁にやる作業なのでしっかりと理解しておいた方が良いとおおいます。BundleIdentifer に*をつけたIDを作るなどの方法もありますが、個人的には一度もメリットを感じたことが無いのであえて解説はしません。

その他メモ

    証明書(Certificate)について
  • 正規のiPhone開発者であるという証明書(Certificate)をPCに登録する必要がある。
  • iPhone Developper Program では公開鍵、秘密鍵方式で認証している(RSA)
  • 証明書は開発するマシンにインストールされる、キーチェーンアクセスでインストールされた証明書を確認できる

2011年4月13日水曜日

Developer Programに参加する

iOS Developer Programへの登録







1.Are you new or a registered Apple developer?




画面右側は既にDeveloper登録済みの方のメニューなので左側の二つから選択。

I need to create a new account for an Apple Developer Program.
<訳>Apple Developer用に新しいアカウントを作成します。

I currently have an Apple ID I would like to use for my enrollment in an Apple Developer Program.
<訳>既存の Apple IDを持っていて、それをApple Developer Program の参加に使用します。


2.Are you Enrolling as an Individual or Company?




個人ならIndividual、企業ならCompanyを選択します。
個人を選択した場合、AppStoreの販売業者欄にはApple IDで指定した個人の名前が入るようになります。

3.Sign in with your Apple ID



登録してある Apple IDを入力してログイン

4.Enter your billing information for identity verification


支払いの為の情報を入力する。
名前、国、住所、郵便番号、電話番号を入力。
電話番号は「Country Code, Area/City Code, Number, Extension」と指定されているので、先頭の箱に81、続きは普通に入力。国際電話の番号扱いだから頭のゼロをとったほうがいいとも思ったが、とりあえず普通に入力。

5.Select Your Program


6.Review your enrollment information & submit.


7.Program License Agreement

 同意して次へ

8.Proceed to your country's Apple Online Store to purchase


 Add to cartをクリック。AppleStoreの普通の商品という扱い。

9.Apple Storeのサイト

App Storeで購入処理。
なぜか配送業者にヤマト運輸とか書いてありますが、実際に書類が送られてきたりといったことはありません。
一連の手続きを全て英語で入力しないと、その後のアクティベーションでつまずいてしまうとありますが、ここで日本のAppleStoreを選択する限りやっぱりはまってしまうそうです。
なので始めからアップルのサポートに連絡をいれるつもりでいましょう(笑)

 

10.Apple Developer Program Activation Code




全て登録した後にしばらくするとアクティベーションメールが届きます。
メールの内容の通りにActivation Codeをクリックするとアクティベーションが開始されます。
しかし、前述の通りエラーになりますw
ここをそのまま抜けられた場合はラッキーです。

エラーは下記な感じ
We are unable to activate your iPhone Developer Program membership because we are unable to successfully verify your identity. Please contact us and reference Enrollment ID# XXXXXXXXXX for further assistance.

アクティベーションができない旨を報告。こちらからアクションを起こさない限りApple側からは連絡はないので注意。
http://developer.apple.com/contact/

まず速攻で"Acknowledgement of your email/submission"というタイトルでメールが返ってくるが、これは受信しましたよというもの。
早ければ数時間。遅くとも2、3日でメールの返信がある。



11.ふたたびアクティベーション

ここでうまくいけば晴れてiOS Developerの仲間入りだ。
ふう。

開発環境を作る

iphoneSDKの入手とインストール

正確にはiPadが発売されたときにiPhoneOSからiOSになったのでiOS SDK.
そんな細かい事はいいかw

iOS SDKは"iPhone Dev Center"から無料でダウンロードできる。
SDKには開発環境、ドキュメント、サンプルなど開発に必要な物が含まれる。

まずDev Center に登録。Webフォームに必要事項を記入。
その後、iPhone Dev Center へログイン。



iPhoneSDKをダウンロード。
Member Center > Dev Center > iOS > Downloads

XCodeというソフトがプログラムのエディタやコンパイラなどを含む統合開発環境で無料でダウンロードができたのだが、最新版のXcode 4 は現時点では 99 ドル / 年の Mac Developer Program もしくは iOS Developer Program 加入者のみに無償で提供されており、それ以外のユーザーは Mac App Store で 4.99 ドルで購入する必要があるらしい。

とりあえずはXCode3をダウンロードしよう。
最新版の"Xcode 3.2.6 and iOS SDK 4.3 (Disk Image)"は4.1Gあるのでダウンロードは気長に。


ディスクイメージファイル(拡張子は.dmg)で配布されているので、ダウンロード後にダブルクリックすると中に「iPhone SDK.mpkg」というファイルがあるのでダブルクリックするとインストールが始まる。





インストールも結構時間がかかるので気長に。
僕もこれを書きながらiOS4.2から4.3にバージョンアップすべく、インストールしてるんだけれどあと25分かかるらしい。ひと休みして食事でもしよう。


一年間での金額が設定されているので、シュミレーターでじっくりと作ったアプリをテストしてからiOS Developer Programに登録するというのも人つの手かもしれない。
でも、とりあえず登録してお金を払ったほうがモチベーションが継続するとも思ってみたり。

次回はDeveloper Programに参加する

アプリを開発するのに必要なものって? いくらかかるの?

なんでMacを買わないといけないんじゃい!

っと僕もおもいましたが、それはさておき。
10万円くらいのMacとiPhoneがあればとりあえずの物は揃う。


Mac

intel CPU を搭載したMacが必要です。WindowsやOS 10.5よりも古いMacでは開発環境のインストールができません。
僕は10.6の入ったMacBookを使用しています。ノートにした理由は、モニターの裏の部分にアップルマークが光るノートPCにちょっとだけ憧れていたからです。
お金に余裕があればMacBook Proの方が良いらしいです。

iPhone/iPad/iPod Touch

上記のいずれかがあれば自分の作ったプログラムを実機で動かしてみる事ができます。

ただし、3G通信、GPSやカメラなど機種によっては無いものがあるので、今ならiPhone4が確実。
使っている携帯がiPhone以外のものであれば、1年間でかかるコストは通信料がないiPod Touchが一番安くすむ。


※実機で動かす為にはiPhone Developer Program(スタンダードプログラムで年間10,800円)を購入する必要があります。
シュミレーターで動かすだけならば、実機もDeveloper Programの購入も不要。


やる気と忍耐

プログラムって動いたときは嬉しいけれど、動かないときの気分は本当に最悪。
ひとつひとつそういった事をクリアしていって一喜一憂するのもまた、楽しい。


はじめまして

初めまして。kozyです。
iPhoneアプリを作り始めて2年目のサンデープログラマーです。
ようやく3本目のアプリをAppStoreに提出しました。

iPhoneアプリを作り始めたきっかけは、去年に携帯電話をiPhoneに変えたことと、ニュースなどで日本人のiPhoneアプリ開発者の成功事例を見たことです。
中には一本のアプリで何千万と稼いだ開発者もいるそうです。
全くのプログラム未経験者や学生が数ヶ月でiPhoneアプリをリリースしている事例が紹介されていて、もしかしたら自分でもできるんじゃないかと思えたのです。

もちろん、iPhoneアプリを動かす為の言語であるObjective-C(オブジェクティブシー)なんて見た事も聞いた事もありませんでした。C言語もさっぱりでした(笑)


このブログはこれからiPhoneアプリを作ろうと思っている方、アプリ開発に興味がある方を対象に、これまで僕がアプリを作る為に勉強したり調べたりした事を初歩の初歩から系統だてて紹介していければと思っています。

僕の書いた記事を参考に、一人でも多くの方が手のひらの端末で自分の作ったアプリが動く感動を味わってくれれば嬉しいです。