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
アジェンダ段階 Compose for Deskopで始めるAndroid開発効率化ツールの作成
Search
Yusuke Katsuragawa
September 09, 2022
210
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
アジェンダ段階 Compose for Deskopで始めるAndroid開発効率化ツールの作成
Yusuke Katsuragawa
September 09, 2022
More Decks by Yusuke Katsuragawa
See All by Yusuke Katsuragawa
Compose for Deskopで始めるAndroid開発効率化ツールの作成
kaleidot725
2
3.9k
Featured
See All Featured
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
600
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
400
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.5k
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
140
Into the Great Unknown - MozCon
thekraken
41
2.6k
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
190
Paper Plane
katiecoart
PRO
1
51k
New Earth Scene 8
popppiees
3
2.3k
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
360
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.3k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
sira's awesome portfolio website redesign presentation
elsirapls
0
270
Transcript
Compose for Deskopで始める Android開発効率化ツールの作成 Droidkaigi 2022 Day01 Yusuke Katsuragawa /
YUMEMI Inc.
自己紹介 - 桂川 祐介 - 株式会社ゆめみ - Androidエンジニア - Twitter
: @kaleidot725 - GitHub : kaleidot725
本セッションで取り扱うこと
本セッションで取り扱うこと - Compose for Desktopとは - Android開発効率化ツールの作成方法 - 開発環境のセットアップ方法 -
プロジェクトのセットアップ方法 - ADBを利用したGUIツールの作成方法 - Compose
アジェンダ
アジェンダ 1. Compose for Desktopとは 2. どのようなツールを作るか 3. どのようにツールを作るか 4.
おわりに
Compose for Desktopとは
開発環境
プロジェクト作成
どんなツールを作るのか?
Andoroid端末の一覧を取得する
ADBコマンドを実行する
コマンド実行 - 作成する画面
View StateHolder Model
@Composable fun CommandItem ( title: String, detail: String, onExecute :
() -> Unit, modifier : Modifier = Modifier ) { Card(modifier ) { Row( horizontalArrangement = Arrangement .spacedBy (8.dp), verticalAlignment = Alignment .CenterVertically , modifier = Modifier .padding(8.dp) ) { Column(modifier = Modifier .weight(0.9f, true)) { Text(text = title) Text(text = detail) } Button(onClick = { onExecute () }) { Text(text = Strings.EXECUTE) } } } } @Preview @Composable private fun CommandItem_Preview () { CommandItem( title = "ダークテーマ ON", detail = "端末のダークテーマ設定を ONにします", onExecute = {}, modifier = Modifier .fillMaxWidth().wrapContentWidth() ) } コマンド実行 - View層①
View StateHolder Model
@Composable fun CommandItem ( title: String, detail: String, onExecute :
() -> Unit, modifier : Modifier = Modifier ) { Card(modifier ) { Row( horizontalArrangement = Arrangement .spacedBy (8.dp), verticalAlignment = Alignment .CenterVertically , modifier = Modifier .padding(8.dp) ) { Column(modifier = Modifier .weight(0.9f, true)) { Text(text = title) Text(text = detail) } Button(onClick = { onExecute () }) { Text(text = Strings.EXECUTE) } } } } @Preview @Composable private fun CommandItem_Preview () { CommandItem( title = "ダークテーマ ON", detail = "端末のダークテーマ設定を ONにします", onExecute = {}, modifier = Modifier .fillMaxWidth().wrapContentWidth() ) } コマンド実行 - StateHolder①
View StateHolder Model
@Composable fun CommandItem ( title: String, detail: String, onExecute :
() -> Unit, modifier : Modifier = Modifier ) { Card(modifier ) { Row( horizontalArrangement = Arrangement .spacedBy (8.dp), verticalAlignment = Alignment .CenterVertically , modifier = Modifier .padding(8.dp) ) { Column(modifier = Modifier .weight(0.9f, true)) { Text(text = title) Text(text = detail) } Button(onClick = { onExecute () }) { Text(text = Strings.EXECUTE) } } } } @Preview @Composable private fun CommandItem_Preview () { CommandItem( title = "ダークテーマ ON", detail = "端末のダークテーマ設定を ONにします", onExecute = {}, modifier = Modifier .fillMaxWidth().wrapContentWidth() ) } コマンド実行 - Model①