<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[株式会社ソニックムーブのフィード]]></title><description><![CDATA[ZennのPublication「株式会社ソニックムーブ」のRSSフィードです]]></description><link>https://zenn.dev/p/sonicmoov</link><image><url>https://static.zenn.studio/user-upload/avatar/64b604a738.jpeg</url><title>株式会社ソニックムーブのフィード</title><link>https://zenn.dev/p/sonicmoov</link></image><generator>zenn.dev</generator><lastBuildDate>Sat, 25 Apr 2026 20:56:40 GMT</lastBuildDate><atom:link href="https://zenn.dev/p/sonicmoov/feed" rel="self" type="application/rss+xml"/><language><![CDATA[ja]]></language><item><title><![CDATA[Android CLI と Android Skills の概要：Googleが提唱する『エージェント・ファースト』な開発環境を紐解く]]></title><description><![CDATA[
 はじめに
2026年4月、GoogleはAIエージェントによる開発支援を標準化するための新しいツール群「Android CLI」および「Android Skills」をリリースしました。
これにより、AIがAndroid開発のベストプラクティスを理解し、環境構築からデプロイまでを自律的に行えるエコシステムが整いつつあります。
本記事では、その概要と導入方法、主要な機能についてまとめます。


 Android CLI
Android CLIは、AIエージェントと開発ツールを繋ぐための新しいインターフェースです。

 全体像
関係性を図解すると以下のようになります。

 概要


発表...]]></description><link>https://zenn.dev/sonicmoov/articles/2d6b8de8da0c14</link><guid isPermaLink="true">https://zenn.dev/sonicmoov/articles/2d6b8de8da0c14</guid><pubDate>Fri, 24 Apr 2026 01:57:16 GMT</pubDate><enclosure url="https://res.cloudinary.com/zenn/image/upload/s--Mo3mhsBa--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_55:Android%2520CLI%2520%25E3%2581%25A8%2520Android%2520Skills%2520%25E3%2581%25AE%25E6%25A6%2582%25E8%25A6%2581%25EF%25BC%259AGoogle%25E3%2581%258C%25E6%258F%2590%25E5%2594%25B1%25E3%2581%2599%25E3%2582%258B%25E3%2580%258E%25E3%2582%25A8%25E3%2583%25BC%25E3%2582%25B8%25E3%2582%25A7%25E3%2583%25B3%25E3%2583%2588%25E3%2583%25BB%25E3%2583%2595%25E3%2582%25A1%25E3%2583%25BC%25E3%2582%25B9%25E3%2583%2588...%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_34:%25E5%25B1%25B1%25E5%25B4%258E%25E5%258F%258B%25E8%25BC%2594%2Cx_220%2Cy_108/bo_3px_solid_rgb:d6e3ed%2Cg_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9zdGF0aWMuemVubi5zdHVkaW8vdXNlci11cGxvYWQvYXZhdGFyLzY0YjYwNGE3MzguanBlZw==%2Cr_20%2Cw_90%2Cx_92%2Cy_102/co_rgb:6e7b85%2Cg_south_west%2Cl_text:notosansjp-medium.otf_30:%25E6%25A0%25AA%25E5%25BC%258F%25E4%25BC%259A%25E7%25A4%25BE%25E3%2582%25BD%25E3%2583%258B%25E3%2583%2583%25E3%2582%25AF%25E3%2583%25A0%25E3%2583%25BC%25E3%2583%2596%2Cx_220%2Cy_160/bo_4px_solid_white%2Cg_south_west%2Ch_50%2Cl_fetch:aHR0cHM6Ly9zdGF0aWMuemVubi5zdHVkaW8vdXNlci11cGxvYWQvYXZhdGFyLzMwYTdiZDU3Y2QuanBlZw==%2Cr_max%2Cw_50%2Cx_139%2Cy_84/v1627283836/default/og-base-w1200-v2.png?_a=BACAGSGT" length="0" type="false"/><dc:creator>山崎友輔</dc:creator></item><item><title><![CDATA[ZennのPVデータをLooker Studioで可視化して組織に共有した話]]></title><description><![CDATA[どうもどうも。
安立です。
久しぶりの投稿です。
今回は、組織内共有が目的で、ZennのPublicationの統計データをLooker Studioで可視化した話です。

 なぜやろうと思ったか
ソニックムーブでは複数人がZennのPublicationで記事を書いています。
ZennのPublicationには統計データを確認できる機能がありますが、無料プランでは直近2週間分のデータしか閲覧できません。
それ以上の期間を見るには「Publication Pro」（有料プラン）への加入が必要になります。
組織としてZennでのアウトプットをお試しで始めたということもあり、課金するという...]]></description><link>https://zenn.dev/sonicmoov/articles/4be7fca448a38e</link><guid isPermaLink="true">https://zenn.dev/sonicmoov/articles/4be7fca448a38e</guid><pubDate>Mon, 20 Apr 2026 23:00:11 GMT</pubDate><enclosure url="https://res.cloudinary.com/zenn/image/upload/s--eXcKuhBI--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_55:Zenn%25E3%2581%25AEPV%25E3%2583%2587%25E3%2583%25BC%25E3%2582%25BF%25E3%2582%2592Looker%2520Studio%25E3%2581%25A7%25E5%258F%25AF%25E8%25A6%2596%25E5%258C%2596%25E3%2581%2597%25E3%2581%25A6%25E7%25B5%2584%25E7%25B9%2594%25E3%2581%25AB%25E5%2585%25B1%25E6%259C%2589%25E3%2581%2597%25E3%2581%259F%25E8%25A9%25B1%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_34:%25E5%25AE%2589%25E7%25AB%258B%2Cx_220%2Cy_108/bo_3px_solid_rgb:d6e3ed%2Cg_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9zdGF0aWMuemVubi5zdHVkaW8vdXNlci11cGxvYWQvYXZhdGFyLzY0YjYwNGE3MzguanBlZw==%2Cr_20%2Cw_90%2Cx_92%2Cy_102/co_rgb:6e7b85%2Cg_south_west%2Cl_text:notosansjp-medium.otf_30:%25E6%25A0%25AA%25E5%25BC%258F%25E4%25BC%259A%25E7%25A4%25BE%25E3%2582%25BD%25E3%2583%258B%25E3%2583%2583%25E3%2582%25AF%25E3%2583%25A0%25E3%2583%25BC%25E3%2583%2596%2Cx_220%2Cy_160/bo_4px_solid_white%2Cg_south_west%2Ch_50%2Cl_fetch:aHR0cHM6Ly9zdGF0aWMuemVubi5zdHVkaW8vdXNlci11cGxvYWQvYXZhdGFyLzQ5OTlmM2U4MGIuanBlZw==%2Cr_max%2Cw_50%2Cx_139%2Cy_84/v1627283836/default/og-base-w1200-v2.png?_a=BACAGSGT" length="0" type="false"/><dc:creator>安立</dc:creator></item><item><title><![CDATA[Google Calendar API使ってカレンダー情報取得してみた]]></title><description><![CDATA[
 はじめに
バックエンドエンジニアの角方です！
Google Calendar APIを使いたいなーと思い色々調べてみると、OAuth 2.0だの認証情報だの、実装に辿り着く前に設定の多さで頭が混乱した経験はありませんか？
（私は業務でその状態に陥りました…泣)
設定項目が多岐にわたり、「結局どこを触ればいいんだっけ？」と迷子になりがちなので、今回は自分自身の備忘録まとめます。
本記事は、「Hello World」と同じようなノリとして、「自分の予定をコンソールに出すだけ」、あえて高度な機能や複雑なことはせず、まずは「curlで予定が取れた！」というところを目標にしてます！

 ゴール...]]></description><link>https://zenn.dev/sonicmoov/articles/6644f811d73ca3</link><guid isPermaLink="true">https://zenn.dev/sonicmoov/articles/6644f811d73ca3</guid><pubDate>Thu, 16 Apr 2026 08:22:03 GMT</pubDate><enclosure url="https://res.cloudinary.com/zenn/image/upload/s--Uni_CJWl--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_55:Google%2520Calendar%2520API%25E4%25BD%25BF%25E3%2581%25A3%25E3%2581%25A6%25E3%2582%25AB%25E3%2583%25AC%25E3%2583%25B3%25E3%2583%2580%25E3%2583%25BC%25E6%2583%2585%25E5%25A0%25B1%25E5%258F%2596%25E5%25BE%2597%25E3%2581%2597%25E3%2581%25A6%25E3%2581%25BF%25E3%2581%259F%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_34:SMV_%25E8%25A7%2592%25E6%2596%25B9%2Cx_220%2Cy_108/bo_3px_solid_rgb:d6e3ed%2Cg_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9zdGF0aWMuemVubi5zdHVkaW8vdXNlci11cGxvYWQvYXZhdGFyLzY0YjYwNGE3MzguanBlZw==%2Cr_20%2Cw_90%2Cx_92%2Cy_102/co_rgb:6e7b85%2Cg_south_west%2Cl_text:notosansjp-medium.otf_30:%25E6%25A0%25AA%25E5%25BC%258F%25E4%25BC%259A%25E7%25A4%25BE%25E3%2582%25BD%25E3%2583%258B%25E3%2583%2583%25E3%2582%25AF%25E3%2583%25A0%25E3%2583%25BC%25E3%2583%2596%2Cx_220%2Cy_160/bo_4px_solid_white%2Cg_south_west%2Ch_50%2Cl_fetch:aHR0cHM6Ly9saDMuZ29vZ2xldXNlcmNvbnRlbnQuY29tL2EvQUNnOG9jSUJmMlZYcjZPS1h0azBYQmdfa0pneEFpcTN4eW1jakdJeXVNRVZvR2hxeDBrSThmRT1zOTYtYw==%2Cr_max%2Cw_50%2Cx_139%2Cy_84/v1627283836/default/og-base-w1200-v2.png?_a=BACAGSGT" length="0" type="false"/><dc:creator>SMV_角方</dc:creator></item><item><title><![CDATA[Claude in Chromeが便利すぎて不満だったので、自分専用のChrome拡張を作った]]></title><description><![CDATA[
 はじめに
最近、Claude in ChromeというChrome拡張をよく使っている。
ブラウザ上で調べ物をしながらAIに質問したり、記事を要約させたり、ちょっとしたブラウザ操作を頼んだり。大抵のことはこれでできてしまう。正直、ものすごく便利だ。
ただ一つ不満がある。AIモデルがClaudeしか使えない。
Claudeのサブスクは持っているが、コーディングにも使うのでトークンの消費が激しい。Weekly Limitの到達が早い。現在最強のAIモデルだということは承知しているが、正直なところ、ブラウザ作業くらいは安いモデルで済ませたい場面がほとんどだ。
そこでふと思った。

自分専用...]]></description><link>https://zenn.dev/sonicmoov/articles/d7703ab8c16515</link><guid isPermaLink="true">https://zenn.dev/sonicmoov/articles/d7703ab8c16515</guid><pubDate>Thu, 16 Apr 2026 00:28:26 GMT</pubDate><enclosure url="https://res.cloudinary.com/zenn/image/upload/s--C1TOeyvu--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_55:Claude%2520in%2520Chrome%25E3%2581%258C%25E4%25BE%25BF%25E5%2588%25A9%25E3%2581%2599%25E3%2581%258E%25E3%2581%25A6%25E4%25B8%258D%25E6%25BA%2580%25E3%2581%25A0%25E3%2581%25A3%25E3%2581%259F%25E3%2581%25AE%25E3%2581%25A7%25E3%2580%2581%25E8%2587%25AA%25E5%2588%2586%25E5%25B0%2582%25E7%2594%25A8%25E3%2581%25AEChrome%25E6%258B%25A1%25E5%25BC%25B5%25E3%2582%2592%25E4%25BD%259C%25E3%2581%25A3%25E3%2581%259F%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_34:takemo101%2Cx_220%2Cy_108/bo_3px_solid_rgb:d6e3ed%2Cg_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9zdGF0aWMuemVubi5zdHVkaW8vdXNlci11cGxvYWQvYXZhdGFyLzY0YjYwNGE3MzguanBlZw==%2Cr_20%2Cw_90%2Cx_92%2Cy_102/co_rgb:6e7b85%2Cg_south_west%2Cl_text:notosansjp-medium.otf_30:%25E6%25A0%25AA%25E5%25BC%258F%25E4%25BC%259A%25E7%25A4%25BE%25E3%2582%25BD%25E3%2583%258B%25E3%2583%2583%25E3%2582%25AF%25E3%2583%25A0%25E3%2583%25BC%25E3%2583%2596%2Cx_220%2Cy_160/bo_4px_solid_white%2Cg_south_west%2Ch_50%2Cl_fetch:aHR0cHM6Ly9zdGF0aWMuemVubi5zdHVkaW8vdXNlci11cGxvYWQvYXZhdGFyL2Q3NDBmZGFmNmIuanBlZw==%2Cr_max%2Cw_50%2Cx_139%2Cy_84/v1627283836/default/og-base-w1200-v2.png?_a=BACAGSGT" length="0" type="false"/><dc:creator>takemo101</dc:creator></item><item><title><![CDATA[【Claude Code】Agent teamsとSubagent並列実行比較メモ]]></title><description><![CDATA[
 はじめに
こんにちは、ソニックムーブでフロントエンドエンジニアをしているchiakiです！
今回は2025年から2026年初頭にかけてリリースされた2つのマルチエージェント機能についてメモ程度にまとめた記事となります！

 各機能の紹介
Agent teamsは、複数のAgentを個別のClaudeインスタンスで起動しチームを組むことができます。Subagentの並列実行と異なり、タスク進行時にチームメンバー間でのコミュニケーションを取りながらお互いタスクを要求するようになります。
https://code.claude.com/docs/ja/agent-teams#when-to...]]></description><link>https://zenn.dev/sonicmoov/articles/agent-teams-subagent-comparison</link><guid isPermaLink="true">https://zenn.dev/sonicmoov/articles/agent-teams-subagent-comparison</guid><pubDate>Wed, 15 Apr 2026 19:19:37 GMT</pubDate><enclosure url="https://res.cloudinary.com/zenn/image/upload/s--FTPFHy6L--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_55:%25E3%2580%2590Claude%2520Code%25E3%2580%2591Agent%2520teams%25E3%2581%25A8Subagent%25E4%25B8%25A6%25E5%2588%2597%25E5%25AE%259F%25E8%25A1%258C%25E6%25AF%2594%25E8%25BC%2583%25E3%2583%25A1%25E3%2583%25A2%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_34:chiaki%2Cx_220%2Cy_108/bo_3px_solid_rgb:d6e3ed%2Cg_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9zdGF0aWMuemVubi5zdHVkaW8vdXNlci11cGxvYWQvYXZhdGFyLzY0YjYwNGE3MzguanBlZw==%2Cr_20%2Cw_90%2Cx_92%2Cy_102/co_rgb:6e7b85%2Cg_south_west%2Cl_text:notosansjp-medium.otf_30:%25E6%25A0%25AA%25E5%25BC%258F%25E4%25BC%259A%25E7%25A4%25BE%25E3%2582%25BD%25E3%2583%258B%25E3%2583%2583%25E3%2582%25AF%25E3%2583%25A0%25E3%2583%25BC%25E3%2583%2596%2Cx_220%2Cy_160/bo_4px_solid_white%2Cg_south_west%2Ch_50%2Cl_fetch:aHR0cHM6Ly9zdGF0aWMuemVubi5zdHVkaW8vdXNlci11cGxvYWQvYXZhdGFyLzFhNDIxNTllYTMuanBlZw==%2Cr_max%2Cw_50%2Cx_139%2Cy_84/v1627283836/default/og-base-w1200-v2.png?_a=BACAGSGT" length="0" type="false"/><dc:creator>chiaki</dc:creator></item><item><title><![CDATA[フロントエンド初学者が1時間でshadcn/uiを触ってみた【1時間シリーズ #1】]]></title><description><![CDATA[
 はじめに
勉強しようと思っても「気づいたら時間が溶けていた」「何から始めればいいかわからない」「学ぶことの規模を大きくしすぎて途方に暮れる」ということが多く、学びはしていても定期的に続けられていませんでした。また、自分が取り組む作業がどれくらいでできそうかの見積もりが、全くあてにならないことも痛感していました。
そこで、「1時間で学んだことをそのまま記事にする」 という縛りを作ることにしました。時間を決めて集中して学ぶ習慣をつけながら、進捗や見積もりのズレも正直に記録していきます。
これによって以下の2つを目指します。

定期的な学びの実現
見積もり精度の向上

!
1時間シリーズの...]]></description><link>https://zenn.dev/sonicmoov/articles/253c294edec2c9</link><guid isPermaLink="true">https://zenn.dev/sonicmoov/articles/253c294edec2c9</guid><pubDate>Mon, 13 Apr 2026 11:03:27 GMT</pubDate><enclosure url="https://res.cloudinary.com/zenn/image/upload/s--XHIWrAmj--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_55:%25E3%2583%2595%25E3%2583%25AD%25E3%2583%25B3%25E3%2583%2588%25E3%2582%25A8%25E3%2583%25B3%25E3%2583%2589%25E5%2588%259D%25E5%25AD%25A6%25E8%2580%2585%25E3%2581%258C1%25E6%2599%2582%25E9%2596%2593%25E3%2581%25A7shadcn%252Fui%25E3%2582%2592%25E8%25A7%25A6%25E3%2581%25A3%25E3%2581%25A6%25E3%2581%25BF%25E3%2581%259F%25E3%2580%25901%25E6%2599%2582%25E9%2596%2593%25E3%2582%25B7%25E3%2583%25AA%25E3%2583%25BC%25E3%2582%25BA%2520%25231%25E3%2580%2591%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_34:Ishiguro006%2Cx_220%2Cy_108/bo_3px_solid_rgb:d6e3ed%2Cg_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9zdGF0aWMuemVubi5zdHVkaW8vdXNlci11cGxvYWQvYXZhdGFyLzY0YjYwNGE3MzguanBlZw==%2Cr_20%2Cw_90%2Cx_92%2Cy_102/co_rgb:6e7b85%2Cg_south_west%2Cl_text:notosansjp-medium.otf_30:%25E6%25A0%25AA%25E5%25BC%258F%25E4%25BC%259A%25E7%25A4%25BE%25E3%2582%25BD%25E3%2583%258B%25E3%2583%2583%25E3%2582%25AF%25E3%2583%25A0%25E3%2583%25BC%25E3%2583%2596%2Cx_220%2Cy_160/bo_4px_solid_white%2Cg_south_west%2Ch_50%2Cl_fetch:aHR0cHM6Ly9zdGF0aWMuemVubi5zdHVkaW8vdXNlci11cGxvYWQvYXZhdGFyL2JkNTEzNDNjNDAuanBlZw==%2Cr_max%2Cw_50%2Cx_139%2Cy_84/v1627283836/default/og-base-w1200-v2.png?_a=BACAGSGT" length="0" type="false"/><dc:creator>Ishiguro006</dc:creator></item><item><title><![CDATA[TCA (The Composable Architecture) と MVVM の比較]]></title><description><![CDATA[
 TCA (The Composable Architecture) vs MVVM
アプリ開発で新規プロジェクトを立ち上げる際、どの「アーキテクチャ」にするか考えることになります。
本記事では、iOSのアプリ開発で採用事例が多い TCA (The Composable Architecture) と、MVVMを比較します。
!
前提事項：比較の難しさについて
TCAは「アプリ全体の設計を厳格に規定するフル機能のフレームワーク」であるのに対し、MVVMは主に「プレゼンテーション層の設計パターン」です。
実務でMVVMを採用する場合は、Repositoryパターン、DIコンテナなどを別途...]]></description><link>https://zenn.dev/sonicmoov/articles/c7fa37d4952bbc</link><guid isPermaLink="true">https://zenn.dev/sonicmoov/articles/c7fa37d4952bbc</guid><pubDate>Mon, 13 Apr 2026 04:13:32 GMT</pubDate><enclosure url="https://res.cloudinary.com/zenn/image/upload/s--NS04FhzE--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_55:TCA%2520%2528The%2520Composable%2520Architecture%2529%2520%25E3%2581%25A8%2520MVVM%2520%25E3%2581%25AE%25E6%25AF%2594%25E8%25BC%2583%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_34:s.takahashi%2Cx_220%2Cy_108/bo_3px_solid_rgb:d6e3ed%2Cg_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9zdGF0aWMuemVubi5zdHVkaW8vdXNlci11cGxvYWQvYXZhdGFyLzY0YjYwNGE3MzguanBlZw==%2Cr_20%2Cw_90%2Cx_92%2Cy_102/co_rgb:6e7b85%2Cg_south_west%2Cl_text:notosansjp-medium.otf_30:%25E6%25A0%25AA%25E5%25BC%258F%25E4%25BC%259A%25E7%25A4%25BE%25E3%2582%25BD%25E3%2583%258B%25E3%2583%2583%25E3%2582%25AF%25E3%2583%25A0%25E3%2583%25BC%25E3%2583%2596%2Cx_220%2Cy_160/bo_4px_solid_white%2Cg_south_west%2Ch_50%2Cl_fetch:aHR0cHM6Ly9saDMuZ29vZ2xldXNlcmNvbnRlbnQuY29tL2EvQUNnOG9jS0YzZWlMTzcwQzJ6ZlJRZWpzQy1nYmpYaEllWFJjN2FsMTJ0YWhFLU10NVVDUHdnPXM5Ni1j%2Cr_max%2Cw_50%2Cx_139%2Cy_84/v1627283836/default/og-base-w1200-v2.png?_a=BACAGSGT" length="0" type="false"/><dc:creator>s.takahashi</dc:creator></item><item><title><![CDATA[お父さん、ゲーム作れるの？]]></title><description><![CDATA[2026年5月3日(日)
僕は、子ども達と一緒にインディゲーム展示会 「東京ゲームダンジョン12」 に出展します。
https://tokyogamedungeon.com
出展するゲームは、3つ。

僕：「Slime Ten Puzzle」

長男：「人狼を基盤にした推理ゲーム」

次男：「SCPをモチーフにしたアクションゲーム」


……ここまで書いて、少し不思議な気分になります。
この未来は最初から決まっていたわけじゃなくて、たった一言から始まったからです。


 ある日、子どもに聞かれた

「お父さん、ゲーム作れるの？」

当時の僕は、会社でキティちゃんやドコモダケなどのIPを利...]]></description><link>https://zenn.dev/sonicmoov/articles/76a5098905c978</link><guid isPermaLink="true">https://zenn.dev/sonicmoov/articles/76a5098905c978</guid><pubDate>Fri, 10 Apr 2026 03:00:10 GMT</pubDate><enclosure url="https://res.cloudinary.com/zenn/image/upload/s--MfMW6gg3--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_55:%25E3%2581%258A%25E7%2588%25B6%25E3%2581%2595%25E3%2582%2593%25E3%2580%2581%25E3%2582%25B2%25E3%2583%25BC%25E3%2583%25A0%25E4%25BD%259C%25E3%2582%258C%25E3%2582%258B%25E3%2581%25AE%25EF%25BC%259F%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_34:Toshiyuki%2520Ienaga%2Cx_220%2Cy_108/bo_3px_solid_rgb:d6e3ed%2Cg_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9zdGF0aWMuemVubi5zdHVkaW8vdXNlci11cGxvYWQvYXZhdGFyLzY0YjYwNGE3MzguanBlZw==%2Cr_20%2Cw_90%2Cx_92%2Cy_102/co_rgb:6e7b85%2Cg_south_west%2Cl_text:notosansjp-medium.otf_30:%25E6%25A0%25AA%25E5%25BC%258F%25E4%25BC%259A%25E7%25A4%25BE%25E3%2582%25BD%25E3%2583%258B%25E3%2583%2583%25E3%2582%25AF%25E3%2583%25A0%25E3%2583%25BC%25E3%2583%2596%2Cx_220%2Cy_160/bo_4px_solid_white%2Cg_south_west%2Ch_50%2Cl_fetch:aHR0cHM6Ly9saDMuZ29vZ2xldXNlcmNvbnRlbnQuY29tL2EtL0FPaDE0R2dQTDUyMElZMWdJVlBqbHBKNnc4cW9XTm41bk95U2lkYXM2TlBpPXM5Ni1j%2Cr_max%2Cw_50%2Cx_139%2Cy_84/v1627283836/default/og-base-w1200-v2.png?_a=BACAGSGT" length="0" type="false"/><dc:creator>Toshiyuki Ienaga</dc:creator></item><item><title><![CDATA[WebGPUでGPT-2をフルスクラッチ実装してブラウザで動かしてみた]]></title><description><![CDATA[
 はじめに
WebGPU Compute Shaderを使って、GPT-2の推論パイプラインをブラウザ上でフルスクラッチ実装した。ONNX Runtime WebやTransformers.jsといった既存ライブラリには一切頼らず、行列積（GEMM）からAttention、LayerNorm、Softmaxまで、全てのGPUカーネルをWGSLで手書きしている。
結論から言うと、ブラウザ上でLLMを実用的に動かすのは現時点ではかなり厳しいと感じた。この記事ではプロジェクトの全体像を紹介した上で、WebGPUでの構築とブラウザ上での動作それぞれの制約について述べる。

 WebGPUとは
...]]></description><link>https://zenn.dev/sonicmoov/articles/93c46333fdf57c</link><guid isPermaLink="true">https://zenn.dev/sonicmoov/articles/93c46333fdf57c</guid><pubDate>Tue, 31 Mar 2026 01:00:07 GMT</pubDate><enclosure url="https://res.cloudinary.com/zenn/image/upload/s--QsxXLaV0--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_55:WebGPU%25E3%2581%25A7GPT-2%25E3%2582%2592%25E3%2583%2595%25E3%2583%25AB%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25A9%25E3%2583%2583%25E3%2583%2581%25E5%25AE%259F%25E8%25A3%2585%25E3%2581%2597%25E3%2581%25A6%25E3%2583%2596%25E3%2583%25A9%25E3%2582%25A6%25E3%2582%25B6%25E3%2581%25A7%25E5%258B%2595%25E3%2581%258B%25E3%2581%2597%25E3%2581%25A6%25E3%2581%25BF%25E3%2581%259F%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_34:r.nakazaki%2Cx_220%2Cy_108/bo_3px_solid_rgb:d6e3ed%2Cg_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9zdGF0aWMuemVubi5zdHVkaW8vdXNlci11cGxvYWQvYXZhdGFyLzY0YjYwNGE3MzguanBlZw==%2Cr_20%2Cw_90%2Cx_92%2Cy_102/co_rgb:6e7b85%2Cg_south_west%2Cl_text:notosansjp-medium.otf_30:%25E6%25A0%25AA%25E5%25BC%258F%25E4%25BC%259A%25E7%25A4%25BE%25E3%2582%25BD%25E3%2583%258B%25E3%2583%2583%25E3%2582%25AF%25E3%2583%25A0%25E3%2583%25BC%25E3%2583%2596%2Cx_220%2Cy_160/bo_4px_solid_white%2Cg_south_west%2Ch_50%2Cl_fetch:aHR0cHM6Ly9saDMuZ29vZ2xldXNlcmNvbnRlbnQuY29tL2EvQUNnOG9jSzRzd2RuZ181WjM5VUdEY3I1NW1jdmpPVXpLbkVoSkpqbFB6MUNxOTBLTzdON1p2UT1zOTYtYw==%2Cr_max%2Cw_50%2Cx_139%2Cy_84/v1627283836/default/og-base-w1200-v2.png?_a=BACAGSGT" length="0" type="false"/><dc:creator>r.nakazaki</dc:creator></item><item><title><![CDATA[ソニックムーブ入社前インターンの総括！]]></title><description><![CDATA[
 はじめに
2025年12月、内定先のソニックムーブから会社貸与のMacBookProが届きました。
個人開発で使い慣れたマシンとは違う、業務デバイス特有の安心感と少しの緊張感。ここから、僕の入社前インターンが始まります。
この記事は、約3ヶ月間のインターンで経験したことの記録です。同じようにインターンを控えている学生や、「入社前って何するんだろう」と気になっているエンジニアの方に、何か参考になれば嬉しいです。

 フルリモートという働き方
業務形態はフルリモート。東京の本社に出社することは一度もなかった。
最初はリモートだけで大丈夫なのかなと思っていたけど、結論から言うと全然大丈夫だ...]]></description><link>https://zenn.dev/sonicmoov/articles/98c9ff83560b84</link><guid isPermaLink="true">https://zenn.dev/sonicmoov/articles/98c9ff83560b84</guid><pubDate>Mon, 30 Mar 2026 08:05:29 GMT</pubDate><enclosure url="https://res.cloudinary.com/zenn/image/upload/s--eLrnkEwa--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_55:%25E3%2582%25BD%25E3%2583%258B%25E3%2583%2583%25E3%2582%25AF%25E3%2583%25A0%25E3%2583%25BC%25E3%2583%2596%25E5%2585%25A5%25E7%25A4%25BE%25E5%2589%258D%25E3%2582%25A4%25E3%2583%25B3%25E3%2582%25BF%25E3%2583%25BC%25E3%2583%25B3%25E3%2581%25AE%25E7%25B7%258F%25E6%258B%25AC%25EF%25BC%2581%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_34:SMV-%25E6%25B7%25B1%25E4%25BA%2595%2Cx_220%2Cy_108/bo_3px_solid_rgb:d6e3ed%2Cg_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9zdGF0aWMuemVubi5zdHVkaW8vdXNlci11cGxvYWQvYXZhdGFyLzY0YjYwNGE3MzguanBlZw==%2Cr_20%2Cw_90%2Cx_92%2Cy_102/co_rgb:6e7b85%2Cg_south_west%2Cl_text:notosansjp-medium.otf_30:%25E6%25A0%25AA%25E5%25BC%258F%25E4%25BC%259A%25E7%25A4%25BE%25E3%2582%25BD%25E3%2583%258B%25E3%2583%2583%25E3%2582%25AF%25E3%2583%25A0%25E3%2583%25BC%25E3%2583%2596%2Cx_220%2Cy_160/bo_4px_solid_white%2Cg_south_west%2Ch_50%2Cl_fetch:aHR0cHM6Ly9saDMuZ29vZ2xldXNlcmNvbnRlbnQuY29tL2EvQUNnOG9jTEhvaTZORzRhMmNYR2JWa2Rla1RtRFZjb0lHVWdwNDFwNlVXS0RXb3lOVEVVWkx3PXMyNTAtYw==%2Cr_max%2Cw_50%2Cx_139%2Cy_84/v1627283836/default/og-base-w1200-v2.png?_a=BACAGSGT" length="0" type="false"/><dc:creator>SMV-深井</dc:creator></item><item><title><![CDATA[Claude Code × devcontainer で起きやすいプロジェクトメモリ衝突と対策Tips]]></title><description><![CDATA[
 はじめに
Claude Codeをdevcontainer内で使っていると、「あれ？別のプロジェクトの記憶が混ざってる...？」という現象に遭遇することがあります。
Claude Codeのプロジェクトメモリは、作業中のプロジェクトを識別したうえで管理されます。通常はgitリポジトリ情報や作業ディレクトリのパスが手がかりになりますが、devcontainerではコンテナ内のワークスペースパスが固定化されやすく、設定次第で複数プロジェクトが同一プロジェクトとして扱われることがあります。
本質的には「Claude Codeの問題」というより、**コンテナ内で"プロジェクトをどう一意に識別...]]></description><link>https://zenn.dev/sonicmoov/articles/f1d534f33d2581</link><guid isPermaLink="true">https://zenn.dev/sonicmoov/articles/f1d534f33d2581</guid><pubDate>Mon, 30 Mar 2026 03:00:48 GMT</pubDate><enclosure url="https://res.cloudinary.com/zenn/image/upload/s--4ztmvG97--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_55:Claude%2520Code%2520%25C3%2597%2520devcontainer%2520%25E3%2581%25A7%25E8%25B5%25B7%25E3%2581%258D%25E3%2582%2584%25E3%2581%2599%25E3%2581%2584%25E3%2583%2597%25E3%2583%25AD%25E3%2582%25B8%25E3%2582%25A7%25E3%2582%25AF%25E3%2583%2588%25E3%2583%25A1%25E3%2583%25A2%25E3%2583%25AA%25E8%25A1%259D%25E7%25AA%2581%25E3%2581%25A8%25E5%25AF%25BE%25E7%25AD%2596Tips%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_34:m.okamura%2Cx_220%2Cy_108/bo_3px_solid_rgb:d6e3ed%2Cg_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9zdGF0aWMuemVubi5zdHVkaW8vdXNlci11cGxvYWQvYXZhdGFyLzY0YjYwNGE3MzguanBlZw==%2Cr_20%2Cw_90%2Cx_92%2Cy_102/co_rgb:6e7b85%2Cg_south_west%2Cl_text:notosansjp-medium.otf_30:%25E6%25A0%25AA%25E5%25BC%258F%25E4%25BC%259A%25E7%25A4%25BE%25E3%2582%25BD%25E3%2583%258B%25E3%2583%2583%25E3%2582%25AF%25E3%2583%25A0%25E3%2583%25BC%25E3%2583%2596%2Cx_220%2Cy_160/bo_4px_solid_white%2Cg_south_west%2Ch_50%2Cl_fetch:aHR0cHM6Ly9saDMuZ29vZ2xldXNlcmNvbnRlbnQuY29tL2EvQUNnOG9jSUc1eWZsTFFTVldHR2RacWE4eTJKOE0tbWFYeTlrdDBDNERVNGFMSDAtSjBldmdtNEw9czk2LWM=%2Cr_max%2Cw_50%2Cx_139%2Cy_84/v1627283836/default/og-base-w1200-v2.png?_a=BACAGSGT" length="0" type="false"/><dc:creator>m.okamura</dc:creator></item><item><title><![CDATA[Kotlinのクラス委譲によるComposition]]></title><description><![CDATA[
 はじめに
素直にコンポジションをやろうとすると、単に処理を横流しするだけのメソッドを大量に書く必要があり、ちょっと辛いです。
override fun loginfo() { logger.loginfo() }　みたいなやつです。
Kotlinだと、委譲がサポートされていて、by キーワードを使うことで簡単に書けます。
Kotlin公式ドキュメント: https://kotlinlang.org/docs/delegation.html

 by を使った委譲の基本
インターフェースの実装を、コンストラクタで受け取ったインスタンスに委譲できる。
interface Base {
 ...]]></description><link>https://zenn.dev/sonicmoov/articles/b8521a455382f7</link><guid isPermaLink="true">https://zenn.dev/sonicmoov/articles/b8521a455382f7</guid><pubDate>Mon, 30 Mar 2026 01:44:32 GMT</pubDate><enclosure url="https://res.cloudinary.com/zenn/image/upload/s--e0IQXdtL--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_55:Kotlin%25E3%2581%25AE%25E3%2582%25AF%25E3%2583%25A9%25E3%2582%25B9%25E5%25A7%2594%25E8%25AD%25B2%25E3%2581%25AB%25E3%2582%2588%25E3%2582%258BComposition%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_34:AZT%2Cx_220%2Cy_108/bo_3px_solid_rgb:d6e3ed%2Cg_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9zdGF0aWMuemVubi5zdHVkaW8vdXNlci11cGxvYWQvYXZhdGFyLzY0YjYwNGE3MzguanBlZw==%2Cr_20%2Cw_90%2Cx_92%2Cy_102/co_rgb:6e7b85%2Cg_south_west%2Cl_text:notosansjp-medium.otf_30:%25E6%25A0%25AA%25E5%25BC%258F%25E4%25BC%259A%25E7%25A4%25BE%25E3%2582%25BD%25E3%2583%258B%25E3%2583%2583%25E3%2582%25AF%25E3%2583%25A0%25E3%2583%25BC%25E3%2583%2596%2Cx_220%2Cy_160/bo_4px_solid_white%2Cg_south_west%2Ch_50%2Cl_fetch:aHR0cHM6Ly9saDMuZ29vZ2xldXNlcmNvbnRlbnQuY29tL2EvQUNnOG9jS0IyZC00UUM4MWlMM1BwU1pKTnhGcTIxdVdaZjBFcnN3bU5hV3haeXVfdjk5VzFUQT1zOTYtYw==%2Cr_max%2Cw_50%2Cx_139%2Cy_84/v1627283836/default/og-base-w1200-v2.png?_a=BACAGSGT" length="0" type="false"/><dc:creator>AZT</dc:creator></item><item><title><![CDATA[LivewireとInertia.jsの長所・短所とユースケース]]></title><description><![CDATA[
 Livewire vs Inertia.js
この記事を読んでいる方はご存知だと思いますが、Laravelの新規プロジェクト作成時にどういう構造のアプリが欲しいのかプロンプトがいくつかあります。その中から、比較するのはLivewireとInertiaJs。より良い選択できるように長所と短所を説明していきます。

 1. 根本的な仕組みの違い
まず、両者の決定的な違いを理解しましょう。それは「どこでHTMLが作られるか」という点です。


Livewire: サーバーサイドでHTMLをレンダリングします。ユーザーが何か操作をするたびに、裏側でAjaxリクエストが飛び、サーバーが新しいH...]]></description><link>https://zenn.dev/sonicmoov/articles/bfd619fc63eae2</link><guid isPermaLink="true">https://zenn.dev/sonicmoov/articles/bfd619fc63eae2</guid><pubDate>Sat, 28 Mar 2026 05:31:05 GMT</pubDate><enclosure url="https://res.cloudinary.com/zenn/image/upload/s--h_LsM1n_--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_55:Livewire%25E3%2581%25A8Inertia.js%25E3%2581%25AE%25E9%2595%25B7%25E6%2589%2580%25E3%2583%25BB%25E7%259F%25AD%25E6%2589%2580%25E3%2581%25A8%25E3%2583%25A6%25E3%2583%25BC%25E3%2582%25B9%25E3%2582%25B1%25E3%2583%25BC%25E3%2582%25B9%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_34:iurco%2Cx_220%2Cy_108/bo_3px_solid_rgb:d6e3ed%2Cg_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9zdGF0aWMuemVubi5zdHVkaW8vdXNlci11cGxvYWQvYXZhdGFyLzY0YjYwNGE3MzguanBlZw==%2Cr_20%2Cw_90%2Cx_92%2Cy_102/co_rgb:6e7b85%2Cg_south_west%2Cl_text:notosansjp-medium.otf_30:%25E6%25A0%25AA%25E5%25BC%258F%25E4%25BC%259A%25E7%25A4%25BE%25E3%2582%25BD%25E3%2583%258B%25E3%2583%2583%25E3%2582%25AF%25E3%2583%25A0%25E3%2583%25BC%25E3%2583%2596%2Cx_220%2Cy_160/bo_4px_solid_white%2Cg_south_west%2Ch_50%2Cl_fetch:aHR0cHM6Ly9saDMuZ29vZ2xldXNlcmNvbnRlbnQuY29tL2EvQUNnOG9jSTZKQktBNkxaR3RDR2h5NW5ZWmNMeE1Vd25mMG42aDIxZGtFU19VcEVBUWQ4bWZRPXM5Ni1j%2Cr_max%2Cw_50%2Cx_139%2Cy_84/v1627283836/default/og-base-w1200-v2.png?_a=BACAGSGT" length="0" type="false"/><dc:creator>iurco</dc:creator></item><item><title><![CDATA[普段コード書かない奴が落合陽一に触発されてCLIツールを作った話]]></title><description><![CDATA[
 きっかけ
前提として、自分は普段あまりコードを書かない人間だ。
肩書きとしてはエンジニアだが、最近は口を出すことのほうが多くて、自分の手でガリガリ実装する機会はめっきり減った。最新のフロントエンド技術やクラウドの進化にもついていけていない。React の最新機能も追えてないし、インフラも昔の知識で止まっている。エンジニアとしての賞味期限を感じ始めていた...というのが前提にある。
そんな中で目に入ったのが、落合陽一氏が vibe-local というコーディングエージェントをバイブコーディングで作ったというニュースだ。ローカル LLM だけで動く完全オフラインのコーディングツールを、あ...]]></description><link>https://zenn.dev/sonicmoov/articles/b2ec3f6a8ade39</link><guid isPermaLink="true">https://zenn.dev/sonicmoov/articles/b2ec3f6a8ade39</guid><pubDate>Sat, 21 Mar 2026 15:44:30 GMT</pubDate><enclosure url="https://res.cloudinary.com/zenn/image/upload/s--Q3ZlkYSq--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_55:%25E6%2599%25AE%25E6%25AE%25B5%25E3%2582%25B3%25E3%2583%25BC%25E3%2583%2589%25E6%259B%25B8%25E3%2581%258B%25E3%2581%25AA%25E3%2581%2584%25E5%25A5%25B4%25E3%2581%258C%25E8%2590%25BD%25E5%2590%2588%25E9%2599%25BD%25E4%25B8%2580%25E3%2581%25AB%25E8%25A7%25A6%25E7%2599%25BA%25E3%2581%2595%25E3%2582%258C%25E3%2581%25A6CLI%25E3%2583%2584%25E3%2583%25BC%25E3%2583%25AB%25E3%2582%2592%25E4%25BD%259C%25E3%2581%25A3%25E3%2581%259F%25E8%25A9%25B1%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_34:takemo101%2Cx_220%2Cy_108/bo_3px_solid_rgb:d6e3ed%2Cg_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9zdGF0aWMuemVubi5zdHVkaW8vdXNlci11cGxvYWQvYXZhdGFyLzY0YjYwNGE3MzguanBlZw==%2Cr_20%2Cw_90%2Cx_92%2Cy_102/co_rgb:6e7b85%2Cg_south_west%2Cl_text:notosansjp-medium.otf_30:%25E6%25A0%25AA%25E5%25BC%258F%25E4%25BC%259A%25E7%25A4%25BE%25E3%2582%25BD%25E3%2583%258B%25E3%2583%2583%25E3%2582%25AF%25E3%2583%25A0%25E3%2583%25BC%25E3%2583%2596%2Cx_220%2Cy_160/bo_4px_solid_white%2Cg_south_west%2Ch_50%2Cl_fetch:aHR0cHM6Ly9zdGF0aWMuemVubi5zdHVkaW8vdXNlci11cGxvYWQvYXZhdGFyL2Q3NDBmZGFmNmIuanBlZw==%2Cr_max%2Cw_50%2Cx_139%2Cy_84/v1627283836/default/og-base-w1200-v2.png?_a=BACAGSGT" length="0" type="false"/><dc:creator>takemo101</dc:creator></item><item><title><![CDATA[GitHub Copilot CLI - タスク完了時に通知してくれる仕組み作った]]></title><description><![CDATA[
 はじめに
GitHub Copilot CLIでタスクを依頼すると、処理が終わるまでターミナルを眺め続けることになりがちです。
長めのタスクを投げて別の作業をしていると「いつ終わったかな？」とターミナルを何度もチェックしてしまう…という体験をしていました。
そこで Copilot CLI の hooks 機能と macOS 向け通知ツール alerter を組み合わせて、タスク完了時に Mac へ通知を飛ばす仕組みを作ってみました。



 1. alerter をインストールする
alerter は macOS の通知センターへ通知を送れる CLI ツールです。Homebrew で...]]></description><link>https://zenn.dev/sonicmoov/articles/copilot-hooks-notification</link><guid isPermaLink="true">https://zenn.dev/sonicmoov/articles/copilot-hooks-notification</guid><pubDate>Thu, 19 Mar 2026 08:27:24 GMT</pubDate><enclosure url="https://res.cloudinary.com/zenn/image/upload/s--pYh18pRN--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_55:GitHub%2520Copilot%2520CLI%2520-%2520%25E3%2582%25BF%25E3%2582%25B9%25E3%2582%25AF%25E5%25AE%258C%25E4%25BA%2586%25E6%2599%2582%25E3%2581%25AB%25E9%2580%259A%25E7%259F%25A5%25E3%2581%2597%25E3%2581%25A6%25E3%2581%258F%25E3%2582%258C%25E3%2582%258B%25E4%25BB%2595%25E7%25B5%2584%25E3%2581%25BF%25E4%25BD%259C%25E3%2581%25A3%25E3%2581%259F%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_34:y.morimoto%2Cx_220%2Cy_108/bo_3px_solid_rgb:d6e3ed%2Cg_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9zdGF0aWMuemVubi5zdHVkaW8vdXNlci11cGxvYWQvYXZhdGFyLzY0YjYwNGE3MzguanBlZw==%2Cr_20%2Cw_90%2Cx_92%2Cy_102/co_rgb:6e7b85%2Cg_south_west%2Cl_text:notosansjp-medium.otf_30:%25E6%25A0%25AA%25E5%25BC%258F%25E4%25BC%259A%25E7%25A4%25BE%25E3%2582%25BD%25E3%2583%258B%25E3%2583%2583%25E3%2582%25AF%25E3%2583%25A0%25E3%2583%25BC%25E3%2583%2596%2Cx_220%2Cy_160/bo_4px_solid_white%2Cg_south_west%2Ch_50%2Cl_fetch:aHR0cHM6Ly9zdGF0aWMuemVubi5zdHVkaW8vdXNlci11cGxvYWQvYXZhdGFyLzY1ZWUwMmUwYzkuanBlZw==%2Cr_max%2Cw_50%2Cx_139%2Cy_84/v1627283836/default/og-base-w1200-v2.png?_a=BACAGSGT" length="0" type="false"/><dc:creator>y.morimoto</dc:creator></item><item><title><![CDATA[Androidアプリで発生するUnknownHostExceptionの再現方法]]></title><description><![CDATA[
 Androidアプリで発生するUnknownHostExceptionの再現方法
Androidアプリでネットワーク通信をする際に一部のユーザでUnknownHostExceptionが発生することがありました。
その際にUnknownHostExceptionエラーを再現するために調べたことをまとめました。

 UnknownHostExceptionの再現方法
開発PCとスマホが同じWi-Fiネットワークに接続されている環境で、再現テスト用に開発PCでdnsmasqを使用してダミーDNSを立て、下記のようにスマホのネットワーク設定のDNSに設定します。

!
注意点としてスマホ側...]]></description><link>https://zenn.dev/sonicmoov/articles/c5913e290fb4fa</link><guid isPermaLink="true">https://zenn.dev/sonicmoov/articles/c5913e290fb4fa</guid><pubDate>Tue, 17 Mar 2026 06:46:03 GMT</pubDate><enclosure url="https://res.cloudinary.com/zenn/image/upload/s--ec9ttT9b--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_55:Android%25E3%2582%25A2%25E3%2583%2597%25E3%2583%25AA%25E3%2581%25A7%25E7%2599%25BA%25E7%2594%259F%25E3%2581%2599%25E3%2582%258BUnknownHostException%25E3%2581%25AE%25E5%2586%258D%25E7%258F%25BE%25E6%2596%25B9%25E6%25B3%2595%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_34:kawanishi%2Cx_220%2Cy_108/bo_3px_solid_rgb:d6e3ed%2Cg_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9zdGF0aWMuemVubi5zdHVkaW8vdXNlci11cGxvYWQvYXZhdGFyLzY0YjYwNGE3MzguanBlZw==%2Cr_20%2Cw_90%2Cx_92%2Cy_102/co_rgb:6e7b85%2Cg_south_west%2Cl_text:notosansjp-medium.otf_30:%25E6%25A0%25AA%25E5%25BC%258F%25E4%25BC%259A%25E7%25A4%25BE%25E3%2582%25BD%25E3%2583%258B%25E3%2583%2583%25E3%2582%25AF%25E3%2583%25A0%25E3%2583%25BC%25E3%2583%2596%2Cx_220%2Cy_160/bo_4px_solid_white%2Cg_south_west%2Ch_50%2Cl_fetch:aHR0cHM6Ly9zdGF0aWMuemVubi5zdHVkaW8vdXNlci11cGxvYWQvYXZhdGFyL2MwMGZjMTEwZjEuanBlZw==%2Cr_max%2Cw_50%2Cx_139%2Cy_84/v1627283836/default/og-base-w1200-v2.png?_a=BACAGSGT" length="0" type="false"/><dc:creator>kawanishi</dc:creator></item><item><title><![CDATA[GitHub Copilot CLIのSkillsを使ったissue駆動開発]]></title><description><![CDATA[
 はじめに
株式会社ソニックムーブのmito1111です。
近年、コーディング自体をAIに任せる「Vibe Coding」が広く普及し始めています。
多くの開発者がAIを活用してコードを生成するようになりましたが、開発のトリガーとなるissueやチケットを作成したり、修正内容をまとめたプルリクエストを作成する部分については、まだ手動で行っているケースが多いのではないでしょうか。
今回は、GitHub Copilot CLIのSkills機能を活用することで、issueの作成からプルリクエストの作成までをシームレスに実現する方法をご紹介します。
本記事で紹介する内容はまだ試作段階ではあり...]]></description><link>https://zenn.dev/sonicmoov/articles/ee80e1bd3af7c2</link><guid isPermaLink="true">https://zenn.dev/sonicmoov/articles/ee80e1bd3af7c2</guid><pubDate>Sun, 15 Mar 2026 15:00:05 GMT</pubDate><enclosure url="https://res.cloudinary.com/zenn/image/upload/s--G74U9ny3--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_55:GitHub%2520Copilot%2520CLI%25E3%2581%25AESkills%25E3%2582%2592%25E4%25BD%25BF%25E3%2581%25A3%25E3%2581%259Fissue%25E9%25A7%2586%25E5%258B%2595%25E9%2596%258B%25E7%2599%25BA%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_34:mito1111%2Cx_220%2Cy_108/bo_3px_solid_rgb:d6e3ed%2Cg_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9zdGF0aWMuemVubi5zdHVkaW8vdXNlci11cGxvYWQvYXZhdGFyLzY0YjYwNGE3MzguanBlZw==%2Cr_20%2Cw_90%2Cx_92%2Cy_102/co_rgb:6e7b85%2Cg_south_west%2Cl_text:notosansjp-medium.otf_30:%25E6%25A0%25AA%25E5%25BC%258F%25E4%25BC%259A%25E7%25A4%25BE%25E3%2582%25BD%25E3%2583%258B%25E3%2583%2583%25E3%2582%25AF%25E3%2583%25A0%25E3%2583%25BC%25E3%2583%2596%2Cx_220%2Cy_160/bo_4px_solid_white%2Cg_south_west%2Ch_50%2Cl_fetch:aHR0cHM6Ly9zdGF0aWMuemVubi5zdHVkaW8vdXNlci11cGxvYWQvYXZhdGFyLzdkZjM1OGQ5YWUuanBlZw==%2Cr_max%2Cw_50%2Cx_139%2Cy_84/v1627283836/default/og-base-w1200-v2.png?_a=BACAGSGT" length="0" type="false"/><dc:creator>mito1111</dc:creator></item><item><title><![CDATA[【Claude Code】Auto Mode 登場 — もう手動承認に振り回されない]]></title><description><![CDATA[!
2026/3/12（現地時間）からリサーチプレビュー版の提供が開始される予定です。


 こんな経験ありませんか？
Claude Code で長めのタスクを回していると、こんな確認が何度も出てきますよね😅
Do you want to proceed?
❯ 1. Yes
2. Yes, and don't ask again for: ...
3. No
「毎回 Yes を押すのが面倒だから…」と --dangerously-skip-permissions を使ったことがある方、少なくないと思います。
このフラグ、名前からして怖いのですが、Anthropic も公式に「リスクが高い...]]></description><link>https://zenn.dev/sonicmoov/articles/claude-code-auto-mode</link><guid isPermaLink="true">https://zenn.dev/sonicmoov/articles/claude-code-auto-mode</guid><pubDate>Mon, 09 Mar 2026 00:54:55 GMT</pubDate><enclosure url="https://res.cloudinary.com/zenn/image/upload/s--cPlh_5Je--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_55:%25E3%2580%2590Claude%2520Code%25E3%2580%2591Auto%2520Mode%2520%25E7%2599%25BB%25E5%25A0%25B4%2520%25E2%2580%2594%2520%25E3%2582%2582%25E3%2581%2586%25E6%2589%258B%25E5%258B%2595%25E6%2589%25BF%25E8%25AA%258D%25E3%2581%25AB%25E6%258C%25AF%25E3%2582%258A%25E5%259B%259E%25E3%2581%2595%25E3%2582%258C%25E3%2581%25AA%25E3%2581%2584%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_34:HungryGoat%2Cx_220%2Cy_108/bo_3px_solid_rgb:d6e3ed%2Cg_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9zdGF0aWMuemVubi5zdHVkaW8vdXNlci11cGxvYWQvYXZhdGFyLzY0YjYwNGE3MzguanBlZw==%2Cr_20%2Cw_90%2Cx_92%2Cy_102/co_rgb:6e7b85%2Cg_south_west%2Cl_text:notosansjp-medium.otf_30:%25E6%25A0%25AA%25E5%25BC%258F%25E4%25BC%259A%25E7%25A4%25BE%25E3%2582%25BD%25E3%2583%258B%25E3%2583%2583%25E3%2582%25AF%25E3%2583%25A0%25E3%2583%25BC%25E3%2583%2596%2Cx_220%2Cy_160/bo_4px_solid_white%2Cg_south_west%2Ch_50%2Cl_fetch:aHR0cHM6Ly9zdGF0aWMuemVubi5zdHVkaW8vdXNlci11cGxvYWQvYXZhdGFyLzMyOGEyNzM5MDEuanBlZw==%2Cr_max%2Cw_50%2Cx_139%2Cy_84/v1627283836/default/og-base-w1200-v2.png?_a=BACAGSGT" length="0" type="false"/><dc:creator>HungryGoat</dc:creator></item><item><title><![CDATA[LINE Messaging API - コピペで使える構成サンプル集]]></title><description><![CDATA[
 LINE Messaging API — コピペで使える構成サンプル集
Flex Message・Template Message のJSONサンプルと、見た目の対応をまとめたページです。
気になるサンプルをそのままコピペして使ってください。

プロパティの完全な仕様は LINE Messaging API Reference を参照してください。


 動作確認の方法
サンプルの見た目を確認する方法は、メッセージの種類によって異なります。
Flex Message は Flex Message Simulator でプレビューを確認可能です。
※このシュミレータは後述するFlexM...]]></description><link>https://zenn.dev/sonicmoov/articles/line-messaging-api</link><guid isPermaLink="true">https://zenn.dev/sonicmoov/articles/line-messaging-api</guid><pubDate>Sat, 28 Feb 2026 03:00:13 GMT</pubDate><enclosure url="https://res.cloudinary.com/zenn/image/upload/s--_tBYABk4--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_55:LINE%2520Messaging%2520API%2520-%2520%25E3%2582%25B3%25E3%2583%2594%25E3%2583%259A%25E3%2581%25A7%25E4%25BD%25BF%25E3%2581%2588%25E3%2582%258B%25E6%25A7%258B%25E6%2588%2590%25E3%2582%25B5%25E3%2583%25B3%25E3%2583%2597%25E3%2583%25AB%25E9%259B%2586%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_34:Taiga%2Cx_220%2Cy_108/bo_3px_solid_rgb:d6e3ed%2Cg_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9zdGF0aWMuemVubi5zdHVkaW8vdXNlci11cGxvYWQvYXZhdGFyLzY0YjYwNGE3MzguanBlZw==%2Cr_20%2Cw_90%2Cx_92%2Cy_102/co_rgb:6e7b85%2Cg_south_west%2Cl_text:notosansjp-medium.otf_30:%25E6%25A0%25AA%25E5%25BC%258F%25E4%25BC%259A%25E7%25A4%25BE%25E3%2582%25BD%25E3%2583%258B%25E3%2583%2583%25E3%2582%25AF%25E3%2583%25A0%25E3%2583%25BC%25E3%2583%2596%2Cx_220%2Cy_160/bo_4px_solid_white%2Cg_south_west%2Ch_50%2Cl_fetch:aHR0cHM6Ly9zdGF0aWMuemVubi5zdHVkaW8vdXNlci11cGxvYWQvYXZhdGFyLzJhNjJmOGI4MDUuanBlZw==%2Cr_max%2Cw_50%2Cx_139%2Cy_84/v1627283836/default/og-base-w1200-v2.png?_a=BACAGSGT" length="0" type="false"/><dc:creator>Taiga</dc:creator></item><item><title><![CDATA[初めて新規メンバーをオンボーディングしてみての反省会]]></title><description><![CDATA[
 はじめに
バックエンドエンジニア3年目の松崎です。
僕が参画している運用案件に新卒のメンバーが新たにアサインされ、そのオンボーディングを担当することになりました。
僕自身、新卒1年目の頃からこの案件に携わっていますが、他メンバーをオンボーディングする経験は今回が初めてです。
この記事では、初めてのオンボーディングで試したことと、そこから見えてきた反省点や気づきをまとめたいと思います。

 前提となる環境・ツール
本案件で使用している主なツール類は以下の通りです。



ツール種別
使用ツール




非同期コミュニケーション
Slack


同期コミュニケーション
Discord, ...]]></description><link>https://zenn.dev/sonicmoov/articles/693dabe829ff4e</link><guid isPermaLink="true">https://zenn.dev/sonicmoov/articles/693dabe829ff4e</guid><pubDate>Fri, 27 Feb 2026 10:39:25 GMT</pubDate><enclosure url="https://res.cloudinary.com/zenn/image/upload/s---n6nqxtK--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_55:%25E5%2588%259D%25E3%2582%2581%25E3%2581%25A6%25E6%2596%25B0%25E8%25A6%258F%25E3%2583%25A1%25E3%2583%25B3%25E3%2583%2590%25E3%2583%25BC%25E3%2582%2592%25E3%2582%25AA%25E3%2583%25B3%25E3%2583%259C%25E3%2583%25BC%25E3%2583%2587%25E3%2582%25A3%25E3%2583%25B3%25E3%2582%25B0%25E3%2581%2597%25E3%2581%25A6%25E3%2581%25BF%25E3%2581%25A6%25E3%2581%25AE%25E5%258F%258D%25E7%259C%2581%25E4%25BC%259A%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_34:MatsuzakiSMV%2Cx_220%2Cy_108/bo_3px_solid_rgb:d6e3ed%2Cg_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9zdGF0aWMuemVubi5zdHVkaW8vdXNlci11cGxvYWQvYXZhdGFyLzY0YjYwNGE3MzguanBlZw==%2Cr_20%2Cw_90%2Cx_92%2Cy_102/co_rgb:6e7b85%2Cg_south_west%2Cl_text:notosansjp-medium.otf_30:%25E6%25A0%25AA%25E5%25BC%258F%25E4%25BC%259A%25E7%25A4%25BE%25E3%2582%25BD%25E3%2583%258B%25E3%2583%2583%25E3%2582%25AF%25E3%2583%25A0%25E3%2583%25BC%25E3%2583%2596%2Cx_220%2Cy_160/bo_4px_solid_white%2Cg_south_west%2Ch_50%2Cl_fetch:aHR0cHM6Ly9saDMuZ29vZ2xldXNlcmNvbnRlbnQuY29tL2EvQUNnOG9jSmFXVEc5VTl5c2lqVmhKa1ZDWUNLRnp2Z3luNjhYRkwtcnFjb05PeWZLa3h4WmRQVT1zOTYtYw==%2Cr_max%2Cw_50%2Cx_139%2Cy_84/v1627283836/default/og-base-w1200-v2.png?_a=BACAGSGT" length="0" type="false"/><dc:creator>MatsuzakiSMV</dc:creator></item></channel></rss>