Arrow put on a big show at Kotlin Dev Day
- June 14, 2022
A recap of the attention Arrow received at Kotlin Dev Day.
Arrow Core Arrow FxA recap of the attention Arrow received at Kotlin Dev Day.
Arrow Core Arrow FxA presentation by Simon Vergauwen presented on the official Kotlin YouTube channel.
Arrow Core Arrow FxA talk by Ties van de Ven that shows how Arrow helps to unleash the full FP power of Kotlin.
Arrow Core Arrow OpticsIn this final part of the series, Tiberiu puts everything together in a small CLI application, using Arrow data types and computation blocks to handle validation errors and exceptions in a unitary and composable way.
Arrow CoreIn the third part of the series, Tiberiu Tofan explores multiple techniques of using a context when doing validations and how the context can be changed in the tests to simulate success or failure. All using just Kotlin standard library.
Arrow CoreIn the second article in this series, Tiberiu Tofan writes how Validated type can be used to validate multiple properties, accumulate the errors, apply individual element validations to lists of elements, and create rules that depend on numerous properties.
Arrow CoreIn the first article in this series, Tiberiu Tofan describes his team’s journey using Kotlin and Arrow for domain model validation, starting by setting the domain model’s foundation in a type-safe way.
Arrow CoreA 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 CoreIn part two of Functional Domain Modeling in Kotlin, Simon Vergauwen shows how to improve a domain with validation.
Arrow CoreHow to integrate Spring Data Repository with Arrow.
Arrow CoreLearn how to leverage Functional Domain Modeling to fully utilize the Kotlin type system and prevent bugs.
Arrow CoreArrow 0.12.0 & 0.13.1 are now available, featuring streamlining of the library for 1.0.0.
Arrow CoreGarth Gilmour concludes his 8-part series introducing advanced FP concepts via Kotlin and Arrow.
Arrow CoreThis is the seventh post in a series written by Garth Gilmour introducing advanced FP concepts via Kotlin and Arrow. This article explores the world of Monads, and, in particular, the State type.
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 CoreThis is the sixth post in a series introducing advanced FP concepts via Kotlin and Arrow. This article covers Optics with Kotlin and Arrow.
Arrow CoreThis fifth post in a series introduces advanced FP concepts via Kotlin and Arrow. This article introduces Typeclasses, and reviews a practical example of Typeclasses from the Arrow library.
Arrow CoreThis fourth post in a series introduces advanced FP concepts via Kotlin and Arrow. This article looks at the Kleisli type.
Arrow CoreThis third post in a series introduces advanced FP concepts via Kotlin and Arrow. This article shows the usefulness of Higher Kinded Types.
Arrow CoreA video from the Belfast Kotlin User Group with a presentation by Katie Levy and Shelby Cohen covering FP concepts with Arrow.
Arrow CoreThis second post in a series introduces advanced FP concepts via Kotlin and Arrow. This article takes a deep dive into Applicatives.
Arrow CoreThis first post in a series introduces advanced FP concepts via Kotlin and Arrow. This article takes a deep dive into the Traverse operation.
Arrow CoreComputation 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 CoreArrow has been promoted to “Adopt” by ThoughtWorks’ technology guide Technology Radar.
Arrow CoreLenses are not part of the Kotlin Standard Library yet, so we will need to use an Open Source library called Arrow-kt. Arrow-kt is a huge community effort to bring some of the missing functional programming features to Kotlin.
Arrow CoreArrow is promoted as the functional companion for Kotlin’s standard library. Indeed, the package of ready-to-use higher-level abstractions delivered by Arrow has proven so useful that our teams now consider Arrow a sensible default when working with Kotlin. Recently, in preparation for the 1.0 release, the Arrow team introduced several changes, including the addition of new modules but also some deprecations and removals.
Arrow CoreJ’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 :
With a POC using Spring-fu + Kotlin + Arrow, let’s Convert Monomorphic code (for common use-cases such as Auth, Validation) to Polymorphic reusable templates, to be reused among heterogeneous services built on different tech-stacks (blocking/non-blocking). This helps accelerate feature development.
Arrow CoreLearn about the magic of Ad-hoc polymorphism using Λrrow typeclasses with simple examples.
Arrow CoreArrow is an exciting development for Kotlin developers interested in functional programming and, more broadly, pushing the limits of the Kotlin compiler.
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 CoreAn article of a series on Functional Programming solutions for the Global Day of Coderetreat challenge. In this case, it shows an approach for it using Kotlin and Functional Programming provided by the Arrow library.
Arrow Core Arrow FxKotlin 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 CoreThis post shows a porting with Kotlin and Arrow FX of a self-contained testing example with Scala ZIO
Arrow Core Arrow FxThis post proposes a possible solution in order to structure and compose a pure functional Kotlin application, in order to better manage and decouple modules, get simpler tests and manage the Dependency Injection at compile time.
Arrow CoreShort introduction into the proposal KEEP-87 and how it would be able to improve the language.
Arrow CoreArrow Playground is a JavaScript library that creates Kotlin-aware, including Arrow, editors capable of running code from HTML block elements. This is a fork of the original Kotlin Playground work done by the JetBrains team.
Arrow CoreIn 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 FxAs its name implies, From Imperative to Functional Programming using Arrow is a tale about migrating a simple Kotlin application written in imperative style to a fully function application with the help of the Arrow library.
Arrow Core Arrow FxWebflux with Kotlin and Arrow shows how you can use Arrow together with Spring Webflux to create a reactive REST application. This article explains how to use the MonoK
and the FluxK
Arrow extensions together with the binding
function to make working with the Mono
and Flux
reactor constructs much easier and better understandable.
Getting started with FP in Kotlin and Arrow: Typeclasses explores part of the Arrow library by explaining how you can use Arrow to create your own typeclasses and use the ones provided by Arrow to make your code more concise and better readable.
Arrow Core Arrow FxFunctional Hangman game - console application written with Arrow. Uses the IO<A>
monad to push side effects to the edge of the system.
It 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 Core@dcampogiani is using a polymorphic approach to retrieve a random user and then a joke about him.
Polyjokes — A polymorphic approach using Arrow
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 Core@nhanmanu introduces Kotlin and how it is a good fit for functional programming. The talk goes through some interesting features of Kotlin, then show how to use them to enter the world of Higher Kinds and Typeclasses. In the last part, we explore some Arrow capabilities & built-in syntax, using validation as an example.
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 IncubatorLeandro Ferreira presents how to build a simple app using Arrow and how to implement solutions with Semigroups.
Arrow 101 — Building an Android app using Functional Programming
Arrow 101 — Modelling a real world problem with Semigroups
Arrow CoreIt’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 CoreEmmanuel Nhan showcases different approaches to validation including examples for ValidatedNel
from Arrow in this great and in depth post using Kafka Streams Config parameters as example.
1/n - How do I… in FP: Validation
Arrow Core@dcampogiani explores some data types in Arrow and uses them to validate a form on Android.
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 Core@msya explains how to use various optics and type classes in Arrow. He discusses optics such as
Lens
and Iso
. He also goes over the purpose for type classes and how KEEP-87 will make it easier to implement them.
Functional Programming with Arrow
Arrow Core Arrow OpticsA 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 Core@javipacheco creates a Proof of Concept architecture for Android using the Actor pattern and modelling the domain with Either
.
Happy Path: Kotlin + Actors + 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 CoreAn ongoing blog series introducing Functional Programming architectures from scratch
Kotlin Functional Programming: Does it make sense?
Kotlin Functional Programming I: Monad Stack
Kotlin Functional Programming II: Monad Transformers
Arrow Core Arrow Fx mtlMove side effects to the edges of the system, implement a functional oriented architecture for Android apps based on purity.
Arrow Core@uris77 explains how to use Try
in real world examples.
Handling Kotlin Exceptions with Arrow – A Functional Approach
Arrow CoreTake a look at the Λrrow documentation Here
. Test and modify real-time code snippets.