読者です 読者をやめる 読者になる 読者になる

酢ろぐ!

カレーが嫌いなスマートフォンアプリプログラマのブログ。

iOSアプリにFirebaseを導入する

iPhone

Firebaseにはいくつかのサービスがあって、それぞれがライブラリの形でCocoaPodsに提供されています。CocoaPods経由でインストールすることができるのでPodfileに1行追記するだけで済みます。

Firebaseを導入する

Firebase | App success made simple」でログインして、プロジェクトを作成します。

GoogleService-Info.plistをプロジェクトにコピーします。

f:id:ch3cooh393:20161205115324p:plain

Podfile

pod initでPodfileを生成します。

pod 'Firebase'

を追加します。

# Uncomment this line to define a global platform for your project
platform :ios, '9.0'

target 'nerutomo' do
  # Comment this line if you're not using Swift and don't want to use dynamic frameworks
  use_frameworks!

  # Pods for nerutomo

  pod 'Firebase'
  
  target 'nerutomoTests' do
    inherit! :search_paths
    # Pods for testing
  end

end

post_install do |installer|
    installer.pods_project.targets.each do |target|
        target.build_configurations.each do |config|
            config.build_settings['SWIFT_VERSION'] = "3.0"
        end
    end
end

ソースコード

アプリの起動時にFIRApp.configure()を実行することで内部の初期化処理がおこなわれます。

import UIKit
import Firebase

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

    var window: UIWindow?

    func application(_ application: UIApplication, 
        didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {

        FIRApp.configure()

        return true
    }

    //...
}

以上で導入できます。

Xamarin.Formsでタブ表示させるためにTabbedPageを使う

Xamarin

メモです。この記事で作成したプロジェクトを流用しています。

タブ表示させる

MyTabbedPage.xamlを追加します。

MyTabbedPage.xaml

<?xml version="1.0" encoding="UTF-8"?>
<TabbedPage xmlns="http://xamarin.com/schemas/2014/forms" 
    xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
    xmlns:local="clr-namespace:RealmSample"  
    x:Class="RealmSample.MyTabbedPage">

    <NavigationPage Title="tab1">
        <x:Arguments>
            <local:RealmSamplePage Title="page title"/>
        </x:Arguments>
    </NavigationPage>

</TabbedPage>

MyTabbedPage.xaml.cs

using Xamarin.Forms;

namespace RealmSample
{
    public partial class MyTabbedPage : TabbedPage
    {
        public MyTabbedPage()
        {
            InitializeComponent();
        }
    }
}

App.xaml.cs

using Xamarin.Forms;

namespace RealmSample
{
    public partial class App : Application
    {
        public App()
        {
            InitializeComponent();

            MainPage = new MyTabbedPage();
        }

        //...
    }
}

実行結果

実行しました。

f:id:ch3cooh393:20170109000914p:plain

Xamarin.Formsで詳細ページへドリルダウンさせるNavigationPageを使う

Xamarin

メモです。この記事で作成したプロジェクトを流用しています。

ページナビゲーションをおこなう

ListViewの項目を選択すると詳細ページにドリルダウンさせたいです。

ナビゲーションページ(iOSでのいうところのUINavigationController、Xamarin.Formsではなんて呼ぶんだろう)に入れたい場合、App.xaml.csでこう実装しました。

using Xamarin.Forms;

namespace RealmSample
{
    public partial class App : Application
    {
        public App()
        {
            InitializeComponent();

            MainPage = new NavigationPage(new RealmSamplePage());
        }

        //...
    }
}

ページ側ではNavigation.PushAsyncを実行します。

using Xamarin.Forms;

namespace RealmSample
{
    public partial class RealmSamplePage : ContentPage
    {
        public RealmSamplePage()
        {
            InitializeComponent();

            //...

            listView.ItemSelected += (object sender, SelectedItemChangedEventArgs e) =>
            {
                this.Navigation.PushAsync(new DetailPage());
            };
        }

        void AddAction(object sender, System.EventArgs e)
        {
            //...
        }
    }
}

実行結果

実行してみました。

f:id:ch3cooh393:20170109002522p:plain