Google I/O 2021 Photo Booth built with Flutter and Firebase

Overview

I/O Photo Booth

Photo Booth Header

io_photobooth coverage style: very good analysis License: MIT

A Photo Booth built with Flutter and Firebase for Google I/O 2021.

Try it now and learn about how it's made.

Built by Very Good Ventures in partnership with Google

Created using Very Good CLI πŸ€–


Getting Started πŸš€

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

$ flutter run -d chrome

*I/O Photo Booth works on Web.


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:io_photobooth/l10n/l10n.dart';

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

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
  • Implement OffscreenCanvas compositor

    Implement OffscreenCanvas compositor

    Description

    OffscreenCanvas implementation of compositor with CanvasElement fallback.

    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 ferhatb 11
  • feat: add AnimatedPulse to props button

    feat: add AnimatedPulse to props button

    Description

    Closes #324

    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 omartinma 9
  • Add Hungarian locale

    Add Hungarian locale

    Description

    With this PR siposbi and HLCaptain added Hungarian locale support.

    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 siposbi 8
  • added Telugu localization strings. (te)

    added Telugu localization strings. (te)

    Description

    Added Telugu (te) language localization strings.

    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 srihariash999 7
  • chore: v1.0.3

    chore: v1.0.3

    Description

    • chore: v1.0.3

    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 felangel 6
  • Add Nepali locale `ne`

    Add Nepali locale `ne`

    Description

    This PR adds language support for the Nepali language.

    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 saileshbro 6
  • fix: remove duplicate entries

    fix: remove duplicate entries

    Description

    This PR removes the duplicate entry in the app_en.arb file and changes @sharePageSuccessHeading to @sharePageSuccessSubHeading where it is necessary.

    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 saileshbro 5
  • feat: implement twitter/fb/og app metadata

    feat: implement twitter/fb/og app metadata

    Description

    • closes #185
    • not sure what should be the value for twitter:site if any

    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 korzonkiee 5
  • docs: fix typo in image_compositor docs

    docs: fix typo in image_compositor docs

    framed -> frames

    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
    • [x] πŸ“ Documentation
    • [ ] πŸ—‘οΈ Chore
    documentation 
    opened by silverhairs 4
  • chore: v1.0.0-rc.3

    chore: v1.0.0-rc.3

    Description

    • chore: v1.0.0-rc.3
      • fix: rounded button shadow and update assets (#604)
      • fix: modal button alignment (#603)
      • feat: add how it's made link (#602)
      • fix: shutter audio delay (#600)

    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 felangel 4
  • refactor: move offscreen compositor to image compositor package

    refactor: move offscreen compositor to image compositor package

    Description

    • refactor: move offscreen compositor to image compositor package
    • refactor: remove unused web worker code

    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 4
Releases(v1.0.4)
  • v1.0.4(Jun 3, 2021)

  • v1.0.3(May 18, 2021)

    • feat: add various semantics labels (#637)
    • feat: improve semantic labels for character buttons (#636)
    • fix(functions): flutter typo in footer (#634)
    Source code(tar.gz)
    Source code(zip)
  • v1.0.2(May 17, 2021)

  • v1.0.1(May 16, 2021)

  • v1.0.0(May 16, 2021)

  • v1.0.0-rc.4(May 14, 2021)

    • fix(function): update share titles, bg images, and positioning (#588)
    • ci: add cloud function deployment workflow (#608)
    • fix(function): 404 title and subtitle text (#609)
    • chore: add issue templates (#610)
    • ci: add development functions deployment workflow (#611)
    • ci: fix firebase functions workflow (#612)
    • feat: drawer behavior enhancements (#607)
    • feat: improve stickers gridview behavior (#613)
    • fix: update stickers gridview delegate (#614)
    • fix: swipe detection in sticker tabs (#615)
    • feat: improve image composite failure experience (#616)
    • fix: update how it's made link (#618)
    • fix: update share production endpoint
    Source code(tar.gz)
    Source code(zip)
  • v1.0.0-rc.3(May 13, 2021)

    • fix: rounded button shadow and update assets (#604)
    • fix: modal button alignment (#603)
    • feat: add how it's made link (#602)
    • fix: shutter audio delay (#600)
    Source code(tar.gz)
    Source code(zip)
  • v1.0.0-rc.2(May 13, 2021)

    • feat: design updates (#570)
    • fix: update composite frame border size (#572)
    • fix: add video ideal resolution constraints (#573)
    • fix: compute croppedHeight before OffsetY for vertical input images. (#576)
    • fix: animated photo booth asset and sizing (#577)
    • feat: update bottom sheet vs drawer logic (#578)
    • feat: add loading indicator to character sprites (#579)
    • fix: add medium breakpoint and update share sizing (#581)
    • feat: add google analytics event tracking (#582)
    • feat: update share text (#583)
    • feat: add analytics events (#584)
    • feat: preload spritesheets (#585)
    • fix: subtitle on share function 404 page (#586)
    • fix: DraggableResizable scaling/aspect issues when viewport changes (#591)
    • fix: update photo frame download asset (#592)
    • fix: update props reminder text (#593)
    • feat: add AnimatedPulse to props button (#590)
    • chore: remove unused mason config (#596)
    • fix: asset distortion upon viewport resize (#597)
    • feat: update meta info and share endpoint to production (#598)
    Source code(tar.gz)
    Source code(zip)
  • v1.0.0-rc.1(May 11, 2021)

Owner
Flutter
Flutter is Google's UI toolkit for building beautiful, natively compiled applications for mobile, web, desktop, and embedded devices from a single codebase.
Flutter
A note-taking app powered by Google services such as Google Sign In, Google Drive, and Firebase ML Vision.

Smart Notes A note-taking app powered by Google services such as Google Sign In, Google Drive, and Firebase ML Vision. This is an official entry to Fl

Cross Solutions 88 Oct 26, 2022
Photo Seeds πŸ–Ό 🌱 An easier way for humans to create and recover wallets

Photo Seeds ?? ?? An easier way for humans to create and recover wallets

Mike Miller 15 Jun 2, 2022
Flutter photo - video from album by flutter

archived The package is archived. Please use flutter_wechat_assets_picker. photo image picker, multi picker support ios icloud support video use flutt

Caijinglong 300 Dec 8, 2022
A Flutter plugin to rotate, resize, move, delete text, photo or any other widget.

sticker_view A Flutter plugin to rotate, resize, move, delete any text, image or any other widget. Available Features βœ… Rotate βœ… Resize βœ… Move βœ… Layer

Gopal Dhola 14 Nov 26, 2022
NextPhoto - A Flutter Instagram look-alike photo blog application

A Flutter Instagram look-alike photo blog application. Uses jsonplaceholder for mock data. Please refer to coding task for info about desired features.

Sebastian 3 Aug 22, 2022
A photo gallery mobile application with Flutter.

Photo Gallery Photo Gallery mobile application. Description Photo Gallery is a cross platform mobile application made with Flutter. This application u

null 4 Dec 23, 2022
A Fluttter based notes app with photo-notes support!

Tizeno Tizeno is a beautiful open-source notes app for Android. It is built with Dart on top of Google's Flutter Framework. Tizeno helps one create qu

Hash Studios 24 Nov 10, 2022
Immich - Self-hosted Photo backup solution directly from your mobile phone

IMMICH Self-hosted Photo backup solution directly from your mobile phone. Note T

Alex 6.6k Dec 31, 2022
(Top 10 GDG Devfest 2021) Mobile Application to prove intellectual property rights using blockchain technology and NFT

brainshield A new Flutter project. Getting Started This project is a starting point for a Flutter application. A few resources to get you started if t

Nguyen Minh Dung 4 Jan 12, 2022
Projeto do curso Criação de Apps Android e iOS com Flutter 2021-Crie 14 Apps. Professor: Daniel Ciolfi

agenda_contatos Projeto do curso de Flutter Getting Started This project is a starting point for a Flutter application. A few resources to get you sta

Waldir Tiago Dias 0 Nov 27, 2021
new 2021 working Instagram clone written in Flutter

instagram_ui Instagram 2021 clone made using flutter Contains reels, search grid view, Getting Started This project is a starting point for a Flutter

null 6 Nov 6, 2022
Projeto do curso Criação de Apps Android e iOS com Flutter 2021-Crie 14 Apps. Professor: Daniel Ciolfi

busca_gifs A new Flutter project. Getting Started This project is a starting point for a Flutter application. A few resources to get you started if th

Waldir Tiago Dias 0 Nov 25, 2021
Flutter dating app, HCM DevFest 2021 - we gonna kill the festival est time to complete 3 days

lovebird A new Flutter project. Installation the application only run on real device due to GPS functionality. build release on Android/IOS/ Web i

null 4 May 24, 2022
A Flutter app developed during classroom lessons in the Mobile & Gaming 2021/2023 course

quiz A new Flutter project. Getting Started This project is a starting point for a Flutter application. A few resources to get you started if this is

Marco Porcaro 2 Oct 11, 2022
Introduction to Dart for GDSC, 2021. Cairo University.

Introduction to Dart Cairo University GDSC, 2021 Note: Most of the examples here are from the dart docs. Roadmap Data Types Conditions Loops Null Safe

Michael Soliman 3 Nov 1, 2021
My playground for Advent of Code 2021.

Advent of Code 2021 Daily programming puzzles at Advent of Code (https://adventofcode.com/), by the wonderful Eric Wastl (http://was.tl/). Here is whe

Tim Sneath 6 Jan 6, 2022
Ahmed Elsayed 257 Jan 7, 2023
A google browser clone which is made by using flutter and fetching the google search api for the search requests.

google_clone A new Flutter project. Project Preview Getting Started This project is a starting point for a Flutter application. A few resources to get

Priyam Soni 2 May 31, 2022
Google play scraper for flutter and dart created form

Google Play Store Scraper Dart and Flutter Google Play Store Scraper for flutter and dart helps you to get apks information from google play store. Im

Sifat 3 Sep 14, 2022