Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
アジェンダ段階 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
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.3k
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
570
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
3
3.9k
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
580
Color Theory Basics | Prateek | Gurzu
gurzu
1
480
Producing Creativity
orderedlist
PRO
348
41k
How to Talk to Developers About Accessibility
jct
2
560
[Rails World 2026] Durable orchestration on Rails: from continuation to workflow
palkan
1
440
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
760
Git: the NoSQL Database
bkeepers
PRO
433
67k
Accessibility Awareness
sabderemane
1
230
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
340
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①