Monday, November 2, 2026

AI Tools - AntiGravity・Kiroを使ってみよう

Last updated on:


AIの開発は加速しています。産業への応用も繰り広がり、手軽に使えるようになりました。システム開発においては、具体的な技術には差異がありますが、パターン化しやすい特徴があり、AIの適応性が優れているとも言えるでしょう。ここでは、AIツールを使ってアプリ開発をしてみます。

技術に関する疑問がありましたら、常にGoogleで答えを検索します。まずはGoogleのAIツールを試してみます。

Gemini Code Assistantは2026年6月18日をもってサポートが終了しました。代わりに、AntiGravityという新製品が公表されました。今回はAntiGravityを使ってJavaアプリを生成してみます。今でも多くの企業システムはJava言語で開発されています。



Google AntiGravity


AntiGravityインストール


この記事では、使われている統合開発環境(IDE)はKiro IDEです。Kiro IDEは、VS Codeに基づいて構築され、VS Codeと交換性を持つ開発ツールです。下記のリンクからダウンロードできます。


AntiGravityをKiro IDEで使えるため、AntiGravity拡張機能を導入する必要があります。

導入手順は以下の通りです。

  • Kiro IDEを起動します。
  • 左サイドバーにある拡張機能(Extensions)ボタンをクリックします。
  • 拡張機能検索ボックスにAntiGravityを入力して検索します。
  • 検索結果リストからAntiGravityを特定し、インストールボタンを押下します。



インストールが終わり次第、AntiGravityのアイコンが左サイドバーに現れます。

アイコンをクリックすると、下記の図に示したように、AntiGravityとの会話ボックスが出てきます。そこからメッセージを送ることができます。




新規アプリ作成


最初は、新規アプリを作成します。次のメッセージを送信しました。


「空のSpring Boot RESTアプリAppCreatedByAIを作成してください。」


AntiGravityは、主に次の流れで作業を進めます。

  • 作業ディレクトリーの確認
  • Javaやコンパイル環境等の確認
  • Spring Initializrでのアプリ作成
  • 作成後のアプリのダウンロード
  • アプリの動作確認

動作確認終了後、作成したファイル一式を提示します。

「Accept All」ボタンを押すと、アプリをワークスペースに配置してくれます。

AntiGravityは、タスクを実行する度に、許可を求める仕組みになっています。

途中に「Think [n]s」というメッセージがしばしば目に入ります。



アプリ以外、アプリ実行やテストのコマンドもチャットを経由して提供してくれます。

早速PowerShellを立ち上げ、コマンドでアプリの動作を確認してみました。


アプリの起動

コマンド:.\mvnw.cmd spring-boot:run




REST APIの呼び出し

コマンド:Invoke-RestMethod -Uri "http://localhost:8080/api/hello"




CRUD API一式作成


RESTアプリとは、何かの処理をしてDBへデータを書き込みしたり、DBから取得したデータを変換して提供したり、このような処理を集約したものです。

想定したケースは、Oracle DBの中にapp_usersテーブルがあり、そのテーブル向けの登録と、参照、更新、削除処理を行う一式のAPIを作成することです。とても簡易な機能ではありますが汎用性が高いものです。

この作業を通して、AntiGravityのプログラム設計力を検証したい考えもあります。

AntiGravityへ送られるメッセージについては、すべての情報を纏めた一通でも良いですが、的確に制御できるため、メッセージの粒度を下げ、複数に切り分けます。原則としては、1メッセージに、細分できない1タスクのみを取り込みます。


DDL作成

まず、テーブルのDDLを生成します。次のメッセージを送信します。


「app_usersテーブルのOracle DDLを作成してください。Oracleのバージョンは21Cを想定しています。
テーブルは次の4つカラムを含めています。
カラムid、NUMBER(19)型、Sequenceから値を取得します;
カラムname、VARCHAR2(100)型、必須かつ一意の項目です;
カラムemail、VARCHAR2(100)型、必須項目です;
カラムcreate_at、TIMESTAMP型、CURRENT_TIMESTAMPを付与します。」

結果としては、「schema-app-users.sql」ファイルを作成し、テーブルDDLに加えてカラムのコメントまでも生成してくれました。




DB接続情報

Oracle DBの接続情報は手動で「application.properties」ファイルに記入しておきます。未記入であれば、AntiGravityはあちこち探しに行きます。見つけたらその情報を抽出して「application.properties」に追記します。

spring.datasource.driver-class-name=oracle.jdbc.OracleDriver
spring.datasource.url=jdbc:oracle:thin:@localhost:1521/xepdb1
spring.datasource.username=demo
spring.datasource.password=xxxx


物理テーブル作成

DBで物理テーブルを作るために、下のメッセージを送信します。


「application.propertiesファイルの中にあるOracle DBの接続情報を用いて、app_usersテーブルを作成してください。」

AntiGravityは、まずテーブルが存在するか否かを確認します。(今回は新規作成なので、当然存在していません。)

確認が取れたら、先のステップで作成したSQLスクリプトを実行し、テーブルを作成します。



ここでは、作業はまだ終わっていません。

作成したテーブルにテストレコードを挿入したり検証も行います。

検証が終わったら、ロールバックし、テーブルを初期状態に戻します。

品質保証までやってくれました。




APIの作成

いよいよAPI作成の本番にきました。

次のメッセージを送信します。


「app_usersテーブル向けの登録と参照、更新、削除操作を行うREST API一式を作成してください。DBアクセス方式はJDBCにしてください。」

処理ごとにメッセージを分けてもいいですが、粒度は同じなので一つに纏めました。

AntiGravityは、概ね以下の順番に作業を進めます。

  • 構成確認
  • ファイル作成
  • コンパイル
  • テスト実施

各タスクを実行する前に、「このタスクを実行しても良いか」のような許可を得る質問をします。

実は、作成した全てのファイルを一回削除して、APIの再作成を試してみました。所詮、質問もしなく、時間も短縮して出来上げました。作業経験から学び、効率を高めていくことが期待できそうです。



作成済みのファイル一式を確認します。

パッケージやファイルの構成は以下の通りです。

- controller
AppUserController.java
- service
AppUserService.java
- repository
AppUserRepository.java
- model 
AppUser.java
- dto
AppUserRequest.java
AppUserResponse.java
- exception
GlobalExceptionHandler.java
DuplicateResourceException.java
ResourceNotFoundException.java

さすが、教科書のようなマルチレイヤーデザインですね。サービス層にトランザクションの宣言があることも確認できます。

作業メモを鑑みると、テスト実施にはAPIの異常系も検証しました。

品質のいいプログラムを仕上げてくれました。



Amazon Kiro


インフラもコード化に進めてきたクラウドは、AIツールが大活躍できる領域です。Amazonもいくつかの製品を提供しています。Q Developerはその中の一つです。ただし、Qもサポート終了を迎えました。2026年5月15日からは新規アカウントの作成はできなくなりました。既存のアカウントを持っていれば、まだ使えます。また、AWSのアカウントがあれば、コンソールでも利用可能です。

Kiroは、Amazonが推進している製品です。Kiro IDEを使っているなら、IDEに組み込み済みなので、右側のサイドバーからメッセージを送信できます。VS Codeの場合は、別途Kiro CLI拡張機能をインストール必要があります。

この記事では、Kiroを使ってLambda関数を作成してみます。Lambdaは主要なコンピューティングサービスの一つであり、業務ロジックが実装されるところです。

まず、DynamoDBにテーブルを作成するLambda関数を作成してみます。

「DynamoDB向けのMusicテーブルを作成するPython言語のLambda関数を生成してください。パーティションキーはArtist、ソートキーはSongTitleです。」

というメッセージを入力しました。



間もなく、作業を終えて、関数定義のあるPythonファイルを表示してくれました。

エラーハンドリングはお見事です。



続いて、テーブルへ新規レコードを登録する関数を作成します。

以下のメッセージを送信します。Python言語の指定も省きました。


「Musicテーブルにレコードを登録するLambda関数を作成してください。」


関数のコメントには呼び出し例も記されています。分かりやすいです。

コードの品質はもちろん、AWSへデプロイ際の要点や権限設定なども印象深いでした。


全てのソースコードはGitHubからダウンロードできます。


Google AntiGravityもAmazon Kiroも、完成度の高いプログラムを作成できます。効率を高めると同時にコストダウンも可能にしました。ついに、現在のシステム開発構図への影響を考え始めました。


No comments:

Post a Comment

AI Tools - AntiGravity・Kiroを使ってみよう

Last updated on: AIの開発は加速しています。産業への応用も繰り広がり、手軽に使えるようになりました。システム開発においては、具体的な技術には差異がありますが、パターン化しやすい特徴があり、AIの適応性が優れているとも言えるでしょう。ここでは、AIツールを使ってア...