BLOGワンダープラネットの開発者ブログです。モバイルゲーム開発情報を発信。Swift今回のエンジニアブログを担当する村田です。今回は、とあるイベントで、すぐに試したい!と一目惚れした「Firebase」を触ってみたいと思います。Googleに買収されたモバイルバックエンドサービス(mBaaS)です。特徴としては、リアルタイムなデータ同期です。あるデバイスから送信したデータが、即時に他のデバイスにも反映されます。オフラインにも対応しており、オフライン中に送信しようとしたデータは内部で保持され、オンライン時にFirebaseへ反映されます。いう訳で、Firebaseの特徴を体験しやすいチャットを作成したいと思います。今回は、iOSアプリとしてチャットアプリを作成します。v2.2.0Firebaseの準備Firebaseの公式サイトはこちらです。Platformにあるのかなと思いましたが、統合はされておりません。UP」からアカウントを作成します。Plan」という無料のプランがあります。検証であればこちらのプランで充分です。サインインしたらDashboardでアプリを作成しましょう。URLは、実装時に使うので覚えておきましょう。作成したアプリを開いてみます。このようにデータが可視化されているのが特徴的です。今はまだデータがないので、空の状態ですが、、、Firebaseの準備はこれで完了です。SDKのダウンロードSDKは「DOCS」ページにあります。ちなみにiOSは、Objective-Cでの提供となります。Swiftで実装する場合は、Bridging機能が必要となります。アプリのUI作成それでは、SwiftでiOSアプリを作っていきます。iOSアプリ作成は今回メインではないので、すごくシンプルな画面構成とします。今回作成するアプリの画面イメージです。これらの部品をIBOutletでViewController.swiftに紐付けておくと、後の実装が楽です。View」に反映プロジェクト設定プロジェクト設定からFirebaseを動かすのに必要なFrameworkとライブラリを追加します。必要なものはこちらです。libicucore.dyliblibc++.dylibCFNetwork.frameworkSecurity.frameworkSystemConfiguration.frameworkダウンロードしたSDKを解凍し、Firebase.Frameworkをプロジェクトに追加します。必要なものを全て追加した設定がこちらです。flags"に-ObjCを追加します。SwiftからObjective-Cの呼び出しプロジェクトに1つ、Objective-Cファイル(.m)を作成しましょう。(ファイル名は適当に)作成時に、SwiftからObjective-Cを呼び出すのに必要なBridgingファイルの作成を聞かれますので作成します。作成したObjective-Cファイル(.m)は必要ないので削除します。XXXX-Bridging-Header.hファイルに以下の一文を記述します。これで、SwiftからFirebaseのクラス群を呼び出すことが可能です。データ反映まずは、TextFieldでreturnすると入力した内容をFirebaseに反映してみます。Nameにラベルを設定。"Guest"に0〜9をランダムで付与。}Firebaseとの処理は、Firebaseクラスを利用します。基本となる接続時のURLは、こちらです。ここでデータを見てみます。お分かりになりましたでしょうか?URLに付与した"chat1"と"posts"分、階層化されていますね。ちなみに、このように得られたmyRefは、先ほどのmyRootRefと同じところを指します。今回、Firebaseへ送信するデータは、JSONで表現するとこのようなDictionaryを配列で持たせます。これを実現したのが、このコードです。])childByAutoIdメソッドは、IDを自動生成するメソッドです。とあるパスの下に順次データを追加する場合は、このメソッドを使うと便利です。childByAutoIdメソッドはFirebaseクラスを返しますので、setValueメソッドでデータを設定(Firebaseへの送信)します。実行してデータを見てみます。入力した順にデータが格納されていますね。Viewに反映してみます。Firebaseからのデータ取得は、observeEventTypeメソッドを使います。引数は、イベントの種類です。.ChildAddedは、Childが追加された時、ここではチャットの入力データが反映されたときです。withBlockの引数は、FDataSnapshotクラスになります。Viewへ反映してます。.Valueは最初に呼ばれます。.ChildAddedと異なり、こちらは、NSNullかどうかのチェックをしております。指定したパスのデータが空でも.Valueの場合は呼ばれ、その場合はNSNullが格納されます。これで完成です!2つの端末で(またはシミュレーターを使ったりして)動かしてみると、リアルタイムなデータ同期が実感できるかと思います!まとめ現状、リアルタイムなデータ同期のサービスですが、これをイチから作ろうとすると大変です。SDKはiOSだけでなく、Androidも提供されています。APIも用意されているので、様々な言語から呼び出し利用できます。Firebaseがすごい!と思ったところは、サンプルプログラムの充実っぷりです。Chat」というサンプルを見たのですが、UIライブラリ「JSQMessagesViewController」をBridgingして利用し、LINEのようなチャットを作るこだわりはすごいです。まとめてを記述することができます。1.2のリリースが楽しみです。TkinterでGUIプログラミング今回エンジニアブログを担当します若原です。お願いい...2015-07-13【Unity】Missingがあるアセットを検索する今回担当させていただく大橋です。Unityで、Missing状態のプロ...2015-06-23Firebaseのoffline機能を使ってみよう!今回のエンジニアブログを担当する村田です。I/O...2015-06-12WatchKitでWatchAppからiPhone側のアプリを操作する今回のエンジニアブログ担当の近藤です。8のウィジェットをSwiftで実装してみた今回のエンジニアブログを担当します山下です。採用情報ワンダープラネットではモバイルゲーム開発者を募集しております。(S編)C/C++でネットワークプログラミングをやってみよう(2)スターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。