跳到正文
cccskills
免费在 GitHub 公开

android-api-client

Retrofit + OkHttpを使用したAPIクライアント実装のベストプラクティスを提供する。「API実装」「APIクライアント」「Retrofit」「OkHttp」「ネットワーク」と言われたら使う。

中文简介正在准备中。当前显示原文说明。

查看安装方法

包含的文件(2)

  • SKILL.md3.3 KB
  • REFERENCE.md40.1 KB

SKILL.md(原文)

安装前可以查看交给 AI 代理的指令内容。

Android APIクライアント実装ガイドライン

Retrofit + OkHttpを使用したAPIクライアント実装のベストプラクティス。

クイックリファレンス

技術スタック

// Retrofit + OkHttp + Kotlinx Serialization
implementation("com.squareup.retrofit2:retrofit:2.9.0")
implementation("com.squareup.retrofit2:converter-kotlinx-serialization:2.9.0")
implementation("com.squareup.okhttp3:okhttp:4.12.0")
implementation("com.squareup.okhttp3:logging-interceptor:4.12.0")
implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.6.0")

アーキテクチャ

UI Layer (ViewModel)
    ↓
Domain Layer (UseCase / Repository Interface)
    ↓
Data Layer (Repository Implementation → API Service → OkHttpClient)

API Service定義

interface ApiService {
    @GET("users")
    suspend fun getUsers(@Query("page") page: Int): List<UserDto>

    @GET("users/{id}")
    suspend fun getUser(@Path("id") userId: String): UserDto

    @POST("users")
    suspend fun createUser(@Body request: CreateUserRequest): UserDto
}

エラーハンドリング(ApiResult型)

sealed interface ApiResult<out T> {
    data class Success<T>(val data: T) : ApiResult<T>
    data class Error(val error: ApiError) : ApiResult<Nothing>
}

sealed class ApiError {
    data class HttpError(val code: Int, val message: String) : ApiError()
    data class NetworkError(val cause: Throwable) : ApiError()
    data object Unauthorized : ApiError()
    data object Timeout : ApiError()
}

安全なAPI呼び出し

suspend fun <T> safeApiCall(apiCall: suspend () -> T): ApiResult<T> {
    return try {
        ApiResult.Success(apiCall())
    } catch (e: HttpException) {
        ApiResult.Error(ApiError.HttpError(e.code(), e.message()))
    } catch (e: IOException) {
        ApiResult.Error(ApiError.NetworkError(e))
    }
}

Repository実装パターン

class UserRepositoryImpl @Inject constructor(
    private val apiService: ApiService,
    private val userMapper: UserMapper
) : UserRepository {

    override suspend fun getUser(id: String): Result<User> {
        return safeApiCall { apiService.getUser(id) }
            .map { userMapper.toDomain(it) }
            .toResult()
    }
}

含まれるセクション

  1. 基本構成 - 技術スタック、アーキテクチャ
  2. Retrofit + OkHttp構成 - API Service、OkHttpClient、カスタムInterceptor
  3. エラーハンドリング - ApiResult型、ApiError sealed class、safeApiCall
  4. Repository層との連携 - 実装パターン、DTO変換、キャッシュ戦略
  5. 認証・トークン管理 - TokenProvider、リフレッシュ付きAuthenticator
  6. OpenAPI Generator - 設定、仕様例、カスタマイズ
  7. テスタビリティ - MockWebServer、Repositoryテスト、Fake実装
  8. ベストプラクティス - 設計原則、チェックリスト、アンチパターン

詳細ガイドライン

詳細は REFERENCE.md を参照してください。

评价

还没有评价。欢迎分享你的使用感受。

评论

无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。

还没有评论。来写第一条吧。

提交后会立即公开。请勿填写邮箱、电话等个人信息。URL 最多 2 个。

0 / 1000 字

此表单受 reCAPTCHA 保护,适用 Google 的隐私权政策和服务条款。

同一仓库的技能

Androidプロジェクトのアーキテクチャ設計を支援。プロジェクト特性に応じてMVI/MVVM/シンプルComposeから最適なパターンを提案し、パッケージ構造の設計と既存プロジェクトの分析を行う。

中文简介正在准备中。当前显示原文说明。

xtone/ai_development_tools32026年10月16日 更新

Firebase Crashlyticsのスタックトレースを解析し、トリアージ分類→根本原因分析→修正提案を出力するスキル。/crash-analyze コマンド、クラッシュ解析、スタックトレース分析、ANR分析、Crashlytics、クラッシュレポート、またはFirebase crashに関連するリクエストで使用される。クラッシュ対応のワークフローを標準化し、対応品質と速度を向上させる。ANR/Non-fatal/Fatal全タイプ対応。

中文简介正在准备中。当前显示原文说明。

xtone/ai_development_tools32026年10月16日 更新

Android data layer implementation guide. Provides comprehensive patterns for Room Database (Entity, DAO, Migration), DataStore (Preferences), Repository layer design, and common pitfalls. Use when implementing local data storage, cache strategies, or data source integration in Android projects.

中文简介正在准备中。当前显示原文说明。

xtone/ai_development_tools32026年10月16日 更新

重要: ユーザーがAndroidテスト実行をリクエストした場合、常にこのスキルを最初に使用してください。以下の場合に必ず使用: run TestName, execute test, テストを実行, 結果を分析, run all tests, analyze test failures, fix failing tests、または Android unit test, instrumentation test, Gradle test コマンドに関連する任意のリクエスト。./gradlew test や Bash コマンドを直接使用しないでください - 常にこのスキルに委譲してください。Multi-variantプロジェクト、JAVA_HOME セットアップ、一般的なテストパターンに対応しています。

中文简介正在准备中。当前显示原文说明。

xtone/ai_development_tools32026年10月16日 更新

Jetpack ComposeでUIを実装する時に参照するコーディングガイドライン。 「Android UI」「Compose」「Jetpack」「画面実装」「UIコンポーネント」「レイアウト」と言われたら使う。 Android/Kotlin UI実装のベストプラクティス、アンチパターン、実装パターンを提供する。

中文简介正在准备中。当前显示原文说明。

xtone/ai_development_tools32026年10月16日 更新

非同期処理のバックエンドとフロントエンドを実装する際のベストプラクティスをまとめたスキルです。非同期処理が必要なWebサービスのフロントエンドおよびバックエンドを実装する際に利用されます。

中文简介正在准备中。当前显示原文说明。

xtone/ai_development_tools32026年10月16日 更新

查看 xtone 的全部技能

报告此技能的问题