cybozu developer network

カテゴリー内の他の記事

kintone iOS SDK

このツールは、現在推奨されていません。

Index

はじめに

2019年2月にリリースされた、「kintone iOS SDK」について紹介します。
今回リリースされた「kintone iOS SDK」により、SwiftやObjective-Cでより簡単にkintone REST APIを実行することができます。

また、「kintone iOS SDK」は以前リリースした「kintone Node.js SDK」や同時期にリリースされている「kintone Java SDK」と同じ設計思想で設計、実装されています。
そのため、言語による違いは存在しますが、
認証やコネクション、クラス、メソッドなど各所で同様に宣言することが可能です。

GitHub

https://github.com/kintone-labs/kintone-ios-sdk/

ドキュメント

https://kintone-labs.github.io/kintone-ios-sdk/

今回は、kintone iOS SDKの導入方法と実行を、サンプルを用いて説明します。
開発はXcodeで行います。実行できる環境でお試しください。

Xcode

https://developer.apple.com/jp/xcode/

ご注意事項

  • ソースコードの変更および再配布、商用利用等はライセンスに従ってご利用可能です。

導入方法

swiftのライブラリ導入方法はパッケージマネージャーか、自身でソースコードをビルドする方法があります。
今回はXcodeの「Single View App」プロジェクトで、パッケージマネージャーを使用して導入方法を紹介します。
「sample_project」という名前でプロジェクトを作成してください。

createProject.png

Xcode > Preferences > Locationsでコマンドラインツールを下図のように設定します。

command-line-tools.png

インストール

Cocoapods

主要なパッケージマネージャーの1つです。
Cocoapods自体のインストールは公式サイトを参考にご自身で設定してください。

https://cocoapods.org/

プロジェクトが保存されているディレクトリで以下のコマンドを実行しPodfieを作成してください。

以下のサンプルを参考に、Podfileを修正してください。

下記コマンドを実行することでXcodeプロジェクト内にSDKがインストール可能です。

コマンド実行後、ディレクトリ内に拡張子が「sample_project.xcworkspace」のファイルが生成されます。
このファイルをXcodeで開き、一度ビルドするとワークスペース内でSDKが使用可能になります。

Carthage

CarthageはHomebrewからインストール可能です。
GitHubのドキュメントを参考にご自身でインストールしてください。

https://github.com/Carthage/Carthage

プロジェクトが保存されているディレクトリにCartfileを作成してください。

Cartfileに以下のように記述してください。

Cartfileの編集が完了したら下記のコマンドを実行しライブラリをダウンロードします。

ダウンロードが完了するとSample_project/Carthage/Build/iOSフォルダ内に以下の3つのframeworkが作成されます。

  • FBLPromises.framework
  • Promises.framework
  • kintone-ios-sdk.framework

作成されたframeworkファイルをプロジェクトにインポートする必要があります。
下図を参考にインポートしてください。

Carthage001.png

サンプル

ドキュメントのQuickstartにも掲載されている簡単なサンプルコードを用いて、実行方法とレスポンスについて説明していきます。
サンプルコードでは、kintoneアプリからレコードを1件取得する機能を実装しています。
準備として、kintoneアプリを作成し、下表をもとにフィールド追加、APIトークン(必要なアクセス権=閲覧)を作成してください。

フィールドタイプ フィールドコード
文字列 (1行) text

サンプルコード(ファイル名:ViewController.swift)

下記のサンプルコードをコピーし、「sample_project」内の「ViewController.swift」を書き換えてください。
APIトークン、認証情報、サブドメイン、アプリIDはご自身の環境に合わせて書き換えてください。

実行

Xcode上で左上の「▶︎」マークをクリックするか、⌘ + R で実行してください。

レスポンスの例

リクエストが成功すると、下記のようなレスポンスが返ってきます。

response.png

サンプルコード解説

Authentication

サンプルコード18~23行目についての解説です。
この部分では、kintoneに接続するための、認証方法について定義します。

Authenticationクラスがあり、パスワード認証、APIトークン認証、Basic認証を設定できます。
認証の優先度は以下のとおりです。(参考:kintone REST APIの共通仕様
1.パスワード認証
2.APIトークン認証
※セッション認証はkintone iOS SDKでは実装できません。

パスワード認証

APIトークン認証

Basic認証

Connection

26行目のConnectionクラスでは、接続について設定できます。
接続先のドメイン情報と、先ほど作成した認証情報を使ってkintone環境に接続します。

Record

最後に、29~42行目についてです。

この部分は、実際にkintoneのREST APIを実行する処理です。
サンプルでは、レコードを1件取得するために、RecordクラスのgetRecord関数を使用しています。

getRecord(appID, recordID)

パラメータ

名称 データタイプ 必須 説明
appID Integer アプリID
recordID Integer レコード番号

Recordクラスには、後述の通り、レコード1件取得以外にも、様々な関数が用意されています。

その他の機能について

Recordクラス

先ほどのサンプルコードで使用した関数が定義されているクラスです。
アプリのレコードに対し、取得、登録、更新、削除、ステータスの変更を行う関数や、
コメントの取得、登録、削除を行う関数が実装されています。
実装されている関数の例として、下記の関数が実装されています。

  • getRecord
  • getRecords
  • addRecord
  • addRecords
  • updateRecords
  • deleteRecords
  • updateRecordStatus
  • getComments
  • addComment
  • deleteComment

他にもさまざまな関数が用意されています。詳細はドキュメントをご確認ください。

Recordクラスについて

https://kintone-labs.github.io/kintone-ios-sdk/reference/record/

BulkRequestクラス

複数のアプリに対して、同時に複数のAPIをリクエストできます。
BulkRequestで使用できる関数は下記のドキュメントをご覧ください。

BulkRequestクラスについて

https://kintone-labs.github.io/kintone-ios-sdk/reference/bulk-request/

また、BulkRequestを実行する際は下記のことに注意してください。

  • BulkRequestを実行し、レスポンスを取得する際は、execute関数を実行する。
  • 一度に実行できる関数は、excecute関数を抜き、20個まで。

BulkRequestサンプル

Appクラス

アプリの情報を取得する関数が定義されているクラスです。
アプリの閲覧権限が必要です。
実装されている関数については下記のドキュメントをご覧ください。

Appクラスについて

https://kintone-labs.github.io/kintone-ios-sdk/reference/app/

Appサンプル

型について

kintone iOS SDKでは、各APIのレスポンスに独自の型を利用しています。
それぞれコンストラクタや利用できるメソッドが違うのでリファレンスをよく確認してご利用ください。

https://kintone-labs.github.io/kintone-ios-sdk/reference/model/app/app/app-model/

おわりに

iOSやMacOSのアプリ開発において、kintone REST APIを実行しやすくなりました。
この機会にkintone iOS SDKをご活用ください。

このTipsは、2019年2月版 kintoneで確認したものになります。

記事に関するフィードバック

記事のコメント欄は記事に対するフィードバックをする場となっております。
右の記事フィードバックのためのガイドを参照してコメントしてください。
記事のリンク切れなど、気になる点がある場合も、こちらのフォームからフィードバックいただけますと幸いです。

サインインしてコメントを残してください。