Supabase Slack Notifications

Slack 1. Create a new Slack channel Create a slack channel in your workspace where the notifications will be displayed (ex. “notifications”) 2. Create a Slack app Visit the Slack API webpage and “Create New App”. Give the app a name and select the Slack workspace you’re working with. 3. Configure the Slack app Select “Incoming Webhooks” and flip the “Active Incoming Webhooks” switch on. 4. Create the webhook Add New Webhook to Workspace and select the “notifications” channel you created before. ...

September 29, 2024 · 2 min · 

Using Supabase in Typescript

Instead of hardcoding Supabase interfaces or types in your TypeScript projects, you can use the Supabase CLI to generate types directly from your database tables. Make sure to add the output inside your src folder so the rest of your application can access it: supabase gen types typescript --project-id abcdefghijklmnopqrst > src/types/database.types.ts This command will generate a .types.ts file that contains a single Database interface containing all of your tables and their columns. The output looks something like this (I pulled this from the official docs): ...

September 29, 2024 · 4 min · 

Flutter to Firebase Hosting Github Workflow

As soon as a Flutter project gains traction (or I’ve convinced myself that it will eventually gain traction), I like to set up a CI/CD pipeline so I can focus more on app development and less on manually deploying all of my changes to prod. This article in particular will provide an overview of the Github workflow I typically use for my Flutter projects that use Firebase Hosting. The Basics For the simplest projects that don’t require environments, variables, or Slack notifications, the workflow is straightforward. Below is an outline of what it does: ...

September 29, 2024 · 4 min · 

Generating Images With Dalle

I’ve recently been working on an app with my wife called “Abi’s Recipes”. The app, designed for mobile and TV, aims to be the Netflix of recipes, with a focus on beautiful images and a simple interface. We wanted to generate images for the recipes that we don’t have photos for, and we wanted to do it in a way that was fun and creative. That’s where DALL-E comes in. ...

September 29, 2024 · 5 min · 

Fly Safe

Over the last 3 years I’ve spent countless hours learning and using Google’s cross-platform UI framework, Flutter. I’ve built over 20 hobby apps, worked for several small startups, and used Flutter professionally at two large healthcare companies. Flutter is amazing and it’s allowed me to build an early career in software development. The longer I use Flutter though, the more often I bump up against one of its major downsides - there’s no fast way to update broken code installed through the app stores. ...

November 20, 2022 · 5 min · 

Gripes with Managed Publishing

Google Play’s Developer Console offers a pretty neat “Managed Publishing” feature that lets you decide when approved builds and app updates are published. Without Managed Publishing: Develop a new feature Add your new build to Google Play’s Production track Submit the build for review App passes review App is automatically published to the masses With Managed Publishing: Develop a new feature Add your new build to Google Play’s Production track Submit the build for review App passes review [NEW] App is added to a list of “Changes ready to publish” [NEW] App can be manually published when you’re ready It’s undeniably an amazing feature offered by our Lord and Savior, Google, but like all things software, it’s not perfect. As I discovered earlier today, there are some annoying quirks that aren’t documented anywhere but in the deepest abysses of StackOverflow. So, I decided to compile them into one place. ...

September 20, 2022 · 3 min · 

A Brief Intro to Tensorflow and Keras

The future seems to be full of complexities the human mind will not fully comprehend. We don’t know everything and we won’t know everything and so it seems appropriate to operate under the assumption that we will always be pushing up against new knowledge. With that said, becoming familiar with machine learning and artificial intelligence early will put you in the best position to conquer the complex world of the future. For one, you’ll understand the foundation that the most foreign complexities are built on (ex. AGI, Stable Diffusion, large language models, etc). For two, you’ll have an incredibly powerful tool in your pocket to attack the problems you do understand. ...

September 19, 2022 · 5 min · 

An Intro to Route Guards in Flutter

Hey! Don’t go there! Navigation in a mobile app is a bit more involved than pushing a route here and popping a route there. Some routes should only be viewed by a user who is authenticated while others are available to the public. Some routes will only behave and display properly if the user has an active internet connection while others show static assets that never change. Is it possible to verify these requirements are met before loading each new route? With Route Guards, anything is possible. ...

September 17, 2022 · 3 min · 

Authentication in Flutter Apps using the @Protocol

If you’ve spent any amount of time developing mobile apps, you’re probably well aware of how public “private” data really is. Cloud databases like , , and protect their front gates with robust security measures like authentication keys, security rules, user roles, and field-specific restrictions. From the outside, these databases are fortresses with more than enough artillery to prevent people from seeing each other’s data. The issue however, is that the castle-keepers can see everything that gets brought into the castle. Your name. Your contact info. Your personal information. It all exists on a database that is not absolutely private and that should give you pause. Below is a screenshot from a test app I made using Google’s Firestore as a database and yeah…as the owner of the database I can peruse the user records at my leisure. ...

September 17, 2022 · 11 min · 

Continuous Animations in Flutter

If your app ain’t animating, users ain’t engaging. It’s a simple law of mobile app development that gets less attention than it deserves. Users want the impression that your app is alive — a living, breathing creation that does more than respond to taps and scrolls. Dynamically changing gradients, bouncing dots, and widgets that push at their boundaries like animals in a cage all give your app a personality that users will be thinking about long after they lock their screens. ...

September 17, 2022 · 4 min ·