Skip to main content
thoughtbot thoughtbot
  • Live on Twitch!

    thoughtbot is livestreaming

    Work alongside the thoughtbot team as we collaborate with each other and our clients, live. Ask us anything, we're live right now!

  • Case Studies
  • Blog
  • Let’s Talk
Live on Twitch!

thoughtbot is livestreaming

Work alongside the thoughtbot team as we collaborate with each other and our clients, live. Ask us anything, we're live right now!

Let’s get started!
View all Services
Development
  • Ruby on Rails
  • Hotwire
  • AI and Machine Learning
  • Maintenance
  • Mobile
Design
  • Discovery Sprints
  • UX, UI, and Product Design
  • Design Systems
Product
  • MVP
  • Product Management
  • Accessibility
Team and Processes
  • Team Augmentation
  • Fractional Leadership
View all Services
View all Resources
Development
  • Tech Leadership Resources
  • Open Source
  • Books
  • The Bike Shed Podcast
  • Live Streaming on YouTube
  • Conference Talks
The business of great software
  • Playbook
  • Purpose Built
  • Giant Robots Smashing Into Other Giant Robots Podcast
  • Design Sprint Guide
  • Live Streaming on LinkedIn
View all Resources

Articles by Adam Sharp

View other authors

  1. Let’s Build a Custom Publisher in Combine

    Once you know the boilerplate, it’s not hard to build a custom publisher in Combine.

    Adam Sharp
    June 5, 2020
    • Combine
    • Reactive Programming
    • Swift
    • iOS
  2. Strategies for opening phone URLs in iOS apps

    Something as simple as making a phone call or opening a URL on iOS is more complicated than you may realise. How can we gracefully handle when things go wrong?

    Adam Sharp
    May 31, 2019
    • UIkit
    • iOS
    • Mobile
    • User Experience
    • Design
  3. Waiting for File Write Completion on iOS

    It’s straight forward to watch a directory for file writes, but how can you be alerted when a file has finished being written?

    Adam Sharp and Sid Raval
    January 24, 2019
    • iOS
    • Swift
    • TIL
  4. A Simple Approach to Thread-Safe Networking in iOS Apps

    Concurrent programming is hard! But by taking advantage of a lesser-known aspect of its design, we can avoid some common pitfalls.

    Adam Sharp
    September 21, 2017
    • Concurrency
    • Parallelism
    • URLSession
    • Networking
    • Swift
    • iOS
  5. Swift Talk: Comparing RxSwift and ReactiveSwift

    Many types make light work.

    Adam Sharp
    February 2, 2017
    • RxSwift
    • RxCocoa
    • ReactiveSwift
    • ReactiveCocoa
    • Swift
    • Reactive Programming
    • Frp
    • iOS
  6. Introducing Perform: Easy dependency injection for storyboard segues

    How to use Perform to simplify your code and make Dependency Injection great again.

    Adam Sharp
    September 13, 2016
    • iOS
    • Swift
    • Perform
    • Open Source
    • News
  7. Introduction to Function Currying in Swift

    Function currying in Swift might not be immediately obvious, but once you see the applications, it can be another incredibly powerful tool at your disposal.

    Gordon Fontenot and Adam Sharp
    December 11, 2014
    • iOS
    • Swift
    • Functional Programming

Footer

thoughtbot
  • Services
  • Case Studies
  • Resources
  • Let's Talk
  • Our Company
  • Careers
  • Purpose
  • Blog
  • Sponsor
  • Mastodon
  • Bluesky
  • GitHub
  • YouTube
  • Twitch
  • Feeds
© 2025 thoughtbot, inc.

The design of a robot and thoughtbot are registered trademarks of thoughtbot, inc.

  • US: +1 (877) 9-ROBOTS
  • UK: +44 (0)20 3807 0560
  • Beware of fraudulent thoughtbot job listings Learn more
  • Code of Conduct
  • Accessibility Statement
  • Privacy Policy