This presentation was recorded at GOTO Amsterdam 2024. #GOTOcon #GOTOams https://gotoams.nl Garth Gilmour - Delivered over 1,000 Masterclasses & Author of 40+ Training Courses & Developer Advocate at JetBrains @garthgilmourni RESOURCES https://twitter.com/GarthGilmour https://www.linkedin.com/in/garthgilmour https://medium.com/@garthgilmour https://github.com/garthgilmourni Links https://github.com/garthgilmourni/goto-amsterdam-2024-talk https://github.com/ktorio/ktor-samples https://ktor.io/docs/server-testing.html ABSTRACT Many teams use Kotlin and Ktor solely to create and consume RESTful HTTP services. They build modestly sized microservices and clients that perform a limited set of tasks well. These are completely valid use cases, but only scratch the surface of what is possible with Ktor in the latest release. Ktor boasts an elegant and powerful testing library with built-in mocking. You can integrate with Koin for DI, GraphQL for querying and OpenTelemetry for observability. Using Kotlin Native and Gradle you can build native images and bundle them in Docker containers. Last but not least you have fine grained control over every aspect of the framework, and can easily extend it by creating your own plugins. These can optionally be published to a new public registry. To then be reviewed, reused, and refined by the community. This talk will provide a whistle-stop tour of all the above. We will take a simple case study and incrementally layer on the shiny features. We will also discuss the ‘under the hood’ improvements in V3 - such as performance gains resulting from the migration to kotlinx-io. By the end you will have a comprehensive understanding of the intermediate and advanced functionality which Ktor can provide. [...] TIMECODES 00:00 Intro 01:24 What makes Ktor different? 07:59 Prototyping with Kotlin notebook 11:19 How do we build the service? 16:47 How did we build the service? 17:37 What are our test cases? 19:38 Creating unit tests 21:58 But wait! There's more... 22:46 Koin /Ktor integration 25:10 But wait! There's more... 26:00 GraphQL 28:11 WebSockets 31:00 But wait! There's more... 31:28 KMP 33:33 OpenTelemetry 35:46 Retries 39:12 3.0 Features 39:50 Conclusion 41:41 What did we learn? 42:34 Outro Download slides and read the full abstract here: https://gotoams.nl/2024/sessions/3231 RECOMMENDED BOOKS Kodeco Team, Kevin D. Moore, Carlos Mota & Saeed Taheri • Kotlin Multiplatform by Tutorials • https://amzn.to/3Ruh5De Venkat Subramaniam • Programming Kotlin • https://amzn.to/2MIC8D1 Robert Nagy • Simplifying Application Development with Kotlin Multiplatform Mobile • https://amzn.to/3t9Vjew Marcin Moskała • Kotlin Coroutines: Deep Dive • https://amzn.to/3R6ChOh Ken Kousen • Kotlin Cookbook • https://amzn.to/3TaCGBM Alexey Soshin • Kotlin Design Patterns and Best Practices • https://amzn.to/3Gt3rtK Dmitry Jemerov & Svetlana Isakova • Kotlin in Action • https://amzn.to/3uRU1Fu https://twitter.com/GOTOcon https://www.linkedin.com/company/goto- https://www.instagram.com/goto_con https://www.facebook.com/GOTOConferences #Kotlin #Ktor #Ktor3 #Koin #GraphQL #Kotlinlang #OpenTelemetry #KMP #Multiplatform #Android #iOS #Desktop #JSON #WebSocket #KotlinCoroutines #Coroutines #GarthGilmour Looking for a unique learning experience? Attend the next GOTO conference near you! Get your ticket at https://gotopia.tech Sign up for updates and specials at https://gotopia.tech/newsletter SUBSCRIBE TO OUR CHANNEL - new videos posted almost daily. https://www.youtube.com/user/GotoConferences/?sub_confirmation=1
Get notified about new features and conference additions.