Skip to content

OnlyMaxon/linkedinNFC

Repository files navigation

Linked - Cross-Platform Data Exchange App

📱 Overview

Linked is a cross-platform mobile application that enables two phones to exchange data through a "touch" interaction using BLE (Bluetooth Low Energy) as the primary transport layer.

Supported Platforms

  • iOS ↔ iOS
  • Android ↔ Android
  • iOS ↔ Android (Cross-platform)

🏗️ Architecture

High-Level Architecture

┌─────────────────────────────────────────────────────────────────┐
│                        PRESENTATION LAYER                        │
├─────────────────────────────────────────────────────────────────┤
│  ┌─────────────┐  ┌─────────────┐  ┌─────────────────────────┐  │
│  │   Screens   │  │   Widgets   │  │   Platform Triggers     │  │
│  │  - Home     │  │  - Cards    │  │  - iOS: Widget/Wallet   │  │
│  │  - Exchange │  │  - Dialogs  │  │  - Android: NFC/Auto    │  │
│  │  - History  │  │  - Buttons  │  │                         │  │
│  └─────────────┘  └─────────────┘  └─────────────────────────┘  │
└─────────────────────────────────────────────────────────────────┘
                              │
                              ▼
┌─────────────────────────────────────────────────────────────────┐
│                        BUSINESS LOGIC LAYER                      │
├─────────────────────────────────────────────────────────────────┤
│  ┌─────────────────┐  ┌─────────────────┐  ┌─────────────────┐  │
│  │  Exchange Bloc  │  │  Discovery Bloc │  │  Settings Bloc  │  │
│  └─────────────────┘  └─────────────────┘  └─────────────────┘  │
│  ┌─────────────────┐  ┌─────────────────┐  ┌─────────────────┐  │
│  │ Connection Bloc │  │  Transfer Bloc  │  │  History Bloc   │  │
│  └─────────────────┘  └─────────────────┘  └─────────────────┘  │
└─────────────────────────────────────────────────────────────────┘
                              │
                              ▼
┌─────────────────────────────────────────────────────────────────┐
│                        TRANSPORT LAYER                           │
├─────────────────────────────────────────────────────────────────┤
│  ┌───────────────────────────────────────────────────────────┐  │
│  │                   Transport Manager                        │  │
│  │  ┌─────────────┐  ┌─────────────┐  ┌─────────────────┐    │  │
│  │  │     BLE     │  │  WiFi Direct│  │    Multipeer    │    │  │
│  │  │  (Primary)  │  │  (Android)  │  │ Connectivity(iOS)│   │  │
│  │  └─────────────┘  └─────────────┘  └─────────────────┘    │  │
│  └───────────────────────────────────────────────────────────┘  │
└─────────────────────────────────────────────────────────────────┘
                              │
                              ▼
┌─────────────────────────────────────────────────────────────────┐
│                        DATA LAYER                                │
├─────────────────────────────────────────────────────────────────┤
│  ┌─────────────────┐  ┌─────────────────┐  ┌─────────────────┐  │
│  │  Local Storage  │  │   Secure Store  │  │  Repositories   │  │
│  │    (SQLite)     │  │  (Keychain/KS)  │  │                 │  │
│  └─────────────────┘  └─────────────────┘  └─────────────────┘  │
└─────────────────────────────────────────────────────────────────┘

📁 Project Structure

linked/
├── lib/
│   ├── main.dart
│   ├── app.dart
│   ├── core/
│   │   ├── constants/
│   │   ├── theme/
│   │   ├── utils/
│   │   └── extensions/
│   ├── data/
│   │   ├── models/
│   │   ├── repositories/
│   │   └── datasources/
│   ├── domain/
│   │   ├── entities/
│   │   ├── repositories/
│   │   └── usecases/
│   ├── presentation/
│   │   ├── screens/
│   │   ├── widgets/
│   │   └── blocs/
│   └── transport/
│       ├── ble/
│       ├── wifi_direct/
│       └── multipeer/
├── ios/
│   ├── Runner/
│   ├── LinkedWidget/
│   └── WalletExtension/
├── android/
│   └── app/
└── test/

🔧 Technology Stack

Component Technology
Framework Flutter 3.x
State Management flutter_bloc
BLE flutter_blue_plus
Local Storage sqflite, shared_preferences
Secure Storage flutter_secure_storage
DI get_it, injectable
Navigation go_router
iOS Widget WidgetKit (Swift)
iOS Wallet PassKit (Swift)
Android NFC android.nfc (Kotlin)

🚀 Getting Started

# Clone the repository
git clone https://github.com/your-org/linked.git

# Install dependencies
flutter pub get

# Run on iOS
flutter run -d ios

# Run on Android
flutter run -d android

📖 Documentation

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published