FJCT_ニフクラ mobile backend(mBaaS)お役立ちブログ

スマホアプリ開発にニフクラ mobile backend(mBaaS)。アプリ開発に役立つ情報をおとどけ!

Swift SDKを使って認証機能をデモする(その1:SDKの導入と画面の説明)

f:id:mbaasdevrel:20210408142719p:plain

NCMBではSwift向けにSDKをリリースしています。最近ではiOSアプリを作る際にSwiftを利用することが増えていますので、その場合にはネイティブ言語で実装されているSwift SDKの利用をお勧めします。

そんなSwift SDKの使い方を知ってもらうためにも、ちょっとしたアプリ(認証アプリ)を作ってみました。徐々に機能を追加していきますので、Swift SDKの利用法をぜひ覚えてください。

Swift SDKの導入法

Swift SDKはCocoaPods向けに提供しています。Xcodeで新しいiOSプロジェクトを作ったら、Podfileを用意します。

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

target 'todoapp' do
  # Comment the next line if you don't want to use dynamic frameworks
  use_frameworks!

  # Pods for todoapp
  pod 'NCMB', :git => 'https://github.com/NIFCLOUD-mbaas/ncmb_swift.git'
end

そして pod install でSwift SDKをインストールします。

初期化について

現在、新規でiOSアプリを作成すると、InterfaceがSwiftUI、Life CycleがSwiftUI Appとなっています。この状態で作ると AppDelegate.swift はなく、 (アプリ名)App.swift というファイルが作られます。

この場合、まずSwift SDKを読み込みます。

import SwiftUI
import NCMB   // 追加

そして var body の上に @Environment を追加します。

@Environment(\.scenePhase) private var scenePhase // 追加
var body: some Scene {

最後に WindowGrouponChange を追加します。このonChangeの中で初期化処理を行います。

        WindowGroup {
            ContentView()
        }
        .onChange(of: scenePhase) { scene in
            switch scene {
            case .active:
                NCMB.initialize(applicationKey: "YOUR_APPLICATION_KEY", clientKey: "YOUR_CLIENT_KEY")
            }
        }

これで利用可能になります。

UIについて

デモアプリの画面は全部で3つです。メイン画面、ユーザ登録画面、ログイン画面になります。

メイン画面

f:id:mbaasdevrel:20210408142707p:plain

メイン画面はユーザ登録画面、ログイン画面へ遷移するボタンと、ログアウト、そしてログインしているユーザ情報を簡易的に表示します。

f:id:mbaasdevrel:20210408142719p:plain

ログインしていると表示が変わります。これはユーザ名とユーザのobjectIdになります。

ユーザ登録画面

f:id:mbaasdevrel:20210408142749p:plain

ユーザ登録はユーザ名とパスワードを入力する画面になります。登録するとメイン画面に戻ります。

ログイン画面

f:id:mbaasdevrel:20210408142758p:plain

ログイン画面も表示内容はユーザ登録画面と変わりません。ログインするとメイン画面に戻ります。

まとめ

NCMBを初期化したら、後は ContentView.swift にて実装を行います。次回の記事ではユーザ登録やログイン、ログアウト処理を実装します。

中津川 篤司

中津川 篤司

NCMBエヴァンジェリスト。プログラマ、エンジニアとしていくつかの企業で働き、28歳のときに独立。 2004年、まだ情報が少なかったオープンソースソフトの技術ブログ「MOONGIFT」を開設し、毎日情報を発信している。2013年に法人化、ビジネスとエンジニアを結ぶDXエージェンシー「DevRel」活動をスタート。