2012年8月18日土曜日

iPhone アプリ開発:Storyboardを使って異なるView間での値の受け渡し

Storyboardを使って異なるView間で値を受け渡す方法

参考にしたブログ: http://d.hatena.ne.jp/kazukingband/20120302/1330688818
 (とても新設に解説してくれていて感謝でした)

◇定義
・データを渡す方の画面: FirstViewクラス
・データを受け取る方の画面: SecondViewクラス
・1stViewにある2ndViewに移動するボタン: Goto2ndView
・FirstViewから渡すデータは(int64_t)型の変数scoreに格納されている値


◇方法
1. Goto2ndViewボタンを押したらSecondViewに遷移するように設定(controlキーを押す操作)
 その際、「storyboard segue」は「Modal」を選択
 また、Identifierに任意の名前(任意とはいえこの名前が重要)
  ※ここでは、"gosecond"にしておきます

2. FirstViewのmファイル(FirstView.m)にSecondViewのhファイル(SecondView.h)をインポート
 (#import "SecondView.h")

3. FirstViewのmファイル(FirstView.m)に以下を追加

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    if([[segue identifier] isEqualToString:@"gosecond"]){ 
        int64_t score = 1234;
        SecondView *svc =[segue destinationViewController];
        svc.Data = score;
    }
}


 「svc.Data」の「Data」がデータ受け渡しのキー変数でSecondView.hで定義する(4参照)

4. SecondViewのhファイル(SecondView.h)でDataを定義する。


  @property int64_t Data;

 ※この時、3でDataの元となるデータの型が同じになっていること
  (ここでは、int64_t型)

5. SecondViewのmファイル(SecondView.m)に以下を追加

  @synthesize Data; 


6. あとは、SecondView.mファイルの中で、変数Dataを使ってデータを受け取る。
 こんな感じで

    double aa;
    aa = labelData/100.0;
    NSLog(@"%f",aa);


意外と簡単かなだけど、5を忘れそうかな。

2012年7月1日日曜日

iPhoneアプリ開発:Game Centerの設定

Geme Center対応アプリの作り方

参考にしたブログ: http://golog.plus.vc/iphone/2867/

上の参考にしたブログ以外で実施したことについて、記録しておきます。

◇LeaderBoardのスコアは1回しかリセットできないので注意必要。
良い記録を出してしまうと、実ユーザが面白くない。
また、プログラムミスでとても小さな値が入ってしまうと二度と変更できず、
LeaderBoardの設定とプログラムを修正するはめに。

◇小数点のスコアを残したいとき
・LeaderBoardの設定で、「Score Format Type」で 「Fixed Point To ? Decimals」
を選ぶ。(?は 1、2、3 で 小数点以下1、2、3桁の意味)
・小数点2桁で表したいときは、ゲーム上の値を100倍してint型にする。
例)123.45というスコアの場合は、12345(123.45の100倍)をLeaderboardに渡す。
下の参考プログラムの 変数 a がスコアです。

       double a = time * 100//timeを100倍にする
       GKScore *scoreReporter = [[GKScore alloc] initWithCategory:@"hogehoge"]; 
       NSNumber *numScore = [NSNumber numberWithDouble:a]; //NSNumberを使う
       scoreReporter.value = numScore.intValue;

◇アプリ申請時
・下のようなメッセージが出たら、その画面に下にあるLeaderBoardをEnabledにして有効にする、LeaderBoard IDにチェックを入れる。

You have indicated that this app uses Game Center, but this version is not enabled for Game Center.Please enable Game Center for this version of your app before you submit if you want to use the Game Center service.



050がBluetoothに対応: iBowが利用可に!!


お久しぶりです。仕事がいそがしく、ご無沙汰してました。

さきほど、「050 Plus」のアップデートがありました。
今回のアップデートで、050 PlusがBluetooth機器に対応したんです。


ということは、1ヶ月以上も前に、フライングして購入した「iBow」が活躍する?
ということで、早速試してみました。












※iBowについては、下のブログを参照ください。
http://yamatada.blogspot.jp/2012/05/ibow-mobile.html

検証結果

◇問題なく使えます。
 これまで、iPadに向かってしゃべっていたため、会社で変な風に見られてましたが、
 今回のアップデートで、iPadは机において、iBowを携帯電話のようにはなせます。
 電池の持ちは、未知数ですので、別途ご報告しますね。

◇電話をかけるとき
 1) iBowの電源を入れ、iPadと接続
 2) 050Plusを立上げ、相手の電話番号を入力し電話をかけます。
   ※この操作はすべてiPad上でおこないます。(iBowからの操作はできません)
 3) あとは、話すだけ。

◇電話をうけるとき
 1) 050Plus の通知を有効にしておきます
  「ロック中の画面に表示」を「オン」にいしておくと便利です。
 2) 電話がかかってきたら、050Plus が反応しますので、iPad上で「応答」ボタン
   を押します。
 3) あとは、話すだけ。 

けど、最近、iPad? SIM? の調子が悪くちょくちょく
「SIMなし」って警告がでるんですよね。
どうにかならないものかと...。


2012年6月21日木曜日

iPhone アプリ:「タッチ20」サポートサイト


現在アプリ申請中
iPhoneアプリ第3弾


アプリ名:タッチ20

とってもシンプルなのに、難しいゲームです。
20個の数字やアルファベット、ひらがなを小さい順(はやい順)から押していったり、
大きい順(おそい順)から押していったりする、いたって単純なゲーム です。

難易度にあわせ、6つのゲームがえらべます。
「イラッ」てしないようにお願いします。
iPhone 投げても弁償しませんよ。


2012年6月3日日曜日

iPhoneアプリ開発:【Xcode 4.3.2】Tab BarアプリでのView Controllerの追加

最近はデジモノの試行というより、iPhoneアプリの開発日記になってます。

ココに来て、Tab Barアプリを作ろうと思ったのですが、最後に紹介している私が参考にしている本とXcodeのバージョン(本は4.0.2の環境)が異なるため、View Controllerの追加が思ったようにできませんでした。

そ・こ・で、試行錯誤の結果、追加方法が見つかったので、参考にしてください。
※StoryBoard機能を使ってます
(ネットで探しても、見つからないんですよね。この手の話は・・・)

追加方法 (StoryBoardの作り方からはじまります)

1.まずはProjectの作り方(StoryBoard付のProjectを作ります)
・新規Projectを作る際、「Use Storyboards」にチェックを入れます


2.MainStoryboard.storyboardというファイルが出来ます。
※が、タグとViewが二つしかありません。

3.新しいView Controllerを追加します。
 ・右下のObjectエリアからView Controllerをドラッグ&ドロップ





 4.追加したView ControllerをTab Bar Controllerとつなげます
・MacのControlキーを押しながら、メイン画面から追加したViewにドラッグ&ドロップ

5.クラスファイルを追加します
・左したの「+」ボタンを押します。

・追加するファイルタイプを聞いてくるので、「Cocoa Touch」にある「Objective-C class」を選択して「Next」ボタンを押します。

・クラス名(お好きな名前)を入れます。

6.追加したView Controllerとクラスファイルを紐付け、終了!!
・追加したView Controllerを選択し、右上の「Custom Class」の「Class」を上で作成したクラス名に変更して終了!!


◆参考にしてる本



2012年5月30日水曜日

iPhoneアプリ: ダウンロード状況

5月21日にiTuneに公開された「わりかん」アプリ。
昨日までのダウンロード状況は、こんな感じです。

まだ、25ダウンロード。 売り上げはゼロ。
まっ、こんなもんですかね。

次回のバージョンアップ(現在審査中、近日公開予定) では、広告にAdMobも追加しております。

2012年5月28日月曜日

iPhone アプリ:「待ち時間」サポートサイト



iPhoneアプリ第2弾


アプリ名:待ち時間ー支援

行列などで並んでいるときに、あと何分かかるか知りたいときに使います。
※リトルの公式を元に、作成しました。

使い方:
・自分の前に並んでいる人数を入力
・1分間に自分の後ろに並んだ人数を入力
 「+」ボタンを押す事で、カウントしてくれます。(1分間の計測付き)


結果:
 ・計測終了後、予測待ち時間が表示され、カウントダウンが始まります。
※ はずれても、文句は言わないでください。

リトルの公式の詳しい事は、こちらを参考にしてください。

2012年5月22日火曜日

デジモノと違いますが:後輩に読んで欲しい本

 

デジモノとは違いますが、是非とも後輩に読んで欲しい本があります。

その後輩は、昨年入った大学院卒業の新人なんですが、職場の環境に慣れず(仕事の進め方になれず?)、とても苦労してます。

そこで彼にとにかく、仕事ができる男になってもらおうと、本を読んでもらうことを決めました。ただ、読むのではなく、読んだ本を私が読みたくなるようアピールしてもらうための感想文まで作成してもらうことを彼と約束しました。

その約束をしてから、1ヶ月が経ち、彼も私との約束を忘れているかと思いきや、覚えており、 今回紹介する本とは別の本を彼は読んでいるようで、まずは、その本の感想文を書くといってました。(おいおい、ここでその本と感想文の出来は紹介しますね)

私は、仕事で何かあると、よく本屋で気になるビジネス本を買っては、仕事上の悩みを自己解決させていますが、今回紹介する本も、私が先日本屋で見つけ買おうか迷った本になります。

内容は、『報連相(ホウ・レン・ソウ)』といったビジネスマンには『いろは』にあたる内容から始まって、『会議』や『メール』『文書作成』『コミュニケーション』『時間管理』『チームワーク』『目標達成』のコツを説明しており、非常に彼に役に立つのではと思い、ここに紹介させてもらいました。

あなたも後輩がいれば、是非紹介してあげてください。


2012年5月19日土曜日

momopri:気になるもの



実機レビューではありませんが、近くの電気屋で実際に触ってきましたので報告します。
まず感想として、テプラ代わりに気軽に利用できるので、使い勝手はいい。
仕事机に一つあると便利なデジモノ文具。 (姉妹品も以外と安くていいかも)
欲をいえば、通信機能があれば、電話メモとして職場で大活躍かな(?)

◇値段:9800円ぐらいとやや高め (5000円なら買い)

◇機能:
・手書きメモ、定型文、カレンダー(のみ)、時計(のみ)と意外と多機能
・手書きでは、KIN○JIM「マ○モ」には無い「消しゴム」があるが太さが一つ
(=がっつり消せない)
・文字幅は選べない(一つ)
・カレンダーや時計にはスケジュール機能やアラームといった余分な機能はなし
(指定した時間になったらメモを表示するというアラーム機能はある)
・単3x4本で動く。ACアダプターも利用可能

◇印刷
・印刷品質はオッケー (200dpi)
・(不定形の長さになるのでしょうがないが)ポストイットとはいいずらい
けど、端を折ればポストイット的な利用は可能

 
あと、姉妹品として
◇スマートフォン接続(Bluetooth経由)のB10

◇Windowsパソコン接続(USB経由)のU10

ってのがあります。
残念ながら、B10はiPhoneには対応しておらず、現在(5/19)のところはAndroidだけ。
また、ACアダプターのみの稼働(乾電池はなし)
とはいえ、机においてあれば、パソコンに接続して絶対使う一品かな。
※きれいな字のポストイットってなんとなく良いですよね



2012年5月16日水曜日

iPhoneアプリに奮闘 その2

昨日の記事に続きまして、最終段階のiTuneへアップロードする際の出来事をレポートします。試行錯誤しながら自分で解決しました。だれか褒めてください。
 
※『1)実機での動作確認』については、一つ前のブログをご覧下さい 

2)iTuneへのアップロード

つまづき1:Archiveできない
つまづき2:Validateできない(当然Distributeも)

『1)実機での動作確認』のあと、ようやく『2)iTuneへのアップロード』(プログラムの配布申請)を行う訳ですが、iTuneへのアップロードを行うには、

a)Archiveの実施
b)Validateの実施
c)Distributeの実施

の3つが必要となります。
もったいぶった記事になってますが許して下さい。
(自分の苦労をわかってほしくて...)

◇◆◇
a)Archiveの実施
◇Xcodeのメニュー[Product]-[Archive]を実施
(その際、左上のSimulaterのメニューはiOS Deviceになっていること)

<つまづき1>
「Archive」で「Fail」になってしまう。
エラーコード:
profile doesn’t match any valid cirtificate/private key pair in the default keychain
※なんのことやらさっぱり。

○私の取った対処:(後で間違った対処とわかりましたので以下は参考にしてください)


 Xcodeの「Code Signing」(一番左のウィンドウでプロジェクト名を選択、PROJECTでプロジェクト名を選択、「Build Setting」タブの中にでてくる「Code Signing」)のReleaseを「iPhone Developer(Currently matches 'iPhone Developer: xxxx' in zzzz)」にした。

 

これで、なんとか「Archive」が終了し、「Organizer - Archive」が自動で立ち上がるようになりました。


b)Validateの実施
「Organizer - Archive」でできあがった「Archive」ファイルを選択し、「Validate」ボタンをクリック すると、「iOS Dev center」に登録したユーザIDとパスワードを聞いてくるので、IDとパスワードを入力すると...

<つまづき2>
 「No identities are available for signing」というエラーが出て左下の「Download Identities...」ボタンや右下の「Import Developer Profile...』ボタンをクリックしても同じ結果となり先に進めない。

 

◇正しい対処方法(と私は思ってやりました。一応成功してます)


 Xcodeの「Code Signing」(一番左のウィンドウでプロジェクト名を選択、PROJECTでプロジェクト名を選択、「Build Setting」タブの中にでてくる「Code Signing」)のReleaseが間違っており、「iPhone Distribution(Currently matches 'iPhone Distribution: xxxx' in zzzz)」になっていなかった。

 
「iPhone Distribution ....」にするのは簡単なんですが、その後ろにある「(Currently matches 'iPhone Distribution: xxxx' in zzzz)」の状態にするには、以下の作業が必要なようです。私の場合、何かの操作でzzzzというファイルが消えてしまったのかもしれませんが...

1.「iOS Provisioning Portal」の左側のメニューで「Provisioning」を選択
2.「Distribtuion」タブを選択
3. 右上「New Profile」ボタンをクリック
 [Distribution Method]:App Store
 [Profile Name]:お好きな名前 (上のzzzzにあたります)

 [App ID]:iTuneにアップロードするApp IDを選択
「Submit」ボタンをクリック
4. しばらくすると、「Download」ボタンが表れるので、クリックし、適当な場所にファイル([Profile Name].mobileprovisionというファイル名)を保存。
5. 保存したファイルをダブルクリックすると、キーチェーンが立ち上がり、mobileprovisionファイルを認識/登録してくれます。
6. Xcodeに戻り、「Code Signing」の設定をすると、上の正しい設定が出来るようになります。


参考にしている本です。