ページ内ナビ
概要
MoyaはAlamofireの上にAPI抽象化レイヤーを構築するSwiftライブラリです。endpointをenumとTargetTypeで表現し、URL・HTTP method・parameter encoding・sample dataを1か所へ集め、実通信とstubを同じprovider APIから扱えます。
特徴と向いている用途
公式資料に基づく紹介・実機未検証 · 内容確認日:
主な特徴
API endpointをenumとTargetTypeで型として定義する
各endpointをenum caseとして列挙し、baseURL、path、method、task、headers、sampleDataをTargetTypeへ実装します。request定義を画面やserviceごとのad hocなURL組み立てから分離できます。
出典:[3]
MoyaProviderから実通信とstubを同じ呼び出し形で扱う
MoyaProvider<Target>へtargetを渡してrequestし、successではResponse、failureではMoyaErrorを受け取ります。sampleDataとendpoint設定を使うことで、network層のtest stubも同じTargetTypeを基準に組み立てられます。
出典:[3]
向いている用途
導入前の確認
参考にした公式資料
- [1]Moya/Moya — GitHub repository(2026-10-06)
- [2]Moya 15.0.3 — Readme(2026-10-06)
- [3]Moya 15.0.3 — Basic Usage(2026-10-06)
- [4]Moya 15.0.3 — Package.swift(2026-10-06)
- [5]Moya 15.0.3 release(2026-10-06)
- [6]Moya MIT license(2026-10-06)
編集部からの補足
複数API endpointのURL・method・parameter・headerを型で揃えたいiOSアプリに向きます。latest releaseは15.0.3で公開から時間が経っているため、現在のSwift/XcodeとAlamofire解決をCIで確認してから採用してください。
3ステップで試す
- 1
Moya 15.0.3をSwiftPM dependencyへ追加する
確認済みのlatest GitHub releaseを固定して追加します。Moya targetはAlamofire 5系へ依存します。
.package(url: "https://github.com/Moya/Moya.git", exact: "15.0.3") - 2
TargetTypeでAPI endpointを定義する
公式Basic Usageに沿ってURL・path・method・task・sampleDataを1つのtyped targetへまとめます。
import Moya enum MyService { case zen } extension MyService: TargetType { var baseURL: URL { URL(string: "https://api.myservice.com")! } var path: String { "/zen" } var method: Moya.Method { .get } var task: Task { .requestPlain } var headers: [String: String]? { nil } var sampleData: Data { Data("ok".utf8) } } - 3
MoyaProviderからrequestする
providerを保持した状態でrequestし、success/failureがMoyaのResultとして返ることを確認します。
let provider = MoyaProvider<MyService>() provider.request(.zen) { result in print(result) }
成長
成長の推移 · 直近30日
15,353 Stars
推移データを蓄積中です。
開発アクティビティ
直近90日・週次
- Commit(直近30日)
- 0
- Open PR
- 19
開発アクティビティを蓄積中です。
Built with
カテゴリとタグ
GitHubデータ
関連情報
関連記事を投稿するこのOSSの使い方や活用事例をMarkdownで投稿できます。管理者が承認した後に公開されます。
あわせて探訪
- DeviceKit4,733 Stars
共通タグ 3件 · 共通カテゴリ 2件 · 同じ言語
UIDeviceをvalue typeで補完し端末model・family・simulator・battery・hardware capabilityを判定する
Swift - Flutter179,343 Stars
共通タグ 3件 · 共通カテゴリ 2件
Dartの一つのcodebaseからmobile・web・desktop UIを構築するcross-platform SDK
Dart - React Native126,797 Stars
共通タグ 3件 · 共通カテゴリ 2件
React componentをnative UIへ描画するmobile framework。0.87.1とframework-first導線を整理
C++ - Expo52,566 Stars
共通タグ 3件 · 共通カテゴリ 2件
React NativeアプリをAndroid・iOS・Webへ一つのprojectから展開する
TypeScript - SDWebImage25,612 Stars
共通タグ 3件 · 共通カテゴリ 2件
非同期downloadとmemory/disk cacheでUIKitのnetwork画像表示を管理する
Objective-C - http4k2,791 Stars
共通タグ 3件 · 共通カテゴリ 2件
HTTP serviceをKotlin functionとしてserve・consume・testする
Kotlin
情報の誤りを報告
掲載内容に誤りや古い情報があればお知らせください。