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
深いい勉強会
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
FujiKinaga
May 21, 2018
110
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
深いい勉強会
FujiKinaga
May 21, 2018
More Decks by FujiKinaga
See All by FujiKinaga
Flutterで実装する実践的な攻撃対策とセキュリティ向上
fujikinaga
2
1.4k
最新のCompose Multiplatform を使うとiOSとAndroidアプリはどれくらい作れるのか
fujikinaga
2
720
Androidのテストの理解を深めてみた
fujikinaga
0
75
開発案件の進み方
fujikinaga
0
120
深いい勉強会 vol.10
fujikinaga
0
110
深いい勉強会 vol.9
fujikinaga
0
120
Understanding Dagger2 Part1
fujikinaga
0
75
Mater of Subscription
fujikinaga
0
89
深いい勉強会
fujikinaga
2
92
Featured
See All Featured
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
430
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
260
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
Tell your own story through comics
letsgokoyo
1
1k
The SEO identity crisis: Don't let AI make you average
varn
0
530
Color Theory Basics | Prateek | Gurzu
gurzu
0
430
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.9k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9.2k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.6k
Transcript
UIςετͷࣗಈԽʹ࢛ۤീ͍ۤͯ͠Δ ਂ͍͍ษڧձvol.5 Fuji Kinaga
࠳ંͷཤྺ • UIͷςετɺFacebookͱTwitterͷϩάΠϯͰͭ·ͮ͘ • FirebaseTestLabͷInstrumentationςετ࣮ߦͷํͰͭ·ͮ͘ • FacebookͷεύϜٙʹͭ·ͮ͘ • PythonͷϧʔτݖݶͰͭ·ͮ͘ •
εΫϦʔϯγϣοτΛऔΔϥΠϒϥϦͷબఆͰͭ·ͮ͘ • ςετίʔυͷKotlinԽͰͭ·ͮ͘ • GradleɺyamlϑΝΠϧͷॻ͖ํʹͭ·ͮ͘
࠳ંͷཤྺ • UIͷςετɺFacebookͱTwitterͷϩάΠϯͰͭ·ͮ͘ • FirebaseTestLabͷInstrumentationςετ࣮ߦͷํͰͭ·ͮ͘ • FacebookͷεύϜٙʹͭ·ͮ͘ • PythonͷϧʔτݖݶͰͭ·ͮ͘ •
εΫϦʔϯγϣοτΛऔΔϥΠϒϥϦͷબఆͰͭ·ͮ͘ • ςετίʔυͷKotlinԽͰͭ·ͮ͘ • GradleɺyamlϑΝΠϧͷॻ͖ํʹͭ·ͮ͘
FacebookɺTwitterɺ͍Ζ͍Ζͳ • ΞϓϦ͕εϚϗʹೖ͍ͬͯΔ߹ͱͳ͍߹Ͱڍಈ͕ҧ͏ • Ωϟογϡ͕͍ͬͯΔ߹ͱͳ͍߹Ͱڍಈ͕ҧ͏ • FacebookΞϓϦ༗ΓͩͱΩϟογϡͰଈϩάΠϯ • TwitterΞϓϦ༗ΓͰ࿈ܞ͢ΔϘλϯΛԡ͢ඞཁ͋Γ •
WebViewͱωΠςΟϒͰIDͷऔಘͷํ๏͕શવҧ͏ - ωΠςΟϒ : "com.twitter.android:id/ok_button" - Σϒ : “username_or_email" and “password”
࠳ંͷཤྺ • UIͷςετɺFacebookͱTwitterͷϩάΠϯͰͭ·ͮ͘ • FirebaseTestLabͷInstrumentationςετ࣮ߦͷํͰͭ·ͮ͘ • FacebookͷεύϜٙʹͭ·ͮ͘ • PythonͷϧʔτݖݶͰͭ·ͮ͘ •
εΫϦʔϯγϣοτΛऔΔϥΠϒϥϦͷબఆͰͭ·ͮ͘ • ςετίʔυͷKotlinԽͰͭ·ͮ͘ • GradleɺyamlϑΝΠϧͷॻ͖ํʹͭ·ͮ͘
gCloud CLI͔ΒͱAndroidStudio͔ΒՄೳ • travisϑΝΠϧͰgCloudίϚϯυΛ͍ɺApkͷσΟϨΫτϦ Λਖ਼͘͠ࢦఆͯ͠apkग़དྷͯ·ͤΜͱౖΒΕͨ • minSdkVersion(nanaAPI17Ҏ্ɺUIςετAPI18Ҏ্) • TestReleaseϏϧυͩͱಈ͍ͯ͘Εͳ͍ •
ݱࡏݟ͍͑ͯΔը໘ͷActivityΠϯελϯεΛऔಘ͢Δํ๏͕࠷ ॳΘ͔Βͳ͔ͬͨ(εΫγϣΛࡱΔ࣌ʹඞཁʹͳΔ)
࠳ંͷཤྺ • UIͷςετɺFacebookͱTwitterͷϩάΠϯͰͭ·ͮ͘ • FirebaseTestLabͷInstrumentationςετ࣮ߦͷํͰͭ·ͮ͘ • FacebookͷεύϜٙʹͭ·ͮ͘ • PythonͷϧʔτݖݶͰͭ·ͮ͘ •
εΫϦʔϯγϣοτΛऔΔϥΠϒϥϦͷબఆͰͭ·ͮ͘ • ςετίʔυͷKotlinԽͰͭ·ͮ͘ • GradleɺyamlϑΝΠϧͷॻ͖ํʹͭ·ͮ͘
Fuji͕ϧάΞΠ͔ΒϩάΠϯ͠Α͏ͱ͍ͯ͠·͢ • FirebaseTestLabͷւ֎ʹ͋Δ • FacebookϩάΠϯͷςετέʔεͩ ͚100%ࣦഊ͢Δ • ςετͷͨͼʹύεϫʔυมߋਏ ͍… •
ςετϢʔβʔ࡞Ε͍͚ͨ(୯७)
࠳ંͷཤྺ • UIͷςετɺFacebookͱTwitterͷϩάΠϯͰͭ·ͮ͘ • FirebaseTestLabͷInstrumentationςετ࣮ߦͷํͰͭ·ͮ͘ • FacebookͷεύϜٙʹͭ·ͮ͘ • PythonͷϧʔτݖݶͰͭ·ͮ͘ •
εΫϦʔϯγϣοτΛऔΔϥΠϒϥϦͷબఆͰͭ·ͮ͘ • ςετίʔυͷKotlinԽͰͭ·ͮ͘ • GradleɺyamlϑΝΠϧͷॻ͖ํʹͭ·ͮ͘
Macඪ४ͷPythonϧʔτ੍ݶ͖ • screenshot-tests-for-android/facebookΛ͏ͨ ΊʹPythonͷPillow(ը૾ղੳ)ϥΠϒϥϦ͕ඞཁ ͩͬͨ • pipίϚϯυड͚͚ͯ͘Εͳ͍ • usr/local/binʹPythonΛೖΕͯύεΛΓସ͑Δ ඞཁ͕͋ͬͨ
࠳ંͷཤྺ • UIͷςετɺFacebookͱTwitterͷϩάΠϯͰͭ·ͮ͘ • FirebaseTestLabͷInstrumentationςετ࣮ߦͷํͰͭ·ͮ͘ • FacebookͷεύϜٙʹͭ·ͮ͘ • PythonͷϧʔτݖݶͰͭ·ͮ͘ •
εΫϦʔϯγϣοτΛऔΔϥΠϒϥϦͷબఆͰͭ·ͮ͘ • ςετίʔυͷKotlinԽͰͭ·ͮ͘ • GradleɺyamlϑΝΠϧͷॻ͖ํʹͭ·ͮ͘
UIςετͷ݁ՌΛݟ͑ΔԽ͍ͨ͠ • Spoon/Square - Ұ൪ݹ͍ϥΠϒϥϦ - ҆ఆͯ͠Δ͕ɺGradleͰೖΕΔʹผͷϓϥάΠϯ͕ඞཁ • Screenshot-tests-for-android/Facebook -
PillowΛͬͯεΫγϣͷը૾Λൺֱͯࠩ͠Λݕূ͢Δ͜ͱ͕Ͱ͖Δ - View୯ମ(Widget/ViewGroup)ɺLitho/FacebookͷViewͷεΫγϣ ΛऔΕͨΓɺHierarchyViewerͷ֦ுػೳΛͬͯViewͷ֊ΛݟΔ͜ ͱͰ͖Δ • CloudTestingScreenShotter/Firebase - FirebaseTestLabͱ࿈ܞͰ͖Δ - طଘͷCIͱͷ࿈ܞ͕؆୯
࠳ંͷཤྺ • UIͷςετɺFacebookͱTwitterͷϩάΠϯͰͭ·ͮ͘ • FirebaseTestLabͷInstrumentationςετ࣮ߦͷํͰͭ·ͮ͘ • FacebookͷεύϜٙʹͭ·ͮ͘ • PythonͷϧʔτݖݶͰͭ·ͮ͘ •
εΫϦʔϯγϣοτΛऔΔϥΠϒϥϦͷબఆͰͭ·ͮ͘ • ςετίʔυͷKotlinԽͰͭ·ͮ͘ • GradleɺyamlϑΝΠϧͷॻ͖ํʹͭ·ͮ͘
࠳ંͷཤྺ • UIͷςετɺFacebookͱTwitterͷϩάΠϯͰͭ·ͮ͘ • FirebaseTestLabͷInstrumentationςετ࣮ߦͷํͰͭ·ͮ͘ • FacebookͷεύϜٙʹͭ·ͮ͘ • PythonͷϧʔτݖݶͰͭ·ͮ͘ •
εΫϦʔϯγϣοτΛऔΔϥΠϒϥϦͷબఆͰͭ·ͮ͘ • ςετίʔυͷKotlinԽͰͭ·ͮ͘ @Rule @JvmFieldΛ͚Δ • GradleɺyamlϑΝΠϧͷॻ͖ํʹͭ·ͮ͘
࠳ંͷཤྺ • UIͷςετɺFacebookͱTwitterͷϩάΠϯͰͭ·ͮ͘ • FirebaseTestLabͷInstrumentationςετ࣮ߦͷํͰͭ·ͮ͘ • FacebookͷεύϜٙʹͭ·ͮ͘ • PythonͷϧʔτݖݶͰͭ·ͮ͘ •
εΫϦʔϯγϣοτΛऔΔϥΠϒϥϦͷબఆͰͭ·ͮ͘ • ςετίʔυͷKotlinԽͰͭ·ͮ͘ • GradleɺyamlϑΝΠϧͷॻ͖ํʹͭ·ͮ͘
ࢼߦࡨޡͨ͠ • androidTest༻ͷManifestϑΝΠϧΛ࡞ͬͯ minSdkVersionΛΦʔόʔϥΠυͯ͠มߋ͢Δ ඞཁ͕͋ͬͨ • debugDevelopmentͱ debugDevelopmentAndroidTestͷapkϑΝΠ ϧΛ࡞Δඞཁ͕͋ͬͨ
ϝϞ • Jenkins×OpenSTF×FacebookScreenshotͰ࡞ͬͨΓ͔͕ͨͬͨ͠ OpenSTF͕҆ఆ͠ͳ͍Β͘͠ɺ࣮༻తͰͳ͍Β͍͠ by ΫοΫύου • Genymotion on Demand͕͍͍Β͍͠
by ΫοΫύου • SpoonͱFacebookScreenshotಋೖͰ͖ͨͷͷɺϏϧυλΠϓͷࢦఆ ϨϙʔτϑΝΠϧεΫγϣͷॻ͖ग़͠ॴͷࢦఆͷํ͕ෳࡶͰ্ख ͍͔͘ͳ͔ͬͨ • Ϟδϡʔϧ͚·ͩ·ͩෆ໌ྎͳ෦͕ଟ͍ • AndroidStudio͔ΒϏϧυ͢Δͱςετޭ͢Δ͕ɺcronͰճ͢ͱ FacebookͱTwitterͷςετ্͕ख͍͔͘ͳ͍