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
4k
Featured
See All Featured
Ethics towards AI in product and experience design
skipperchong
2
350
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
720
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
63
45k
So, you think you're a good person
axbom
PRO
2
2.1k
Marketing to machines
jonoalderson
1
5.7k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
Speed Design
sergeychernyshev
33
2k
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
3
1.1k
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
300
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
1.8k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.9k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
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①