Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Devin で iOS の PR から Android のコードを生成する / Generat...
Search
Yuki Anzai
October 30, 2025
Technology
0
190
Devin で iOS の PR から Android のコードを生成する / Generate Android code from iOS PR using Devin
五反田.mobile ~モバイルアプリ × AI~
https://gotanda-mobile.connpass.com/event/369003/
Yuki Anzai
October 30, 2025
Tweet
Share
More Decks by Yuki Anzai
See All by Yuki Anzai
Android Studio Otter の最新 Gemini 機能 / Latest Gemini features in Android Studio Otter
yanzm
0
870
AI ツールを活用したコードリーディング - Android の公式サンプル Now in Android のソースコードを読んでみよう - / Code reading with AI tools
yanzm
1
160
EncryptedSharedPreferences が deprecated になっちゃった!どうしよう! / Oh no! EncryptedSharedPreferences has been deprecated! What should I do?
yanzm
0
2.4k
Devinを使ったモバイルアプリ開発 / Mobile app development with Devin
yanzm
0
340
Android Studio の 新しいAI機能を試してみよう / Try out the new AI features in Android Studio
yanzm
0
410
What’s new in Android development tools
yanzm
0
940
Google I/O 2025 Keynote & Developer Keynote Overview
yanzm
0
190
Coding Agent を使って Android アプリを作ってみる / Let's try using coding agent for Android app development
yanzm
0
220
MediaPipe と ML Kit ってどう ちがうの? / What is the difference between MediaPipe and ML Kit?
yanzm
0
1.5k
Other Decks in Technology
See All in Technology
The Engineer with a Three-Year Cycle
e99h2121
0
170
SREの仕事を自動化する際にやっておきたい5つのポイント
jacopen
6
1k
AWS Amplify Conference 2026 - 仕様からリリースまで一気通貫生成 AI 時代のフルスタック開発
inariku
3
390
ファシリテーション勉強中 その場に何が求められるかを考えるようになるまで / 20260123 Naoki Takahashi
shift_evolve
PRO
3
380
メルカリのAI活用を支えるAIセキュリティ
s3h
6
3.7k
Regional_NAT_Gatewayについて_basicとの違い_試した内容スケールアウト_インについて_IPv6_dual_networkでの使い分けなど.pdf
cloudevcode
1
150
「AIでできますか?」から「Agentを作ってみました」へ ~「理論上わかる」と「やってみる」の隔たりを埋める方法
applism118
5
4.1k
全員が「作り手」になる。職能の壁を溶かすプロトタイプ開発。
hokuo
1
570
2026年はチャンキングを極める!
shibuiwilliam
2
400
ドキュメントからはじめる未来のソフトウェア
pkshadeck
3
1.3k
ドメイン駆動セキュリティへの道しるべ
pandayumi
0
180
re:Inventで出たインフラエンジニアが嬉しかったアップデート
nagisa53
4
210
Featured
See All Featured
Principles of Awesome APIs and How to Build Them.
keavy
128
17k
Technical Leadership for Architectural Decision Making
baasie
1
220
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
1
81
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
Practical Orchestrator
shlominoach
191
11k
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
100
Fireside Chat
paigeccino
41
3.8k
Rails Girls Zürich Keynote
gr2m
96
14k
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
340
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
130
How to train your dragon (web standard)
notwaldorf
97
6.5k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
122
21k
Transcript
͋Μ͍͟Ώ͖ (@yanzm) %FWJOͰJ04ͷ13͔Β "OESPJEͷίʔυΛੜ͢Δ 1 2025.09.30 at ޒా.mobile
:VLJ"O[BJ w "OESPJE&OHJOFFS w (PPHMF%FWFMPQFS&YQFSUGPS"OESPJE w 9 UXJUUFS !ZBO[N w
CMPHZBO[NCMPHTQPUDPN w גࣜձࣾϑΟΧදऔక w ࡳຈɾؔ౦ڌੜ׆ 2
%FWJO w IUUQTEFWJOBJ w Ϋϥυ্Ͱಠཱͯ͠ಈ͘ w 4MBDL(JUIVCͱ࿈ܞ w 4MBDL͔Β!%FWJOͰ࡞ۀΛࢦࣔͰ͖Δ w
ෳͷ(JUIVCϦϙδτϦΛొͰ͖Δ w 1VMM3FRVFTUΛ࡞Ͱ͖ɺ13্ͷϨϏϡʔʹࣗಈͰԠͯ͠ରԠ͢Δ w ͔Β͑Δ 3
%FWJOͷهࣄ w IUUQTCMPHTNBSUCBOLDPKQFOUSZNPCJMFEFWFMPQNFOU XJUIEFWJO 4
5
6
ϞόΠϧΞϓϦͰͷ%FWJOͷ͍ॴ w ௐࠪ w ϦϑΝΫλϦϯά w ௨৴෦ͷ࣮ w 6*ͷ࣮ʢ͢Ͱʹࣅͨը໘ͷ࣮͕ଘࡏ͍ͯ͠Δ߹ʣ w
"OESPJEJ04ͷ࣮ʢ13ʣ͔Β͏Ұํͷ࣮Λͤ͞Δ 7
࣮ࡍʹͬͯΈΔ 8
໌ࣔతͳ,OPXMFEHF͜Ε͚ͩ 9
Ϟσϧͷ࡞ 10 ͜ΕΛՃ͚ͨͩ͠
J04ͷ13 11
"OESPJEͷߏ 12 api Ϟδϡʔϧ ͱ model Ϟδϡʔϧ Ψϫ͚ͩ
13
14
15 PR ΛνΣοΫ
16 PR ͷϒϥϯνͱͷ di ff ΛνΣοΫ
17 TODO ϦετΛ࡞
18 ύεʹ model ͔ models ؚ͕·ΕΔ σΟϨΫτϦΛ୳͍ͯ͠Δ ʢͲ͜ʹ Bean.kt Λஔ͔ܾ͘ΊΔͨΊʣ
͜ΕʹΑΓ ./core/model ͕ݟ͔ͭΔ * Bean.swift Package/Sources/Domain/Models/ ʹ͋Δ
19 core/model ҎԼͷ .kt ϑΝΠϧ Λ୳͍ͯ͠Δ ʢͲ͜ʹ Bean.kt Λஔ͔ܾ͘ΊΔͨΊʣ ·ͩϑΝΠϧ͕ͳ͍ͷͰ
fi nd ͷ݁Ռͳ͠
20 طଘͷ .kt ϑΝΠϧ͕ͳ͔ͬͨͷͰ build.gradle.kts ΛಡΜͰ ʢͨͿΜʣnamespece Λऔ͖͍ͬͯͯΔ
21 Android ͷ͓࡞๏ʹैͬͯ src/main/java/ ͷԼʹ build.gradle.kts ͷ namespace ʢnet.yanzm.co ff
eelog.core.modelʣ ͱಉ͡ߏͷ σΟϨΫτϦ ʢʹύοέʔδʣ Λ࡞ ʢsrc/main/kotlin ͩͬͨΒ 100ͩͬͨͳʙʣ
22 0.34 ACUs
23
24 iOS Android
25 iOS Android ⭕ :core:model ͷஔ ⭕ Kotlin Ͱ࣮ ⭕
data class ༻ ⭕ దͳ Kotlin ܕ
ݕূʣσϑΥϧτϒϥϯνҎ֎͔Β13Λ࡞ͬͯ͘ΕΔ͔ʁ 26
ݕূʣσϑΥϧτϒϥϯνҎ֎͔Β13Λ࡞ͬͯ͘ΕΔ͔ʁ 27 σϑΥϧτϒϥϯνͷ·· ௐ͍ࠪͯ͠Δ
ݕূʣσϑΥϧτϒϥϯνҎ֎͔Β13Λ࡞ͬͯ͘ΕΔ͔ʁ 28 σϑΥϧτϒϥϯνͷ·· Bean ࡞͠ɺ Ϗϧυͱ lint Λ࣮ߦ ͜͜Ͱ dev1
ΛνΣοΫΞτ͠ɺ PR༻ͷϒϥϯν࡞ ͦͷޙίϛοτ
ݕূʣσϑΥϧτϒϥϯνҎ֎͔Β13Λ࡞ͬͯ͘ΕΔ͔ʁ 29 σϑΥϧτϒϥϯνͷ·· Bean ࡞͠ɺ Ϗϧυͱ lint Λ࣮ߦ ͜͜Ͱ dev1
ΛνΣοΫΞτ͠ɺ PR༻ͷϒϥϯν࡞ ͦͷޙίϛοτ ࠷ॳ͔ΒϕʔεϒϥϯνͰ࡞ۀͯ͠ ཉ͍͠ʂ
30 ͪΌΜͱ dev1 Λ νΣοΫΞτ͔ͯ͠Β ௐ͍ࠪͯ͠Δ
,OPXMFEHFʹՃͯ͠ΈΔ 31
32
33 dev1 Λ νΣοΫΞτ ͔ͯ͠Βௐ͍ࠪͯ͠Δ
ݕূʣઌʹLUϑΝΠϧ͕͋Δ߹ 34
35 src/main/kotlin ҎԼʹ ͋Δطଘͷ Dummy.kt Λൃݟ src/main/java Λ࡞ͤͣ src/main/kotlin ҎԼͷ
ಉ͡ͱ͜Ζʹ Bean Λஔ
"1*ΞΫηεͷ࣮ 36 Ճ
J04ͷ13 37
"OESPJEͷߏ 38 Retro fi t ͷ client ఆٛ Kotlin Serialization
Λ ͍ͬͯΔ response Ϋϥε
39 ϕʔεϒϥϯνΛ checkout ύεʹ core ͘͠ api ΛؚΉ .kt ΫϥεΛݕࡧ
ApiClient, DummyResponse ͷதΛ֬ೝ
40 0.41 ACUs
41
42 ⭕ ApiClient interface ʹϝιο υՃ ⭕ Retro fi t
Ξϊςʔγϣϯͷར༻ ⭕ Kotlin Serialization Ξϊςʔ γϣϯͷར༻
6*ͷ࣮ 43 Ճ
44 app ͱ feature Ͱݕࡧ feature/bean ϞδϡʔϧΛ νΣοΫ
45 0.72 ACUs
46 iOS Android :feature:bean Ϟδϡʔϧʹ࡞͞ΕͯΔ
47 iOS Android iOS ͬΆ͍ Composable ͷState Λ ͍͍ͨͳΒ໌͕ࣔඞཁͦ͏
48 iOS Android BeanScreen, BeanContent ߹ΘͤͯΔ
49 iOS Android UiState Ͱͷ ग़͠Θ͚
50 iOS Android
ෳࡶͳ13ͷ߹ 51
ෳࡶͳ13ͷ߹ w ϩάͷ߲Ճ w σόοάը໘ͷมߋ w 6*ͷ࣮ʢը૾ͷՃؚΉʣ w ը໘ભҠͷ࣮ w
7JFX.PEFMͷ࣮ 52
ෳࡶͳ13ͷ߹ w ΄΅⭕ϩάͷ߲Ճ w ⭕σόοάը໘ͷมߋ w ˚6*ͷ࣮ʢը૾ͷՃؚΉʣ w ⭕จࣈྻϦιʔεͷՃ w
˚ը૾ͷՃ 53 w ⭕ը໘ભҠͷ࣮ w ΄΅⭕7JFX.PEFMͷ࣮
΄΅⭕ϩάͷ߲Ճ 54 iOS Android PfmLevel pre fi x ͕ͳ͍ ⭕
⭕σόοάը໘ͷมߋ 55 iOS Android ⭕ ͦΕ༻ͷ composable ͍ͬͯΔ
˚6*ͷ࣮ w ը૾Ҏ֎΄΅ᘳ w ϓϨϏϡʔͷ࡞0, w Ͱ͖͗ͯͯ͢ා͍ w طଘʹࣅ͍ͯΔ࣮ɺࢀߟʹͳ Δ࣮͕ͨ͘͞Μ͋Δͷ͕ޮ͍
ͯͦ͏ʁ 56 Android
57 ⭕ design-system ͷ composable ⭕ UiState Ͱͷग़͠Θ͚ ⭕ design-system
ͷ composable
❌ը૾ͷՃ 58 iOS Android શવҧ͏ը૾͕Ճ͞Εͨ… Ͳ͔͜Βʁʁʁʁ
⭕ը໘ભҠͷ࣮ 59 Android
·ͱΊ w "OESPJEJ04ͷ࣮ʢ13ʣ͔Β͏Ұํͷ࣮Λͤ͞Δ w যΛߜͬͨখ͍͞13ˠ͔ͳΓ֬ߴ͍ w ͍Ζ͍Ζͳมߋ͕ೖͬͨେ͖͍13ˠ͍͚Δ w ରԠ͕ؔطଘͷίʔυϕʔε͔ΒΘ͔Γʹ͍͘ w
͕֬Լ͕ΔͷͰ"OESPJEˡˠJ04ͷରԠʢมʣͷࣝΛ͢ͱ⭕ w ίʔυϕʔεҰ؏ੑͷ͋Δߏʹ͠Α͏