開発者向け
Kentico Cloud iOSSDKの紹介
By Martin Makarsky
AppleのiOSは、世界で2番目に人気のあるモバイルオペレーティングシステムであり、iOSユーザーがAndroidユーザーと比較してデバイスにはるかに多くを費やしていることは周知の事実です。 Appleのエコシステムデバイスにネイティブアプリを実装するという難しいプロセスを容易にするために、Swiftで記述されたKentico CloudSDKを作成しました。
Appleのデバイスの開発
Appleの開発スタックに精通していない人のために、Swiftと呼ばれる比較的新しいプログラミング言語があります。 Swiftは2014年に導入され、1年後にオープンソースになり、現在、最も急速に成長しているプログラミング言語の1つです。
Swiftは、複雑な対応するObjective-Cに取って代わり、C#、Java、JavaScriptなどの最新言語との類似性のおかげで、採用がはるかに簡単になっています。 AppleはXcodeと呼ばれる無料の統合開発環境を提供しているので、数分以内にプログラミングを開始できます。
Kentico Cloudのコンテンツを使用してiOSアプリを作成することは常に可能でしたが、すべてのネットワーク通信、クエリの作成、JSON応答の解析、モデルのマッピングなどを自分で処理する必要がありました。
しかし、ここでKentico Cloud Swift SDKを紹介します。このブログ投稿では、iOSアプリ(およびwatchOS、OS X、tvOS)にコンテンツを配信するためにKentico Cloud SwiftSDKを利用する方法を紹介します。
Kentico Cloud SwiftSDKの機能
Kentico Cloud Swift SDKは、コンテンツの取得、連絡先の追加、アクティビティの追跡に役立ちます。次のプロジェクトで使用できる機能はいくつかあります。
- コンテンツアイテムの取得
- コンテンツタイプの取得
- 分類法の取得
- 追跡活動
- 連絡先の追加
そして、最高のものは?ネットワークやオブジェクトマッピングなどの難しい作業をすべて行う必要はありません。これはすべてSDK自体によって行われます。 SDKをプロジェクトに統合する方法を示し、いくつかの基本的な使用法を見てみましょう。
プロジェクトへのSDKの追加
最も簡単な方法は、 Cocoapodsを介してパッケージをインストールすることです。 Cocoapodsは、Swift(およびObjective-C)の依存関係マネージャーです。これは、Javascriptの世界の.NETのNuGetまたはnpmに対応するものの一種です。ポッドファイルにポッドを追加するだけです:
そして、 podinstallを実行します。このコマンドは、プロジェクトに必要なすべての依存関係を持つKenticoCloudSDKを追加します。
タイプオブジェクトの作成
強く型付けされたオブジェクトへの独自の応答のマッピングは、サードパーティのサービスと統合する上で最大かつ最も退屈な部分の1つです。ただし、ほとんどの作業はSDK自体によって行われるため、強く型付けされたオブジェクトに何を格納するかを定義する必要があります。
たとえば、Kentico Cloudから記事を取得するとします。記事には、タイトル(Text要素)、アセット(Asset要素)、およびpostDate (Date&Time要素)があります。ここには2つのオプションがあります。
- 組み込みの要素タイプによって提供される強く型付けされたマッピングを使用する
- カスタムマッピングの使用
注:マッピングの両方の方法は、 ObjectMapperフレームワークを利用します。高度なマッピングが必要な場合は、ドキュメントを参照してください。
アイテムの入手と使用
アイテムを取得するには、プロジェクトIDを使用してDeliveryClientのインスタンスを作成し、getItem / getItemsメソッドにクエリを渡す必要があります。クエリを作成するには、次の2つのオプションがあります。
- 強く型付けされたオブジェクトクエリを使用できます。
- より高度なクエリの場合は、独自にクエリを作成できます。クエリを作成するプロセスは、Kentico CloudDeliveryのドキュメントと同じです。
最後のステップは、クラウドからアイテムを取得してアプリで使用することです。要求されたアイテムは、 完了ハンドラーに返されます。 Completionハンドラーは、受信したアイテムを含む単純なコールバックです。
単一アイテム、分類法、およびコンテンツタイプ
同様の方法で、単一のアイテム、複数のコンテンツタイプ、さらには分類法を取得できます。これらのオブジェクトを取得するためのその他の例は、GitHubのreadmeにあります。
モジュラーコンテンツの取得
アイテムにリンクされたモジュラーコンテンツが含まれている場合は、deliveryResponseオブジェクトから直接このコンテンツを取得できます。サーバーリクエストをさらに行う必要はありません。特定のタイプのコードネームを持つモジュラーコンテンツを取得できます。
デバッグ
アプリの開発中に、奇妙な動作が発生する場合があります。これを減らすために、DeliveryClientオブジェクトにデバッグフラグを渡すことができ、リクエストに関する追加のメッセージが出力に提供されます。オプションのenableDebugLoggingフラグを追加できます。
連絡先の追加とアクティビティの追跡
従来のWeb分析ツールとは異なり、Kentico Cloudは個々の訪問者を追跡し、彼らの活動の全体像を構築します。このSDKを使用すると、iOSデバイスでもユーザーを追跡できます。セッションを開始してカスタムアクティビティを追跡するか、連絡先を追加するだけです。
ここからどこへ行くか
SDKの機能と使用法の詳細については、公開されているGitHubリポジトリをご覧ください。機能が不足している場合は、ディスカッションフォーラムでお知らせいただくか、新しいGitHubの問題を作成してください。また、すべての機能を見つけることができるAPIリファレンスドキュメントもあります。
長引く質問はありますか?以下のフォーラムで回答してください。