<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>FreeStyleVision</title>
	<atom:link href="https://freestyle.nvo.jp/feed" rel="self" type="application/rss+xml" />
	<link>https://freestyle.nvo.jp</link>
	<description>ネクストビジョン社員による情報配信を行っているブログです。</description>
	<lastBuildDate>Wed, 11 Nov 2026 02:24:56 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1.4</generator>

<image>
	<url>https://freestyle.nvo.jp/__wp__/wp-content/uploads/2025/10/cropped-FSV_icon-32x32.png</url>
	<title>FreeStyleVision</title>
	<link>https://freestyle.nvo.jp</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>コスパ最強モデル！Claude Haiku 5.5について</title>
		<link>https://freestyle.nvo.jp/archives/7452?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=%25e3%2582%25b3%25e3%2582%25b9%25e3%2583%2591%25e6%259c%2580%25e5%25bc%25b7%25e3%2583%25a2%25e3%2583%2587%25e3%2583%25ab%25ef%25bc%2581claude-haiku-5-5%25e3%2581%25ab%25e3%2581%25a4%25e3%2581%2584%25e3%2581%25a6</link>
		
		<dc:creator><![CDATA[sumikawah]]></dc:creator>
		<pubDate>Wed, 11 Nov 2026 02:24:55 +0000</pubDate>
				<category><![CDATA[技術情報]]></category>
		<category><![CDATA[生成AI]]></category>
		<guid isPermaLink="false">https://freestyle.nvo.jp/?p=7452</guid>

					<description><![CDATA[<p>Claude Haiku 5.5とは Claude Haiku 5.5は、Anthropicが2026年10月7日にリリースしたClaude 5.5シリーズの小型モデルです。 高速な応答性能と低コストを両立しており、要約 [&#8230;]</p>
<p>The post <a href="https://freestyle.nvo.jp/archives/7452">コスパ最強モデル！Claude Haiku 5.5について</a> first appeared on <a href="https://freestyle.nvo.jp">FreeStyleVision</a>.</p>]]></description>
										<content:encoded><![CDATA[<h3 class="wp-block-heading">Claude Haiku 5.5とは</h3>



<p class="wp-block-paragraph">Claude Haiku 5.5は、Anthropicが2026年10月7日にリリースしたClaude 5.5シリーズの小型モデルです。</p>



<p class="wp-block-paragraph">高速な応答性能と低コストを両立しており、要約や分類、コーディング支援などの日常的なタスクに適したモデルとして提供されています。Haiku 5.5はAnthropic史上最も高速かつ低コストな小型モデルとして位置付けられています。</p>



<h3 class="wp-block-heading">Claude Haiku 5.5の特徴</h3>



<h4 class="wp-block-heading">1. 高速な応答速度</h4>



<p class="wp-block-paragraph">Haiku 5.5は応答速度を重視したモデルです。</p>



<p class="wp-block-paragraph">そのため、</p>



<ul class="wp-block-list">
<li>チャット形式での質問</li>



<li>要約</li>



<li>ドキュメント作成</li>



<li>コーディング支援</li>
</ul>



<p class="wp-block-paragraph">などの軽量なタスクを短時間で処理できます。</p>



<h4 class="wp-block-heading">2. 優れたコストパフォーマンス</h4>



<p class="wp-block-paragraph">Claude Haiku 5.5の大きな特徴の一つがコストパフォーマンスの高さです。</p>



<p class="wp-block-paragraph">Anthropicの発表によると、Claude Haiku 5.5の料金は入力100万トークンあたり0.35ドル、出力100万トークンあたり1.75ドルとなっており、前世代のHaiku 4.5と比較して約75％のコスト削減が実現されています。</p>



<p class="wp-block-paragraph">また、上位モデルであるSonnet 5.5と比較すると、入力コスト・出力コストともに大幅に低く設定されているため、日常的な利用や大量のリクエストを伴う開発業務に適しています。</p>



<figure class="wp-block-table"><div class="scrollable-table"><table class="has-fixed-layout"><thead><tr><th>モデル</th><th>入力料金（100万トークンあたり）</th><th>出力料金（100万トークンあたり）</th></tr></thead><tbody><tr><td>Claude Haiku 4.5</td><td>$1.00</td><td>$5.00</td></tr><tr><td><span class="bold-red">Claude Haiku 5.5</span></td><td><span class="bold-red">$0.25</span></td><td><span class="bold-red">$1.25</span></td></tr><tr><td>Claude Sonnet 5.5</td><td>$3.00</td><td>$15.00</td></tr></tbody></table></div></figure>



<h4 class="wp-block-heading">3. Sonnet 5.5との比較</h4>



<p class="wp-block-paragraph">Claude 5.5ファミリーには上位モデルとしてSonnet 5.5があります。</p>



<p class="wp-block-paragraph">比較すると、</p>



<h5 class="wp-block-heading">Haiku 5.5が向いている用途</h5>



<ul class="wp-block-list">
<li>要約</li>



<li>ドキュメント作成</li>



<li>軽量なコーディング</li>



<li>コードレビュー</li>



<li>日常的な質問</li>
</ul>



<h5 class="wp-block-heading">Sonnet 5.5が向いている用途</h5>



<ul class="wp-block-list">
<li>大規模リファクタリング</li>



<li>複雑な設計</li>



<li>エージェント開発</li>



<li>高度な推論を伴うタスク</li>
</ul>



<p class="wp-block-paragraph">ベンチマーク上ではSonnet 5.5の方が高性能ですが、コストは高くなります。簡単な作業であればHaiku 5.5で十分対応できるケースが多く、コスト効率に優れています。&nbsp;</p>



<h3 class="wp-block-heading">まとめ</h3>



<p class="wp-block-paragraph">Claude Haiku 5.5は、高速性・低コスト・十分な性能を兼ね備えたモデルです。</p>



<p class="wp-block-paragraph">特に、</p>



<ul class="wp-block-list">
<li>簡単なコーディング</li>



<li>ドキュメント作成</li>



<li>要約</li>



<li>情報整理</li>
</ul>



<p class="wp-block-paragraph">といった日常業務では十分な性能を発揮します。</p>



<p class="wp-block-paragraph">AI利用コストを抑えながら開発効率を向上させたい場合に、有力な選択肢の一つといえるでしょう。</p>



<p class="wp-block-paragraph"></p><p>The post <a href="https://freestyle.nvo.jp/archives/7452">コスパ最強モデル！Claude Haiku 5.5について</a> first appeared on <a href="https://freestyle.nvo.jp">FreeStyleVision</a>.</p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>【i-Reporter】i-Repo Gateway連携の完了メッセージ</title>
		<link>https://freestyle.nvo.jp/archives/7388?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=%25e3%2580%2590i-reporter%25e3%2580%2591i-repo-gateway%25e9%2580%25a3%25e6%2590%25ba%25e3%2581%25ae%25e5%25ae%258c%25e4%25ba%2586%25e3%2583%25a1%25e3%2583%2583%25e3%2582%25bb%25e3%2583%25bc%25e3%2582%25b8</link>
		
		<dc:creator><![CDATA[arakawas]]></dc:creator>
		<pubDate>Fri, 11 Sep 2026 00:35:30 +0000</pubDate>
				<category><![CDATA[技術情報]]></category>
		<category><![CDATA[i-Reporter]]></category>
		<guid isPermaLink="false">https://freestyle.nvo.jp/?p=7388</guid>

					<description><![CDATA[<p>はじめに i-ReporterのGatewayには、クラスター値を更新する前に確認メッセージを表示する機能と、処理完了後に完了メッセージを表示する機能が用意されています。今回の製造対応では、これまで利用したことがなかった [&#8230;]</p>
<p>The post <a href="https://freestyle.nvo.jp/archives/7388">【i-Reporter】i-Repo Gateway連携の完了メッセージ</a> first appeared on <a href="https://freestyle.nvo.jp">FreeStyleVision</a>.</p>]]></description>
										<content:encoded><![CDATA[<h2 class="wp-block-heading">はじめに</h2>



<p class="wp-block-paragraph">i-ReporterのGatewayには、クラスター値を更新する前に確認メッセージを表示する機能と、処理完了後に完了メッセージを表示する機能が用意されています。<br>今回の製造対応では、これまで利用したことがなかった完了メッセージ表示機能を初めて活用することになったため、実装にあたり確認メッセージ表示機能とあわせて動作や設定方法を調査しました。</p>



<h2 class="wp-block-heading">Gateway連携の確認・完了メッセージとは？</h2>



<p class="wp-block-paragraph">これまでGatewayを実行した際にメッセージを表示できるのはエラー発生時のみでしたが、2026年2月18日にリリースされた「Gateway 2.7.260200」からは、処理が正常に完了した場合にもメッセージを表示できるようになりました。<br>また、誤操作によるクラスター値の意図しない更新を防ぐため、反映前に確認メッセージを表示する機能も追加されました。</p>



<h2 class="wp-block-heading">検証環境</h2>



<p class="wp-block-paragraph">・i-Repo Gateway：2.8.260700<br>　※2.7.260200以上が必要<br>・i-Reporter for Windows：6.2.26020<br>　※・6.2.26020以上が必要<br>　　・iOS版アプリの場合は「8.2.26020」以上が必要</p>



<h2 class="wp-block-heading">事前準備</h2>



<p class="wp-block-paragraph">【i-Reporter帳票】<br>Gatewayの実行ボタンのみを設定した帳票定義を用意します。</p>



<figure class="wp-block-image size-full is-resized"><a href="https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/09/image-10.png"><img fetchpriority="high" decoding="async" width="573" height="364" src="https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/09/image-10.png" alt="" class="wp-image-7425" style="width:483px;height:auto" srcset="https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/09/image-10.png 573w, https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/09/image-10-300x191.png 300w" sizes="(max-width: 573px) 100vw, 573px" /></a></figure>



<p class="wp-block-paragraph">【Gateway実行プログラム】<br>帳票定義で「Gateway実行ボタン」をクリックした際に実行される、jsonとPythonのプログラムを用意します。<br>≪確認メッセージ設定情報≫<br>　・メッセージタイトル：確認メッセージ<br>　・メッセージ内容：確認メッセージを実行してもよろしいでしょうか？<br>≪完了メッセージ設定情報≫<br>　・メッセージタイトル：完了メッセージ<br>　・メッセージ内容：Gatewayの実行を完了しました<br>　・背景色コード：251,154,12<br>　・タイトル文字色コード：26,150,226<br>　・メッセージ文字色コード：205,83,179<br>　・表示時間：3秒</p>



<h2 class="wp-block-heading">確認メッセージ表示検証</h2>



<p class="wp-block-paragraph">【検証手順】<br>①帳票上の「Gateway実行ボタン」をクリックする</p>



<figure class="wp-block-image size-large"><a href="https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/09/image-7.png"><img decoding="async" width="1024" height="480" src="https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/09/image-7-1024x480.png" alt="" class="wp-image-7422" srcset="https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/09/image-7-1024x480.png 1024w, https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/09/image-7-300x141.png 300w, https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/09/image-7-768x360.png 768w, https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/09/image-7.png 1226w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<p class="wp-block-paragraph">②Gatewayで通信を行う画面が一瞬表示される</p>



<figure class="wp-block-image size-large"><a href="https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/09/image-11.png"><img decoding="async" width="1024" height="618" src="https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/09/image-11-1024x618.png" alt="" class="wp-image-7427" srcset="https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/09/image-11-1024x618.png 1024w, https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/09/image-11-300x181.png 300w, https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/09/image-11-768x464.png 768w, https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/09/image-11.png 1232w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<p class="wp-block-paragraph">③Gatewayの通信画面から確認メッセージに切り替わる</p>



<figure class="wp-block-image size-large"><a href="https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/09/image-12.png"><img loading="lazy" decoding="async" width="1024" height="500" src="https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/09/image-12-1024x500.png" alt="" class="wp-image-7428" srcset="https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/09/image-12-1024x500.png 1024w, https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/09/image-12-300x147.png 300w, https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/09/image-12-768x375.png 768w, https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/09/image-12.png 1232w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<p class="wp-block-paragraph">【検証結果】<br>Gatewayの実行ボタンをクリックすると即座に確認メッセージが表示されるため、サイクルタイムが短い運用でも十分活用できると感じました。<br>また、確認メッセージが表示されている間は、i-Reporterアプリ本体のボタンを含む他の操作は行えず、「はい」「いいえ」の選択のみが可能となります。そのため、利用者に確実な確認を促し、意図しない操作を防止する仕組みとして有効です。<br>一方で、確認メッセージのタイトルやメッセージ内容の変更は可能でしたが、フォントサイズやダイアログの大きさ、ボタンの表示内容などのレイアウトに関する設定は行えないため、利用する際は標準的なメッセージ画面の範囲内で運用を検討する必要があります。</p>



<h2 class="wp-block-heading">完了メッセージ表示検証</h2>



<p class="wp-block-paragraph">【検証手順（確認メッセージ表示検証の続き）】<br>①帳票上の確認メッセージの「はい」をクリックする<br>　※「いいえ」をクリックすると、元の画面に戻ります</p>



<figure class="wp-block-image size-large"><a href="https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/09/image-12.png"><img loading="lazy" decoding="async" width="1024" height="500" src="https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/09/image-12-1024x500.png" alt="" class="wp-image-7428" srcset="https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/09/image-12-1024x500.png 1024w, https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/09/image-12-300x147.png 300w, https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/09/image-12-768x375.png 768w, https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/09/image-12.png 1232w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<p class="wp-block-paragraph">②帳票上部に完了メッセージが表示される</p>



<figure class="wp-block-image size-large"><a href="https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/09/image-13.png"><img loading="lazy" decoding="async" width="1024" height="381" src="https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/09/image-13-1024x381.png" alt="" class="wp-image-7430" srcset="https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/09/image-13-1024x381.png 1024w, https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/09/image-13-300x112.png 300w, https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/09/image-13-768x286.png 768w, https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/09/image-13.png 1232w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<p class="wp-block-paragraph">③完了メッセージ設定情報の表示時間で設定した時間（今回の検証では3秒）の経過後、<br>　メッセージは徐々に薄くなり、自動で消える<br>　※iOS版アプリでは設定した時間が経過すると一瞬で消えます</p>



<figure class="wp-block-image size-large"><a href="https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/09/image-14.png"><img loading="lazy" decoding="async" width="1024" height="337" src="https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/09/image-14-1024x337.png" alt="" class="wp-image-7431" srcset="https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/09/image-14-1024x337.png 1024w, https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/09/image-14-300x99.png 300w, https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/09/image-14-768x253.png 768w, https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/09/image-14.png 1232w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<p class="wp-block-paragraph">【検証結果】<br>完了メッセージは確認メッセージと異なり、背景色やタイトル文字色、メッセージ文字色を自由に設定できます。そのため、GatewayでDB更新を実行する場合のように、処理結果が帳票上に直接反映されず利用者から見えにくいケースでも、処理完了を通知する手段として活用できると感じました。<br>また、表示時間を「0」に設定した場合は、「×」ボタンをクリックするまでメッセージが表示され続けるため、通知を確実に認識してもらいたい場合にも有効です。<br>一方で、メッセージの表示位置やサイズは変更できず、常に帳票上部へ横長の形式で表示されるという制約があるため、利用する場合は表示位置を考慮しての帳票レイアウトを検討する必要があります。</p>



<h2 class="wp-block-heading">まとめ</h2>



<p class="wp-block-paragraph">確認メッセージの表示中は「はい」「いいえ」以外の操作ができなくなるため、利用者の誤操作の防止に有効であり、完了メッセージは帳票上では結果が見えにくいGateway処理の実行完了を通知する手段に有効であることがわかりました。<br>ただし、どちらのメッセージ機能も表示位置やサイズなどに制約があるため、活用する場合にはメッセージ表示を考慮した帳票レイアウトを検討する必要があるとともに、今後のバージョンアップで追加設定できるようになることを期待します。</p><p>The post <a href="https://freestyle.nvo.jp/archives/7388">【i-Reporter】i-Repo Gateway連携の完了メッセージ</a> first appeared on <a href="https://freestyle.nvo.jp">FreeStyleVision</a>.</p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>どのカラムにインデックスを貼るべきか？SQLチューニングのベストプラクティス</title>
		<link>https://freestyle.nvo.jp/archives/7403?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=%25e3%2581%25a9%25e3%2581%25ae%25e3%2582%25ab%25e3%2583%25a9%25e3%2583%25a0%25e3%2581%25ab%25e3%2582%25a4%25e3%2583%25b3%25e3%2583%2587%25e3%2583%2583%25e3%2582%25af%25e3%2582%25b9%25e3%2582%2592%25e8%25b2%25bc%25e3%2582%258b%25e3%2581%25b9%25e3%2581%258d%25e3%2581%258b%25ef%25bc%259fsql%25e3%2583%2581%25e3%2583%25a5</link>
		
		<dc:creator><![CDATA[marukor]]></dc:creator>
		<pubDate>Wed, 09 Sep 2026 04:21:57 +0000</pubDate>
				<category><![CDATA[技術情報]]></category>
		<category><![CDATA[PostgreSQL]]></category>
		<category><![CDATA[sql]]></category>
		<guid isPermaLink="false">https://freestyle.nvo.jp/?p=7403</guid>

					<description><![CDATA[<p>はじめに SQLを書いていて「このクエリ、なんか遅いな」と感じたとき、一番最初に疑うべきはインデックスだと思っています。今日はそのインデックスについて、実際にローカルでDBを立てて手を動かしながら、どこに貼るのがベストプ [&#8230;]</p>
<p>The post <a href="https://freestyle.nvo.jp/archives/7403">どのカラムにインデックスを貼るべきか？SQLチューニングのベストプラクティス</a> first appeared on <a href="https://freestyle.nvo.jp">FreeStyleVision</a>.</p>]]></description>
										<content:encoded><![CDATA[<h2 class="wp-block-heading">はじめに</h2>



<p class="wp-block-paragraph">SQLを書いていて「このクエリ、なんか遅いな」と感じたとき、一番最初に疑うべきはインデックスだと思っています。今日はそのインデックスについて、実際にローカルでDBを立てて手を動かしながら、どこに貼るのがベストプラクティスなのかを検証していこうと思います。</p>



<p class="wp-block-paragraph">結論から言うと、インデックスは「WHERE・JOIN・ORDER BYで使われる列」に貼るのが基本で、それ以外の場所にむやみに貼ると逆に遅くなることすらあります。この感覚を、実際の実行計画を見ながら確認していきます。</p>



<h2 class="wp-block-heading">1. まずはローカルにDB環境を作る</h2>



<p class="wp-block-paragraph">今回はDockerでPostgreSQLを1本立てて検証します。手元にDockerさえあれば数分で用意できます。</p>



<pre class="wp-block-syntaxhighlighter-code">docker run --name pg-index-demo -e POSTGRES_PASSWORD=postgres -p 5432:5432 -d postgres:16</pre>



<p class="wp-block-paragraph">起動したら、psqlで接続します。</p>



<pre class="wp-block-syntaxhighlighter-code">docker exec -it pg-index-demo psql -U postgres</pre>



<p class="wp-block-paragraph">検証用に、注文データを想定したテーブルを作ります。実際のサービスでありがちな「usersテーブル」と「ordersテーブル」の2つです。</p>



<pre class="wp-block-syntaxhighlighter-code">CREATE TABLE users (
    id SERIAL PRIMARY KEY,
    email TEXT NOT NULL,
    status TEXT NOT NULL
);

CREATE TABLE orders (
    id SERIAL PRIMARY KEY,
    user_id INT NOT NULL,
    status TEXT NOT NULL,
    created_at TIMESTAMP NOT NULL
);</pre>



<p class="wp-block-paragraph">データが少ないとインデックスの効果が見えないので、100万件のダミーデータを流し込みます。</p>



<pre class="wp-block-syntaxhighlighter-code">INSERT INTO users (email, status)
SELECT 'user' || i || '@example.com', 'active'
FROM generate_series(1, 100000) AS i;

INSERT INTO orders (user_id, status, created_at)
SELECT
    (random() * 99999 + 1)::int,
    (ARRAY['pending','paid','shipped','cancelled'])[floor(random()*4+1)],
    NOW() - (random() * 365 || ' days')::interval
FROM generate_series(1, 1000000) AS i;</pre>



<h2 class="wp-block-heading">2. インデックスなしで検索してみる</h2>



<p class="wp-block-paragraph">まずは何も手を加えず、特定ユーザーの注文を検索してみます。</p>



<pre class="wp-block-syntaxhighlighter-code">EXPLAIN ANALYZE
SELECT * FROM orders WHERE user_id = 12345;</pre>



<p class="wp-block-paragraph">手元で実際に実行してみると、こういう実行計画が返ってきました。</p>



<pre class="wp-block-syntaxhighlighter-code">Gather  (cost=1000.00..12841.43 rows=11 width=23) (actual time=12.597..29.450 rows=8 loops=1)
  Workers Planned: 2
  Workers Launched: 2
  ->  Parallel Seq Scan on orders  (cost=0.00..11840.33 rows=5 width=23) (actual time=6.466..19.566 rows=3 loops=3)
        Filter: (user_id = 12345)
        Rows Removed by Filter: 333331
Planning Time: 0.216 ms
Execution Time: 29.508 ms</pre>



<p class="wp-block-paragraph">「Parallel Seq Scan」というのは、テーブルを2つのワーカーで手分けしながら頭から全部舐めて条件に合う行を探しているということです。100万行のうち欲しいのはたった8行なのに、並列化してもなお29.5msかかっています。これがインデックスがない状態の実態です(ちなみに手元の環境ではワーカーが2つ自動的に割り当てられましたが、CPUコア数や設定によっては単純な「Seq Scan」1本になることもあります)。</p>



<h2 class="wp-block-heading">3. インデックスを貼ってみる</h2>



<p class="wp-block-paragraph">ではuser_id列にインデックスを貼ってみます。</p>



<pre class="wp-block-syntaxhighlighter-code">CREATE INDEX idx_orders_user_id ON orders (user_id);</pre>



<p class="wp-block-paragraph">もう一度同じクエリを実行してみます。</p>



<pre class="wp-block-syntaxhighlighter-code">EXPLAIN ANALYZE
SELECT * FROM orders WHERE user_id = 12345;</pre>



<pre class="wp-block-syntaxhighlighter-code">Bitmap Heap Scan on orders  (cost=4.51..47.30 rows=11 width=23) (actual time=0.028..0.038 rows=8 loops=1)
  Recheck Cond: (user_id = 12345)
  Heap Blocks: exact=8
  ->  Bitmap Index Scan on idx_orders_user_id  (cost=0.00..4.51 rows=11 width=0) (actual time=0.024..0.024 rows=8 loops=1)
        Index Cond: (user_id = 12345)
Planning Time: 0.207 ms
Execution Time: 0.066 ms</pre>



<p class="wp-block-paragraph">実行時間が29.5msから0.066ms、400倍以上速くなりました。「Bitmap Heap Scan」は、まずインデックス側で該当する行の場所だけをビットマップとして特定し(Bitmap Index Scan)、そのあとで実際に必要なブロックだけをテーブル本体から読みにいく、という2段構えの読み方です。取得件数がある程度あるときにPostgreSQLがよく選ぶ実行計画で、件数がごく少なければ単純な「Index Scan」になることもあります。いずれにしても、テーブル全体を読むのではなくインデックスという「目次」を使って必要な行にピンポイントでアクセスできるようになったからこそ、この差が出ています。数字で見ると、インデックスの効果がここまではっきり出るのかと、実際に試すたびに驚きます。</p>



<h2 class="wp-block-heading">4. どこにインデックスを貼るのがベストプラクティスか</h2>



<p class="wp-block-paragraph">ここまでで効果は分かったので、次は「どこに貼るべきか」を整理していきます。</p>



<h3 class="wp-block-heading">WHERE句・JOIN句で絞り込みに使う列</h3>



<p class="wp-block-paragraph">今回のuser_idのように、検索条件やJOINの結合キーになる列は最優先で候補にすべきです。特に外部キーとして使う列には、迷わずインデックスを貼っています。</p>



<h3 class="wp-block-heading">ORDER BYやGROUP BYで使う列</h3>



<p class="wp-block-paragraph">並び替えや集計に使う列にもインデックスは効きます。試しにcreated_at列で並び替えてみます。</p>



<pre class="wp-block-syntaxhighlighter-code">EXPLAIN ANALYZE
SELECT * FROM orders ORDER BY created_at DESC LIMIT 20;</pre>



<p class="wp-block-paragraph">インデックスがない状態では、こうなりました。</p>



<pre class="wp-block-syntaxhighlighter-code">Limit  (cost=30503.05..30505.38 rows=20 width=24) (actual time=64.656..67.883 rows=20 loops=1)
  ->  Gather Merge  (cost=30503.05..127732.14 rows=833334 width=24) (actual time=64.637..67.861 rows=20 loops=1)
        Workers Planned: 2
        Workers Launched: 2
        ->  Sort  (cost=29503.03..30544.69 rows=416667 width=24) (actual time=60.649..60.651 rows=17 loops=3)
              Sort Key: created_at DESC
              Sort Method: top-N heapsort  Memory: 27kB
              ->  Parallel Seq Scan on orders  (cost=0.00..18415.67 rows=416667 width=24) (actual time=4.635..32.824 rows=333333 loops=3)
Planning Time: 0.311 ms
Execution Time: 68.084 ms</pre>



<p class="wp-block-paragraph">全行を並列でスキャンしてから上位20件だけをソートで抜き出しているため、68msかかっています。ここでcreated_atにインデックスを貼ってみます。</p>



<pre class="wp-block-syntaxhighlighter-code">CREATE INDEX idx_orders_created_at ON orders (created_at DESC);</pre>



<pre class="wp-block-syntaxhighlighter-code">Limit  (cost=0.42..2.08 rows=20 width=24) (actual time=0.024..0.084 rows=20 loops=1)
  ->  Index Scan using idx_orders_created_at on orders  (cost=0.42..82966.79 rows=1000000 width=24) (actual time=0.023..0.080 rows=20 loops=1)
Planning Time: 0.390 ms
Execution Time: 0.105 ms</pre>



<p class="wp-block-paragraph">68msから0.105msに短縮されました。インデックスがソート済みの順序をあらかじめ持っているため、その順番をそのまま辿るだけで上位20件が取れるようになったからです。</p>



<h3 class="wp-block-heading">カーディナリティ(値の種類の多さ)を意識する</h3>



<p class="wp-block-paragraph">ここは見落としがちなポイントです。試しに、値の種類が4つしかないstatus列にインデックスを貼ってみます。</p>



<pre class="wp-block-syntaxhighlighter-code">CREATE INDEX idx_orders_status ON orders (status);

EXPLAIN ANALYZE
SELECT * FROM orders WHERE status = 'paid';</pre>



<pre class="wp-block-syntaxhighlighter-code">Bitmap Heap Scan on orders  (cost=2835.89..12641.23 rows=253867 width=23) (actual time=4.482..25.556 rows=249556 loops=1)
  Recheck Cond: (status = 'paid'::text)
  Heap Blocks: exact=6632
  ->  Bitmap Index Scan on idx_orders_status  (cost=0.00..2772.43 rows=253867 width=0) (actual time=3.872..3.873 rows=249556 loops=1)
        Index Cond: (status = 'paid'::text)
Planning Time: 0.225 ms
Execution Time: 30.955 ms</pre>



<p class="wp-block-paragraph">インデックスは一応使われていて(Bitmap Heap Scan)、インデックスを外して同じクエリを実行すると62msかかったので、効果はゼロではありません。ただしuser_idのときの400倍のような劇的な差ではなく、せいぜい2倍程度です。全体の4分の1(約25万行)がpaidに該当するため、1行ずつインデックス経由で拾うメリットがそこまで大きくならないからです。</p>



<p class="wp-block-paragraph">では、もっとカーディナリティが低い場合はどうなるか。試しに、trueとfalseがほぼ50%ずつのis_paid列(BOOLEAN)にインデックスを貼ってみます。</p>



<pre class="wp-block-syntaxhighlighter-code">ALTER TABLE orders ADD COLUMN is_paid BOOLEAN;
UPDATE orders SET is_paid = (random() &lt; 0.5);

CREATE INDEX idx_orders_is_paid ON orders (is_paid);

EXPLAIN ANALYZE
SELECT * FROM orders WHERE is_paid = true;</pre>



<pre class="wp-block-syntaxhighlighter-code">Seq Scan on orders  (cost=0.00..24249.00 rows=500967 width=24) (actual time=76.010..176.902 rows=499646 loops=1)
  Filter: is_paid
  Rows Removed by Filter: 500354
Planning Time: 0.334 ms
Execution Time: 196.384 ms</pre>



<p class="wp-block-paragraph">インデックスを貼ったにもかかわらず、完全に無視されてSeq Scanになりました。値がほぼ2択で、しかもどちらの値でも全体の半分がヒットしてしまうため、インデックス経由で1行ずつ拾うより、テーブルを順番に読んだほうがオプティマイザにとって速いと判断されるからです。実際、あとでpg_stat_user_indexesを確認しても、このidx_orders_is_paidはidx_scanが0のまま、つまり一度も使われていませんでした。カーディナリティが低い列に単独でインデックスを貼っても、使われないどころか書き込みコストだけが増えるケースがあるということを、ここで実感しました。</p>



<h3 class="wp-block-heading">複合インデックスは列の順番が命</h3>



<p class="wp-block-paragraph">「特定ユーザーのpaid注文」のように複数条件で絞り込むことが多いなら、複合インデックスが効きます。</p>



<pre class="wp-block-syntaxhighlighter-code">CREATE INDEX idx_orders_user_status ON orders (user_id, status);

EXPLAIN ANALYZE
SELECT * FROM orders WHERE user_id = 12345 AND status = 'paid';</pre>



<pre class="wp-block-syntaxhighlighter-code">Index Scan using idx_orders_user_status on orders  (cost=0.42..16.48 rows=3 width=24) (actual time=0.185..0.187 rows=1 loops=1)
  Index Cond: ((user_id = 12345) AND (status = 'paid'::text))
Planning Time: 0.638 ms
Execution Time: 0.319 ms</pre>



<p class="wp-block-paragraph">0.3msで終わっています。ここで大事なのは列の順番です。カーディナリティが高い(値の種類が多い)user_idを先頭に置くのが基本で、逆にすると絞り込みの効きが悪くなります。等号(=)で絞る列を先頭、範囲検索(&gt;や&lt;、BETWEEN)で絞る列を後ろに置く、というのが自分の中でのルールになっています。</p>



<h2 class="wp-block-heading">5. 貼りすぎ注意 ─ インデックスのデメリット</h2>



<p class="wp-block-paragraph">ここまで「貼れば速くなる」という話をしてきましたが、インデックスはタダではありません。INSERT・UPDATE・DELETEのたびに、テーブル本体だけでなくすべてのインデックスも更新する必要があるため、書き込みが多いテーブルにインデックスを増やしすぎると、今度は書き込み性能が落ちます。</p>



<p class="wp-block-paragraph">また、ディスク容量もインデックスの分だけ余分に消費します。「使われていないインデックス」は保守コストしか生んでいないので、定期的にpg_stat_user_indexesなどで実際の使用状況を確認し、使われていないものは削除する、というのを運用の中に組み込んでおくのがいいと思っています。</p>



<pre class="wp-block-syntaxhighlighter-code">SELECT relname, indexrelname, idx_scan
FROM pg_stat_user_indexes
WHERE idx_scan = 0;</pre>



<p class="wp-block-paragraph">実際に手元の環境でこれを流すと、先ほどのis_paid列のインデックスがしっかり引っかかってきました。</p>



<pre class="wp-block-syntaxhighlighter-code"> relname |    indexrelname    | idx_scan
---------+--------------------+----------
 orders  | idx_orders_is_paid |        0
(1 row)</pre>



<h2 class="wp-block-heading">まとめ</h2>



<p class="wp-block-paragraph">今回ローカルで検証してみて改めて感じたのは、インデックスは「なんとなく全部の列に貼っておく」ものではなく、実際のクエリパターンとカーディナリティを見て、狙って貼るものだということです。</p>



<p class="wp-block-paragraph">迷ったときの自分なりのチェックリストはこうです。WHEREやJOINで絞り込みに使う列か。ORDER BYやGROUP BYで使う列か。カーディナリティは十分に高いか。複合インデックスなら等号条件の列が先頭になっているか。そして、貼った後は実際にEXPLAIN ANALYZEで効いているかを必ず確認する。</p>



<p class="wp-block-paragraph">「なんとなく遅い」で終わらせず、実行計画を見て判断する癖をつけることが、インデックス設計では一番大事なポイントなんじゃないかなと思っています。</p><p>The post <a href="https://freestyle.nvo.jp/archives/7403">どのカラムにインデックスを貼るべきか？SQLチューニングのベストプラクティス</a> first appeared on <a href="https://freestyle.nvo.jp">FreeStyleVision</a>.</p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>AI開発時代、一番時間をかけるべきはどこか</title>
		<link>https://freestyle.nvo.jp/archives/7401?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=ai%25e9%2596%258b%25e7%2599%25ba%25e6%2599%2582%25e4%25bb%25a3%25e3%2580%2581%25e4%25b8%2580%25e7%2595%25aa%25e6%2599%2582%25e9%2596%2593%25e3%2582%2592%25e3%2581%258b%25e3%2581%2591%25e3%2582%258b%25e3%2581%25b9%25e3%2581%258d%25e3%2581%25af%25e3%2581%25a9%25e3%2581%2593%25e3%2581%258b</link>
		
		<dc:creator><![CDATA[marukor]]></dc:creator>
		<pubDate>Wed, 09 Sep 2026 04:14:56 +0000</pubDate>
				<category><![CDATA[技術情報]]></category>
		<category><![CDATA[生成AI]]></category>
		<guid isPermaLink="false">https://freestyle.nvo.jp/?p=7401</guid>

					<description><![CDATA[<p>はじめに AIを使って開発をするようになってから、「一番時間をかけるべき工程はどこか」という感覚が、昔とはまったく変わりました。今日はその話をしてみようと思います。 結論から言うと、私が今一番時間をかけているのは「設計書 [&#8230;]</p>
<p>The post <a href="https://freestyle.nvo.jp/archives/7401">AI開発時代、一番時間をかけるべきはどこか</a> first appeared on <a href="https://freestyle.nvo.jp">FreeStyleVision</a>.</p>]]></description>
										<content:encoded><![CDATA[<h2 class="wp-block-heading">はじめに</h2>



<p class="wp-block-paragraph">AIを使って開発をするようになってから、「一番時間をかけるべき工程はどこか」という感覚が、昔とはまったく変わりました。今日はその話をしてみようと思います。</p>



<p class="wp-block-paragraph">結論から言うと、私が今一番時間をかけているのは「設計書」です。次に「テスト」、そして「AIのルール決め」、最後に「コーディング」という順番になっています。昔の自分からすると、正直信じられない順番です。</p>



<h2 class="wp-block-heading">1. 設計書 ─ 一番時間をかけるべき工程</h2>



<p class="wp-block-paragraph">以前の私は、設計書には特にこだわりがありませんでした。概要レベルのものがあれば十分で、実装するときも仕様を軽く確認する程度。ほとんど設計書を見返すこともありませんでした。</p>



<p class="wp-block-paragraph">ですが、今のAI開発ではそうはいきません。AIがどのように実装する想定なのか、というところまで踏み込んで、実装レベルの設計書に落とし込んでいく必要があります。ここでAIと自分の認識をしっかり合わせておくことが、何よりも大切だと感じています。</p>



<p class="wp-block-paragraph">ここまでやると何が起きるかというと、出来上がった設計書を渡してプロンプトを一発投げるだけで、ほぼ100%開発が完成するんです。設計書を念入りに練り上げることが、そのまま実装までのパイプラインになっている感覚です。</p>



<p class="wp-block-paragraph">従来は「設計」と「製造」を分けて考えるのが当たり前でしたが、今は設計書を作るという一つの工程が、そのまま製造まで完了させてしまう。工程そのものの構造が変わってしまったなと感じています。</p>



<h2 class="wp-block-heading">2. テスト</h2>



<p class="wp-block-paragraph">次に重要なのがテストです。ユニットテストなどでコードの品質自体は担保できても、「本当に仕様どおりに作られているか」の確認はやはり別問題です。ここは避けて通れません。</p>



<p class="wp-block-paragraph">AIを使ってテスト自体を自動化することも可能ですが、それでも最終的に「本当にできているのか」を確かめるには、人間の目で見るしかないと思っています。ここはまだ人間が担うべき領域だと感じている部分です。</p>



<h2 class="wp-block-heading">3. AIのルール決め</h2>



<p class="wp-block-paragraph">3番目はAIのルール決めです。これは、AIがこのプロジェクトの中でどう振る舞うべきかを事前に定義しておく作業です。</p>



<p class="wp-block-paragraph">必ず守るべきアーキテクチャのルール、DBへのアクセスのルール、命名規則など、成果物の品質を担保するために欠かせない工程だと思っています。</p>



<p class="wp-block-paragraph">こういったルールを事前に決めておかないと、想定していないところまでAIが勝手に変更してしまうことがあります。ルール決めをサボると、あとで思わぬところで痛い目を見るので、ここは絶対に省略できないと感じています。</p>



<h2 class="wp-block-heading">4. コーディング</h2>



<p class="wp-block-paragraph">そして最後がコーディングです。設計書さえきちんとできていれば、実装はすべてAIに任せています。</p>



<p class="wp-block-paragraph">正直なところ、自分が最後に手でコードを書いたのがいつだったか、もう思い出せないくらいです。</p>



<h2 class="wp-block-heading">まとめ</h2>



<p class="wp-block-paragraph">昔は「設計はざっくり、実装で頑張る」というスタイルでしたが、AI開発の今は完全に逆転しました。設計書 → テスト → AIのルール決め → コーディングという順番で時間をかけるようになり、実装そのものにかける時間はどんどん減っています。</p>



<p class="wp-block-paragraph">「どこに時間をかけるか」という感覚そのものをアップデートすることが、AI時代の開発では意外と大事なポイントなんじゃないかなと思っています。</p><p>The post <a href="https://freestyle.nvo.jp/archives/7401">AI開発時代、一番時間をかけるべきはどこか</a> first appeared on <a href="https://freestyle.nvo.jp">FreeStyleVision</a>.</p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Claude Code よく使うコマンド</title>
		<link>https://freestyle.nvo.jp/archives/7392?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=claude-code-%25e3%2582%2588%25e3%2581%258f%25e4%25bd%25bf%25e3%2581%2586%25e3%2582%25b3%25e3%2583%259e%25e3%2583%25b3%25e3%2583%2589</link>
		
		<dc:creator><![CDATA[marukor]]></dc:creator>
		<pubDate>Wed, 09 Sep 2026 03:56:43 +0000</pubDate>
				<category><![CDATA[技術情報]]></category>
		<category><![CDATA[Claude Code]]></category>
		<category><![CDATA[生成AI]]></category>
		<guid isPermaLink="false">https://freestyle.nvo.jp/?p=7392</guid>

					<description><![CDATA[<p>はじめに 普段からClaude Codeを使っている方なら、「あのコマンド何だっけ?」となった経験、一度はあるんじゃないでしょうか。私自身、最初のうちはコマンドを覚えきれず、毎回ヘルプを見返していました。 この記事では、 [&#8230;]</p>
<p>The post <a href="https://freestyle.nvo.jp/archives/7392">Claude Code よく使うコマンド</a> first appeared on <a href="https://freestyle.nvo.jp">FreeStyleVision</a>.</p>]]></description>
										<content:encoded><![CDATA[<h2 class="wp-block-heading">はじめに</h2>



<p class="wp-block-paragraph">普段からClaude Codeを使っている方なら、「あのコマンド何だっけ?」となった経験、一度はあるんじゃないでしょうか。私自身、最初のうちはコマンドを覚えきれず、毎回ヘルプを見返していました。</p>



<p class="wp-block-paragraph">この記事では、私が実際によく使っているClaude Codeのコマンドをまとめてみました。全部覚える必要はなくて、まずはこの記事にあるものだけ押さえておけば、日々の作業はかなりスムーズになると思います。</p>



<h2 class="wp-block-heading">よく使うコマンド一覧</h2>



<h3 class="wp-block-heading">/resume ─ 前回のセッションを再開する</h3>



<p class="wp-block-paragraph">作業を中断して、あとで続きから再開したいときに使うコマンドです。実行すると過去のセッション一覧が表示されるので、そこから選んで再開できます。「昨日の続きをやりたいけど、どこまで進めたか忘れた…」というときにとても便利です。</p>



<figure class="wp-block-image size-large"><a href="https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/09/image-1.png"><img loading="lazy" decoding="async" width="1024" height="260" src="https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/09/image-1-1024x260.png" alt="" class="wp-image-7394" srcset="https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/09/image-1-1024x260.png 1024w, https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/09/image-1-300x76.png 300w, https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/09/image-1-768x195.png 768w, https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/09/image-1-1536x391.png 1536w, https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/09/image-1.png 1687w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<h3 class="wp-block-heading">/usage ─ 使用状況を確認する</h3>



<p class="wp-block-paragraph">今どれくらい使っているのか、セッション数や日々の利用状況などをまとめて確認できるコマンドです。使いすぎていないか気になったときに、こまめにチェックする習慣をつけておくと安心です。</p>



<figure class="wp-block-image size-large"><a href="https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/09/image-2.png"><img loading="lazy" decoding="async" width="1024" height="533" src="https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/09/image-2-1024x533.png" alt="" class="wp-image-7395" srcset="https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/09/image-2-1024x533.png 1024w, https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/09/image-2-300x156.png 300w, https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/09/image-2-768x400.png 768w, https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/09/image-2-160x84.png 160w, https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/09/image-2.png 1322w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<h3 class="wp-block-heading">/model ─ モデルを切り替える</h3>



<p class="wp-block-paragraph">タスクの内容に応じてモデルを切り替えたいときに使います。<br>がっつり複雑な設計を考えたいときは高性能なモデルに、単純な作業をサクサクこなしたいときは軽量なモデルに、といった使い分けができます。</p>



<figure class="wp-block-image size-large"><a href="https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/09/image-3.png"><img loading="lazy" decoding="async" width="1024" height="225" src="https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/09/image-3-1024x225.png" alt="" class="wp-image-7396" srcset="https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/09/image-3-1024x225.png 1024w, https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/09/image-3-300x66.png 300w, https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/09/image-3-768x169.png 768w, https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/09/image-3-1536x338.png 1536w, https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/09/image-3.png 1597w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<h3 class="wp-block-heading">/goal ─ 目標を設定してブレを防ぐ</h3>



<p class="wp-block-paragraph">長めのセッションになると、途中で本来のゴールから話がそれてしまうことがあります。そんなときに/goalで「今回はこれを達成する」という目標を明確にしておくと、Claudeが一貫してその方向に沿って作業を進めてくれるようになります。<br>また途中でトークンの使用量にリミットが来ても、/goalをしておけばリミットが解除されたときに自動で続きを始めてくれます。</p>



<figure class="wp-block-image size-full is-resized"><a href="https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/09/image-4.png"><img loading="lazy" decoding="async" width="786" height="501" src="https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/09/image-4.png" alt="" class="wp-image-7397" style="width:454px;height:auto" srcset="https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/09/image-4.png 786w, https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/09/image-4-300x191.png 300w, https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/09/image-4-768x490.png 768w" sizes="(max-width: 786px) 100vw, 786px" /></a></figure>



<h3 class="wp-block-heading">ultrathink ─ じっくり考えてほしいときのキーワード</h3>



<p class="wp-block-paragraph">ultrathink は、そのターン（1回の応答）限定でClaudeに最大の拡張思考（Extended Thinking）を行わせるための指示キーワードです。<br>設計方針で悩んでいるときや、なかなか解決しないバグに当たったときなど、「じっくり考えてから答えてほしい」場面で&#8221;ultrathink&#8221;という言葉をプロンプトに入れると、Claudeがより深く思考してから応答してくれます。ちょっとしたタスクにまで毎回使うと逆に時間がかかってしまうので、ここぞという場面で使うのがおすすめです。</p>



<figure class="wp-block-image size-full"><a href="https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/09/image-5.png"><img loading="lazy" decoding="async" width="546" height="92" src="https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/09/image-5.png" alt="" class="wp-image-7398" srcset="https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/09/image-5.png 546w, https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/09/image-5-300x51.png 300w" sizes="(max-width: 546px) 100vw, 546px" /></a></figure>



<h2 class="wp-block-heading">まとめ</h2>



<p class="wp-block-paragraph">今回紹介したのは、resume・usage・model・goal・ultrathinkの5つです。どれも派手な機能ではありませんが、日々の作業の中でじわじわと効いてくるものばかりだと感じています。</p>



<p class="wp-block-paragraph">まずはこの中から気になったものをひとつ試してみて、自分の作業スタイルに合いそうであれば、少しずつ使うコマンドを増やしていくのがおすすめです。</p><p>The post <a href="https://freestyle.nvo.jp/archives/7392">Claude Code よく使うコマンド</a> first appeared on <a href="https://freestyle.nvo.jp">FreeStyleVision</a>.</p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>FlutterのMaestroとは</title>
		<link>https://freestyle.nvo.jp/archives/7350?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=flutter%25e3%2581%25aemaestro%25e3%2581%25a8%25e3%2581%25af</link>
		
		<dc:creator><![CDATA[sumikawah]]></dc:creator>
		<pubDate>Wed, 09 Sep 2026 02:52:25 +0000</pubDate>
				<category><![CDATA[技術情報]]></category>
		<category><![CDATA[Dart]]></category>
		<category><![CDATA[Flutter]]></category>
		<category><![CDATA[スマホアプリ]]></category>
		<category><![CDATA[テスト]]></category>
		<category><![CDATA[自動化]]></category>
		<guid isPermaLink="false">https://freestyle.nvo.jp/?p=7350</guid>

					<description><![CDATA[<p>1. Maestroとは Maestroは、モバイルアプリおよびWebアプリ向けのUI自動テストフレームワークです。YAML形式のシンプルなシナリオを記述することで、実際のユーザー操作を再現しながらアプリの動作を自動で検 [&#8230;]</p>
<p>The post <a href="https://freestyle.nvo.jp/archives/7350">FlutterのMaestroとは</a> first appeared on <a href="https://freestyle.nvo.jp">FreeStyleVision</a>.</p>]]></description>
										<content:encoded><![CDATA[<h3 class="wp-block-heading">1. Maestroとは</h3>



<p class="wp-block-paragraph">Maestroは、モバイルアプリおよびWebアプリ向けのUI自動テストフレームワークです。YAML形式のシンプルなシナリオを記述することで、実際のユーザー操作を再現しながらアプリの動作を自動で検証できます。 </p>



<p class="wp-block-paragraph">Flutterアプリのテストにおいては、アプリ内部のコードを直接操作するのではなく、実機やエミュレーター上で動作しているアプリに対してタップや入力などの操作を行います。そのため、ユーザーが実際に使用する環境に近い形でテストを実施できます。</p>



<p class="wp-block-paragraph">また、MaestroはAndroidとiOSの両方に対応しており、近年ではFlutterアプリのE2Eテストツールとして広く利用されています。</p>



<h3 class="wp-block-heading">2. Maestroの特徴</h3>



<h5 class="wp-block-heading">① シンプルなテスト記述</h5>



<p class="wp-block-paragraph">MaestroではYAML形式を採用しているため、複雑なプログラムを書くことなくテストシナリオを作成できます。可読性も高く、テスト内容を理解しやすいことが特徴です。</p>



<p class="wp-block-paragraph">以下は、ログイン画面のテスト例です。</p>


<p>[java]<br />
appId: com.example.app<br />
 <br />
&#8212;<br />
&#8211; launchApp<br />
&#8211; tapOn: &amp;quot;メールアドレス&amp;quot;<br />
&#8211; inputText: &amp;quot;test@example.com&amp;quot;<br />
&#8211; tapOn: &amp;quot;パスワード&amp;quot;<br />
&#8211; inputText: &amp;quot;password&amp;quot;<br />
&#8211; tapOn: &amp;quot;ログイン&amp;quot;<br />
&#8211; assertVisible: &amp;quot;ホーム&amp;quot;<br />
[/java]</p>



<p class="wp-block-paragraph">この例では、アプリの起動後にメールアドレスとパスワードを入力し、ログインボタンを押下しています。最後に「ホーム」という文字が表示されることを確認することで、ログイン処理が正常に完了したかを検証しています。</p>



<h5 class="wp-block-heading">② 実ユーザーに近いテスト</h5>



<p class="wp-block-paragraph">端末上の画面要素を直接操作するため、ユーザーの実際の操作を再現したテストを実施できます。画面遷移や入力操作など、実運用に近い検証が可能です。</p>



<h5 class="wp-block-heading">③ Flutterとの高い親和性</h5>



<p class="wp-block-paragraph">MaestroはFlutterのSemantics Treeを利用してUI要素を認識します。そのため、Flutterアプリを特別なテスト環境へ変更することなく利用できます。</p>



<h5 class="wp-block-heading">④  システム画面のテストが可能</h5>



<p class="wp-block-paragraph">アプリ内部だけではなく、通知や権限許可ダイアログなど、OSレベルの画面も含めたテストを実施できます。</p>



<h3 class="wp-block-heading">3. Flutterで利用するメリット</h3>



<p class="wp-block-paragraph">FlutterにはWidget TestやIntegration Testといったテスト手法がありますが、Maestroを利用することで、より実際の利用環境に近い形で動作確認を実施できます。</p>



<p class="wp-block-paragraph">また、Flutterアプリへの特別なライブラリ追加や複雑な設定が不要であり、既存プロジェクトにも導入しやすい点がメリットです。</p>



<p class="wp-block-paragraph">さらに、Flutterの内部実装ではなく表示されたUIを対象としてテストを実施するため、アプリの改修やFlutterバージョンの更新による影響を受けにくく、保守性の高いテスト環境を構築できます。</p>



<h3 class="wp-block-heading">4. 手作業での確認を自動化</h3>



<p class="wp-block-paragraph">アプリ開発では、機能追加や不具合修正のたびに同じ動作確認を繰り返し実施する必要があります。</p>



<p class="wp-block-paragraph">例えば、</p>



<ul class="wp-block-list">
<li>アプリを起動する</li>



<li>ログインする</li>



<li>データを登録する</li>



<li>登録内容を確認する</li>



<li>ログアウトする</li>
</ul>



<p class="wp-block-paragraph">といった操作は、開発のたびに何度も実施されます。</p>



<p class="wp-block-paragraph">Maestroを利用することで、これらの確認手順を自動化できます。一度テストシナリオを作成すれば、同じテストを何度でも繰り返し実行できるため、確認作業の効率化につながります。</p>



<p class="wp-block-paragraph">また、人による操作ミスや確認漏れを防止できるため、品質の安定化にも効果があります。さらに、開発者は単純な確認作業ではなく、機能開発や改善業務により多くの時間を割くことができます。</p>



<h3 class="wp-block-heading">5. まとめ</h3>



<p class="wp-block-paragraph">Maestroは、モバイルアプリ向けのUI自動テストフレームワークであり、Flutterアプリに対して実際のユーザー操作に近い形でテストを実施できるツールです。</p>



<p class="wp-block-paragraph">主な特徴として、</p>



<ul class="wp-block-list">
<li>YAMLによるシンプルなテスト記述</li>



<li>実ユーザーに近いUIテスト</li>



<li>Flutterとの高い親和性</li>



<li>システム画面を含めたテストへの対応</li>
</ul>



<p class="wp-block-paragraph">が挙げられます。</p>



<p class="wp-block-paragraph">また、これまで手作業で実施していた動作確認を自動化できるため、テスト工数の削減と品質向上の両立が可能です。Flutterアプリ開発における効率的な品質管理を実現するツールとして、Maestroは非常に有効な選択肢であると考えられます。</p><p>The post <a href="https://freestyle.nvo.jp/archives/7350">FlutterのMaestroとは</a> first appeared on <a href="https://freestyle.nvo.jp">FreeStyleVision</a>.</p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>【WindowsUpdate】悪意のあるソフトウェアの削除ツール(KB890830)</title>
		<link>https://freestyle.nvo.jp/archives/7313?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=%25e3%2580%2590windowsupdate%25e3%2580%2591%25e6%2582%25aa%25e6%2584%258f%25e3%2581%25ae%25e3%2581%2582%25e3%2582%258b%25e3%2582%25bd%25e3%2583%2595%25e3%2583%2588%25e3%2582%25a6%25e3%2582%25a7%25e3%2582%25a2%25e3%2581%25ae%25e5%2589%258a%25e9%2599%25a4%25e3%2583%2584%25e3%2583%25bc%25e3%2583%25abkb890830</link>
		
		<dc:creator><![CDATA[arakawas]]></dc:creator>
		<pubDate>Thu, 03 Sep 2026 00:53:40 +0000</pubDate>
				<category><![CDATA[技術情報]]></category>
		<category><![CDATA[WindowsUpdate]]></category>
		<guid isPermaLink="false">https://freestyle.nvo.jp/?p=7313</guid>

					<description><![CDATA[<p>はじめに システム保守作業の一環として、稼働中のサーバーに対してWindowsUpdateを実施しました。今回はWindowsの設定画面から更新プログラムの適用を行いましたが、その中で配信された「KB890830」 の適 [&#8230;]</p>
<p>The post <a href="https://freestyle.nvo.jp/archives/7313">【WindowsUpdate】悪意のあるソフトウェアの削除ツール(KB890830)</a> first appeared on <a href="https://freestyle.nvo.jp">FreeStyleVision</a>.</p>]]></description>
										<content:encoded><![CDATA[<h2 class="wp-block-heading">はじめに</h2>



<p class="wp-block-paragraph">システム保守作業の一環として、稼働中のサーバーに対してWindowsUpdateを実施しました。<br>今回はWindowsの設定画面から更新プログラムの適用を行いましたが、その中で配信された「KB890830」 の適用に想定以上の時間を要したため、備忘録として記載します。</p>



<h2 class="wp-block-heading">更新プログラム「KB890830」とは？</h2>



<p class="wp-block-paragraph">今回のWindowsUpdateで配信された「KB890830」について、詳細を簡単に記載します。<br>「KB890830」は「悪意のあるソフトウェアの削除ツール（Malicious Software Removal Tool）」の更新プログラムであり、毎月配信されることが多いですが一般的なセキュリティ更新プログラムとは少し役割が異なります。<br>このツールはWindowsUpdateの一部としてバックグラウンドで実行され、主な目的は「流行している特定のマルウェアやウイルスを検出・削除」することにあります。実行時には感染している可能性のあるマルウェアの検査を行い、対象となるマルウェアが検出された場合は削除処理を実施します。また、マルウェアによって変更された一部のシステム設定を元の状態に戻す機能も備えています。<br>ただし、一般的なウイルス対策ソフトとは異なり、常時監視やリアルタイム監視の機能は無く、新たなマルウェア感染を防止するものでもありません。</p>



<h2 class="wp-block-heading">実行環境</h2>



<p class="wp-block-paragraph">・サーバー：WindowsServer2019 Standard<br>・Cドライブ<br>　・ドライブ容量：59.4G<br>　・使用率：68%<br>・Dドライブ<br>　・ドライブ容量：339G<br>　・使用率：30%<br>・ストレージ：SSD</p>



<h2 class="wp-block-heading">悪意のあるソフトウェアの削除ツールの実行</h2>



<p class="wp-block-paragraph">今回の環境では、WindowsUpdateの更新プログラム一覧に「KB890830」が表示されていたものの自動的には実行されなかったため、MicrosoftUpdateカタログから更新プログラムを取得し、「悪意のあるソフトウェアの削除ツール x64 &#8211; v5.142（KB890830）」を手動で実行しました。<br><br>【KB890830のexeファイルの実行手順】<br>①「次へ」を押下</p>



<figure class="wp-block-image size-full is-resized"><a href="https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/08/image-16.png"><img loading="lazy" decoding="async" width="773" height="668" src="https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/08/image-16.png" alt="" class="wp-image-7355" style="width:621px;height:auto" srcset="https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/08/image-16.png 773w, https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/08/image-16-300x259.png 300w, https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/08/image-16-768x664.png 768w" sizes="(max-width: 773px) 100vw, 773px" /></a></figure>



<p class="wp-block-paragraph">②「フルスキャン」を選択し、「次へ」を押下</p>



<figure class="wp-block-image size-full is-resized"><a href="https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/08/image-17.png"><img loading="lazy" decoding="async" width="773" height="668" src="https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/08/image-17.png" alt="" class="wp-image-7356" style="width:622px;height:auto" srcset="https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/08/image-17.png 773w, https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/08/image-17-300x259.png 300w, https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/08/image-17-768x664.png 768w" sizes="(max-width: 773px) 100vw, 773px" /></a></figure>



<p class="wp-block-paragraph">③スキャンが完了するまで待機</p>



<figure class="wp-block-image size-full is-resized"><a href="https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/08/image-20.png"><img loading="lazy" decoding="async" width="773" height="668" src="https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/08/image-20.png" alt="" class="wp-image-7362" style="width:624px;height:auto" srcset="https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/08/image-20.png 773w, https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/08/image-20-300x259.png 300w, https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/08/image-20-768x664.png 768w" sizes="(max-width: 773px) 100vw, 773px" /></a></figure>



<p class="wp-block-paragraph">④スキャンが完了したことを確認</p>



<figure class="wp-block-image size-full is-resized"><a href="https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/08/image-21.png"><img loading="lazy" decoding="async" width="773" height="669" src="https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/08/image-21.png" alt="" class="wp-image-7365" style="width:620px;height:auto" srcset="https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/08/image-21.png 773w, https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/08/image-21-300x260.png 300w, https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/08/image-21-768x665.png 768w" sizes="(max-width: 773px) 100vw, 773px" /></a></figure>



<p class="wp-block-paragraph">⑤スキャン結果の詳細を確認<br>　※スキャン結果が全て「感染していません」となっていることを確認</p>



<figure class="wp-block-image size-full is-resized"><a href="https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/08/image-22.png"><img loading="lazy" decoding="async" width="494" height="515" src="https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/08/image-22.png" alt="" class="wp-image-7366" style="width:479px;height:auto" srcset="https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/08/image-22.png 494w, https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/08/image-22-288x300.png 288w" sizes="(max-width: 494px) 100vw, 494px" /></a></figure>



<p class="wp-block-paragraph">【実行結果】<br>今回実施した「悪意のあるソフトウェアの削除ツール（KB890830）」によるスキャンでは、マルウェアの検出はなく、問題がないことを確認できました。<br>一方で、スキャン処理の完了までに約7時間要したため、想定以上に長時間となるケースもあるため注意が必要です。</p>



<h2 class="wp-block-heading">まとめ</h2>



<p class="wp-block-paragraph">「悪意のあるソフトウェアの削除ツール（KB890830）」は定期的に配信されるセキュリティ対策ツールですが、実行中は他の保守作業や動作確認のスケジュールに影響を与える可能性があります。そのため実行する際は後続作業や実行する時間帯を考慮したうえで計画的に実施することが重要です。<br>また、ツールには進捗バーが表示されますが、進捗バーが右端まで到達した時点で必ずしもスキャンが完了するわけではなく（進捗バーは処理全体の正確な完了率を示しているものではない）、表示だけを判断材料とせず、余裕を持ったスケジュールを組むことの重要性も今回の検証を通じて確認できました。</p>



<figure class="wp-block-image size-full is-resized"><a href="https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/08/image-23.png"><img loading="lazy" decoding="async" width="862" height="642" src="https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/08/image-23.png" alt="" class="wp-image-7369" style="width:484px;height:auto" srcset="https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/08/image-23.png 862w, https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/08/image-23-300x223.png 300w, https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/08/image-23-768x572.png 768w" sizes="(max-width: 862px) 100vw, 862px" /></a></figure><p>The post <a href="https://freestyle.nvo.jp/archives/7313">【WindowsUpdate】悪意のあるソフトウェアの削除ツール(KB890830)</a> first appeared on <a href="https://freestyle.nvo.jp">FreeStyleVision</a>.</p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>AWS KiroのAgent Focusを使ってみた</title>
		<link>https://freestyle.nvo.jp/archives/7325?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=aws-kiro%25e3%2581%25aeagent-focus%25e3%2582%2592%25e4%25bd%25bf%25e3%2581%25a3%25e3%2581%25a6%25e3%2581%25bf%25e3%2581%259f</link>
		
		<dc:creator><![CDATA[sumikawah]]></dc:creator>
		<pubDate>Wed, 26 Aug 2026 02:01:37 +0000</pubDate>
				<category><![CDATA[技術情報]]></category>
		<category><![CDATA[AWS]]></category>
		<category><![CDATA[生成AI]]></category>
		<guid isPermaLink="false">https://freestyle.nvo.jp/?p=7325</guid>

					<description><![CDATA[<p>はじめに 前回は、AWS Kiroに搭載されている Agent Focus の概要や特徴について紹介しました。Agent Focusは、従来のコード中心の開発スタイルではなく、AIエージェントとの対話を中心に開発を進める [&#8230;]</p>
<p>The post <a href="https://freestyle.nvo.jp/archives/7325">AWS KiroのAgent Focusを使ってみた</a> first appeared on <a href="https://freestyle.nvo.jp">FreeStyleVision</a>.</p>]]></description>
										<content:encoded><![CDATA[<h3 class="wp-block-heading">はじめに</h3>



<p class="wp-block-paragraph"><a href="https://freestyle.nvo.jp/archives/7317" target="_blank" title="">前回<span class="fa fa-link internal-icon anchor-icon"></span></a>は、AWS Kiroに搭載されている <strong>Agent Focus</strong> の概要や特徴について紹介しました。Agent Focusは、従来のコード中心の開発スタイルではなく、AIエージェントとの対話を中心に開発を進めるための機能です。</p>



<p class="wp-block-paragraph">今回はその続編として、実際にAgent Focusを使用し、AIエージェントによる開発支援を体験しました。実際の操作画面や生成された成果物を確認しながら、使用方法や利便性、活用の可能性について検証した結果を紹介します。</p>



<h3 class="wp-block-heading">Agent FocusでTODOリストを作成</h3>



<h5 class="wp-block-heading">エージェントへ作業を依頼</h5>



<p class="wp-block-paragraph">Agent Focusの機能を確認するため、新しいセッションを作成し、エージェントに簡単なTODOリストアプリの作成を依頼しました。</p>



<p class="wp-block-paragraph">今回入力した指示内容は以下のとおりです。</p>



<figure class="wp-block-image size-large"><a href="https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/08/image-9.png"><img loading="lazy" decoding="async" width="1024" height="109" src="https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/08/image-9-1024x109.png" alt="" class="wp-image-7328" srcset="https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/08/image-9-1024x109.png 1024w, https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/08/image-9-300x32.png 300w, https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/08/image-9-768x81.png 768w, https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/08/image-9-1536x163.png 1536w, https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/08/image-9.png 1839w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<p class="wp-block-paragraph">Kiroは指示を受けると、まず依頼内容を分析し、実装に必要なタスクを整理します。<br>その後、作成したタスクごとに順番に処理を実行していきます。</p>



<h5 class="wp-block-heading">コード生成結果の確認</h5>



<p class="wp-block-paragraph">実装が完了すると、エージェントは作成した内容の説明と実行方法を提示してくれました。</p>



<figure class="wp-block-image size-large"><a href="https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/08/image-10.png"><img loading="lazy" decoding="async" width="1024" height="435" src="https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/08/image-10-1024x435.png" alt="" class="wp-image-7329" srcset="https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/08/image-10-1024x435.png 1024w, https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/08/image-10-300x127.png 300w, https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/08/image-10-768x326.png 768w, https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/08/image-10-1536x652.png 1536w, https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/08/image-10.png 1827w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<p class="wp-block-paragraph">また、以下の画像のように画面右側には追加・変更されたファイルが表示されます。<br>変更されたファイルを選択するとIDEが開き、実際のコードや変更内容を確認することができます。</p>



<figure class="wp-block-image size-full"><a href="https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/08/a27bf1ec1238ca635ce2440a0c8c94e0.png"><img loading="lazy" decoding="async" width="589" height="138" src="https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/08/a27bf1ec1238ca635ce2440a0c8c94e0.png" alt="" class="wp-image-7342" srcset="https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/08/a27bf1ec1238ca635ce2440a0c8c94e0.png 589w, https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/08/a27bf1ec1238ca635ce2440a0c8c94e0-300x70.png 300w" sizes="(max-width: 589px) 100vw, 589px" /></a></figure>



<p class="wp-block-paragraph">生成されたファイルを実行し、動作を確認しました。<br>その結果、シンプルなTODOリストアプリが作成されており、タスクの追加および削除機能が正常に動作することを確認できました。</p>



<figure class="wp-block-image size-large"><a href="https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/08/f47cc0286c78642adc4b89c2355880a9-scaled.png"><img loading="lazy" decoding="async" width="1024" height="556" src="https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/08/f47cc0286c78642adc4b89c2355880a9-1024x556.png" alt="" class="wp-image-7345" srcset="https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/08/f47cc0286c78642adc4b89c2355880a9-1024x556.png 1024w, https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/08/f47cc0286c78642adc4b89c2355880a9-300x163.png 300w, https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/08/f47cc0286c78642adc4b89c2355880a9-768x417.png 768w, https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/08/f47cc0286c78642adc4b89c2355880a9-1536x835.png 1536w, https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/08/f47cc0286c78642adc4b89c2355880a9-2048x1113.png 2048w, https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/08/f47cc0286c78642adc4b89c2355880a9-200x110.png 200w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<h5 class="wp-block-heading">追加機能の実装</h5>



<p class="wp-block-paragraph">基本機能の動作確認後、さらにAgent Focusの活用方法を確認するため、追加機能の実装を依頼しました。</p>



<p class="wp-block-paragraph">今回は、タスクの進捗状況を視覚的に確認できるようにするため、円グラフによる表示機能の追加を依頼しました。<br>今回入力した指示内容は以下のとおりです。</p>



<figure class="wp-block-image size-large"><a href="https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/08/image-13.png"><img loading="lazy" decoding="async" width="1024" height="99" src="https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/08/image-13-1024x99.png" alt="" class="wp-image-7332" srcset="https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/08/image-13-1024x99.png 1024w, https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/08/image-13-300x29.png 300w, https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/08/image-13-768x74.png 768w, https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/08/image-13-1536x149.png 1536w, https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/08/image-13.png 1829w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<p class="wp-block-paragraph">実装が開始されると、エージェントは既存のコードを解析し、円グラフを表示するために必要な機能についてもあわせて検討を行いました。その結果、円グラフの表示機能だけでなく、タスクの完了状態を管理するための「完了／未完了」切り替え機能も自動的に実装されました。</p>



<figure class="wp-block-image size-large"><a href="https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/08/image-14.png"><img loading="lazy" decoding="async" width="1024" height="321" src="https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/08/image-14-1024x321.png" alt="" class="wp-image-7333" srcset="https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/08/image-14-1024x321.png 1024w, https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/08/image-14-300x94.png 300w, https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/08/image-14-768x241.png 768w, https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/08/image-14-1536x482.png 1536w, https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/08/image-14.png 1830w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<p class="wp-block-paragraph">生成されたファイルを実行し、動作を確認しました。その結果、完了済みタスクと未完了タスクの割合が円グラフとして表示されるだけでなく、タスクの完了状態を切り替える機能も追加されていることを確認できました。</p>



<figure class="wp-block-image size-large"><a href="https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/08/7f094df3b1470c02fb93a34d659ba837-scaled.png"><img loading="lazy" decoding="async" width="1024" height="404" src="https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/08/7f094df3b1470c02fb93a34d659ba837-1024x404.png" alt="" class="wp-image-7346" srcset="https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/08/7f094df3b1470c02fb93a34d659ba837-1024x404.png 1024w, https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/08/7f094df3b1470c02fb93a34d659ba837-300x118.png 300w, https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/08/7f094df3b1470c02fb93a34d659ba837-768x303.png 768w, https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/08/7f094df3b1470c02fb93a34d659ba837-1536x605.png 1536w, https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/08/7f094df3b1470c02fb93a34d659ba837-2048x807.png 2048w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<p class="wp-block-paragraph">当初は円グラフの追加のみを依頼していましたが、エージェントが機能の目的を理解し、必要と判断した関連機能まで実装していた点が非常に印象的でした。単純に指示された内容を実装するだけでなく、アプリとして成立するために必要な機能を補完しながら開発を進めていることが分かりました。</p>



<h3 class="wp-block-heading">まとめ</h3>



<p class="wp-block-paragraph">今回、AWS KiroのAgent Focusを使用し、TODOリストアプリの作成および機能追加を行いました。</p>



<p class="wp-block-paragraph">実際に利用した結果、自然言語で指示を与えるだけでエージェントがタスクを整理し、実装から修正、機能追加までを進める様子を確認できました。また、作業状況やコード差分をリアルタイムで確認できるため、開発者は実装作業そのものよりも成果物の確認や品質管理に集中できると感じました。</p>



<p class="wp-block-paragraph">特に今回の検証では、コードを一切記述することなくアプリケーションの作成から機能追加まで実現することができました。 従来の開発では、設計からコーディング、デバッグまでを開発者が担当していましたが、Agent　Focusでは開発者が要件を伝え、AIエージェントが実装を担当するという新しい開発スタイルを体験することができました。</p>



<p class="wp-block-paragraph">もちろん現時点では、生成されたコードの確認や品質担保は開発者自身が行う必要があります。しかし、AI技術の進化によって、今後は開発者がコードを書く機会そのものが減少し、要件定義や設計、レビューといった上流工程に注力する時代が訪れる可能性もあると感じました。</p>



<p class="wp-block-paragraph">今回の検証を通じて、Agent Focusは単なるコード生成ツールではなく、AIと協力して開発を進める新しい開発環境であることを実感しました。今後の発展にも大いに期待したいと思います。</p><p>The post <a href="https://freestyle.nvo.jp/archives/7325">AWS KiroのAgent Focusを使ってみた</a> first appeared on <a href="https://freestyle.nvo.jp">FreeStyleVision</a>.</p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>AWS KiroのAgent Focusとは</title>
		<link>https://freestyle.nvo.jp/archives/7317?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=aws-kiro%25e3%2581%25aeagent-focus%25e3%2581%25a8%25e3%2581%25af</link>
		
		<dc:creator><![CDATA[sumikawah]]></dc:creator>
		<pubDate>Wed, 26 Aug 2026 01:17:34 +0000</pubDate>
				<category><![CDATA[技術情報]]></category>
		<category><![CDATA[AWS]]></category>
		<category><![CDATA[生成AI]]></category>
		<guid isPermaLink="false">https://freestyle.nvo.jp/?p=7317</guid>

					<description><![CDATA[<p>1. AWS KiroのAgent Focusとは Agent Focusは、AWSが提供するAI開発環境「Kiro」に搭載された機能であり、AIエージェントとの対話を中心に開発を進めるための新しいユーザーインターフェー [&#8230;]</p>
<p>The post <a href="https://freestyle.nvo.jp/archives/7317">AWS KiroのAgent Focusとは</a> first appeared on <a href="https://freestyle.nvo.jp">FreeStyleVision</a>.</p>]]></description>
										<content:encoded><![CDATA[<h3 class="wp-block-heading">1. AWS KiroのAgent Focusとは</h3>



<p class="wp-block-paragraph">Agent Focusは、AWSが提供するAI開発環境「Kiro」に搭載された機能であり、AIエージェントとの対話を中心に開発を進めるための新しいユーザーインターフェースです。従来のIDEではコードエディタが画面の中心に配置されていましたが、Agent Focusではチャット画面が中心となり、開発者はAIエージェントに指示を出しながら開発を進めることができます。</p>



<p class="wp-block-paragraph">Agent Focusは、「Chat-first（チャット中心）」の開発スタイルを実現することを目的としています。開発者はコードを直接記述するだけでなく、AIエージェントに開発作業を任せながら進捗を管理し、必要に応じて修正指示を行うことができます。</p>



<p class="wp-block-paragraph">Agent Focusの画面は、以下の3つのエリアで構成されています。</p>



<ul class="wp-block-list">
<li><strong>Agents Panel（左側）</strong>
<ul class="wp-block-list">
<li>エージェントセッションの管理</li>



<li>複数タスクの監視</li>



<li>実行状況の確認</li>
</ul>
</li>



<li><strong>Chat Panel（中央）</strong>
<ul class="wp-block-list">
<li>AIエージェントとの対話</li>



<li>タスク依頼</li>



<li>指示やフィードバックの実施</li>
</ul>
</li>



<li><strong>Auxiliary Panel（右側）</strong>
<ul class="wp-block-list">
<li>仕様書（Spec）の確認</li>



<li>変更ファイルの確認</li>



<li>コード差分の表示</li>
</ul>
</li>
</ul>



<h3 class="wp-block-heading">2. Agent Focusの使い方</h3>



<h5 class="wp-block-heading">① Agent Focusへ切り替える</h5>



<p class="wp-block-paragraph">Kiro IDEの右上にある「Agent Focus」ボタンをクリックすると、通常のIDE画面からAgent Focus画面へ切り替えることができます。また、必要に応じて通常のIDE画面へ戻ることも可能です。</p>



<h5 class="wp-block-heading">② 新しいセッションを作成する</h5>



<p class="wp-block-paragraph">Agent Focusでは、新規セッションを作成し、AIエージェントへ作業を依頼します。</p>



<p class="wp-block-paragraph">選択可能なワークフローの例は以下のとおりです。</p>



<ul class="wp-block-list">
<li>Spec</li>



<li>Plan</li>



<li>Bug Fix</li>



<li>Quick Spec</li>
</ul>



<h5 class="wp-block-heading">③ エージェントへ指示を出す</h5>



<p class="wp-block-paragraph">例えば、以下のような指示を入力します。</p>



<ul class="wp-block-list">
<li>ログイン機能を実装してください</li>



<li>ユーザー管理画面を作成してください</li>



<li>このバグの原因を調査してください</li>
</ul>



<p class="wp-block-paragraph">指示を入力すると、エージェントが要件分析や実装作業を開始します。</p>



<h5 class="wp-block-heading">④ 作業内容を確認する</h5>



<p class="wp-block-paragraph">エージェントが変更したファイルやコード差分は、右側のAuxiliary Panelに表示されます。</p>



<p class="wp-block-paragraph">開発者は内容をレビューし、問題がなければ承認します。また、必要に応じて追加の指示を出し、修正を依頼することもできます。</p>



<h3 class="wp-block-heading">3. Agent Focusの活用方法</h3>



<h5 class="wp-block-heading">① 機能開発</h5>



<p class="wp-block-paragraph">新機能の追加をエージェントへ依頼できます。</p>



<p class="wp-block-paragraph">例</p>



<ul class="wp-block-list">
<li>商品管理機能</li>



<li>会員登録機能</li>



<li>認証機能</li>
</ul>



<p class="wp-block-paragraph">などの実装を依頼し、設計からコーディングまで支援を受けることができます。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h5 class="wp-block-heading">② バグ修正</h5>



<p class="wp-block-paragraph">不具合情報を伝えることで、</p>



<ul class="wp-block-list">
<li>原因調査</li>



<li>修正案作成</li>



<li>テスト実施</li>
</ul>



<p class="wp-block-paragraph">までをエージェントが支援します。</p>



<p class="wp-block-paragraph">例えば、</p>



<p class="wp-block-paragraph">・ログイン画面でクラッシュする問題を修正してください</p>



<p class="wp-block-paragraph">と指示すると、関連コードを調査し、修正内容を提案してくれます。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h5 class="wp-block-heading">③ 複数タスクの並列実行</h5>



<p class="wp-block-paragraph">Agent Focusでは、複数のセッションを同時に管理できます。</p>



<p class="wp-block-paragraph">例として、以下のような運用が可能です。</p>



<figure class="wp-block-table"><div class="scrollable-table"><table class="has-fixed-layout"><tbody><tr><th>セッション</th><th>内容</th></tr><tr><td>Session1</td><td>新機能開発</td></tr><tr><td>Session2</td><td>バグ修正</td></tr><tr><td>Session3</td><td>テスト作成</td></tr></tbody></table></div></figure>



<p class="wp-block-paragraph">開発者は複数の作業状況を一覧で確認できるため、生産性の向上が期待できます。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h5 class="wp-block-heading">④ 仕様書との連携</h5>



<p class="wp-block-paragraph">Agent Focusは、KiroのSpec機能と連携しています。</p>



<p class="wp-block-paragraph">要件から以下の内容を生成し、仕様に沿った開発を進めることができます。</p>



<ul class="wp-block-list">
<li>Requirements（要件）</li>



<li>Design（設計）</li>



<li>Tasks（タスク）</li>
</ul>



<p class="wp-block-paragraph">これにより、開発途中での要件漏れや設計上の不整合を防ぐことができます。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h5 class="wp-block-heading">⑤ チーム開発</h5>



<p class="wp-block-paragraph">Agent Focusは、Steering機能と組み合わせることで効果を発揮します。</p>



<p class="wp-block-paragraph">Steeringに</p>



<ul class="wp-block-list">
<li>使用言語</li>



<li>フレームワーク</li>



<li>コーディング規約</li>
</ul>



<p class="wp-block-paragraph">などを登録しておくと、エージェントはそれらのルールに従って開発を進めることができます。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading">4. まとめ</h3>



<p class="wp-block-paragraph">Agent Focusは、AWS Kiroに搭載されたチャット中心の開発インターフェースであり、AIエージェントとの対話を通じて開発を進めるための機能です。従来のコード中心の開発スタイルとは異なり、開発者はエージェントへ指示を出し、進捗を管理する役割を担います。</p>



<p class="wp-block-paragraph">主な特徴として、以下が挙げられます。</p>



<ul class="wp-block-list">
<li>AIエージェントとの対話型開発</li>



<li>複数タスクの並列管理</li>



<li>Specとの連携による仕様駆動開発</li>



<li>Steeringとの連携による開発ルールの統一</li>
</ul>



<p class="wp-block-paragraph">今後、AIエージェントがソフトウェア開発において重要な役割を担うことが予想される中で、Agent Focusは「人間がコードを書く」開発スタイルから、「AIエージェントを管理しながら開発する」新しい開発スタイルを実現する重要な機能であると考えられます。</p><p>The post <a href="https://freestyle.nvo.jp/archives/7317">AWS KiroのAgent Focusとは</a> first appeared on <a href="https://freestyle.nvo.jp">FreeStyleVision</a>.</p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>【i-Reporter】帳票に値を返さない場合のi-Repo Gateway連携</title>
		<link>https://freestyle.nvo.jp/archives/7280?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=%25e3%2580%2590i-reporter%25e3%2580%2591%25e5%25b8%25b3%25e7%25a5%25a8%25e3%2581%25ab%25e5%2580%25a4%25e3%2582%2592%25e8%25bf%2594%25e3%2581%2595%25e3%2581%25aa%25e3%2581%2584%25e5%25a0%25b4%25e5%2590%2588%25e3%2581%25aei-repo-gateway%25e9%2580%25a3%25e6%2590%25ba</link>
		
		<dc:creator><![CDATA[arakawas]]></dc:creator>
		<pubDate>Thu, 20 Aug 2026 00:41:59 +0000</pubDate>
				<category><![CDATA[技術情報]]></category>
		<category><![CDATA[i-Reporter]]></category>
		<category><![CDATA[JSON]]></category>
		<guid isPermaLink="false">https://freestyle.nvo.jp/?p=7280</guid>

					<description><![CDATA[<p>はじめに i-ReporterのGatewayは、一般的には帳票へ何かしらのデータを自動入力するために利用されることが多い機能です。しかし今回、帳票への自動入力を目的とするのではなく、i-Reporterで入力したデータ [&#8230;]</p>
<p>The post <a href="https://freestyle.nvo.jp/archives/7280">【i-Reporter】帳票に値を返さない場合のi-Repo Gateway連携</a> first appeared on <a href="https://freestyle.nvo.jp">FreeStyleVision</a>.</p>]]></description>
										<content:encoded><![CDATA[<h2 class="wp-block-heading">はじめに</h2>



<p class="wp-block-paragraph">i-ReporterのGatewayは、一般的には帳票へ何かしらのデータを自動入力するために利用されることが多い機能です。<br>しかし今回、帳票への自動入力を目的とするのではなく、i-Reporterで入力したデータを外部システムへ連携するためのデータ送信機能としてGatewayを活用したので、本記事では外部システムへのデータ送信をする場合の注意点について記載します。</p>



<h2 class="wp-block-heading">Gateway連携とは？</h2>



<p class="wp-block-paragraph">ここで改めてi-Repo Gateway（旧称：ConMas Gateway）で何をすることができるかを簡単にまとめます。<br><br>≪概要≫<br>i-Repo Gatewayは外部データの情報をリアルタイムに取得するもので、i-Reporterの標準機能として利用できます。<br><br>≪主な機能・用途≫<br>①外部データファイル連携<br> 　外部のシステムから出力したファイル（CSVやExcelなど）のデータ情報を取得し、i-Reporterの帳票へ<br>　自動入力します。<br><br>② データベース連携<br>　外部システムまたは、i-Reporterのデータベースからデータを取得し、i-Reporterの帳票へ自動入力します。<br><br>③ 外部システムへのデータ出力<br>　i-Reporterの帳票に入力した値を、外部システムにデータ送信やデータベースに登録・更新します。<br><br>※本記事は③の内容になります。</p>



<h2 class="wp-block-heading">データ送信機能の活用紹介</h2>



<p class="wp-block-paragraph">今回活用したのは、i-Reporterの帳票に入力した値をデータベースへ登録・更新する用途ではなく、帳票の入力値を外部機器へ送信するためのデータ連携機能として利用しました。</p>



<figure class="wp-block-image size-large"><a href="https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/08/image.png"><img loading="lazy" decoding="async" width="1024" height="241" src="https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/08/image-1024x241.png" alt="" class="wp-image-7287" srcset="https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/08/image-1024x241.png 1024w, https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/08/image-300x71.png 300w, https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/08/image-768x181.png 768w, https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/08/image.png 1223w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<h2 class="wp-block-heading">データ送信検証①</h2>



<p class="wp-block-paragraph">メーカーのマニュアルでは、i-Reporter帳票へ値を反映することを前提としたPythonコードのサンプルが掲載されています。そのため、サンプルコードを参考に実装する場合は、処理結果をi-Reporter帳票のクラスターへ反映する仕組みとなります。<br>ですが、今回は外部機器へのデータ送信を目的としており、i-Reporter帳票へ値を反映する必要は無いため、サンプルコードとは異なりJSON形式でレスポンスを返却しない実装を試しました。<br><br>【検証手順】<br>①i-Reporterアプリでデータ送信するクラスターに値を入力し、Gatewayの実行ボタンをクリックする</p>



<figure class="wp-block-image size-full is-resized"><a href="https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/08/image-3.png"><img loading="lazy" decoding="async" width="931" height="483" src="https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/08/image-3.png" alt="" class="wp-image-7296" style="width:556px;height:auto" srcset="https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/08/image-3.png 931w, https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/08/image-3-300x156.png 300w, https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/08/image-3-768x398.png 768w, https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/08/image-3-160x84.png 160w" sizes="(max-width: 931px) 100vw, 931px" /></a></figure>



<p class="wp-block-paragraph">②画面が「通信中」の状態のままとなり、処理が終了しないという問題が発生</p>



<figure class="wp-block-image size-full is-resized"><a href="https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/08/image-4.png"><img loading="lazy" decoding="async" width="726" height="467" src="https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/08/image-4.png" alt="" class="wp-image-7297" style="width:437px;height:auto" srcset="https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/08/image-4.png 726w, https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/08/image-4-300x193.png 300w" sizes="(max-width: 726px) 100vw, 726px" /></a></figure>



<p class="wp-block-paragraph">【検証結果】<br>外部機器へのデータ送信自体は正常に行われましたが、i-Reporterアプリ側では処理完了の応答を受け取れず、画面が「通信中」の状態のままとなり、処理が終了しないという問題が発生しました。<br>この結果から、帳票へ値を反映しない場合であっても、Gatewayを実行する場合は必ずJSON形式でレスポンスを返却する必要があります。</p>



<h2 class="wp-block-heading">データ送信検証②</h2>



<p class="wp-block-paragraph">「データ送信検証①」の結果から、i-Reporter帳票へ値を反映しない場合であっても、Gatewayを実行する場合にはJSON形式でレスポンスを返却する必要があることが分かりました。<br>そのため、i-Reporter帳票へ値を反映せずJSON形式でレスポンスを返却する方法として、帳票のクラスター（Index0）へフォーカスを当てる内容をJSON形式で返却する方法を試しました。<br><br>【検証手順】<br>①i-Reporterアプリでデータ送信するクラスターに値を入力し、Gatewayの実行ボタンをクリックする</p>



<figure class="wp-block-image size-full is-resized"><a href="https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/08/image-5.png"><img loading="lazy" decoding="async" width="931" height="483" src="https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/08/image-5.png" alt="" class="wp-image-7300" style="width:568px;height:auto" srcset="https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/08/image-5.png 931w, https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/08/image-5-300x156.png 300w, https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/08/image-5-768x398.png 768w, https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/08/image-5-160x84.png 160w" sizes="(max-width: 931px) 100vw, 931px" /></a></figure>



<p class="wp-block-paragraph">②設定したクラスター（Index0）へフォーカスが自動で当たる</p>



<figure class="wp-block-image size-full is-resized"><a href="https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/08/image-6.png"><img loading="lazy" decoding="async" width="737" height="467" src="https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/08/image-6.png" alt="" class="wp-image-7301" style="width:459px;height:auto" srcset="https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/08/image-6.png 737w, https://freestyle.nvo.jp/__wp__/wp-content/uploads/2026/08/image-6-300x190.png 300w" sizes="(max-width: 737px) 100vw, 737px" /></a></figure>



<p class="wp-block-paragraph">【検証結果】<br>i-Reporter帳票のクラスターへフォーカスを当てる内容をJSON形式で返却する方法であれば、外部機器へのデータ送信とGateway処理の完了を問題なく実現できることを確認できました。<br>そのため、最終的にこの方法での開発を採用しました。</p>



<h2 class="wp-block-heading">まとめ</h2>



<p class="wp-block-paragraph">JSON形式のレスポンスを返却しない場合、外部機器へのデータ送信自体は成功していても、i-Reporterアプリ側では処理が完了したと認識されず、「通信中」の状態が継続してしまうことがわかりました。<br>そのため、Gatewayを利用して外部機器へデータ送信を行う場合でも、GatewayからのレスポンスとしてJSON形式のデータを必ず返却する必要があります。<br>また、今回のように帳票へ値を反映する必要がない場合は、特定のクラスターへフォーカスを当てる内容をJSON形式で返却することで、正常に処理を完了させることができます。</p><p>The post <a href="https://freestyle.nvo.jp/archives/7280">【i-Reporter】帳票に値を返さない場合のi-Repo Gateway連携</a> first appeared on <a href="https://freestyle.nvo.jp">FreeStyleVision</a>.</p>]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
