Slide 1

Slide 1 text

Tips for Library Development From a startup developer* Lisa wray @lisawrayz Present *In the style of xkcd Droidcon Boston 2018 edition

Slide 2

Slide 2 text

4-Year B.S., Course 6 & 21M 8-YEAR

Slide 3

Slide 3 text

Simmons hall Resistance is futile

Slide 4

Slide 4 text

gradle file, day 1 dependencies { implementation appcompat-v7 implementation constraint-layout testImplementation junit androidTestImplementation espresso-core }

Slide 5

Slide 5 text

gradle file, day 7

Slide 6

Slide 6 text

why do this thing, for free, on the internet?

Slide 7

Slide 7 text

why do this thing, for free, on the internet?

Slide 8

Slide 8 text

why do this thing, for free, on the internet?!

Slide 9

Slide 9 text

self-interest

Slide 10

Slide 10 text

self-interest community
 interest

Slide 11

Slide 11 text

How can a library benefit me?

Slide 12

Slide 12 text

How about we take *this* module out? Oh god App jenga Modularity

Slide 13

Slide 13 text

Community help AKA “Other people write your code for free”

Slide 14

Slide 14 text

Apollo GraphQL Ivan (sav007) Mike (FriendlyMike) Brian (BrianPlummer) Shopify AirBNB New York Times ... AND MANY MORE!! FOR ANDROID

Slide 15

Slide 15 text

bare necessity Tee hee!

Slide 16

Slide 16 text

Learn something new KotliN This is so much fun!! Ew.

Slide 17

Slide 17 text

so, you want to make a library

Slide 18

Slide 18 text

Google (62,000) Android Facebook (17,000) React Native, LITHO Size Complexity *Not to scale

Slide 19

Slide 19 text

Google (62,000) Android Facebook (17,000) React Native, LITHO JetBrains (700) Kotlin Square (600) Retrofit, OKHttp You ? Size Complexity *Not to scale

Slide 20

Slide 20 text

You ?

Slide 21

Slide 21 text

Cyril Northcote Parkinson, 1955 “work expands so as to fill all available time.”

Slide 22

Slide 22 text

Parkinson, Cyril Northcote (19 November 1955). "Parkinson's Law". The Economist. London.
 http://www.economist.com/node/14116121 100(2km + p) yn Parkinson’s law: % bureaucrat increase over time K = staff seeking promotion P = career length M = (man) hours worked N = number of units Y = original Staff %

Slide 23

Slide 23 text

brews a hot, caffeinated beverage from coffee beans. Watch 50 Star 1,076 FORK 94 lisawray/Coffeemaker <> Code Issues 21 Pull requests 3 Some other tabs I THINK

Slide 24

Slide 24 text

README.md Coffeemaker Compile ‘com.xwray:coffeemaker:1.5.2 How to use it: New Coffeemaker().brew(Coffee) Watch 50 Star 1,076 FORK 94 lisawray/Coffeemaker <> Code Issues 21 Pull requests 3 Some other tabs I THINK brews a hot, caffeinated beverage from coffee beans.

Slide 25

Slide 25 text

README.md Coffeemaker Compile ‘com.xwray:coffeemaker:1.5.2 How to use it: New Coffeemaker() .setFilter(Filter.standard) .setGrindtype(Grindtype.NORMAL) .setWaterTemperature(195) .setDripspeed(Dripspeed.NORMAL) .brew(Coffee)

Slide 26

Slide 26 text

README.md Coffeemaker Compile ‘com.xwray:coffeemaker:1.5.2 How to use it: New Coffeemaker() .setFilter(Filter.standard) .setGrindtype(Grindtype.NORMAL) .setWaterTemperature(195) .setDripspeed(Dripspeed.NORMAL) .brew(Coffee)

Slide 27

Slide 27 text

README.md Coffeemaker Compile ‘com.xwray:coffeemaker:1.5.2 How to use it: New CoarseGrindCoffeemaker() .brew(Coffee) New SlowDripCoffeemaker() .brew(Coffee)

Slide 28

Slide 28 text

README.md Coffeemaker Compile ‘com.xwray:coffeemaker:1.5.2 How to use it: New Coffeemaker() .setFilter(new Filter()) .setGrindER(New Grinder()) .setWaterHEATER(new heater()) .setpump(new pump()) .brew(Coffee)

Slide 29

Slide 29 text

Feature requests

Slide 30

Slide 30 text

Watch 50 Star 1,076 FORK 94 lisawray/Coffeemaker <> Code Issues 21 Pull requests 3 Some other tabs I THINK Add pasta cooking capability #23 ! Open Julie commented on Oct 2 I’m using this library to make spaghetti and it’s not working well.

Slide 31

Slide 31 text

Watch 50 Star 1,076 FORK 94 lisawray/Coffeemaker <> Code Issues 21 Pull requests 3 Some other tabs I THINK Add pasta cooking capability #23 ! Open Julie commented on Oct 2 I’m using this library to make spaghetti and it’s not working well.

Slide 32

Slide 32 text

Watch 50 Star 1,076 FORK 94 lisawray/Coffeemaker <> Code Issues 21 Pull requests 3 Some other tabs I THINK Add pasta cooking capability #23 ! Open Julie commented on Oct 2 I’m using this library to make spaghetti and it’s not working well.

Slide 33

Slide 33 text

Be your own user technically, It’s *His* dogfood

Slide 34

Slide 34 text

Honesty

Slide 35

Slide 35 text

Blazing fast! Insanely performant! README.md Better than those other stupid libraries! SMALL, EASY LIBRARY TO MAKE COFFEE. DOESN’T AIM TO MAKE ALL TYPES OF BEVERAGES.

Slide 36

Slide 36 text

2 . 5 . 1 Breaking Changes Bug fix New features

Slide 37

Slide 37 text

2 . 5 . 0 - alpha 1

Slide 38

Slide 38 text

Questions Some other stuff How to make coffee on android? I’ve tried to make coffee on android, but I can only Seem to make toast. Can someone help me? I made a library that does this for you!! Check out coffeemaker!

Slide 39

Slide 39 text

Google search I’m feeling lucky Google Android library make coffee

Slide 40

Slide 40 text

Testing

Slide 41

Slide 41 text

Watch 50 Star 1,076 FORK 94 lisawray/Coffeemaker <> Code Issues 21 Pull requests 3 Some other tabs I THINK CONVERSATION 5 Commits 1 Files Changed 2 Julie commented on Oct 19 Fix filter leak #57 Fixes problem where coffee can contain bits of grounds Fix coffee filter leak 2d686e0 Open

Slide 42

Slide 42 text

CONVERSATION 5 Commits 1 Files Changed 2 Julie commented on Oct 19 Fix filter leak #57 Fixes problem where coffee can contain bits of grounds Fix coffee filter leak 2d686e0 Open All checks have passed

Slide 43

Slide 43 text

ownership

Slide 44

Slide 44 text

We own everything You make! Big company Also you get tons Of money, Three free meals A day, massages, laundry, a gym on Campus And a new puppy

Slide 45

Slide 45 text

We own everything You make! Medium company Probably. We’ll Change it. Please Don’t Leave us Did your lawyers Leave that in Accidentally?

Slide 46

Slide 46 text

Small company You can wear Batman pajamas To work

Slide 47

Slide 47 text

Competition

Slide 48

Slide 48 text

Type-safe beverage maker for android by hexagon, inc Watch 110 Star 6,032 FORK 479 Hexagon/Coffee <> Code Issues 4 Pull requests 8 README.md Coffee Compile ‘com.hexagon:coffee:1.1.0

Slide 49

Slide 49 text

Type-safe beverage maker for android by hexagon, inc Watch 110 Star 6,032 FORK 479 Hexagon/Coffee <> Code Issues 4 Pull requests 8 README.md Coffee Compile ‘com.hexagon:coffee:1.1.0

Slide 50

Slide 50 text

Type-safe beverage maker for android by hexagon, inc Watch 110 Star 6,032 FORK 479 Hexagon/Coffee <> Code Issues 4 Pull requests 8 README.md Coffee Compile ‘com.hexagon:coffee:1.1.0

Slide 51

Slide 51 text

Deprecation

Slide 52

Slide 52 text

No library is too small

Slide 53

Slide 53 text

Lisa wray @lisawrayz Present Thank you! Droidcon Boston 2018 edition