3

According to another post, Flutter APK contains ICU-data (maybe the icudtl.dat file was meant).

But my question; what is ICU data in Flutter APK required for?

Actually, what is ICU data? I mean, is it the same as react-native's bundle (which is compiled java-script and is executed by internal react-native C++ codes)?

Isn't Flutter (or Dart) supposed to compile to native code (like to ARM and x86 *.so format native-library for Android, and to ARM for iOS)?

Top-Master
  • 7,611
  • 5
  • 39
  • 71
  • 1
    I guess ICU data contains non-program data that the ICU lib need. Just like a GUI kit need a lot of font files to work. – jw_ Nov 19 '19 at 02:39

2 Answers2

2

according to : https://developer.android.com/guide/topics/resources/internationalization

and

http://site.icu-project.org/home

ICU is a mature, widely used set of C/C++ and Java libraries providing Unicode and Globalization support for software applications.

Few highlights of the services provided by ICU:
Format numbers, dates, .. , Time Calculations, etc..

Vahab Ghadiri
  • 2,016
  • 20
  • 26
0

To answer the question:

ICU is about localization.

Localizing is hard.

For example 1,000.50 (one thousand and fifty cents) can be written as:

  • 1 000,50
  • 1 000.50
  • 1.000,50
  • 1,000.50
  • 1000.50
  • 1000,50

All these variations are used by at least one language in the world.

There's a lot more stuff, like for example se-pa-ra-ting words in syllables to properly split them when words can't fit into a single line. You need a dictionary for this.

Some countries use MM/DD/YYYY for dates, others DD/MM/YYYY, others YYYY/MM/DD, etc.

A lot of this is data (i.e. what country/language does what), and in many languages there are no rules to easily determine them (i.e. syllables separation).

Hence ICU that's what's contained in ICU.dat.

Many dat files contain partial info on most popular languages and necessary info; since the full dat file can be huge (gigabytes).

i.e. do you need syllable separation for indonesian? If you are an OS developer, then the answer is likely yes. If you're a web developer targetting the USA and Europe, likely not.