Open in app

Sign In

Write

Sign In

Eric Silverberg
Eric Silverberg

713 Followers

Home

About

Published in

Perry Street Software Engineering

·Pinned

Clean API Architecture 🔵 🟢 🔴

The pattern you need — or probably had but didn’t realize — We started this 6-part series on how to build web APIs by introducing the variety of architectures that have been proposed or put into use by various languages and frameworks over the years. Among the most commonly discussed architectures online is the Clean architecture, which aspires to produce a separation…

Clean Code

9 min read

Clean API Architecture 🔵 🟢 🔴
Clean API Architecture 🔵 🟢 🔴
Clean Code

9 min read


Published in

Perry Street Software Engineering

·Updated Apr 5

A summary of the Perry Street architectural blog series

At PSS we have written a number of technical blog series and posts, linked below. Each gives you a window into our approach to software development and architecture. We also have more articles on our main medium website. Architecture The Unit Testing Diet A two-part series about scaling unit tests while enabling refactoring on mobile…

2 min read

2 min read


Published in

Better Programming

·Sep 7, 2022

Improve Your Swift Tests With “justBeforeEach”

Quick framework’s newest command makes BDD tests even more DRY — How do you write effective unit tests for an API call in Swift? You’ve probably seen or written the following code dozens (hundreds?) of times: This test approach is fine, but what happens when your call should be invoked only after prior operations have been completed by the user? …

Swift

3 min read

Improve Your Swift Tests With “justBeforeEach”
Improve Your Swift Tests With “justBeforeEach”
Swift

3 min read


Published in

Perry Street Software Engineering

·Feb 4, 2022

Client-side design patterns for API errors

Improving the Swift Errors or Kotlin Throwables of your APIs — Note: we have a newer article on error rendering with declarative UIs, written in 2023 that you can read here. An API design refresher If you’ve written any kind of mobile app, there’s a 99% chance you’re also going to be calling a remote network API. Reactive patterns are a popular approach, and reactive…

Architecture

7 min read

Client-side design patterns for API errors
Client-side design patterns for API errors
Architecture

7 min read


Published in

Perry Street Software Engineering

·Dec 14, 2021

RxJava Completable equivalents in Apple’s Combine framework

Pitfalls when chaining reactive streams using Combine on iOS — Our mobile client has invested heavily in reactive programming. In addition to providing cleaner design patterns for us to interact with asynchronous services (network API calls, disk reads, etc), reactive programming enables us to write near-identical code on both Android and iOS. Note the use of the term near-identical. There…

Combine

6 min read

RxJava Completable equivalents in Apple’s Combine framework
RxJava Completable equivalents in Apple’s Combine framework
Combine

6 min read


Published in

Perry Street Software Engineering

·Nov 29, 2021

RxJava: blockingMostRecent, blockingGet, and leaked streams

BehaviorSubjects are a common primitive in RxJava — an effective substitute for properties on objects that provide reactive semantics on a mutated value. …

Rxjava

3 min read

RxJava: blockingMostRecent, blockingGet, and leaked streams
RxJava: blockingMostRecent, blockingGet, and leaked streams
Rxjava

3 min read


Published in

Perry Street Software Engineering

·Nov 25, 2021

Reactive APIs don’t always start the same way

One of the key concepts of Reactive APIs is the ability to control, and switch, the active thread of execution. Methods like subscribeOn and observeOn in RxJava, or subscribe(on or receive(on in Combine, or start(on and observe(on in ReactiveSwift, are core building blocks when constructing any reactive stream. In this…

Combine

2 min read

Reactive APIs don’t always start the same way
Reactive APIs don’t always start the same way
Combine

2 min read


Published in

Perry Street Software Engineering

·Jun 9, 2021

Clean API Example: Save a favorite

Classes you’ll want and need when coding that API — It’s time to see what a Clean API endpoint actually looks like in practice. Per our earlier blog post about the Endpoint Responsibility Checklist, we know that the steps in an execution path in response to an HTTP request are: 🔵Receive→🟢Validate→🔴Validate→🟢Enqueue→🟢Respond Note the line above — we are going to…

Api Development

8 min read

Clean API Example: Save a favorite
Clean API Example: Save a favorite
Api Development

8 min read


Published in

Nerd For Tech

·Jun 4, 2021

The Endpoint Responsibility Checklist

What API frameworks all (should) do — What does an API endpoint do? In our series on Clean API Architecture, we have explained how there are multiple layers involved in responding to an HTTP request. …

Api Development

5 min read

The Endpoint Responsibility Checklist
The Endpoint Responsibility Checklist
Api Development

5 min read


Published in

Perry Street Software Engineering

·Updated Jun 10, 2021

Patterns of web API execution flows

When code is executed, how does it respond? — In this series we are exploring patterns for web API architecture. In order to build our case, we must first take a detour to explore common patterns of code execution whenever you call a remote API endpoint. Computation 101

Api Development

4 min read

Patterns of web API execution flows
Patterns of web API execution flows
Api Development

4 min read

Eric Silverberg

Eric Silverberg

713 Followers

CEO, Perry Street Software. Developer. 🏳️‍🌈

Help

Status

Writers

Blog

Careers

Privacy

Terms

About

Text to speech

Teams