with a little help from my libs
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)