https://kotlinlang.org logo
#feed
Title
# feed
a

alexandrepiveteau

07/22/2021, 2:28 PM
Hi folks ! I’m a CS student in the 6th semester at HEIG-VD. I’ve been working on my bachelor thesis for the last weeks, and thought it might be interesting to share, since it’s a Kotlin multiplatform (JVM + JS) project. I’ve made an online collaborative Markdown editor, using Kotlin/JS for the frontend and with a replication server in Kotlin/JVM. The editor uses some CRDTs to sync text across the clients. Messages are Protobuf-serialized with 
kotlinx.serialization
, and sent / received through websockets with Ktor. An interesting challenge was to design a nice abstraction layer around CRDTs with first-class support for coroutines and flows (in order, for instance, to collect editor state changes through a 
StateFlow
). My thesis is ending soon, but I’d love to get some feedback on my work (especially if you’re interested in CRDTs and distributed systems) and my usage of KMM, so I can integrate it in the project ! The project is available on Github : https://github.com/markdown-party/mono Feedback (via email or Slack) : alexandre.piveteau@heig-vd.ch
🤯 1
👍 8
n

nfrankel

07/22/2021, 2:29 PM
hop svizz 🇨🇭 j’ai enseigné à la HEG 😄
quand mes élèves alignaient trois lignes de java en fin de 3ème année, j’étais content (j’exagère, mais à peine) du coup, bravo pour les CRDTs 👏 on vous enseigne kotlin à l’école ou vous vous y êtes mis par vous même ?
🧐 1
a

alexandrepiveteau

07/22/2021, 2:34 PM
Merci haha 🇨🇭 Kotlin est abordé dans le cadre des cours de systèmes mobiles, mais ça reste assez superficiel et vraiment orienté Android. À titre personnel, ça fait déjà quelques années que je m’y suis mis
👍 1
n

nfrankel

07/22/2021, 2:43 PM
chapeau !
ils sont tous comme vous à vaud ?
si oui, je me suis trompé de canton 😅
😂 3
r

rocketraman

08/02/2021, 5:41 PM
Very cool. I implemented a similar project a few years ago [1] with JavaScript, but its great to see a clean Kotlin-based implementation. If I ever picked this up again, I'd definitely look into re-using / building on your work. [1] https://github.com/ritzyed/ritzy.
👍 1
7 Views