You're probably used to MVP, MVVM, MVC, Clean, Viper, and other patterns and architectures usually applied using OOP.
This talk offers functional alternatives to these concepts, enhancing key ideas such as:
* Purity: Get rid of state on layers where it's not actually needed, enhancing the predictability of your code and therefore testability. You will learn about referential transparency and its importance for code readability, while at the same time reducing substantially the amount dependencies you need to mock.
* Dependency Injection: Find new ways of injecting dependencies into your system without the need of complex frameworks or libraries. Learn how to switch dependencies that are applying side effects on your testing environment to achieve complete isolation.
* Monads: Use Monads and sealed classes to model success and error cases inside your system. Use nested Monads, Functors, Applicatives to operate and transform the domain data. We’ll also cover more advanced styles such as Tagless-Final and Free Monads.
If you feel OOP is just not enough and want to make a big step forward, watch this talk. You will not regret it!
Jorge Castillo is an Android Engineer at GoMore. Mainly focused on functional approaches for Android app architecture using Kotlin. He usually shares some interesting articles about this topic on his blog https://medium.com/@jorgecastillopr