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
65
深いい勉強会
FujiKinaga
May 21, 2018
Tweet
Share
More Decks by FujiKinaga
See All by FujiKinaga
最新のCompose Multiplatform を使うとiOSとAndroidアプリはどれくらい作れるのか
fujikinaga
2
590
Androidのテストの理解を深めてみた
fujikinaga
0
54
開発案件の進み方
fujikinaga
0
83
深いい勉強会 vol.10
fujikinaga
0
79
深いい勉強会 vol.9
fujikinaga
0
98
Understanding Dagger2 Part1
fujikinaga
0
41
Mater of Subscription
fujikinaga
0
61
深いい勉強会
fujikinaga
2
67
深いい勉強会 The Navigation Component
fujikinaga
0
52
Featured
See All Featured
XXLCSS - How to scale CSS and keep your sanity
sugarenia
247
1.3M
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
44
6.9k
Thoughts on Productivity
jonyablonski
67
4.4k
The Language of Interfaces
destraynor
154
24k
Producing Creativity
orderedlist
PRO
341
39k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
26
1.9k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
8
1.2k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
356
29k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9.1k
Keith and Marios Guide to Fast Websites
keithpitt
410
22k
Six Lessons from altMBA
skipperchong
27
3.5k
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ͷςετ্͕ख͍͔͘ͳ͍