Skip to content

A Flutter app that demonstrates how to build a simple app using the SpaceX API created by the Very Good Ventures Team.

License

Notifications You must be signed in to change notification settings

VGVentures/spacex_demo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

author
Tom Arra
Dec 23, 2021
02b708e Β· Dec 23, 2021

History

11 Commits
Oct 21, 2021
Apr 25, 2021
Apr 25, 2021
Apr 25, 2021
Dec 23, 2021
Oct 21, 2021
Oct 26, 2021
Oct 26, 2021
Apr 27, 2021
Oct 26, 2021
Oct 21, 2021
Apr 25, 2021
Apr 25, 2021
Apr 25, 2021
Oct 21, 2021
Dec 23, 2021
Oct 26, 2021
Apr 25, 2021
Apr 25, 2021
Oct 26, 2021
Oct 26, 2021

Repository files navigation

SpaceX Demo

Very Good Ventures Very Good Ventures

Developed with πŸ’™ by Very Good Ventures πŸ¦„

coverage style: very good analysis License: MIT

A Flutter app that demonstrates how to build a simple app using the SpaceX API created by the Very Good Ventures Team.

This project was created for an event by the Google Developer Student Group of the University of Milan and generated by the Very Good CLI πŸ€–

This project also includes the complete slides for the talk given.


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

*SpaceX Demo works on iOS, Android, and 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:spacex_demo/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"
    }
}

About

A Flutter app that demonstrates how to build a simple app using the SpaceX API created by the Very Good Ventures Team.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published