This course includes:

  • Certificate of completion

    Each course of the 47 Degrees Academy includes a certificate of completion when you fulfill the videos and exercises successfully

  • Ad-hoc exercises

    We have quizzes and exercises delivered through the Intellij EduTools platform, to get easier the learn of the concepts, and improve the attendees experience

  • On-demand high-quality resources

    76 video lessons, slides, and downloaded content for helping you to get the concepts most interactively and easily possible.

Content updated for Arrow 1.0

This course has been updated for the new release

Arrow is a Kotlin library with thousands of stars in Github and is supported by many contributors and companies in different sectors. For the first time, this summer will be released the 1.0 version, with several features and with strong stability. Come with us on this trip to the goodness Arrow could bring to your Kotlin project.

Course curriculum

  • 2

    Functional Programming

    • Pure Functions

    • Side Effects

    • Referential transparency

    • Local reasoning

    • Higher order functions

    • Exercise descriptions

    • Exercise solutions

    • Lesson Quiz

  • 3

    Domain Modeling

    • The Kotlin type system

    • Unit and Nothing

    • Type safety

    • Product Types

    • Sum Types

    • Recap

    • Exercise descriptions

    • Exercise solutions

    • Lesson Quiz

  • 4

    Immutable Data and Optics

    • Immutability

    • Optics

    • Lens

    • Prism

    • Optional

    • Every

    • FilterIndex

    • Index

    • Iso

    • Exercise descriptions

    • Exercise solutions

    • Lesson Quiz

  • 5

    Error Handling

    • Recap of lesson 2

    • Heads up on different ideas

    • Railway oriented programming

    • Sequential programs with Either

    • Capturing 3rd party errors

    • Validated for error accummulation

    • Either and Validated interop

    • Presence vs Absence of a value

    • Exercise descriptions

    • Exercise solutions

    • Lesson Quiz

  • 6

    Functional Effects

    • Side effects and suspend

    • Suspend and Either

    • Suspend internals

    • Limitations of functional data types

    • Arrow Fx Coroutines

    • Arrow Fx operators

    • Error handling and cancellation

    • Exercise descriptions

    • Exercise solutions

    • Lesson Quiz

  • 7

    Safe Resource Handling

    • Immutability in the context of concurrency

    • Concurrency primitives

    • Working over async boundaries

    • bracket, bracketCase and Resource

    • guarantee, guaranteeCase and onCancel

    • Exercise descriptions

    • Exercise solutions

    • Lesson Quiz

  • 8

    Functional Streams

    • Introduction to functional streams

    • Functional programs within a Flow

    • Declarative programming and concern separation in functional streams

    • Error handling in Streams - Part I

    • Error handling in Streams - Part II

    • Cancellation of effects within a Flow

    • Wrapping callback based effects

    • Exercise descriptions

    • Exercise solutions

    • Lesson Quiz

  • 9

    Functional Architecture

    • Concern separation

    • Suspending edge to edge

    • Algebras

    • Recap on going suspend edge to edge

    • Implicit DI via receivers

    • Implementing DI

    • Replacing dependencies form tests

    • Compatibility with 3rd party DI libraries

    • Functional testing

    • Exercise descriptions

    • Exercise solutions

    • Lesson Quiz

  • 10

    Ending words

    • Goodbye