Upgrade to Pro — share decks privately, control downloads, hide ads and more …

[DevFestMilano]Enhancing Flutter Apps UX for Gl...

[DevFestMilano]Enhancing Flutter Apps UX for Global Users

This is the slide, "Enhancing Flutter Apps UX for Global Users" at DevFest Milano 2024
#devfestmilano #GDG #DevFest #DevFest2024 #Flutter

Kenichi Kambara

November 23, 2024
Tweet

More Decks by Kenichi Kambara

Other Decks in Technology

Transcript

  1. •Mobile App Development •Speeches (e.g. 18 Int’l/100+ Domestic) •Writings (e.g.

    10 Dev/Edu Books) •[Of fi cial] Evangelist at NTT TechnoCross •[Private] iplatform.org About me Kenichi Kambara (X:@korodroid)
  2. RTL (Right To Left) Speakers  • Arabic: 370 million

    speakers/23 countries • Persian: 81 million speakers • Urdu: 70 million speakers • Hebrew: 8 million speakers • and some more… LingoHub: https://lingohub.com/academy/best-practices/rtl-language-list
  3. Supporting more Languages on Flutter  1. Checking RTL Basics

    2. Getting Started for i18n 3. Testing our UI without modi fi cations 4. Deep Dive into Implementation [Extra Tips for i18n with Generative AI]
  4. Flutter i18n packages  • fl utter_localizations (Inspired by Flutter

    SDK) •slang (Of fi cial successor of “fast_i18n”) • fl utter_translate •easy_localization •getx (also famous as State Management ) •And more…
  5. Setting Up { "greeting": "Hello" } Create some new fi

    les lib/l10n/app_en.arb { "greeting": "͜Μʹͪ͸" } { "greeting": "ﺎً ﺒﺣﺮﻣ" } lib/l10n/app_ja.arb lib/l10n/app_ar.arb > fl utter pub get Automatically Generated… 
  6. Deep Dive 2 (Layout)  on LTR on RTL Row(

    mainAxisAlignment: MainAxisAlignment.start, children: [ BlueArea(), GreyArea(), ], ), Row( mainAxisAlignment: MainAxisAlignment.end, children: [ BlueArea(), GreyArea(), ], ),
  7. Deep Dive 3 (Text)  Column( children: [ Text( “Text1",

    ), Text( “Text2", ), ], ), on LTR on RTL
  8. Deep Dive 3 (Text)  Column( children: [ Text( “TextAlign.left",

    textAlign: TextAlign.left, ), Text( "TextAlign.right", textAlign: TextAlign.right, ), ], ), on LTR on RTL
  9.  How would it look on RTL devices with no

    modi fi cations? Deep Dive 4 (Combined)
  10. Deep Dive 4 (Combined)  on LTR on RTL •Icon

    •Layout matchTextDirection: true for reversing Widget The order of each Widget is automatically reversed in a Row
  11. Deep Dive more Widget…  8JUIPVUDPOTJEFSJOH(MPCBM 8JUIDPOTJEFSJOH(MPCBM "MJHONFOU "MJHONFOU%JSFDUJPOBM #PSEFS

    #PSEFS%JSFDUJPOBM #PSEFS3BEJVT #PSEFS3BEJVT%JSFDUJPOBM &EHF*OTFUT &EHF*OTFUT%JSFDUJPOBM
  12. Examples of Language Resources  // English Resource "en": {

    // Top Screen "appName": "SekaiPhone Pro", "modeTalkSpeech": "Talk Mode\n(Speech)", "modeTalkText": "Talk Mode\n(Text)", "modePhone": "Phone Mode", "modeCamera": "Camera Mode", // Hoge Screen // … },