Flirting with Flutter @ Getaround
by
Ishan Khanna
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
FLIRTING WITH FLUTTER AT GETAROUND ISHAN KHANNA ANDROID ENGINEER 09-DEC-2019
Slide 2
Slide 2 text
WHAT I WILL TALK ABOUT?
Slide 3
Slide 3 text
MOTIVATION
Slide 4
Slide 4 text
WORLD CLASS USER EXPERIENCE
Slide 5
Slide 5 text
WORLD CLASS USER EXPERIENCE WORLD CLASS DEV EXPERIENCE
Slide 6
Slide 6 text
SCRATCHING THE SURFACE
Slide 7
Slide 7 text
WHAT DO WE NEED
Slide 8
Slide 8 text
WHAT DO WE NEED ● ARCHITECTURE
Slide 9
Slide 9 text
WHAT DO WE NEED ● ARCHITECTURE ● DEVELOPMENT STRATEGY
Slide 10
Slide 10 text
WHAT DO WE NEED ● ARCHITECTURE ● DEVELOPMENT STRATEGY ● ADVOCACY
Slide 11
Slide 11 text
HOW TO FIND OUT?
Slide 12
Slide 12 text
BUILD A MOVIES DB APP...
Slide 13
Slide 13 text
BUILD A MOVIES DB APP… BECAUSE IT’S THE WAY BEST WAY TO PROVE, A TECHNOLOGY WORKS!
Slide 14
Slide 14 text
SO WE BUILT IT
Slide 15
Slide 15 text
No content
Slide 16
Slide 16 text
NOT JUST ONCE
Slide 17
Slide 17 text
NOT JUST ONCE, BUT MULTIPLE TIMES!
Slide 18
Slide 18 text
WHY, THOUGH?
Slide 19
Slide 19 text
THIS WAS PRETTY EASY! AND IT WAS LOVE AT FIRST BYTE :)
Slide 20
Slide 20 text
NEXT, PUSHING THE BOUNDARIES
Slide 21
Slide 21 text
ALL THIS WHILE ACTIVELY DOCUMENTING KEY LEARNINGS
Slide 22
Slide 22 text
WHAT DO WE NEED ● ARCHITECTURE ● DEVELOPMENT STRATEGY
Slide 23
Slide 23 text
HOW TO USE FLUTTER?
Slide 24
Slide 24 text
● COMPLETE REWRITE
Slide 25
Slide 25 text
● COMPLETE REWRITE ● PLATFORM VIEWS
Slide 26
Slide 26 text
Flutter Popup over Native View
Slide 27
Slide 27 text
Flutter Popup over Native View Flutter Bottom Sheet over Native View
Slide 28
Slide 28 text
Flutter Popup over Native View Flutter Bottom Sheet over Native View Native listview with one Flutter cell in list.
Slide 29
Slide 29 text
● COMPLETE REWRITE ● PLATFORM VIEWS ● ADD TO APP
Slide 30
Slide 30 text
GIT HAPPENS!
Slide 31
Slide 31 text
● GIT SUB-TREES ● GIT SUB-MODULES ● GIT MONOREPO
Slide 32
Slide 32 text
HOW COMPLEX IS IT TO? ● CLONE THE REPO
Slide 33
Slide 33 text
HOW COMPLEX IS IT TO? ● CLONE THE REPO ● PULL CHANGES FROM FLUTTER
Slide 34
Slide 34 text
HOW COMPLEX IS IT TO? ● CLONE THE REPO ● PULL CHANGES FROM FLUTTER ● PUSH CHANGES TO FLUTTER
Slide 35
Slide 35 text
HOW COMPLEX IS IT TO? ● CLONE THE REPO ● PULL CHANGES FROM FLUTTER ● PUSH CHANGES TO FLUTTER ● PULL CHANGES FROM NATIVE
Slide 36
Slide 36 text
HOW COMPLEX IS IT TO? ● CLONE THE REPO ● PULL CHANGES FROM FLUTTER ● PUSH CHANGES TO FLUTTER ● PULL CHANGES FROM NATIVE ● PUSH CHANGES TO NATIVE
Slide 37
Slide 37 text
MONOREPO FOR THE WIN!!
Slide 38
Slide 38 text
ALL SET FOR DEVELOPMENT, ARE WE?
Slide 39
Slide 39 text
LET’S TALK CI
Slide 40
Slide 40 text
STRAIGHT FORWARD SETUP ON CIRCLE CI
Slide 41
Slide 41 text
BUILDS RAN CONDITIONALLY
Slide 42
Slide 42 text
SHIPPING AN EASTER EGG!
Slide 43
Slide 43 text
No content
Slide 44
Slide 44 text
WHAT SHOULD WE BUILD, THAT IS VALUABLE FOR CUSTOMERS
Slide 45
Slide 45 text
WE SHORTLISTED SOME FEATURES BASED ON EFFORT/IMPACT RATIO
Slide 46
Slide 46 text
WE WANTED TO PICK, LOW EFFORT & HIGH IMPACT
Slide 47
Slide 47 text
MEDIUM EFFORT & MEDIUM IMPACT
Slide 48
Slide 48 text
WITHOUT FURTHER ADO, I CAN TELL YOU!
Slide 49
Slide 49 text
WE SHIPPED IT, AS WELL!
Slide 50
Slide 50 text
No content
Slide 51
Slide 51 text
No content
Slide 52
Slide 52 text
No content
Slide 53
Slide 53 text
No content
Slide 54
Slide 54 text
WHAT DO WE NEED ● ARCHITECTURE ● DEVELOPMENT STRATEGY ● ADVOCACY
Slide 55
Slide 55 text
WE ARE A DISTRIBUTED TEAM ACROSS SFO & AMS
Slide 56
Slide 56 text
ON SITE TRAININGS IN SF
Slide 57
Slide 57 text
THE RESPONSE AT THE END?
Slide 58
Slide 58 text
:| NEUTRAL
Slide 59
Slide 59 text
OOPS, IS IT REALLY FASTER?
Slide 60
Slide 60 text
LET’S FIND OUT
Slide 61
Slide 61 text
FRAMING THE HYPOTHESIS
Slide 62
Slide 62 text
THE BAKE-OFF
Slide 63
Slide 63 text
TEAM SETTING
Slide 64
Slide 64 text
THE RESULTS?
Slide 65
Slide 65 text
FLUTTER WAS ONLY 1.4X FASTER*
Slide 66
Slide 66 text
THE GOOD, THE BAD, THE UGLY
Slide 67
Slide 67 text
ADD TO APP INSTABILITY WHILE DEVELOPMENT
Slide 68
Slide 68 text
DART VM FAILED TO INITIALIZE
Slide 69
Slide 69 text
HOT RELOAD GOES OUT OF SYNC
Slide 70
Slide 70 text
BUILDS WERE BROKEN DUE TO CATALINA UPGRADE ON MAC OS
Slide 71
Slide 71 text
ANDROID STUDIO KILLED iOS SIMULATORS WHEN DOING HOT RELOADS
Slide 72
Slide 72 text
PROBLEM WITH REMOVING FOCUS FROM A TEXTFIELD
Slide 73
Slide 73 text
FLUTTER FRAGMENT ON ANDROID SHOULD BE PRESENTER IN `TEXTURE` RENDER MODE
Slide 74
Slide 74 text
NATIVE DEVELOPERS WERE OFTEN AFFECTED BECAUSE FLUTTER HAD TO UPGRADED OR INSTALLED ON THEIR MACHINES
Slide 75
Slide 75 text
THE DECISION
Slide 76
Slide 76 text
WE HAVE DECIDED TO PULL THE PLUG ON IT
Slide 77
Slide 77 text
NOT USING IT ANYMORE ON THE EXISTING APP
Slide 78
Slide 78 text
NEXT STEPS FOR US, WOULD BE TO REMOVE FLUTTER COMPLETELY AND BUILD THE OWNER RESERVATIONS NATIVELY
Slide 79
Slide 79 text
THE FUTURE
Slide 80
Slide 80 text
FLUTTER IS A GREAT TECHNOLOGY
Slide 81
Slide 81 text
SERIOUSLY, I AM NOT KIDDING!
Slide 82
Slide 82 text
FLUTTER IS A GREAT TECHNOLOGY
Slide 83
Slide 83 text
LOOKING FOR TOOLING TO IMPROVE FOR PROGRESSIVE MIGRATION
Slide 84
Slide 84 text
SUMMARY OF RISKS:
Slide 85
Slide 85 text
1. TECHNICAL
Slide 86
Slide 86 text
1. TECHNICAL 2. ORGANIZATIONAL
Slide 87
Slide 87 text
1. TECHNICAL 2. ORGANIZATIONAL 3. ECOSYSTEM
Slide 88
Slide 88 text
SPECIAL MENTION ABOUT THE BLOG POST FROM AIRBNB ABOUT SUNSETTING REACT NATIVE
Slide 89
Slide 89 text
RELATIONSHIP STATUS:
Slide 90
Slide 90 text
WE DON’T TALK ANYMORE, LIKE WE USED TO DO...
Slide 91
Slide 91 text
QUESTIONS? @droidchef