2011年11月25日金曜日

iOSアプリ開発者への道(19):iPhone or iPad or ユニバーサル

iOSアプリを企画するにあたり、ターゲットとするデバイス(iPhoneもしくはiPad)を決める必要があります。

iPhone向けに作成すればアプリそのままでiPadでも稼働しますので、一見するとiPhone対応のみに対応するアプリを作成すれば良いように考えるかも知れません。

ゲームアプリではそれでも良いかも知れませんが、情報系のアプリではiPadの画面サイズを有効に使えれば情報量を増やせますし操作性も向上させることができます。

また、iPadのみ対応した画面インタフェース(スプリット画面分割とか)も利用することができますので、より操作性を向上させたアプリを作成することも可能です。

iPad専用アプリではこのような利点がありますので作成しようとするアプリの性質・用途にあったデバイスでの開発を検討することも重要だと思います。
└外出中に使用する用途のアプリでは携帯性を考えてiPhoneになるでしょうし。。。

あと、iPad専用アプリの意外なメリットとしてAppStoreのランキングが上がり易い点があります。
これはAppStoreではiPhoneアプリとiPadアプリのランキングが別々に管理されており、iPhoneアプリと比べてiPadアプリはリリースされている絶対本数が少ない分、同じダウンロード本数でもiPadランキングでは上位に入ることができます。
└敢えてiPad専用アプリとしてリリースするのも戦略の一つ。

なお、iPadとiPhone用に別々のアプリとしてリリースした場合は当然ながらダウンロード本数も別々にカウントされるため、ランキングも別管理されます。


また、1つのアプリでiPhoneとiPadの両方に対応させることで稼働されるデバイスに応じて画面インタフェースを切り替える「ユニバーサル」アプリ対応として作成すれば同一アプリになりランキングも統合されますのでメリットは大きいと思います。

ですが、ユニバーサル対応アプリ作成では結構面倒な対応が必要になることと画像等のリソースサイズも大きくなりがちですのでユニバーサル化のメリット・デメリットを良く検討することをお勧めします。


デバイス対応に関してはアプリ企画段階で実現したいアイディアをまとめ、ターゲットとする利用者やアプリの用途にあったシチュエーションを想定して、対応させるデバイスを決定することも重要な決定事項であると思います。

2011年11月21日月曜日

iOSアプリ開発者への道(18):ゲームアプリ開発について考える

iOSアプリの企画・開発でゲームアプリ開発を考えている人は多いと思います。

ゲームアプリジャンルは一番アプリ数も多く競争が激しいジャンルですが、その分上位にランキングされると驚くほどダウンロードされますし多くのヒットアプリも出ていますので「夢」のあるジャンルとも言えます。

特にゲームのアイディア次第では単純なゲーム内容でもヒット作となる可能性も残されていると思いますので、ゲーム開発について考えていこうと思います。

まず、ゲームのヒット作として思い浮かぶのは「Cut the Rope」と「Angry Birds」でしょうか。
両アプリ共に共通しているのは「物理エンジン」を利用したゲームだったと言うことだと思います。

ゲーム中の物体が自然法則に従って落ちたり、飛んだりするアクションが遊び手の心を掴んだのではないでしょうか。

次にヒットしたのが「Infinity Blade」に代表されるような「3Dゲームエンジン」で作られたiPhoneやiPadでは遊べないと思われていた3Dゲームが出てきたのは衝撃的でした。

こちらはゲーム性より「3Dがスゴイ」って事で売れたように思います。

3D系のゲームは最初こそ感動しますがゲームとしてみた場合、PS3やXbox 360とか据え置きゲーム機では当たり前にあったゲームですし、携帯端末ではメモリ不足等が頻繁に発生したりゲームアプリサイズ自体が大きく最近は敬遠され始めているようにも感じます。

最近では「Cut the Rope」や「Angry Birds」で使われた「物理エンジン(第一世代!?)」より高度なシュミレーションが可能な物理エンジン(風や水等の流体シミュレーションとか)や2Dゲームエンジンを利用したゲームが登場し始めており、今後はこちらが主流になりそうな気配を感じています。

売れる(売れそうな)ゲームアプリではゲーム性のみではなく洗練されたグラフィック等の見た目や物理エンジンを駆使した独創的なアクションを組み合わせているので、王道で勝負するのであれば「ゲームエンジン・物理エンジン」をベースにしたゲームアプリ開発が必要になってくると思います。

無料で使える2Dゲームエンジンとしては「cocos2d」が有名で多くのゲームアプリがこのゲームライブラリを用いて開発されています。
└私もcocos2dにはお世話になっています。(^^ゞ

また、cocos2dでは2種類の物理エンジンもサポートしていますので「Angry Birds」系のアクションゲーム開発についてもアクション部分のみであれば比較的簡単に実現できます。
└ゲームとしてまとめ上げるのは大変でしょうけど。。。

cocos2dに付属する機能紹介用のサンプル集を試してみると有名なゲームアプリもこのサンプルからインスピレーションを得て作成したのではと思えるようなサンプルも多くとても参考になります。


3Dゲームエンジンもいろいろとあるようですが、取り敢えず無料で試せる「unity」という3Dゲームエンジンが安価なこともあって注目を集めているようです。
3Dゲームエンジンを用いたゲーム開発の雰囲気は掴めると思います。(面倒すぎて挫折しました(^_^;))
└まだ開発途上ですが「cocos3d」というのも出てきています。

あと、cocos2dやUnity以外にもiOS開発で利用できるゲームエンジンはいろいろとあるようですので、自身のゲームアイディアを実現するのに適したゲームエンジンを探すことをお勧めします。
└ソーシャルゲームを考えているならそれに適したものもありますので。。。

また、ゲームエンジンを用いて開発することでiPhoneのみではなくAndroid端末用にアプリをビルド出来たりと他のプラットフォームにも比較的容易に移植できるメリットもあります。
└cocos2dではMac用もありますのでiPhone用アプリをMacに簡単移植できます。

最後にゲームで最も大切なのはアイディアと発想だと思いますので、ユニークなゲームアプリを開発していれば自ずと道は開ける事でしょう。
└そう思いたいと言うか期待を込めて。。。(^_^;)

2011年11月19日土曜日

iOSアプリ開発者への道(17):収益化を考える

iOSアプリの作成スキルが身に付くと次はiOSアプリで「一儲け」できないかと考えを巡らせているかも知れません。

逆に「一儲け(一攫千金)」を目指してiOSアプリ開発の世界に踏み込んだ人もいることでしょう。

私は「二角取り」ゲームを最初に世に出したプログラマでして、1991年の初公開から現在までの間にいろいろな媒体やゲーム機向けにリリースしています。

当然ビジネスとして企画・開発していますのでiOSアプリについても収益化を目的に参入しています。

iPhoneが初めて世に出たタイミングでiOSアプリをリリースできれば「一儲け」できたかも知れませんが、その時期は残念なことにシステム開発(本職はWindowsベースのシステム開発やWebアプリ開発)の仕事が立て込んでまして、iOSアプリ開発に充てる時間が全く無く初期タイミングを逸しました。(^^ゞ

しかし、iPadを購入して実際に使ってみると最初は「こんなの何に使うのか」という感じでしたが、ある日気が付くとiPadを触らない日がないほどに生活の一部になっていることに気付いてからはiPad用のアプリを作りたい衝動に駆られ現在に至っています。


本題の「収益化」についてですが、まず収益の方法として大きくは下記の3パターンがあるかと思います。

<収益化の方策>
1.有料アプリ化
2.広告収入
3.アプリ売却

「1.有料アプリ化」は一番分り易い方法だと思います。 AppStoreで有料アプリとして販売する方法で販売本数がそのまま収益となります。

「2.広告収入」はアップル社のiAdやGoogle社のAdMob等の広告バナーをアプリ内に表示することでビュー数やクリック数に応じた広告料が収益となります。

「3.アプリ売却」は特殊な形態だと思いますが、ある程度ダウンロードされるアプリになりますといろんな会社から様々なアプローチがあります。 そんな中でアプリ自体を売って欲しいとかAndroid端末用にリリースしたいのでアプリの権利を売って欲しいとかの売却話もありました。

当然、「3.アプリ売却」は一回限りですので継続的に収益を見込める「1.有料アプリ化」もしくは「2.広告収入」が主な収益化方法であると思います。


作成したiOSアプリについてどちらの収益化方法を選択するのか、また有料アプリの場合には販売価格の決定も重要です。
この決定にはアプリの想定利用者属性(年代や性別)やらアプリ用途・利用パターンとかのアプリ自体の分析も必要になりますし、AppStore市場の状況、競合アプリ有無等の分析、プロモーション方法の検討等々、いろいろな情報・要件を統合的に分析して決定する必要があります。

この辺りの判断は非常に難しいと思いますが収益にも直結する重要な決定事項となりますので、一人だけではなく複数人で議論するとか時間を掛けて検討すべきだと思います。


しかしながら、現在のApp Storeはアプリ過剰な状況だと思います。
特にゲームジャンルでは大手開発会社が600円以上の価格のアプリであっても定期的に85円セールとか実施したりしていたり、有名な有料ゲームであってもランキングを上げる目的で定期的に無料リリースしていたりしますので、有料アプリでは最低価格の85円でもダウンロードされない状況なのでかなり厳しい状況だと思います。

個人としてゲームアプリのリリースを考えているのであれば無料アプリとして公開して広告バナーによる収益が良いかも知れません。

私の実績だけなのであまり参考にならないかも知れませんが、ダウンロード数が多く見込めない有料アプリの購入収益より無料アプリの広告収入の方が安定しており、長期的には良い結果につながっていくと思います。

最後に、繰り返しになるかも知れませんが現状のAppStoreでランキング入りするのは至難の業であり、iOSアプリで収益を上げる事自体が難しいということを心に止めておいてください。

しかしながら、iOSアプリ開発スキルを持った人材は引く手数多の状況ですからiOS開発スキルを付けること自体は大変貴重なスキルになると思います。

2011年11月14日月曜日

iOSアプリ開発者への道(16):アプリレビューに苦言

AppStoreに公開されますとアプリに対する利用者からのレーティング(☆1〜5)やレビューコメントが付きます。

AppStoreレビューコメントは励みになるものもありますが、どちらかと言うと見るに耐えない内容のものや見当違いのものも多く書き込まれますので、あまり見たくないと言うのが正直なところだったりします。(^_^;)
└実際、最近はレビューコメントを全く見ない様になりました。(^^ゞ

また、見当違いのコメントに対してはこちらから回答コメントを書き込めたら誤解も解けますし双方にとって良いと思うのですが、実際にはコメントを返す機能は実装されていません。
└レビューにコメントを付けれないのは作者としてもどかしく感じます。

また、レーティングについても同様で理解できないような理由(広告が表示されるとか、有料だからとか)で☆1とか付けられますので、あまり気にしているとモチベーションがだだ下がりになります。

とは言えレーティングはアプリをダウンロードする時に参考にする情報になる訳ですから、少なくともある程度はアプリを使い込んでからにして欲しいものですね。

私もアプリサポートのために当初はアプリレビューも定期的に目を通す様にしていましたが、アプリレビューは「質問」や「不具合報告」の場所では無いと悟ってからはメールでの質問・問い合わせについてのみサポートさせていただくようにしています。
└レビュー欄では連絡しようにも相手が誰だか分かりませんし。。。

アップルもレビュー者情報を作者側にも公開してくれたらレビュー欄も今ほど荒れないようになると思うんですけどねぇ〜。


特に無料アプリで自分の好みじゃないから☆1とかゲームが難しいから☆1とか自分勝手なレーティングやレビューが多く、逆に有料アプリではまともなレビューが増えるのも皮肉な話だと思います。

時間を掛けて作成したアプリを無料で公開している制作者の気持ちを考えるとやりきれない気持ちになりますね。(^_^;)


今のレビュー形態では開発者側、利用者側双方にとってメリット(的確なアプリの感想・評価)が少なく、逆にデメリット(購買機会の低下、開発者のモチベーション低下)の方が目立つ状況にあると思いますので、アップルにより良い方向に改善されることを期待したいと思います。

iOSアプリ開発者への道(15):アプリランキングを把握する

iOSアプリが無事にアップルの審査を通過してAppStoreに公開されると次に気になるのはダウンロード数やランキングでしょう。

ダウンロード数に関してはアップルの「iTunes Connect」ページ内のセールス・トレンド情報ページで前日のアプリ別,国別等のダウンロード数を見ることができます。

また、iPhone・iPadで利用できる「iTunes Connect Mobile」アプリがアップル社から無償で提供されており、このアプリでセールス・トレンド情報をお手軽に参照することも可能です。

次にランキングについてですが「App Store」アプリでは自身が公開したアプリを検索することはできてもランキングは表示されません。
└トップ100位くらいに入っていればランキング画面で探すことは出来ますが。。。

ランキングを取得・表示する便利なフリーウェアがありますのでご紹介させてもらいます。

<Mac用アプリケーション>
  MagicRank … 世界中のAppStore別のランキング一覧の表示が可能

このアプリは非常に便利です。 細かいカテゴリ指定も出来ますし現在のランキングを一覧表示できますので作成したアプリの状況把握に重宝します。

なお、デフォルトでは世界のBig8 AppStoreのみの表示になりますが、環境設定で全てのAppStoreを対象にしますと世界中のAppStore(約80カ国!?)でのランキング一覧表示も可能です。
└全ストア対象にしますと当然ながら結構な時間が掛かりますが。。。

でも、意外な国でランキングが高かったりするので見ているだけでも面白いですよ。

あと、ランキング管理用のWebサービスもいろいろとあり、お手軽にランキング表示できますのでWebページでの管理もオススメです。

<ランキングWebサービス>
1.Appinfo … 日本語対応で使いやすいです。 日本のAppStoreランキングのみ!?
2.AppAnnie … 英語ページですが、世界のAppStoreでのランキング表示が可能。

ちなみにAppStoreで一度でも1000位以内にランクインしていないと表示されないかも知れません。
└この辺は各サービスの作り次第ですのであくまで私の推測です。

実際にはAppStoreのオススメページ(Newリリース・注目アプリとか)で取り上げられるとかしない限り、何もプロモーションをしないと多くダウンロードされることもないことでしょう。

プロモーション方法については別トピックで解説しようかとも思ったのですが、この辺りのノウハウは貴重な知識ですから公開は見送らせてもらいます。(^^ゞ

公開したアプリのダウンロード数やランキングを常に把握する事はとても重要なことだと思いますので、情報収集を怠らないようにしましょう。

2011年11月12日土曜日

iOSアプリ開発者への道(14):iOSアプリを完成させる

今までに十分な開発経験をお持ちの方であればObjective-C言語やCocoaライブラリの流儀を理解する頃には「最初のiOSアプリ」の開発も終盤にきている頃だと思います。

また、考え抜かれたCocoaクラスライブラリの素晴らしさやUIKitユーザーインタフェースにも魅了されていることでしょう。(*^_^*)

アプリが完成すれば次はいよいよアップルへのアプリ申請→審査となります。
一回の審査には大体1週間〜10日程度は覚悟しておく必要があります。 ちなみにアップデート時も大体新規登録時と同じくらいの日数が掛かりますがアプリのダウンロード数や時期・タイミングによっても変動するようです。
└私はアプリ申請後、翌日には審査通過→公開されたこともありますので。。。

アップル社の審査は意外に厳しくて「却下(Reject)」されることもしばしばありますので、最初のアプリに関しては十分に審査ガイドラインを熟読して初歩的なミス等でRejectされないよう十分に注意してください。

私も経験がありますが、アプリが完成したらどうしても「早く」公開したい欲求に駆られることが往々にしてあります。 ですが、ここでその欲求を抑えて最低でも1週間はテストと見直しに時間を掛けることをお勧めします。

バグを取るのも大事ですが、iPhone・iPadは携帯デバイスのため作成したアプリが自由に使うことが出来るメモリには制限がありますので、連続動作時にアプリが急に落ちてしまう現象が起きる可能性も考えられます。

このような時にはメモリリークしている可能性が高いですのでProfileビルド&実行で起動される「Instruments」ツール等を使うことでメモリリークを発見したり、ゾンビオブジェクト参照による実行時エラー等の原因を発見することができます。

また、実際にエラーが起きなくてもAnalyzeビルドやProfileビルド&実行でメモリ解放に関するチェックは十分に行っておくことは重要なステップだと思います。

仮にテストが不十分なアプリを申請しアップルの審査を通過してAppStoreに公開されたとして、公開後に不具合を発見して直ぐにバグ修正したとしても再度アップル審査が必要となりますので、申請から公開まで1週間〜10日程度の日数が掛かってしまいます。

いくら致命的なバグの修正であっても審査を通過するまでは公開されませんので、不具合のあるアプリがその間もずっと公開され続けることになります。
結果として多くの利用者にご迷惑を掛ける事となりますし、安定動作しないアプリは直ぐに「削除」されて厳しいレビュー評価を付けられるのみでなく、二度と利用されないかも知れません。

作成したアプリがヒットアプリになるかどうかの一番大事なタイミング(初期リリース時)を自らのテスト不足でみすみす逃してしまわないよう事前テストには十分に時間を掛けてください。

2011年11月11日金曜日

iOSアプリ開発者への道(13):iOSアプリ名について

最初のアプリとして作成するものが決まりましたら、次はアプリ名を決める段階になります。

作成するアプリの機能を「簡潔に説明」したアプリ名がベストだと思いますが、より多くの人の目に止まり「興味を惹く」キャッチャーな名前にすることもランキングを上げるには有効な手段です。

また、AppStoreのリリースアプリ一覧でアルファベット順で並んだ時に「先」に表示されるようなアプリ名にする作戦を取っているアプリも見受けられます。

という訳で「アプリ名」を決めることは結構重要な事であると言えます。


そのアプリ名ですが実は1つではありません。 大きくは3種類のアプリ名があります。

まず一つ目のアプリ名としてアップルへ登録するベースとなる名称が必要となります。
これはXcodeでのプロジェクト名とほぼ同じになりますがアプリ名の間に「スペース」が入った場合は別の文字に置き換わる場合もありますので完全に一致する訳ではありません。

この名前は利用者に公開される名前ではありませんので、特に何でもよいと言えばよいのですがアプリ管理のための識別子になり、一度決めると変更できません。
└また、名称として日本語文字は使えません。

あと、留意しておいた方が良い事として将来的にiPhone用とiPad用とか有料版と無料版(Lite版)の様に同じアプリで異なるバージョンをリリースすることもあるかと思いますので、それを見越して名称を決めておいた方が良いでしょう。
└例)FIRSTGAME, FIRSTGAME_HD, FIRSTGAME_LITE


次に決めるのはデバイスに表示されるアプリ名になります。
ここでの注意点としてはiPhone用(半角11文字)とiPad用(半角13文字)で表示できるアプリ名の長さに違いがあるということです。

実際には上限を超えたアプリ名であっても登録は出来るのですが、デバイスで表示しきれないため「アプリ...名」のように一部が表示されません。

このようなアプリも実際には多くリリースされていますので特に気にならなければ問題無いのですが、ちゃんと名称が表示された方が好感が持てると思います。

また、このアプリ名は各言語別に指定可能ですので最低でも英語名と日本語名の2種類のアプリ名を用意する必要があります。 それぞれデバイスの上限文字数内でアプリ名を決めます。
特に日本語名では一文字が2バイト換算になりますので漢字では5文字以内で名称を付ける必要があり、より簡潔な名称を付ける必要があります。(半角カナ文字も利用可能←見た目が良くないですけど(^_^;))

このアプリ名は他のアプリ名とかぶっても問題ありませんが、お互いのマナーとして極力同じ名称にならないよう事前にアプリ名を検索しておいた方が良いと思います。

また、顔写真を集めたアプリを作成したとしてこのアプリに「Facebook」って名前を付けたとしたらソーシャルネットワークのFacebookからクレームが付くかも知れませんし利用者にとっても紛らわしいですのでこのような名称も避けるべきだと思います。

このデバイスに表示されるアプリ名は後から変更可能ですし、デバイス上でアプリを区別するのはアイコンの方が重要だと思いますのであまり神経質にならなくても大丈夫です。

最後に決めるのがアプリ公開時にAppStoreで表示される名称の決定になります。
この名前は比較的自由に付けることができますが、あまりに長いとデバイスアプリ名同様に一部が表示されない場合がありますので長さには注意が必要です。
└GameCenterでの表示が切れる場合がありますので注意。

しかし、このアプリ名がAppStoreでの名称となり利用者が検索したり一番目に付く名称ですので慎重に決めることが重要です。
また、他のアプリと同じ名称にならないよう日本語のみではなく英語名についても事前に重複がないかチェックすることも必要になってきます。
└私のアプリで英語名の重複を後から気付いて変更した経緯あり。(^^ゞ)

このアプリ名はバージョンアップ時には変更可能ですが、アプリの「顔」となる名称になりますので余程の事が無い限り変更することの無いようにすべきです。


最初はiOSアプリ開発着手時点でAppStoreへのリリースのことまで考えずに始めてしまいがちになるのは仕方が無いことだと思いますが、この3種類のアプリ名について「先」に決めておくことをお勧めします。

2011年11月10日木曜日

iOSアプリ開発者への道(12):最初のiOSアプリ

iOSアプリの開発について理解が深まった所でいよいよアップルでの公開を見据えたiOSアプリの開発になります。

すでに作りたいアプリのアイディアがあるのであれば作りたいアプリを作るのが一番ですので作りたいアプリでOKですが、特に作りたいアプリが無い(思い付かない)場合はiOS解説本のサンプルアプリに手を加えてゲームアプリであればゲーム性を向上させたりエフェクトやグラフィックに凝ったりするのでもOKですし、実用アプリであれば機能を追加したり操作性を向上させたりするのでも良いと思います。

しかし、サンプルコードでもコードや画像の著作権は存在していますので参考程度にして、サンプルアプリをそのまま公開するのは駄目ですので注意してください。

最初のアプリはどうしても完成度が低いことが往々にしてありますので、いきなり有料アプリにするのではなく最初のアプリは無償アプリとして公開する事をお勧めします。

公開したアプリが問題無く動作するのであれば良いのですが、バグ等で正常に使えなかった時に有料アプリでは無料アプリ以上に「責任」が伴います。
└責任として正常動作するアプリにしないといけません。

無料アプリだから正常に動作しなくても良いと言う意味ではないのですが、有料アプリはお金をいただいている以上、より真摯に受け止めないといけないと思います。

ちなみにもし貴方が有料アプリを公開したとしても今のAppStoreの状況では残念ながらダウンロードすらして貰えないのが現状だと思います。(余程の作品ではない限り)

それよりかは敢えて無料アプリにしてダウンロードして使ってもらった方が励みにもなりますし良いのではないでしょうか。(無料アプリでも想像しているより少なくて驚くかも知れませんが。。。(^^ゞ)

ですので、「最初のiOSアプリ」はiOS開発スキルやiOS公開までの手順・方法について。またアプリ公開後以降でのアプリ管理の方法等々、iOS開発からリリース・管理までのノウハウを習得することを目的にする方が良いと思います。

また、もし仮に無料アプリでもある程度ダウンロードされて多くの人に利用されるアプリであれば、後から「広告バナー」を入れることで広告収入を得ることも可能ですし、アプリに新機能を追加して追加機能をアドオンとしてアプリ内購入させることも可能です。
└個人や実績のない開発元ではこちらの方法を取っているアプリの方が多いと思われます。


逆にiOSアプリで収益を目的とするのであればアプリ企画段階から市場分析を元に収益方法やリリース形態、プロモーション方法等々を事前に検討して目的に即したアプリを企画・作成しないといけません。

思い付きだけで作成したアプリでは残念ながら思うような結果になる可能性は低いと思います。


特に最近のスマホブームで猫も杓子もiOSアプリ市場に参入してきて競争も激化の一途ですし、AppStoreでは既に50万本以上のアプリが公開されていて、日本からだけではなく世界中の猛者達が作った渾身のiOSアプリが日に200本〜300本位も新規にリリースされている状況を考えてもiOS習得して初めて作った「最初のiOSアプリ」がその中で互角に戦うなんて到底無理な話だと思います。


と言う訳で最後は厳しい現状について書きましたが、そんな中でどうすれば戦いに挑めるアプリを企画できるかについてもおいおい書いていければと思っております。
└無料ブログ内で全てのノウハウを公開する訳にも行きませんけどね。(^_^;)

2011年11月9日水曜日

数値処理:四捨五入・切り上げ・切り捨て

<Xcode開発:Cocoa環境>
浮動小数点数の四捨五入・切り上げ・切り捨てはC言語の数学演算ライブラリ(Math.h)を利用する。


四捨五入
round(double)
roundf(float)
roundl(long double)

切り上げ
ceil(double)
ceilf(float)
ceill(long double)

切り捨て
floor(double)
floorf(float)
floorl(long double)

iOSアプリ開発者への道(11):Apple Developer登録 その2

無料アプリのみの公開・リリースを考えているのなら必要ないのですが、収益を上げようと考えている場合はアップル社から売上金を受け取るための準備が必要となります。

まずは送金を受け取るための銀行口座が必要です。
この時、アメリカのアップル本社からの送金になるため、海外送金を受領可能な口座を用意する必要があります。

国内銀行の口座でも海外送金を受け取れるものもありますが、手数料が高かったりする場合もありますので口座選びには十分な検討が必要です。

良く使われているのは「CitiBank」のようで私もアップル社からの送金受領用にCitiBankに口座を新設しました。
└CitiBankの口座開設は日本語で対応できますので心配ありません。

あと、アップル社以外に広告収入(Google AdMob,AdSence)を考えている場合についても同じCitiBank口座で受領できます。

また、CitiBankだと近くに銀行窓口が無いとか対応しているATMが無いとかサービス面で心配かも知れませんが、ネットバンキング(iPhoneアプリもあります)も可能ですし、海外送金の度にハガキによる通知もありますので実店舗(ATM)が近くに無くても困ることはないでしょう。


口座以外では税務関係の登録も必要になりますが、最近では登録者が日本人の場合は面倒な手続きなしで進められると思います。
└具体的な内容までは書けませんが英語の説明文を読み解けば大丈夫だと思います。

とは言え、税務や売上送金に関わる重要な登録になりますから取り敢えず色々試してみるというやり方では致命的な間違いを起こす可能性もありますので、面倒でも全ての説明文(英語)を熟読することをお勧めします。


いろいろと面倒そうな登録について書きましたが、銀行口座の用意が出来ればこの辺りの登録自体は実は簡単な方でしてややこしい登録は他にも多々あります。(^^ゞ

しかし心配は無用で、英語ではありますが個々の登録・設定項目ごとに詳細な説明文もありますし、意味が分かりさえすれば戸惑うこと無く進められると思います。

とにかく言えることは、英語だからと言って見ただけで避けるのではなく、しっかりと読み解くクセを付ける事が重要です。

また、ネット検索すれば「Apple Developer登録」手順についての日本語の記事を見つける事が出来るかと思いますが、書かれた時期によっては現在では不要になっていたり手順が変わったりしている場合もありますので参考程度にする方が良いと思います。

2011年11月8日火曜日

iOSアプリ開発者への道(10):Apple Developer登録 その1

作成したiOSアプリを公開する場合や実機(iPhone,iPad等)で動作テストする場合には「Apple Developer登録」が必要になります。

ここで注意点としては「Apple Developer登録」は1年間のみ有効で時期が来ると契約更新が必要となり、この契約の度に約1万円の契約料が発生します。(円高の分、安くなっていいと思うんだが。。。)
└iOS開発とMac開発は別になりますのでそれぞれで開発者契約が必要。

ですので、Apple Developer登録時から1年間になりますので、ある程度iOS開発スキルを習得して実機での動作テストに進む段階でApple Developer登録する方が良いと思います。

Apple Developerフォーラムとかの利用を考えているのであれば、iOS開発時点でApple Developer登録しても良いとは思いますがそれも必要に迫られてから検討しても遅くないと思います。

2011年11月6日日曜日

iOSアプリ開発者への道(9):Cocoaクラスライブラリ その2

Cocoaクラスライブラリは膨大な世界ですから一朝一夕でどうにかなるものではありませんので、焦らずじっくりと時間を掛けて理解を深めて欲しいと思います。

それと、Cocoaを学習すればするほど他の開発言語やクラスライブラリとは基本的な部分で思想・方針に違いを感じることがあるかも知れません。

この時、自分の慣れたプログラミングスタイルに持っていくのではなく、極力Cocoaの流儀に合わせる努力をする事をお勧めします。

例えば、Cocoaクラスを独自のラッパークラスで包んだりとか自分の使い慣れたスタイルに置き換えたりしたくなる人もいるかも知れませんが、長い目で見ればCocoaスタイルに統一する方が良いように思います。

特にメソッド名についてはネーミングからメモリ解放(autorelease)が掛かっているのかどうかを判断する事ができたり、暗黙的な所で「意味」を持っていたりします。

また、現在ではXcodeによって曖昧な部分も警告メッセージが表示されたりしますので以前よりかはコンパイル時にバグを見つける事が容易になったとは思いますが、他の言語と比べて動的な言語である分、実行時にしかエラーが出ない場合も多いですので、コンパイラやデバッガに頼りっきりにならないようにする事も重要です。

特にメモリ管理の理解が不十分ですとメモリ関連の実行時エラー(メモリリーク・ゾンビ参照)には悩まされる事になりますのでこの辺りは十分な注意が必要です。
└Analyzeコンパイル:ある程度はコンパイル時にチェック可能。

あと、javaプログラマ(私もその一人(^_^;))は何かとサブクラスで対応する癖が付いている場合はCocoaのサブクラスに頼らないスタイルに違和感を感じるかも知れませんが、Cocoaのデリゲートやカテゴリといった継承に変わる機能に慣れるようにしてください。

「郷に入れば郷に従え」と言うようにCocoa習得にはCocoaの思想や考え方に従うことが重要であると思います。

2011年11月5日土曜日

iOSアプリ開発者への道(8):Cocoaクラスライブラリ その1

iOS開発でも基本的な機能(文字列クラスや配列クラスとか)を提供するクラスライブラリとしてCocoaを利用します。

なお、iOS固有の機能はUIKitライブラリとして提供されます。

iOSアプリの画面デザインやユーザーインタフェース開発ではUIKitを利用することになりますが、処理ロジック部分ではCocoaライブラリのお世話になる事になりますので、iOS開発においてもCocoaライブラリの習得は必須と言えます。

また、Cocoaの理解こそがiOS開発の肝と言える部分となりますので、時間を掛けてでもCocoaライブラリの仕組みや使い方を完全に理解することが重要だと思います。

前トピックで紹介しました「Mac OS X Cocoaプログラミング 第三版/Aaron Hillegass」本がCocoa理解にはうってつけの最高の本だと思いますので、是非ともご購入されることをお勧めします。
└この著者の回し者ではありませんが。。。

Cocoa習得にあたり私のオススメな方法は、iOSアプリ開発が最終的な目的だとすると一見遠回りのような気がしますがCocoa習得のためにMac用アプリの作成を行いながらCocoaに慣れる方法が良いと思います。

理由は画面設計やUI操作の部分はiOSアプリとMacアプリとで異なるものの製造過程はほぼ同じなのと、iOSではテスト実行時にiPhoneシミュレーターにて実行する事になり、その分の時間が余分に掛かることやiOS固有の学習が必要になってきますので、Cocoa習得のみを優先するのであればMacアプリ開発にて学習する方が進めやすいと思います。

また、本のサンプルもMacアプリ用として記載されていますので、本を読み進めながら実際のサンプルコードやサンプルアプリを作成する方法が学習しやすいと思います。


iOS開発を解説した本もありますが、一見サンプルを作成する過程で分かった気にはさせてくれますが総じてCocoaに関する記述が不足していて本で紹介されているサンプル以上のことを行おうとすると直ぐに行き詰まると思います。

Mac OS X Cocoaプログラミング 第三版/Aaron Hillegass」を読み終える頃にはCocoaクラスライブラリの考え抜かれた思想(仕組み)とXcode開発ツールの素晴らしさにノックアウトされる(感服させられる)ことでしょう。

そして、何故にマイナーなObjective-C言語が開発用言語として採用されたのか、その理由についてもCocoaライブラリを理解することで納得させられる事と思います。

2011年11月4日金曜日

iOSアプリ開発者への道(7):開発言語(Objective-C)その3

iOSでのメモリ管理方式について少しだけ。
└詳しく書きだすとこれだけで本を一冊書き上げる位多岐に及ぶので。。。(^_^;)

C言語でのプログラミング経験者であれば自分で確保したメモリ領域は責任を持って解放するのが当たり前ですから「何をいまさら」って感じるかも知れませんが、近年の多くのプログラミング言語では自動的に不要メモリを解放する機能(ガベージコレクション機能)が当たり前のように実装されています。

ガベージコレクション機能があればメモリの存在期間を意識しないでコーディングできますし、予期しないメモリリークの発生も気にしないで済みますのでプログラマにとっては「楽」ができる機能です。

しかし、ガベージコレクション機能自体が負荷の高い処理であり、携帯デバイス自体少ないメモリ搭載量ですので、iOSは現時点ではガベージコレクション機能を搭載していません。
└iOS5.0でそれっぽい機能が付いたようですがまだ評価していませんので割愛。

このため、iOS開発ではプログラマがメモリの確保から消滅まで意識してコーディングする必要があり、これがiOS開発を難しくしている1つの理由だと思います。
└特に最初のソフトウェアを1本書き上げるまでは苦労するかな。(独特な仕組みなので)

まぁ、それも慣れですから多くコーディングを繰り返し書いている内に(半年くらい(^^ゞ)特に意識しなくてもメモリの状態を把握しつつコーディングできるようになります。

あと、アップル社自体もメモリ管理処理がメモリリーク等のエラー・不具合の要因になっている事やプログラマの負担になっている事も認識しているようでLeopard以降のObjective-C 2.0からはガベージコレクション機能も利用できるようになっています。(Mac用アプリ開発のみ)

最後に全ての言語習得に言えることですが、習得する近道は実際に繰り返しコーディングすることに勝る方法はないと思います。
しかしながら、Objective-C言語は他に例を見ないユニークな言語ですので基本的な概念・機能については体系的に理解しておいた方が結果的に早く習得できると思いますので、1冊くらいはObjective-C言語に関する本を読んだ方が良いと思います。

<オススメのObjective-C言語解説本>

入門 Objective-C 2.0 (Programmer’s SELECTION)/Scott Knaster
¥3,360
Amazon.co.jp
Mac OS X Cocoaプログラミング 第三版/Aaron Hillegass
¥4,410
Amazon.co.jp

2冊とも洋書の翻訳本ですが、私の経験上プログラミング言語に関する本は翻訳本の方が内容も分かり易く内容も充実していると思います。(数多くの出版本の中から選び抜かれた本が翻訳されている訳なので)
└日本の著者には申し訳ないですが。。。

1冊目の「入門 Objective-C 2.0 (Programmer’s SELECTION)/Scott Knaster」はObjective-C言語の概念から各種機能まで分かり易く書かれており、メモリ管理についても多くのページを割いて分かり易く説明されておりObjective-C言語を知るには最適な1冊だと思います。
└内容の割にスラスラと読めますので初心者にもオススメ。

特に2冊目の「Mac OS X Cocoaプログラミング 第三版/Aaron Hillegass」はCocoa解説本の中ではピカイチだと思います。(iOSアプリ開発用ではありませんがCocoaについて深く理解できます)

2011年11月3日木曜日

iOSアプリ開発者への道(6):開発言語(Objective-C)その2

Xcodeツールも以前はObjective-C言語による開発以外にjava言語もサポートしていたのですが、現在ではObjective-C言語のみのサポートとなっていますので、Xcodeを用いたiOS開発ではObjective-C言語の習得が必須になります。

Objective-C言語の特徴としてはC言語にSmallTalkに代表される「ピュア」なオブジェクト指向機能をアドオンした感じでC++言語のように設計時からオブジェクト指向言語として生まれてきたものとは違い独特な言語となっています。

C言語をベースとしながらも自由度の高い柔軟なオブジェクト指向的プログラミングが可能になっており、CPUよりの低レベルな記述を得意とするC言語の特徴と動的なオブジェクト指向機能を融合した言語で使い込むほど手に馴染み・パワーを発揮してくれる言語と言えます。

その反面、独特な記法や独自の概念も多く、これらが習得を難しくしているのも事実です。
└「[ ](ブラケット記号)」をいくつも入れ子で書く必要があったりとか。。。

特にCocoaクラスライブラリで採用している面倒なメモリ管理方式も難易度を上げている要因だと思いますが、これは今後のiOSバージョンアップ(iOS5でも新機能が追加されましたし)で解消していくとは思いますが、過去のiOSバージョンもサポートする必要がある限り、メモリ管理の仕組みを正しく理解する必要があるでしょう。
└メモリ管理の概要については別トピックで書く予定です。

iOSアプリ:「Muffin Knight」軽快なアクション!!


Muffin Knight
iTunes で見る
この App は iPhone、iPad の両方に対応しています。
  • 無料
  • カテゴリ: ゲーム
  • 更新: 2011/10/20
  • バージョン: 1.2
  • サイズ : 96.0 MB
  • 言語: 英語, フランス語, ドイツ語, イタリア語, スペイン語
  • 販売業者 : 24seven3D
以下の理由により 9+ のレーティングがついています。
  • まれ/軽度 アニメまたはファンタジーバイオレンス
条件: iPhone、iPod touch および iPad 互換 iOS 3.1.3 以降が必要

詳細

★ Game Centerオンラインマルチプレーヤー対応 ★
Muffin Knightのおとぎの世界へようこそ! 

2011年11月2日水曜日

アップデート:「リアル黒板 HD」,「リアル黒板 for iPhone」

「リアル黒板」アプリのアップデートが公開されました。
  1. 「リアル黒板 HD」    バージョン:3.2
  2. 「リアル黒板 for iPhone」 バージョン:2.2
(変更点)
1.広告バナー常時表示化(安定性向上のため)
・お絵描きの邪魔にならないようチョーク・背景ボード選択時のみ広告バナーを表示する対応を致しましたが、この対応が原因で動作が不安定になる現象が発生しておりました。 ご迷惑をお掛けして誠に申し訳ございません。
・当現象を回避すべく原因調査・対応して参りましたが、完全に回避することが困難であるため、安定動作させる事が第一であるとの考えから広告バナーを常時表示する仕様に戻させていただきました。
・広告バナーが極力邪魔にならないよう考慮しましたが、常時表示することで邪魔になるかとは思いますが何卒ご理解の程よろしくお願い致します。

2.マイナーバグ修正
・iOS5.0になってからメモリ解放のタイミングが変わったためか、メモリ不足が発生する場合がありました。(オブジェクト生成数の上限を設けて回避)

iOSアプリ開発者への道(5):開発言語(Objective-C)その1

iOS開発の敷居を上げている1つの原因が開発言語である「Objective-C」にあると思います。

C言語はもっとも利用されている言語の1つであると思いますが、Objective-Cとなると知名度は一気に低くなります。

最近でこそiOSの公式開発言語ということで利用者数が上がってきているとの話は聞きますが、それまでは超マイナーな言語でした。

アップルが開発言語にObjective-Cを採用した理由は故スティーブ・ジョブズ氏がスカリーとの対立からアップル社を追われて設立したNeXT社に起源があります。

そのNeXT社の作った「NeXTcube」コンピュータのOSである「NeXT STEP」で採用されていたのがObjective-C言語でした。

昔の事(何年前だったかも思い出せないけど)ですが、私が会社員だった頃にキヤノンの新製品発表会・セミナーに出席した時に初めて「NeXTcube」の実物を見た記憶があります。

当時、既にMacユーザーでしたのでNeXTがジョブスの出した製品という事も知っていましたので、大変興味をそそられたことを覚えています。 当時からデザインが俊逸で心惹かれましたね。
└テンションが上がちゃってへばり付いて触りまくってました。(^^ゞ

米国では金融系会社での採用事例が多かったので、何とか会社を説得して(騙してw)買ってもらおうと試みましたが金額が金額だったので無理でしたが。。。(^_^;)

その後、アップル社が次期OS開発の行き詰まりからNeXT社買収に至り、NeXT STEPが名前を変えてMacOSX(Cocoa)となりMacintoshパソコンのOSに採用されました。

現在のCocoaクラスライブラリのクラス名が「NS〜〜」で始まるのはNeXT STEPの名残だったりします。
クラス名なんて一括置換で変更できたと思うのですが、そのままなのはNeXT技術者の意地なのかも知れませんね。
└ジョブスがアップル社を出た時に一緒にスピンアウトした技術者な訳ですから。

iOSアプリ:「Sprinkle: Water splashing fire fighting fun!」期間限定無料!!

Sprinkle: Water splashing fire fighting fun!
iTunes で見る
この App は iPhone、iPad の両方に対応しています。
  • 無料
  • カテゴリ: ゲーム
  • 更新: 2011/10/17
  • バージョン: 1.2.1
  • サイズ : 18.3 MB
  • 言語: 英語
  • 販売業者 : Mediocre AB
条件: iPhone 3GS、iPhone 4、iPhone 4S、iPod touch(第3世代)、iPod touch (第4世代)、およびiPad に対応。 iOS 4.0 以降が必要

詳細

Download the @FreeAppADay Store App and wish for more top rated paid apps like Sprinkle: Water splashing fire fighting fun! to become FREE for a day!

2011年11月1日火曜日

iOSアプリ開発者への道(4):英語スキルが必要な理由

iOS開発ではいろんな局面で「英語」でのやり取りが必要になってきます。

アップルの開発者用ページでは一見日本語対応(開発者登録するまで)されているようですが、いざ開発者登録してDeveloper専用ページに入るとほぼ全て英語オンリーとなります。
└場合によってはアップル社と英語でやり取りすることも。。。(私は必要でした(^^ゞ)

また、開発に必要な情報収集も情報量からすると英語ページがメイン対象となりますので、英語ページとの付き合いは必須となります。

とはいえそんなに怯える必要もなく、私自身英語を話せる訳でもありませんし読み書きも苦手な方ですが、そんな私が何とかやれているのは「翻訳ページ」のお陰で、いろんな翻訳ツールを駆使して対応しています。

しかし、Web翻訳サービスでは文章が外部に出る危険性がありますので、文章の取り扱いでは気を付けた方が良いと思います。(ユーザー・パスワードや口座番号等々)

それと、実際にアプリを公開してみて大変なのは「ユーザーサポート」だったりします。
iOSアプリでは日本のみではなく世界がマーケットになりますから英語圏以外の言語でも質問や問い合わせメールが届きます。

フランス語、イタリア語、中国語やら場合によってはアラビア語でメールが届くことだってあるかも知れません。(私の場合は英語・フランス語・ドイツ語・中国語が来ました)

こんな時こそ「翻訳ツール」を駆使して対応する事になりますが、意外に上手く翻訳されないで意味が分からない場合も多くその場合は「一旦、英語に翻訳してみる」事をお勧めします。

日本語に直接翻訳すると「てをはに」ごちゃごちゃして意味が読み取りにくい場合でも英語に翻訳すると逆に意味が読み取れたりします。

あと英語で大変なのはスラングとか短縮化した文章(話し言葉!?)で書かれている場合があり、翻訳ツールで正しく認識されないケースが多く事前に手直しする必要があったりします。
└アポストロフィが無いとか、単語の短縮形とか。

意味が分かれば次は返信となりますが、返信の場合は単純に日本語を外国語に翻訳するだけではその国にあったメール形式にはなりませんので、標準的な文章形式(Dearで始めてとか)に埋め込む必要があります。(ネットで検索して標準的な文章の書き方を調べる)

どうしようもない時は相手の言語ではなく英語で返信するのも一つの手だと思います。

それと、私は返信文章の最後に「このメールは機械翻訳ツールで書いています」っていう文を追記して、もし文脈とかで失礼な書き方になってしまっても許してもらえるよう配慮しています。

長くなりましたが、iOSアプリでは世界を相手にする事になりますので最低限の「英語スキル」が必要になってきます。