This repository is the home of code written on episodes of Point-Free. Want to ask a question that we or the community might be able to answer? Start a discussion!
- Functions
- Side-Effects
- UIKit Styling with Functions
- Algebraic Data Types
- Higher-Order Functions
- Functional Setters
- Setters and Key Paths
- Getters and Key Paths
- Algebraic Data Types: Exponents
- A Tale of Two Flat-Maps
- Composition without Operators
- Tagged
- The Many Faces of Map
- Contravariance
- Setters: Ergonomics & Performance
- Dependency Injection Made Easy
- Styling with Overture
- Dependency Injection Made Comfortable
- Algebraic Data Types: Generics and Recursion
- NonEmpty
- Playground Driven Development
- A Tour of Point-Free
- The Many Faces of Zip: Part 1
- The Many Faces of Zip: Part 2
- The Many Faces of Zip: Part 3
- Domain Specific Languages: Part 1
- Domain Specific Languages: Part 2
- An HTML DSL
- DSLs vs. Templating Languages
- Composable Randomness
- Decodable Randomness: Part 1
- Decodable Randomness: Part 2
- Protocol Witnesses: Part 1
- Protocol Witnesses: Part 2
- Advanced Protocol Witnesses: Part 1
- Advanced Protocol Witnesses: Part 2
- Protocol-Oriented Library Design: Part 1
- Protocol-Oriented Library Design: Part 2
- Witness-Oriented Library Design
- Async Functional Refactoring
- A Tour of Snapshot Testing
- The Many Faces of Flat-Map: Part 1
- The Many Faces of Flat-Map: Part 2
- The Many Faces of Flat-Map: Part 3
- The Many Faces of Flat-Map: Part 4
- The Many Faces of Flat-Map: Part 5
- Predictable Randomness: Part 1
- Predictable Randomness: Part 2
- Generative Art: Part 1
- Generative Art: Part 2
- Structs ๐ค Enums
- Enum Properties
- Swift Syntax Enum Properties
- Advanced Swift Syntax Enum Properties
- Swift Syntax Command Line Tool
- What Is a Parser?: Part 1
- What Is a Parser?: Part 2
- What Is a Parser?: Part 3
- Composable Parsing: Map
- Composable Parsing: Flat-Map
- Composable Parsing: Zip
- Parser Combinators: Part 1
- Parser Combinators: Part 2
- Parser Combinators: Part 3
- SwiftUI and State Management: Part 1
- SwiftUI and State Management: Part 2
- SwiftUI and State Management: Part 3
- Composable State Management: Reducers
- Composable State Management: State Pullbacks
- Composable State Management: Action Pullbacks
- Composable State Management: Higher-Order Reducers
- Modular State Management: Reducers
- Modular State Management: View State
- Modular State Management: View Actions
- Modular State Management: The Point
- Effectful State Management: Synchronous Effects
- Effectful State Management: Unidirectional Effects
- Effectful State Management: Asynchronous Effects
- Effectful State Management: The Point
- The Combine Framework and Effects: Part 1
- The Combine Framework and Effects: Part 2
- Testable State Management: Reducers
- Testable State Management: Effects
- Testable State Management: Ergonomics
- Testable State Management: The Point
- SwiftUI Snapshot Testing
- The Case for Case Paths: Introduction
- The Case for Case Paths: Properties
- Case Paths for Free
- Composing Architecture with Case Paths
- Dependency Injection Made Composable
- Dependency Injection Made Modular
- Modular Dependency Injection: The Point
- Adaptive State Management: Performance
- Adaptive State Management: State
- Adaptive State Management: Actions
- Adaptive State Management: The Point
- Ergonomic State Management: Part 1
- Ergonomic State Management: Part 2
- A Tour of the Composable Architecture: Part 1
- A Tour of the Composable Architecture: Part 2
- A Tour of the Composable Architecture: Part 3
- A Tour of the Composable Architecture: Part 4
- Combine Schedulers: Testing Time
- Combine Schedulers: Controlling Time
- Combine Schedulers: Erasing Time
- Composable SwiftUI Bindings: The Problem
- Composable SwiftUI Bindings: Case Paths
- Composable SwiftUI Bindings: The Point
- Designing Dependencies: The Problem
- Designing Dependencies: Modularization
- Designing Dependencies: Reachability
- Designing Dependencies: Core Location
- Designing Dependencies: The Point
- โโโโed SwiftUI: The Problem
- Redacted SwiftUI: The Composable Architecture
- The Point of Redacted SwiftUI: Part 1
- The Point of Redacted SwiftUI: Part 2
- Parser Combinators Recap: Part 1
- Parser Combinators Recap: Part 2
- Parsing Xcode Logs: Part 1
- Parsing Xcode Logs: Part 2
- Fluently Zipping Parsers
- Generalized Parsing: Part 1
- Generalized Parsing: Part 2
- Generalized Parsing: Part 3
- Parsing Performance: Strings
- Parsing Performance: Combinators
- Parsing Performance: Protocols
- Parsing Performance: The Point
- Concise Forms: SwiftUI
- Concise Forms: Composable Architecture
- Concise Forms: Bye Bye Boilerplate
- Concise Forms: The Point
- SwiftUI Animation: The Basics
- SwiftUI Animation: Composable Architecture
- SwiftUI Animation: The Point
- Better Test Dependencies: Exhaustivity
- Better Test Dependencies: Failability
- Better Test Dependencies: Immediacy
- Better Test Dependencies: The Point
- A Tour of isowords: Part 1
- A Tour of isowords: Part 2
- A Tour of isowords: Part 3
- A Tour of isowords: Part 4
- Derived Behavior: The Problem
- Derived Behavior: Composable-Architecture
- Derived Behavior: Collections
- Derived Behavior: Optionals and Enums
- Derived Behavior: The Point
- Composable Architecture Performance: View Stores and Scoping
- Composable Architecture Performance: Case Paths
- Async Refreshable: SwiftUI
- Async Refreshable: Composable Architecture
- SwiftUI Focus State
- SwiftUI Searchable: Part 1
- SwiftUI Searchable: Part 2
- Safer, Conciser Forms: Part 1
- Safer, Conciser Forms: Part 2
- SwiftUI Navigation: Tabs & Alerts, Part 1
- SwiftUI Navigation: Tabs & Alerts, Part 2
- SwiftUI Navigation: Sheets & Popovers, Part 1
- SwiftUI Navigation: Sheets & Popovers, Part 2
- SwiftUI Navigation: Sheets & Popovers, Part 3
- SwiftUI Navigation: Links, Part 1
- SwiftUI Navigation: Links, Part 2
- SwiftUI Navigation: Links, Part 3
- SwiftUI Navigation: The Point
- UIKit Navigation: Part 1
- UIKit Navigation: Part 2
- Modularization: Part 1
- Modularization: Part 2
- Parser Builders: The Problem
- Parser Builders: The Solution
- Parser Builders: The Point
- Parser Errors: from Nil to Throws
- Parser Errors: Context and Ergonomics
- Parser Printers: The Problem
- Parser Printers: The Solution, Part 1
- Parser Printers: The Solution, Part 2
- Parser Printers: Generalization
- Parser Printers: Map
- Parser Printers: Bizarro Printing
- Parser Printers: The Point
- Tour of Parser-Printers: Introduction
- Tour of Parser-Printers: vs. Swift's Regex DSL
- Tour of Parser-Printers: URL Routing
- Tour of Parser-Printers: Vapor Routing
- Tour of Parser-Printers: API Clients for Free
- Concurrency's Past: Threads
- Concurrency's Present: Queues and Combine
- Concurrency's Future: Tasks and Cooperation
- Concurrency's Future: Sendable and Actors
- Concurrency's Future: Structured and Unstructured
- Async Composable Architecture: The Problem
- Async Composable Architecture: Tasks
- Async Composable Architecture: Schedulers
- Async Composable Architecture: Streams
- Async Composable Architecture: Effect Lifetimes
- Async Composable Architecture in Practice
- Reducer Protocol: The Problem
- Reducer Protocol: The Solution
- Reducer Protocol: Composition, Part 1
- Reducer Protocol: Composition, Part 2
- Reducer Protocol: Dependencies, Part 1
- Reducer Protocol: Dependencies, Part 2
- Reducer Protocol: Testing
- Reducer Protocol in Practice
- Clocks: Existential Time
- Clocks: Controlling Time
- SwiftUI Navigation: Recap
- SwiftUI Navigation: Decoupling
- SwiftUI Navigation: Stacks
- Modern SwiftUI: Introduction
- Modern SwiftUI: Navigation, Part 1
- Modern SwiftUI: Navigation, Part 2
- Modern SwiftUI: Effects, Part 1
- Modern SwiftUI: Effects, Part 2
- Modern SwiftUI: Dependencies & Testing, Part 1
- Modern SwiftUI: Dependencies & Testing, Part 2
- Point-Free Live: Dependencies & Stacks
- Composable Navigation: Tabs
- Composable Navigation: Alerts & Dialogs
- Composable Navigation: Sheets
- Composable Navigation: Effect Cancellation
- Composable Navigation: Unification
- Composable Navigation: Links
- Composable Navigation: Destinations
- Composable Navigation: Correctness
- Composable Navigation: Stack vs Heap
- Composable Stacks: vs Trees
- Composable Stacks: Multiple Layers
- Composable Stacks: Multiple Destinations
- Composable Stacks: Action Ergonomics
- Composable Stacks: State Ergonomics
- Composable Stacks: Effect Cancellation
- Composable Stacks: Testing
- Reliable Async Tests: The Problem
- Reliable Async Tests: More Problems
- Reliable Async Tests: ๐ณ
- Reliable Async Tests: ๐ฅน
- Reliable Async Tests: The Point
- Tour of the Composable Architecture 1.0: The Basics
- Tour of the Composable Architecture 1.0: Introducing Standups
- Tour of the Composable Architecture 1.0: Navigation
- Tour of the Composable Architecture 1.0: Stacks
- Tour of the Composable Architecture 1.0: Correctness
- Tour of the Composable Architecture 1.0: Dependencies
- Tour of the Composable Architecture 1.0: Persistence
- Testing & Debugging Macros: Part 1
- Testing & Debugging Macros: Part 2
- Observation: The Past
- Observation: The Present
- Observation: The Gotchas
- Observation: The Future
- Observation in Practice
- Macro Case Paths: Part 1
- Macro Case Paths: Part 2
- Observable Architecture: Sneak Peek
- Observable Architecture: Structural Identity
- Observable Architecture: Observing Optionals
- Observable Architecture: Observing Enums
- Observable Architecture: Observing Collections
- Observable Architecture: Observing Navigation
- Observable Architecture: Observing Bindings
- Observable Architecture: The Point
- Point-Free Live: Observation in Practice
- Shared State: The Problem
- Shared State: The Solution, Part 1
- Shared State: The Solution, Part 2
- Shared State: Testing, Part 1
- Shared State: Testing, Part 2
- Shared State: User Defaults, Part 1
- Shared State: User Defaults, Part 2
- Shared State: File Storage, Part 1
- Shared State: File Storage, Part 2
- Shared State in Practice: SyncUps, Part 1
- Shared State in Practice: SyncUps, Part 2
- Shared State in Practice: isowords, Part 1
- Shared State in Practice: isowords, Part 2
- Modern UIKit: Sneak Peek, Part 1
- Modern UIKit: Sneak Peek, Part 2
- Modern UIKit: Observation
- Modern UIKit: Basics of Navigation
- Modern UIKit: Unified Navigation
- Modern UIKit: Tree-based Navigation
- Modern UIKit: Stack Navigation, Part 1
- Modern UIKit: Stack Navigation, Part 2
- Modern UIKit: UIControl Bindings
- Cross-Platform Swift: View Paradigms
- Cross-Platform Swift: WebAssembly
- Cross-Platform Swift: Networking
- Cross-Platform Swift: Navigation
- Cross-Platform Swift: UI Controls
- Cross-Platform Swift: New Features
- Cross-Platform Swift: Persistence
- Back to Basics: Equatable
- Back to Basics: Hashable
- Back to Basics: Hashable References
- Back to Basics: Advanced Hashable
- SQLite: The C Library
- SQLite: GRDB
- SQLite: SwiftUI
- SQLite: Observation
- Tour of Sharing: App Storage, Part 1
- Tour of Sharing: App Storage, Part 2
- Tour of Sharing: File Storage, Part 1