├── .gitattributes
├── .gitignore
├── .metadata
├── LICENSE
├── README.md
├── analysis_options.yaml
├── android
├── .gitignore
├── app
│ ├── build.gradle
│ └── src
│ │ ├── debug
│ │ └── AndroidManifest.xml
│ │ ├── main
│ │ ├── AndroidManifest.xml
│ │ ├── kotlin
│ │ │ └── dev
│ │ │ │ └── usama
│ │ │ │ └── flutter_trading_app
│ │ │ │ └── MainActivity.kt
│ │ └── res
│ │ │ ├── drawable-v21
│ │ │ └── launch_background.xml
│ │ │ ├── drawable
│ │ │ └── launch_background.xml
│ │ │ ├── mipmap-hdpi
│ │ │ └── ic_launcher.png
│ │ │ ├── mipmap-mdpi
│ │ │ └── ic_launcher.png
│ │ │ ├── mipmap-xhdpi
│ │ │ └── ic_launcher.png
│ │ │ ├── mipmap-xxhdpi
│ │ │ └── ic_launcher.png
│ │ │ ├── mipmap-xxxhdpi
│ │ │ └── ic_launcher.png
│ │ │ ├── values-night
│ │ │ └── styles.xml
│ │ │ └── values
│ │ │ └── styles.xml
│ │ └── profile
│ │ └── AndroidManifest.xml
├── build.gradle
├── gradle.properties
├── gradle
│ └── wrapper
│ │ └── gradle-wrapper.properties
└── settings.gradle
├── build.sh
├── docs
├── .last_build_id
├── assets
│ ├── AssetManifest.json
│ ├── FontManifest.json
│ ├── NOTICES
│ ├── fonts
│ │ └── MaterialIcons-Regular.otf
│ ├── packages
│ │ └── cupertino_icons
│ │ │ └── assets
│ │ │ └── CupertinoIcons.ttf
│ └── shaders
│ │ └── ink_sparkle.frag
├── canvaskit
│ ├── canvaskit.js
│ ├── canvaskit.wasm
│ └── profiling
│ │ ├── canvaskit.js
│ │ └── canvaskit.wasm
├── favicon.png
├── flutter.js
├── flutter_service_worker.js
├── icons
│ ├── Icon-192.png
│ ├── Icon-512.png
│ ├── Icon-maskable-192.png
│ └── Icon-maskable-512.png
├── index.html
├── main.dart.js
├── manifest.json
└── version.json
├── ios
├── .gitignore
├── Flutter
│ ├── AppFrameworkInfo.plist
│ ├── Debug.xcconfig
│ └── Release.xcconfig
├── Runner.xcodeproj
│ ├── project.pbxproj
│ ├── project.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ └── xcshareddata
│ │ │ ├── IDEWorkspaceChecks.plist
│ │ │ └── WorkspaceSettings.xcsettings
│ └── xcshareddata
│ │ └── xcschemes
│ │ └── Runner.xcscheme
├── Runner.xcworkspace
│ ├── contents.xcworkspacedata
│ └── xcshareddata
│ │ ├── IDEWorkspaceChecks.plist
│ │ └── WorkspaceSettings.xcsettings
└── Runner
│ ├── AppDelegate.swift
│ ├── Assets.xcassets
│ ├── AppIcon.appiconset
│ │ ├── Contents.json
│ │ ├── Icon-App-1024x1024@1x.png
│ │ ├── Icon-App-20x20@1x.png
│ │ ├── Icon-App-20x20@2x.png
│ │ ├── Icon-App-20x20@3x.png
│ │ ├── Icon-App-29x29@1x.png
│ │ ├── Icon-App-29x29@2x.png
│ │ ├── Icon-App-29x29@3x.png
│ │ ├── Icon-App-40x40@1x.png
│ │ ├── Icon-App-40x40@2x.png
│ │ ├── Icon-App-40x40@3x.png
│ │ ├── Icon-App-60x60@2x.png
│ │ ├── Icon-App-60x60@3x.png
│ │ ├── Icon-App-76x76@1x.png
│ │ ├── Icon-App-76x76@2x.png
│ │ └── Icon-App-83.5x83.5@2x.png
│ └── LaunchImage.imageset
│ │ ├── Contents.json
│ │ ├── LaunchImage.png
│ │ ├── LaunchImage@2x.png
│ │ ├── LaunchImage@3x.png
│ │ └── README.md
│ ├── Base.lproj
│ ├── LaunchScreen.storyboard
│ └── Main.storyboard
│ ├── Info.plist
│ └── Runner-Bridging-Header.h
├── lib
├── candle_ticker_model.dart
├── candlestick
│ ├── candlesticks.dart
│ ├── constant
│ │ └── view_constants.dart
│ ├── models
│ │ ├── candle.dart
│ │ ├── candle_sticks_style.dart
│ │ ├── indicator.dart
│ │ └── main_window_indicator.dart
│ ├── utils
│ │ ├── helper_functions.dart
│ │ └── indicators
│ │ │ ├── bollinger_bands_indicator.dart
│ │ │ ├── moving_average_indicator.dart
│ │ │ └── weighted_moving_average.dart
│ └── widgets
│ │ ├── candle_info_text.dart
│ │ ├── candle_stick_widget.dart
│ │ ├── dash_line.dart
│ │ ├── desktop_chart.dart
│ │ ├── mainwindow_indicator_widget.dart
│ │ ├── mobile_chart.dart
│ │ ├── price_column.dart
│ │ ├── time_row.dart
│ │ ├── toolbar.dart
│ │ ├── toolbar_action.dart
│ │ ├── top_panel.dart
│ │ └── volume_widget.dart
├── data.dart
├── main.dart
└── repository.dart
├── pubspec.lock
├── pubspec.yaml
├── tempCodeRunnerFile.sh
├── test
└── widget_test.dart
└── web
├── favicon.png
├── icons
├── Icon-192.png
├── Icon-512.png
├── Icon-maskable-192.png
└── Icon-maskable-512.png
├── index.html
└── manifest.json
/.gitattributes:
--------------------------------------------------------------------------------
1 | # Auto detect text files and perform LF normalization
2 | * text=auto
3 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Miscellaneous
2 | *.class
3 | *.log
4 | *.pyc
5 | *.swp
6 | .DS_Store
7 | .atom/
8 | .buildlog/
9 | .history
10 | .svn/
11 | migrate_working_dir/
12 |
13 | # IntelliJ related
14 | *.iml
15 | *.ipr
16 | *.iws
17 | .idea/
18 |
19 | # The .vscode folder contains launch configuration and tasks you configure in
20 | # VS Code which you may wish to be included in version control, so this line
21 | # is commented out by default.
22 | #.vscode/
23 |
24 | # Flutter/Dart/Pub related
25 | **/doc/api/
26 | **/ios/Flutter/.last_build_id
27 | .dart_tool/
28 | .flutter-plugins
29 | .flutter-plugins-dependencies
30 | .packages
31 | .pub-cache/
32 | .pub/
33 | /build/
34 |
35 | # Symbolication related
36 | app.*.symbols
37 |
38 | # Obfuscation related
39 | app.*.map.json
40 |
41 | # Android Studio will place build artifacts here
42 | /android/app/debug
43 | /android/app/profile
44 | /android/app/release
45 |
--------------------------------------------------------------------------------
/.metadata:
--------------------------------------------------------------------------------
1 | # This file tracks properties of this Flutter project.
2 | # Used by Flutter tool to assess capabilities and perform upgrades etc.
3 | #
4 | # This file should be version controlled.
5 |
6 | version:
7 | revision: e3c29ec00c9c825c891d75054c63fcc46454dca1
8 | channel: stable
9 |
10 | project_type: app
11 |
12 | # Tracks metadata for the flutter migrate command
13 | migration:
14 | platforms:
15 | - platform: root
16 | create_revision: e3c29ec00c9c825c891d75054c63fcc46454dca1
17 | base_revision: e3c29ec00c9c825c891d75054c63fcc46454dca1
18 | - platform: android
19 | create_revision: e3c29ec00c9c825c891d75054c63fcc46454dca1
20 | base_revision: e3c29ec00c9c825c891d75054c63fcc46454dca1
21 | - platform: ios
22 | create_revision: e3c29ec00c9c825c891d75054c63fcc46454dca1
23 | base_revision: e3c29ec00c9c825c891d75054c63fcc46454dca1
24 | - platform: web
25 | create_revision: e3c29ec00c9c825c891d75054c63fcc46454dca1
26 | base_revision: e3c29ec00c9c825c891d75054c63fcc46454dca1
27 |
28 | # User provided section
29 |
30 | # List of Local paths (relative to this file) that should be
31 | # ignored by the migrate tool.
32 | #
33 | # Files that are not part of the templates will be ignored by default.
34 | unmanaged_files:
35 | - 'lib/main.dart'
36 | - 'ios/Runner.xcodeproj/project.pbxproj'
37 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2022 Usama Sarwar
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Flutter Trading App `v1.0.0`
2 |
3 | 🔗 Visit [Live Web App](https://usamasarwar.github.io/flutter-trading-app)
4 |
5 | ## Screenshoots
6 |
7 |
8 |
9 | > Tip: You can switch currencies by tapping on the currency Symbols.
10 |
11 |
12 |
13 | > Tip: You can change your desired duration. i.e. 1m, 3m or 1d etc.
14 |
15 |
16 |
17 | > Tip: You can scroll up and down to zoom-in and zoom-out.
18 |
19 | ## Documentation
20 |
21 | ### Establishing Connection with Binance via Web Sockets
22 | ```dart
23 | WebSocketChannel establishConnection(String symbol, String interval) {
24 | final channel = WebSocketChannel.connect(
25 | Uri.parse('wss://stream.binance.com:9443/ws'),
26 | );
27 | channel.sink.add(
28 | jsonEncode(
29 | {
30 | "method": "SUBSCRIBE",
31 | "params": ["$symbol@kline_$interval"],
32 | "id": 1
33 | },
34 | ),
35 | );
36 | return channel;
37 | }
38 | ```
39 |
40 | ### API Call for fetching Candles
41 | ```dart
42 | Future> fetchCandles(
43 | {required String symbol, required String interval, int? endTime}) async {
44 | final uri = Uri.parse(
45 | "https://api.binance.com/api/v3/klines?symbol=$symbol&interval=$interval${endTime != null ? "&endTime=$endTime" : ""}");
46 | final res = await http.get(uri);
47 | return (jsonDecode(res.body) as List)
48 | .map((e) => Candle.fromJson(e))
49 | .toList()
50 | .reversed
51 | .toList();
52 | }
53 | ```
54 |
55 | ### API Calls for fetching Symbols
56 | ```dart
57 | Future> fetchSymbols() async {
58 | final uri = Uri.parse("https://api.binance.com/api/v3/ticker/price");
59 | final res = await http.get(uri);
60 | return (jsonDecode(res.body) as List)
61 | .map((e) => e["symbol"] as String)
62 | .toList();
63 | }
64 | ```
65 |
66 | ### Dependencies
67 | ```yaml
68 | dependencies:
69 | # Flutter SDK
70 | flutter:
71 | sdk: flutter
72 | # Dependency for Icons
73 | cupertino_icons: ^1.0.2
74 | # Dependency for HTTP Calls
75 | http: ^0.13.3
76 | # Dependency for Web Socket Channels
77 | web_socket_channel: ^2.1.0
78 | ```
79 |
80 | ## Developer
81 | [Usama Sarwar](https://github.com/UsamaSarwar)
--------------------------------------------------------------------------------
/analysis_options.yaml:
--------------------------------------------------------------------------------
1 | # This file configures the analyzer, which statically analyzes Dart code to
2 | # check for errors, warnings, and lints.
3 | #
4 | # The issues identified by the analyzer are surfaced in the UI of Dart-enabled
5 | # IDEs (https://dart.dev/tools#ides-and-editors). The analyzer can also be
6 | # invoked from the command line by running `flutter analyze`.
7 |
8 | # The following line activates a set of recommended lints for Flutter apps,
9 | # packages, and plugins designed to encourage good coding practices.
10 | include: package:flutter_lints/flutter.yaml
11 |
12 | linter:
13 | # The lint rules applied to this project can be customized in the
14 | # section below to disable rules from the `package:flutter_lints/flutter.yaml`
15 | # included above or to enable additional rules. A list of all available lints
16 | # and their documentation is published at
17 | # https://dart-lang.github.io/linter/lints/index.html.
18 | #
19 | # Instead of disabling a lint rule for the entire project in the
20 | # section below, it can also be suppressed for a single line of code
21 | # or a specific dart file by using the `// ignore: name_of_lint` and
22 | # `// ignore_for_file: name_of_lint` syntax on the line or in the file
23 | # producing the lint.
24 | rules:
25 | # avoid_print: false # Uncomment to disable the `avoid_print` rule
26 | # prefer_single_quotes: true # Uncomment to enable the `prefer_single_quotes` rule
27 |
28 | # Additional information about this file can be found at
29 | # https://dart.dev/guides/language/analysis-options
30 |
--------------------------------------------------------------------------------
/android/.gitignore:
--------------------------------------------------------------------------------
1 | gradle-wrapper.jar
2 | /.gradle
3 | /captures/
4 | /gradlew
5 | /gradlew.bat
6 | /local.properties
7 | GeneratedPluginRegistrant.java
8 |
9 | # Remember to never publicly share your keystore.
10 | # See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app
11 | key.properties
12 | **/*.keystore
13 | **/*.jks
14 |
--------------------------------------------------------------------------------
/android/app/build.gradle:
--------------------------------------------------------------------------------
1 | def localProperties = new Properties()
2 | def localPropertiesFile = rootProject.file('local.properties')
3 | if (localPropertiesFile.exists()) {
4 | localPropertiesFile.withReader('UTF-8') { reader ->
5 | localProperties.load(reader)
6 | }
7 | }
8 |
9 | def flutterRoot = localProperties.getProperty('flutter.sdk')
10 | if (flutterRoot == null) {
11 | throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.")
12 | }
13 |
14 | def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
15 | if (flutterVersionCode == null) {
16 | flutterVersionCode = '1'
17 | }
18 |
19 | def flutterVersionName = localProperties.getProperty('flutter.versionName')
20 | if (flutterVersionName == null) {
21 | flutterVersionName = '1.0'
22 | }
23 |
24 | apply plugin: 'com.android.application'
25 | apply plugin: 'kotlin-android'
26 | apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
27 |
28 | android {
29 | compileSdkVersion flutter.compileSdkVersion
30 | ndkVersion flutter.ndkVersion
31 |
32 | compileOptions {
33 | sourceCompatibility JavaVersion.VERSION_1_8
34 | targetCompatibility JavaVersion.VERSION_1_8
35 | }
36 |
37 | kotlinOptions {
38 | jvmTarget = '1.8'
39 | }
40 |
41 | sourceSets {
42 | main.java.srcDirs += 'src/main/kotlin'
43 | }
44 |
45 | defaultConfig {
46 | // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
47 | applicationId "dev.usama.flutter_trading_app"
48 | // You can update the following values to match your application needs.
49 | // For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-build-configuration.
50 | minSdkVersion flutter.minSdkVersion
51 | targetSdkVersion flutter.targetSdkVersion
52 | versionCode flutterVersionCode.toInteger()
53 | versionName flutterVersionName
54 | }
55 |
56 | buildTypes {
57 | release {
58 | // TODO: Add your own signing config for the release build.
59 | // Signing with the debug keys for now, so `flutter run --release` works.
60 | signingConfig signingConfigs.debug
61 | }
62 | }
63 | }
64 |
65 | flutter {
66 | source '../..'
67 | }
68 |
69 | dependencies {
70 | implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
71 | }
72 |
--------------------------------------------------------------------------------
/android/app/src/debug/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/android/app/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
7 |
15 |
19 |
23 |
24 |
25 |
26 |
27 |
28 |
30 |
33 |
34 |
35 |
--------------------------------------------------------------------------------
/android/app/src/main/kotlin/dev/usama/flutter_trading_app/MainActivity.kt:
--------------------------------------------------------------------------------
1 | package dev.usama.flutter_trading_app
2 |
3 | import io.flutter.embedding.android.FlutterActivity
4 |
5 | class MainActivity: FlutterActivity() {
6 | }
7 |
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-v21/launch_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
12 |
13 |
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable/launch_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
12 |
13 |
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/UsamaSarwar/flutter-trading-app/56e141b62d95bd7a7f69bd916b49eabc746fc82d/android/app/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/UsamaSarwar/flutter-trading-app/56e141b62d95bd7a7f69bd916b49eabc746fc82d/android/app/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/UsamaSarwar/flutter-trading-app/56e141b62d95bd7a7f69bd916b49eabc746fc82d/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/UsamaSarwar/flutter-trading-app/56e141b62d95bd7a7f69bd916b49eabc746fc82d/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/UsamaSarwar/flutter-trading-app/56e141b62d95bd7a7f69bd916b49eabc746fc82d/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/main/res/values-night/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
15 |
18 |
19 |
--------------------------------------------------------------------------------
/android/app/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
15 |
18 |
19 |
--------------------------------------------------------------------------------
/android/app/src/profile/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/android/build.gradle:
--------------------------------------------------------------------------------
1 | buildscript {
2 | ext.kotlin_version = '1.6.10'
3 | repositories {
4 | google()
5 | mavenCentral()
6 | }
7 |
8 | dependencies {
9 | classpath 'com.android.tools.build:gradle:7.1.2'
10 | classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
11 | }
12 | }
13 |
14 | allprojects {
15 | repositories {
16 | google()
17 | mavenCentral()
18 | }
19 | }
20 |
21 | rootProject.buildDir = '../build'
22 | subprojects {
23 | project.buildDir = "${rootProject.buildDir}/${project.name}"
24 | }
25 | subprojects {
26 | project.evaluationDependsOn(':app')
27 | }
28 |
29 | task clean(type: Delete) {
30 | delete rootProject.buildDir
31 | }
32 |
--------------------------------------------------------------------------------
/android/gradle.properties:
--------------------------------------------------------------------------------
1 | org.gradle.jvmargs=-Xmx1536M
2 | android.useAndroidX=true
3 | android.enableJetifier=true
4 |
--------------------------------------------------------------------------------
/android/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | distributionBase=GRADLE_USER_HOME
2 | distributionPath=wrapper/dists
3 | zipStoreBase=GRADLE_USER_HOME
4 | zipStorePath=wrapper/dists
5 | distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-all.zip
6 |
--------------------------------------------------------------------------------
/android/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app'
2 |
3 | def localPropertiesFile = new File(rootProject.projectDir, "local.properties")
4 | def properties = new Properties()
5 |
6 | assert localPropertiesFile.exists()
7 | localPropertiesFile.withReader("UTF-8") { reader -> properties.load(reader) }
8 |
9 | def flutterSdkPath = properties.getProperty("flutter.sdk")
10 | assert flutterSdkPath != null, "flutter.sdk not set in local.properties"
11 | apply from: "$flutterSdkPath/packages/flutter_tools/gradle/app_plugin_loader.gradle"
12 |
--------------------------------------------------------------------------------
/build.sh:
--------------------------------------------------------------------------------
1 | flutter clean
2 | flutter pub get
3 | flutter build web --web-renderer html
4 |
5 | # Remove old docs
6 | rm -rf docs/*
7 |
8 | # Move build/web/ files to docs/
9 | cp -rf build/web/* docs/
10 |
11 | # Remove build/web/
12 | # rm -rf build/web
13 |
14 | # Remove build/
15 | # rm -rf build
16 |
17 |
18 | # cp -r lib/ docs/
--------------------------------------------------------------------------------
/docs/.last_build_id:
--------------------------------------------------------------------------------
1 | ae4e347ea81f31d1ae78ef66cf016a58
--------------------------------------------------------------------------------
/docs/assets/AssetManifest.json:
--------------------------------------------------------------------------------
1 | {"packages/cupertino_icons/assets/CupertinoIcons.ttf":["packages/cupertino_icons/assets/CupertinoIcons.ttf"]}
--------------------------------------------------------------------------------
/docs/assets/FontManifest.json:
--------------------------------------------------------------------------------
1 | [{"family":"MaterialIcons","fonts":[{"asset":"fonts/MaterialIcons-Regular.otf"}]},{"family":"packages/cupertino_icons/CupertinoIcons","fonts":[{"asset":"packages/cupertino_icons/assets/CupertinoIcons.ttf"}]}]
--------------------------------------------------------------------------------
/docs/assets/fonts/MaterialIcons-Regular.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/UsamaSarwar/flutter-trading-app/56e141b62d95bd7a7f69bd916b49eabc746fc82d/docs/assets/fonts/MaterialIcons-Regular.otf
--------------------------------------------------------------------------------
/docs/assets/packages/cupertino_icons/assets/CupertinoIcons.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/UsamaSarwar/flutter-trading-app/56e141b62d95bd7a7f69bd916b49eabc746fc82d/docs/assets/packages/cupertino_icons/assets/CupertinoIcons.ttf
--------------------------------------------------------------------------------
/docs/assets/shaders/ink_sparkle.frag:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/UsamaSarwar/flutter-trading-app/56e141b62d95bd7a7f69bd916b49eabc746fc82d/docs/assets/shaders/ink_sparkle.frag
--------------------------------------------------------------------------------
/docs/canvaskit/canvaskit.wasm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/UsamaSarwar/flutter-trading-app/56e141b62d95bd7a7f69bd916b49eabc746fc82d/docs/canvaskit/canvaskit.wasm
--------------------------------------------------------------------------------
/docs/canvaskit/profiling/canvaskit.wasm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/UsamaSarwar/flutter-trading-app/56e141b62d95bd7a7f69bd916b49eabc746fc82d/docs/canvaskit/profiling/canvaskit.wasm
--------------------------------------------------------------------------------
/docs/favicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/UsamaSarwar/flutter-trading-app/56e141b62d95bd7a7f69bd916b49eabc746fc82d/docs/favicon.png
--------------------------------------------------------------------------------
/docs/flutter.js:
--------------------------------------------------------------------------------
1 | // Copyright 2014 The Flutter Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style license that can be
3 | // found in the LICENSE file.
4 |
5 | /**
6 | * This script installs service_worker.js to provide PWA functionality to
7 | * application. For more information, see:
8 | * https://developers.google.com/web/fundamentals/primers/service-workers
9 | */
10 |
11 | if (!_flutter) {
12 | var _flutter = {};
13 | }
14 | _flutter.loader = null;
15 |
16 | (function() {
17 | "use strict";
18 | class FlutterLoader {
19 | /**
20 | * Creates a FlutterLoader, and initializes its instance methods.
21 | */
22 | constructor() {
23 | // TODO: Move the below methods to "#private" once supported by all the browsers
24 | // we support. In the meantime, we use the "revealing module" pattern.
25 |
26 | // Watchdog to prevent injecting the main entrypoint multiple times.
27 | this._scriptLoaded = null;
28 |
29 | // Resolver for the pending promise returned by loadEntrypoint.
30 | this._didCreateEngineInitializerResolve = null;
31 |
32 | // Called by Flutter web.
33 | // Bound to `this` now, so "this" is preserved across JS <-> Flutter jumps.
34 | this.didCreateEngineInitializer = this._didCreateEngineInitializer.bind(this);
35 | }
36 |
37 | /**
38 | * Initializes the main.dart.js with/without serviceWorker.
39 | * @param {*} options
40 | * @returns a Promise that will eventually resolve with an EngineInitializer,
41 | * or will be rejected with the error caused by the loader.
42 | */
43 | loadEntrypoint(options) {
44 | const {
45 | entrypointUrl = "main.dart.js",
46 | serviceWorker,
47 | } = (options || {});
48 | return this._loadWithServiceWorker(entrypointUrl, serviceWorker);
49 | }
50 |
51 | /**
52 | * Resolves the promise created by loadEntrypoint.
53 | * Called by Flutter through the public `didCreateEngineInitializer` method,
54 | * which is bound to the correct instance of the FlutterLoader on the page.
55 | * @param {*} engineInitializer
56 | */
57 | _didCreateEngineInitializer(engineInitializer) {
58 | if (typeof this._didCreateEngineInitializerResolve != "function") {
59 | console.warn("Do not call didCreateEngineInitializer by hand. Start with loadEntrypoint instead.");
60 | }
61 | this._didCreateEngineInitializerResolve(engineInitializer);
62 | // Remove the public method after it's done, so Flutter Web can hot restart.
63 | delete this.didCreateEngineInitializer;
64 | }
65 |
66 | _loadEntrypoint(entrypointUrl) {
67 | if (!this._scriptLoaded) {
68 | console.debug("Injecting
39 |
40 |
41 |
42 |
43 |
57 |
58 |