Please log in to watch this conference skillscast.
Swift’s strong functional programming support leads to a lot of interest in adapting functional programming techniques to writing Cocoa applications. In particular, functional reactive programming (FRP) promises to replace unstructured side effects by structured change propagation in response to user input, network events, sensor activity, and similar.
Typically explained by way of sophisticated, but often also complex functional reactive programming frameworks, such as ReactiveCocoa and RxSwift, it can be difficult to see the simple principles underlying functional reactive programming. In fact, these principles are sufficiently simple that they can explained by building a functional reactive programming library from scratch.
Join Manuel in his journey to illustrate how you can construct your own lightweight functional reactive programming library out of simple components using Swift’s support for protocol-oriented programming. Moreover, he will share with you how to use this library to design and implement the change propagation between the model and view components of a Cocoa app. All of this is illustrated with concrete Swift code taken from a simple iPhone application whose source code will be made available.
YOU MAY ALSO LIKE:
- Greg Young's CQRS, Domain Events, Event Sourcing and how to apply DDD (in Stockholm on 22nd - 24th May 2017)
- Simon Brown's Software Architecture for Developers Workshop (in London on 22nd - 23rd May 2017)
- Alberto Brandolini's DDD Modelling Workshop (in London on 26th - 28th June 2017)
- µCon 2017: The Microservices Conference (in London on 6th - 7th November 2017)
Keynote: Do-It-Yourself Functional Reactive Programming
Manuel M T Chakravarty is an Associate Professor at UNSW Australia and the indie developer behind the interactive development environment Haskell for Mac — one of the first Swift apps on the Mac App Store. His core research interests are functional programming, novel compiler technology, and high-performance computing. He contributed to both the design and implementation of the Haskell programming language as well as several Haskell tools and open source libraries, including multiple systems for data parallel programming of multicore CPUs and GPUs. Over the last two years, he has focused on making functional programming more broadly accessible and on exploring its role in app development in Swift. Most importantly, he believes in the fruitful combination of theory and practice.