Skip to content

internationaltouch/mobile

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

38 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Touch Technology Framework

A modular Flutter framework for building white-label touch rugby mobile applications. This mono-repo contains reusable packages and multiple organization-specific apps.

πŸ—οΈ Framework Structure

white-label-mobile/
β”œβ”€β”€ packages/                        # Reusable Flutter packages
β”‚   β”œβ”€β”€ touchtech_core/             # Core services, config, database
β”‚   β”œβ”€β”€ touchtech_news/             # News feed functionality
β”‚   β”œβ”€β”€ touchtech_clubs/            # Clubs/Member Nations
β”‚   β”œβ”€β”€ touchtech_competitions/     # Competitions, fixtures, ladders
β”‚   └── touchtech_favorites/        # Bookmarks/favorites system
β”œβ”€β”€ apps/                           # Organization-specific apps
β”‚   β”œβ”€β”€ internationaltouch/         # FIT International Touch App
β”‚   └── touch_superleague_uk/       # Touch Superleague UK App
β”œβ”€β”€ configs/                        # Saved app configurations
β”œβ”€β”€ docs/                           # Framework documentation
└── Makefile                        # Build and test commands

πŸ“¦ Packages

touchtech_core

Core services and utilities used across all apps:

  • Configuration system with JSON-based app config
  • Database service with Drift/SQLite
  • Device awareness and connectivity monitoring
  • API service foundation
  • Shared widgets and utilities

touchtech_news

News feed module with:

  • REST API integration
  • News article models and views
  • Media support (images, videos)
  • Offline caching

touchtech_clubs

Clubs/Member Nations module:

  • Club data models
  • Club listing and detail views
  • Member organization profiles

touchtech_competitions

Competition management module:

  • Event, season, division models
  • Fixtures and results
  • Ladder standings with statistics
  • Competition filtering and navigation
  • Match score cards

touchtech_favorites

Bookmarking system:

  • Multi-type favorites (events, divisions, teams)
  • Local storage persistence
  • Favorites view and management

🏒 Apps

FIT International Touch (apps/internationaltouch/)

Official app for Federation of International Touch:

  • Global touch rugby events and tournaments
  • World Cup, continental championships
  • International news feed
  • Member nation information
  • Bundle ID: org.internationaltouch.fit

Touch Superleague UK (apps/touch_superleague_uk/)

Official app for Touch Superleague UK:

  • UK domestic competition results
  • League fixtures and standings
  • Focused on competitions (no news/clubs modules)
  • Bundle ID: uk.org.touchsuperleague.mobile

πŸš€ Getting Started

Prerequisites

  • Flutter SDK 3.13.0 or later
  • Dart SDK 3.1.0 or later
  • Android Studio / VS Code with Flutter extensions
  • CocoaPods (for iOS builds)
  • Make (for build scripts)

Installation

  1. Clone the repository:
git clone https://github.com/internationaltouch/mobile.git
cd mobile
  1. Install dependencies for all packages and apps:
make pub-get

Development Commands

# Get dependencies for all packages and apps
make pub-get

# Run all tests (packages + apps)
make test

# Test packages only
make test-packages

# Test apps only
make test-apps

# Lint all code
make lint

# Clean all build artifacts
make clean

# Build specific apps
make build-fit       # Build FIT International Touch app
make build-tsl       # Build Touch Superleague UK app

Running Apps

# Run FIT International Touch app
cd apps/internationaltouch
flutter run

# Run Touch Superleague UK app
cd apps/touch_superleague_uk
flutter run

πŸ§ͺ Testing

Run tests for all packages:

make test-packages

Run tests for all apps:

make test-apps

Run all tests:

make test

Test individual packages:

cd packages/touchtech_core && flutter test
cd packages/touchtech_competitions && flutter test

πŸ—οΈ Building Apps

Android

# FIT International Touch
cd apps/internationaltouch
flutter build apk --release
flutter build appbundle --release

# Touch Superleague UK
cd apps/touch_superleague_uk
flutter build apk --release
flutter build appbundle --release

iOS

# FIT International Touch
cd apps/internationaltouch
flutter build ios --release

# Touch Superleague UK
cd apps/touch_superleague_uk
flutter build ios --release

πŸ“ Creating New Apps

To create a new organization app:

  1. Create app directory structure:
mkdir -p apps/your_org/{lib,assets/{config,images},test}
  1. Copy Android/iOS projects from an existing app
  2. Create pubspec.yaml with required package dependencies
  3. Create app-specific app_config.json in assets/config/
  4. Customize bundle IDs and app name
  5. Add app logo and branding assets

πŸ”§ Configuration

Each app uses a JSON configuration file (assets/config/app_config.json) to customize:

  • Display name and branding
  • API endpoints
  • Enabled/disabled modules (news, clubs, competitions)
  • Theme colors
  • Competition logos and assets

See configs/ directory for example configurations.

πŸ“š Architecture

Package Dependencies

touchtech_core (foundation)
    ↓
touchtech_news, touchtech_clubs, touchtech_competitions
    ↓
touchtech_favorites
    ↓
Apps (internationaltouch, touch_superleague_uk)

State Management

  • Riverpod for reactive state management
  • Providers for API data, favorites, device state
  • Offline-first architecture with local caching

Data Layer

  • Drift for local SQLite database
  • REST API integration via ApiService
  • Automatic offline fallback

Navigation

  • Material navigation with deep linking support
  • Tab-based navigation within feature modules
  • Route-based navigation between major sections

πŸ”„ CI/CD Pipeline

GitHub Actions workflows for:

  • βœ… Code quality (formatting, linting, analysis)
  • πŸ§ͺ Automated testing
  • πŸ“¦ Build artifacts (Android APK/AAB, iOS IPA)

Workflow Triggers

  • Push to main or develop branches
  • Pull requests to main branch

🀝 Contributing

This framework powers multiple touch rugby organizations' apps. Contributions welcome!

How to Contribute

  1. Fork the repository
  2. Create a feature branch
  3. Make changes with tests
  4. Run make lint and make test
  5. Submit pull request

Code Style

  • Follow Dart Style Guide
  • Use dart format for consistent formatting
  • Prefer const constructors
  • Add tests for new features

πŸ“ž Contact

For questions or collaboration: πŸ“§ technology@internationaltouch.org

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.


Touch Technology Framework - Powering the global touch rugby community through modular, scalable technology.

About

Native mobile application for iOS and Android

Resources

License

Stars

Watchers

Forks

Contributors 3

  •  
  •  
  •