Giter Site home page Giter Site logo

manafire / io_flip Goto Github PK

View Code? Open in Web Editor NEW

This project forked from flutter/io_flip

0.0 0.0 0.0 91.63 MB

Google I/O 2023 FLIP AI-designed card game built with Flutter & Firebase

License: BSD 3-Clause "New" or "Revised" License

Shell 0.16% JavaScript 0.04% Dart 92.55% TypeScript 0.72% HTML 6.30% GLSL 0.10% Dockerfile 0.13%

io_flip's Introduction

I/O FLIP

I/O FLIP Header

io_flip coverage style: very good analysis

An AI-designed card game built with Flutter and Firebase for Google I/O 2023.

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 πŸš€

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

*I/O FLIP works on Web for desktop and mobile.

Loading initial data into database

Check the data loader docs for documentation on how the initial data is loaded.

Running the loading testing bot locally

Flop is a loading testing bot written in Flutter that runs on web meant to help testing the scaling of the backend of the game.

To execute it in the staging environment, open a terminal an execute:

./scripts/start_flop_webserver.sh <ENCRYPTION_KEY> <ENCRYPTION_IV> <RECAPTCHA_KEY> <APPCHECK_DEBUG_TOKEN>

You will be able to open the url where Flop started and check the progress of the bot run.

Which page represents one instance of Flop, to start several instance at the same time, the scripts/spam_flop.sh can be used, this scripts needs to receive the port where Flop started, so assuming that flop is running on http://localhost:54678, run:

./scripts/spam_flop.sh 54678

The same can be accomplished by using the army.html page that is bundled in the in it. When loaded you will be able to select how many Flop instances to load, and it is also possible to autoload instances of the bot by adding a # with the number of desired bots to spawn.


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_flip/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"
    }
}

io_flip's People

Contributors

alexv525 avatar b0berman avatar dependabot[bot] avatar ditman avatar erickzanardo avatar gastonliz avatar jsgalarraga avatar kirpal avatar pablotortosalopez avatar pstromberg98 avatar renancaraujo avatar ruimiguel avatar samanthaobrien2059 avatar tomarra avatar willhlas avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.