All Projects → Elias8 → last_fm

Elias8 / last_fm

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

Programming Languages

dart
5743 projects
HTML
75241 projects

Projects that are alternatives of or similar to last fm

TVToday
iOS TV Shows app with TMDb Api. RxSwift, MVVM, Clean Architecture. Tuist + Swift Package Manager
Stars: ✭ 27 (-79.85%)
Mutual labels:  dependency-injection, clean-architecture
Android Clean Architecture
Showcasing a Clean Architecture approach from our Android applications framework!
Stars: ✭ 160 (+19.4%)
Mutual labels:  dependency-injection, clean-architecture
Service Pattern Go
Simple clean Go REST API architecture with dependency injection and mocking example, following SOLID principles.
Stars: ✭ 449 (+235.07%)
Mutual labels:  dependency-injection, clean-architecture
node-express-clean-architecture
A modular folder structure for developing highly scalable and maintainable APIs in nodejs using express.
Stars: ✭ 41 (-69.4%)
Mutual labels:  dependency-injection, clean-architecture
rtu-mirea-mobile
A mobile application for the MIREA - Russian Technological University, which includes a schedule, news and many other functions
Stars: ✭ 80 (-40.3%)
Mutual labels:  clean-architecture, bloc
BESTV
Android TV App powered by TMDb. It is a easy way to find the best TV content, the top movies, series... all of that in your TV.
Stars: ✭ 49 (-63.43%)
Mutual labels:  dependency-injection, clean-architecture
Kata-Dagger2-Android
Kata to practice Dependency injection using Dagger 2.
Stars: ✭ 21 (-84.33%)
Mutual labels:  dependency-injection, clean-architecture
Shiftscheduler
A boilerplate ASP.NET Core project, including a sample employee shift scheduler app
Stars: ✭ 5 (-96.27%)
Mutual labels:  dependency-injection, clean-architecture
Done it
DoneIt is a sample note app 📝 Flutter application 📱 built to demonstrate use of Clean Architecture tools. Dedicated to all Flutter Developers with ❤️.
Stars: ✭ 140 (+4.48%)
Mutual labels:  test, clean-architecture
RSS-Reader
Simple project with clean architecture
Stars: ✭ 31 (-76.87%)
Mutual labels:  test, clean-architecture
android-clean-architecture
🚀🚀🚀 The boilerplate for Android using Kotlin & Clean architecture.
Stars: ✭ 21 (-84.33%)
Mutual labels:  dependency-injection, clean-architecture
Starwars-clean
Simple project with clean architecture
Stars: ✭ 34 (-74.63%)
Mutual labels:  test, clean-architecture
whatsApp clone
Flutter WhatsClone (with Firebase + Clean Architecture) this app follow clean architecture proposed by our friendly Uncle Bob.
Stars: ✭ 181 (+35.07%)
Mutual labels:  clean-architecture, bloc
GitHubSearch
GitHub iOS client with minimum third-party dependencies.
Stars: ✭ 34 (-74.63%)
Mutual labels:  dependency-injection, clean-architecture
Flutter Roadmap
This is a flutter roadmap and documentation repository. If anyone is interested you can join the party to help the community and make flutter great again.
Stars: ✭ 47 (-64.93%)
Mutual labels:  clean-architecture, bloc
Movies Kotlin Kata
Katas for practice Kotlin( Coroutines, dataclasses, delegate properties...) Clean Architecture and best practices in Android(DI, Dagger, MVP, Espresso) implemented by Jorge Sánchez (Xurxodev)
Stars: ✭ 240 (+79.1%)
Mutual labels:  dependency-injection, clean-architecture
gochk
Static Dependency Analysis Tool for Go Files
Stars: ✭ 68 (-49.25%)
Mutual labels:  clean-architecture, layered-architecture
frontend-clean-architecture
React + TypeScript app built using the clean architecture principles in a more functional way · 🧼 🏛 🍪
Stars: ✭ 1,816 (+1255.22%)
Mutual labels:  clean-architecture, layered-architecture
Games
The Games app has two features which are listing and showing detail of games.
Stars: ✭ 15 (-88.81%)
Mutual labels:  clean-architecture
onion-architecture
My Java implementation example of onion architecture
Stars: ✭ 52 (-61.19%)
Mutual labels:  clean-architecture

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

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].