Skip to content

dmanpearl/namer

Repository files navigation

namer

A Flutter/Dart app to choose and bookmark compound names based on Flutter's tutorial with additional functionality such as real-time data-syncing between multiple app instances.

Additional features in this project:

  • Unit Tests: Implements testing of various functionality.

  • Shared Preferences: Implements persistent storage for all settings (current word-pair, history, favorites, style).

  • Firestore: Uses Google Firebase to store all settings and listen for real-time updates. This feature is the main reason for implementing the 'namer' app.

  • Favorites: Implements a Favorites page with multiple methods for setting and unsetting Favorite word pairs.

  • Multi-Platform: Release builds tested on iOS and Mac. This project is also intended to support Android, Windows, and Linux.

Run on physical iOS or macos device from command line:

  1. List devices

     flutter devices
     	Found 4 connected devices:
     	  David’s iPhone (mobile) • 00008030-00050DC61AB9802E            • ios            • iOS 18.1.1 22B91
     	  iPhone 16 Plus (mobile) • 0B387A7C-8371-40DB-8E57-1BBF7E790DDA • ios            • com.apple.CoreSimulator.SimRuntime.iOS-18-1 (simulator)
     	  macOS (desktop)         • macos                                • darwin-x64     • macOS 15.1.1 24B91 darwin-x64
     	  Chrome (web)            • chrome                               • web-javascript • Google Chrome 131.0.6778.205
     	Found 1 wirelessly connected device:
     	  David’s iPhone (mobile) • 00008030-00050DC61AB9802E • ios • iOS 18.1.1 22B91
    
  2. Install from console:

     flutter run --release -d "David’s iPhone"
     	Launching lib/main.dart on David’s iPhone in release mode...
     	Automatically signing iOS for device deployment using specified development team in Xcode project: 33V4F5LWJ6
     	Running Xcode build...
    

    or

     flutter run --release -d "macOS"
    
  3. Enable trust on device

    If device displays: "Untrusted Developer: Your device management settings to not allow apps from developer..."

    iPhone > Settings > General > VPN & Device Management > Developer App > you.name@domain.com > Allow Apps from... > Allow

  4. Clean

     flutter clean
    

Make Icons

Note: Currently implemented for ios and macos. Update "make-icons" to add additional platforms.

tools/make-icons assets/images/namer.png .

TESTS

Run all tests

flutter test test/*

or

flutter test

Run individual tests

flutter test test/utils_test.dart
flutter test test/utils_serialize_test.dart

TODO

  • Use logging instead of print.
  • On app startup, prioritize sync from Firestore over Perstent Storage.
  • Unit tests.
  • Provide Navigate from Signout screen back to main.
  • Add visual indication as to login status via auth icon in sidebar.
  • Host on Github.
  • Add unit tests widget tap/scroll gestures. See widgets.dart and widget_test.dart.

Flutter resources

A few resources to get you started if this is your first Flutter project:

For help getting started with Flutter development, view the online documentation, which offers tutorials, samples, guidance on mobile development, and a full API reference.

About

Multi-Platform Flutter/Dart app with Real-Time data sync using Firestore

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published