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

Blurring the Line Between Native and Web (Droidcon DE 2018)

Blurring the Line Between Native and Web (Droidcon DE 2018)

54879f243e5b72eedb2d379bed6fda27?s=128

Jake Wharton
PRO

June 26, 2018
Tweet

Transcript

  1. #NATIVE&WEB @JAKEWHARTON

  2. None
  3. None
  4. None
  5. None
  6. None
  7. None
  8. None
  9. JavaScriptCore

  10. JavaScriptCore JNI

  11. JavaScriptCore VM / Main Thread JNI

  12. JavaScriptCore UI Toolkit VM / Main Thread JNI

  13. JavaScriptCore UI Toolkit VM / Main Thread JNI JavaScriptCore

  14. JavaScriptCore UI Toolkit VM / Main Thread JNI JavaScriptCore Runtime

  15. JavaScriptCore UI Toolkit VM / Main Thread JNI JavaScriptCore Runtime

    Main Thread
  16. JavaScriptCore UI Toolkit VM / Main Thread JNI JavaScriptCore Runtime

    Main Thread UI Toolkit
  17. JavaScriptCore UI Toolkit VM / Main Thread JNI JavaScriptCore Runtime

    Main Thread UI Toolkit V8
  18. JavaScriptCore UI Toolkit VM / Main Thread JNI JavaScriptCore Runtime

    Main Thread UI Toolkit V8 DOM
  19. JavaScriptCore UI Toolkit VM / Main Thread JNI JavaScriptCore Runtime

    Main Thread UI Toolkit V8 DOM
  20. JavaScriptCore UI Toolkit VM / Main Thread JNI JavaScriptCore Runtime

    Main Thread UI Toolkit V8 DOM
  21. JavaScriptCore UI Toolkit VM / Main Thread JNI JavaScriptCore Runtime

    Main Thread UI Toolkit V8 DOM
  22. JavaScriptCore UI Toolkit VM / Main Thread JNI JavaScriptCore Runtime

    Main Thread UI Toolkit V8 DOM
  23. JavaScriptCore JNI JavaScriptCore Runtime V8

  24. V8 JNI JavaScriptCore Runtime V8

  25. Duktape JNI JavaScriptCore Runtime V8

  26. Duktape JNI JavaScriptCore Runtime V8

  27. Duktape JNI JavaScriptCore Runtime V8

  28. React Native Platform Duktape JNI JavaScriptCore Runtime V8

  29. JS Engine + Abstraction Your App Duktape JNI JavaScriptCore Runtime

    V8
  30. None
  31. None
  32. None
  33. None
  34. Shared Library + Abstraction Your App

  35. Shared Library + Abstraction Your App ????

  36. None
  37. None
  38. None
  39. None
  40. Multiplatform Abstraction Your App

  41. Your App

  42. Your App

  43. J2ObjC

  44. J2ObjC

  45. J2ObjC

  46. None
  47. None
  48. None
  49. None
  50. None
  51. None
  52. None
  53. None
  54. None
  55. None
  56. None
  57. None
  58. None
  59. None
  60. None
  61. None
  62. None
  63. None
  64. None
  65. app feature 1 feature 2 feature 3

  66. app feature 1 feature 2 feature 3 myapp.apk

  67. app feature 1 feature 2 feature 3 myapp.apk base.apk

  68. app feature 1 feature 2 feature 3 myapp.apk base.apk feature1.apk

  69. app feature 1 feature 2 feature 3 myapp.apk base.apk feature1.apk

    HTML CSS JS PNG PNG /index.html HTML /feature1.html
  70. app feature 1 feature 2 feature 3

  71. feature 1 feature 2 feature 3

  72. feature 2 feature 3

  73. feature 3

  74. None
  75. DEX DEX DEX DEX

  76. DEX ARM x86 DEX DEX DEX

  77. DEX ARM x86 en-US de DEX DEX DEX en-US en-US

    en-US de de de
  78. app_arm_en-US.apk DEX ARM en-US DEX en-US DEX en-US DEX en-US

    DEX en-US de DEX en-US de ARM x86 en-US de DEX en-US de DEX
  79. app_arm_en-US.apk DEX ARM en-US DEX en-US DEX en-US DEX en-US

    DEX en-US de DEX en-US de ARM x86 en-US de DEX en-US de DEX de de de de app_de.apk
  80. DEX en-US de DEX en-US de ARM x86 en-US de

    DEX en-US de DEX ARM en-US DEX DEX en-US de
  81. DEX en-US de DEX en-US de ARM x86 en-US de

    DEX en-US de DEX ARM en-US DEX base_arm_en-US.apk DEX en-US
  82. DEX en-US de DEX en-US de ARM x86 en-US de

    DEX en-US de DEX ARM en-US DEX base_arm_en-US.apk DEX en-US feature1_arm_en-US.apk
  83. ARM en-US DEX base_arm_en-US.apk DEX en-US feature1_arm_en-US.apk HTML CSS JS

    PNG PNG /index.html HTML /feature1.html
  84. None
  85. None
  86. None
  87. None
  88. None
  89. None
  90. None
  91. None
  92. None
  93. None
  94. None
  95. None
  96. None
  97. None
  98. None
  99. None
  100. None
  101. None
  102. native_app.apk DEX ... ART

  103. native_app.apk DEX ... ART Int JIT AOT

  104. native_app.apk DEX ... ART Int JIT AOT CPU

  105. native_app.apk DEX ... ART ART Int JIT AOT CPU chrome.apk

    ... DEX
  106. native_app.apk DEX ... ART ART V8 Int JIT AOT CPU

    chrome.apk ... DEX
  107. native_app.apk DEX ... ART ART V8 Int JIT AOT CPU

    chrome.apk ... DEX ... JS cache/
  108. native_app.apk DEX ... ART ART V8 Int JIT AOT CPU

    Int JIT chrome.apk ... DEX ... JS cache/
  109. native_app.apk DEX ... ART ART V8 Int JIT AOT CPU

    CPU Int JIT chrome.apk ... DEX ... JS cache/
  110. native_app.apk DEX ... ART ART V8 Int JIT AOT CPU

    CPU Int JIT JIT & AOT cache chrome.apk ... DEX ... JS cache/
  111. native_app.apk DEX ... ART ART V8 Int JIT AOT CPU

    CPU Int JIT JIT & AOT cache chrome.apk ... DEX ... JS cache/
  112. None
  113. Shared Library + Abstraction Your App ????

  114. Shared Library + Abstraction Your App WASM

  115. Multiplatform Abstraction Your App

  116. Multiplatform Abstraction Your App WASM

  117. ART V8 CPU Int JIT chrome.apk ... DEX ... JS

    cache/
  118. ART V8 CPU Int JIT chrome.apk ... DEX ... JS

    cache/
  119. ART V8 CPU Int JIT chrome.apk ... DEX ... JS

    cache/ airhorner.apk ... DEX
  120. None
  121. None
  122. None
  123. None
  124. ART V8 CPU Int JIT chrome.apk ... DEX ... JS

    cache/
  125. ART V8 CPU Int JIT airhorner.apk ... DEX ... JS

    cache/
  126. ART V8 CPU Int JIT airhorner.apk ... DEX ... JS

    cache/ JIT & AOT cache
  127. None
  128. None
  129. None
  130. None
  131. None
  132. app.apk

  133. app.aab app.apk

  134. app.aab app.apk

  135. app.aab app.apk

  136. app.ipa app.aab app.apk

  137. app.ipa app.aab app.apk

  138. app.ipa app.aab app.apk

  139. website/ index.html feature1.html feature2.html feature3.html app.js styles.css app.ipa app.aab app.apk

  140. app-fat.jar website/ index.html feature1.html feature2.html feature3.html app.js styles.css app.ipa app.aab

    app.apk
  141. None
  142. None
  143. apk via aab via url

  144. apk via aab via url

  145. apk via aab via url apk via aab via url

  146. apk via aab via url apk via aab via url

  147. apk apk via aab via url apk via aab via

    url
  148. apk apk via aab via url apk via aab via

    url
  149. apk via aab apk apk via aab via url apk

    via aab via url
  150. apk via aab apk apk via aab via url apk

    via aab via url
  151. apk via aab apk via aab apk apk via aab

    via url apk via aab via url
  152. apk via aab apk via aab apk apk via aab

    via url apk via aab via url
  153. apk via aab apk via aab apk apk via aab

    via url apk via aab via url Chrome app
  154. apk via aab apk via aab apk apk via aab

    via url apk via aab via url Chrome app
  155. apk via aab apk via aab apk apk via aab

    via url apk via aab via url Chrome app url
  156. apk via aab apk via aab apk apk via aab

    via url apk via aab via url Chrome app url
  157. apk via aab apk via aab apk webapk apk via

    aab via url apk via aab via url Chrome app url
  158. apk via aab apk via aab apk webapk apk via

    aab via url apk via aab via url Chrome app url
  159. apk via aab apk via aab apk webapk apk via

    aab via url apk via aab via url Chrome app url url
  160. apk via aab apk via aab apk webapk apk via

    aab via url apk via aab via url Chrome app url url
  161. apk via aab apk via aab apk webapk apk via

    aab via url apk via aab via url Chrome app url url
  162. apk via aab apk via aab apk webapk apk via

    aab via url apk via aab via url Chrome app url ipa url
  163. apk via aab apk via aab apk webapk apk via

    aab via url apk via aab via url Chrome app url ipa url
  164. apk via aab apk via aab apk webapk apk via

    aab via url apk via aab via url Chrome app url url ipa url
  165. apk via aab apk via aab apk webapk apk via

    aab via url apk via aab via url Chrome app url url ipa url
  166. apk via aab apk via aab apk webapk apk via

    aab via url apk via aab via url Chrome app url url pwa ipa url
  167. apk via aab apk via aab apk webapk apk via

    aab via url apk via aab via url Chrome app url url pwa ipa url
  168. apk via aab apk via aab apk webapk apk via

    aab via url apk via aab via url Chrome app url url pwa ipa ipa url
  169. apk via aab apk via aab apk webapk apk via

    aab via url apk via aab via url Chrome app url url pwa ipa ipa url
  170. apk via aab apk via aab apk webapk apk via

    aab via url url apk via aab via url Chrome app url url pwa ipa ipa url url
  171. #NATIVE&WEB @JAKEWHARTON