What is Focus?

Focus is an Optics library for Swift (where Optics includes Lens, Prisms, and Isos) that is inspired by Haskell’s Lens library.

Focus exports a number of primitives that make it easy to establish relations between types. Practically, a relation can be thought of as a particular way of viewing and modifying a structure. The most famous of these is a Lens or Functional Reference. While there are an abundance of representations of a Lens (see [van Laarhoven 09], [Kmett et al. 12], [Eidhof et al. 09], we have chosen a data-lens-like implementation using the Indexed Store Comonad. If all of that makes no sense, don’t worry! We have hidden all of this behind a simple interface.

Overview

  • Pricing: Free
  • Resource Link: https://github.com/typelift/Focus
  • Resource Maker: TypeLift
  • Mobile Platform Destination: iOS Apps
  • Mobile Platform Support: Native iOS
  • Programming Languages: Swift
  • iOS Versions Supported: iOS 8.0+, iOS 9.0+, iOS 10.0+, iOS 11.0+, iOS 12.0+