0
1

Is it overkill to use RxJava and Arrow for a room database query return?

1y 9mon ago by lemm.ee/u/abobla in android_dev@programming.dev

I'm new to using reactive and functional programming in kotlin with libraries. I'm maintaining a project at my company that uses only .orNull() from the arrow.core.Option class.

My question is: why is the project returning the first type instead of the second one?

Single<Option<UserEntity>>
Single<UserEntity?>

Can't the DAO object return a null type if it doesn't find the object on a query such as SELECT * FROM users WHERE id = 1 ?

I think you're giving it to much thought, a nullable type is also a optional.

But using orNull() to unwrap the option kinda defeats it's purpose, you're just making it into another optional type, If that is the case then I would stop using Option and use the nullable operator "?".

When I've worked with arrow I usually wrap types with Either so I can failfast and only have happy path in my code.

https://arrow-kt.io/learn/typed-errors/either-and-ior/