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
深いい勉強会
Search
FujiKinaga
May 21, 2018
130
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.6k
最新のCompose Multiplatform を使うとiOSとAndroidアプリはどれくらい作れるのか
fujikinaga
2
740
Androidのテストの理解を深めてみた
fujikinaga
0
82
開発案件の進み方
fujikinaga
0
130
深いい勉強会 vol.10
fujikinaga
0
120
深いい勉強会 vol.9
fujikinaga
0
130
Understanding Dagger2 Part1
fujikinaga
0
82
Mater of Subscription
fujikinaga
0
96
深いい勉強会
fujikinaga
2
100
Featured
See All Featured
GitHub's CSS Performance
jonrohan
1033
470k
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
1.1k
Making Projects Easy
brettharned
120
6.8k
The Art of Programming - Codeland 2020
erikaheidi
57
14k
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
Side Projects
sachag
456
43k
Information Architects: The Missing Link in Design Systems
soysaucechin
1
1.2k
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
520
Git: the NoSQL Database
bkeepers
PRO
433
67k
Deep Space Network (abreviated)
tonyrice
0
360
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
730
Chasing Engaging Ingredients in Design
codingconduct
0
360
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ͷςετ্͕ख͍͔͘ͳ͍