NFC Radio

This flutter project is a music player app that can be controlled by any NFC tag.

Mobile App DevelopmentDartMIT

Abstract

NFC Radio is an open-source Mobile App Development project. This flutter project is a music player app that can be controlled by any NFC tag. This Flutter project is a music player app (mainly for mobile due to the need for NFC) that can be controlled by any NFC tag. There is no information saved on the tag itself, but the tag's ID is used to identify the tag. It is built using Dart. Key capabilities include: NFC Integration: Control the music player using NFC tags; Simple UI: Easy-to-use interface for playing music; Customizable: Map NFC tags to play local audio files. The complete source code is publicly available on GitHub under the MIT License, making it a useful reference for students building a Mobile App Development mini project or final-year project.

1. Introduction

This Flutter project is a music player app (mainly for mobile due to the need for NFC) that can be controlled by any NFC tag. There is no information saved on the tag itself, but the tag's ID is used to identify the tag. The app will then use the ID to determine which radio file to play.

I wanted to have a simple-to-use radio that can be used to hear favorite songs or stories without the need for using a screen. NFC tags can be placed in toys or pictures, which can act as a CMI (Child-Machine-Interface)

2. Objective

This flutter project is a music player app that can be controlled by any NFC tag.

This project demonstrates how Dart can be applied to a real-world Mobile App Development problem.

3. Key Features / Modules

  • NFC Integration: Control the music player using NFC tags.
  • Simple UI: Easy-to-use interface for playing music.
  • Customizable: Map NFC tags to play local audio files.
  • Cross-Platform: Is tested on Android devices, but might also work on iOS.
  • Privacy Focused: No data is collected or stored. Everything is stored locally on the device.
  • Starter Packs: Download audio starter packs from GitHub to get started quickly. Like sounds of farm animals, nature, etc.

4. Technology Stack

Dart
  • Flutter: A UI toolkit for building natively compiled applications for mobile, web, and desktop from a single codebase.
  • Dart: The programming language used for Flutter development.
  • NFC Plugins: Flutter plugins for NFC functionality.

5. System Requirements

General requirements for this technology stack — check the README for exact versions.

  • Flutter SDK
  • Android Studio or VS Code with Flutter plugin
  • Android / iOS device or emulator
  • Git (to clone the repository)

6. Installation & Setup

git clone https://github.com/trapplab/NFC-Radio.git
cd NFC-Radio
  1. Clone the Repository:
  2. Navigate to the Project Directory:
  3. Install Dependencies:
  4. Run the App:
  5. Build the App:
  6. Setting Up NFC Tags:
  7. Place any NFC tag (old cards, dongles, stickers, etc.) near your device.
  8. The app will read the tag's ID and map it to a specific radio file or playlist.
git clone https://github.com/trapplab/NFC-Radio.git
cd NFC-Radio
flutter/bin/flutter pub get
./scripts/prepare_flavor.sh fdroid && flutter/bin/flutter run --flavor fdroid
   ./scripts/prepare_flavor.sh play && flutter/bin/flutter run --flavor play
   ./scripts/prepare_flavor.sh github && flutter/bin/flutter run --flavor github

Full setup instructions are in the project README.

7. Future Enhancements

Suggested extensions you can add to make this your own project.

  • Add push notifications with Firebase Cloud Messaging
  • Add offline support with local caching
  • Publish an internal test build on the Play Store

8. Viva / Review Questions

Common questions examiners ask for projects in this domain.

  1. Which framework is used and why (native vs cross-platform)?
  2. How is app state managed across screens?
  3. Where is the data stored — locally, Firebase or a REST backend?
  4. How are permissions (camera, location, storage) handled?
  5. How would you publish this app to the Play Store / App Store?

9. Source Code & License

This project is developed by trapplab and published on GitHub under the MIT License. Please follow the license terms and credit the original author when you use or modify this code.

Want to build this as your internship project?

Work on a Mobile App Development project like this with mentor guidance, weekly reviews and an internship certificate from Training Trains, Erode — online or offline.

Apply for Mobile App Development Internship