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
220
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
4k
Featured
See All Featured
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
3k
Designing for Timeless Needs
cassininazir
1
470
[SF Ruby Conf 2025] Rails X
palkan
2
1.3k
Become a Pro
speakerdeck
PRO
31
6.2k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
6.1k
The Curse of the Amulet
leimatthew05
2
14k
A Tale of Four Properties
chriscoyier
163
24k
4 Signs Your Business is Dying
shpigford
187
23k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
600
The Illustrated Children's Guide to Kubernetes
chrisshort
51
53k
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
1
310
Exploring anti-patterns in Rails
aemeredith
3
490
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①