取り組みの背景 — 2026年のARアプリ開発とAntigravity
拡張現実(AR)技術は急速に進化しており、2026年のAR/VR市場規模は2,200億ドルを超えると予測されています。スマートフォンのカメラとセンサーが高性能化し、ARアプリはゲーム・教育・小売・医療など幅広い分野で活用されるようになりましました。
これまでARアプリの開発には高い専門知識が必要でしたが、AntigravityのようなAI IDEを活用することで、初心者でも効率的にARアプリを作れる時代になっています。Antigravityは自然言語の指示からコードを生成し、複雑なARの実装をサポートしてくれます。
ここではiOS向けのARKitとAndroid向けのARCoreを使ったARアプリ開発の基礎を、Antigravityのワークフローとともにわかりやすく解説します。
この記事で学べること:
- ARKit(iOS)とARCore(Android)の違いと選び方
- Antigravityを使ったAR開発環境のセットアップ
- シンプルなARオブジェクト表示アプリの実装手順
- AIエージェントを活用した効率的なデバッグとリファクタリング
ARKit と ARCore の基礎知識
ARアプリを開発するには、まずiOSとAndroidでフレームワークが異なることを理解する必要があります。
**ARKit(iOS)**は、AppleがiPhone・iPad向けに提供するARフレームワークです。SwiftUIやRealityKitと連携し、LiDARセンサー(対応機種)を活用した高精度な空間認識が特徴です。iPhone 12以降では平面検出や物体認識の精度が大幅に向上しています。
**ARCore(Android)**は、GoogleがAndroid向けに提供するARフレームワークです。Motion Tracking・Environmental Understanding・Light Estimation の3つの主要機能を備え、幅広いAndroid端末で動作します。Jetpack ComposeやSceneViewライブラリとの組み合わせで開発効率が高まります。
どちらを選ぶかは開発ターゲットによります。iOS専用なら ARKit、Android専用なら ARCore、クロスプラットフォームを目指すなら Flutter + ARCore/ARKit の組み合わせが有力です。
環境準備
iOS(ARKit)の場合
ARKit開発に必要な環境を揃えましょう。
- macOS 14 (Sonoma) 以上
- Xcode 16 以上(App Store または Apple Developer サイトからダウンロード)
- iPhone 12 以上(実機テスト推奨・シミュレーターはAR非対応)
- Apple Developer アカウント(無料でも実機インストール可能)
- Antigravity(antigravity.google からインストール)
Android(ARCore)の場合
- Android Studio Meerkat 以上
- ARCore 対応 Android 端末(Pixel 6 以上推奨)
- Android SDK 28 (Android 9) 以上
- Antigravity(同上)
Antigravityを起動後、プロジェクトフォルダを開き、チャットパネルで「ARKit プロジェクトをセットアップしてください」と入力するだけで、必要な設定ファイルや依存関係を自動で提案してもらえます。
ARKit(iOS)入門 — はじめてのARオブジェクト表示
プロジェクト作成
Xcodeで新規プロジェクトを作成します。テンプレートは「Augmented Reality App」を選択し、Content Technology を「RealityKit」、Interface を「SwiftUI」に設定します。
Antigravityのチャットに以下のように入力してみましょう。
ARKitとRealityKitを使って、床面に赤い箱(Box)を置くシンプルなARアプリを作ってください。
タップした位置にオブジェクトが表示されるようにしてください。
Antigravityはプロジェクトの構成を読み取り、適切なコードを生成します。
生成されたコードの例
以下はAntigravityが生成する典型的なコードです。
import SwiftUI
import RealityKit
import ARKit
struct ContentView: View {
var body: some View {
ARViewContainer()
.edgesIgnoringSafeArea(.all)
}
}
struct ARViewContainer: UIViewRepresentable {
func makeUIView(context: Context) -> ARView {
let arView = ARView(frame: .zero)
// 平面検出の設定
let config = ARWorldTrackingConfiguration()
config.planeDetection = [.horizontal]
arView.session.run(config)
// タップジェスチャーを追加
let tapGesture = UITapGestureRecognizer(
target: context.coordinator,
action: #selector(Coordinator.handleTap(_:))
)
arView.addGestureRecognizer(tapGesture)
context.coordinator.arView = arView
return arView
}
func updateUIView(_ uiView: ARView, context: Context) {}
func makeCoordinator() -> Coordinator {
Coordinator()
}
class Coordinator: NSObject {
var arView: ARView?
@objc func handleTap(_ gesture: UITapGestureRecognizer) {
guard let arView = arView else { return }
let location = gesture.location(in: arView)
// レイキャストで実際の平面上の位置を取得
let results = arView.raycast(
from: location,
allowing: .estimatedPlane,
alignment: .horizontal
)
guard let firstResult = results.first else { return }
// 赤い箱のエンティティを作成
let mesh = MeshResource.generateBox(size: 0.1) // 10cm の箱
let material = SimpleMaterial(color: .red, isMetallic: false)
let boxEntity = ModelEntity(mesh: mesh, materials: [material])
// アンカーを作成して ARView に追加
let anchor = AnchorEntity(world: firstResult.worldTransform)
anchor.addChild(boxEntity)
arView.scene.addAnchor(anchor)
}
}
}
// プレビュー
#Preview {
ContentView()
}このコードをXcodeに貼り付け、実機で実行するとカメラが起動し、床をタップすると赤い箱が出現します。Antigravityに「このコードにフィジックス(物理演算)を追加してください」と続けて依頼することで、機能を段階的に拡張できます。
ARCore(Android)入門 — Jetpack Compose でARを実装する
依存関係の追加
AndroidプロジェクトのAntigravityチャットで以下のように入力します。
ARCoreとSceneViewを使って、検出した水平面にAndroidのマスコット(Jetpackくん)のような
3Dモデルを置けるARアプリを作ってください。
build.gradle の設定も含めて教えてください。
Antigravityがbuild.gradleへの追記内容と実装コードをまとめて提案します。
build.gradle(Module: app)
dependencies {
// ARCore
implementation("com.google.ar:core:1.42.0")
// SceneView(ARCoreをJetpack Composeで使いやすくするライブラリ)
implementation("io.github.sceneview:arsceneview:2.2.1")
// Kotlin Coroutines
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:1.8.0")
}ARCoreを使ったメインActivity
import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.runtime.*
import androidx.compose.ui.Modifier
import io.github.sceneview.ar.ARScene
import io.github.sceneview.ar.node.AnchorNode
import io.github.sceneview.math.Position
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
ARAppScreen()
}
}
}
@Composable
fun ARAppScreen() {
// タップで配置されたノードを管理するリスト
val nodes = remember { mutableStateListOf<AnchorNode>() }
ARScene(
modifier = Modifier.fillMaxSize(),
nodes = nodes,
planeRenderer = true, // 平面検出を表示
onCreate = { arSceneView ->
// シーンの初期設定
arSceneView.lightEstimationMode =
com.google.ar.core.Config.LightEstimationMode.ENVIRONMENTAL_HDR
},
onSessionUpdated = { _, _ -> },
onTap = { hitResult ->
// タップ位置にアンカーを作成
val anchorNode = AnchorNode(
engine = TODO(), // SceneViewのengineを渡す
anchor = hitResult.createAnchor()
).apply {
isEditable = true
// ここで3Dモデルを子ノードとして追加する
}
nodes.add(anchorNode)
}
)
}実際の実装ではSceneViewの最新ドキュメントに合わせた調整が必要ですが、Antigravityに「エラーを修正して動くようにしてください」と依頼するだけで、バージョン差異の問題も解決してもらえます。
AntigravityのAIエージェントを活用したAR開発ワークフロー
プロンプト例と活用テクニック
AR開発でAntigravityを最大限に活用するには、具体的な指示が効果的です。以下の例を参考にしてください。
平面検出の改善を依頼する場合:
現在の ARKit 実装を改善してください。
・水平面だけでなく垂直面(壁)にも検出してオブジェクトを置けるようにする
・検出された平面をグリッド表示で可視化する
・平面が見つかるまでの案内テキストを画面中央に表示する
デバッグを依頼する場合:
ARScene で以下のエラーが出ています。原因と修正方法を教えてください。
[エラーメッセージをそのままペースト]
AntigravityはARKitやARCoreのドキュメントに精通しており、エラーの原因を的確に診断します。
効率的な開発サイクル
AntigravityでARアプリを開発する際は、以下のサイクルが効果的です。
- まず動くものを作る — Antigravityに「シンプルなAR平面検出アプリを作って」と依頼し、基本機能を素早く実装
- 実機でテスト — ARの挙動は実機でしか確認できないため、こまめに実機テストを実施
- 改善を依頼 — 実機テストで気になった点をAntigravityに伝え、段階的に改善
- 機能追加 — 基本動作が安定したら「次にアニメーションを追加して」などと機能を積み上げる
iOS開発の基礎から学びたい場合は、Antigravityを使ったiOS・Swift入門ガイド も参考にしてください。クロスプラットフォームでARアプリを開発したい場合は、Antigravity × Flutter モバイル開発ガイド も合わせて参照することをおすすめします。
よくあるエラーと対処法
AR開発特有のトラブルとその解決方法をまとめます。
「カメラの許可が得られない」エラー (iOS)
Info.plist に NSCameraUsageDescription が記載されていないケースがほとんどです。Antigravityに「カメラ許可の設定を追加して」と依頼すると、Info.plistの修正方法を案内してもらえます。
平面が検出されない
照明が暗い環境や模様のない白い壁・床は検出が難しいです。「テクスチャのある床でテストする」か、ARWorldTrackingConfigurationの environmentTexturing を .automatic に設定してみましょう。
ARCoreが「デバイス非対応」とエラー表示
ARCore対応デバイスか確認してください。エミュレーターはAR非対応です。Antigravityに「デバイス対応チェックのコードを追加して」と依頼すると、ArCoreApk.requestInstall() を使った適切なチェック処理を生成してもらえます。
オブジェクトがすぐに消える or 浮いて見える
アンカーの作成タイミングや worldTransform の使い方に問題がある場合が多いです。Antigravityに「オブジェクトが安定して床に置かれるように修正して」と伝えると的確な修正提案を受けられます。
AR開発のベストプラクティス
ARアプリを快適に動かすためのポイントをいくつか紹介します。
- ポリゴン数を抑える: 3Dモデルは軽量に保つ。ARは常にカメラ映像を処理するため、負荷が高いです。目安はモデルあたり10,000ポリゴン以下
- オクルージョンを活用する: ARKitの人物オクルージョン機能を使うと、人がARオブジェクトの前を通った際にリアルに遮蔽される
- ライティングを合わせる: Light Estimation を有効にして、現実の照明条件にARオブジェクトの影を合わせると没入感が増す
- フォールバックUIを用意する: AR非対応デバイスやカメラ権限が拒否された場合の代替表示を必ず実装する
- UXガイダンスを入れる: 「床に端末を向けてゆっくり動かしてください」などの案内テキストで初回ユーザーを誘導する
まとめ
AntigravityとARKit/ARCoreを組み合わせることで、AR開発の入門ハードルは大幅に下がっています。以下のステップを参考にスタートしてみてください。
- Antigravityをインストールし、iOSまたはAndroidのARプロジェクトを作成する
- チャットで「シンプルなAR平面検出アプリを作って」と指示して基本形を作る
- 実機でテストし、気になる点をAntigravityに伝えて改善する
- 機能を段階的に追加し、自分だけのARアプリに育てていく
AR/VR市場の成長とAI IDEの進化が重なるいま、ARアプリ開発はソロ開発者にとって大きなチャンスです。まずは小さなプロトタイプを動かすことから始めてみましょう。
より高度なiOSアプリ開発ノウハウを深めたい方には、Antigravity × Xcode 26 × iOS 26 実践ガイド もおすすめです。WWDC 2026で発表された最新機能とAntigravityの連携について詳しく解説しています。