2023-06-01 04:41:12 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								---
							 
						 
					
						
							
								
									
										
										
										
											2023-08-18 20:39:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								title: Let Data Fly with Flutter
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								sidebar_label: Dart + Flutter
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								description: Build data-intensive mobile apps with Dart + Flutter. Seamlessly integrate spreadsheets into your app using SheetJS. Securely process and generate Excel files on the go.
							 
						 
					
						
							
								
									
										
										
										
											2023-06-01 04:41:12 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								pagination_prev: demos/static/index
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								pagination_next: demos/desktop/index
							 
						 
					
						
							
								
									
										
										
										
											2023-08-18 20:39:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								sidebar_position: 6
							 
						 
					
						
							
								
									
										
										
										
											2023-06-01 04:41:12 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								sidebar_custom_props:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  summary: Dart + JS Interop
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								---
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								import current from '/version.js';
							 
						 
					
						
							
								
									
										
										
										
											2024-06-09 21:48:23 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								import Tabs from '@theme/Tabs';
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								import TabItem from '@theme/TabItem';
							 
						 
					
						
							
								
									
										
										
										
											2023-06-01 04:41:12 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								import CodeBlock from '@theme/CodeBlock';
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-08-12 05:40:33 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								export const r = {style: {color:"red"}};
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								export const g = {style: {color:"green"}};
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-08-18 20:39:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Dart[^1] + Flutter[^2] is a popular cross-platform app framework. JavaScript
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								code can be run through [embedded engines ](/docs/demos/engines ).
							 
						 
					
						
							
								
									
										
										
										
											2023-06-01 04:41:12 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-08-18 20:39:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								[SheetJS ](https://sheetjs.com ) is a JavaScript library for reading and writing
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								data from spreadsheets.
							 
						 
					
						
							
								
									
										
										
										
											2023-06-01 04:41:12 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-08-18 20:39:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								This demo uses Dart + Flutter and SheetJS to process spreadsheets. We'll explore
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								how to use the `flutter_js`  package to run JavaScript code and how to pass data
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								between Dart code and the platform-specific JS engines.
							 
						 
					
						
							
								
									
										
										
										
											2023-06-01 04:41:12 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-08-18 20:39:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								The "Demo" creates an app that looks like the screenshots below:
							 
						 
					
						
							
								
									
										
										
										
											2023-06-01 04:41:12 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								< table > < thead > < tr >  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  < th > < a  href = "#demo" > iOS< / a > < / th > 
							 
						 
					
						
							
								
									
										
										
										
											2023-08-18 20:39:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  < th > < a  href = "#demo" > Android< / a > < / th > 
							 
						 
					
						
							
								
									
										
										
										
											2023-06-01 04:41:12 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								< / tr > < / thead > < tbody > < tr > < td >  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-08-18 20:39:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								< / td > < td >  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-06-01 04:41:12 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								< / td > < / tr > < / tbody > < / table >  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-12-05 03:46:54 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								:::note Tested Deployments
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								This demo was tested in the following environments:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-04-30 04:29:40 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**Real Devices**
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								| OS         | Device            | Dart    | Flutter  | Date       |
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								|:-----------|:------------------|:--------|:---------|:-----------|
							 
						 
					
						
							
								
									
										
										
										
											2025-04-01 02:57:45 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								| Android 34 | NVIDIA Shield     | `3.7.2`  | `3.29.2`  | 2025-03-31 |
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								| iOS 15.6   | iPhone 13 Pro Max | `3.7.2`  | `3.29.2`  | 2025-03-31 |
							 
						 
					
						
							
								
									
										
										
										
											2023-12-05 03:46:54 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-06-03 03:25:20 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**Simulators**
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								| OS         | Device            | Dart    | Flutter  | Dev Platform | Date       |
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								|:-----------|:------------------|:--------|:---------|:-------------|:-----------|
							 
						 
					
						
							
								
									
										
										
										
											2025-04-01 02:57:45 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								| Android 35 | Pixel 9 Pro XL    | `3.7.2`  | `3.29.2`  | `darwin-x64`  | 2025-03-31 |
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								| iOS 18.3   | iPhone 16 Pro Max | `3.7.2`  | `3.29.2`  | `darwin-x64`  | 2025-03-31 |
							 
						 
					
						
							
								
									
										
										
										
											2025-05-07 00:21:41 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								| Android 36 | Pixel 9 Pro XL    | `3.7.2`  | `3.29.3`  | `win11-x64`   | 2054-04-28 |
							 
						 
					
						
							
								
									
										
										
										
											2024-06-03 03:25:20 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-12-05 03:46:54 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								:::
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-04-14 07:40:38 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								:::danger Telemetry
							 
						 
					
						
							
								
									
										
										
										
											2023-06-01 04:41:12 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Before starting this demo, manually disable telemetry.  On MacOS:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```bash
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								dart --disable-telemetry
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								dart --disable-analytics
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								flutter config --no-analytics
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								flutter config --disable-telemetry
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								:::
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								## Integration Details
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-08-18 20:39:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								:::note pass
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-06-01 04:41:12 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								This demo assumes familiarity with Dart and Flutter.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-08-18 20:39:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								:::
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								For the iOS and Android targets, the `flutter_js`  package[^3] wraps JavaScriptCore[^4]
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								and QuickJS[^5] engines respectively.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								The [SheetJS Standalone scripts ](/docs/getting-started/installation/standalone )
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								can be parsed and evaluated in the wrapped engines.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-06-01 04:41:12 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								### Loading SheetJS
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#### Adding the scripts
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								The `flutter.assets`  property in `pubspec.yaml`  specifies assets.  Assuming the
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								standalone script and shim are placed in the `scripts`  folder, the following
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								snippet loads the scripts as assets:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```yaml title="pubspec.yaml"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								flutter:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  assets:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    -  scripts/xlsx.full.min.js
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    -  scripts/shim.min.js
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Once loaded, the contents can be loaded with `rootBundle.loadString` :
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```dart
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								import 'package:flutter/services.dart' show rootBundle;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								String shim = await rootBundle.loadString("scripts/shim.min.js");
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								String sheetjs = await rootBundle.loadString("scripts/xlsx.full.min.js");
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#### Initialization
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								It is strongly recommended to add the engine to the state of a `StatefulWidget` :
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```dart
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								import 'package:flutter_js/flutter_js.dart';
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								class SheetJSFlutterState extends State< SheetJSFlutter >  {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  // highlight-next-line
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  late JavascriptRuntime _engine;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  @override  void initState() {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    // highlight-next-line
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    _engine = getJavascriptRuntime();
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#### Running SheetJS Scripts
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-06-01 08:25:44 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Since fetching assets is asynchronous, it is recommended to create a wrapper
							 
						 
					
						
							
								
									
										
										
										
											2023-06-01 04:41:12 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								`async`  function and sequentially await each script: 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```dart
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								class SheetJSFlutterState extends State< SheetJSFlutter >  {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  String _version = '0.0.0';
							 
						 
					
						
							
								
									
										
										
										
											2023-08-18 20:39:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  late JavascriptRuntime _engine;
							 
						 
					
						
							
								
									
										
										
										
											2023-06-01 04:41:12 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  @override  void initState() {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    _engine = getJavascriptRuntime();
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    _initEngine(); // note: this is not `await` -ed
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  Future< void >  _initEngine() async {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    /* fetch and evaluate the shim */
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    String shim = await rootBundle.loadString("scripts/shim.min.js");
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    _engine.evaluate(shim);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    // highlight-start
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    /* fetch and evaluate the main script */
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    String sheetjs = await rootBundle.loadString("scripts/xlsx.full.min.js");
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    _engine.evaluate(sheetjs);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    // highlight-end
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    /* capture the version string */
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    JsEvalResult vers = _engine.evaluate("XLSX.version");
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    setState(() => _version = vers.stringResult);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								### Reading data
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-08-18 20:39:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								The following diagram depicts the workbook waltz:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```mermaid
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								flowchart LR
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  file[(file data\nUint8List)]
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  subgraph SheetJS operations
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    base64(Base64\nstring)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    wb((SheetJS\nWorkbook))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    csv(CSV\nstring)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  end
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  lld(List of\nLists)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  tbl{{Data\nTable}}
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  file --> |`base64Encode`\nDart| base64
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  base64 --> |`XLSX.read`\nParse Bytes| wb
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  wb --> |`sheet_to_csv`\nExtract Data| csv
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  csv --> |`CsvToListConverter`\nDart| lld
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  lld --> |`Table`\nFlutter| tbl
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-06-01 04:41:12 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								The most common binary data type in Dart is `Uint8List` . It is the data type
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								for `http.Response#bodyBytes`  and the return type of `File#readAsBytes()` .
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								The Flutter JS connector offers no simple interop for `Uint8List`  data. The data
							 
						 
					
						
							
								
									
										
										
										
											2023-08-18 20:39:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								should be converted to Base64 using `base64Encode`  before parsing.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Once passed into the JS engine, the SheetJS `read`  function[^6] can read the
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Base64-encoded string and the `sheet_to_csv`  utility function[^7] can generate
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								a CSV string from a worksheet. This string can be pulled back into Dart code.
							 
						 
					
						
							
								
									
										
										
										
											2023-06-01 04:41:12 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								The `csv`  package provides a special `CsvToListConverter`  converter to generate
							 
						 
					
						
							
								
									
										
										
										
											2023-08-18 20:39:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								`List<List<dynamic>>`  (Dart's spiritual equivalent of the array of arrays). 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								The following snippet generates `List<List<dynamic>>`  from a Dart `Uint8List` :
							 
						 
					
						
							
								
									
										
										
										
											2023-06-01 04:41:12 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```dart
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								import 'dart:convert';
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								import 'package:csv/csv.dart';
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								class SheetJSFlutterState extends State< SheetJSFlutter >  {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  List< List < dynamic > > _data = [];
							 
						 
					
						
							
								
									
										
										
										
											2023-08-18 20:39:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  late JavascriptRuntime _engine;
							 
						 
					
						
							
								
									
										
										
										
											2023-06-01 04:41:12 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  void _processBytes(Uint8List bytes) {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    String base64 = base64Encode(bytes);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    JsEvalResult func = _engine.evaluate("""
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      var wb = XLSX.read('$base64');
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      XLSX.utils.sheet_to_csv(wb.Sheets[wb.SheetNames[0]]);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    """);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    String csv = func.stringResult;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    setState(() { _data = CsvToListConverter(eol: "\n").convert(csv); });
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  }
							 
						 
					
						
							
								
									
										
										
										
											2023-08-18 20:39:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								}
							 
						 
					
						
							
								
									
										
										
										
											2023-06-01 04:41:12 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								## Demo
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-12-05 03:46:54 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								0) Follow the official "Install" instructions for Flutter[^8].
							 
						 
					
						
							
								
									
										
										
										
											2023-06-01 04:41:12 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-12-05 03:46:54 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Run `flutter doctor`  and confirm the following items are checked:
							 
						 
					
						
							
								
									
										
										
										
											2023-06-01 04:41:12 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-06-09 21:48:23 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								< Tabs  groupId = "os" >  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  < TabItem  value = "linux"  label = "Linux" > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-08-12 05:40:33 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								< pre >  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								< span  { . . . g } > [✓]< / span >  Android toolchain - develop for Android devices (Android SDK version 34.0.0) 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								< / pre >  
						 
					
						
							
								
									
										
										
										
											2024-06-09 21:48:23 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  < / TabItem > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  < TabItem  value = "macos"  label = "macOS"  default > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-08-12 05:40:33 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								< pre >  
						 
					
						
							
								
									
										
										
										
											2025-04-01 02:57:45 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								< span  { . . . g } > [✓]< / span >  Android toolchain - develop for Android devices (Android SDK version 36.0.0) 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								< span  { . . . g } > [✓]< / span >  Xcode - develop for iOS and macOS (Xcode 16.2) 
						 
					
						
							
								
									
										
										
										
											2024-08-12 05:40:33 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								< / pre >  
						 
					
						
							
								
									
										
										
										
											2024-06-09 21:48:23 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  < / TabItem > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  < TabItem  value = "win"  label = "Windows" > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-08-12 05:40:33 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								< pre >  
						 
					
						
							
								
									
										
										
										
											2025-05-07 00:21:41 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								< span  { . . . g } > [✓]< / span >  Android toolchain - develop for Android devices (Android SDK version 35.0.1) 
						 
					
						
							
								
									
										
										
										
											2024-08-12 05:40:33 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								< / pre >  
						 
					
						
							
								
									
										
										
										
											2023-12-05 03:46:54 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-06-09 21:48:23 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  < / TabItem > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								< / Tabs >  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-12-05 03:46:54 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(the actual version numbers may differ)
							 
						 
					
						
							
								
									
										
										
										
											2023-06-01 04:41:12 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-04-08 04:47:04 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								< details  open >  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  < summary > < b > Installation Notes< / b >  (click to hide)< / summary > 
							 
						 
					
						
							
								
									
										
										
										
											2023-12-05 03:46:54 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								:::note pass
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								On first run, there may be a warning with "Android toolchain":
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
									
										
										
										
											2025-05-07 00:21:41 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								[!] Android toolchain - develop for Android devices (Android SDK version 35.0.1)
							 
						 
					
						
							
								
									
										
										
										
											2023-12-05 03:46:54 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    ! Some Android licenses not accepted. To resolve this, run: flutter doctor
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      --android-licenses
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								As stated, the fix is to run the command:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```bash
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								flutter doctor --android-licenses
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
									
										
										
										
											2023-08-18 20:39:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								:::
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-12-05 03:46:54 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								:::note pass
							 
						 
					
						
							
								
									
										
										
										
											2023-08-18 20:39:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-12-05 03:46:54 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								On first run, there may be a warning with "Xcode":
							 
						 
					
						
							
								
									
										
										
										
											2023-08-18 20:39:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
									
										
										
										
											2023-12-05 03:46:54 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								[!] Xcode - develop for iOS and macOS (Xcode 15.0.1)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ✗ Unable to get list of installed Simulator runtimes.
							 
						 
					
						
							
								
									
										
										
										
											2023-08-18 20:39:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-12-05 03:46:54 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Open "Settings" panel in Xcode. Under "Platforms", click "Get" next to "iOS".
							 
						 
					
						
							
								
									
										
										
										
											2023-08-18 20:39:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-12-05 03:46:54 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								:::
							 
						 
					
						
							
								
									
										
										
										
											2023-08-18 20:39:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								:::caution pass
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								In local testing, there were issues with the Android toolchain:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								error: Android sdkmanager not found. Update to the latest Android SDK and ensure that the cmdline-tools are installed to resolve this.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-08-12 05:40:33 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Android Studio does not install `Android SDK Command-Line Tools`  by default. It
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								must be installed manually.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Assuming the command-line tools are installed
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-08-18 20:39:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								This was fixed by switching to Java 20, installing `Android SDK 33` , and rolling
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								back to `Android SDK Command-Line Tools (revision: 10.0)` 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								:::
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-12-05 03:46:54 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								:::note pass
							 
						 
					
						
							
								
									
										
										
										
											2023-08-18 20:39:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								If Google Chrome is not installed, `flutter doctor`  will show an issue:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								[✗] Chrome - develop for the web (Cannot find Chrome executable at
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    /Applications/Google Chrome.app/Contents/MacOS/Google Chrome)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ! Cannot find Chrome. Try setting CHROME_EXECUTABLE to a Chrome executable.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								If Chromium is installed, the environment variable should be manually assigned:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-06-09 21:48:23 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								< Tabs  groupId = "os" >  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  < TabItem  value = "linux"  label = "Linux" > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-08-12 05:40:33 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								The `CHROME_EXECUTABLE`  environment variable should be set to the path to the
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								`chrome`  binary. This path differs between distributions and package managers. 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-06-09 21:48:23 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  < / TabItem > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  < TabItem  value = "macos"  label = "macOS" > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```bash
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								export CHROME_EXECUTABLE=/Applications/Chromium.app/Contents/MacOS/Chromium
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  < / TabItem > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  < TabItem  value = "win"  label = "Windows" > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-08-12 05:40:33 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Type `env`  in the search bar and select "Edit the system environment variables".
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								In the new window, click the "Environment Variables..." button.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								In the new window, look for the "System variables" section and click "New..."
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Set the "Variable name" to `CHROME_EXECUTABLE`  and the value to the path to the
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								program. When this demo was last tested, Chromium was installed for the local
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								user at `C:\Users\USERNAME\AppData\Local\Chromium\Application\chrome.exe`  .
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Click "OK" in each window (3 windows) and restart your computer.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-06-09 21:48:23 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  < / TabItem > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								< / Tabs >  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-06-01 04:41:12 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								:::
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-08-18 20:39:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								< / details >  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2025-04-01 02:57:45 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								List all available emulators:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```bash
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								flutter emulators
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
									
										
										
										
											2024-08-12 05:40:33 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								< Tabs  groupId = "os" >  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  < TabItem  value = "linux"  label = "Linux" > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2025-04-01 02:57:45 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								There should be at least one `android`  emulator:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-08-12 05:40:33 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Id                  • Name            • Manufacturer • Platform
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Pixel_3a_API_35     • Pixel 3a API 35 • Google       • android
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  < / TabItem > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  < TabItem  value = "macos"  label = "macOS" > 
							 
						 
					
						
							
								
									
										
										
										
											2023-08-18 20:39:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2025-04-01 02:57:45 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								There should be at least one `android`  emulator and one `ios`  simulator:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-08-18 20:39:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
									
										
										
										
											2025-04-01 02:57:45 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Id                    • Name                  • Manufacturer • Platform
							 
						 
					
						
							
								
									
										
										
										
											2024-06-09 21:48:23 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2025-04-01 02:57:45 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								apple_ios_simulator   • iOS Simulator         • Apple        • ios
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Pixel_9_Pro_XL_API_35 • Pixel 9 Pro XL API 35 • Google       • android
							 
						 
					
						
							
								
									
										
										
										
											2023-08-18 20:39:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-08-12 05:40:33 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  < / TabItem > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  < TabItem  value = "win"  label = "Windows" > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2025-04-01 02:57:45 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								There should be at least one `android`  emulator:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-08-12 05:40:33 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
									
										
										
										
											2025-05-07 00:21:41 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Id             • Name           • Manufacturer • Platform
							 
						 
					
						
							
								
									
										
										
										
											2024-08-12 05:40:33 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2025-05-07 00:21:41 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Pixel_9_Pro_XL • Pixel 9 Pro XL • Google       • android
							 
						 
					
						
							
								
									
										
										
										
											2024-08-12 05:40:33 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  < / TabItem > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								< / Tabs >  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-06-09 21:48:23 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								1) Disable telemetry. The following commands were confirmed to work:
							 
						 
					
						
							
								
									
										
										
										
											2023-06-01 04:41:12 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```bash
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								dart --disable-telemetry
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								dart --disable-analytics
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								flutter config --no-analytics
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-08-18 20:39:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								### Base Project
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-06-01 04:41:12 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								2) Create a new Flutter project:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```bash
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								flutter create sheetjs_flutter
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								cd sheetjs_flutter
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-09-05 18:04:23 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								3) Start the Android emulator.
							 
						 
					
						
							
								
									
										
										
										
											2023-06-01 04:41:12 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-04-08 04:47:04 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								< details  open >  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  < summary > < b > Details< / b >  (click to hide)< / summary > 
							 
						 
					
						
							
								
									
										
										
										
											2023-09-05 18:04:23 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								**Android Studio**
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								In Android Studio, click "More actions" > "Virtual Device Manager". Look for the
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								emulated device in the list and click the ▶ button to play.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								**Command Line**
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								List the available emulators with `flutter emulators` :
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								% flutter emulators
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								2 available emulators:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2025-04-01 02:57:45 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Id                    • Name                  • Manufacturer • Platform
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								apple_ios_simulator   • iOS Simulator         • Apple        • ios
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Pixel_9_Pro_XL_API_35 • Pixel 9 Pro XL API 35 • Google       • android
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								^^^^^^^^^^^^^^^^^^^^^--- the first column is the name for `emulator avd` 
							 
						 
					
						
							
								
									
										
										
										
											2023-09-05 18:04:23 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								The first column shows the name that should be passed to `emulator -avd` . In a
							 
						 
					
						
							
								
									
										
										
										
											2025-04-01 02:57:45 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								previous test, the name was `Pixel_9_Pro_XL_API_35`  and the launch command was:
							 
						 
					
						
							
								
									
										
										
										
											2023-09-05 18:04:23 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-12-05 03:46:54 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								```bash
							 
						 
					
						
							
								
									
										
										
										
											2025-04-01 02:57:45 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								emulator -avd Pixel_9_Pro_XL_API_35
							 
						 
					
						
							
								
									
										
										
										
											2023-09-05 18:04:23 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
									
										
										
										
											2023-12-05 03:46:54 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								:::note pass
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2025-05-07 00:21:41 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								If `emulator`  cannot be found, the folder must be added to the system path.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								< Tabs  groupId = "os" >  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  < TabItem  value = "macos"  label = "macOS" > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-12-05 03:46:54 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								On macOS, `~/Library/Android/sdk/emulator/`  is the typical location for the
							 
						 
					
						
							
								
									
										
										
										
											2025-05-07 00:21:41 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								`emulator`  binary: 
						 
					
						
							
								
									
										
										
										
											2023-12-05 03:46:54 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```bash
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								export PATH="$PATH":~/Library/Android/sdk/emulator
							 
						 
					
						
							
								
									
										
										
										
											2025-04-01 02:57:45 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								emulator -avd Pixel_9_Pro_XL_API_35
							 
						 
					
						
							
								
									
										
										
										
											2023-09-05 18:04:23 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2025-05-07 00:21:41 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  < / TabItem > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  < TabItem  value = "win"  label = "Windows" > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								The Android SDK folder can be found in the SDK manager in Android Studio. It is
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								typically `%LOCALAPPDATA%\Android\Sdk` .
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								If it is not assigned, create a User environment variable named `ANDROID_HOME` 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								with the value set to the Android SDK folder.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								---
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								There are three folders within the Android SDK folder that should be added to
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								the User `PATH`  environment variable. Each folder holds a different tool:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								| Folder                                    | Command-line Tool |
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								|:------------------------------------------|:------------------|
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								| `%ANDROID_HOME%\emulator`                  | `emulator`         |
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								| `%ANDROID_HOME%\cmdline-tools\latest\bin`  | `avdmanager`       |
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								| `%ANDROID_HOME%\platform-tools`            | `adb`              |
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  < / TabItem > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								< / Tabs >  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-12-05 03:46:54 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								:::
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-09-05 18:04:23 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								< / details >  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								4) While the Android emulator is open, start the application:
							 
						 
					
						
							
								
									
										
										
										
											2023-06-01 04:41:12 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```bash
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								flutter run
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-04-08 04:47:04 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								< details >  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  < summary > < b > If emulator is not detected< / b >  (click to show)< / summary > 
							 
						 
					
						
							
								
									
										
										
										
											2023-09-05 18:04:23 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								In some test runs, `flutter run`  did not automatically detect the emulator.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Run `flutter -v -d sheetjs run`  and the command will fail. Inspect the output:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```text title="Command output"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								// highlight-next-line
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								[   +6 ms] No supported devices found with name or id matching 'sheetjs'.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								[        ] The following devices were found:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								...
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								// highlight-next-line
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								[  +26 ms] sdk gphone64 arm64 (mobile) • emulator-5554 • android-arm64  • Android 13 (API 33) (emulator)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								[        ] macOS (desktop)             • macos         • darwin-arm64   • macOS 13.5.1 22G90 darwin-arm64
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								...
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Search the output for `sheetjs` . After that line, search for the emulator list.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								One of the lines will correspond to the running emulator:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								[  +26 ms] sdk gphone64 arm64 (mobile) • emulator-5554 • android-arm64  • Android 13 (API 33) (emulator)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                         ^^^^^^^^^^^^^--- the second column is the name
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								The second column is the device name. Assuming the name is `emulator-5554` , run:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```bash
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								flutter -v -d emulator-5554 run
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								< / details >  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-08-18 20:39:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Once the app loads, stop the terminal process and close the simulator.
							 
						 
					
						
							
								
									
										
										
										
											2023-06-01 04:41:12 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								5) Install Flutter / Dart dependencies:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```bash
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								flutter pub add http csv flutter_js
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-08-12 05:40:33 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								:::info pass
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-12-22 04:47:57 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								The command may fail in Windows with the following message:
							 
						 
					
						
							
								
									
										
										
										
											2024-08-12 05:40:33 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								< pre  { . . . r } >  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Building with plugins requires symlink support.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Please enable Developer Mode in your system settings. Run
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{`  `}start ms-settings:developers
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								to open settings.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								< / pre >  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								As stated, "Developer Mode" must be enabled:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								1) Run `start ms-settings:developers` 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								2) In the panel, enable "Developer Mode" and click "Yes" in the popup.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								3) Reinstall dependencies:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```bash
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								flutter pub add http csv flutter_js
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								:::
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-06-01 04:41:12 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								6) Open `pubspec.yaml`  with a text editor. Search for the line that starts with
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								`flutter:`  (no whitespace) and add the highlighted lines: 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```yaml title="pubspec.yaml"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# The following section is specific to Flutter packages.
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								flutter:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								// highlight-start
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  assets:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    -  scripts/xlsx.full.min.js
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    -  scripts/shim.min.js
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								// highlight-end
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								7) Download dependencies to the `scripts`  folder:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								< CodeBlock  language = "bash" > {`\ 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								mkdir -p scripts
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								cd scripts
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								curl -LO https://cdn.sheetjs.com/xlsx-${current}/package/dist/xlsx.full.min.js
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								curl -LO https://cdn.sheetjs.com/xlsx-${current}/package/dist/shim.min.js
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								cd ..`}
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								< / CodeBlock >  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-08-12 05:40:33 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								:::caution pass
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								PowerShell `curl`  is incompatible with the official `curl`  program. The command
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								may fail with a parameter error:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Invoke-WebRequest : A parameter cannot be found that matches parameter name 'LO'.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								`curl.exe`  must be used instead: 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								< CodeBlock  language = "bash" > {`\ 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								mkdir -p scripts
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								cd scripts
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								curl.exe -LO https://cdn.sheetjs.com/xlsx-${current}/package/dist/xlsx.full.min.js
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								curl.exe -LO https://cdn.sheetjs.com/xlsx-${current}/package/dist/shim.min.js
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								cd ..`}
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								< / CodeBlock >  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								:::
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-06-01 04:41:12 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								8) Download [`main.dart` ](pathname:///flutter/main.dart ) to `lib/main.dart` :
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```bash
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								curl -L -o lib/main.dart https://docs.sheetjs.com/flutter/main.dart
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-08-12 05:40:33 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								:::caution pass
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								PowerShell `curl`  is incompatible with the official `curl`  program. The command
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								may fail with a parameter error:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Invoke-WebRequest : A parameter cannot be found that matches parameter name 'L'.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								`curl.exe`  must be used instead: 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```bash
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								curl.exe -L -o lib/main.dart https://docs.sheetjs.com/flutter/main.dart
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								:::
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-08-18 20:39:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								### Android
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-09-05 18:04:23 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								9) Start the Android emulator using the same instructions as Step 3.
							 
						 
					
						
							
								
									
										
										
										
											2023-08-18 20:39:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-09-05 18:04:23 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								10) Launch the app:
							 
						 
					
						
							
								
									
										
										
										
											2023-06-01 04:41:12 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```bash
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								flutter run
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-04-26 04:16:13 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								The app fetches https://docs.sheetjs.com/pres.numbers, parses, converts data to
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								an array of arrays, and presents the data in a Flutter `Table`  widget.
							 
						 
					
						
							
								
									
										
										
										
											2023-08-18 20:39:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-08-12 05:40:33 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								< details >  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  < summary > < b > If emulator is not detected< / b >  (click to show)< / summary > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								In some test runs, `flutter run`  did not automatically detect the emulator.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Run `flutter -v -d sheetjs run`  and the command will fail. Inspect the output:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```text title="Command output"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								// highlight-next-line
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								[   +6 ms] No supported devices found with name or id matching 'sheetjs'.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								[        ] The following devices were found:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								...
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								// highlight-next-line
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								[  +26 ms] sdk gphone64 arm64 (mobile) • emulator-5554 • android-arm64  • Android 13 (API 33) (emulator)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								[        ] macOS (desktop)             • macos         • darwin-arm64   • macOS 13.5.1 22G90 darwin-arm64
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								...
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Search the output for `sheetjs` . After that line, search for the emulator list.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								One of the lines will correspond to the running emulator:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								[  +26 ms] sdk gphone64 arm64 (mobile) • emulator-5554 • android-arm64  • Android 13 (API 33) (emulator)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                         ^^^^^^^^^^^^^--- the second column is the name
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								The second column is the device name. Assuming the name is `emulator-5554` , run:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```bash
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								flutter -v -d emulator-5554 run
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								< / details >  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2025-05-07 00:21:41 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								:::caution pass
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								In some test runs on low-power devices, it took 20 seconds for the app to fetch
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								and display data!
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								:::
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2025-04-01 02:57:45 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								:::info Troubleshooting
							 
						 
					
						
							
								
									
										
										
										
											2023-08-18 20:39:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-06-09 21:48:23 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								In some demo runs, the build failed with an Android SDK error:
							 
						 
					
						
							
								
									
										
										
										
											2023-08-18 20:39:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								│ The plugin flutter_js requires a higher Android SDK version.                      │
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								│ Fix this issue by adding the following to the file /.../android/app/build.gradle: │
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								│ android {                                                                         │
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								│   defaultConfig {                                                                 │
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								│     minSdkVersion 21                                                              │
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								│   }                                                                               │
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								│ }                                                                                 │
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								This was fixed by editing `android/app/build.gradle` .
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Searching for `minSdkVersion`  should reveal the following line:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```text title="android\app\build.gradle"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        minSdkVersion flutter.minSdkVersion
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								`flutter.minSdkVersion`  should be replaced with `21` : 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-09-05 18:04:23 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								```text title="android\app\build.gradle"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        minSdkVersion 21
							 
						 
					
						
							
								
									
										
										
										
											2023-08-18 20:39:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2025-04-01 02:57:45 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								---
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								In some demo runs, the build failed with an Android NDK error:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Your project is configured with Android NDK 26.3.11579264, but the following plugin(s) depend on a different Android NDK version:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								-  flutter_js requires Android NDK 27.0.12077973 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Fix this issue by using the highest Android NDK version (they are backward compatible).
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Add the following to /.../android/app/build.gradle.kts:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    android {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        ndkVersion = "27.0.12077973"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        ...
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								This was fixed by editing `android/app/build.gradle.kts` .
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Searching for `ndkVersion`  should reveal the following line:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```text title="android\app\build.gradle.kts"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ndkVersion = flutter.ndkVersion
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								`flutter.ndkVersion`  should be replaced with `27.0.12077973` : 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```text title="android\app\build.gradle.kts"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ndkVersion = "27.0.12077973"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								---
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								In some demo runs, the build failed with an Android namespace error:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								A problem occurred configuring project ':flutter_js'.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								>  Could not create an instance of type com.android.build.api.variant.impl.LibraryVariantBuilderImpl.
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   >  Namespace not specified. Specify a namespace in the module's build file: /Users/sheetjs/.pub-cache/hosted/pub.dev/flutter_js-0.8.2/android/build.gradle. See https://d.android.com/r/tools/upgrade-assistant/set-namespace for information about setting the namespace.
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								This affects `flutter_js`  version `0.8.2` .
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								The file (`flutter_js-0.8.2/android/build.gradle`) should be manually edited. In
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								the `android`  block, add a `namespace`  field:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```text title="cached flutter_js android/build.gradle (add highlighted line)"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								android {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								// highlight-next-line
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    namespace "io.abner.flutter_js"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-08-18 20:39:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								:::
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-09-05 18:04:23 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								11) Close the Android emulator.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								### iOS
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								12) Start the iOS simulator.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								13) Launch the app:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```bash
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								flutter run
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-04-26 04:16:13 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								The app fetches https://docs.sheetjs.com/pres.numbers, parses, converts data to
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								an array of arrays, and presents the data in a Flutter `Table`  widget.
							 
						 
					
						
							
								
									
										
										
										
											2023-09-05 18:04:23 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-12-05 03:46:54 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								### Android Device
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								14) Connect an Android device using a USB cable.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								If the device asks to allow USB debugging, tap "Allow".
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								15) Verify that `flutter`  can find the device:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```bash
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								flutter devices
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								The list should include the device:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
									
										
										
										
											2024-06-09 21:48:23 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  SheetJS (mobile) • 726272627262726272 • android-arm64 • Android 11 (API 30)
							 
						 
					
						
							
								
									
										
										
										
											2023-12-05 03:46:54 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  ^^^^^^^--- the first column is the name
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								16) Build an APK:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```bash
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								flutter build apk --release
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2025-04-01 02:57:45 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								:::info Troubleshooting
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								In some demo runs, the build failed with an Android resource error:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Execution failed for task ':flutter_js:verifyReleaseResources'.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								>  A failure occurred while executing com.android.build.gradle.tasks.VerifyLibraryResourcesTask$Action
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   >  Android resource linking failed
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     ERROR: /private/tmp/sheetjs_flutter/build/flutter_js/intermediates/merged_res/release/mergeReleaseResources/values/values.xml:194: AAPT: error: resource android:attr/lStar not found.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								The file (`flutter_js-0.8.2/android/build.gradle`) should be manually edited. In
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								the `android`  block, force the `compileSdkVersion`  to be `31` :
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```text title="cached flutter_js android/build.gradle (add highlighted line)"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								android {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								// highlight-next-line
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    compileSdkVersion 31
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								:::
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-12-05 03:46:54 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								17) Install on the Android device:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```bash
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								flutter install
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-06-09 21:48:23 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								:::note pass
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								The script may ask for a device:
							 
						 
					
						
							
								
									
										
										
										
											2023-12-05 03:46:54 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								[1]: SheetJS (1234567890)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								[2]: iPhone 15 Pro Max (12345678-9ABC-DEF0-1234-567890ABCDEF)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								[3]: macOS (macos)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								[4]: Chrome (chrome)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Please choose one (or "q" to quit):
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Select the number corresponding to the device.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-06-09 21:48:23 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								:::
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								18) Launch the installed `sheetjs_flutter`  app on the device.
							 
						 
					
						
							
								
									
										
										
										
											2023-12-05 03:46:54 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								:::caution pass
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								The app may take 30 seconds to load the content.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								**There are known bugs in the Dart HTTP client in Android 12[^9].**
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								:::
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								### iOS Device
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								19) Follow the official "Deploy to physical iOS devices" instructions[^10]
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								20) Connect the iOS device and verify that `flutter`  can find the device:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```bash
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								flutter devices
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								The list should include the device:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
									
										
										
										
											2024-06-09 21:48:23 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  SheetPad (mobile) • 00000000-0000000000000000 • ios • iOS 15.1 19B74
							 
						 
					
						
							
								
									
										
										
										
											2023-12-05 03:46:54 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  ^^^^^^^^--- the first column is the name
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								21) Run the program on the device:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```bash
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								flutter run -d SheetPad
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-06-09 21:48:23 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								In debug mode, "Flutter tools" will attempt to connect to the running app. The
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								device will ask for permission:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								>  "Sheetjs Flutter" would like to find and connect to devices on your local network.
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Tap "OK" to continue.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2025-04-01 02:57:45 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								:::info pass
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2025-05-27 22:50:10 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								In some test runs, the app requested for local network access:
							 
						 
					
						
							
								
									
										
										
										
											2025-04-01 02:57:45 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								>  "Sheetjs Flutter" would like to find and connect to devices on your local network.
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Local network access is not required for the demo. Select "Don't Allow".
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								:::
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-06-09 21:48:23 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								:::caution pass
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								When this demo was last tested, the build failed with an error:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```text
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Could not build the precompiled application for the device.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Error (Xcode): No profiles for 'com.example.sheetjsFlutter' were found: Xcode couldn't find any iOS App Development provisioning profiles matching 'com.example.sheetjsFlutter'. Automatic signing is disabled and unable to generate a profile. To enable automatic signing, pass -allowProvisioningUpdates to xcodebuild.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								The message includes a hint:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Verify that the Bundle Identifier in your project is your signing id in Xcode
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  open ios/Runner.xcworkspace
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Open the workspace and select the "Runner" project in the Navigator. In the main
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								pane, select "Signing &  Capabilities" and ensure a Team is selected. From
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								the menu bar, select "Product" > "Run" to run the app.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								:::
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								:::info pass
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								If there is an "Untrusted Developer" error, the certificate must be trusted on
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								the device. The following steps were verified in iOS 15.1:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								1) Open the "Settings" app on the device
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								In the "APPS FROM DEVELOPER" section of the new screen, "Sheetjs Flutter" should
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								be displayed. If it is missing, tap the "< " button near the top of the screen
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								and select a different certificate from the list.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								2) Select "General" > "VPN &  Device Management".
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								3) In the "DEVELOPER APP" section, tap the certificate that is "Not Trusted".
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								4) After confirming "Sheetjs Flutter" is in the list, tap the "Trust" button and
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								tap "Trust" in the popup.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								:::
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-04-08 04:47:04 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								[^1]: https://dart.dev/ is the official site for the Dart Programming Language.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								[^2]: https://flutter.dev/ is the official site for the Flutter Framework.
							 
						 
					
						
							
								
									
										
										
										
											2023-08-18 20:39:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								[^3]: [The `flutter_js` package ](https://pub.dev/packages/flutter_js ) is hosted on the Dart package repository.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								[^4]: See [the dedicated "Swift + JavaScriptCore" demo ](/docs/demos/engines/jsc ) for more details.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								[^5]: See [the dedicated "C + QuickJS" demo ](/docs/demos/engines/quickjs ) for more details.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								[^6]: See [`read` in "Reading Files" ](/docs/api/parse-options )
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								[^7]: See [`sheet_to_csv` in "CSV and Text" ](/docs/api/utilities/csv#delimiter-separated-output )
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								[^8]: See [the Flutter Installation Instructions ](https://docs.flutter.dev/get-started/install )
							 
						 
					
						
							
								
									
										
										
										
											2023-12-05 03:46:54 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								[^9]: For example, [Issue 836 in the `http` repository ](https://github.com/dart-lang/http/issues/836 ) mentions that API calls may take 10+ seconds. This is an issue in Dart + Flutter.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								[^10]: See ["Deploy to physical iOS devices" ](https://docs.flutter.dev/get-started/install/macos?tab=ios15#deploy-to-physical-ios-devices ) in the Flutter documentation