MaguyvaのKotlin対応: AndroidとJVMのコードグラフ
Kotlinはレシーバーやラムダに多くの配線を隠します。グラフがそれを取り戻します。
拡張子
.kt, .kts
Dartは1つの型を複数の構文に分散させます。クラスは1つの基底クラスを継承し、複数のインターフェースを実装し、with でミックスインの振る舞いを取り込めます。拡張メソッドはほかの場所で定義された型にメンバーを付け加え、名前付きコンストラクターや factory コンストラクターは、実際にどのクラスが生成されるかを隠します。テキスト検索は名前を見つけても、その背後の構造は見つけられません。
Maguyvaはその構造をエージェントに渡すため、ウィジェットから依存先のサービスまで変更の影響をたどれます。
Maguyvaは .dart ファイルに対応しています。クラス、ミックスイン、拡張は型として抽出されます。structural_search の functions プリセットは、関数、メソッド、ローカル関数、ラムダ、そして生成コンストラクター、const コンストラクター、factory コンストラクターを対象にします。シグネチャには省略可能な位置パラメーターと名前付きパラメーターのグループ、および static メンバーが記録され、定義名からは末尾の ? と ! が取り除かれます。
インポートは import、part、library ディレクティブを正規化し、show、hide、as 句を取り除きます。import 'package:http/http.dart' as http の後の http.get のように、インポートのプレフィックスを通した呼び出しはグラフに残ります。
レシーバーの型付けは、パラメーター、型付きおよび初期化済みの変数、ゲッター、そしてリスト、セット、イテラブルに対する for-in ループをたどり、var と dynamic は推論された型として扱います。継承されたメンバーを解決するときは、extends、implements、with 句をたどります。グラフには、インスタンス化、型参照、読み取りと書き込み、例外のエッジも記録されます。
CartRepository.addItem を呼び出しているのは誰で、どのウィジェットからか?」(find_symbol、次に dependency_search の incoming)PaymentGateway を実装しているクラスはどれか?」(dependency_search)get_task_context)map、where、forEach のようなコレクションのヘルパー、then や listen のような Future と Stream のメソッド、そして dart: ライブラリです。それらには text_pattern_search を使ってください。structural_search の結果では、ローカル関数やラムダがそれを含む呼び出し可能オブジェクトと重なることがあり、ゲッターとセッターはメソッドシグネチャとして表示されます。クイックスタートでリポジトリを接続し、互換性ページで対応マトリクスを確認してください。ほかのモバイルのコードベースについては、KotlinガイドとSwiftガイドをご覧ください。
最適な用途
エージェントワークフロー
エンジンの詳細
役立つMCPエントリーポイント
定義と参照が必要なときに、ウィジェット、リポジトリ、サービスのクラスで使ってください。
APIを変更する前に、リポジトリのメソッドやインターフェースに対してincomingのトラバーサルを使い、呼び出し元と実装クラスを確認してください。
「チェックアウトボタンが決済APIに届くまでの流れを追跡して」のようなプロンプトに使ってください。
関連ガイド
Kotlinはレシーバーやラムダに多くの配線を隠します。グラフがそれを取り戻します。
拡張子
.kt, .kts
Swiftでは、振る舞いはプロトコルとエクステンションに宿ります。エージェントには両方が見える必要があります。
拡張子
.swift