メインコンテンツへスキップ
見出し画像

AntigravityでToDoアプリを作ってみた【Rails】(近道プロンプトも紹介)

    お疲れ様です、都内でエンジニアをしているshingoです。

    先日、CursorのAgent機能を使ってToDoアプリを作成してみましたが、今回はGoogleが2025年11月に公開した話題のAIエージェント「Antigravity」を使って同じものを作成してみます。

    Antigravityは、単なるコード補完ツールではなく、エンジニアのように「計画」し「実行」する自律型のエージェントです。Cursorと比較してどのような違いがあるのか、実際の開発フローを通してお伝えします。難しいことは書いていないので、非エンジニアの方にも参考になる内容だと思います。

    ちなみにAntigravityの公式サイトは以下です。

    また、今回作成するアプリケーション(Docker環境 + Rails 7.1 + ビジネスデザイン)を最小限の指示でスムーズに再現するための近道プロンプトを、「おまけ」として最後に紹介しているので、ぜひ使ってみてください。

    初期セットアップ

    早速、Antigravityを立ち上げます。 今回はあえて雑に、以下のような指示を出してみました。AIモデルはコスパの良さそうな「Claude Sonet 4.5」を選択。使えるモデルはCursorよりは少ないです。

    Docker環境でrailsでtodoアプリを作成してください。

    画像

    従来のチャットボット型AIであれば、即座にDockerfileのコードを吐き出し始めるところですが、Antigravityは違います。まずは「タスク計画」から始まります。

    ユーザーは「Docker環境でrailsでtodoアプリを作成してください」と依頼しています。日本語で、Docker環境でRailsを使ったTODOアプリケーションを作成することを求めています。
    
    これは複雑なタスクなので、task_boundaryを使用し、タスクの計画と実装を行う必要があります。
    
    まず、以下のステップが必要です:
    
    タスクの計画(task.md)を作成
    Docker + Railsの環境をセットアップ
    Railsアプリケーションを作成
    TODOアプリの機能を実装
    動作確認
    task_boundaryを使用し、まずはPLANNINGモードで開始し、実装計画を立てる必要があります。
    
    まず、task.mdを作成し、その後task_boundaryを設定します。

    実際に作成されたtask.mdは以下です(雑にコピペしただけなのでインデントとか崩れています)。

    プロジェクトセットアップ
     プロジェクト構造の確認
     Dockerファイルの作成(Dockerfile, docker-compose.yml)
     Rails環境のセットアップ
    TODOアプリケーション実装
     TODOモデルとコントローラーの作成
     データベースのセットアップとマイグレーション
     ビューの作成(一覧、作成、編集、削除)
     ルーティングの設定
    動作確認
     Docker環境でのアプリケーション起動確認
     CRUD機能の動作確認
     ドキュメントの作成

    その後さらに実行計画(Implementation Plan)が策定され、実装がスタートします。Cursorはいきなり実装が始まるので、ここは違うポイントです。

    gemのインストールやrails newコマンドで初期セットアップをしようとしますが、前のCursorのときと同様にrubyのバージョンが古いものが指定されました。このまま進めても良いのですが、Rejectします。

    画像

    URL付きで最新のバージョンを伝える必要があるので、以下のように指示をしました。

    rubyは4.0.1が最新ですよ https://www.ruby-lang.org/ja/downloads/releases/

    画像

    AIは素直に情報を受け入れ、最新バージョンでのセットアップに修正しました。

    「AIが自律的に動くが、人間が要所で舵取りをする」というペアプログラミング感が非常に心地よいです。

    アプリ実装

    本格的に実装に入っていきます。モデル、コントローラー、ビューの生成に入ります。

    画像

    途中、Gemfile.lockの更新が必要とのことで、「rm」コマンドを実行して良いか尋ねられました。自律モードを「Review-driven development(レビュー主導開発)」にしているので、コマンド実行の際は尋ねられます。

    画像

    DBセットアップ

    続いてDBをマイグレーションするタスクに入りました。

    途中、DBコンテナが起動していないということでエラーになりましたが、AI自身が原因を特定し、問題解決に動きます。

    コマンドの許可だけ求めてくるので、自分はOKがRejectを選択するだけです。とても楽です。

    画像


    アプリ起動・動作確認

    完成したらしく、アプリが勝手に起動し、自動でテストもしてくれるみたいです。

    画像

    Antigravityで簡単なアプリ作ったら、動作確認も自動でやってくれた pic.twitter.com/8XMpJeZZEA

    — shingo / エンジニアとAI (@sng_dev) February 7, 2026

    UI的にはかなりシンプルになりました。出来上がったのはRails標準のScaffold(足場)そのままの画面。 機能は完璧ですが、見た目は真っ白で飾り気がありません。

    画像

    以前Cursorで作ったときは、AIのセンスに任せたら独特な紫色のデザインになってしまった苦い記憶があります。今回はAntigravityに明確にオーダーを出してみます。

    画像
    Cursorに生成された悪趣味なデザイン

    デザインをカスタマイズする

    デザインをカスタマイズするために、以下の指示を出します。

    現在はシンプルなデザインなので、ビジネスで使える洗練されたデザインにしてください。

    画像


    デザインを改善する活動がスタートし、実行計画(Implementation Plan)が作成されます。

    画像

    Implementation Planは以下の通りです(雑にコピペしたのでインデントずれていますが)。
    色的にはブルー系になりそうです。

    TODOアプリ デザイン改善計画
    現在のRails scaffoldデフォルトデザインを、ビジネスで使える洗練されたUIに改善します。
    
    User Review Required
    デザインフレームワークとしてTailwind CSSを使用します:
    
    IMPORTANT
    
    Tailwind CSSの選定理由
    
    モダンで柔軟なユーティリティファーストCSS
    Rails 7.1との統合が容易
    カスタマイズ性が高く、プロフェッショナルなデザインを実現可能
    レスポンシブデザインのサポートが強力
    Proposed Changes
    デザインシステム
    [NEW] 
    app/assets/stylesheets/application.tailwind.css
    Tailwind CSSの設定ファイルを作成:
    
    カスタムカラーパレット(ビジネス向けのブルー・グレー基調)
    タイポグラフィの設定
    カスタムコンポーネントクラス
    [MODIFY] 
    Gemfile
    Tailwind CSS関連のgemを追加:
    
    tailwindcss-rails gem
    レイアウトとビュー
    [MODIFY] 
    app/views/layouts/application.html.erb
    アプリケーション全体のレイアウトを刷新:
    
    モダンなヘッダーナビゲーション
    レスポンシブコンテナ
    フッター追加
    グラデーション背景
    [MODIFY] 
    app/views/todos/index.html.erb
    TODO一覧画面の改善:
    
    カード型レイアウト
    グリッドシステムで整理
    完了状態の視覚的表現(バッジ、カラー)
    ホバーエフェクト
    アイコン付きアクションボタン
    [MODIFY] 
    app/views/todos/new.html.erb & edit.html.erb
    フォーム画面の改善:
    
    カード型フォームコンテナ
    スタイリッシュな入力フィールド
    プライマリーアクションボタン
    [MODIFY] 
    app/views/todos/_form.html.erb
    フォームパーシャルの改善:
    
    ラベルとフィールドのスタイリング
    エラーメッセージの視覚的表現
    チェックボックスのカスタムスタイル
    [MODIFY] 
    app/views/todos/show.html.erb
    詳細画面の改善:
    
    カード型詳細表示
    ステータスバッジ
    アクションボタンの配置改善
    デザインの特徴
    カラースキーム:
    
    プライマリー: ディープブルー(#1e40af)
    アクセント: インディゴ(#4f46e5)
    成功: グリーン(#10b981)
    警告: アンバー(#f59e0b)
    背景: グラデーション(グレー系)
    コンポーネント:
    
    カード: シャドウ、丸角、ホワイト背景
    ボタン: グラデーション、ホバーエフェクト、アイコン
    バッジ: ステータス別カラー
    フォーム: フォーカスリング、検証スタイル
    レスポンシブ:
    
    モバイルファースト設計
    タブレット・デスクトップ対応
    グリッドレイアウトの自動調整

    計画に「Proceed(承認)」を出すと、怒涛の勢いでtailwind.config.jsの作成やViewファイルの書き換えが始まりました。

    画像

    出来上がった画面を見て驚きました。 各パーツは角丸で優しく、マウスを乗せるとフワッと浮き上がるカードデザイン。全体的に淡いブルーを基調とした、清潔感のあるSaaSのような見た目になりました。

    画像
    画像

    流石に殺風景すぎたのでデザインを導入。
    Antigravityの手にかかれば5分くらいで完了です。 pic.twitter.com/FLA1ZN1Ual

    — shingo / エンジニアとAI (@sng_dev) February 7, 2026

    おわりに:Cursorと何が違うのか?

    今回、GoogleのAntigravityを使って一通り開発してみましたが、正直な結論を言うと、

    「機能面ではCursorのAgentモードと大差ない」

    というのが本音です。

    Cursorも進化しており、今やターミナル操作やブラウザ連携もこなせます。「自然言語でアプリが作れる」という点において、両者に決定的な能力差は感じられませんでした。

    強いて言うなら「スタイルの違い」

    あえて違いを挙げるなら、「開発スタイルの強制力」でしょうか。

    • Cursor:エディタベースなので、コードを書きながら「ここ直して」と会話する、流動的でスピーディな開発が得意です。

    • Antigravity: 最初にtask.mdを作らせ、計画(Planning)と実行(Implementation)を明確に分ける、構造化された開発プロセスを提示してきます。

    Antigravityは、「いきなりコードを書かせない」という点で、より「PM(プロジェクトマネージャー)兼エンジニア」的な振る舞いをすると感じました。

    AIに尋ねられる頻度としては、Cursorの方が気持ち少ないという具合です。ただしAntigravityは自律モードの設定を変更すればAI主体で動いてくれるので、そこの差はそこまで問題ない認識です。

    結論:どっちを使えばいい?

    現時点では、「慣れている方でいい」と言えます。

    すでにCursorのエコシステムに慣れ親しんでいるなら、無理に乗り換える必要はないと思います。

    ただ、Googleがこのツールを出してきたことで、他のGoogle系のツールとの連携が想定されます。将来的にはAntigravityが伸びてくる可能性があるので、今のうちから使って慣れておくのも有効だと思います。

    おまけ:今回の近道プロンプト

    おまけとして、ここまでの最終的な実装に効率よく到達するためのプロンプトを紹介します。

    ここまでの最終的な実装は、いくつかのエラーに遭遇して指示出し直してディレクションしながら辿り着いたものです。

    以下のプロンプトを使用することで、今回作成したアプリケーション(Docker環境 + Rails 7.1 + ビジネスデザイン)を最小限の指示でスムーズに再現できます。

    AIアシスタントに以下のプロンプトをそのままコピー&ペーストして指示してください。バージョンや用件は適宜ご自身のプロジェクトに合わせてご使用ください。

    環境構築とアプリケーションの初期化

    あなたは熟練したRuby on Railsエンジニアです。
    DockerとDocker Composeを使用して、以下の要件を満たすRailsアプリケーション開発環境を構築してください。
    
    ### 要件
    - **Rubyバージョン**: 4.0.1
    - **Railsバージョン**: 7.1系
    - **データベース**: PostgreSQL
    - **プロジェクト名**: `todo_app`
    
    ### タスク
    1. `Dockerfile`を作成してください。
       - ベースイメージ: `ruby:4.0.1`
       - 必要なパッケージ: `build-essential`, `libpq-dev`, `nodejs`, `yarn`, `libyaml-dev` (psych gemエラー回避のため重要)
    2. `docker-compose.yml`を作成してください。
       - `web`サービス(Rails)と`db`サービス(PostgreSQL 13以降)を定義
       - `web`サービスはポート3000を公開
       - データベース接続情報は環境変数で管理
       - `RAILS_ENV`は`development`に設定
    3. `Gemfile`を作成し、Rails 7.1を指定してください。
    4. `database.yml`をDocker環境(ホスト: `db`, ユーザー: `postgres`)に合わせて設定してください。
    5. `rails new . --database=postgresql --skip-bundle`コマンドをコンテナ内で実行してアプリを初期化してください。
    6. `Gemfile`に`tailwindcss-rails`を追加して`bundle install`を実行してください。
    
    出力として、作成・修正が必要な各ファイルの内容を提示してください。

    機能実装とデザイン適用

    環境構築が完了したら、続けて以下のプロンプトを入力してください。

    ありがとうございます。次にTODO機能を実装し、ビジネス向けの洗練されたデザインを適用してください。
    
    ### 機能要件
    1. **Scaffold生成**: `Todo`モデルを作成してください。
       - `title`: string
       - `description`: text
       - `completed`: boolean (デフォルト値: `false`を設定すること)
    2. **ルーティング**: ルートパス(`/`)を`todos#index`に設定してください。
    3. **マイグレーション**: データベースを作成し、マイグレーションを実行してください。
    
    ### デザイン要件(重要)
    デフォルトのScaffoldデザインではなく、以下の「ビジネス向けモダンデザイン」を適用してください。
    `app/assets/stylesheets/custom.css`を作成し、レイアウトと各ビューに適用してください。
    
    **デザイン仕様**:
    - **テーマカラー**: 
      - メイン: ディープブルー (#1e40af)
      - アクセント: インディゴ (#4f46e5)
      - 背景: 全体にブルー・パープル系のグラデーション (#667eea → #764ba2 )
    - **レイアウト**:
      - ヘッダー: 「Business Todo」ロゴと「New Todo」ボタンを含む白背景のヘッダー
      - コンテナ: 最大幅1200px、中央揃え
    - **UIコンポーネント**:
      - **カード**: 白背景、角丸、シャドウ付きのカードデザイン
      - **ボタン**: グラデーション背景、ホバーエフェクト付き
      - **バッジ**: 完了/未完了ステータスを表示するピル型バッジ(緑/黄色)
    - **ビュー構成**:
      - `index`: レスポンシブなグリッドレイアウト(カードをタイル状に配置)
      - `show`, `new`, `edit`: カードコンテナ内にフォームや詳細を表示
    
    ### タスク
    1. `Todo`のScaffold生成コマンドとマイグレーションファイルの修正(デフォルト値設定)。
    2. `config/routes.rb`の修正。
    3. `app/assets/stylesheets/custom.css`の作成(上記のデザイン仕様をCSS変数を使って実装)。
    4. `app/views/layouts/application.html.erb`の修正(カスタムCSS読み込み、共通ヘッダー追加)。
    5. `index`, `show`, `new`, `edit`, `_form`の各ビューファイルを、指定されたデザインに合わせて完全に書き換えてください。
    
    コードを示し、適用手順を説明してください。
    

    このプロンプトには、今回の開発で遭遇した以下の課題への対策が含まれています。

    1. libyaml-devの追加: Ruby 3.2以降のpsych gemのビルドエラーを防ぐため。

    2. DB接続設定: database.ymlをDockerのサービス名(db)に対応させる指示。

    3. デザインの具体化: 「きれいにしてください」ではなく、具体的なカラーコードやレイアウト構造(カード型、グリッド)を指定することで、期待通りの「ビジネス風デザイン」を一発で出力させます。

     
     
     
    Web系エンジニア。情報工学専攻卒。2022年にメーカーから転職しました。普段はRailsやTypeScript、AWSをフルスタックで触ってます。 コーヒーを飲みながらのんびりするのが好きです☕️ 最近はAIツールと遊んでいます。

    あなたへのおすすめ