Icon

Charles Crete

Software Developer

GitHub β€” Twitter β€” My Work β€” charles
+spam
@cretezy
+spam
.com
+spam

Flutter JSON vs Protocol Buffer: Benefits and performance

May 19, 2020

As discussed in my last post on Flutter JSON decoding performance, we saw that parsing JSON on the main thread is usually the right choice for decoding data.

Today, we'll be looking at Protocol Buffers, Google's data serialization format. Protocol Buffers serves the same purpose as JSON, with the following differences:

  • It is structured. You create .proto files which define the schema of the data, and generate code for encoding/decoding
  • It is a binary format. This means that it doesn't need to encode to a string (like JSON). For example, "123" can encode to 1 byte instead of 3.
  • …

Flutter JSON parsing: What is the fastest?

May 17, 2020

Flutter, Google portable UI framework, uses Dart for application code. My question today: What is the fastest way to parse JSON in Flutter?

Flutter is single-threaded, meaning all code runs on the UI thread by default. It uses an event loop but supports isolates (thread-like workers who don't share memory). Overall, this is very similar to…


Cloud Run + Cloud Build for Monorepos

June 24, 2019

Cloud Run is a "serverless container compute platform" running on Google Cloud. It is a surprisingly good product, even in it's beta stage.

Today, we'll be setting up Cloud Run and Cloud Build to run inside a monorepo with a Node.js back-end (as an API), with a Next.js front-end. We will deploy each package (server, web) as an individual Cloud Run…


Beta Lister Release

June 19, 2019

Today I'm releasing an Android app, Beta Lister, which lists all available beta versions of installed applications.

It's a simple utility app that can be downloaded on the Google Play Store right now. It’s free and easy to use: Simply launch Beta Lister to display a list of your apps and their beta status. You can click on an app to view its…


Hello World!

February 17, 2019

I've recreated my personal website with Gatsby. It's been a great experience so far.

I've gone the way of using no external dependencies except for Emotion, a CSS-in-JS library with support for Gastby.

This allows the site to be pre-rendered statically, making loading times very fast, especially behind a CDN like Netlify. In addition, JS is…