mobile

Myanmar Calendar WearOS

A complete WearOS application for displaying Myanmar calendar information with support for multiple languages.

Myanmar Calendar WearOS Logo

A complete WearOS application for displaying Myanmar calendar information with support for multiple languages.

Features#

  • Myanmar Calendar Display: Shows Myanmar date, moon phase, and day of week
  • Multi-language Support: Myanmar, English, Shan, Karen, and Mon languages
  • Astrology Information: Displays yatyaza, pyathada, and other astrological data
  • Public Holidays: Shows Myanmar public holidays
  • Sabbath Indicators: Highlights Buddhist sabbath days
  • WearOS Optimized: Designed for both round and square watch faces
  • Swipe Navigation: Swipe left/right to navigate between days
  • Today Quick Access: Tap the "Today" button to jump to current date

๐Ÿ“ธ Screenshots#

FeaturePreviewDetails
HomeHomeHome Page
MoreCartMore View
LanguageCartLanguage Settings

Project Structure#

lib/
โ”œโ”€โ”€ main.dart                           # App entry point
โ”œโ”€โ”€ app/
โ”‚   โ””โ”€โ”€ app.dart                        # Main app widget
โ”œโ”€โ”€ features/
โ”‚   โ”œโ”€โ”€ day_details/
โ”‚   โ”‚   โ”œโ”€โ”€ bloc/
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ day_details_bloc.dart   # State management
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ day_details_event.dart  # Events
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ day_details_state.dart  # States
โ”‚   โ”‚   โ”œโ”€โ”€ models/
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ day_details.dart        # Data model
โ”‚   โ”‚   โ”œโ”€โ”€ view/
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ day_details_screen.dart # Main screen
โ”‚   โ”‚   โ””โ”€โ”€ widgets/
โ”‚   โ”‚       โ”œโ”€โ”€ myanmar_date_card.dart
โ”‚   โ”‚       โ”œโ”€โ”€ moon_phase_widget.dart
โ”‚   โ”‚       โ”œโ”€โ”€ sabbath_indicator.dart
โ”‚   โ”‚       โ”œโ”€โ”€ holiday_banner.dart
โ”‚   โ”‚       โ”œโ”€โ”€ astrology_warnings.dart
โ”‚   โ”‚       โ””โ”€โ”€ additional_info_widget.dart
โ”‚   โ””โ”€โ”€ settings/
โ”‚       โ””โ”€โ”€ view/
โ”‚           โ””โ”€โ”€ language_settings_screen.dart
โ””โ”€โ”€ shared/
    โ”œโ”€โ”€ models/
    โ”‚   โ””โ”€โ”€ language.dart               # Language enum
    โ””โ”€โ”€ l10n/
        โ””โ”€โ”€ app_strings.dart            # Localization strings

Setup Instructions#

Prerequisites#

  1. Flutter SDK (3.0.0 or higher)
  2. Android Studio with WearOS emulator or physical WearOS device
  3. very_good_cli installed:
    dart pub global activate very_good_cli

Installation#

  1. Create the project (if starting fresh):

    very_good create flutter_app myanmar_calendar_wear
    cd myanmar_calendar_wear
  2. Copy all the provided files to their respective locations in the project structure

  3. Get dependencies:

    flutter pub get
  4. Run on WearOS device/emulator:

    flutter run

Building for Release#

Generate release APK:#

flutter build apk --release --target-platform android-arm,android-arm64

Install on WearOS device:#

adb -s <device_id> install build/app/outputs/flutter-apk/app-release.apk

Dependencies#

The project uses the following key dependencies:

  • myanmar_calendar_dart: Core calendar calculations
  • wear: WearOS-specific features
  • flutter_bloc: State management
  • equatable: Value equality
  • intl: Internationalization

Usage#

  • Swipe left: Next day
  • Swipe right: Previous day
  • Tap "Today": Jump to current date
  • Tap language icon: Change language

Supported Languages#

  1. Myanmar (แ€™แ€ผแ€”แ€บแ€™แ€ฌ)
  2. English
  3. Shan (แฝแ‚ƒแ‚‡แ€žแ‚ƒแ‚‡)
  4. Karen (แ€…แ€พแ€ฎแคแ€€แ€ปแ€ญแค)
  5. Mon (แ€˜แ€ฌแ€žแ€ฌแ€™แ€”แ€บ)

WearOS-Specific Features#

  • Optimized for both round and square watch faces
  • Ambient mode support (low-power display)
  • Scrollable content for detailed information
  • Touch gestures for navigation
  • Minimal UI for glanceable information

Customization#

Changing Default Language#

Edit lib/app/app.dart:

AppLanguage _currentLanguage = AppLanguage.english; // Change default

Adjusting Layout for Different Screen Sizes#

Modify padding in lib/features/day_details/view/day_details_screen.dart:

padding: EdgeInsets.fromLTRB(
  isRound ? 20 : 12,  // Adjust these values
  isRound ? 24 : 12,
  isRound ? 20 : 12,
  isRound ? 24 : 12,
)

Adding New Widgets#

Create new widgets in lib/features/day_details/widgets/ and add them to the screen's column.

Testing#

Run tests:#

flutter test

Test on WearOS emulator:#

  1. Open Android Studio
  2. Create a WearOS virtual device
  3. Run flutter run and select the WearOS device

Troubleshooting#

Issue: App doesn't install on WearOS#

  • Ensure minSdkVersion is set to 26 or higher in android/app/build.gradle
  • Check that WearOS feature is declared in AndroidManifest.xml

Issue: Myanmar text not displaying correctly#

  • Ensure the device has Myanmar Unicode fonts installed
  • Consider embedding custom fonts in the app

Issue: Swipe gestures not working#

  • Check that GestureDetector is properly wrapping the content
  • Ensure no conflicting gesture detectors in child widgets

Contributing#

Feel free to submit issues and enhancement requests!

License#

This project is licensed under the MIT License.

Acknowledgments#

Contact#

For questions or support, please open an issue on GitHub.