Lars did a great job with your question. I will just add to:
why can't i use both
You can, really. The problem is that both libraries use the same names for several things (mainly window ). When you import both of these, these names collide that Dart does not allow. To fix this, you can import one of them with a prefix:
#import('dart:html');
Then, when you reference the name imported from dart:html , you simply use the name. If you need a DOM, you prefix it:
window // dart:html window dom.window // dart:dom window
munificent
source share