{"guid":"d8d68d82-10d4-4b53-b969-b95a57c601d3","title":"Kotlin Multiplatform","subtitle":"Code einmal schreiben und für alle (?) Plattformen nutzen","slug":"froscon2025-3289-kotlin_multiplatform","link":"https://programm.froscon.org/2025/events/3289.html","description":"Eine Einführung in Kotlin Multiplatform anhand eines Programms\n\nKotlin kennen viele als JVM-Sprache für Backend-Services, es ist aber auch die \nStandard-Sprache für die Entwicklung von Android Apps. Zusammen mit Jetpack Compose lässt sich auch das Frontend und UI designen.\n\nAber das ist nicht alles, denn es gibt ausserdem noch Kotlin Multiplatform.\nDamit ist es möglich, denselben Code für Android, iOS, alle JVM-Plattformen (z.B. macOS, linux, windows) und das web zu verwenden (und trotzdem auf Plattform-spezifische Dinge einzugehen)\n\nEiniges ist aber nicht direkt eingängig, deshalb möchte ich anhand eines selbst geschriebenen Programms zeigen, wie ein Multiplatform-Projekt aufgebaut, gebaut und deployed werden kann. Hier geht es um die Vereinheitlichung des Frontends\n\nDabei gehe ich auch auf mehrere Details ein, die nur einfach sind, wenn man eine Lösung kennt, wie zum Beispiel eine Ladeanzeige für die web-version, aber auch Lokalisation, Dark Mode und Animationen.\n\nDen Code des Programms könnt ihr euch im Nachgang in Ruhe ansehen, denn er ist Open Source.\n\nLicensed to the public under http://creativecommons.org/licenses/by/4.0","original_language":"deu","persons":["Julian Egner"],"tags":["3289","2025","froscon2025","Development","HS 4","froscon2025-deu","Day 1"],"view_count":96,"promoted":false,"date":"2025-08-16T17:00:00.000+02:00","release_date":"2025-08-16T00:00:00.000+02:00","updated_at":"2026-03-07T22:15:06.376+01:00","length":3642,"duration":3642,"thumb_url":"https://static.media.ccc.de/media/events/froscon/2025/3289-d8d68d82-10d4-4b53-b969-b95a57c601d3.jpg","poster_url":"https://static.media.ccc.de/media/events/froscon/2025/3289-d8d68d82-10d4-4b53-b969-b95a57c601d3_preview.jpg","timeline_url":"https://static.media.ccc.de/media/events/froscon/2025/3289-d8d68d82-10d4-4b53-b969-b95a57c601d3.timeline.jpg","thumbnails_url":"https://static.media.ccc.de/media/events/froscon/2025/3289-d8d68d82-10d4-4b53-b969-b95a57c601d3.thumbnails.vtt","frontend_link":"https://media.ccc.de/v/froscon2025-3289-kotlin_multiplatform","url":"https://api.media.ccc.de/public/events/d8d68d82-10d4-4b53-b969-b95a57c601d3","conference_title":"FrOSCon 2025","conference_url":"https://api.media.ccc.de/public/conferences/froscon2025","related":[],"recordings":[{"size":302,"length":3642,"mime_type":"video/webm;codecs=av01","language":"deu","filename":"froscon2025-3289-deu-Kotlin_Multiplatform_av1-hd.webm","state":"new","folder":"av1-hd","high_quality":true,"width":1920,"height":1080,"updated_at":"2025-08-16T20:21:43.115+02:00","recording_url":"https://cdn.media.ccc.de/events/froscon/2025/av1-hd/froscon2025-3289-deu-Kotlin_Multiplatform_av1-hd.webm","url":"https://api.media.ccc.de/public/recordings/90306","event_url":"https://api.media.ccc.de/public/events/d8d68d82-10d4-4b53-b969-b95a57c601d3","conference_url":"https://api.media.ccc.de/public/conferences/froscon2025"},{"size":311,"length":3642,"mime_type":"video/webm","language":"deu","filename":"froscon2025-3289-deu-Kotlin_Multiplatform_webm-hd.webm","state":"new","folder":"webm-hd","high_quality":true,"width":1920,"height":1080,"updated_at":"2025-08-16T20:28:08.694+02:00","recording_url":"https://cdn.media.ccc.de/events/froscon/2025/webm-hd/froscon2025-3289-deu-Kotlin_Multiplatform_webm-hd.webm","url":"https://api.media.ccc.de/public/recordings/90309","event_url":"https://api.media.ccc.de/public/events/d8d68d82-10d4-4b53-b969-b95a57c601d3","conference_url":"https://api.media.ccc.de/public/conferences/froscon2025"},{"size":112,"length":3642,"mime_type":"video/webm","language":"deu","filename":"froscon2025-3289-deu-Kotlin_Multiplatform_webm-sd.webm","state":"new","folder":"webm-sd","high_quality":false,"width":720,"height":576,"updated_at":"2025-08-16T20:08:26.169+02:00","recording_url":"https://cdn.media.ccc.de/events/froscon/2025/webm-sd/froscon2025-3289-deu-Kotlin_Multiplatform_webm-sd.webm","url":"https://api.media.ccc.de/public/recordings/90301","event_url":"https://api.media.ccc.de/public/events/d8d68d82-10d4-4b53-b969-b95a57c601d3","conference_url":"https://api.media.ccc.de/public/conferences/froscon2025"},{"size":110,"length":3642,"mime_type":"video/mp4","language":"deu","filename":"froscon2025-3289-deu-Kotlin_Multiplatform_sd.mp4","state":"new","folder":"h264-sd","high_quality":false,"width":720,"height":576,"updated_at":"2025-08-16T19:22:34.133+02:00","recording_url":"https://cdn.media.ccc.de/events/froscon/2025/h264-sd/froscon2025-3289-deu-Kotlin_Multiplatform_sd.mp4","url":"https://api.media.ccc.de/public/recordings/90280","event_url":"https://api.media.ccc.de/public/events/d8d68d82-10d4-4b53-b969-b95a57c601d3","conference_url":"https://api.media.ccc.de/public/conferences/froscon2025"},{"size":55,"length":3642,"mime_type":"audio/mpeg","language":"deu","filename":"froscon2025-3289-deu-Kotlin_Multiplatform_mp3.mp3","state":"new","folder":"mp3","high_quality":false,"width":0,"height":0,"updated_at":"2025-08-16T19:03:56.657+02:00","recording_url":"https://cdn.media.ccc.de/events/froscon/2025/mp3/froscon2025-3289-deu-Kotlin_Multiplatform_mp3.mp3","url":"https://api.media.ccc.de/public/recordings/90267","event_url":"https://api.media.ccc.de/public/events/d8d68d82-10d4-4b53-b969-b95a57c601d3","conference_url":"https://api.media.ccc.de/public/conferences/froscon2025"},{"size":31,"length":3642,"mime_type":"audio/opus","language":"deu","filename":"froscon2025-3289-deu-Kotlin_Multiplatform_opus.opus","state":"new","folder":"opus","high_quality":false,"width":0,"height":0,"updated_at":"2025-08-16T19:03:47.761+02:00","recording_url":"https://cdn.media.ccc.de/events/froscon/2025/opus/froscon2025-3289-deu-Kotlin_Multiplatform_opus.opus","url":"https://api.media.ccc.de/public/recordings/90265","event_url":"https://api.media.ccc.de/public/events/d8d68d82-10d4-4b53-b969-b95a57c601d3","conference_url":"https://api.media.ccc.de/public/conferences/froscon2025"},{"size":363,"length":3642,"mime_type":"video/mp4","language":"deu","filename":"froscon2025-3289-deu-Kotlin_Multiplatform_hd.mp4","state":"new","folder":"h264-hd","high_quality":true,"width":1920,"height":1080,"updated_at":"2025-08-16T19:03:20.245+02:00","recording_url":"https://cdn.media.ccc.de/events/froscon/2025/h264-hd/froscon2025-3289-deu-Kotlin_Multiplatform_hd.mp4","url":"https://api.media.ccc.de/public/recordings/90263","event_url":"https://api.media.ccc.de/public/events/d8d68d82-10d4-4b53-b969-b95a57c601d3","conference_url":"https://api.media.ccc.de/public/conferences/froscon2025"}]}