Monthly Archives: March 2015

Swift:NSNotificationCenter の使い方とサンプルコード

クラスで何かの処理が終わったとき、ViewController クラスへ通知したいときがあります。 そういった場合にはその名のとおり NSNotificationCenter を使用します。デリゲートパターンを使う方法もありますが、NSNotificationCenter の方が直感的に理解できるかもしれません。 今回はこの NSNotificationCenter の使い方を、サンプルを交えながら説明したいと思います。 NSNotificationCenter の使い方 NSNotificationCenter を使用するためには定義・登録をしなければ使用できません。 全体の流れとしては、 NSNotificationCenterの定義・登録 NSNotificationCenterへ通知を依頼(送信) NSNotificationCenterから通知を受ける(受信) NSNotificationCenterの削除 といった感じになります。以下に順を追って説明します。 NSNotificationCenterの定義 NSNotificationCenterの登録 NSNotificationCenterへ通知を依頼(送信) NSNotificationCenterから通知を受ける(受信) NSNotificationCenterの削除 サンプルコード 以下はアプリケーションがバックグラウンドになったとき AppDelegate クラスから MainViewController へ通知を行うサンプルです。 AppDelegate MainViewController まとめ NSNotificationCenter の使用できる場面は限定的なものになってしまいますが、何か新しいクラスを作成するときに、完了処理等に NSNotificationCenter をあらかじめ実装しておけば、後々便利に場面もあるかと思います。 また、NSNotificationCenter の記述は冗長になりがちなので乱用は禁物ですが、言語に慣れないうちは、使う場面を選びながら使用すればコードの可読性があがり、メンテナンスがしやすくなるかと思います。 この記事がみなさんのお役に立ちましたら、下記「Share it」よりブックマークやSNSで共有していただければ幸いです。

SQN:タイムアタックモードのプレイ完了後にフリーズする問題について

先日リリースした SQN ですが、TIME ATTACK でのプレイ中にアプリが落ちる、との報告を受けました。 厳密には「TIME ATTACK を何度かプレイした後、全てのナンバーをタッチしたとき」にアプリが落ちてしまうという問題です。 現在、このバグに関する修正版(Ver.1.01)を Apple に申請中です。修正版がリリースされるまでプレイヤーの皆様にはご不便をおかけしますが、今しばらくお待ちいただければと思います。 SQN を引き続きよろしくお願いいたします。 この記事がみなさんのお役に立ちましたら、下記「Share it」よりブックマークやSNSで共有していただければ幸いです。
eyecatch_image

SQN: iOS 無料ゲームアプリ SQN – Sequential Numbers をリリース

3月18日、sirochro 初の無料ゲームアプリ SQN をリリースしました。 より多くの方に楽しんでいただけるよう、シンプルな内容の中にちょっとした戦略性を取り入れたゲームとなっています。 開発期間は2ヶ月半くらいで、Apple の新言語 Swift で開発しました。前回のアプリリリースから少し時間が経過してしまいましたが、おかけでこの期間にアプリ開発に必要なスキルはある程度獲得することができました。 今回の SQN は限られた時間の中でやりたい事、やれることを全て詰め込みました。どなたでも無料で楽しめるゲームになっていますので、是非ダウンロードして遊んでみてください。 ↓SQN のダウンロードはこちらから SQN はユニバーサルアプリなので、すべての iOS デバイス(※) でお楽しみいただけます。 ※iOS 8.0 以降がインストールされているデバイスが対象となります。 SQN – Sequential Numbers とは SQN は表示されているナンバーを1から順にタッチしていくだけのシンプルなゲームです。 ゲームの基本ルールは、タッチザナンバーズのように広く知られた内容ですが、SQN ではステージ構成を2×2(4マス)〜 10×10(100マス)まで用意し、連続タッチによるポイント(コンボポイント)を導入しました。 2つのゲームモード SQN ではプレイスタイルに応じて、ステージクリア制でハイスコアを目指す QUEST、各ステージのクリアタイムを世界のプレイヤーと競う TIME ATTACK、2つのゲームモードを用意しました。 QUEST モード QUEST モードはステージクリア制のゲームです。 各ステージには制限時間が設けられていて、制限時間内に全てのナンバーにタッチすることができればステージクリアとなります。 アイテム QUEST モードでは獲得したコンボポイントを使用して、ステージの攻略を有利に進めるアイテムへ交換し、使用することができます。 アイテムにはユニークな演出効果と特徴がありますが、各アイテムの詳細内容はアプリのマニュアルをご覧になって下さい。 TIME ATTACK モード TIME ATTACK モードは、2×2 〜 10×10マス(スクエア)のスクエアを選択し、各スクエアのより早いクリアタイムを、自分自身や世界のプレイヤーと競う内容となっています。連続タッチによるコンボポイントは獲得できますが、クリアタイムの公正を期すため、アイテムは使用できません。 ランキングと各種設定 SQN にはランキングの表示や各種設定も実装しています。 ランキング QUEST のハイスコアや、TIME ATTACK クリアタイムのランキングに参加するためには Apple の Game Center にログインしている必要があります。 Game Center にログインしていない状態でも、プレイヤーの記録が上位5つまではローカルランキングとして保存されますが、是非、世界中のプレイヤーの記録にも挑戦してみてください。 各種設定 プレイヤーの名前、サウンドのON/OFF、ナンバーボタンの色やフォントサイズといった各種設定の変更が可能です。自分好みの設定でお楽しみ下さい。 さいごに SQN はどんな方でも、ちょっとした時間に楽しめる完全無料のゲームなっていますので、是非ダウンロードして遊んでみてください。 ↓SQN のダウンロードはこちらから これからもコンスタントに、より高いクオリティの面白いゲームを制作し続けていきたいと思います。 また、開発から得た知識はサイトで随時記事にしていますので、よかったら sirochro の twitter をフォローしてください。 この記事がみなさんのお役に立ちましたら、下記「Share it」よりブックマークやSNSで共有していただければ幸いです。

Apple: スペシャルイベント Spring forward で 新しい MacBook 12インチを発表!

日本時間 3月9日の午前2時より Apple のスペシャルイベント Spring forward が開催されました。 今回のイベントで、発表されると事前に噂されていたプロダクトは以下の通りでした。 iWatch MacBook Air 12.2(12.9)インチ iPad Pro iWatch がらみで Apple TV 等の発表も噂されていましたが、個人的には今回のイベントは iWatch のみの発表にとどまると予想していました。 それでは、実際はどうだったかをみていきましょう。 スペシャルイベント Spring forward の概要 Apple Store 中国に出来た Apple Store の紹介から。デザインもさることながら、この建築技術はすごいですね。 Apple TV Apple TV の新しいストリーミング HBO の紹介の後、Apple TV が $99 から $69 へのの値下げを発表しました。 Health Kit Medical Research -> Reserch Kit の紹介。単なる健康に対してではなく、ガンや高血圧、といった個別の初期症状に対して調査を行い、健康を管理するためのアプリ開発を容易にするオープンソースSDKです。アプリからタッチテストや声による病気の判定等が行えるようです。 MacBook MacBook の発表です。iWatch より先に来ました。これはサプライズです。 これは薄い。しかも iPhone 同様、従来のシルバーに加え、スペースグレイとゴールドがラインナップとして追加されています。 Retine 12インチです。 2304*1440ピクセル。 ずっと気になっていたヒンジの部分まで、全てアルミニウムになりました。 キーボードのキーも全く一からの新しい設計。キータッチの感触がどうなっているのかが気になります。 キーのLEDが各キー毎に配置されています。 トラックパッドも圧力感知が実装され再設計されています。クリックする、タップする以外に強く押す、といったジェスチャーによるコントロールが可能になっているようです。 MacBook 初のファンレス。これは嬉しいですね。 ロジックボードが 67% 小さくなり、空いた部分に隙間なくバッテリーを敷き詰めています。この辺に Apple の本体を薄くすることへの執念を感じます。 ただ、これだけ効率よくバッテリーを配置しているにも関わらず、バッテリー持続時間は MacBook Air 11インチと変わらないみたいです。やはりそれだけ Retina は消費電力が激しいのでしょう。 電源、ディスプレイ、HDMI、USB、すべてのポートが USB-C 端子に統一。 新しい MacBook の外観サイズは 28.05cm × 19.65cm × 1.31cm(最大)、現行 MacBook Air 11インチ のサイズが 30cm × 19.2cm × 1.7cm(最大)です。 よって、奥行きは Air より 0.4cm ほど大きくなってしまいますが、幅はほぼ 2cm 小さくなり、画面サイズは 12インチと大きくなっています。 価格は $1299 $1599 の2つ。4月10日に発売。1ドルを120円で換算すると、155,880円、191,880円となりますが、Apple Store の日本の価格は 148,800円〜となっています。いずれにせよ円安が堪えますね。 4月10日発売。これは即買です。 Apple Watch Apple Watchです。 ファッション性をアピールしています。 前回の発表から大きな変更はありません。やはり気になるのが18時間というバッテリーの持続時間。iPhone と違い、毎日腕に着用する時計としてはいかがなものかと思います。 アルミ、ステンレス、とボディの素材と価格についての説明。ステンレスは$500オーバーです。高い。ゴールドの価格発表はないようです。ここらへんはクロージャーなのでしょう。 4月10日予約開始。24日発売。 まとめ サプライズは MacBook でした。Apple の ノートブック に関しては、今回の MacBook で完成してしまったのではないでしょうか。 少なくとも向こう5,6年は、マイナーアップデートもこのデザインで乗りきれるように、内部が設計されていると感じました。 また、この新しい MacBook の見た目はより薄く軽くなった Air なのですが、プロダクト名に Air が見当たりません。今回、既存の MacBook Air のアップデートは行われているようですが、今後は Air が消えていき、MacBook Pro と MacBook にラインナップが変わっていくのかもしれません。 iPhone 6 / 6 Plus の発売以来、販売不振の続く iPad に関しては Pro の発表はありませんでした。 今回は Apple Watch のためのイベントと思っていたら、MacBook のお披露目があり、嬉しい誤算でした。 Apple Watch は自分には不必要ですが、 MacBook は発売したら早速買い換えたいと思います。 この記事がみなさんのお役に立ちましたら、下記「Share it」よりブックマークやSNSで共有していただければ幸いです。

SQN:新作無料ゲームアプリ SQN の申請が承認されました。

3月3日に申請に出した SQN ですが、昨日3月6日に無事リリースが承認されました。 今回は1発で申請が通る自信があったのですが、期間も最短の3営業日での承認となりました。 リジェクトにならなかったのは良いニュースなのですが、今回あまりにも承認が早かったためリリースの準備が全く出来ていません。 あとは iTunes Connect でリリースボタンを押せば即座にリリースされるのですが、SQNのゲーム内容の詳細等の説明や、プロモーション活動もリリースにあわせてある程度行いたいと考えていますので、今しばらく時間をいただくことになるかと思います。 近日中にゲーム詳細を発表したときに、リリースに関してもふれるつもりでいますので、もう少しだけお待ちください。 この記事がみなさんのお役に立ちましたら、下記「Share it」よりブックマークやSNSで共有していただければ幸いです。

SQN:新作無料ゲームアプリ SQN が完成。アプリを申請しました。

昨年12月より開発を進めていたゲームアプリ SQN ですが、3月2日に完成し、昨日アプリの申請が無事完了いたしました。 まだ、Apple へのアプリの提出が完了しただけで、リリースが確定した訳ではありません。今回のアプリに関してはリジェクトになる要素はないはずですが、そこは Apple 次第というところでしょうか。 今回の SQN はアプリのレビュー通過後に即リリースをせず、リリースの承認がおりた後、あらためてリリース日を決定しようかと考えています。 現在、アプリのレビュー開始まで8営業日程度の時間を要しているようです。最短でリリース出来たとしても3月中旬あたりになるかと思いますので、いましばらくお待ちください。 SQNのゲーム内容の詳細に関しては、レビューが通過した段階で sirochro.com で公開したいと思います。 まとめ 当初は2ヶ月強の開発期間を予定しており、2015年1月末〜2月上旬リリース予定でしたが、年末から年始にかけ、プライベートで想定外の割り込みが発生したため、1ヶ月以上遅れが出てしまいました。 リリースが遅れる分、より楽しんでもらえる内容にブラッシュアップしていますので、ご期待いただければと思います。 また、以前よりお知らせでは何度も報告していましたが、今回の SQN は昨年登場した Apple の新言語 Swift で開発を行いました。 SQN リリース後には、アプリ開発時に得た Swift の知識や情報をこのサイトでも順次投稿していきますので、アプリとあわせて Swift の投稿記事もお楽しみいただければと思います。 SQN の審査結果に関しては分かり次第、随時サイトで報告したいと思います。 この記事がみなさんのお役に立ちましたら、下記「Share it」よりブックマークやSNSで共有していただければ幸いです。

Swift:iOS アプリで AdMob 広告を実装・表示する

Swift で開発中のプロジェクトへ AdMob を実装する方法を説明します。 一部 Apple公式、Google 公式で説明されている内容を含みますが、この説明を見るだけで AdMob が実装・表示できます。 iOSの無料アプリ開発時にお役立て下さい。 iOS アプリで AdMob 広告を実装・表示する SDK のダウンロード Google Developers から iOS版の Google Mobile Ads SDK をダウンロードし、Add-ons 以外のファイルを全て プロジェクトにドラッグし追加します。 フレームワークのインポート Project -> TARGET -> General -> Linked Frameworks and Libraries より「+」をクリックし、以下のフレームワークをプロジェクトにインポートします。 AdSupport AudioToolbox AVFoundation CoreGraphics CoreTelephony EventKit EventKitUI MessageUI StoreKit SystemConfiguration Bridge-Header.h の作成 AdMob の SDK は Objective-C で記述されています。Swift から Objective-C を実行するために Bridging-Header ファイルを作成します。 Xcode ウインドウの一番左下の「+」より New File… を選択します。 iOS -> Source -> Header File を選択し「Next」をクリック。 ファイル名を AdMob-Bridging-Header.h とし、プロジェクトフォルダの任意の場所(ここではプロジェクトルート直下)に追加します。 作成された AdMob-Bridging-Header.h ファイルの #define 行の後に以下の2行を追加します。 ヘッダーファイルへパスを追加 AdMob-Bridging-Header.h へのパスを追加します。 Project -> TARGET -> Build Settings -> Swift Compiler – Code Generation -> Objective-C Bridging Header の右側の欄へ、先ほど追加したヘッダーファイルまでのパスを定義します。(プロジェクトファイル内までのパスは $(SRCROOT)/$(PROJECT)/ となります) プロジェクトファイル直下に AdMob-Bridging-Header.h を作成した場合のパスの表記は以下のようになります。 Objective-C Linker Flags の設定 このままではエラーが出てしまいますので、続けて以下の Linker Flags を設定します。 Project -> TARGET -> BuildSettings -> Linking -> Other Linker Flags の右側の欄から「+」をクリックし -ObjC を追加します。 ViewController から AdMob を表示 AdMob を表示させたい ViewController のクラスに GADBannerViewDelegate を設定します。 GADBannerView を呼び出すためのファンクションを ViewController に追加します。ファンクション内の “your_id” の部分は AdMob で作成した広告ユニットの ID をセットしておきます。 view.didLoad() 内で GADBannerView インスタンスを作成し、addSubview すれば広告が表示されます。 上記の ViewController のソースコードは以下の通りとなります。 また、先ほど GADBannerViewDelegate を ViewController クラスに定義したので、広告表示完了やエラー等の取得は、以下のファンクションで行えます。 まとめ AdMob が Swift に対応してくれる日はいつになるのでしょうか。それまでは Bridge-Header を使用し実装を行う必要がありますね。 一度やってしまえば大したことはやってないので、ルーチン化して覚えておきましょう。 この記事がみなさんのお役に立ちましたら、下記「Share it」よりブックマークやSNSで共有していただければ幸いです。