Skip to content

ShakyaCsun/rubiks_solver

Folders and files

NameName
Last commit message
Last commit date

Latest commit

7915cca Β· Oct 18, 2024

History

7 Commits
Jul 14, 2022
Oct 18, 2024
Oct 18, 2024
Oct 18, 2024
Jul 14, 2022
Oct 18, 2024
Oct 18, 2024
Oct 18, 2024
Oct 18, 2024
Oct 18, 2024
Jun 20, 2024
Oct 18, 2024
Oct 18, 2024
Jul 14, 2022
Oct 18, 2024
Jul 14, 2022
Jul 14, 2022
Oct 18, 2024
Oct 18, 2024

Repository files navigation

Rubiks Solver

style: very good analysis License: MIT

Generated by the Very Good CLI πŸ€–

A 3x3x3 Rubik's Cube solver created by Very Good CLI.

The app uses Herbert Kociemba's two-phase algorithm, thanks to cuber package.


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

*Rubiks Solver 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"
        }
    }
    
  2. 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"
        }
    }
    
  3. Use the new string

    import 'package:rubiks_solver/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
    
  2. 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"
        }
    }
    

Generating Translations

To use the latest translations changes, you will need to generate them:

  1. Generate localizations for the current project:
flutter gen-l10n --arb-dir="lib/l10n/arb"

Alternatively, run flutter run and code generation will take place automatically.

About

A 3x3x3 Rubik's Cube solver made with Flutter

Resources

License

Stars

Watchers

Forks

Packages

No packages published