Pro Yearly is on sale from $80 to $50! »

Android @ Scale

92cdcff298e89e2fcd2fb705155c2d4b?s=47 mercari
January 25, 2019

Android @ Scale

Android @ Scale by Israel Camacho (Android Engineer @ Mercari)

Talk given at Mercari Global Engineers Meetup on Jan 25, 2019.

92cdcff298e89e2fcd2fb705155c2d4b?s=128

mercari

January 25, 2019
Tweet

Transcript

  1. None
  2. None
  3. Israel Ferrer Camacho @rallat

  4. Israel Ferrer Camacho @rallat ANDROID @ SCALE

  5. None
  6. 4DSFFO 4DSFFO 4DSFFO /FUXPSL /FUXPSL /FUXPSL #VUUPO "QQ #VUUPO #VUUPO

  7. 4DSFFO 4DSFFO 4DSFFO /FUXPSL /FUXPSL /FUXPSL #VUUPO "QQ #VUUPO #VUUPO

  8. 4DSFFO 4DSFFO 4DSFFO /FUXPSL /FUXPSL /FUXPSL #VUUPO "QQ #VUUPO #VUUPO

  9. 4DSFFO 4DSFFO 4DSFFO /FUXPSL /FUXPSL /FUXPSL #VUUPO "QQ #VUUPO #VUUPO

  10. 4DSFFO 4DSFFO 4DSFFO /FUXPSL /FUXPSL /FUXPSL #VUUPO "QQ #VUUPO #VUUPO

  11. 4DSFFO 4DSFFO 4DSFFO /FUXPSL /FUXPSL /FUXPSL #VUUPO "QQ #VUUPO #VUUPO

  12. 4DSFFO 4DSFFO 4DSFFO /FUXPSL /FUXPSL /FUXPSL #VUUPO "QQ #VUUPO #VUUPO

  13. 4DSFFO 4DSFFO 4DSFFO /FUXPSL /FUXPSL /FUXPSL #VUUPO "QQ #VUUPO #VUUPO

  14. 4DSFFO 4DSFFO 4DSFFO /FUXPSL /FUXPSL /FUXPSL #VUUPO "QQ #VUUPO #VUUPO

  15. 4DSFFO 4DSFFO 4DSFFO /FUXPSL /FUXPSL /FUXPSL #VUUPO "QQ #VUUPO #VUUPO

  16. 4DSFFO 4DSFFO 4DSFFO /FUXPSL /FUXPSL /FUXPSL #VUUPO "QQ #VUUPO #VUUPO

  17. 4DSFFO 4DSFFO 4DSFFO /FUXPSL /FUXPSL /FUXPSL #VUUPO "QQ #VUUPO #VUUPO

  18. 4DSFFO 4DSFFO 4DSFFO /FUXPSL /FUXPSL /FUXPSL #VUUPO "QQ #VUUPO #VUUPO

  19. 4DSFFO 4DSFFO 4DSFFO /FUXPSL /FUXPSL /FUXPSL #VUUPO "QQ #VUUPO #VUUPO

  20. 4DSFFO 4DSFFO 4DSFFO /FUXPSL /FUXPSL /FUXPSL #VUUPO "QQ #VUUPO #VUUPO

  21. 4DSFFO 4DSFFO 4DSFFO /FUXPSL /FUXPSL /FUXPSL #VUUPO "QQ #VUUPO #VUUPO

  22. 4DSFFO 4DSFFO 4DSFFO /FUXPSL /FUXPSL /FUXPSL #VUUPO "QQ #VUUPO #VUUPO

  23. 4DSFFO 4DSFFO 4DSFFO /FUXPSL /FUXPSL /FUXPSL #VUUPO "QQ #VUUPO #VUUPO

  24. None
  25. DIFFICULT TO MODIFY

  26. DIFFICULT TO MODIFY EASY TO BREAK

  27. DIFFICULT TO MODIFY EASY TO BREAK INFINITE CONFLICTS

  28. DIFFICULT TO MODIFY EASY TO BREAK INFINITE CONFLICTS INFINITE BUILD

    TIME
  29. None
  30. MONOLITHIC 


  31. MONOLITHIC 
 MONOLITHIC TO
 MODULAR

  32. 4DSFFO 4DSFFO 4DSFFO /FUXPSL /FUXPSL /FUXPSL #VUUPO "QQ #VUUPO #VUUPO

  33. . 4DSFFO 4DSFFO 4DSFFO /FUXPSL /FUXPSL /FUXPSL #VUUPO "QQ #VUUPO

    #VUUPO
  34. . 4DSFFO 4DSFFO 4DSFFO /FUXPSL /FUXPSL /FUXPSL #VUUPO "QQ #VUUPO

    #VUUPO 6*$PSF
  35. 6*$PSF . 4DSFFO 4DSFFO 4DSFFO /FUXPSL /FUXPSL /FUXPSL #VUUPO "QQ

    #VUUPO #VUUPO
  36. . 4DSFFO 4DSFFO 4DSFFO /FUXPSL /FUXPSL /FUXPSL "QQ #VUUPO 6*$PSF

    #VUUPO #VUUPO
  37. . 4DSFFO 4DSFFO 4DSFFO /FUXPSL /FUXPSL /FUXPSL "QQ 6*$PSF #VUUPO

    #VUUPO #VUUPO
  38. . 4DSFFO 4DSFFO 4DSFFO /FUXPSL /FUXPSL /FUXPSL "QQ 6*$PSF #VUUPO

    #VUUPO #VUUPO
  39. . 4DSFFO 4DSFFO 4DSFFO /FUXPSL /FUXPSL /FUXPSL "QQ 6*$PSF #VUUPO

    #VUUPO %FQFOETPO
  40. . 4DSFFO 4DSFFO 4DSFFO /FUXPSL /FUXPSL "QQ 6*$PSF #VUUPO #VUUPO

    %FQFOETPO /FUXPSL /FUXPSL
  41. . 4DSFFO 4DSFFO 4DSFFO /FUXPSL "QQ 6*$PSF #VUUPO #VUUPO %FQFOETPO

    /FUXPSL /FUXPSL /FUXPSL
  42. . 4DSFFO 4DSFFO 4DSFFO "QQ 6*$PSF #VUUPO #VUUPO %FQFOETPO /FUXPSL

    /FUXPSL /FUXPSL /FUXPSL
  43. . 4DSFFO 4DSFFO 4DSFFO "QQ 6*$PSF #VUUPO #VUUPO %FQFOETPO /FUXPSL

    /FUXPSL /FUXPSL /FUXPSL
  44. 4DSFFO 4DSFFO 4DSFFO "QQ 6*$PSF #VUUPO #VUUPO %FQFOETPO /FUXPSL /FUXPSL

    /FUXPSL /FUXPSL %FQFOETPO
  45. 4DSFFO 4DSFFO 4DSFFO %FQFOETPO /FUXPSL /FUXPSL /FUXPSL /FUXPSL %FQFOETPO 6*$PSF

    #VUUPO #VUUPO
  46. 4DSFFO 4DSFFO 4DSFFO %FQFOETPO /FUXPSL /FUXPSL /FUXPSL /FUXPSL %FQFOETPO 'FBUVSF

    6*$PSF #VUUPO #VUUPO
  47. 4DSFFO 4DSFFO 4DSFFO %FQFOETPO /FUXPSL /FUXPSL /FUXPSL /FUXPSL %FQFOETPO 'FBUVSF

    'FBUVSF 6*$PSF #VUUPO #VUUPO
  48. 4DSFFO 4DSFFO 4DSFFO %FQFOETPO /FUXPSL /FUXPSL /FUXPSL /FUXPSL %FQFOETPO 'FBUVSF

    'FBUVSF 'FBUVSF 6*$PSF #VUUPO #VUUPO
  49. ADVANTAGES MODULAR

  50. ADVANTAGES MODULAR

  51. ADVANTAGES MODULAR Improve reusability

  52. ADVANTAGES MODULAR Improve reusability Improve discoverability

  53. ADVANTAGES MODULAR Improve reusability Improve discoverability Less code conflicts

  54. ADVANTAGES MODULAR Improve reusability Improve discoverability Less code conflicts Faster

    build time in Gradle
  55. MERCARI MODULES

  56. REUSABLE

  57. REUSABLE Core

  58. REUSABLE Core Identity

  59. REUSABLE Core Identity Util

  60. REUSABLE Core DB Identity Util

  61. REUSABLE Core Network DB Identity Util

  62. REUSABLE Core Network DB Identity Core-java Util

  63. REUSABLE Core Network DB Identity Core-java Android Core Util

  64. REUSABLE Core Network DB Identity Core-java Android Core Util Util-Android

  65. REUSABLE Core Network DB Identity Core-java Android Core Util Util-Android

    Model
  66. REUSABLE Core Network DB Identity Core-java Android Core Util Util-Android

    UI Model
  67. REUSABLE Core Network DB Identity Core-java Android Core Util Util-Android

    UI Model Features
  68. REUSABLE Core Network DB Identity Core-java Android Core Util Util-Android

    UI Model Features Search
  69. REUSABLE Core Network DB Identity Core-java Android Core Util Util-Android

    UI Model Features Live Search
  70. REUSABLE Core Network DB Identity Core-java Android Core Util Util-Android

    UI Model Features Live Offer Search
  71. REUSABLE Core Network DB Identity Core-java Android Core Util Util-Android

    UI Model Features Live Offer Payment Search
  72. REUSABLE Core Network DB Identity Core-java Android Core Util Util-Android

    UI Model Features Live Offer Payment Search Listing
  73. THIS IS NOT A SHORT TERM PROJECT

  74. None
  75. NOT A SOLO PROJECT

  76. None
  77. IN ORDER TO SUCCEED

  78. LONG LASTING PROJECT

  79. MINDSET CHANGE ENGINEERING CULTURE

  80. FROM CODER

  81. FROM CODER TO ENGINEER

  82. ENGINEER CODER

  83. ENGINEER CODER Writes Code

  84. ENGINEER CODER Writes Code Writes Code

  85. ENGINEER CODER Writes Code Writes Code Code reviews

  86. ENGINEER CODER Writes Code Writes Code Code reviews Best solution

    for a problem
  87. ENGINEER CODER Writes Code Writes Code Code reviews Best solution

    for a problem Cares about Performance
  88. ENGINEER CODER Writes Code Writes Code Code reviews Best solution

    for a problem Cares about Performance Cares about Quality
  89. ENGINEER CODER Writes Code Writes Code Code reviews Best solution

    for a problem Cares about Performance Cares about Quality Feedback to the Team
  90. ENGINEER CODER Writes Code Writes Code Code reviews Best solution

    for a problem Cares about Performance Cares about Quality Feedback to the Team Feedback to the product
  91. HOW?

  92. WRITE GUIDELINES

  93. WRITE A TECH DOC

  94. WRITE A PR WITH EXAMPLE

  95. COLLABORATIVE WORK

  96. COLLABORATIVE WORK

  97. TRAIN THE TEAM

  98. OFFICE HOURS

  99. PAIR PROGRAMMING

  100. CODE REVIEWS

  101. STRONG ENGINEER

  102. CREATE BETTER PRODUCTS

  103. THANKS! JOIN US! Challenge awaits you!