An example Flutter application built with Very Good CLI and Supabase πŸ¦„

Overview

Supabase Example

coverage style: very good analysis License: MIT

Generated by the Very Good CLI πŸ€–

An example Flutter application built with Very Good CLI and Supabase πŸ¦„


Getting Started πŸš€

This project contains 3 flavors:

  • development
  • staging
  • production

To run the desired flavor either use the launch configuration in VSCode/Android Studio or use the following commands:

# Development
$ flutter run --flavor development --target lib/main_development.dart

# Staging
$ flutter run --flavor staging --target lib/main_staging.dart

# Production
$ flutter run --flavor production --target lib/main_production.dart

*Very Good Supabase works on iOS, Android, Web, and Windows.


Running Tests πŸ§ͺ

To run all unit and widget tests use the following command:

$ flutter test --coverage --test-randomize-ordering-seed random

To view the generated coverage report you can use lcov.

# Generate Coverage Report
$ genhtml coverage/lcov.info -o coverage/

# Open Coverage Report
$ open coverage/index.html

Working with Translations 🌐

This project relies on flutter_localizations and follows the official internationalization guide for Flutter.

Adding Strings

  1. To add a new localizable string, open the app_en.arb file at lib/l10n/arb/app_en.arb.
{
    "@@locale": "en",
    "counterAppBarTitle": "Counter",
    "@counterAppBarTitle": {
        "description": "Text shown in the AppBar of the Counter Page"
    }
}
  1. Then add a new key/value and description
{
    "@@locale": "en",
    "counterAppBarTitle": "Counter",
    "@counterAppBarTitle": {
        "description": "Text shown in the AppBar of the Counter Page"
    },
    "helloWorld": "Hello World",
    "@helloWorld": {
        "description": "Hello World Text"
    }
}
  1. Use the new string
import 'package:very_good_supabase/l10n/l10n.dart';

@override
Widget build(BuildContext context) {
  final l10n = context.l10n;
  return Text(l10n.helloWorld);
}

Adding Supported Locales

Update the CFBundleLocalizations array in the Info.plist at ios/Runner/Info.plist to include the new locale.

    ...

    <key>CFBundleLocalizations</key>
	<array>
		<string>en</string>
		<string>es</string>
	</array>

    ...

Adding Translations

  1. For each supported locale, add a new ARB file in lib/l10n/arb.
β”œβ”€β”€ l10n
β”‚   β”œβ”€β”€ arb
β”‚   β”‚   β”œβ”€β”€ app_en.arb
β”‚   β”‚   └── app_es.arb
  1. Add the translated strings to each .arb file:

app_en.arb

{
    "@@locale": "en",
    "counterAppBarTitle": "Counter",
    "@counterAppBarTitle": {
        "description": "Text shown in the AppBar of the Counter Page"
    }
}

app_es.arb

{
    "@@locale": "es",
    "counterAppBarTitle": "Contador",
    "@counterAppBarTitle": {
        "description": "Texto mostrado en la AppBar de la pΓ‘gina del contador"
    }
}
Comments
  • refactor: add improvements

    refactor: add improvements

    Description

    Added some improvements to the code based on the blog comments.

    Type of Change

    • [ ] ✨ New feature (non-breaking change which adds functionality)
    • [ ] πŸ› οΈ Bug fix (non-breaking change which fixes an issue)
    • [ ] ❌ Breaking change (fix or feature that would cause existing functionality to change)
    • [X] 🧹 Code refactor
    • [ ] βœ… Build configuration change
    • [ ] πŸ“ Documentation
    • [ ] πŸ—‘οΈ Chore
    opened by AnnaPS 0
  • fix: mounted error

    fix: mounted error

    Description

    Sometimes when I started the app an error came up. The problem was that the widget was un-mounted and it couldn't access the context.

    Type of Change

    • [ ] ✨ New feature (non-breaking change which adds functionality)
    • [X] πŸ› οΈ Bug fix (non-breaking change which fixes an issue)
    • [ ] ❌ Breaking change (fix or feature that would cause existing functionality to change)
    • [ ] 🧹 Code refactor
    • [ ] βœ… Build configuration change
    • [ ] πŸ“ Documentation
    • [ ] πŸ—‘οΈ Chore
    opened by AnnaPS 0
  • refactor(user_repository): abstract supabase user

    refactor(user_repository): abstract supabase user

    Description

    • refactor(user_repository): abstract supabase user

    Type of Change

    • [ ] ✨ New feature (non-breaking change which adds functionality)
    • [ ] πŸ› οΈ Bug fix (non-breaking change which fixes an issue)
    • [ ] ❌ Breaking change (fix or feature that would cause existing functionality to change)
    • [X] 🧹 Code refactor
    • [ ] βœ… Build configuration change
    • [ ] πŸ“ Documentation
    • [ ] πŸ—‘οΈ Chore
    opened by felangel 0
  • refactor: remove SupabaseDatabaseRepository

    refactor: remove SupabaseDatabaseRepository

    Description

    • refactor: remove SupabaseDatabaseRepository

    Type of Change

    • [ ] ✨ New feature (non-breaking change which adds functionality)
    • [ ] πŸ› οΈ Bug fix (non-breaking change which fixes an issue)
    • [ ] ❌ Breaking change (fix or feature that would cause existing functionality to change)
    • [X] 🧹 Code refactor
    • [ ] βœ… Build configuration change
    • [ ] πŸ“ Documentation
    • [ ] πŸ—‘οΈ Chore
    opened by felangel 0
  • refactor: rename SupabaseAuthRepository to UserRepository

    refactor: rename SupabaseAuthRepository to UserRepository

    Description

    • refactor: rename SupabaseAuthRepository to UserRepository

    Type of Change

    • [ ] ✨ New feature (non-breaking change which adds functionality)
    • [ ] πŸ› οΈ Bug fix (non-breaking change which fixes an issue)
    • [ ] ❌ Breaking change (fix or feature that would cause existing functionality to change)
    • [X] 🧹 Code refactor
    • [ ] βœ… Build configuration change
    • [ ] πŸ“ Documentation
    • [ ] πŸ—‘οΈ Chore
    opened by felangel 0
  • refactor: linting

    refactor: linting

    Description

    • refactor: linting

    Type of Change

    • [ ] ✨ New feature (non-breaking change which adds functionality)
    • [ ] πŸ› οΈ Bug fix (non-breaking change which fixes an issue)
    • [ ] ❌ Breaking change (fix or feature that would cause existing functionality to change)
    • [X] 🧹 Code refactor
    • [ ] βœ… Build configuration change
    • [ ] πŸ“ Documentation
    • [ ] πŸ—‘οΈ Chore
    opened by felangel 0
  • chore: blog changes

    chore: blog changes

    Description

    Renamed Supabase auth repository to auth repository. Made some changes.

    Type of Change

    • [ ] ✨ New feature (non-breaking change which adds functionality)
    • [ ] πŸ› οΈ Bug fix (non-breaking change which fixes an issue)
    • [ ] ❌ Breaking change (fix or feature that would cause existing functionality to change)
    • [ ] 🧹 Code refactor
    • [ ] βœ… Build configuration change
    • [ ] πŸ“ Documentation
    • [X] πŸ—‘οΈ Chore
    opened by AnnaPS 0
  • feat(account): add account view

    feat(account): add account view

    Description

    Add account view logic

    Type of Change

    • [X] ✨ New feature (non-breaking change which adds functionality)
    • [ ] πŸ› οΈ Bug fix (non-breaking change which fixes an issue)
    • [ ] ❌ Breaking change (fix or feature that would cause existing functionality to change)
    • [ ] 🧹 Code refactor
    • [ ] βœ… Build configuration change
    • [ ] πŸ“ Documentation
    • [ ] πŸ—‘οΈ Chore
    opened by AnnaPS 0
  • feat(login): add login view logic

    feat(login): add login view logic

    Description

    Added login view logic.

    https://user-images.githubusercontent.com/13244085/171038879-269d078e-1a41-4e16-99d1-5e64d66db4f9.mp4

    Type of Change

    • [ ] ✨ New feature (non-breaking change which adds functionality)
    • [ ] πŸ› οΈ Bug fix (non-breaking change which fixes an issue)
    • [ ] ❌ Breaking change (fix or feature that would cause existing functionality to change)
    • [ ] 🧹 Code refactor
    • [ ] βœ… Build configuration change
    • [ ] πŸ“ Documentation
    • [ ] πŸ—‘οΈ Chore
    opened by AnnaPS 0
  • feat(app_view): add app view and flow builder

    feat(app_view): add app view and flow builder

    Description

    Added app page, app view, and flow builder. Added empty pages for login and account.

    Type of Change

    • [X] ✨ New feature (non-breaking change which adds functionality)
    • [ ] πŸ› οΈ Bug fix (non-breaking change which fixes an issue)
    • [ ] ❌ Breaking change (fix or feature that would cause existing functionality to change)
    • [ ] 🧹 Code refactor
    • [ ] βœ… Build configuration change
    • [ ] πŸ“ Documentation
    • [ ] πŸ—‘οΈ Chore
    opened by AnnaPS 0
  • feat(configure_supabase): supabase configuration

    feat(configure_supabase): supabase configuration

    Description

    Add supabase package and initialize the supabase client.

    Type of Change

    • [X] ✨ New feature (non-breaking change which adds functionality)
    • [ ] πŸ› οΈ Bug fix (non-breaking change which fixes an issue)
    • [ ] ❌ Breaking change (fix or feature that would cause existing functionality to change)
    • [ ] 🧹 Code refactor
    • [ ] βœ… Build configuration change
    • [ ] πŸ“ Documentation
    • [ ] πŸ—‘οΈ Chore
    opened by AnnaPS 0
  • Missing explanations for 2 classes

    Missing explanations for 2 classes

    SupabaseAuthState and SupabaseAuthRequiredState are unclear where they came from. In the official docs of supabase for flutter there is no such thing. Maybe it was existing in v0.3 but not in 1.2. So I'm completely confused how to deal with this. Should this be related to onAuthStateChange from supabase? if so it is already a stream and has an event that is an enum. So the whole logic of this app should be updated to reflect the most recent api. In its current state it is not very helpful.

    opened by talamaska 0
  • supabase 1.0.0? mason?

    supabase 1.0.0? mason?

    hello thanks for this. i've been using very_good_cli and supabase and bloc together for some time now.

    wondering if you plan on integrating supabase 1? it has the following "BREAKING: Remove SupabaseAuthRequiredState as well as overriding methods in SupabaseAuthState"

    also, i noticed it looks like you may have used mason? if so, which bricks?

    i see: /// {@template supabase_database_exception} /// A generic supabase database exception. /// {@endtemplate}

    and

    /// {@template supabase_user_information_failure} /// Thrown during the get user information process if a failure occurs. /// {@endtemplate}

    opened by jtkeyva 0
Owner
Very Good Ventures
A very good Flutter development consultancy (also @VeryGoodOpenSource)
Very Good Ventures
A Very Good Flutter Federated Plugin created by the Very Good Ventures Team πŸ¦„

Very Good Flutter Plugin Developed with ?? by Very Good Ventures ?? A Very Good Flutter Plugin created by the Very Good Ventures Team. Getting Started

Very Good Open Source 14 Oct 19, 2022
A Very Good Flutter Package Template created by the Very Good Ventures Team πŸ¦„

Very Good Flutter Package Developed with ?? by Very Good Ventures ?? A Very Good Flutter package created by Very Good Ventures ?? . Getting Started ??

Very Good Open Source 32 Dec 13, 2022
A Very Good Dart Package Template created by the Very Good Ventures Team πŸ¦„

Very Good Dart Package Developed with ?? by Very Good Ventures ?? A Very Good Dart package created by Very Good Ventures ?? . Getting Started ?? Insta

Very Good Open Source 8 Aug 14, 2022
An implementation of the behavioral composition pattern for Flame. Built by Very Good Ventures πŸ¦„

Flame Behaviors Developed with ?? by Very Good Ventures ?? An implementation of the behavioral composition pattern for Flame. Installation ?? flutter

Very Good Open Source 35 Jan 2, 2023
Flame behaviors used to organically manage the movement of an entity. Built by Very Good Ventures πŸ¦„

Steering Behaviors Developed with ?? by Very Good Ventures ?? An implementation of steering behaviors for Flame Behaviors. See Steering Behaviors For

Very Good Open Source 7 Oct 9, 2022
A Very Good Blog App using Flutter, flutter_bloc, django rest framework for backend✨

Very Good Blog App - Blog sharing Features Login, register, manage personal information. Compose, edit, post blog to share with everyone. Like, save b

Nguyen Minh Dung 14 Nov 27, 2022
This is an example project for the article about implementing clean architecture in flutter with riverpod and supabase as backend service.

The Example This is an example how to implement clean architecture with domain driven design and riverpod in flutter projects. Getting Started Rename

Volodymyr Hodiak 45 Dec 30, 2022
A Flutter mobile application built completely using DhiWise and Supabase without coding single line of code. With 100% system generated code

Flutter Expension Getting Started with Flutter ?? Generated with ❀️ from Dhiwise A Flutter mobile application built completely using DhiWise and Supab

DhiWise 11 Oct 23, 2022
Bill Splitting App πŸ’΅ with Good UX and Design πŸ‘¨πŸ»β€πŸŽ¨ built with Flutter. πŸš€

Splitty: Bill Splitting App Link Idea ?? Create App where we can create group and add members to share the bill & split the amount equally with member

Dhruvil 2 Sep 6, 2022
🎯 A powerful multiplatform application with Flutter and Supabase for the Komentory project.

?? Multiplatform application for Komentory project A powerful multiplatform application with Flutter and Supabase for the Komentory project. Currently

Komentory 3 Mar 1, 2022
A Flutter application to plan personal activities and routines that uses Supabase for the backend.

Flutter Planner Generated by the Very Good CLI ?? A Flutter application to plan personal activities and routines that uses Supabase for the backend. P

Ivan 15 Dec 29, 2022
Do more - A good looking glorified todo list built with flutter.

do_more (DO>) A glorified todo list with a beautiful ui. Login with Google Events Organize your tasks by events, visualize them in their page and add

Mariano Uvalle 28 Nov 22, 2022
Addons to supabase dart (and Flutter), to make development easier.

supabase_addons Make great apps with a great backend! Supabase is an open source Firebase alternative. It has support for auth, database and storage u

Bruno D'Luka 20 Dec 3, 2022
Flutter integration for Supabase. This package makes it simple for developers to build secure and scalable products.

supabase_flutter Flutter package for Supabase. What is Supabase Supabase is an open source Firebase alternative. We are a service to: listen to databa

Supabase 251 Jan 7, 2023
A fully functional Furniture App Clone made using Flutter, Supabase and Getx State Management.

?? Flutter Furniture App ?? Timberr is a fully functional Furniture App Clone Developed using Flutter, Supabase and Getx State Management which is bas

Aditya 54 Nov 22, 2022
Dart client library to interact with Supabase Storage

storage-dart Dart client library to interact with Supabase Storage. Contributing Fork the repo on GitHub Clone the project to your own machine Commit

Supabase 22 Dec 14, 2022
A Dart client for Supabase

supabase-dart A Dart client for Supabase. What is Supabase Supabase is an open source Firebase alternative. We are a service to: listen to database ch

Supabase Community 392 Jan 7, 2023
UI library to easily implement auth functionalities of Supabase in your app.

flutter-auth-ui A simple library of predefined widgets to easily and quickly create a auth compooents using Flutter and Supabase. ⚠️ Developer Preview

Supabase Community 20 Dec 13, 2022