expo-gl is implemtning WebGl or WebGl2 (depending if device support it), Our implementation is not 100% complaiant with a specs, but it mostly relates to error handling (sometimes it throws exceptions instead of using gl.getError). Main difference is how you are accessing gl object instead of calling
canvas.getContext("webgl2"); you need to pass
onContextCreate prop to GLView.
You can find few examples here https://github.com/expo/expo/tree/master/apps/native-component-list/src/screens/GL