I have a question about Doodle. What is the main difference between it and Compose?
Sorry for my poor English.
n
Nick
02/15/2023, 4:42 AM
The main difference is that Compose is more declarative and relies on a compiler plugin to make recomposition work when properties change.
Doodle currently only targets web and desktop; but it allows you to share more code between them. Compose has plans for a canvas based web version that would make reuse work. But that is expected to have a larger bundle size and render the entire app to canvas, so accessibility and SEO would be compromised.
Doodle’s web version renders to the DOM, so these are not issues.
Beyond that, Doodle makes vector rendering really easy. And it actually uses the same underlying library for desktop (skiko) that Compose does.
Check out the docs and tutorials to get a better understanding .
s
ShellWen 颉文
02/15/2023, 4:44 AM
I prefer Doodle to Compose, but Compose is an official project and the community support is far worse. Thanks for your answer.
n
Nick
02/15/2023, 5:14 AM
Thanks for sharing this. Compose definitely has more support. But I’m committed to Doodle support and would love to get contributors as well to ensure that going forward.
Are you using Doodle or just thinking about it? What do you prefer about it? And would your decision to use it be easier if it were official?
a
ayodele
02/15/2023, 6:04 AM
Me and my team prefer Doodle, we tried every Kotlin based web frameworks before making that decision. Because Doodle abstracts every Dom APIs including css, and it's HIGHLY customizable.
So we decided to write a compose like API (though we didn't use the compose lib from Google) on top of Doodle to demonstrate that to the company.
So far we've implemented
Row
Column
Box
and some
Modifiers
.
My question is since doodle on desktop uses Skiko, do you plan to support iOS??
We've had this crazy idea to run a simple UI on iOS to see if it'll work.
n
Nick
02/15/2023, 6:14 AM
Yes; I’d love to support iOS as well.
@ayodele is any of your work going to be open sourced?