Sign in

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

The pattern you need — or probably had but didn’t realize

We need more desserts in our architectural diagrams! Photo by Annie Spratt on Unsplash


Classes you’ll want and need when coding that API

Do you need all these classes? Do cookies need chocolate chips? YES! Photo by Mae Mu on Unsplash


What API frameworks all (should) do

🎅 makes lists for naughty and nice APIs too … Photo by Glenn Carstens-Peters on Unsplash

What does an API endpoint do?

Endpoint responsibility checklist

  • 🔲 RESTful Routing (Which endpoint should we execute based on verb and URL pattern?)
  • 🔲 Control Flow (Order our execution, also handle…


When code is executed, how does it respond?

You want a V, you have a U, you need a W. Photo by Sven Vee on Unsplash

Computation 101


If you’re still throwing exceptions, you’re probably doing it wrong

Light and Dark. Success and Failure. Functional and Reactive. Photo by Andrew Karn on Unsplash


Spoiler: Still 🤷 after 30 years

To be fair they are both beautiful buildings! Photo by Jene Yeo on Unsplash and Shinya Suzuki.


Learn this now or spend 🤷‍♂️ in Crashlytics later

For a class we didn’t even write, Parcel sure seems to have some problems…Photo by Markus Winkler on Unsplash

Step 1: Trigger process death

Method A: Use adb

adb shell am kill <YOUR APPLICATION ID>


The red bar is the legacy Activity Lifecycle

Where do I initialize my ViewModel?

private val viewModelFactory: FeatureViewModelFactory by inject()
private val viewModel: FeatureViewModel by viewModels { viewModelFactory }

Where do I set up the views and the click listeners?

Where do I set up the state change subscription? (LiveData)

Where do I set up the events subscription? (RxJava)

Where do I handle deep links?


Initializing your app’s database at startup — easier said than done!

Don’t block the main thead! Photo by amirali mirhashemian on Unsplash

How do you initialize a repository? More precisely, how do you initialize application-scoped classes with database dependencies?


The missing lifecycle diagram for reactive Android Apps

How Activities, Repositories and Databases fit together on Android. Photo by Bill Oxford on Unsplash

Eric Silverberg

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store