<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Career on 設計で、迷わなくなるために | 奥田智紘</title><link>https://design.okuda-studio.com/categories/career/</link><description>Recent content in Career on 設計で、迷わなくなるために | 奥田智紘</description><generator>Hugo -- 0.159.2</generator><language>ja</language><lastBuildDate>Thu, 22 Jan 2026 22:00:00 +0900</lastBuildDate><atom:link href="https://design.okuda-studio.com/categories/career/index.xml" rel="self" type="application/rss+xml"/><item><title>設計思想 × Androidアプリ実装という自分の強み</title><link>https://design.okuda-studio.com/posts/0004-my-strongness/</link><pubDate>Thu, 22 Jan 2026 22:00:00 +0900</pubDate><guid>https://design.okuda-studio.com/posts/0004-my-strongness/</guid><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="#%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2%E8%A8%AD%E8%A8%88%E3%81%8C%E5%88%86%E3%81%8B%E3%81%A3%E3%81%A6%E3%81%84%E3%81%A6%E3%82%82-android-%E3%82%A2%E3%83%97%E3%83%AA%E3%81%8C%E4%BD%9C%E3%82%8C%E3%81%AA%E3%81%84%E7%90%86%E7%94%B1"&gt;ソフトウェア設計が分かっていても、 Android アプリが作れない理由&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#android-%E3%82%A2%E3%83%97%E3%83%AA%E3%81%AE%E8%A8%AD%E8%A8%88%E3%81%AF%E6%8E%9B%E3%81%91%E7%AE%97%E3%81%A7%E6%88%90%E7%AB%8B%E3%81%99%E3%82%8B"&gt;Android アプリの設計は「掛け算」で成立する&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#android-os-%E5%9B%BA%E6%9C%89%E3%81%AE%E5%88%B6%E7%B4%84"&gt;Android OS 固有の制約&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#kotlin-%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6%E3%81%84%E3%82%8B%E3%81%A8%E4%BD%BF%E3%81%84%E3%81%93%E3%81%AA%E3%81%97%E3%81%A6%E3%81%84%E3%82%8B%E3%81%AE%E5%B7%AE"&gt;Kotlin を「使っている」と「使いこなしている」の差&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#jetpack-compose%E3%81%AF-ui-%E5%AE%9F%E8%A3%85%E3%81%A7%E3%81%AF%E3%81%AA%E3%81%8F%E8%A8%AD%E8%A8%88%E3%81%9D%E3%81%AE%E3%82%82%E3%81%AE"&gt;Jetpack Composeは「 UI 実装」ではなく「設計そのもの」&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#%E8%A8%AD%E8%A8%88%E6%80%9D%E6%83%B3--android-%E6%96%87%E8%84%88%E3%81%8C%E4%BE%A1%E5%80%A4%E3%81%AB%E3%81%AA%E3%82%8B"&gt;「設計思想 × Android 文脈」が価値になる&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#%E8%87%AA%E5%88%86%E3%81%AE%E5%BC%B7%E3%81%BF%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6"&gt;自分の強みについて&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="ソフトウェア設計が分かっていても-android-アプリが作れない理由"&gt;ソフトウェア設計が分かっていても、 Android アプリが作れない理由&lt;/h2&gt;
&lt;p&gt;ソフトウェア設計が分かっている人が、必ずしも Android アプリをうまく作れるとは限らない。
これは、 Android 開発を続けてきて、何度も実感してきたことだ。&lt;/p&gt;
&lt;p&gt;設計原則を理解している。
責務分離の重要性も分かっている。
それでも、 Android アプリとして形にしようとすると、どこかで無理が出る。&lt;/p&gt;
&lt;p&gt;その理由は、単に Android OS の制約が強いから、というだけではない。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="android-アプリの設計は掛け算で成立する"&gt;Android アプリの設計は「掛け算」で成立する&lt;/h2&gt;
&lt;p&gt;Android アプリの設計は、次の要素が同時に成立して初めて機能する。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Android OS 固有の制約&lt;/li&gt;
&lt;li&gt;Kotlin という言語の前提&lt;/li&gt;
&lt;li&gt;Jetpack Compose という UI モデル&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;どれか一つだけ分かっていても足りない。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="android-os-固有の制約"&gt;Android OS 固有の制約&lt;/h2&gt;
&lt;p&gt;まず避けて通れないのが、 OS の制約だ。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ライフサイクルが複雑で、いつ破棄されるか分からない&lt;/li&gt;
&lt;li&gt;プロセスは OS 都合で突然 kill される&lt;/li&gt;
&lt;li&gt;バックグラウンド動作や権限には厳しい制限がある&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これらを無視した「きれいな設計」は、実機上では簡単に崩れる。&lt;/p&gt;
&lt;p&gt;Android では、 &lt;strong&gt;壊されることを前提に設計する&lt;/strong&gt; 必要がある。&lt;/p&gt;</description></item></channel></rss>