本チュートリアルでは、Androidアプリ開発でhacoCMSを利用する方法を解説します。
本チュートリアルでは、以下の内容については前提とし、説明を省略します。
お持ちのhacoCMSアカウントの適当なプロジェクト(無ければ作成してください)に、記事APIを以下の設定で作成してください。APIの作成方法についてはhacoCMSのドキュメントをご確認ください。
記事(任意)entries
リスト形式
下記の表と画像を参照
| # | フィールドタイプ | フィールド名(任意) | フィールド ID |
|---|---|---|---|
| 1 | テキストフィールド | タイトル | title |
| 2 | テキストフィールド | 概要 | description |
| 3 | リッチテキスト | 本文 | body |
APIスキーマの設定画面は以下のようになります。

記事APIを作成できたら、適当な記事をいくつか作成してみましょう。コンテンツの作成方法についてはhacoCMSのドキュメントをご確認ください。
build.gradleファイルのdependenciesに以下を追加してください。
implementation "com.hacocms.sdk:hacocms:1.0.0"
SDKがhacoCMSのAPIにアクセスできるようにするために、Android Manifest内でインターネットアクセス権限を追加してください。
<uses-permission android:name="android.permission.INTERNET" />
val client = HacoCmsClient.create(
baseUrl = "BASE_URL",
accessToken = "ACCESS_TOKEN",
projectDraftToken = "PROJECT_DRAFT_TOKEN"
)
APIから返ってきた結果をmapingするために、 ApiContentからextendsされたObjectを作ります。
data class ExampleContent(
@SerializedName("id") override val id: String,
@SerializedName("createdAt") override val createdAt: LocalDateTime,
@SerializedName("updatedAt") override val updatedAt: LocalDateTime,
@SerializedName("publishedAt") override val publishedAt: LocalDateTime?,
@SerializedName("closedAt") override val closedAt: LocalDateTime?,
@SerializedName("title") val title: String?,
@SerializedName("description") val description: String?,
@SerializedName("body") val body: String?,
) : ApiContent
APIから返ってきた結果を処理するためのコードです。
// Gets list content.
client.getList<ExampleContent>(endpoint = "/example")
// Gets list content with custom query.
client.getList<ExampleContent>(
endpoint = "/example",
query = QueryParameters(limit = LIMIT, offset = OFFSET)
)
// Gets content by content id.
client.getContent<ExampleContent>(endpoint = "/example", id = "CONTENT_ID")
// Gets single object.
client.getSingle<ExampleContent>(endpoint = "/single")
// Gets including draft.
client.getListIncludingDraft<ExampleContent>(
endpoint = "/example",
query = QueryParameters(search = "abc", s = listOf("createdAt".sq().desc())),
)
サンプルコードをGitHubで公開していますので、適宜ご活用ください。