TestFlightでアプリを配布しよう

2012/12/02

TestFlightの使い方をスクリーンショット多めで紹介しました。

title
iPhoneアプリの開発をおこなう上で、開発メンバーとアプリをテストしたり、クライアントに公開前のアプリを確認してもらうのはどうすればいいでしょうか。いちいちテスト端末のあるところに、Xcodeが入ったMacBookを持ってインストールをしてというのは面倒です。iTunesを使ってテスターにインストールしてもらう方法もあるのですが、これも面倒な上に相手にそのやり方を説明するのも面倒で…。このような問題にひじょーに便利なのがTestFlightというサービスです。

TestFlightは開発中のアプリの配布をサポートするサービスです。アプリ開発者はTestFlightにアプリ(IPAファイル)をアップロードします。そうすると通知を受けたテスターは予め登録しているiOS端末から、そのアプリをインストールすることができます。

How It Works

1.TestFlightに登録

まずTestFlight(https://testflightapp.com)にアクセスし、ユーザー登録を行いしょう。管理者の方はDeveloperのスイッチを”オン”にします。

TestFlight

2.Teamを作成しましょう

TestFlight
テストアプリを配布する開発チームを登録します。開発チームはいくつでも作成することができ、後から追加も可能です。なのでプロジェクト単位で作成することも出来ますし、クライアントごとチームを作成することもできます。

3.チームメンバーを加えましょう

TestFlight
開発チームの登録をしたら、TestFlightからチームメンバー(テストアプリを配布したい人)の端末にメールを送ります。

4.チームメンバーにメールが届きます

TestFlight
TestFlightからチームメンバーにメールが届きます。今回はiPad端末を持っているテスター宛に招待メールを送りました。

TestFlight
TestFlightのチームメイト管理画面にはメールを送ったチームメンバーが表示されます。この時はまだチームメイトが「Accept」ボタンを押してないので、Statusは「Pending」となっています。

5.招待をうけたテスターがチームに参加する

TestFlight
招待メールをうけたテスターがメール上の「Accept」ボタンを押すと、TestFlightサイトに移動します。「Accept Invitation」を押してチームに入ってもらいます。

6.管理者にテスターのUDIDが記されたメールが送られる

TestFlight
テスターがiOS端末を使って「Accept」すると、招待を送った管理者にメールが送られてきます。このメールにはテスターの端末識別番号であるUDIDが記述されています。

7.開発者のプロビジョニングポータルにテスト端末を登録

TestFlightでアプリの配布を行うには、配布用にiOS Dev Centerでプロビジョニングファイルを作成しなければいけません。その前に、プロビジョニングポータルでテスト端末の登録を行います。
TestFlight
Provisioning PortalのDevicesを選択し、Add Devicesボタンを押します。テスト端末の名前とUDIDを登録します。
TestFlight

8.プロビジョニングファイルを作成し、開発者のXcodeに登録

開発用のプロビジョニングファイルを作成します。その際にテスト端末が「Devices」に加わっているかどうか確認し、チェックリストにチェックをします。作成したプロビジョニングファイルはダウンロードして、Xcodeに登録します。
TestFlight

Xcodeのプロジェクトファイルを選択し、Build SettingsのCode Signing IdentityをダウンロードしたProvisioning Profileを設定します。

TestFlight

9.配布用のIPAファイルを出力する

XcodeでテストアプリをArchiveします。問題がなければOrganizerが起動しますので、Distributeボタンを押し、「Save for Enterprise or Ad-Hoc Deployment」を選んでIPAファイルを出力します。このIPAファイルがアプリをiOSで動かすファイルとなります。
TestFlight

10.TestFlightにIPAファイルをアップロードする

TestFlight
さて、ようやくTestFlightに戻ってきました。ダッシュボードから「Add a Build」ボタンを押します。アップロード画面に遷移したら、IPAファイルをドロップしてアップロードします。
TestFlight

11.テスターにテストアプリをアップロードしたことを告知する

TestFlight
IPAファイルをアップロードしたら、Permissions画面へと遷移します。ここで通知するテストユーザーを選択し、「Update & Notify」ボタンを押します。このボタンが押されるとユーザーには下のようなメールが送られます。
TestFlight

12.テスターがアプリをインストールする

TestFlight
送られてきたメールにテスターがAcceptをすると、TestFlightへと遷移します。TestFlightにはアップロードされたテストアプリが表示されており、インストールボタンを押すとインストールが行えます。
TestFlight
TestFlightのActivity画面ではテスターがそのアプリをインストールしたかどうか確認することもできます。

最後に…。スムーズにいけば、これでテストアプリが配布されるはずですが、上手くいかないことも多々あります。例えばBundle Identiferがプロビジョニングファイルと合っていなかったり、Code Signingの設定がされてなかったり、これらのミスはなかなか発見しづらいので気をつけましょう。



Rainbow Apps iPhoneアプリマスターコース講座紹介ブログ
講座紹介1:初めてのiOSアプリ
講座紹介2:カウンター
講座紹介3:ドル円換算機
講座紹介4:手拍子アプリ
講座紹介5:クイズアプリ
講座紹介6:ジェスチャーフラッシュ


 

ジェスチャーフラッシュ:RainbowApps iPhoneアプリマスターコース講座紹介6

2012/11/29

06:ジェスチャーフラッシュ

Gesture Flash
RainbowApps iPhoneアプリマスターコースの第6講では、ジェスチャーフラッシュアプリの制作を行います。このアプリはスワイプ、回転、ピンチなどiPhoneのスクリーン上で行うタッチジェスチャーを出題し、ユーザーが実際にそのジェスチャーをしていくゲームです。問題はランダムで30問あり、ユーザーは30のタッチジェスチャーを完了するまでのタイムを競います。アプリ上ではハイスコアが1〜3位まで表示されます。

ジェスチャーフラッシュ

ジェスチャーフラッシュアプリは、第5講で制作したクイズアプリと同じくスタート画面、ゲーム画面、スコア画面で構成されています。画面遷移のためのSegueなどの使い方は第5講と同じです。Storyboardを使って3つのView Controllerを制作し、その上に必要なラベルや画像などを配置します。これはタイムを競うゲームなので、ゲーム画面の上部には経過時間を表示するラベルを設置します。結果画面には30のジェスチャーをクリアした所要時間が表示され、スタート画面には1〜3位までのハイスコアが表示されます。

ハイスコアはiPhoneの電源をオフにしても、アプリが終了しても保存されるものなので、アプリ自体にスコアデータを保存させるNSUserDefaultsを使用します。NSUserDefaultsはint、double、BOOL、NSDataなどの型の変数を使用することができますが、このアプリではハイスコアタイムを記録させるのでdouble型の変数を使用します。ユーザーがゲームを終えると結果画面に遷移し、そのタイムがベスト3に入っていればNSUserDefaultsで記録し、スタート画面では保存されているNSUserDefaultsデータを呼びます。

Gesture Flash

ユーザーがゲーム内で行うジェスチャーは8つです。
ゲーム画面では上の画像をランダムで表示させます。UIGestureRecognizerクラスのメソッドを使用し、ユーザーが画面に表示されたジェスチャーと同じジェスチャーをすれば1問クリアとなります。このアプリではこれを30回繰り返します。

ゲームのプレイ時間を計測するのにはNSTimerを使用します。ゲームスタート時点の時間を取得し、ユーザーが30問目のジェスチャーをクリアして、結果画面に遷移するときの時間が取得できれば経過時間を出すことができます。また画面上のタイマーは0.1秒ごとにラベルの数字を0.1カウントアップさせることで表示させます。

ジェスチャーフラッシュ

スマートフォンアプリは、ユーザーのタッチ操作によって直感的に扱えることが魅力です。このタッチジェスチャーを使いこなすことで、UXの表現も広がるでしょう。また第5講に引き続きゲームアプリを制作しましたが、第6講ではタイマーの扱い方を学びます。タイマーによる制御や進行はゲームアプリの基本となる技術です。

TEXT : 桑村治良(onTheHammock)



Rainbow Apps iPhoneアプリマスターコース講座紹介ブログ
講座紹介1:初めてのiOSアプリ
講座紹介2:カウンター
講座紹介3:ドル円換算機
講座紹介4:手拍子アプリ
講座紹介5:クイズアプリ
講座紹介6:ジェスチャーフラッシュ


 

クイズアプリ:RainbowApps iPhoneアプリマスターコース講座紹介5

2012/11/26

05:クイズアプリ

Counter
RainbowApps iPhoneアプリマスターコースの第5講では、クイズアプリの制作を行います。このアプリはランダムで10問の問題を出題し、ユーザーがそれに○か×で答えるゲームです。スコア画面では正解率と、得点に応じた評価画像が表示されます。
第5講のポイントはStoryboardを使った画面遷移の方法を学ぶことです。このアプリはスタート画面、ゲーム本編、結果画面がそれぞれ3つのViewControllerで管理します。スタート画面に設置されたボタンを押すと、ゲーム画面に遷移し、ユーザーが10問の問題に答えた時点でスコア画面に遷移します。スコア画面に設置されたボタンを押すとスタート画面へと遷移します。

クイズアプリ

上の画像がスタート画面→ゲーム画面→結果画面→スタート画面を繋いだStoryboardとなります。スタートボタンからゲーム画面への遷移はStoryboard上だけで設定できます。SegueでボタンからゲームをコントロールするViewControllerをつなぐだけです。結果画面からスタート画面への遷移もボタンをSegueでボタンからゲームをスタート画面を管理するViewControllerをつなぐだけで行えます。しかしゲーム画面から結果画面へと遷移するためには”ユーザーが問題に10問答える”という条件が必要となります。その遷移設定はStoryboard Segueで遷移のためのIdentifierを設定し、遷移するためのコードを書く必要があります。

この講義では3つのViewControllerクラスと、問題をCSVファイルを読み込み初期化して、ゲーム画面を管理するViewControllerに受け渡す独自クラスを制作します。
スタート画面を管理するViewControllerクラスには何も記述するコードはありません。Storyboard上でラベル、テキストビュー、ボタンを設置し、ゲーム画面の設定までおこなっているからです。

ゲーム画面を管理するViewControllerクラスでは、独自クラスから問題を受け取り可変配列を扱えるNSMutableArrayに格納します。この可変配列を使って、10問のなかで同じ問題を出すことなくランダムに出題する仕組みを作ります。問題が10問出題されたらperformSegueWithIdentifier:メソッドを使って、結果画面へと遷移するコードを書きます。この時にStoryboard上で設定したIdentifierが必要となります。またprepareForSegue:メソッドを使用し、ゲーム画面で取得した正答率を結果画面へと受け渡します。

結果画面を管理するViewControllerでは、正答率をゲームViewControllerから参照するpropertyに対応した変数を宣言し、正答率とその正答率に応じて画像を表示するコードを記述します。

クイズアプリ
この講座ではStoryboarを使った画面遷移と、CSVファイルの読み込み、そしてランダムに問題を取り出すテクニックを学べます。また、このクイズアプリを応用すれば、簡単にオリジナルアプリの作成をすることができるでしょう。Segueの使い方をマスターすることで複数の画面を使ったアプリの制作も行えるようになります。

TEXT : 桑村治良(onTheHammock)

Rainbow Apps iPhoneアプリマスターコース講座紹介ブログ
講座紹介1:初めてのiOSアプリ
講座紹介2:カウンター
講座紹介3:ドル円換算機
講座紹介4:手拍子アプリ
講座紹介5:クイズアプリ
講座紹介6:ジェスチャーフラッシュ


 

手拍子アプリ:RainbowApps iPhoneアプリマスターコース講座紹介4

2012/11/15

04:手拍子アプリ

手拍子

RainbowApps iPhoneアプリマスターコースの第4講では、手拍子アプリの制作を行います。これはPickerというスロットのような選択メニューからカウント数を選び、ボタンを押すとそのカウント数だけ手拍子を繰り返すというものです。アプリとしてはあまり実用性は感じられないかもしれませんが、この講座ではオブジェクト指向プログラミング基礎概念や、クラス、インスタンス、メソッドの概念を学びます。これからObjective-cでアプリ開発をおこなっていく上では重要な講座です。

手拍子

オブジェクト指向型プログラミングを理解するためにこの講座では手拍子サウンドの初期化や再生、リピート処理を担う独自クラスの制作を行います。

オブジェクティブ指向

さて、なぜ独自のクラスを制作する必要があるのでしょうか?
ここで制作するような画面も遷移しないシンプルなアプリであれば、音声ファイルをコントロールする独立したクラスを作成する必要性はないかもしれません。インターフェイスを管理するView Controllerクラスに音声ファイルを再生する処理を書いてもいいと思います。
しかし、インターフェイス画面が切り替わるような複雑なアプリになってくると、各View Controllerクラスでいちいち同じ手順で音声ファイルを再生するためのコードを記述するのは面倒です。また、プログラムを管理する上でも機能を独立させておくほうがメンテナンスや更新を効率的に行えます。
このように目的や機能でクラスを作り、それが関連し合いながら全体を構成するプログラムを作っていくことをオブジェクト指向型プログラミングといいます。

例えば会社などに置き換えるとわかりやすいかもしれません。
個人の範囲で仕事をしていくのなら、個人事業主として営業・制作・販売・経理などを行っていくことができます。
しかし、事業の規模が大きくなってくると、営業部門、制作部門、販売部門、経理部門など機能ごとに分かれた部署が出来ます。もし経理の部署がなく、営業部門、制作部門、販売部門にそれぞれ経理機能を持たせたとしましょう。そうすると個々の経理担当者によって経理機能のクオリティは大きく左右されます。また、各経理担当者が知識やノウハウを共有するのも難しいかもしれません。独立した経理部署があれば、その機能に特化した知識やノウハウが蓄積でき、安定した経理機能を各々の部署に提供できます。

この会社の例えで言うところの部署にあたるのが、オブジェクティブ指向型プログラミングのクラスと呼ばれるものになります。

クラス、インスタンス

今回の手拍子アプリのように、エンジニアが独自のクラスを作成することも可能ですが、Objective-Cには既に知識やノウハウが蓄積された多くのクラスが用意されています。それが、これまでのアプリ制作でも使用してきたUILabelやUIButton、NSStringといったクラスになります。iOSアプリのプログラミングはこうした様々なクラスを利用し、自分でもクラスを制作して行っていきます。

そしてこのクラスを利用して、実際にプログラミングで使用するオブジェクトをインスタンスと呼びます。会社の経理部門でも実際に仕事をするのはその部署のAさんやBさんですよね。同じような作業をしているかもしれませんが、AさんとBさんがやっている仕事は異なります。このようにクラスに属して、個々の働きや役割を持つものがインスタンスとなります。

このインスタンスを使って具体的な操作をしていくことをメソッドと呼びますが、あらかじめObjective-Cに用意されているクラスには、メソッドやプロパティ(インスタンスに付加できる特性)も用意されています。
例えば第3講で使用した- (BOOL)textFieldShouldReturn:(UITextField *)textField;はUITextFieldというクラスに用意された、”キーボードのReturnを押したときに処理をする”というメソッドでした。
この第4講ではUIPickerViewクラスのメソッドを使ってピッカーの設定などを行っていきます。このような用意されたメソッドを使う上でも、Objective-c独特のメソッドの記述方法を理解しておくことは大事なことです。

手拍子

こうしたメソッドにはインスタンスに対しての処理を記述するインスタンスメソッド(-で始めるメソッド)と、クラスに対しての処理を記述するクラスメソッド(+で始まるメソッド)があります。
この講座では音声ファイルを再生するための独自クラスを制作しますが、View Controller上で独自クラスを呼び初期化処理を行うときに+で始まるクラスメソッドを使用します。

フレームワーク

さて、一口に音を再生するといっても、これはすごく大変な処理です。
そのためのプログラミングをイチから組んでいくとなると、膨大な時間が掛かり豊富な知識も必要になります。
そこで利用することになるのがフレームワークであり、音の再生や描画処理など汎用的な機能をまとめて提供しているものとなります。
今回、音を再生するためにはAudioToolBoxというフレームワークを使用しますが、そのためにはプロジェクトメニューからフレームワークの取り込み処理を行う必要があります。
しかし、なぜそのような便利な機能が最初から備わっていないのでしょうか?
今度はパソコンに例えてみましょう。購入したばかりのパソコンには基本的なソフトしかインストールされていません。この基本的な状態からデザイナーはデザインソフトをインストールし、営業マンはOfficeなどのビジネスソフトをインストールしたりして自分に必要な機能を付加していきます。使わないのであれば便利であってもIllustratorやPhotoshopなどのソフトは必要ないですよね。
フレームワークも同じで、Xcodeでプロジェクトを立ち上げたときには必要最小限のフレームワークしか使用されていません。そこから開発していくアプリの必要に応じて様々なフレームワークを取り込んでいきます。
フレームワークの利用はアプリ制作をしていく上でなくてはならないものであり、地図アプリやツイッター・Facebook投稿、さらには広告の設置などにも必要になります。

手拍子

第4講ではオブジェクティブ指向型プログラミングの概念だけでなく、while文やfor文を使った繰り返し処理、そして配列処理などプログラミングを行っていく上で頻繁に使用するテクニックも登場します。制作するアプリは非常にシンプルなものですが、その中身は非常に濃いものです。

繰り返しになりますが、第4講では独自クラスの作成、フレームワークの取り込み、UIPickerViewを利用を通じてObjective-cの基本となるクラス、インスタンス、メソッドの概念を学びます。Objective-cの概念や考え方は複雑であり、簡単に理解できるものではありません。ただ、このアプリマスターコースでアプリ制作を続けていくことによって少しずつ理解を深めていけるはずです。

最後により理解を深めたい方のためにリンクを紹介しておきます。
Objective-cの概念やオブジェクティブ指向型プログラミングについては様々な解説書がありますが、アップル社でも開発者向けのドキュメント(日本語です!!)を用意し、無料で配布しています。
そのものズバリ「Objective-Cの概念」なんてドキュメントもあるのでより理解を深めたい方は読まれることをおすすめします。
また、フレームワークの使い方などが書かれた日本語のプログラミングガイドなども用意されています。
iOS関連日本語ドキュメント https://developer.apple.com/jp/devcenter/ios/library/japanese.html

TEXT : 桑村治良(onTheHammock)

Rainbow Apps iPhoneアプリマスターコース講座紹介ブログ
講座紹介1:初めてのiOSアプリ
講座紹介2:カウンター
講座紹介3:ドル円換算機
講座紹介4:手拍子アプリ
講座紹介5:クイズアプリ
講座紹介6:ジェスチャーフラッシュ


 

ドル円換算機:RainbowApps iPhoneアプリマスターコース講座紹介3

2012/11/11

03:ドル円換算機

Counter

RainbowApps iPhoneアプリマスターコースの第3講では、ドル円換算機アプリの制作を行います。ユーザーがインプットした入力値を計算して出力値を出す、このフローを理解しプログラミングしていくことでメソッドの作り方、使い方などを学ぶことができます。

ドル円換算機アプリは、ユーザーがテキストフィールド(Text Field)に金額を入力し、キーボードの「Return」を押すと換算結果が表示されます。また、セグメンテッドコントロール(Segmented Control)により「ドル→円」換算と「円→ドル」換算の切り替えを行います。

まずStoryBoardでは動的なラベルを4つ配置します。

ドル円換算機

レートを表示するラベルの値はコード上で設定します。このアプリでは80.5円ですが、その時の通貨レートによって任意で変更することができます。
“円”と”ドル”の通貨ラベルは換算の切り替えを行った時に変化します。
結果ラベルには最初は0.00と入力しておきます。

さらにText FieldオブジェクトとSegmented Controlオブジェクトを配置します。

ドル円換算機

第2講座で制作したカウンターアプリは整数を扱うint型の変数を使用しましたが、今回は少数を扱うことができるdouble型の変数を使い換算を行います。

また「ドル→円」換算と「円→ドル」換算の切り替えをbool型の変数を使って、条件設定を行います。例えばbool型変数がTRUEなら「ドル→円」換算、FALSEなら「円→ドル」換算という具合です。この切り替えによりラベルに表示する通貨が変化します。

ドル円換算機

このアプリでは下記の3つのメソッドをコーディングします。
1.「円→ドル」「ドル→円」換算メソッド
2.通貨換算切り替えIBAction型メソッド
3.UITextFieldクラスのメソッド

1.「円→ドル」「ドル→円」換算メソッド

「円→ドル」換算が選ばれているときは、入力された円をレートで割った金額を計算し、その金額を結果ラベルに表示します。
【例】入力値:100(円) レート:1ドル80.5円 計算結果:1.24ドル
【計算式】100(円) / 80.5(レート) = 1.24(ドル)
※プログラム上では割り算の計算式は / (スラッシュ)を使用します。
「ドル→円」が選ばれているときは、入力されたドルにレートを掛けた金額を計算し、その金額を結果ラベルに表示します。
【例】入力値:100(ドル) レート:1ドル80.5円 計算結果:8050円
【計算式】100(ドル) * 80.5(レート) = 8050(円)
※プログラム上では掛け算の計算式は * (アスタリスク)を使用します。

2.通貨換算切り替えIBAction型メソッド

Segmented Controlの切り替えに対して、通貨ラベルを変化させます。また「円→ドル」「ドル→円」換算メソッドを使って、切り替えられた時の換算結果を結果ラベルに表示させます。
UISegmentedControlにはselectedSegmentIndexというプロパティが用意されており、セグメントの切り替えを管理することができます。

3.UITextFieldクラスの通知メソッド

テキストフィールドに金額を入力し、キーボードの「Return」が押されたときに呼ばれる処理です。
これは- (BOOL)textFieldShouldReturn:(UITextField *)textField;というUITextFieldクラスのデリゲート通知を使ったメソッドになります。
ユーザーが数字を入力しReturnを押すと、その数字をdouble型に変換し、「円→ドル」「ドル→円」換算メソッドを呼び出して結果を表示させます。

最後にStoryBoardでViewControllerで宣言したUILabel、UITextField、UISegmentedControlにひも付けします。またIBAction型メソッドもセグメンテッドコントロールにひも付けします。

これでドル円換算機の完成です。

ドル円換算機

この講座のポイントはメソッドの使い方を覚えることです。今回使用したUITextFieldクラスのメソッドのように、用意されたクラスメソッドも多くあるので、その使い方をよく理解しましょう。
iOSに用意された様々なクラスの機能を組み合わせることによってより高度なアプリを制作することができます。

TEXT : 桑村治良(onTheHammock)

Rainbow Apps iPhoneアプリマスターコース講座紹介ブログ
講座紹介1:初めてのiOSアプリ
講座紹介2:カウンター
講座紹介3:ドル円換算機
講座紹介4:手拍子アプリ
講座紹介5:クイズアプリ
講座紹介6:ジェスチャーフラッシュ


 

カウンター:RainbowApps iPhoneアプリマスターコース講座紹介2

2012/11/06

02:カウンター

Counter

RainbowApps iPhoneアプリマスターコースの第2講では、カウンターアプリを制作しながら、変数やインスタンス、UIオブジェクトなどの概念を学びます。また条件式や計算式を使用することによって、アプリを動かす仕組みを理解します。

カウンターアプリは「プラスボタン」を押すと画面上の数字がカウントアップされ、「マイナスボタン」を押すと数字がカウントダウンします。また「リセットボタン」を押すと数字は「0」になります。

Counter

この講座で理解したいポイントは数字をデータとして扱う場合はintやfloat、doubleといった型、文字列を扱う場合はNSString、ラベルはUILabel、ボタンはUIButtonというように、データの型を宣言し、コーディングしていくということです。

基本的なインターフェイス上のアクションメソッドは次の3つです。
1.「プラスボタン」が押されたらint型の変数に1を足します。
2.「マイナスボタン」が押されたらint型の変数から1を引きます。
3.「カウンターボタン」が押されたらint型の変数に0を代入します。

このint型の変数を画面上に表示するには文字列として扱わなくてはいけません。
なのでint型の変数をNSSTring型に変換し、画面上に配置したラベルに表示させます。

StoryBoardではLabelオブジェクトとButtonオブジェクトを3つ配置します。
各ボタンには対応するアクションメソッドを設定し、ラベルにはコード上で宣言しているUILabelをひも付けします。

Counter

以上が基本的なカウンターの仕組みとなりますが、この講座で制作する「カウンター」アプリはマイナスの数字は表示しないという工夫を施しています。
そこでint型の変数が0より大きいときだけ「マイナスボタン」が押されたときのメソッドを実行するという、if文を使った条件を設定します。

条件設定を複雑にすると数字によってラベルの文字の色を変化することも出来ますよ。

Counter

「カウンター」アプリの仕組みはシンプルなものですが、実用的なツールとして使用できるものです。プログラム上でデータを扱う基礎的な概念を理解し計算式や条件式の使い方を学べば、実際に使える簡単なアプリを作ることができます。

TEXT : 桑村治良(onTheHammock)

Rainbow Apps iPhoneアプリマスターコース講座紹介ブログ
講座紹介1:初めてのiOSアプリ
講座紹介2:カウンター
講座紹介3:ドル円換算機
講座紹介4:手拍子アプリ
講座紹介5:クイズアプリ
講座紹介6:ジェスチャーフラッシュ


 

初めてのiOSアプリ:RainbowApps iPhoneアプリマスターコース講座紹介1

2012/11/04

一昨日(2012.11.3)、藤沢でRainbowApps湘南校が開校しました。
その湘南校のiPhoneアプリマスターコースの講師を務めさせていただくことになったので、このブログで講座の内容の紹介をしていきたいと思います。
受講生の皆さん、また今後受講される方の復習・予習のポイントになれば幸いです。

01:My Very First App -初めてのiOSアプリ-

MyFirstApp

RainbowApps iPhoneアプリマスターコースの第1講では、iOSアプリの開発を行っていくために必要なXcodeの基礎的な使い方を学びます。そのために画面上のボタンを押すと表示されている文字が消え、もう一度押すと文字が表れるというシンプルなアプリを制作します。

この講座でのポイントは、下記の3つです。
1.UI設計ツール「StoryBoard」を使った画面設計
2.記述したコードとUIオブジェクトのひも付け
3.アプリの設定

1.UI設計ツール「StoryBoard」を使った画面設計

Xcodeで新規プロジェクトを立ち上げたら、StoryBoardを使って、画像、ボタン、テキストを表示するためのラベルといったオブジェクトを配置していきます。

StoryBoard

2.記述したコードとUIオブジェクトのひも付け

次にUIViewControllerファイルにコードを記述します。
ここではインスタンスの宣言や、ボタンを押したときのアクションとして、if文を使い、”もしラベルが隠れていなかったら、ラベルを隠す”、そうでない場合は”ラベルを隠さない”というメソッドを書きます。
そしてStoryBoard上に配置したオブジェクトに記述したインスタンスとメソッドをひも付けします。

StoryBoard

3.アプリの設定

アイコンやiPhone画面に表示される名前、アプリが縦向き(Portrait)か横向き(Landscape)かを設定します。

MyFirstApp

これで「My Very First App」の完成です。
非常にシンプルですが、このアプリを制作することでXcodeの基礎的な使い方を学ぶことができます。

TEXT : 桑村治良(onTheHammock)

Rainbow Apps iPhoneアプリマスターコース講座紹介ブログ
講座紹介1:初めてのiOSアプリ
講座紹介2:カウンター
講座紹介3:ドル円換算機
講座紹介4:手拍子アプリ
講座紹介5:クイズアプリ
講座紹介6:ジェスチャーフラッシュ


 

iTunes connectで入金口座の登録をしよう

2012/09/07

iTunes connectこれから自作のiPhoneアプリで一儲けしてやるぜー!! と意気込んでいる人はやっておかなくちゃいけないことがあります。
ズバリ入金口座の登録です。この設定をしておかないと、爆発的にアプリが売れたとしても入金先が無いということになります!!
その設定は相変わらず英語でわかりにくかったりするので、ここでやり方を紹介したいと思います。

そ・の・ま・え・に…

Apple社はアメリカの会社ですから、基本通貨はドルで考えます。
ドルを円に替えるためには手数料が発生します。
少し前まではiPhoneアプリの売上もこの手数料がかかったようで、最大だと¥4,000くらい掛かったそうです。
こいつは困ったもんだと思っていたんですが、昨年から日本の開発者への支払いに対して、Apple社が“全銀システム”に対応しました。
これによりアプリの売上の支払い手数料が掛からなくなりました。
そこで大事なポイントは2点です。
1.全銀システム(zengin code)をちゃんと指定すること。
2.口座名義はカタカナで行うこと。

実は、私もこの手数料問題についていろいろ危惧していて、Citi Bankに口座を開いたりと準備をしたのですが、
いろいろ調べてみると昨年変更があったことが分りました…。

さて、入金口座の設定などはリリースアプリの管理などを行うiTunes connectで行います。
Contracts, Tax, and Bankingのページで設定をしましょう。

iTunes connect

有料アプリについての契約かiAdについての契約かを選択します。
どうせなら、両方しちゃいましょう。
“Request”をクリックすると設定できます。

iTunes connect

設定するときに住所に変更がないか訊かれます。
変更がなければそのまま”Save”しましょう

iTunes connect

“Review Agreement”(同意書)が表示されますので問題なければアグリーしときましょう。
次に”Contact Info”、”Bank Info”、”Tax Info”の設定をそれぞれ行います。

iTunes connect

まずは”Contact Info”から。Company Contactsという画面が出てくるので、”Add New Contact”ボタンをクリックしましょう。
名前、メアド、Title(肩書き)、電話番号を入力します。Fax番号はオプションで必須ではありません。
Contact情報を入力し保存すると、Senior ManagementやFinancialなどの役職で設定が行えるようになります。
個人開発者は全部1人でやってるわけですから、全部の役職を担当していることにすればいいじゃないでしょうか。

iTunes connect

これで右下の”Done”ボタンを押したら設定終了です。
続いて”Bank Info”の設定をしましょう。
設定画面を開くと”Choose Bank Account”という横に”Select One”というプルダウンメニューが表示されています。
しかし、設定をしなくてはこれを選ぶことはできません。
“Add Bank Account”で銀行口座の設定を行いましょう。

iTunes connect

口座の設定では、まず自分の口座がある銀行の国を訊ねられます。
そして”Japan”で設定すると”Zengin Code”の入力画面が表れます。
先に記述した正確に登録しましょうというアレですね。
Zengin Codeは銀行コードと支店コードの組み合わせですが、この入力画面からも検索することができます。
ただし、日本語で”みずほ銀行”と打っても検索は出てきません。
検索キーを”=”から”starts with”にして、mizuhoなどの文字列で検索してみてください。
続いて銀行のPostal Code(郵便番号)を入力したら、さっくりZengin Codeが見つかります。

Zengin Codeが入力されたら銀行の名前と住所が自動的に入力されます(なぜか支店名は入力されない)。
続いて7桁の銀行口座を入力しましょう(確認のため2度入力)。
Account Holder Nameは口座名義です。
この口座の名義がカタカナの場合、カタカナで入力しましょう!!
注意書きにも書かれていますが、銀行に登録した文字列と一致しない場合は支払いが滞る可能性があるそうですよ。
Bank Account Typeは”普通”か”当座”を選べます。
ローマ字表記で”FUTU”や”TOZA”と書いてるので迷うことはありません。
Bank Account CurrencyはJPY-Japanese Yenを選びましょう。

iTunes conncet

これだけ入力したら確認画面が表示されるので、問題がなければSaveしましょう。
これでようやく、Bank Infoの設定ができます。

さあ、続いて”Tax Info”の設定です。
アメリカ、カナダ、オーストラリア(有料アプリの設定のみ)から選択できるのでアメリカを選びましょう。

iTunes connect

まず、あなたはアメリカ市民(アメリカ在住)ですか? と訊かれます。
Noですね。
続いてアメリカで事業をしていますか? と訊かれます。
Noですよ。
この2つの質問のNoをすることでCertificate of Foreign Status Beneficial Ownerのページが表示されます。
これは”米国非居住者用の免税書類”のようです(多分…)。
一度送信すると変更することは出来ないので注意しましょう。
基本的には”Individual or Organization Name”や”Country of incorporation”など登録している情報は既に入力されています。
入力するのは”Type of Beneficial Owner”と”Title”くらいです。
“Type of Beneficial Owner”は個人開発者の場合は”Individual/Solo Proprietor”を選択しましょう。
Titleは肩書きのことなので、Contact Infoで設定した肩書きを入力しましょう。
あと”I declare that〜”で始まる宣誓分にチェックを入れなければいけません。
これで入力は終了です。
そして右下の”Confirm”ボタンを押すと、下記の注意を促されます。
“Once you submit this form, you will not be able to make change via iTunes Connect.”

iTunes connect

一回提出しちゃったら、変更することは出来ないよーってことですね。念入りです…。
そして右下のボタンがConfirmからSubmitに変わりました。
これでSubmitを押すと”Tax Info”の設定は終了です。
iAdの設定も有料アプリの設定も基本的には同じです。一度やってしまえば、簡単でしょう。
おつかれさまでした〜。

この記事を執筆するにあたり以下のサイトを参考にさせて頂きました。
ありがとうございました!!

iPhone使いへの道 Contracts, Tax, and Banking 銀行と税金の契約
Macで遊んでる「アプリの売上代金を手数料なしで全額受け取る方法」
あらきんぐのiPhoneアプリ開発ブログ iPhoneアプリの売上金を手数料0円で受け取る方法



Rainbow Apps iPhoneアプリマスターコース講座紹介ブログ
講座紹介1:初めてのiOSアプリ
講座紹介2:カウンター
講座紹介3:ドル円換算機
講座紹介4:手拍子アプリ
講座紹介5:クイズアプリ
講座紹介6:ジェスチャーフラッシュ


 

iPhoneアプリ申請の道 Part3

2012/05/09

前回のブログではiTunes Connectでのアプリ申請の手順を紹介しました。
アプリ申請まであとちょっとです。
今回はXcode4.3を使ったアプリのアップロードです。

まずは申請するアプリのプロジェクトファイルを開きます。
プロジェクトの設定画面のBuild LocationsのPer-configuration Build Products PathにDistributionの項目を追加します。
同じくPer-configuration Intermediate Build Puroducts PathにもDistributionの項目を追加しました。
※これはディストリビューション用にプロジェクトファイルのアーカイブを作成するために必要なのだと思います。←違うかも。

また設定画面のCode SigningのCode Signing IdentityのDistributionの項目をiPhone Distributionに設定しました。

Step12

続いてProductメニューからArchiveを実行します。
成功したらOrganizerのArchivesの画面が開きます。

右側に”Validate”と””Distribute”のボタンがあるので、まずはValidateボタンを押してアプリの検証を行います。
iTunes Connectのユーザー名とパスワードを求められるので入力して実行してください。
検証が成功したらArchivesの画面にPassed Validationというステータスの項目が出来ます。

step13_Image

続いてDistributeボタンを押します。
※これが以前のXcodeのバージョンだと”Submit”ボタンでした。
App Storeで一般公開するのか、Ad-Hocなのか訊かれるので適切なのを選びましょう。
これでNextボタンを押すとプロジェクトファイルのアップロードが始まります。

Step14

アップロードができたらSubmittedというステータスの項目が出来ました。

ここまで済むとiTunes Storeから”Your app status is Waiting For Review”というメールが届きます。
iTunes Connectにアクセスしてみると確かにステータスが”Waiting For Review”になりました。
これはApp Storeの審査待ちの状態です。
大体一週間くらいで、このステータスが”In Review”に変わり審査が始まります。
※これもメールで通知が来ます。

審査が通れば、このステータスは”Ready for Sale”に変わります。

step15_image
では、審査が通らなければ…。
“App Submission Feedback”というメールが送られてきます。
そしてiTunes ConnectにアクセスするとRejectedの文字が…。
つまり審査が通らなかったわけですね。

“Resolution Center”というページをチェックすると、審査が通らなかった理由が書かれています。
申請を取りやめて、指摘された部分を改善をしてから再度アップロードしましょう!!



Rainbow Apps iPhoneアプリマスターコース講座紹介ブログ
講座紹介1:初めてのiOSアプリ
講座紹介2:カウンター
講座紹介3:ドル円換算機
講座紹介4:手拍子アプリ
講座紹介5:クイズアプリ
講座紹介6:ジェスチャーフラッシュ


 

iPhoneアプリ申請の道 Part2

shinseinomiti2
2012/05/08

またしても、お久しぶりのブログです。
さて前回のブログに引き続きiPhoneアプリ申請の手順を紹介します。

iTunes Connectで申請手続きを行っているとBundle IDという項目を埋めなくてはいけませんでした。Bundle IDとはこれから申請しようとしているアプリのプロジェクトファイルのIDです。iOSアプリ開発者のためのサイト”iOS Dev Center”で設定しなくてはいけません。

しかし、ここにはBundle IDを設定する場所はありません。が、App IDsというものを設定する場所はあります。
iOS Dev Centerの説明によるとApp IDsとは “Bundle Seed ID” and a traditional CF Bundle ID (or Bundle Identifier)と記述されています。どうやらこれがBundle IDになるっぽいです。
STEP5_image
さて、Bundle IDを作るためにはプロビジョニングファイルというものを作成しなくてはいけません。プロビジョニングファイルとはアプリを公開するための前準備に必要なものであり、このファイルにはApp ID、開発者ID、デバイスIDが埋め込まれています。要するにプロビジョニングファイルとはアプリとそれを作った開発者を一致させる証明書みたいなものですね。

では、App IDの設定をします。このIDは好きな文字列で付けてもかまわないっぽいんですが、アップルは”逆ドメイン名の形式の文字列を使用”することを勧めています(例:com.domainname.appname)。
まあ、言う通りにしておきましょう。
さて、IDを入力して”Submit”ボタンを押すとApp ID’sが登録されました。

それでは、ようやくプロビジョニングファイルの作成です。
“Provisioning”作成画面で、Distributionタブから”New Profile”を作成します。

STEP6_image

ここでの設定は以下の通りです。
・Distribution Method=”App Store”か”Ad Hoc”を選択する。
※Ad Hocとは限定的に使用する場合に選択します(社内のみで試用するアプリとか公開しないもの)。App Storeは一般公開です。
・Profile Name=プロフィール欄に反映される名前です。
・Distribution Certificate=開発者証明書の意味ですね。
・App ID=さきほど作ったApp IDを選択します。
以上の設定をしてSubmitボタンを押すとProvisioning Profileが作成されます。

Step7image

このファイルをダウンロードし、ダブルクリックして実行します。

step8_image

さて、iTunes Connectに戻りまます。
Bundle IDの設定項目で、作成したProvisioning Profileが反映されています。
もちろんこれを選択します。

続いて以下の設定を行います。
・Availability Date=アプリの公開日。
・Price Tier=アプリの価格。
・Discount for Educational Institutions=教育機関向け割引。
※App Store Pricing Matrixをクリックすると販売価格一覧表が表示されます。

Step9_image

さらに以下の設定を行います。
・Version Number=アプリのバージョンナンバーです。
・Copyright=このアプリの帰属先ですね。
・Primary Category=第一カテゴリ。これがAppStoreのカテゴリに反映されます。
・Secondary Category (optional)=第二のカテゴリー。
・Review Notes (optional)=審査のためのアプリの説明などを書く。

お次はアプリに以下の表現が入るかどうかチェックを入れます。

・Cartoon or Fantasy Violence=ファンタジーやアニメキャラによる暴力描写。
・Realistic Violence=リアルな暴力描写。
・Sexual Content or Nudity=性的なコンテンツやヌード。
・Profanity or Crude Humor=冒涜的もしくは下品なユーモア。
・Alcohol, Tobacco, or Drug Use or References=アルコール、タバコ、薬物使用に関すること。
・Mature/Suggestive Themes=みだらで挑発的な内容か。
・Simulated Gambling=ギャンブル的なものかどうか。
・Horror/Fear Themes=ホラー的な内容か。
・Prolonged Graphic or Sadistic Realistic Violence=サディスティックな暴力描写。
・Graphic Sexual Content and Nudity=性的なヌード描写。
このチェック項目によって、アプリのレーディングが決まります。

Step10

最後にメタデータを記述します。
メタデータはユーザーがApp Storeでこのアプリを探すときに関係してくるものです。
なので、ちゃんと考えて記入しましょう。

項目は以下の通りです。
・Description=これはApp Storeに表示されるアプリの説明文です。
・Keywords=検索のためのキーワードです。複数のキーワードを設定する場合はカンマで区切って入力します。
・Support Email Address=自分のメアドなどを入れましょう。
・Support URL=アプリのサポートサイトですね。Facebookページでも良いっぽいです。
・Marketing URL (optional)=アプリ専用のプロモーションサイトということでしょうか。まあオプションなのであれば記入。

・EULA=使用許諾契約書を提供する場合に設定します。私は面倒なので設定しません。設定しなければお任せです。

そして最大5枚までのスクリーンショットをアップできます。iPad用のスクリーンショットもあればアップします。
最後にアプリ内で暗号化処理があるかどうかを訊かれます。

step11_image

これでiTunes Connectの設定は完了しました!!
アプリのステータスがwaiting for uploadになっています。
じゃあ、Xcodeでデータをアップしましょう!!




Rainbow Apps iPhoneアプリマスターコース講座紹介ブログ
講座紹介1:初めてのiOSアプリ
講座紹介2:カウンター
講座紹介3:ドル円換算機
講座紹介4:手拍子アプリ
講座紹介5:クイズアプリ
講座紹介6:ジェスチャーフラッシュ


 

iPhoneアプリ申請の道 Part1

2012/04/14

勉強会イメージ
お久しぶりのブログです。
先日、onTheHammockのクリエイターとiPhoneアプリ申請のための勉強会を行いました。
っつても参加人数3人ですが。

さてiPhoneアプリの申請は、iTunes ConnectというWebベースのツールで行います。
このツールは基本的に英語がベースとなっています。
…やっかいですね。

でもググれば申請方法を紹介したWebサイトは多数あります。
私もその先達の教示によって、アプリ申請を行いました。
ただ、この申請のやり方っていうのも細かなところでちょこちょこと変わったりするんです。
なので、onTheHammockとしても申請手順(2012年4月時点)を記録しておくことにしました。

Step1

まず申請のための必要素材はあらかじめ準備しておきましょう。
アプリ申請に必要な素材とは以下のものになります。

・アプリ名(App Name)
・アプリの説明文(Description)
・検索のためのキーワード(keywords)
・サポート用メアド(Support Email Address)
・サポート用サイト(Support URL)
・そのアプリのプロジェクトバンドルファイル
・アプリのアイコン
・スクリーンショット

なぜ事前準備が必要なのかというと、上記のことをああだこうだと準備しながら設定しているとタイムアウトして入力した情報が消えてしまうからです。

Step2

ではiTunes Connectでアプリの登録をしましょう。

1.まずはiTunes Connectにログインします。
2.”Manage your application”(あなたのアプリ管理ページ)に入ります。
3.”Add new app”(新しいアプリの追加)ボタンを押します。

Step3

4.App Information”にアプリ情報を記入します。

さて、この4で「???」な部分が出てきます。

“App Information”に記入するのは下記の項目です。
・Default Language
・App Name
・SKU Number
・Bundle ID

Step4

言語設定とアプリの名前の記入の仕方はわかると思います。
問題はSKUとBundle IDです。

SKU NumberとはStock keeping unitの略です。まあ在庫管理番号みたいなものと考えればいいでしょう。なので好きな英数字を付けましょう。当然、いくつもアプリを申請してる人は重複がないようにしなくちゃいけないです。管理番号ですから。

BundleIDは自分がつくったアプリのプロジェクトファイル(プロジェクトを構成するファイル群)を識別するものです。要するにアプリのIDのことです。これはiTunes Connectで適当に設定するわけにはいきません。iOS Dev Centerで行う必要があります。
ただ。申請の時点でまだBundle IDを作ってない場合は、iTunes connectからiOS Deperoper Centerに飛んで作ることが出来ます。
※実は今回、私は作るのを忘れてました!! なので、申請時に作りました!!

さて長くなりそうなので、以降の手順は次回のブログで紹介します!!




Rainbow Apps iPhoneアプリマスターコース講座紹介ブログ
講座紹介1:初めてのiOSアプリ
講座紹介2:カウンター
講座紹介3:ドル円換算機
講座紹介4:手拍子アプリ
講座紹介5:クイズアプリ
講座紹介6:ジェスチャーフラッシュ