搜尋套件、儲存庫與 APP 分類

GitHub 儲存庫elias8/last_fm

last_fm

一個簡單的應用程式,用於示範適用於 Flutter 的可測試、可維護和可擴展的架構。本專案使用了 flutter_bloc、get_it、hive 和 REST API 等技術堆疊。

last_fm 專案封面
星標
155
分支
23
最近推送(UTC)
2022年12月25日
專案狀態
未封存

原始 README

以下為英文專案原文快照,最新內容請造訪 GitHub。

last_fm

example workflow codecov Flutter version License: MIT

A simple app to demonstrate a testable, maintainable, and scalable architecture for flutter. flutter_bloc, hive, and REST API are some of the tech stacks used in this project.


ScreenShots 📷

albums artist
top_albums album_detail

Getting Started 🚀

For the app to work, you need to provide your own last.fm API key by issuing here.

Once you get your API key, you can run or build the app by using the following command:

# Run
$ flutter run --dart-define=API_KEY=PUT_YOUR_API_KEY_HERE

# Build
$ flutter build --dart-define=API_KEY=PUT_YOUR_API_KEY_HERE

Running Tests 🧪

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

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

To remove generated files from the coverage report, use the following command:

# install remove_from_coverage package 
$ pub global activate remove_from_coverage

# remove `.g.dart` and `.config.dart` files from the coverage report
$ pub global run remove_from_coverage:remove_from_coverage -f coverage/lcov.info -r '.g.dart', '.config.dart'

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 localized string, open the app_en.arb file at lib/config/l10n/arb/app_en.arb.
{
  "@@locale": "en",
  "appName": "LastFM",
  "@appName": {
    "description": "The application name"
  }
}
  1. Then add a new key/value and description
{
  "@@locale": "en",
  "appName": "LastFM",
  "@appName": {
    "description": "The application name"
  },
  "albums": "Albums",
  "@albums": {
    "description": "Text shown in the AppBar of AlbumsScreen"
  },
}
  1. Use the new string
import 'package:some_app/l10n/l10n.dart';

@override
Widget build(BuildContext context) {
  final l10n = context.l10n;
  return Text(l10n.albums);
}
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>am</string>
</array>

        ...
Adding Translations
  1. For each supported locale, add a new ARB file in lib/config/l10n/arb.
├── l10n
│   ├── arb
│   │   ├── app_en.arb
│   │   └── app_am.arb
  1. Add the translated strings to each .arb file:

app_en.arb

{
  "@@locale": "en",
  "appName": "LastFM",
  "@appName": {
    "description": "The application name"
  },
}

app_am.arb

{
  "@@locale": "am",
  "appName": "የመጨረሻ ኤፍ ኤም",
  "@appName": {
    "description": "የመተግበሪያ ስም"
  },
}

Credit 🙏

Thanks to all the people who created and are maintaining these awesome packages used in this project.

Maintainers Packages
Felix Angelov bloc & flutter_bloc, equatable, mocktail
Thomas Burkhart get_it
Milad akarie injectable
Chris Sells go_router
Very Good Ventures For their awesome README template
And everyone else dio, hive, and many more...

Features and bugs

You can file features requests (not intending to add new features, but I will try to add based on requests), bugs or any questions at the issue tracker.

And don't forget to give a star if you find this repo helpful, or you have learned something from it!

Maintainers
Elias Andualem GitHub avatar
GitHub 作者

Elias Andualem ↗

語言DartHTMLRubySwiftKotlinObjective-C

分類

依賴 Flutter 元件

使用的依賴

依賴清單 31 項

App 分類

所在榜單

如何選擇適合專案的儲存庫?

先依使用情境篩選,再比較專案活躍情況,最後到原始儲存庫確認使用要求。

  1. 透過儲存庫名稱、作者或描述搜尋,再依技術分類縮小範圍。
  2. 綜合星標、分支與最近推送比較專案;星標反映社群關注,不保證品質。
  3. 使用前在 GitHub 確認 README、授權條款與 Issues。

來源與維護

“A repository is the most basic element of GitHub.”

GitHub Docs — About repositories ↗