Slide 1

Slide 1 text

INTRO TO ANDROID & ANDROID STUDIO for QA testers

Slide 2

Slide 2 text

HELLO TESTER ● What do you expect from this workshop? ● What is your biggest tester challenge you have done so far?

Slide 3

Slide 3 text

ANDROID PLATFORM

Slide 4

Slide 4 text

LANGUAGES ● Java (.java) - application logic ● Kotlin (.kt) - application logic ● Groovy (.gradle) - build scripts ● XML (.xml) - layouts, styles, drawables, values, etc. ● Markdown (.md) - documentation ● C/C++ (.c/.cpp) - NDK

Slide 5

Slide 5 text

JAVA VIRTUAL MACHINE (JVM) ● Code is compiled to Java bytecode, which is executed by a Java virtual machine ● Android bytecode is interpreted by Dalvik virtual machine ● On Android 5+ bytecode is compiled into native instructions that are executed by the device's runtime environment (ART) ● Kotlin also runs on the JVM

Slide 6

Slide 6 text

ANDROID SDK ● SDK platform ● Source codes & documentation ● System images ● Emulator ● Libraries ● Tools ● SDK versions ● Dashboards

Slide 7

Slide 7 text

GRADLE ● Build tool ● Application id ● Application version ● Target SDK ● Min SDK ● Dependencies ● Build variants ● Flavors

Slide 8

Slide 8 text

GIT

Slide 9

Slide 9 text

GIT ● Clone ● Pull ● Commit ● Push ● Log ● Branches

Slide 10

Slide 10 text

ANDROID STUDIO

Slide 11

Slide 11 text

ANDROID STUDIO ● Check out / import project ● SDK manager ● AVD manager ● Emulator ● Project view ● Build & run ● Logcat (Monitor) ● Profilers ● Screen capture / record ● Terminal ● Build release APK ● Clean project

Slide 12

Slide 12 text

ANDROID DEBUG BRIDGE ● ADB commands ● ADB Idea ● Monkey test ● Monkey runner

Slide 13

Slide 13 text

LOGS ● Log level ● Filters ● Crash log, stack trace ● Logs in production

Slide 14

Slide 14 text

PROJECT STRUCTURE

Slide 15

Slide 15 text

PROJECT & MODULE STRUCTURE

Slide 16

Slide 16 text

PROJECT STRUCTURE ● Gradle Wrapper ● Top level Gradle script ● Gradle properties, settings, utils ● Local properties ● Keystore ● Gitignore

Slide 17

Slide 17 text

MODULE STRUCTURE ● Main module usually called app or mobile ● Gradle script ● Proguard rules script ● Build folder ● Source code ● Local tests ● Instrumented tests

Slide 18

Slide 18 text

SOURCE CODE STRUCTURE ● Manifest ● Java/Kotlin files ● Resources (XML, images) ● Assets

Slide 19

Slide 19 text

OUR TECH STACK

Slide 20

Slide 20 text

TECH STACK - LIBRARIES ● Dagger ● DBFlow ● Firebase ● Glide ● GSON ● LeakCanary ● MVVM ● OkHttp ● Realm ● Retrofit ● RxJava

Slide 21

Slide 21 text

TECH STACK - GOOGLE LIBRARIES ● Support libraries ● Play Services ● Data Binding

Slide 22

Slide 22 text

TECH STACK - TESTING ● Espresso ● JUnit ● Mockito

Slide 23

Slide 23 text

TECH STACK - TOOLS ● Genymotion ● Postman ● Stetho ● Vysor

Slide 24

Slide 24 text

ANDROID APP COMPONENTS

Slide 25

Slide 25 text

APP COMPONENTS ● Activity ● Fragment ● Service ● Intent

Slide 26

Slide 26 text

ACTIVITY LIFECYCLE

Slide 27

Slide 27 text

THANK YOU @petrnohejl, @strvcom

Slide 28

Slide 28 text

QUESTIONS