with a little help from my libs

Post on 28-Jul-2015

196 Views

Category:

Mobile

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

With a little help from my Libs By Royi Benyossef (+royiby)

With a little help from my libs by Royi Benyossef (+royiby)

Android developer since 2009.

GDG Herzliya co-founder.

Android speaker and lecturer.

Android Mentor at CampusTLV.

Android GDE 2013, 2014, 2015.

Android group leader at Vidmind.

Royi Benyossef

Motivation

Why am i here?

With a little help from my libs by Royi Benyossef (+royiby)

Motivation

With a little help from my libs by Royi Benyossef (+royiby)

Motivation

Less fragmentation

With a little help from my libs by Royi Benyossef (+royiby)

Motivation

- Less fragmentation

Better looking UIs

With a little help from my libs by Royi Benyossef (+royiby)

Motivation

- Less fragmentation- Better looking UIs

More stability

With a little help from my libs by Royi Benyossef (+royiby)

Motivation

- Less fragmentation- Better looking UIs- More stability

Less boilerplate code

With a little help from my libs by Royi Benyossef (+royiby)

With a little help from my libs by Royi Benyossef (+royiby)

Google to the rescue!

Compat

support library

With a little help from my libs by Royi Benyossef (+royiby)

AppCompat(Widgets and lifecycles)

With a little help from my libs by Royi Benyossef (+royiby)

App compat

Definition Views

With a little help from my libs by Royi Benyossef (+royiby)

App compat

Definition ViewsWidgets

With a little help from my libs by Royi Benyossef (+royiby)

App compat

Definition ViewsWidgetsActivities

With a little help from my libs by Royi Benyossef (+royiby)

App compat

Definition ViewsWidgetsActivitiesDialogs

With a little help from my libs by Royi Benyossef (+royiby)

App compat

Definition ViewsWidgetsActivitiesDialogs}Backw

ardCompatible

With a little help from my libs by Royi Benyossef (+royiby)

App compat

Definition Backward compatible app components

With a little help from my libs by Royi Benyossef (+royiby)

App compat

- Definition

AC*Activity Replaces ActionBarActivity

With a little help from my libs by Royi Benyossef (+royiby)

App compat

- Definition

AC*Activity Replaces ActionBarActivityConsistent theming

With a little help from my libs by Royi Benyossef (+royiby)

App compat

- Definition

AC*Activity Replaces ActionBarActivityConsistent themingTinting

With a little help from my libs by Royi Benyossef (+royiby)

App compat

- Definition

AC*Activity Replaces ActionBarActivityConsistent themingTintingLifecycle

With a little help from my libs by Royi Benyossef (+royiby)

App compat

- Definition

AC*Activity Replaces ActionBarActivityConsistent themingTintingLifecycleAppbar

With a little help from my libs by Royi Benyossef (+royiby)

App compat

- Definition- AC*Activity

AC*DelegateAppCompat capabilities

With a little help from my libs by Royi Benyossef (+royiby)

App compat

- Definition- AC*Activity

AC*DelegateAppCompat capabilitiesWorks on all Activities

With a little help from my libs by Royi Benyossef (+royiby)

App compat

- Definition- AC*Activity- AC*Delegate

AC*Dialog

Material design

With a little help from my libs by Royi Benyossef (+royiby)

App compat

- Definition- AC*Activity- AC*Delegate

AC*Dialog

Material designLollipop lifecycle

With a little help from my libs by Royi Benyossef (+royiby)

App compat

- Definition- AC*Activity- AC*Delegate

AC*Dialog

Material designLollipop lifecycleNew animations

With a little help from my libs by Royi Benyossef (+royiby)

DrawableCompat(Image tinting)

With a little help from my libs by Royi Benyossef (+royiby)

Drawable compat

Definition Tinting capabilities (V4)

With a little help from my libs by Royi Benyossef (+royiby)

Drawable compat

Definition Tinting capabilities (V4)Tintable views (AppCompat)

With a little help from my libs by Royi Benyossef (+royiby)

Drawable compat

Definition Tintable views (AppCompat):

>*AutoCompleteTextView

With a little help from my libs by Royi Benyossef (+royiby)

Drawable compat

Definition Tintable views (AppCompat):

*AutoCompleteTextView

>*Button

With a little help from my libs by Royi Benyossef (+royiby)

Drawable compat

Definition Tintable views (AppCompat):

*AutoCompleteTextView

*Button>*Checkbox

With a little help from my libs by Royi Benyossef (+royiby)

Drawable compat

Definition Tintable views (AppCompat):

*AutoCompleteTextView

*Button*Checkbox>*Spinner

With a little help from my libs by Royi Benyossef (+royiby)

Drawable compat

Definition Tintable views (AppCompat):

*AutoCompleteTextView

*Button*Checkbox*Spinner>...more!

With a little help from my libs by Royi Benyossef (+royiby)

Drawable compat

- Definition

Usages Branding

With a little help from my libs by Royi Benyossef (+royiby)

Drawable compat

- Definition

Usages BrandingLess drawables (less size)

With a little help from my libs by Royi Benyossef (+royiby)

Drawable compat

- Definition

Usages BrandingLess drawables (less size)Reuse w/o repetition

With a little help from my libs by Royi Benyossef (+royiby)

DrawableCompat(Example)

With a little help from my libs by Royi Benyossef (+royiby)

Drawable compat

CustomView.wrap(drawable)

With a little help from my libs by Royi Benyossef (+royiby)

Drawable compat

CustomView.wrap(drawable) = > setTint()

With a little help from my libs by Royi Benyossef (+royiby)

Drawable compat

CustomView.wrap(drawable) = setTint()> setTintList()

With a little help from my libs by Royi Benyossef (+royiby)

Drawable compat

CustomView.wrap(drawable) = setTint()setTintList()>

setTintMode()

With a little help from my libs by Royi Benyossef (+royiby)

Content driven coloring(Available as of API level 4)

With a little help from my libs by Royi Benyossef (+royiby)

Content driven coloring

Definition Match colors to content

With a little help from my libs by Royi Benyossef (+royiby)

Content driven coloring

Definition Match colors to contentCreate diversity and interest

With a little help from my libs by Royi Benyossef (+royiby)

Content driven coloring

- Definition

Palette Introduced in lollipop

With a little help from my libs by Royi Benyossef (+royiby)

Content driven coloring

- Definition

Palette Introduced in lollipop Retrieve color from content

With a little help from my libs by Royi Benyossef (+royiby)

Content driven coloring

- Definition

Palette Introduced in lollipop Retrieve color from contentChoose matching swatch

With a little help from my libs by Royi Benyossef (+royiby)

Content driven coloring

- Definition

Palette Introduced in lollipop Retrieve color from contentChoose matching swatch = Profit

With a little help from my libs by Royi Benyossef (+royiby)

Content driven coloring

- Definition

Palette Palette.from(bitmap)

With a little help from my libs by Royi Benyossef (+royiby)

Content driven coloring

- Definition

Palette Palette.from(bitmap)

>6-8 times faster

With a little help from my libs by Royi Benyossef (+royiby)

Content driven coloring

- Definition

Palette Palette.from(bitmap)

6-8 times faster> sync and

async

With a little help from my libs by Royi Benyossef (+royiby)

Content driven coloring

- Definition- Palette

ColorUtilsAvailable from API level 4

With a little help from my libs by Royi Benyossef (+royiby)

Content driven coloring

- Definition- Palette

ColorUtilsAvailable from API level 4Some of Palette’s internals

With a little help from my libs by Royi Benyossef (+royiby)

Content driven coloring

- Definition- Palette

ColorUtilsAvailable from API level 4Some of Palette’s internals

>Calculate contrast

With a little help from my libs by Royi Benyossef (+royiby)

Content driven coloring

- Definition- Palette

ColorUtilsAvailable from API level 4Some of Palette’s internals

Calculate contrast

>Determine min alpha

With a little help from my libs by Royi Benyossef (+royiby)

Content driven coloring

- Definition- Palette

ColorUtilsAvailable from API level 4Some of Palette’s internals

Calculate contrast

Determine min alpha

>Colors to HSL

With a little help from my libs by Royi Benyossef (+royiby)

Interpolators(Authentic motion is important)

With a little help from my libs by Royi Benyossef (+royiby)

Interpolators

Definition Controllers for animation change rate

With a little help from my libs by Royi Benyossef (+royiby)

Interpolators

- Definition

Diff Fast out linear in

With a little help from my libs by Royi Benyossef (+royiby)

Interpolators

- Definition

Diff Fast out linear inFast out slow in

With a little help from my libs by Royi Benyossef (+royiby)

Interpolators

- Definition

Diff Fast out linear inFast out slow inLinear out slow in

With a little help from my libs by Royi Benyossef (+royiby)

Interpolators

- Definition

Diff Fast out linear inFast out slow inLinear out slow inPathInterpolarCompat

With a little help from my libs by Royi Benyossef (+royiby)

RecyclerView(ListView is just a fading memory)

With a little help from my libs by Royi Benyossef (+royiby)

RecyclerView

Definition Replaced ListView in Lollipop

With a little help from my libs by Royi Benyossef (+royiby)

RecyclerView

- Definition

SortedList Sorted list of custom objects

With a little help from my libs by Royi Benyossef (+royiby)

RecyclerView

- Definition

SortedList Sorted list of custom objects Efficient CRUD event dispatch

With a little help from my libs by Royi Benyossef (+royiby)

RecyclerView

- Definition

SortedListSorted list of custom objects Efficient CRUD event dispatchChanges batching

With a little help from my libs by Royi Benyossef (+royiby)

Leanback(AndroidTV best practices)

With a little help from my libs by Royi Benyossef (+royiby)

RecyclerView

Definition GuidanceView

With a little help from my libs by Royi Benyossef (+royiby)

RecyclerView

Definition GuidanceViewClasses & themes

With a little help from my libs by Royi Benyossef (+royiby)

RecyclerView

Definition GuidanceViewClasses & themesMulti-step process

Design

support library

With a little help from my libs by Royi Benyossef (+royiby)

NavigationView(NavigationDrawer++)

With a little help from my libs by Royi Benyossef (+royiby)

NavigationView

Definition NavigationDrawer ++

With a little help from my libs by Royi Benyossef (+royiby)

NavigationView

Definition NavigationDrawer ++Clearer navigation

With a little help from my libs by Royi Benyossef (+royiby)

NavigationView

Definition NavigationDrawer ++Clearer navigationIdentity focal point

With a little help from my libs by Royi Benyossef (+royiby)

NavigationView

- Definition

Diff Inflation from .xml

With a little help from my libs by Royi Benyossef (+royiby)

NavigationView

- Definition

Diff Inflation from .xmlRuntime updates

With a little help from my libs by Royi Benyossef (+royiby)

NavigationView

- Definition

Diff Inflation from .xmlRuntime updatesCallbacks

With a little help from my libs by Royi Benyossef (+royiby)

Navigation view

- Definition

Diff Inflation from .xmlRuntime updatesCallbacksScrim protection

With a little help from my libs by Royi Benyossef (+royiby)

Navigation view

- Definition

Diff Inflation from .xmlRuntime updatesCallbacksScrim protectionSubheaders

With a little help from my libs by Royi Benyossef (+royiby)

NavigationView(Example)

With a little help from my libs by Royi Benyossef (+royiby)

NavigationView

Layout <android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true">

<!-- your content layout -->

<android.support.design.widget.NavigationView android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_gravity="start" app:headerLayout="@layout/drawer_header" app:menu="@menu/drawer"/></android.support.v4.widget.DrawerLayout>

With a little help from my libs by Royi Benyossef (+royiby)

NavigationView

- Layout

Menu<group android:checkableBehavior="single"> <item android:id="@+id/navigation_item_1" android:checked="true" android:icon="@drawable/ic_android" android:title="@string/navigation_item_1"/> <item android:id="@+id/navigation_item_2" android:icon="@drawable/ic_android" android:title="@string/navigation_item_2"/></group>

With a little help from my libs by Royi Benyossef (+royiby)

NavigationView

- Layout- Menu

Subheaders

<item android:id="@+id/navigation_subheader" android:title="@string/navigation_subheader"> <menu> <item android:id="@+id/navigation_sub_item_1" android:icon="@drawable/ic_android" android:title="@string/navigation_sub_item_1"/> <item android:id="@+id/navigation_sub_item_2" android:icon="@drawable/ic_android" android:title="@string/navigation_sub_item_2"/> </menu></item>

With a little help from my libs by Royi Benyossef (+royiby)

EditText(Labels & hints)

With a little help from my libs by Royi Benyossef (+royiby)

EditText

Definition New labels and messages

With a little help from my libs by Royi Benyossef (+royiby)

EditText

Definition New labels and messagesMore states

With a little help from my libs by Royi Benyossef (+royiby)

EditText

Definition New labels and messagesMore statesMore clarity

With a little help from my libs by Royi Benyossef (+royiby)

EditText

- Definition

Diff Floating labels

With a little help from my libs by Royi Benyossef (+royiby)

EditText

- Definition

Diff Floating labelsError messages

With a little help from my libs by Royi Benyossef (+royiby)

FAB(Absolutely FABulous)

With a little help from my libs by Royi Benyossef (+royiby)

Floating action button

Definition Primary action

With a little help from my libs by Royi Benyossef (+royiby)

Floating action button

Definition Primary actionPromoted items

With a little help from my libs by Royi Benyossef (+royiby)

Floating action button

Definition Primary actionPromoted itemsContinuous (mini FAB)

With a little help from my libs by Royi Benyossef (+royiby)

Floating action button

- Definition

Diff Standard implementation

With a little help from my libs by Royi Benyossef (+royiby)

SnackBar(hmm… yum!)

With a little help from my libs by Royi Benyossef (+royiby)

Snack bar

Definition Toast++

With a little help from my libs by Royi Benyossef (+royiby)

Snack bar

- Definition

Diff New addition!

With a little help from my libs by Royi Benyossef (+royiby)

Snack bar

- Definition- Diff

UsagesOperation feedback

With a little help from my libs by Royi Benyossef (+royiby)

Snack bar

- Definition- Diff

UsagesOperation feedbackTemporary state

With a little help from my libs by Royi Benyossef (+royiby)

Snack bar

- Definition- Diff

UsagesOperation feedbackTemporary stateLong action result

With a little help from my libs by Royi Benyossef (+royiby)

SnackBar(Example)

With a little help from my libs by Royi Benyossef (+royiby)

Snack bar

Show Snackbar .make(parentLayout, R.string.snackbar_text, Snackbar.LENGTH_LONG) .setAction(R.string.snackbar_action, myOnClickListener) .show(); // Don’t forget to show!

With a little help from my libs by Royi Benyossef (+royiby)

TabLayout(Not just a material design thingy)

With a little help from my libs by Royi Benyossef (+royiby)

Tab layout

Definition Tabs 15.0

With a little help from my libs by Royi Benyossef (+royiby)

Tab layout

- Definition

Diff Adding programmatically

With a little help from my libs by Royi Benyossef (+royiby)

Tab layout

- Definition

Diff Adding programmaticallyViewPager integration

With a little help from my libs by Royi Benyossef (+royiby)

Tab layout

- Definition

Diff Adding programmaticallyViewPager integrationEasy fixed size or scrollable

With a little help from my libs by Royi Benyossef (+royiby)

Tab layout

- Definition- Diff

UsagesTop level nav. pattern

With a little help from my libs by Royi Benyossef (+royiby)

Tab layout

- Definition- Diff

UsagesTop level nav. patternContent group organizing

With a little help from my libs by Royi Benyossef (+royiby)

Tab layout

- Definition- Diff

UsagesTop level nav. patternContent group organizingViewPager mgmt.

With a little help from my libs by Royi Benyossef (+royiby)

CoordinatorLayout(Because something needs to be)

With a little help from my libs by Royi Benyossef (+royiby)

Coordinator layout

Definition Child view touch event control

With a little help from my libs by Royi Benyossef (+royiby)

Coordinator layout

- Definition

Diff New!

With a little help from my libs by Royi Benyossef (+royiby)

Coordinator layout

- Definition- Diff

UsagesAnimated FAB

With a little help from my libs by Royi Benyossef (+royiby)

Coordinator layout

- Definition- Diff

UsagesAnimated FABlayout_anchor

With a little help from my libs by Royi Benyossef (+royiby)

Coordinator layout

- Definition- Diff

UsagesAnimated Floating action barlayout_anchorAppBar scrolling techniques

With a little help from my libs by Royi Benyossef (+royiby)

Coordinator layout

- Definition- Diff

UsagesAppBar scrolling techniques:

> Scrol

With a little help from my libs by Royi Benyossef (+royiby)

Coordinator layout

- Definition- Diff

UsagesAppBar scrolling techniques:

Scrol> Enter

always

With a little help from my libs by Royi Benyossef (+royiby)

Coordinator layout

- Definition- Diff

UsagesAppBar scrolling techniques:

ScrolEnter always

> Enter always collapsed

With a little help from my libs by Royi Benyossef (+royiby)

Coordinator layout

- Definition- Diff

UsagesAppBar scrolling techniques:

ScrolEnter always

Enter always collapsed

> Exit until collapsed

With a little help from my libs by Royi Benyossef (+royiby)

CoordinatorLayout(Example)

With a little help from my libs by Royi Benyossef (+royiby)

Coordinator layout

AppBar <android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"...> <! -- Your Scrollable View --> <android.support.v7.widget.RecyclerView android:layout_width="match_parent" android:layout_height="match_parent" app:layout_behavior="@string/appbar_scrolling_view_behavior" /> <android.support.design.widget.AppBarLayout android:layout_width="match_parent" android:layout_height="wrap_content"> <android.support.v7.widget.Toolbar app:layout_scrollFlags="scroll|enterAlways"> <android.support.design.widget.TabLayout app:layout_scrollFlags="scroll|enterAlways"> </...AppBarLayout></...CoordinatorLayout>

With a little help from my libs by Royi Benyossef (+royiby)

CollapsingToolbar(You prayers has been answered)

With a little help from my libs by Royi Benyossef (+royiby)

Collapsing toolbar layout

Definition Animation controls

With a little help from my libs by Royi Benyossef (+royiby)

Collapsing toolbar layout

- Definition

Diff New!!!

With a little help from my libs by Royi Benyossef (+royiby)

Collapsing toolbar layout

- Definition-Diff

UsagesCollapse mode

With a little help from my libs by Royi Benyossef (+royiby)

Collapsing toolbar layout

- Definition-Diff

UsagesCollapse mode:

> Pin

With a little help from my libs by Royi Benyossef (+royiby)

Collapsing toolbar layout

- Definition-Diff

UsagesCollapse mode:

Pin> Parallax

With a little help from my libs by Royi Benyossef (+royiby)

Collapsing toolbar layout

- Definition-Diff

UsagesCollapse mode:

PinParallax

Layout parallax multiplier

With a little help from my libs by Royi Benyossef (+royiby)

CollapsingToolbar(Example)

With a little help from my libs by Royi Benyossef (+royiby)

Coordinator layout

Pin <android.support.design.widget.AppBarLayout android:layout_height="192dp" android:layout_width="match_parent"> <android.support.design.widget.CollapsingToolbarLayout android:layout_width="match_parent" android:layout_height="match_parent" app:layout_scrollFlags="scroll|exitUntilCollapsed"> <android.support.v7.widget.Toolbar android:layout_height="?attr/actionBarSize" android:layout_width="match_parent" app:layout_collapseMode="pin"/> </android.support.design.widget.CollapsingToolbarLayout></android.support.design.widget.AppBarLayout>

Testingsupport library

With a little help from my libs by Royi Benyossef (+royiby)

Testing support library

Definition Backward compatible (API 8)

With a little help from my libs by Royi Benyossef (+royiby)

Testing support library

Definition Backward compatible (API 8)All test tool dependencies

With a little help from my libs by Royi Benyossef (+royiby)

AndroidJunitRunner(Junit-¾ + testing framework)

With a little help from my libs by Royi Benyossef (+royiby)

AndroidJunitRunner

Definition Junit 3/4 compatible

With a little help from my libs by Royi Benyossef (+royiby)

AndroidJunitRunner

Definition Junit 3/4 compatibleActs as testing framework

With a little help from my libs by Royi Benyossef (+royiby)

AndroidJunitRunner

Definition Junit 3/4 compatibleActs as testing frameworkInstrumentationTestRunner

With a little help from my libs by Royi Benyossef (+royiby)

AndroidJunitRunner

- Definition

Jurisdiction Load test pkgs to device

With a little help from my libs by Royi Benyossef (+royiby)

AndroidJunitRunner

- Definition

Jurisdiction Load test pkgs to deviceRuns test

With a little help from my libs by Royi Benyossef (+royiby)

AndroidJunitRunner

- Definition

Jurisdiction Load test pkgs to deviceRuns test Reports results

With a little help from my libs by Royi Benyossef (+royiby)

AndroidJunitRunner

- Definition- Jurisdiction

Instrum. info.Related to test run

With a little help from my libs by Royi Benyossef (+royiby)

AndroidJunitRunner

- Definition- Jurisdiction

Instrum. info.Related to test runInstrumentation obj

With a little help from my libs by Royi Benyossef (+royiby)

AndroidJunitRunner

- Definition- Jurisdiction

Instrum. info.Related to test runInstrumentation objTarget app context

With a little help from my libs by Royi Benyossef (+royiby)

AndroidJunitRunner

- Definition- Jurisdiction

Instrum. info.Related to test runInstrumentation objTarget app contextTest app context

With a little help from my libs by Royi Benyossef (+royiby)

AndroidJunitRunner

- Definition- Jurisdiction

Instrum. info.Related to test runInstrumentation objTarget app contextTest app contextCmd line args

With a little help from my libs by Royi Benyossef (+royiby)

AndroidJunitRunner

- Definition- Jurisdiction

Instrum. info.Related to test runInstrumentation objTarget app contextTest app contextCmd line args= UIAutomator GOLD!

With a little help from my libs by Royi Benyossef (+royiby)

AndroidJunitRunner

@RunWith(AndroidJUnit4.class)

public class CalculatorInstrumentationTest extends ActivityInstrumentationTestCase2<CalculatorActivity> {

@Before

public void setUp() throws Exception {

super.setUp();

injectInstrumentation(InstrumentationRegistry.getInstrumentation());

mActivity = getActivity();

}

@Test

public void typeOperandsAndPerformAddOperation() {}

@After

public void tearDown() throws Exception {

super.tearDown();

}

}

With a little help from my libs by Royi Benyossef (+royiby)

AndroidJunitRunner

- Definition- Jurisdiction- Instrum. info.

Filtering

@RequiresDevice

With a little help from my libs by Royi Benyossef (+royiby)

AndroidJunitRunner

- Definition- Jurisdiction- Instrum. info.

Filtering

@RequiresDevice@SdkSupress

With a little help from my libs by Royi Benyossef (+royiby)

AndroidJunitRunner

- Definition- Jurisdiction- Instrum. info.

Filtering

@RequiresDevice@SdkSupress@SdkSupress(minAPI)

With a little help from my libs by Royi Benyossef (+royiby)

AndroidJunitRunner

- Definition- Jurisdiction- Instrum. info.

Filtering

@RequiresDevice@SdkSupress@SdkSupress(minAPI)@Small/Medium/LargeTest

With a little help from my libs by Royi Benyossef (+royiby)

AndroidJunitRunner

- Definition- Jurisdiction- Instrum. info.- Filtering

Sharding

Test case subset ability

With a little help from my libs by Royi Benyossef (+royiby)

AndroidJunitRunner

- Definition- Jurisdiction- Instrum. info.- Filtering

Sharding

Test case subset abilityRun full suite or by shards

With a little help from my libs by Royi Benyossef (+royiby)

AndroidJunitRunner

- Definition- Jurisdiction- Instrum. info.- Filtering

Sharding

Test case subset abilityRun full suite or by shardsIdentification by index

With a little help from my libs by Royi Benyossef (+royiby)

AndroidJunitRunner

- Definition- Jurisdiction- Instrum. info.- Filtering

Sharding(Ex.)

adb shell am

instrument -w

-e numShards 10

-e shardIndex 2

With a little help from my libs by Royi Benyossef (+royiby)

Espresso(Short, intense and efficient UI testing)

With a little help from my libs by Royi Benyossef (+royiby)

Espresso

Definition UI flow testing framework

With a little help from my libs by Royi Benyossef (+royiby)

Espresso

Definition UI flow testing frameworkWhite-box style

With a little help from my libs by Royi Benyossef (+royiby)

Espresso

Definition UI flow testing frameworkWhite-box style(Reliant on target app code)

With a little help from my libs by Royi Benyossef (+royiby)

Espresso

- Definition

View matchingUse target app R.id.*

With a little help from my libs by Royi Benyossef (+royiby)

Espresso

- Definition

View matchingUse target app R.id.*Matcher will search and find

With a little help from my libs by Royi Benyossef (+royiby)

Espresso

- Definition

View matchingonView(

withId

(

R.id.my_button

)

);

With a little help from my libs by Royi Benyossef (+royiby)

Espresso

- Definition- View matching

AdaptersDynamic data

With a little help from my libs by Royi Benyossef (+royiby)

Espresso

- Definition- View matching

AdaptersDynamic dataonView() might not work

With a little help from my libs by Royi Benyossef (+royiby)

Espresso

- Definition- View matching

AdaptersDynamic dataonView() might not workEspresso.onData()!

With a little help from my libs by Royi Benyossef (+royiby)

Espresso

- Definition- View matching

AdaptersDynamic dataonView() might not workEspresso.onData():

> data population event

With a little help from my libs by Royi Benyossef (+royiby)

Espresso

- Definition- View matching

AdaptersDynamic dataonView() might not workEspresso.onData():

data population event

> User action reference

With a little help from my libs by Royi Benyossef (+royiby)

Espresso

- Definition- View matching- Adapters

Actions API

View clicks

With a little help from my libs by Royi Benyossef (+royiby)

Espresso

- Definition- View matching- Adapters

Actions API

View clicksSwipes

With a little help from my libs by Royi Benyossef (+royiby)

Espresso

- Definition- View matching- Adapters

Actions API

View clicksSwipesKey & button press

With a little help from my libs by Royi Benyossef (+royiby)

Espresso

- Definition- View matching- Adapters

Actions API

View clicksSwipesKey & button pressText typing

With a little help from my libs by Royi Benyossef (+royiby)

Espresso

- Definition- View matching- Adapters

Actions API

View clicksSwipesKey & button pressText typingOpening links

With a little help from my libs by Royi Benyossef (+royiby)

Espresso

- Definition- View matching- Adapters

Actions API

// Type text into an EditText view, then close the

soft keyboard

onView(withId(R.id.editTextUserInput))

.perform(typeText(STRING_TO_BE_TYPED),

closeSoftKeyboard());

// Press the button to submit the text change

onView(withId(R.id.changeTextBt)).perform(click());

With a little help from my libs by Royi Benyossef (+royiby)

Espresso

- Definition- View matching- Adapters- Actions API

Thread sync

Fully integrated

With a little help from my libs by Royi Benyossef (+royiby)

Espresso

- Definition- View matching- Adapters- Actions API

Thread sync

Fully integratedNo sleep()

With a little help from my libs by Royi Benyossef (+royiby)

Espresso

- Definition- View matching- Adapters- Actions API

Thread sync

Fully integratedNo sleep()No wait()

With a little help from my libs by Royi Benyossef (+royiby)

Espresso

- Definition- View matching- Adapters- Actions API

Thread sync

Fully integratedNo sleep()No wait()No to test flakiness!

With a little help from my libs by Royi Benyossef (+royiby)

Espresso

- Definition- View matching- Adapters- Actions API

Thread sync

Fully integratedNo sleep()No wait()No to test flakiness!Yes to determinism!!!

With a little help from my libs by Royi Benyossef (+royiby)

UIAutomator(Because not all the names can be witty)

With a little help from my libs by Royi Benyossef (+royiby)

UIAutomator

Definition Black-box UI flow testing

With a little help from my libs by Royi Benyossef (+royiby)

UIAutomator

Definition Black-box UI flow testing(No reliance on target code)

With a little help from my libs by Royi Benyossef (+royiby)

UIAutomator

- Definition

APIs UIDevice (.pressHome())

With a little help from my libs by Royi Benyossef (+royiby)

UIAutomator

- Definition

APIs UIDevice (.pressHome())UICollection

With a little help from my libs by Royi Benyossef (+royiby)

UIAutomator

- Definition

APIs UIDevice (.pressHome())UICollectionUIObject

With a little help from my libs by Royi Benyossef (+royiby)

UIAutomator

- Definition

APIs UIDevice (.pressHome())UICollectionUIObjectUIScrollable

With a little help from my libs by Royi Benyossef (+royiby)

UIAutomator

- Definition

APIs UIDevice (.pressHome())UICollectionUIObjectUIScrollableUISelector

With a little help from my libs by Royi Benyossef (+royiby)

UIAutomator

- Definition

APIs UIDevice (.pressHome())UICollectionUIObjectUIScrollableUISelectorConfigurer

With a little help from my libs by Royi Benyossef (+royiby)

Summary(What did we have here?)

With a little help from my libs by Royi Benyossef (+royiby)

Key points

AppCompat

With a little help from my libs by Royi Benyossef (+royiby)

Key points

- AppCompat

V4/V7/V13 support lib

With a little help from my libs by Royi Benyossef (+royiby)

Key points

- AppCompat- V4/V7/V13 support lib

Design support lib

With a little help from my libs by Royi Benyossef (+royiby)

Key points

- AppCompat- V4/V7/V13 support lib- Design support lib

Testing support lib

“We should be building great things. Things that Don’t yet exist”

I Hope You Liked ItThank you for listening

By Royi Benyossef (+royiby)

top related