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
FujiKinaga
May 21, 2018
0
62
深いい勉強会
FujiKinaga
May 21, 2018
Tweet
Share
More Decks by FujiKinaga
See All by FujiKinaga
最新のCompose Multiplatform を使うとiOSとAndroidアプリはどれくらい作れるのか
fujikinaga
2
570
Androidのテストの理解を深めてみた
fujikinaga
0
53
開発案件の進み方
fujikinaga
0
80
深いい勉強会 vol.10
fujikinaga
0
79
深いい勉強会 vol.9
fujikinaga
0
98
Understanding Dagger2 Part1
fujikinaga
0
40
Mater of Subscription
fujikinaga
0
61
深いい勉強会
fujikinaga
2
65
深いい勉強会 The Navigation Component
fujikinaga
0
52
Featured
See All Featured
Happy Clients
brianwarren
97
6.7k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.1k
VelocityConf: Rendering Performance Case Studies
addyosmani
325
24k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
226
22k
A better future with KSS
kneath
238
17k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5k
How to train your dragon (web standard)
notwaldorf
88
5.7k
Rebuilding a faster, lazier Slack
samanthasiow
79
8.6k
Side Projects
sachag
452
42k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
48k
A Modern Web Designer's Workflow
chriscoyier
692
190k
Writing Fast Ruby
sferik
626
61k
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ͷςετ্͕ख͍͔͘ͳ͍