Building applications with Kotlin and Arrow.kt in style
- May 31, 2022
A presentation by Simon Vergauwen presented on the official Kotlin YouTube channel.
Arrow Core Arrow FxA presentation by Simon Vergauwen presented on the official Kotlin YouTube channel.
Arrow Core Arrow FxAlejandro Serrano presents Arrow Analysis, a Kotlin compiler plug-in that does pre-and post-condition and type invariant checking at compile time.
analysisKarin-Aleksandra Monoid provides an overview of Arrow Meta features.
Arrow MetaA talk by Ties van de Ven that shows how Arrow helps to unleash the full FP power of Kotlin.
Arrow Core Arrow OpticsA presentation by Simon Vergauwen and Alejandro Serrano presented on the official Kotlin YouTube channel.
Arrow CoreA talk by Ties van de Ven explaining how to use the Either monad in practice, and how to use Arrow Optics lenses.
Arrow Core Arrow OpticsAn Android Worldwide talk by David Rawson about error handling on Android using Arrow.
Arrow CoreA video from the meetup of the Google Developer Group based in Nuremberg with a presentation by Karin-Aleksandra Monoid about using Arrow.
Arrow CoreA video from the Belfast Kotlin User Group with a presentation by Katie Levy and Shelby Cohen covering FP concepts with Arrow.
Arrow CoreIn this talk from the January 13th, 2021 Kotlin London User Group meetup, Jorge Castillo shows how to seamlessly integrate the functional programming paradigm with our Android architecture to get the most out of both worlds.
Arrow FxComputation blocks empower library authors and users to build ad-hoc operators and DSLs over any data-type getting rid of API complexity and simplifying composition. In this talk, we will learn how we can build Computation blocks over Kotlin suspend functions & the Arrow Continuations library’s reset
/ shift
capabilities. We will demonstrate the composition of well known JVM data-types and patterns such as lists, futures, streams, and IOs, where callback chains can be simply replaced by a single
suspended operator. The Kotlin suspension system provides enough capabilities to implement delimited continuations allowing us to ignore methods such as map
& flatMap
on your favorite data-type in favor of direct imperative syntax. Leveraging Kotlin suspension & thinking of Continuations as “The Mother of all Monads”, we will embark on this journey where we’ll build and roll our own computation blocks with Arrow Continuations.
A Metric-driven approach to reduce Cognitive Complexity in a code base, using Functional Programming, demoed hands-on, by solving a complex real-world ubiquitous design challenge - REST API Bulk Request Validation, with an extensible Framework that separates what-to-do (Validations) from how-to-do (Validation Orchestration). Let’s do a case study of a successful implementation done by our team in the world’s largest SaaS org, Salesforce, using Kotlin and Arrow.
Arrow CoreLean how to write and test compiler plugins and IDE plugins with Arrow Meta.
Arrow MetaType Proofs is a new compiler plugin built on Arrow Meta enabling new features in the Kotlin type system, such as Type Classes, Union Types, Type Refinements, and many other extensions that make Functional Programming easier in Kotlin.
Type Proofs propositions are expressed as extension functions that unlock new relationships between types ad-hoc whilst remaining fully compatible with subtype polymorphism and the existing inheritance type system.
This talk demonstrates some of the new features the Arrow team is introducing in Arrow at the type level and IDE and how others can benefit from them when building libraries and applications.
Arrow MetaJ’aime bien le DDD et surtout les architectures hexagonales. Avoir un domaine auto-portant et non couplé à des blocs techniques comme Spring (ou autres) apporte beaucoup dans la testabilité et l’évolutivité de l’application. Les modèles d’asynchronismes (programmation réactive, retardée, coroutines…) empêchent la dissociation stricte de notre modèle métier et de notre code infra dans un langage comme Kotlin. Obligé d’utiliser une lib de coroutine ou autre programmation reactive. Deux solutions s’offrent alors :
Arrow Fx is a purely functional concurrency framework for Kotlin’s suspend system.
In this talk, we will learn how typed functional programming and functional domain modeling powered by Arrow Optics, Fx, and Meta can be applied to assemble powerful applications and architectures from small and simple building blocks.
Simon and Raul will cover important topics and patterns such as optics, union types, refined types, type classes, automatic task cancellation, safe resource handling, and compare how Arrow Fx differs from KotlinX coroutines.
Arrow FxType Proofs is a new compiler plugin built on Arrow Meta enabling new features in the Kotlin type system, such as Type Classes, Union Types, Type Refinements, and many other extensions that make Functional Programming easier in Kotlin.
Type Proofs propositions are expressed as extension functions that unlock new relationships between types ad-hoc whilst remaining fully compatible with subtype polymorphism and the existing inheritance type system.
This talk demonstrates some of the new features the Arrow team is introducing in Arrow at the type level and IDE and how others can benefit from them when building libraries and applications.
Arrow MetaMay 2020 Online Kotlin Meetup
Daniel Montoya Ramos - Senior Software Engineer @47deg Android Jetpack Compose
Dani will show a new way of building UI’s in Android using Jetpack Compose, comparing Imperative vs Declarative approaches. He’ll look at managing state changes, composing functions as well as some of the gotchas and wishes for the future.
Alberto Ballano - Senior Software Engineer @47deg Android architectures with Arrow Fx
Alberto will talk about typical Android architectures, and how can they benefit from Functional Programming techniques available in Arrow.
Arrow FxLearn about the magic of Ad-hoc polymorphism using Λrrow typeclasses with simple examples.
Arrow CoreYour Kotlin app grabs data from an API, transforms it and saves the processed data in a database. However, there are so many things that could go wrong at runtime: the API might be inaccessible, the data is not what you expected or the data can’t be persisted in the database. You can start adding try catch blocks to your function in your objects, but there is a better way to do it: treat your impure functions as computations with context, pass them around just like other values, and make the necessary unsafe invocation from a single point of your app, your main function.
This talk will walk you through the core functional concepts of Arrow, you will learn how Some, Either and even IO are functor, applicative and monad. You can use the code example from this talk as a starting point for your Arrow-learning, to write safer, simpler and more elegant functional code in Kotlin.
Arrow CoreArrow has multiple libraries available for functional programming. In this talk we’ll focus on Arrow FX and learn how to handle IO in a functional way with an introduction to monadic composition. Then we’ll examine how to compose monads in a cleaner fashion with Arrow FX’s monad comprehensions. Finally, we’ll take a look at how to parallelize IO monads with parallel map strategies.
Arrow FxArrow Meta is a library that empowers library and application authors with the ability to write plugins for the Kotlin compiler. Compiler plugins have access to all compiler phases and can intercept and modify the AST, descriptors, and IR intermediate lang for bytecode generation.
Arrow MetaIn this meetup we discuss the new features of Arrow Fx to write “effectful” programs with an emphasis on simple and declarative programming for everyone. Additionally, we see how Arrow Meta works and how we can use it to improve the ergonomics of Functional Programming in Kotlin.
Arrow Meta Arrow FxArrow Meta is a library that empowers library and application authors with the ability to write plugins for the Kotlin compiler. Compiler plugins have access to all compiler phases and can intercept and modify the AST, descriptors, and IR intermediate lang for bytecode generation.
Arrow MetaKotlin is a great language for developing server-side applications; it’s an object-oriented language and also a functional one, supporting features such as function types, lambdas or higher order functions. But…is this enough to switch completely from an imperative paradigm to a functional paradigm?
In this talk by Noe Luaces, we’ll see how features from Arrow library completes Kotlin in order to follow a pure functional way.
Arrow CoreIn this talk we recap about the imminent future of Functional Programming in Kotlin. With ArrowFx you are able to encode “effectful” programs in a controlled way following the FP principles through a direct syntax. You’ll think you’re writing imperative code!
Arrow FxIn this episode, we capture a conversation between Arrow maintainers Raúl Raja and Paco Estevez as they discuss the past and future of the library which is designed to bring Functional Programming to Kotlin.
Arrow Core Arrow FxIt includes how the ΛNK plugin works: from having a tool that evaluates and verifies your doc snippets at compile time, to generating code documentation that is always correct and up to date.
Arrow Core Arrow IncubatorIn this talk we introduce the concepts of Dependency Management as a language feature, typeclasses, and a live demo of KEEP-87. You can follow along the example in this folder.
Arrow CoreThis talk includes a comprehensive walkthrough of the most important patterns covered by the data types and type classes we find in Λrrow. Each pattern will be accompanied by code examples that illustrate how Λrrow brings Typed Functional Programming to Kotlin.
Arrow Core Arrow FxA beginner level introduction to Functional Programming for Kotlin and/or Android Developers or developers with OOP background.
Arrow CoreThis talk focuses on the day-to-day problems Arrow solves, from small ideas to big concepts.
It includes an overview of all the modules available, and some of the 3rd party libraries made by the community.
Arrow Core Arrow Optics Arrow Fx Arrow IncubatorIt’s hard coming back down to the earth of a JVM based language after spending time with Haskell and OCaml. This talk will discuss functional programming in Kotlin with the Arrow library, how the abstractions it provides can improve your code, and how this magic that provides higher-kinded types works under the hood.
Arrow Core@bassjacob goes through how Funktionale and Kategory merged into Arrow, consolidating two of the most popular FP libraries in the Kotlin space into one powerhouse. The talk is an introduction to some FP concepts, how the libraries work, what features they bring to the table and where you might use them in your code.
Arrow Core@uberto gives a gentle introduction to Category Theory for programmers used to OOP but interested in Functional Programming. No Haskell knowledge required. We will explain main concepts behind functional programming with many diagrams and simple metaphors and examples. Some code will clarify how to translate these ideas in programs.
Arrow CoreA rundown of all the features included in the library, focusing on implementation details.
Arrow CoreMake DSLs stack safe, composable and reusable under different runtime requirements thanks to Arrow.
Arrow CoreIntroductory talk to Functional architectures to be built on top of Arrow.
Arrow CoreAn introduction to Arrow and the enhancements it brings to Kotlin’s standard library.
Arrow CoreMove side effects to the edges of the system, implement a functional oriented architecture for Android apps based on purity.
Arrow CoreDo you like Arrow?
✖