I am seeing a lot happening in compose for web dev...
# compose-web
a
I am seeing a lot happening in compose for web development I think, but I am not sure if I am correct. • The old falling-balls-example is gone, and I think that is because they've decided to move away from canvas rendering? • I see in the experimental folders something with webassembly? So Skia is running in wasm to a canvas maybe?
o
they've decided to move away from canvas rendering
old falling-balls-example for web was built using composable html-based widgets which got deprecated. There're some alternatives for those widgets developed and supported by the community. For example: https://github.com/varabyte/kobweb#k%EF%B8%8Fbweb among other things provides familiar Compose extensions like Modifier and components: Box, Column, Row... for web.
I see in the experimental folders something with webassembly? So Skia is running in wasm to a canvas maybe?
Yes, that's correct.
🎉 1
a
The Skia in Wasm sounds pretty awesome
m
they’ve decided to move away from canvas rendering
Now you have me confused. I thought it’s just the other way round.
👌 1
o
To clarify:
The old falling-balls-example is gone, and I think that is because they've decided to move away from canvas rendering?
the old falling-balls-example is gone because it was built using deprecated widgets api. Deprecated widgets api was based on composable html api (not on canvas). Instead, there is another falling-balls experimental example (for MPP including web) https://github.com/JetBrains/compose-jb/tree/master/experimental/examples/falling-balls-mpp where all targets use the same composable api based on canvas.
🙏 3
a
I made an error indeed! The experimental one looks great
d
@Arjan van Wieringen @Michael Paus : I follow Compose Web developments as closely as I can on here. What I've read is that: • Compose for Web (HTML DOM) is considered an important foundation, is now quite mature and is the only form of Compose/Web that is 'production ready' today. • Compose for Web (Multiplatform Widgets) was little more than a short-lived experiment in creating an equivalent 'Jetpack Compose' component set on top of HTML DOM. Perhaps unsurprisingly, getting these two very different models to produce the same output proved rather difficult and the idea has been shelved. • Compose for Web (Canvas) is, as far as we know, still being pursued and is under active development. It may target JS and/or WebAssembly. Regarding progress: There is little information, I think we just have to be patient. I'm sure there are many people like us on this Slack who hold great hopes for this tech and are very excited to get our hands on Alpha/Beta builds and are quietly awaiting updates. On the up-side, Dev builds continue to slowly appear in JB's artifact repo, and an early proof-of-concept example is available from the
jb-compose
repo, linked above ☝️ On the down-side; it appears that JB's Compose Lead recently left the company, which along with other impacts from world events, has probably slowed-down the Compose/Multiplatform initiative. Hopefully JetBrains organised with enough contingency that the project can still succeed after this person leaving. I also wonder if the current devs saw that 'Canvas' runtime characteristics were not too appealing when using JS and have decided to hold out for WASM migration before releasing anything to public; which we could expect to have smaller package size and perform better.
a
@darkmoon_uk awesome summary! Thanks a lot
👍 1
n
@darkmoon_uk where did you see that the compose lead left? That explains why things have slowed down on the release cadence relative to other projects.
d
@nschulzke Without naming them - I also noticed that things had slowed down; so I looked up the JB team members that had been active in #compose-web over recent months and discovered that one of the most active members' accounts had been deactivated. Looking them up elsewhere I saw they had been the Compose Lead, working out of St Petersburg, the office that closed. I suppose they didn't want to relocate.
🕵️‍♂️ 2
1