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
Layout ファイルののメンテナンス
Search
jsugai
June 19, 2017
Technology
530
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Layout ファイルののメンテナンス
Umeda.apk #3 の登壇資料
jsugai
June 19, 2017
More Decks by jsugai
See All by jsugai
OsakaMixLeap #11 LT "Star Trek" and "Software development" are similar
jsugai
0
400
SOUZOUxMERCARI-A Story of Cute Birds and Oldman
jsugai
0
660
Swift <-> Kotlin
jsugai
0
480
Prepare for Android 8.0/GDG-Kobe 2017-09-18
jsugai
0
80
Hashtag
jsugai
1
620
Ho Chi Minh.apk
jsugai
0
52
Umeda.apk 報告会資料
jsugai
1
560
Other Decks in Technology
See All in Technology
本当の”仕事”を手放せる未来が見えた
mu7889yoon
0
220
フルカイテン株式会社 エンジニア向け採用資料
fullkaiten
0
11k
5分でわかる Amazon Connect_20260608
hwangbyeonghun
0
180
打造你的 AI 工作流:Agent Skill + MCP 實戰工作坊
appleboy
0
480
攻撃者がいなくてもAIエージェントはインシデントを起こす
nomizone
0
190
「ビジネスがわかるエンジニア」とは何か?
ryooob
0
490
RAGの精度向上とエージェント活用
kintotechdev
2
120
AI時代のエンジニアキャリアについて今一度考える
sakamoto_582
1
1k
そのタスクオンスケですか?
poropinai1966
0
120
CVE-2026-20833_脆弱性対応とAES 化について
jukishiya
0
350
プロンプト_きのこカンファレンス2026_LT
yurufuwahealer
0
130
Mastraエージェント、どのクラウドにデプロイする?
minorun365
PRO
2
150
Featured
See All Featured
The World Runs on Bad Software
bkeepers
PRO
72
12k
Code Reviewing Like a Champion
maltzj
528
40k
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
320
Code Review Best Practice
trishagee
74
20k
For a Future-Friendly Web
brad_frost
183
10k
Joys of Absence: A Defence of Solitary Play
codingconduct
1
410
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
300
Imperfection Machines: The Place of Print at Facebook
scottboms
270
14k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
62k
Reality Check: Gamification 10 Years Later
codingconduct
0
2.2k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.8k
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
1
220
Transcript
Layout.xml ͷϝϯς umeda.apk #3 - Report from Google I/O 2017
ϨΠΞτۤख
Α͋͘Δ ͜ΜͳϨΠΞτ Google Home $150
ͬͱใྔ͕ཉ͍͠
Google Home $150 50 205 22
Google Home $150 50 205 22 Google Pixel XL $600
1 8 7 Google Home $122 14 87 6 Google Home $89
ૉʹϨΠΞτ
1. LinerLayout ᶄ 2. ImageView 4. TextView 5. TextView 3.
LinerLayout Google Home $150 50 205 22 ᶄ ᶅ ᶆ 6. ImageView + TextView 7. ImageView + TextView 8. ImageView + TextView
None
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="@dimen/list_height" android:layout_marginTop="@dimen/small_padding_size" android:orientation="horizontal">
<ImageView android:layout_width="@dimen/list_height" android:layout_height="@dimen/list_height" android:src="@mipmap/ic_launcher" /> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical" android:paddingStart="@dimen/text_paddng_right" tools:ignore="RtlSymmetry"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="24sp" android:textStyle="bold" tools:text="Selected Item" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="20sp" tools:text="$200000" /> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal" android:paddingStart="@dimen/small_padding_size" android:paddingTop="@dimen/small_padding_size"> <ImageView android:layout_width="@dimen/small_icon_size" android:layout_height="@dimen/small_icon_size" android:src="@drawable/ic_comment_black_24dp" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:paddingEnd="@dimen/text_paddng_right" android:paddingStart="@dimen/text_paddng_left" tools:text="item" /> <ImageView android:layout_width="@dimen/small_icon_size" android:layout_height="@dimen/small_icon_size" android:src="@drawable/ic_thumb_up_black_24dp" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:paddingEnd="@dimen/text_paddng_right" android:paddingStart="@dimen/text_paddng_left" tools:text="item" /> <ImageView android:layout_width="@dimen/small_icon_size" android:layout_height="@dimen/small_icon_size" android:src="@drawable/ic_favorite_black_24dp" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:paddingEnd="@dimen/text_paddng_right" android:paddingStart="@dimen/text_paddng_left" tools:text="item" /> </LinearLayout> </LinearLayout> </LinearLayout> ͗͢ -JOF
Θ͔Γʹ͗͘͢ ϝϯςͨ͘͠ͳ͍
ରࡦ·ͱΊͯ͘
5&95 ImageView TextView 5&95 TextView:drawableStart TextView:text TextView ViewGroup(LinearLayout/RelativeLayout/etc...)
`make money` Ϙλϯ App Icon & Folder ྫ
None
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="@dimen/list_height" android:layout_marginTop="@dimen/small_padding_size" android:orientation="horizontal">
<ImageView android:layout_width="@dimen/list_height" android:layout_height="@dimen/list_height" android:src="@mipmap/ic_launcher" /> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical" android:paddingStart="@dimen/text_paddng_right" tools:ignore="RtlSymmetry"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="24sp" tools:text="Selected Item" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="20sp" tools:text="$200000" /> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal" android:paddingStart="@dimen/small_padding_size" android:paddingTop="@dimen/small_padding_size"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:paddingStart="@dimen/text_paddng_left" android:paddingEnd="@dimen/text_paddng_right" android:drawableStart="@drawable/ic_comment_black_24dp" tools:text="item" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:paddingStart="@dimen/text_paddng_left" android:paddingEnd="@dimen/text_paddng_right" android:drawableStart="@drawable/ic_thumb_up_black_24dp" tools:text="item" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:paddingStart="@dimen/text_paddng_left" android:paddingEnd="@dimen/text_paddng_right" android:drawableStart="@drawable/ic_favorite_black_24dp" tools:text="item" /> </LinearLayout> </LinearLayout> </LinearLayout> -JOF
ରࡦೖΕࢠΛݮΒ͢
https://github.com/google/flexbox-layout ʮapp:flexWrap="wrap"ʯ ͜Ε͚ͩͰ͑͗͢Δ PercentRelativeLayͭͷ͜ͱΕΖ
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="@dimen/list_height" android:layout_marginTop="@dimen/small_padding_size"
android:orientation="horizontal"> <ImageView android:layout_width="@dimen/list_height" android:layout_height="@dimen/list_height" android:src="@mipmap/ic_launcher" /> <com.google.android.flexbox.FlexboxLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:paddingStart="@dimen/text_paddng_right" app:flexWrap="wrap"> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:textSize="24sp" android:textStyle="bold" tools:text="Selected Item" /> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:textSize="20sp" tools:text="$200000" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:drawableStart="@drawable/ic_comment_black_24dp" android:paddingEnd="@dimen/text_paddng_right" android:paddingStart="@dimen/text_paddng_left" tools:text="item" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:drawableStart="@drawable/ic_thumb_up_black_24dp" android:paddingEnd="@dimen/text_paddng_right" android:paddingStart="@dimen/text_paddng_left" tools:text="item" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:drawableStart="@drawable/ic_favorite_black_24dp" android:paddingEnd="@dimen/text_paddng_right" android:paddingStart="@dimen/text_paddng_left" tools:text="item" /> </com.google.android.flexbox.FlexboxLayout> </LinearLayout> -JOF ʢωετΛݸݮʣ
ConstraintLayout
https://developer.android.com/topic/libraries/support-library/revisions.html
<?xml version="1.0" encoding="utf-8"?> <android.support.constraint.ConstraintLayout xmlns:android="http:// schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="@dimen/list_height"
android:layout_marginTop="@dimen/small_padding_size" android:orientation="horizontal"> <ImageView android:id="@+id/imageView" android:layout_width="80dp" android:layout_height="80dp" android:src="@mipmap/ic_launcher" tools:layout_editor_absoluteY="0dp" android:layout_marginLeft="8dp" app:layout_constraintLeft_toLeftOf="parent" /> <TextView android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginLeft="8dp" android:textSize="24sp" android:textStyle="bold" app:layout_constraintLeft_toRightOf="@+id/imageView" tools:layout_editor_absoluteY="0dp" tools:text="Selected Item" /> <TextView android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginLeft="8dp" android:textSize="20sp" app:layout_constraintLeft_toRightOf="@+id/imageView" tools:layout_editor_absoluteY="28dp" tools:text="$200000" /> <TextView android:id="@+id/textView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="8dp" android:drawableStart="@drawable/ic_comment_black_24dp" android:paddingEnd="@dimen/text_paddng_right" android:paddingStart="@dimen/text_paddng_left" app:layout_constraintLeft_toRightOf="@+id/imageView" tools:layout_editor_absoluteY="56dp" tools:text="item" /> <TextView android:id="@+id/textView2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="8dp" android:drawableStart="@drawable/ic_thumb_up_black_24dp" android:paddingEnd="@dimen/text_paddng_right" android:paddingStart="@dimen/text_paddng_left" app:layout_constraintLeft_toRightOf="@+id/textView" tools:layout_editor_absoluteY="56dp" tools:text="item" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="8dp" android:drawableStart="@drawable/ic_favorite_black_24dp" android:paddingEnd="@dimen/text_paddng_right" android:paddingStart="@dimen/text_paddng_left" app:layout_constraintLeft_toRightOf="@+id/textView2" tools:layout_editor_absoluteY="56dp" tools:text="item" /> </android.support.constraint.ConstraintLayout> -JOF ͰωετҰ൪গͳ͍
$POTUSBJOU6*Ͱ ௐ͕Ͱ͖ΔΜͰ 7JFXͷ Ұ൪গͳ͍Ͱ͢
ରࡦ ൃΛม͑ͯ ϨΠΞτॻ͔ͳ͍
-JUIP
None
<!-- activity_main.xml--> EOF XML <!-- fragment_main.xml--> EOF <!-- recycler_item.xml--> EOF
@LayoutSpec public class ListItemSpec { @OnCreateLayout static ComponentLayout onCreateLayout(
ComponentContext c, @Prop String name, @Prop String price, @Prop(optional = true) Drawable photo) { final ComponentLayout column = Column.create(c) .marginDip(YogaEdge.LEFT, 16) .child( Text.create(c) .text(name) .textSizeSp(24) ) .child( Text.create(c) .text(price) .textSizeSp(16) ) .child( Row.create(c) .marginDip(YogaEdge.TOP,4) .child( Image.create(c) .drawableRes(R.drawable.ic_comment) .withLayout() .marginDip(YogaEdge.RIGHT,4) .heightDip(20) .widthDip(20) ) .child( Text.create(c) .text("700") .textSizeSp(14) ) .child( Image.create(c) .drawableRes(R.drawable.ic_thumb_up) .withLayout() .marginDip(YogaEdge.RIGHT,4) ... ... ... ALL Programming
ͷൣғશମͰ7JFX͕ݸ
1SPT$POT
Pros • ϨΠΞτ͕γϯϓϧʢ͔ͯҰݸʣ • ׳ΕͨΒॻ͖͍͢ • એݴతʹॻ͚Δ • Fresco ͱ૬ੑ͕ྑ͍
• ϨΠΞτ Flexbox CSSతͳߟ͑ํ
Cons • ॻ͖͑Δͷ͕େม • αϯϓϧ௨Γʹॻ͍ͯಈ͔ͳ͍Օॴུ͕ • Ankoͷํ͕ͱ͖͍ͬͭ͢ • Fresco Λ࢝Ί
FB OSSനԡ͠ͷTutorial • ͪΐͬͱಠಛͳۭؾ Yoga FB͕ͩผͷϥΠϒϥϦ (Glide ͱ͔ Picasso ͷํ͕)
-JUIPͲ͏Α ݁ : Litho ͏ͳΒAnko Ͱ͍͍