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
82
Hashtag
jsugai
1
630
Ho Chi Minh.apk
jsugai
0
53
Umeda.apk 報告会資料
jsugai
1
570
Other Decks in Technology
See All in Technology
【Google Cloud Next Tokyo'26】Gemini Enterprise と Oracle AI Database で実現する、業務データ活用を実現する AI エージェント実装
shisyu_gaku
0
230
Agent 時代の Kaggle 展望 / kaggle-in-the-agentic-era
upura
1
650
Cursor Meetup Sapporo - Cursor物語 続編
cocacola917
0
140
組織にどうSREを根付かせるか?〜IVRyの場合〜
abnoumaru
0
330
トヨタ⽣産⽅式(TPS)⼊⾨
recruitengineers
PRO
2
620
20260608_Codexの可能性_ノンプログラマー向け_大城追記
doradora09
PRO
0
780
GitHub CopilotのFinOps- AI CreditのObservabilityと価値を生むためのエージェント設計
yuriemori
0
140
Issue設計から始める仕様駆動開発 / 20260731 Mizuki Hirata
shift_evolve
PRO
1
150
AI駆動開発は個人技からチーム戦へ:組織でAIを使いこなすための実践設計
moongift
PRO
0
480
바이브풀 라이프
arawn
0
100
MIRU 2026 チュートリアル
keisuke198619
0
860
PLATEAU で バーチャル花火大会
tatsuya1970
0
100
Featured
See All Featured
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
190
Thoughts on Productivity
jonyablonski
76
5.3k
Evolving SEO for Evolving Search Engines
ryanjones
0
250
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.5k
Code Review Best Practice
trishagee
74
20k
How to Talk to Developers About Accessibility
jct
2
490
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
200
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.5k
Designing Experiences People Love
moore
143
24k
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
520
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
30k
Design in an AI World
tapps
1
270
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 Ͱ͍͍