Push project

pull/1/head
Enzo 2 years ago
parent 3d283c6e43
commit bdda927d4a

119
.gitignore vendored

@ -0,0 +1,119 @@
# Miscellaneous
*.class
*.lock
*.log
*.pyc
*.sqlite
*.swp
.DS_Store
.atom/
.buildlog/
.history
.svn/
# IntelliJ related
*.iml
*.ipr
*.iws
.idea/
# Visual Studio Code related
.classpath
.project
.settings/
.vscode/
# Flutter repo-specific
/bin/cache/
/bin/internal/bootstrap.bat
/bin/internal/bootstrap.sh
/bin/mingit/
/dev/benchmarks/mega_gallery/
/dev/bots/.recipe_deps
/dev/bots/android_tools/
/dev/devicelab/ABresults*.json
/dev/docs/doc/
/dev/docs/flutter.docs.zip
/dev/docs/lib/
/dev/docs/pubspec.yaml
/dev/integration_tests/**/xcuserdata
/dev/integration_tests/**/Pods
/packages/flutter/coverage/
version
analysis_benchmark.json
# packages file containing multi-root paths
.packages.generated
# Flutter/Dart/Pub related
**/doc/api/
.dart_tool/
.flutter-plugins
.flutter-plugins-dependencies
**/generated_plugin_registrant.dart
.packages
.pub-cache/
.pub/
build/
flutter_*.png
linked_*.ds
unlinked.ds
unlinked_spec.ds
# Android related
**/android/**/gradle-wrapper.jar
**/android/.gradle
**/android/captures/
**/android/gradlew
**/android/gradlew.bat
**/android/local.properties
**/android/**/GeneratedPluginRegistrant.java
**/android/key.properties
*.jks
# iOS/XCode related
**/ios/**/*.mode1v3
**/ios/**/*.mode2v3
**/ios/**/*.moved-aside
**/ios/**/*.pbxuser
**/ios/**/*.perspectivev3
**/ios/**/*sync/
**/ios/**/.sconsign.dblite
**/ios/**/.tags*
**/ios/**/.vagrant/
**/ios/**/DerivedData/
**/ios/**/Icon?
**/ios/**/Pods/
**/ios/**/.symlinks/
**/ios/**/profile
**/ios/**/xcuserdata
**/ios/.generated/
**/ios/Flutter/.last_build_id
**/ios/Flutter/App.framework
**/ios/Flutter/Flutter.framework
**/ios/Flutter/Flutter.podspec
**/ios/Flutter/Generated.xcconfig
**/ios/Flutter/ephemeral
**/ios/Flutter/app.flx
**/ios/Flutter/app.zip
**/ios/Flutter/flutter_assets/
**/ios/Flutter/flutter_export_environment.sh
**/ios/ServiceDefinitions.json
**/ios/Runner/GeneratedPluginRegistrant.*
# macOS
**/macos/Flutter/GeneratedPluginRegistrant.swift
# Coverage
coverage/
# Symbols
app.*.symbols
# Exceptions to above rules.
!**/ios/**/default.mode1v3
!**/ios/**/default.mode2v3
!**/ios/**/default.pbxuser
!**/ios/**/default.perspectivev3
!/packages/flutter_tools/test/data/dart_dependencies_test/**/.packages
!/dev/ci/**/Gemfile.lock

@ -0,0 +1,45 @@
# This file tracks properties of this Flutter project.
# Used by Flutter tool to assess capabilities and perform upgrades etc.
#
# This file should be version controlled and should not be manually edited.
version:
revision: "6c4930c4ac86fb286f30e31d0ec8bffbcbb9953e"
channel: "stable"
project_type: app
# Tracks metadata for the flutter migrate command
migration:
platforms:
- platform: root
create_revision: 6c4930c4ac86fb286f30e31d0ec8bffbcbb9953e
base_revision: 6c4930c4ac86fb286f30e31d0ec8bffbcbb9953e
- platform: android
create_revision: 6c4930c4ac86fb286f30e31d0ec8bffbcbb9953e
base_revision: 6c4930c4ac86fb286f30e31d0ec8bffbcbb9953e
- platform: ios
create_revision: 6c4930c4ac86fb286f30e31d0ec8bffbcbb9953e
base_revision: 6c4930c4ac86fb286f30e31d0ec8bffbcbb9953e
- platform: linux
create_revision: 6c4930c4ac86fb286f30e31d0ec8bffbcbb9953e
base_revision: 6c4930c4ac86fb286f30e31d0ec8bffbcbb9953e
- platform: macos
create_revision: 6c4930c4ac86fb286f30e31d0ec8bffbcbb9953e
base_revision: 6c4930c4ac86fb286f30e31d0ec8bffbcbb9953e
- platform: web
create_revision: 6c4930c4ac86fb286f30e31d0ec8bffbcbb9953e
base_revision: 6c4930c4ac86fb286f30e31d0ec8bffbcbb9953e
- platform: windows
create_revision: 6c4930c4ac86fb286f30e31d0ec8bffbcbb9953e
base_revision: 6c4930c4ac86fb286f30e31d0ec8bffbcbb9953e
# User provided section
# List of Local paths (relative to this file) that should be
# ignored by the migrate tool.
#
# Files that are not part of the templates will be ignored by default.
unmanaged_files:
- 'lib/main.dart'
- 'ios/Runner.xcodeproj/project.pbxproj'

@ -0,0 +1,32 @@
ActivityDay,StepTotal
4/12/2016,13162
4/13/2016,10735
4/14/2016,10460
4/15/2016,9762
4/16/2016,12669
4/17/2016,9705
4/18/2016,13019
4/19/2016,15506
4/20/2016,10544
4/21/2016,9819
4/22/2016,12764
4/23/2016,14371
4/24/2016,10039
4/25/2016,15355
4/26/2016,13755
4/27/2016,18134
4/28/2016,13154
4/29/2016,11181
4/30/2016,14673
5/1/2016,10602
5/2/2016,14727
5/3/2016,15103
5/4/2016,11100
5/5/2016,14070
5/6/2016,12159
5/7/2016,11992
5/8/2016,10060
5/9/2016,12022
5/10/2016,12207
5/11/2016,12770
5/12/2016,0
1 ActivityDay StepTotal
2 4/12/2016 13162
3 4/13/2016 10735
4 4/14/2016 10460
5 4/15/2016 9762
6 4/16/2016 12669
7 4/17/2016 9705
8 4/18/2016 13019
9 4/19/2016 15506
10 4/20/2016 10544
11 4/21/2016 9819
12 4/22/2016 12764
13 4/23/2016 14371
14 4/24/2016 10039
15 4/25/2016 15355
16 4/26/2016 13755
17 4/27/2016 18134
18 4/28/2016 13154
19 4/29/2016 11181
20 4/30/2016 14673
21 5/1/2016 10602
22 5/2/2016 14727
23 5/3/2016 15103
24 5/4/2016 11100
25 5/5/2016 14070
26 5/6/2016 12159
27 5/7/2016 11992
28 5/8/2016 10060
29 5/9/2016 12022
30 5/10/2016 12207
31 5/11/2016 12770
32 5/12/2016 0

File diff suppressed because it is too large Load Diff

@ -0,0 +1,32 @@
ActivityDay,StepTotal
4/12/2016,8163
4/13/2016,7007
4/14/2016,9107
4/15/2016,1510
4/16/2016,5370
4/17/2016,6175
4/18/2016,10536
4/19/2016,2916
4/20/2016,4974
4/21/2016,6349
4/22/2016,4026
4/23/2016,8538
4/24/2016,6076
4/25/2016,6497
4/26/2016,2826
4/27/2016,8367
4/28/2016,2759
4/29/2016,2390
4/30/2016,6474
5/1/2016,36019
5/2/2016,7155
5/3/2016,2100
5/4/2016,2193
5/5/2016,2470
5/6/2016,1727
5/7/2016,2104
5/8/2016,3427
5/9/2016,1732
5/10/2016,2969
5/11/2016,3134
5/12/2016,2971
1 ActivityDay StepTotal
2 4/12/2016 8163
3 4/13/2016 7007
4 4/14/2016 9107
5 4/15/2016 1510
6 4/16/2016 5370
7 4/17/2016 6175
8 4/18/2016 10536
9 4/19/2016 2916
10 4/20/2016 4974
11 4/21/2016 6349
12 4/22/2016 4026
13 4/23/2016 8538
14 4/24/2016 6076
15 4/25/2016 6497
16 4/26/2016 2826
17 4/27/2016 8367
18 4/28/2016 2759
19 4/29/2016 2390
20 4/30/2016 6474
21 5/1/2016 36019
22 5/2/2016 7155
23 5/3/2016 2100
24 5/4/2016 2193
25 5/5/2016 2470
26 5/6/2016 1727
27 5/7/2016 2104
28 5/8/2016 3427
29 5/9/2016 1732
30 5/10/2016 2969
31 5/11/2016 3134
32 5/12/2016 2971

File diff suppressed because it is too large Load Diff

@ -0,0 +1,32 @@
ActivityDay,StepTotal
4/12/2016,11875
4/13/2016,12024
4/14/2016,10690
4/15/2016,11034
4/16/2016,10100
4/17/2016,15112
4/18/2016,14131
4/19/2016,11548
4/20/2016,15112
4/21/2016,12453
4/22/2016,12954
4/23/2016,6001
4/24/2016,13481
4/25/2016,11369
4/26/2016,10119
4/27/2016,10159
4/28/2016,10140
4/29/2016,10245
4/30/2016,18387
5/1/2016,10538
5/2/2016,10379
5/3/2016,12183
5/4/2016,11768
5/5/2016,11895
5/6/2016,10227
5/7/2016,6708
5/8/2016,3292
5/9/2016,13379
5/10/2016,12798
5/11/2016,13272
5/12/2016,9117
1 ActivityDay StepTotal
2 4/12/2016 11875
3 4/13/2016 12024
4 4/14/2016 10690
5 4/15/2016 11034
6 4/16/2016 10100
7 4/17/2016 15112
8 4/18/2016 14131
9 4/19/2016 11548
10 4/20/2016 15112
11 4/21/2016 12453
12 4/22/2016 12954
13 4/23/2016 6001
14 4/24/2016 13481
15 4/25/2016 11369
16 4/26/2016 10119
17 4/27/2016 10159
18 4/28/2016 10140
19 4/29/2016 10245
20 4/30/2016 18387
21 5/1/2016 10538
22 5/2/2016 10379
23 5/3/2016 12183
24 5/4/2016 11768
25 5/5/2016 11895
26 5/6/2016 10227
27 5/7/2016 6708
28 5/8/2016 3292
29 5/9/2016 13379
30 5/10/2016 12798
31 5/11/2016 13272
32 5/12/2016 9117

File diff suppressed because it is too large Load Diff

@ -0,0 +1,241 @@
Type,Local ID,Message,Field 0,Value 0,Units 0,Field 1,Value 1,Units 1,Field 2,Value 2,Units 2,Field 3,Value 3,Units 3,Field 4,Value 4,Units 4,Field 5,Value 5,Units 5,Field 6,Value 6,Units 6,Field 7,Value 7,Units 7,Field 8,Value 8,Units 8,Field 9,Value 9,Units 9,Field 10,Value 10,Units 10,Field 11,Value 11,Units 11,Field 12,Value 12,Units 12,Field 13,Value 13,Units 13,Field 14,Value 14,Units 14,Field 15,Value 15,Units 15,Field 16,Value 16,Units 16,Field 17,Value 17,Units 17,Field 18,Value 18,Units 18,Field 19,Value 19,Units 19,Field 20,Value 20,Units 20,Field 21,Value 21,Units 21,Field 22,Value 22,Units 22,Field 23,Value 23,Units 23,Field 24,Value 24,Units 24,Field 25,Value 25,Units 25,Field 26,Value 26,Units 26,Field 27,Value 27,Units 27,Field 28,Value 28,Units 28,Field 29,Value 29,Units 29,Field 30,Value 30,Units 30,Field 31,Value 31,Units 31
Definition,0,file_id,type,1,bytes,time_created,4,bytes,manufacturer,2,bytes,product,2,bytes,product_name,16,bytes
Data,0,file_id,type,4,,time_created,1699437676000,ms,manufacturer,23,,product,59,,product_name,Suunto Vertical,
Definition,0,developer_data_id,developer_data_index,1,bytes,application_id,16,bytes
Data,0,developer_data_id,developer_data_index,0,,application_id,83,
Definition,0,field_description,developer_data_index,1,bytes,field_definition_number,1,bytes,field_name,8,bytes,units,1,bytes,scale,1,bytes,fit_base_type_id,1,bytes
Data,0,field_description,developer_data_index,0,,field_definition_number,0,,field_name,feeling,,units,,,scale,1,,fit_base_type_id,0,
Definition,0,field_description,developer_data_index,1,bytes,field_definition_number,1,bytes,field_name,14,bytes,units,2,bytes,scale,1,bytes,fit_base_type_id,1,bytes
Data,0,field_description,developer_data_index,0,,field_definition_number,2,,field_name,recovery_time,,units,s,,scale,1,,fit_base_type_id,134,
Definition,0,field_description,developer_data_index,1,bytes,field_definition_number,1,bytes,field_name,10,bytes,units,5,bytes,scale,1,bytes,fit_base_type_id,1,bytes
Data,0,field_description,developer_data_index,0,,field_definition_number,4,,field_name,peak_epoc,,units,l/kg,,scale,10,,fit_base_type_id,132,
Definition,0,field_description,developer_data_index,1,bytes,field_definition_number,1,bytes,field_name,10,bytes,units,2,bytes,scale,1,bytes,fit_base_type_id,1,bytes
Data,0,field_description,developer_data_index,0,,field_definition_number,5,,field_name,max_depth,,units,m,,scale,5,,fit_base_type_id,132,
Definition,1,record,timestamp,4,bytes,distance,4,bytes,heart_rate,1,bytes,altitude,2,bytes,cadence,1,bytes,speed,2,bytes,temperature,1,bytes,vertical_speed,2,bytes
Definition,2,record,timestamp,4,bytes,position_lat,4,bytes,position_long,4,bytes,distance,4,bytes,heart_rate,1,bytes,altitude,2,bytes,cadence,1,bytes,speed,2,bytes,temperature,1,bytes,vertical_speed,2,bytes
Definition,3,record,timestamp,4,bytes,heart_rate,1,bytes
Definition,4,event,event,1,bytes,timestamp,4,bytes,event_type,1,bytes,data,4,bytes
Definition,5,record,timestamp,4,bytes,distance,4,bytes,altitude,2,bytes,cadence,1,bytes,speed,2,bytes,temperature,1,bytes,vertical_speed,2,bytes
Definition,6,session,timestamp,4,bytes,start_time,4,bytes,event,1,bytes,event_type,1,bytes,sport,1,bytes,first_lap_index,2,bytes,num_laps,2,bytes,min_heart_rate,1,bytes,avg_heart_rate,1,bytes,max_heart_rate,1,bytes,avg_speed,2,bytes,max_speed,2,bytes,total_calories,2,bytes,total_timer_time,4,bytes,total_elapsed_time,4,bytes,total_distance,4,bytes,max_altitude,2,bytes,min_altitude,2,bytes,training_stress_score,2,bytes,total_cycles,4,bytes,avg_temperature,1,bytes,max_temperature,1,bytes,avg_cadence,1,bytes,max_cadence,1,bytes,total_training_effect,1,bytes,total_ascent,2,bytes,total_descent,2,bytes,time_in_hr_zone,20,bytes,"[0,2]",4,bytes,"[0,4]",2,bytes,"[0,0]",1,bytes,"[0,5]",2,bytes
Definition,7,record,timestamp,4,bytes,distance,4,bytes,heart_rate,1,bytes,altitude,2,bytes,cadence,1,bytes,temperature,1,bytes,vertical_speed,2,bytes
Definition,8,lap,timestamp,4,bytes,start_time,4,bytes,total_elapsed_time,4,bytes,event,1,bytes,event_type,1,bytes,lap_trigger,1,bytes,total_timer_time,4,bytes,min_altitude,2,bytes,avg_altitude,2,bytes,max_altitude,2,bytes,avg_cadence,1,bytes,max_cadence,1,bytes,total_distance,4,bytes,min_heart_rate,1,bytes,avg_heart_rate,1,bytes,max_heart_rate,1,bytes,avg_speed,2,bytes,max_speed,2,bytes,avg_temperature,1,bytes,max_temperature,1,bytes,total_calories,2,bytes
Definition,9,lap,timestamp,4,bytes,start_time,4,bytes,total_elapsed_time,4,bytes,event,1,bytes,event_type,1,bytes,lap_trigger,1,bytes,total_timer_time,4,bytes,min_altitude,2,bytes,avg_altitude,2,bytes,max_altitude,2,bytes,min_heart_rate,1,bytes,avg_heart_rate,1,bytes,max_heart_rate,1,bytes,avg_temperature,1,bytes,max_temperature,1,bytes
Definition,10,record,timestamp,4,bytes,heart_rate,1,bytes,distance,4,bytes
Data,4,event,event,0,,timestamp,1699437448000,ms,event_type,0,,timer_trigger,0,
Data,10,record,timestamp,1699437448000,ms,heart_rate,89,bpm,distance,0.0,m
Data,3,record,timestamp,1699437449000,ms,heart_rate,90,bpm
Data,3,record,timestamp,1699437450000,ms,heart_rate,90,bpm
Data,3,record,timestamp,1699437451000,ms,heart_rate,91,bpm
Data,3,record,timestamp,1699437452000,ms,heart_rate,91,bpm
Data,3,record,timestamp,1699437453000,ms,heart_rate,92,bpm
Data,3,record,timestamp,1699437454000,ms,heart_rate,91,bpm
Data,3,record,timestamp,1699437455000,ms,heart_rate,91,bpm
Definition,0,record,timestamp,4,bytes,heart_rate,1,bytes,altitude,2,bytes,cadence,1,bytes,temperature,1,bytes,vertical_speed,2,bytes
Data,0,record,timestamp,1699437456000,ms,heart_rate,92,bpm,altitude,339.4,m,cadence,39,rpm,temperature,26,C,vertical_speed,0.0,m/s
Definition,0,device_info,timestamp,4,bytes,battery_voltage,2,bytes,manufacturer,2,bytes,product,2,bytes,product_name,16,bytes
Data,0,device_info,timestamp,1699437456000,ms,battery_voltage,4.19921875,V,manufacturer,23,,product,59,,product_name,Suunto Vertical,
Data,7,record,timestamp,1699437457000,ms,distance,1.0,m,heart_rate,93,bpm,altitude,339.4,m,cadence,39,rpm,temperature,26,C,vertical_speed,0.0,m/s
Data,1,record,timestamp,1699437458000,ms,distance,2.0,m,heart_rate,91,bpm,altitude,339.4,m,cadence,39,rpm,speed,0.68,m/s,temperature,26,C,vertical_speed,0.0,m/s
Data,1,record,timestamp,1699437459000,ms,distance,3.0,m,heart_rate,91,bpm,altitude,339.4,m,cadence,48,rpm,speed,0.68,m/s,temperature,26,C,vertical_speed,0.0,m/s
Data,1,record,timestamp,1699437460000,ms,distance,4.0,m,heart_rate,93,bpm,altitude,339.20000000000005,m,cadence,60,rpm,speed,0.88,m/s,temperature,26,C,vertical_speed,0.0,m/s
Data,1,record,timestamp,1699437461000,ms,distance,5.0,m,heart_rate,92,bpm,altitude,339.20000000000005,m,cadence,41,rpm,speed,0.88,m/s,temperature,26,C,vertical_speed,0.0,m/s
Data,1,record,timestamp,1699437462000,ms,distance,7.0,m,heart_rate,93,bpm,altitude,339.0,m,cadence,72,rpm,speed,1.2,m/s,temperature,26,C,vertical_speed,0.0,m/s
Data,1,record,timestamp,1699437463000,ms,distance,8.0,m,heart_rate,94,bpm,altitude,339.0,m,cadence,65,rpm,speed,1.2,m/s,temperature,26,C,vertical_speed,0.0,m/s
Data,1,record,timestamp,1699437464000,ms,distance,9.0,m,heart_rate,94,bpm,altitude,339.0,m,cadence,65,rpm,speed,1.16,m/s,temperature,26,C,vertical_speed,0.0,m/s
Data,1,record,timestamp,1699437465000,ms,distance,10.0,m,heart_rate,96,bpm,altitude,339.6,m,cadence,65,rpm,speed,1.16,m/s,temperature,26,C,vertical_speed,0.0,m/s
Data,1,record,timestamp,1699437466000,ms,distance,11.0,m,heart_rate,96,bpm,altitude,339.6,m,cadence,65,rpm,speed,1.12,m/s,temperature,26,C,vertical_speed,0.0,m/s
Data,1,record,timestamp,1699437467000,ms,distance,11.0,m,heart_rate,96,bpm,altitude,339.6,m,cadence,65,rpm,speed,1.12,m/s,temperature,26,C,vertical_speed,0.0,m/s
Data,1,record,timestamp,1699437468000,ms,distance,11.0,m,heart_rate,99,bpm,altitude,339.6,m,cadence,65,rpm,speed,0.4,m/s,temperature,26,C,vertical_speed,-0.02,m/s
Data,1,record,timestamp,1699437469000,ms,distance,11.0,m,heart_rate,98,bpm,altitude,339.4,m,cadence,65,rpm,speed,0.4,m/s,temperature,26,C,vertical_speed,-0.02,m/s
Data,1,record,timestamp,1699437470000,ms,distance,12.0,m,heart_rate,98,bpm,altitude,339.4,m,cadence,0,rpm,speed,0.34,m/s,temperature,26,C,vertical_speed,-0.02,m/s
Data,1,record,timestamp,1699437471000,ms,distance,12.0,m,heart_rate,99,bpm,altitude,339.4,m,cadence,0,rpm,speed,0.34,m/s,temperature,26,C,vertical_speed,-0.02,m/s
Data,1,record,timestamp,1699437472000,ms,distance,12.0,m,heart_rate,99,bpm,altitude,339.4,m,cadence,0,rpm,speed,0.0,m/s,temperature,26,C,vertical_speed,-0.02,m/s
Data,1,record,timestamp,1699437473000,ms,distance,12.0,m,heart_rate,99,bpm,altitude,339.4,m,cadence,0,rpm,speed,0.0,m/s,temperature,26,C,vertical_speed,-0.02,m/s
Data,1,record,timestamp,1699437474000,ms,distance,12.0,m,heart_rate,100,bpm,altitude,339.4,m,cadence,0,rpm,speed,0.0,m/s,temperature,26,C,vertical_speed,-0.02,m/s
Data,5,record,timestamp,1699437475000,ms,distance,12.0,m,altitude,339.4,m,cadence,0,rpm,speed,0.0,m/s,temperature,26,C,vertical_speed,-0.02,m/s
Data,4,event,event,0,,timestamp,1699437475000,ms,event_type,1,,timer_trigger,0,
Data,4,event,event,0,,timestamp,1699437501000,ms,event_type,0,,timer_trigger,0,
Data,3,record,timestamp,1699437501000,ms,heart_rate,96,bpm
Data,1,record,timestamp,1699437502000,ms,distance,12.0,m,heart_rate,96,bpm,altitude,339.6,m,cadence,0,rpm,speed,0.0,m/s,temperature,26,C,vertical_speed,0.0,m/s
Data,1,record,timestamp,1699437503000,ms,distance,12.0,m,heart_rate,97,bpm,altitude,339.6,m,cadence,0,rpm,speed,0.0,m/s,temperature,27,C,vertical_speed,0.0,m/s
Data,1,record,timestamp,1699437504000,ms,distance,14.0,m,heart_rate,97,bpm,altitude,339.6,m,cadence,0,rpm,speed,0.0,m/s,temperature,27,C,vertical_speed,0.0,m/s
Data,2,record,timestamp,1699437505000,ms,position_lat,45.762310372665524,degrees,position_long,3.108966574072838,degrees,distance,14.0,m,heart_rate,94,bpm,altitude,339.6,m,cadence,0,rpm,speed,0.0,m/s,temperature,27,C,vertical_speed,0.0,m/s
Data,1,record,timestamp,1699437506000,ms,distance,14.0,m,heart_rate,95,bpm,altitude,339.4,m,cadence,0,rpm,speed,0.0,m/s,temperature,27,C,vertical_speed,0.0,m/s
Data,1,record,timestamp,1699437507000,ms,distance,17.0,m,heart_rate,95,bpm,altitude,339.4,m,cadence,0,rpm,speed,0.0,m/s,temperature,27,C,vertical_speed,0.0,m/s
Data,2,record,timestamp,1699437508000,ms,position_lat,45.76231682673097,degrees,position_long,3.1089333817362785,degrees,distance,20.0,m,heart_rate,95,bpm,altitude,339.4,m,cadence,0,rpm,speed,0.3,m/s,temperature,27,C,vertical_speed,0.0,m/s
Data,2,record,timestamp,1699437509000,ms,position_lat,45.76233602128923,degrees,position_long,3.1089649815112352,degrees,distance,20.0,m,heart_rate,96,bpm,altitude,339.4,m,cadence,0,rpm,speed,0.3,m/s,temperature,27,C,vertical_speed,0.0,m/s
Data,1,record,timestamp,1699437510000,ms,distance,23.0,m,heart_rate,95,bpm,altitude,339.20000000000005,m,cadence,75,rpm,speed,1.14,m/s,temperature,27,C,vertical_speed,0.0,m/s
Data,2,record,timestamp,1699437511000,ms,position_lat,45.762310372665524,degrees,position_long,3.1089799851179123,degrees,distance,23.0,m,heart_rate,97,bpm,altitude,338.79999999999995,m,cadence,56,rpm,speed,1.14,m/s,temperature,27,C,vertical_speed,0.0,m/s
Data,1,record,timestamp,1699437512000,ms,distance,27.0,m,heart_rate,96,bpm,altitude,338.79999999999995,m,cadence,56,rpm,speed,1.32,m/s,temperature,27,C,vertical_speed,0.0,m/s
Data,2,record,timestamp,1699437513000,ms,position_lat,45.76227843761444,degrees,position_long,3.108981577679515,degrees,distance,29.0,m,heart_rate,95,bpm,altitude,338.79999999999995,m,cadence,56,rpm,speed,1.32,m/s,temperature,27,C,vertical_speed,0.0,m/s
Data,2,record,timestamp,1699437514000,ms,position_lat,45.762259159237146,degrees,position_long,3.1089799851179123,degrees,distance,29.0,m,heart_rate,96,bpm,altitude,338.79999999999995,m,cadence,56,rpm,speed,1.26,m/s,temperature,27,C,vertical_speed,0.0,m/s
Data,1,record,timestamp,1699437515000,ms,distance,32.0,m,heart_rate,97,bpm,altitude,338.79999999999995,m,cadence,56,rpm,speed,1.26,m/s,temperature,27,C,vertical_speed,0.0,m/s
Data,2,record,timestamp,1699437516000,ms,position_lat,45.76223040930927,degrees,position_long,3.1089932285249233,degrees,distance,32.0,m,heart_rate,97,bpm,altitude,338.79999999999995,m,cadence,57,rpm,speed,1.3,m/s,temperature,27,C,vertical_speed,0.0,m/s
Data,1,record,timestamp,1699437517000,ms,distance,35.0,m,heart_rate,96,bpm,altitude,338.79999999999995,m,cadence,58,rpm,speed,1.3,m/s,temperature,27,C,vertical_speed,0.0,m/s
Data,2,record,timestamp,1699437518000,ms,position_lat,45.76220476068556,degrees,position_long,3.109008399769664,degrees,distance,38.0,m,heart_rate,96,bpm,altitude,338.79999999999995,m,cadence,58,rpm,speed,1.38,m/s,temperature,27,C,vertical_speed,0.0,m/s
Data,2,record,timestamp,1699437519000,ms,position_lat,45.7621855661273,degrees,position_long,3.109016614034772,degrees,distance,38.0,m,heart_rate,97,bpm,altitude,339.0,m,cadence,58,rpm,speed,1.38,m/s,temperature,27,C,vertical_speed,0.0,m/s
Data,1,record,timestamp,1699437520000,ms,distance,41.0,m,heart_rate,98,bpm,altitude,339.0,m,cadence,58,rpm,speed,1.44,m/s,temperature,27,C,vertical_speed,0.0,m/s
Data,2,record,timestamp,1699437521000,ms,position_lat,45.76215363107622,degrees,position_long,3.109031617641449,degrees,distance,41.0,m,heart_rate,98,bpm,altitude,339.0,m,cadence,58,rpm,speed,1.44,m/s,temperature,27,C,vertical_speed,0.0,m/s
Data,1,record,timestamp,1699437522000,ms,distance,45.0,m,heart_rate,99,bpm,altitude,339.0,m,cadence,58,rpm,speed,1.5,m/s,temperature,27,C,vertical_speed,0.0,m/s
Data,2,record,timestamp,1699437523000,ms,position_lat,45.7621216122061,degrees,position_long,3.1090349704027176,degrees,distance,47.0,m,heart_rate,97,bpm,altitude,339.0,m,cadence,58,rpm,speed,1.5,m/s,temperature,27,C,vertical_speed,0.0,m/s
Data,2,record,timestamp,1699437524000,ms,position_lat,45.76210878789425,degrees,position_long,3.109011584892869,degrees,distance,47.0,m,heart_rate,97,bpm,altitude,339.0,m,cadence,58,rpm,speed,1.52,m/s,temperature,27,C,vertical_speed,0.0,m/s
Data,2,record,timestamp,1699437525000,ms,position_lat,45.762089593335986,degrees,position_long,3.109016614034772,degrees,distance,52.0,m,heart_rate,98,bpm,altitude,339.0,m,cadence,58,rpm,speed,1.52,m/s,temperature,27,C,vertical_speed,0.0,m/s
Data,2,record,timestamp,1699437526000,ms,position_lat,45.76207039877772,degrees,position_long,3.1090134289115667,degrees,distance,54.0,m,heart_rate,98,bpm,altitude,339.0,m,cadence,58,rpm,speed,1.54,m/s,temperature,27,C,vertical_speed,0.0,m/s
Data,2,record,timestamp,1699437527000,ms,position_lat,45.76205120421946,degrees,position_long,3.1090099923312664,degrees,distance,54.0,m,heart_rate,101,bpm,altitude,339.20000000000005,m,cadence,58,rpm,speed,1.54,m/s,temperature,27,C,vertical_speed,-0.02,m/s
Data,1,record,timestamp,1699437528000,ms,distance,57.0,m,heart_rate,100,bpm,altitude,339.20000000000005,m,cadence,58,rpm,speed,1.54,m/s,temperature,27,C,vertical_speed,-0.02,m/s
Data,2,record,timestamp,1699437529000,ms,position_lat,45.762019185349345,degrees,position_long,3.109008399769664,degrees,distance,57.0,m,heart_rate,100,bpm,altitude,339.20000000000005,m,cadence,58,rpm,speed,1.54,m/s,temperature,27,C,vertical_speed,-0.02,m/s
Data,1,record,timestamp,1699437530000,ms,distance,60.0,m,heart_rate,100,bpm,altitude,339.0,m,cadence,59,rpm,speed,1.5,m/s,temperature,27,C,vertical_speed,0.0,m/s
Data,2,record,timestamp,1699437531000,ms,position_lat,45.76199362054467,degrees,position_long,3.109016614034772,degrees,distance,60.0,m,heart_rate,100,bpm,altitude,339.20000000000005,m,cadence,59,rpm,speed,1.5,m/s,temperature,27,C,vertical_speed,0.0,m/s
Data,1,record,timestamp,1699437532000,ms,distance,64.0,m,heart_rate,92,bpm,altitude,339.20000000000005,m,cadence,59,rpm,speed,1.66,m/s,temperature,27,C,vertical_speed,0.0,m/s
Data,2,record,timestamp,1699437533000,ms,position_lat,45.76196160167456,degrees,position_long,3.109041592106223,degrees,distance,64.0,m,heart_rate,93,bpm,altitude,339.20000000000005,m,cadence,58,rpm,speed,1.66,m/s,temperature,27,C,vertical_speed,0.0,m/s
Data,1,record,timestamp,1699437534000,ms,distance,67.0,m,heart_rate,93,bpm,altitude,339.20000000000005,m,cadence,58,rpm,speed,1.66,m/s,temperature,27,C,vertical_speed,0.0,m/s
Data,2,record,timestamp,1699437535000,ms,position_lat,45.76193922199309,degrees,position_long,3.109068414196372,degrees,distance,67.0,m,heart_rate,93,bpm,altitude,339.0,m,cadence,58,rpm,speed,1.66,m/s,temperature,27,C,vertical_speed,0.0,m/s
Data,1,record,timestamp,1699437536000,ms,distance,70.0,m,heart_rate,92,bpm,altitude,339.0,m,cadence,57,rpm,speed,1.6,m/s,temperature,27,C,vertical_speed,0.0,m/s
Data,2,record,timestamp,1699437537000,ms,position_lat,45.76192321255803,degrees,position_long,3.109094984829426,degrees,distance,70.0,m,heart_rate,93,bpm,altitude,338.79999999999995,m,cadence,57,rpm,speed,1.6,m/s,temperature,27,C,vertical_speed,0.0,m/s
Data,1,record,timestamp,1699437538000,ms,distance,73.0,m,heart_rate,93,bpm,altitude,338.79999999999995,m,cadence,57,rpm,speed,1.54,m/s,temperature,27,C,vertical_speed,0.0,m/s
Data,2,record,timestamp,1699437539000,ms,position_lat,45.76190720312297,degrees,position_long,3.1091197952628136,degrees,distance,73.0,m,heart_rate,93,bpm,altitude,338.79999999999995,m,cadence,57,rpm,speed,1.54,m/s,temperature,27,C,vertical_speed,0.0,m/s
Data,1,record,timestamp,1699437540000,ms,distance,76.0,m,heart_rate,94,bpm,altitude,339.0,m,cadence,57,rpm,speed,1.58,m/s,temperature,27,C,vertical_speed,0.0,m/s
Data,2,record,timestamp,1699437541000,ms,position_lat,45.76187836937606,degrees,position_long,3.1091316137462854,degrees,distance,76.0,m,heart_rate,95,bpm,altitude,339.0,m,cadence,61,rpm,speed,1.58,m/s,temperature,27,C,vertical_speed,0.0,m/s
Data,1,record,timestamp,1699437542000,ms,distance,79.0,m,heart_rate,95,bpm,altitude,338.79999999999995,m,cadence,56,rpm,speed,1.58,m/s,temperature,27,C,vertical_speed,0.0,m/s
Data,2,record,timestamp,1699437543000,ms,position_lat,45.76185280457139,degrees,position_long,3.109149970114231,degrees,distance,79.0,m,heart_rate,96,bpm,altitude,338.6,m,cadence,55,rpm,speed,1.58,m/s,temperature,27,C,vertical_speed,0.0,m/s
Data,1,record,timestamp,1699437544000,ms,distance,82.0,m,heart_rate,96,bpm,altitude,338.6,m,cadence,55,rpm,speed,1.56,m/s,temperature,27,C,vertical_speed,0.0,m/s
Data,2,record,timestamp,1699437545000,ms,position_lat,45.76183042488992,degrees,position_long,3.109170002862811,degrees,distance,82.0,m,heart_rate,94,bpm,altitude,338.6,m,cadence,58,rpm,speed,1.56,m/s,temperature,27,C,vertical_speed,0.0,m/s
Data,1,record,timestamp,1699437546000,ms,distance,85.0,m,heart_rate,94,bpm,altitude,338.6,m,cadence,55,rpm,speed,1.52,m/s,temperature,27,C,vertical_speed,0.0,m/s
Data,2,record,timestamp,1699437547000,ms,position_lat,45.76180796138942,degrees,position_long,3.1091883592307568,degrees,distance,85.0,m,heart_rate,94,bpm,altitude,338.6,m,cadence,55,rpm,speed,1.52,m/s,temperature,27,C,vertical_speed,0.0,m/s
Data,1,record,timestamp,1699437548000,ms,distance,88.0,m,heart_rate,95,bpm,altitude,338.6,m,cadence,55,rpm,speed,1.52,m/s,temperature,27,C,vertical_speed,0.0,m/s
Data,2,record,timestamp,1699437549000,ms,position_lat,45.76178239658475,degrees,position_long,3.109203362837434,degrees,distance,88.0,m,heart_rate,94,bpm,altitude,339.0,m,cadence,55,rpm,speed,1.52,m/s,temperature,26,C,vertical_speed,0.0,m/s
Data,1,record,timestamp,1699437550000,ms,distance,91.0,m,heart_rate,94,bpm,altitude,339.0,m,cadence,55,rpm,speed,1.5,m/s,temperature,27,C,vertical_speed,0.0,m/s
Data,2,record,timestamp,1699437551000,ms,position_lat,45.76176001690328,degrees,position_long,3.109216606244445,degrees,distance,91.0,m,heart_rate,95,bpm,altitude,338.79999999999995,m,cadence,55,rpm,speed,1.5,m/s,temperature,26,C,vertical_speed,0.0,m/s
Data,1,record,timestamp,1699437552000,ms,distance,94.0,m,heart_rate,95,bpm,altitude,338.79999999999995,m,cadence,56,rpm,speed,1.48,m/s,temperature,26,C,vertical_speed,0.0,m/s
Data,2,record,timestamp,1699437553000,ms,position_lat,45.76173763722181,degrees,position_long,3.109233370050788,degrees,distance,94.0,m,heart_rate,94,bpm,altitude,338.79999999999995,m,cadence,57,rpm,speed,1.48,m/s,temperature,26,C,vertical_speed,0.0,m/s
Data,1,record,timestamp,1699437554000,ms,distance,96.0,m,heart_rate,91,bpm,altitude,338.79999999999995,m,cadence,57,rpm,speed,1.46,m/s,temperature,26,C,vertical_speed,0.0,m/s
Data,2,record,timestamp,1699437555000,ms,position_lat,45.76171517372131,degrees,position_long,3.1092450208961964,degrees,distance,96.0,m,heart_rate,90,bpm,altitude,338.79999999999995,m,cadence,57,rpm,speed,1.46,m/s,temperature,26,C,vertical_speed,0.0,m/s
Data,1,record,timestamp,1699437556000,ms,distance,99.0,m,heart_rate,88,bpm,altitude,338.6,m,cadence,57,rpm,speed,1.44,m/s,temperature,26,C,vertical_speed,0.0,m/s
Data,2,record,timestamp,1699437557000,ms,position_lat,45.76169597916305,degrees,position_long,3.109263377264142,degrees,distance,99.0,m,heart_rate,88,bpm,altitude,338.79999999999995,m,cadence,57,rpm,speed,1.44,m/s,temperature,26,C,vertical_speed,0.0,m/s
Data,1,record,timestamp,1699437558000,ms,distance,102.0,m,heart_rate,88,bpm,altitude,339.0,m,cadence,57,rpm,speed,1.44,m/s,temperature,26,C,vertical_speed,0.0,m/s
Data,2,record,timestamp,1699437559000,ms,position_lat,45.76167678460479,degrees,position_long,3.109284834936261,degrees,distance,102.0,m,heart_rate,89,bpm,altitude,339.0,m,cadence,56,rpm,speed,1.44,m/s,temperature,26,C,vertical_speed,0.0,m/s
Data,1,record,timestamp,1699437560000,ms,distance,105.0,m,heart_rate,89,bpm,altitude,338.79999999999995,m,cadence,56,rpm,speed,1.46,m/s,temperature,26,C,vertical_speed,0.0,m/s
Data,2,record,timestamp,1699437561000,ms,position_lat,45.76165440492332,degrees,position_long,3.109313165768981,degrees,distance,107.0,m,heart_rate,90,bpm,altitude,338.79999999999995,m,cadence,55,rpm,speed,1.46,m/s,temperature,26,C,vertical_speed,0.0,m/s
Data,2,record,timestamp,1699437562000,ms,position_lat,45.76163521036506,degrees,position_long,3.1093216314911842,degrees,distance,107.0,m,heart_rate,88,bpm,altitude,339.0,m,cadence,54,rpm,speed,1.5,m/s,temperature,26,C,vertical_speed,0.0,m/s
Data,1,record,timestamp,1699437563000,ms,distance,110.0,m,heart_rate,88,bpm,altitude,339.0,m,cadence,54,rpm,speed,1.5,m/s,temperature,26,C,vertical_speed,0.0,m/s
Data,2,record,timestamp,1699437564000,ms,position_lat,45.761622386053205,degrees,position_long,3.1092932168394327,degrees,distance,112.0,m,heart_rate,89,bpm,altitude,339.0,m,cadence,54,rpm,speed,1.54,m/s,temperature,26,C,vertical_speed,0.0,m/s
Data,2,record,timestamp,1699437565000,ms,position_lat,45.76163202524185,degrees,position_long,3.1092649698257446,degrees,distance,112.0,m,heart_rate,89,bpm,altitude,339.20000000000005,m,cadence,54,rpm,speed,1.54,m/s,temperature,26,C,vertical_speed,0.0,m/s
Data,1,record,timestamp,1699437566000,ms,distance,116.0,m,heart_rate,89,bpm,altitude,339.4,m,cadence,54,rpm,speed,1.54,m/s,temperature,26,C,vertical_speed,0.0,m/s
Data,2,record,timestamp,1699437567000,ms,position_lat,45.761622386053205,degrees,position_long,3.109223395586014,degrees,distance,116.0,m,heart_rate,90,bpm,altitude,339.4,m,cadence,54,rpm,speed,1.54,m/s,temperature,26,C,vertical_speed,0.0,m/s
Data,1,record,timestamp,1699437568000,ms,distance,119.0,m,heart_rate,90,bpm,altitude,339.4,m,cadence,54,rpm,speed,1.56,m/s,temperature,26,C,vertical_speed,0.0,m/s
Data,2,record,timestamp,1699437569000,ms,position_lat,45.76161283068359,degrees,position_long,3.109185006469488,degrees,distance,119.0,m,heart_rate,91,bpm,altitude,339.20000000000005,m,cadence,55,rpm,speed,1.56,m/s,temperature,26,C,vertical_speed,0.0,m/s
Data,1,record,timestamp,1699437570000,ms,distance,122.0,m,heart_rate,90,bpm,altitude,339.20000000000005,m,cadence,55,rpm,speed,1.54,m/s,temperature,26,C,vertical_speed,0.0,m/s
Data,2,record,timestamp,1699437571000,ms,position_lat,45.76160319149494,degrees,position_long,3.1091515626758337,degrees,distance,122.0,m,heart_rate,91,bpm,altitude,339.0,m,cadence,55,rpm,speed,1.54,m/s,temperature,26,C,vertical_speed,0.0,m/s
Data,1,record,timestamp,1699437572000,ms,distance,124.0,m,heart_rate,89,bpm,altitude,339.0,m,cadence,56,rpm,speed,1.54,m/s,temperature,26,C,vertical_speed,0.0,m/s
Data,2,record,timestamp,1699437573000,ms,position_lat,45.76159682124853,degrees,position_long,3.1091147661209106,degrees,distance,124.0,m,heart_rate,89,bpm,altitude,339.0,m,cadence,57,rpm,speed,1.54,m/s,temperature,26,C,vertical_speed,0.0,m/s
Data,1,record,timestamp,1699437574000,ms,distance,128.0,m,heart_rate,90,bpm,altitude,339.20000000000005,m,cadence,57,rpm,speed,1.54,m/s,temperature,26,C,vertical_speed,0.0,m/s
Data,2,record,timestamp,1699437575000,ms,position_lat,45.76158399693668,degrees,position_long,3.1090799812227488,degrees,distance,128.0,m,heart_rate,90,bpm,altitude,339.20000000000005,m,cadence,57,rpm,speed,1.54,m/s,temperature,26,C,vertical_speed,0.02,m/s
Data,1,record,timestamp,1699437576000,ms,distance,130.0,m,heart_rate,90,bpm,altitude,339.20000000000005,m,cadence,57,rpm,speed,1.52,m/s,temperature,26,C,vertical_speed,0.02,m/s
Data,2,record,timestamp,1699437577000,ms,position_lat,45.76157762669027,degrees,position_long,3.109046621248126,degrees,distance,130.0,m,heart_rate,90,bpm,altitude,339.4,m,cadence,57,rpm,speed,1.52,m/s,temperature,26,C,vertical_speed,0.02,m/s
Data,1,record,timestamp,1699437578000,ms,distance,133.0,m,heart_rate,90,bpm,altitude,339.6,m,cadence,57,rpm,speed,1.52,m/s,temperature,26,C,vertical_speed,0.02,m/s
Data,2,record,timestamp,1699437579000,ms,position_lat,45.76156161725521,degrees,position_long,3.109016614034772,degrees,distance,133.0,m,heart_rate,91,bpm,altitude,339.6,m,cadence,57,rpm,speed,1.52,m/s,temperature,26,C,vertical_speed,0.02,m/s
Data,1,record,timestamp,1699437580000,ms,distance,136.0,m,heart_rate,92,bpm,altitude,339.6,m,cadence,57,rpm,speed,1.5,m/s,temperature,26,C,vertical_speed,0.02,m/s
Data,2,record,timestamp,1699437581000,ms,position_lat,45.761551978066564,degrees,position_long,3.108985014259815,degrees,distance,136.0,m,heart_rate,92,bpm,altitude,339.6,m,cadence,57,rpm,speed,1.5,m/s,temperature,26,C,vertical_speed,0.0,m/s
Data,1,record,timestamp,1699437582000,ms,distance,139.0,m,heart_rate,92,bpm,altitude,339.6,m,cadence,56,rpm,speed,1.52,m/s,temperature,26,C,vertical_speed,0.0,m/s
Data,2,record,timestamp,1699437583000,ms,position_lat,45.761558432132006,degrees,position_long,3.1089466251432896,degrees,distance,139.0,m,heart_rate,92,bpm,altitude,339.4,m,cadence,56,rpm,speed,1.52,m/s,temperature,26,C,vertical_speed,0.0,m/s
Data,1,record,timestamp,1699437584000,ms,distance,142.0,m,heart_rate,92,bpm,altitude,339.4,m,cadence,56,rpm,speed,1.5,m/s,temperature,26,C,vertical_speed,0.0,m/s
Data,2,record,timestamp,1699437585000,ms,position_lat,45.76157762669027,degrees,position_long,3.1089251674711704,degrees,distance,142.0,m,heart_rate,92,bpm,altitude,339.4,m,cadence,56,rpm,speed,1.5,m/s,temperature,26,C,vertical_speed,0.0,m/s
Data,1,record,timestamp,1699437586000,ms,distance,144.0,m,heart_rate,93,bpm,altitude,339.20000000000005,m,cadence,56,rpm,speed,1.48,m/s,temperature,26,C,vertical_speed,0.0,m/s
Data,2,record,timestamp,1699437587000,ms,position_lat,45.76159682124853,degrees,position_long,3.1089084036648273,degrees,distance,144.0,m,heart_rate,94,bpm,altitude,339.20000000000005,m,cadence,56,rpm,speed,1.48,m/s,temperature,26,C,vertical_speed,0.0,m/s
Data,1,record,timestamp,1699437588000,ms,distance,147.0,m,heart_rate,95,bpm,altitude,339.20000000000005,m,cadence,56,rpm,speed,1.48,m/s,temperature,26,C,vertical_speed,0.0,m/s
Data,2,record,timestamp,1699437589000,ms,position_lat,45.76161920093,degrees,position_long,3.1088918074965477,degrees,distance,147.0,m,heart_rate,95,bpm,altitude,339.20000000000005,m,cadence,55,rpm,speed,1.48,m/s,temperature,26,C,vertical_speed,0.0,m/s
Data,1,record,timestamp,1699437590000,ms,distance,149.0,m,heart_rate,96,bpm,altitude,339.0,m,cadence,55,rpm,speed,1.46,m/s,temperature,26,C,vertical_speed,0.0,m/s
Data,2,record,timestamp,1699437591000,ms,position_lat,45.76164158061147,degrees,position_long,3.108894992619753,degrees,distance,149.0,m,heart_rate,98,bpm,altitude,339.0,m,cadence,55,rpm,speed,1.46,m/s,temperature,26,C,vertical_speed,0.02,m/s
Data,1,record,timestamp,1699437592000,ms,distance,152.0,m,heart_rate,100,bpm,altitude,339.0,m,cadence,55,rpm,speed,1.46,m/s,temperature,26,C,vertical_speed,0.02,m/s
Data,2,record,timestamp,1699437593000,ms,position_lat,45.761663960292935,degrees,position_long,3.108915025368333,degrees,distance,152.0,m,heart_rate,101,bpm,altitude,339.20000000000005,m,cadence,56,rpm,speed,1.46,m/s,temperature,26,C,vertical_speed,0.0,m/s
Data,1,record,timestamp,1699437594000,ms,distance,155.0,m,heart_rate,101,bpm,altitude,339.20000000000005,m,cadence,56,rpm,speed,1.46,m/s,temperature,26,C,vertical_speed,0.0,m/s
Data,2,record,timestamp,1699437595000,ms,position_lat,45.76168323867023,degrees,position_long,3.1089333817362785,degrees,distance,155.0,m,heart_rate,101,bpm,altitude,339.20000000000005,m,cadence,56,rpm,speed,1.46,m/s,temperature,26,C,vertical_speed,0.0,m/s
Data,1,record,timestamp,1699437596000,ms,distance,158.0,m,heart_rate,100,bpm,altitude,339.0,m,cadence,56,rpm,speed,1.46,m/s,temperature,26,C,vertical_speed,0.0,m/s
Data,2,record,timestamp,1699437597000,ms,position_lat,45.7617088034749,degrees,position_long,3.108944781124592,degrees,distance,158.0,m,heart_rate,101,bpm,altitude,339.0,m,cadence,57,rpm,speed,1.46,m/s,temperature,26,C,vertical_speed,0.0,m/s
Data,1,record,timestamp,1699437598000,ms,distance,158.0,m,heart_rate,100,bpm,altitude,339.0,m,cadence,58,rpm,speed,1.42,m/s,temperature,26,C,vertical_speed,0.0,m/s
Data,1,record,timestamp,1699437599000,ms,distance,161.0,m,heart_rate,101,bpm,altitude,339.20000000000005,m,cadence,58,rpm,speed,1.42,m/s,temperature,26,C,vertical_speed,0.0,m/s
Data,2,record,timestamp,1699437600000,ms,position_lat,45.761734368279576,degrees,position_long,3.1089466251432896,degrees,distance,161.0,m,heart_rate,100,bpm,altitude,339.0,m,cadence,58,rpm,speed,1.38,m/s,temperature,26,C,vertical_speed,0.0,m/s
Data,1,record,timestamp,1699437601000,ms,distance,163.0,m,heart_rate,100,bpm,altitude,339.0,m,cadence,57,rpm,speed,1.38,m/s,temperature,26,C,vertical_speed,0.0,m/s
Data,2,record,timestamp,1699437602000,ms,position_lat,45.76175356283784,degrees,position_long,3.1089498102664948,degrees,distance,163.0,m,heart_rate,102,bpm,altitude,339.0,m,cadence,56,rpm,speed,1.36,m/s,temperature,26,C,vertical_speed,0.0,m/s
Data,1,record,timestamp,1699437603000,ms,distance,165.0,m,heart_rate,100,bpm,altitude,339.0,m,cadence,56,rpm,speed,1.36,m/s,temperature,26,C,vertical_speed,0.0,m/s
Data,2,record,timestamp,1699437604000,ms,position_lat,45.76177602633834,degrees,position_long,3.1089515704661608,degrees,distance,168.0,m,heart_rate,100,bpm,altitude,339.20000000000005,m,cadence,56,rpm,speed,1.4,m/s,temperature,26,C,vertical_speed,0.0,m/s
Data,2,record,timestamp,1699437605000,ms,position_lat,45.7617952208966,degrees,position_long,3.1089581921696663,degrees,distance,168.0,m,heart_rate,100,bpm,altitude,339.6,m,cadence,56,rpm,speed,1.4,m/s,temperature,26,C,vertical_speed,0.0,m/s
Data,1,record,timestamp,1699437606000,ms,distance,171.0,m,heart_rate,101,bpm,altitude,339.6,m,cadence,56,rpm,speed,1.42,m/s,temperature,26,C,vertical_speed,0.0,m/s
Data,2,record,timestamp,1699437607000,ms,position_lat,45.76181123033166,degrees,position_long,3.1089949887245893,degrees,distance,171.0,m,heart_rate,100,bpm,altitude,339.6,m,cadence,53,rpm,speed,1.42,m/s,temperature,26,C,vertical_speed,0.0,m/s
Data,1,record,timestamp,1699437608000,ms,distance,174.0,m,heart_rate,99,bpm,altitude,339.20000000000005,m,cadence,53,rpm,speed,1.42,m/s,temperature,25,C,vertical_speed,0.0,m/s
Data,2,record,timestamp,1699437609000,ms,position_lat,45.761820785701275,degrees,position_long,3.109028432518244,degrees,distance,174.0,m,heart_rate,99,bpm,altitude,338.79999999999995,m,cadence,56,rpm,speed,1.42,m/s,temperature,26,C,vertical_speed,0.0,m/s
Data,1,record,timestamp,1699437610000,ms,distance,176.0,m,heart_rate,98,bpm,altitude,338.79999999999995,m,cadence,60,rpm,speed,1.42,m/s,temperature,26,C,vertical_speed,0.0,m/s
Data,2,record,timestamp,1699437611000,ms,position_lat,45.76183679513633,degrees,position_long,3.109053410589695,degrees,distance,176.0,m,heart_rate,98,bpm,altitude,339.20000000000005,m,cadence,58,rpm,speed,1.42,m/s,temperature,25,C,vertical_speed,0.0,m/s
Data,1,record,timestamp,1699437612000,ms,distance,179.0,m,heart_rate,98,bpm,altitude,339.20000000000005,m,cadence,57,rpm,speed,1.42,m/s,temperature,25,C,vertical_speed,0.0,m/s
Data,2,record,timestamp,1699437613000,ms,position_lat,45.7618591748178,degrees,position_long,3.109068414196372,degrees,distance,179.0,m,heart_rate,98,bpm,altitude,339.0,m,cadence,56,rpm,speed,1.42,m/s,temperature,25,C,vertical_speed,0.0,m/s
Data,1,record,timestamp,1699437614000,ms,distance,182.0,m,heart_rate,97,bpm,altitude,339.0,m,cadence,56,rpm,speed,1.44,m/s,temperature,25,C,vertical_speed,0.0,m/s
Data,2,record,timestamp,1699437615000,ms,position_lat,45.76188800856471,degrees,position_long,3.109083417803049,degrees,distance,182.0,m,heart_rate,97,bpm,altitude,339.20000000000005,m,cadence,56,rpm,speed,1.44,m/s,temperature,25,C,vertical_speed,0.0,m/s
Data,1,record,timestamp,1699437616000,ms,distance,186.0,m,heart_rate,99,bpm,altitude,339.20000000000005,m,cadence,56,rpm,speed,1.46,m/s,temperature,25,C,vertical_speed,0.0,m/s
Data,2,record,timestamp,1699437617000,ms,position_lat,45.76191675849259,degrees,position_long,3.1090850103646517,degrees,distance,186.0,m,heart_rate,99,bpm,altitude,339.20000000000005,m,cadence,56,rpm,speed,1.46,m/s,temperature,25,C,vertical_speed,0.0,m/s
Data,1,record,timestamp,1699437618000,ms,distance,188.0,m,heart_rate,99,bpm,altitude,339.20000000000005,m,cadence,56,rpm,speed,1.44,m/s,temperature,25,C,vertical_speed,0.0,m/s
Data,2,record,timestamp,1699437619000,ms,position_lat,45.76193922199309,degrees,position_long,3.1090717669576406,degrees,distance,188.0,m,heart_rate,100,bpm,altitude,339.20000000000005,m,cadence,56,rpm,speed,1.44,m/s,temperature,25,C,vertical_speed,0.0,m/s
Data,1,record,timestamp,1699437620000,ms,distance,192.0,m,heart_rate,100,bpm,altitude,339.20000000000005,m,cadence,56,rpm,speed,1.46,m/s,temperature,25,C,vertical_speed,0.0,m/s
Data,2,record,timestamp,1699437621000,ms,position_lat,45.76196797192097,degrees,position_long,3.1090550031512976,degrees,distance,192.0,m,heart_rate,102,bpm,altitude,339.20000000000005,m,cadence,56,rpm,speed,1.46,m/s,temperature,25,C,vertical_speed,0.0,m/s
Data,1,record,timestamp,1699437622000,ms,distance,195.0,m,heart_rate,103,bpm,altitude,339.20000000000005,m,cadence,56,rpm,speed,1.46,m/s,temperature,25,C,vertical_speed,0.0,m/s
Data,2,record,timestamp,1699437623000,ms,position_lat,45.76199362054467,degrees,position_long,3.109041592106223,degrees,distance,195.0,m,heart_rate,104,bpm,altitude,339.0,m,cadence,56,rpm,speed,1.46,m/s,temperature,25,C,vertical_speed,0.0,m/s
Data,1,record,timestamp,1699437624000,ms,distance,198.0,m,heart_rate,105,bpm,altitude,338.79999999999995,m,cadence,56,rpm,speed,1.46,m/s,temperature,25,C,vertical_speed,0.0,m/s
Data,2,record,timestamp,1699437625000,ms,position_lat,45.762019185349345,degrees,position_long,3.1090249959379435,degrees,distance,198.0,m,heart_rate,103,bpm,altitude,338.79999999999995,m,cadence,56,rpm,speed,1.46,m/s,temperature,25,C,vertical_speed,0.0,m/s
Data,1,record,timestamp,1699437626000,ms,distance,201.0,m,heart_rate,105,bpm,altitude,338.79999999999995,m,cadence,56,rpm,speed,1.46,m/s,temperature,25,C,vertical_speed,0.0,m/s
Data,2,record,timestamp,1699437627000,ms,position_lat,45.76203837990761,degrees,position_long,3.109006639569998,degrees,distance,201.0,m,heart_rate,104,bpm,altitude,338.79999999999995,m,cadence,56,rpm,speed,1.46,m/s,temperature,25,C,vertical_speed,0.0,m/s
Data,1,record,timestamp,1699437628000,ms,distance,203.0,m,heart_rate,103,bpm,altitude,339.20000000000005,m,cadence,57,rpm,speed,1.44,m/s,temperature,25,C,vertical_speed,0.0,m/s
Data,2,record,timestamp,1699437629000,ms,position_lat,45.76205757446587,degrees,position_long,3.108996581286192,degrees,distance,203.0,m,heart_rate,103,bpm,altitude,339.20000000000005,m,cadence,57,rpm,speed,1.44,m/s,temperature,25,C,vertical_speed,0.0,m/s
Data,1,record,timestamp,1699437630000,ms,distance,206.0,m,heart_rate,104,bpm,altitude,339.20000000000005,m,cadence,57,rpm,speed,1.46,m/s,temperature,25,C,vertical_speed,0.0,m/s
Data,2,record,timestamp,1699437631000,ms,position_lat,45.762089593335986,degrees,position_long,3.1090000178664923,degrees,distance,206.0,m,heart_rate,103,bpm,altitude,339.0,m,cadence,57,rpm,speed,1.46,m/s,temperature,25,C,vertical_speed,0.0,m/s
Data,1,record,timestamp,1699437632000,ms,distance,209.0,m,heart_rate,104,bpm,altitude,338.79999999999995,m,cadence,58,rpm,speed,1.48,m/s,temperature,25,C,vertical_speed,0.0,m/s
Data,2,record,timestamp,1699437633000,ms,position_lat,45.76211515814066,degrees,position_long,3.108986606821418,degrees,distance,209.0,m,heart_rate,105,bpm,altitude,338.79999999999995,m,cadence,58,rpm,speed,1.48,m/s,temperature,25,C,vertical_speed,0.0,m/s
Data,1,record,timestamp,1699437634000,ms,distance,212.0,m,heart_rate,107,bpm,altitude,338.79999999999995,m,cadence,58,rpm,speed,1.46,m/s,temperature,25,C,vertical_speed,0.0,m/s
Data,2,record,timestamp,1699437635000,ms,position_lat,45.76213762164116,degrees,position_long,3.1089731957763433,degrees,distance,212.0,m,heart_rate,107,bpm,altitude,338.6,m,cadence,58,rpm,speed,1.46,m/s,temperature,25,C,vertical_speed,0.0,m/s
Data,1,record,timestamp,1699437636000,ms,distance,215.0,m,heart_rate,109,bpm,altitude,338.6,m,cadence,58,rpm,speed,1.46,m/s,temperature,25,C,vertical_speed,0.0,m/s
Data,2,record,timestamp,1699437637000,ms,position_lat,45.76215681619942,degrees,position_long,3.108955007046461,degrees,distance,215.0,m,heart_rate,107,bpm,altitude,338.6,m,cadence,58,rpm,speed,1.46,m/s,temperature,25,C,vertical_speed,0.0,m/s
Data,1,record,timestamp,1699437638000,ms,distance,217.0,m,heart_rate,118,bpm,altitude,338.79999999999995,m,cadence,58,rpm,speed,1.44,m/s,temperature,25,C,vertical_speed,0.0,m/s
Data,2,record,timestamp,1699437639000,ms,position_lat,45.76217919588089,degrees,position_long,3.1089431885629892,degrees,distance,217.0,m,heart_rate,119,bpm,altitude,339.0,m,cadence,58,rpm,speed,1.44,m/s,temperature,25,C,vertical_speed,0.0,m/s
Data,1,record,timestamp,1699437640000,ms,distance,220.0,m,heart_rate,119,bpm,altitude,339.0,m,cadence,58,rpm,speed,1.44,m/s,temperature,25,C,vertical_speed,0.0,m/s
Data,2,record,timestamp,1699437641000,ms,position_lat,45.76220476068556,degrees,position_long,3.1089415960013866,degrees,distance,220.0,m,heart_rate,119,bpm,altitude,339.0,m,cadence,58,rpm,speed,1.44,m/s,temperature,25,C,vertical_speed,0.0,m/s
Data,1,record,timestamp,1699437642000,ms,distance,223.0,m,heart_rate,118,bpm,altitude,339.20000000000005,m,cadence,58,rpm,speed,1.44,m/s,temperature,25,C,vertical_speed,0.0,m/s
Data,2,record,timestamp,1699437643000,ms,position_lat,45.76223040930927,degrees,position_long,3.1089348066598177,degrees,distance,223.0,m,heart_rate,116,bpm,altitude,339.20000000000005,m,cadence,58,rpm,speed,1.44,m/s,temperature,25,C,vertical_speed,0.0,m/s
Data,1,record,timestamp,1699437644000,ms,distance,223.0,m,heart_rate,116,bpm,altitude,339.0,m,cadence,57,rpm,speed,1.24,m/s,temperature,25,C,vertical_speed,0.0,m/s
Data,1,record,timestamp,1699437645000,ms,distance,225.0,m,heart_rate,115,bpm,altitude,339.0,m,cadence,57,rpm,speed,1.24,m/s,temperature,25,C,vertical_speed,0.0,m/s
Data,2,record,timestamp,1699437646000,ms,position_lat,45.76224960386753,degrees,position_long,3.108931789174676,degrees,distance,225.0,m,heart_rate,116,bpm,altitude,339.0,m,cadence,57,rpm,speed,0.0,m/s,temperature,25,C,vertical_speed,0.0,m/s
Data,1,record,timestamp,1699437647000,ms,distance,225.0,m,heart_rate,116,bpm,altitude,339.20000000000005,m,cadence,57,rpm,speed,0.0,m/s,temperature,25,C,vertical_speed,0.0,m/s
Data,1,record,timestamp,1699437648000,ms,distance,225.0,m,heart_rate,116,bpm,altitude,339.20000000000005,m,cadence,57,rpm,speed,0.0,m/s,temperature,25,C,vertical_speed,0.0,m/s
Data,1,record,timestamp,1699437649000,ms,distance,225.0,m,heart_rate,116,bpm,altitude,339.20000000000005,m,cadence,0,rpm,speed,0.0,m/s,temperature,25,C,vertical_speed,0.0,m/s
Data,1,record,timestamp,1699437650000,ms,distance,225.0,m,heart_rate,118,bpm,altitude,339.20000000000005,m,cadence,0,rpm,speed,0.3,m/s,temperature,25,C,vertical_speed,0.0,m/s
Data,1,record,timestamp,1699437651000,ms,distance,225.0,m,heart_rate,119,bpm,altitude,339.20000000000005,m,cadence,0,rpm,speed,0.3,m/s,temperature,25,C,vertical_speed,0.0,m/s
Data,1,record,timestamp,1699437652000,ms,distance,225.0,m,heart_rate,118,bpm,altitude,339.0,m,cadence,0,rpm,speed,0.0,m/s,temperature,25,C,vertical_speed,0.0,m/s
Data,1,record,timestamp,1699437653000,ms,distance,225.0,m,heart_rate,119,bpm,altitude,339.0,m,cadence,0,rpm,speed,0.0,m/s,temperature,25,C,vertical_speed,0.0,m/s
Data,1,record,timestamp,1699437654000,ms,distance,225.0,m,heart_rate,120,bpm,altitude,339.0,m,cadence,0,rpm,speed,0.0,m/s,temperature,25,C,vertical_speed,0.0,m/s
Data,1,record,timestamp,1699437655000,ms,distance,225.0,m,heart_rate,119,bpm,altitude,339.20000000000005,m,cadence,0,rpm,speed,0.0,m/s,temperature,25,C,vertical_speed,0.0,m/s
Data,1,record,timestamp,1699437656000,ms,distance,225.0,m,heart_rate,119,bpm,altitude,339.20000000000005,m,cadence,0,rpm,speed,0.0,m/s,temperature,25,C,vertical_speed,0.0,m/s
Data,1,record,timestamp,1699437657000,ms,distance,225.0,m,heart_rate,117,bpm,altitude,339.20000000000005,m,cadence,0,rpm,speed,0.0,m/s,temperature,25,C,vertical_speed,0.0,m/s
Data,1,record,timestamp,1699437658000,ms,distance,225.0,m,heart_rate,118,bpm,altitude,339.20000000000005,m,cadence,0,rpm,speed,0.0,m/s,temperature,25,C,vertical_speed,0.0,m/s
Data,1,record,timestamp,1699437659000,ms,distance,225.0,m,heart_rate,115,bpm,altitude,339.4,m,cadence,0,rpm,speed,0.0,m/s,temperature,25,C,vertical_speed,0.0,m/s
Data,1,record,timestamp,1699437660000,ms,distance,225.0,m,heart_rate,115,bpm,altitude,339.4,m,cadence,0,rpm,speed,0.0,m/s,temperature,25,C,vertical_speed,0.0,m/s
Data,8,lap,timestamp,1699437660000,ms,start_time,1699437448000,ms,total_elapsed_time,212.86,s,event,9,,event_type,1,,lap_trigger,0,,total_timer_time,187.4,s,min_altitude,338.79999999999995,m,avg_altitude,339.20000000000005,m,max_altitude,339.79999999999995,m,avg_cadence,57,rpm,max_cadence,75,rpm,total_distance,225.0,m,min_heart_rate,88,bpm,avg_heart_rate,99,bpm,max_heart_rate,120,bpm,avg_speed,1.201,m/s,max_speed,1.65,m/s,avg_temperature,26,C,max_temperature,27,C,total_calories,25,kcal
Data,1,record,timestamp,1699437661000,ms,distance,225.0,m,heart_rate,116,bpm,altitude,339.4,m,cadence,0,rpm,speed,0.0,m/s,temperature,25,C,vertical_speed,0.0,m/s
Data,1,record,timestamp,1699437662000,ms,distance,225.0,m,heart_rate,116,bpm,altitude,339.4,m,cadence,0,rpm,speed,0.0,m/s,temperature,25,C,vertical_speed,0.0,m/s
Data,1,record,timestamp,1699437663000,ms,distance,225.0,m,heart_rate,118,bpm,altitude,339.4,m,cadence,0,rpm,speed,0.0,m/s,temperature,25,C,vertical_speed,0.0,m/s
Data,1,record,timestamp,1699437664000,ms,distance,225.0,m,heart_rate,119,bpm,altitude,339.4,m,cadence,0,rpm,speed,0.0,m/s,temperature,25,C,vertical_speed,0.0,m/s
Data,1,record,timestamp,1699437665000,ms,distance,225.0,m,heart_rate,119,bpm,altitude,339.6,m,cadence,0,rpm,speed,0.0,m/s,temperature,25,C,vertical_speed,0.0,m/s
Data,1,record,timestamp,1699437666000,ms,distance,225.0,m,heart_rate,118,bpm,altitude,339.6,m,cadence,0,rpm,speed,0.0,m/s,temperature,25,C,vertical_speed,0.0,m/s
Data,1,record,timestamp,1699437667000,ms,distance,225.0,m,heart_rate,118,bpm,altitude,339.6,m,cadence,0,rpm,speed,0.0,m/s,temperature,25,C,vertical_speed,0.0,m/s
Data,9,lap,timestamp,1699437667000,ms,start_time,1699437660000,ms,total_elapsed_time,6.58,s,event,9,,event_type,1,,lap_trigger,0,,total_timer_time,6.6,s,min_altitude,339.4,m,avg_altitude,339.4,m,max_altitude,339.6,m,min_heart_rate,116,bpm,avg_heart_rate,118,bpm,max_heart_rate,119,bpm,avg_temperature,25,C,max_temperature,25,C
Data,1,record,timestamp,1699437668000,ms,distance,225.0,m,heart_rate,117,bpm,altitude,339.4,m,cadence,0,rpm,speed,0.0,m/s,temperature,25,C,vertical_speed,0.0,m/s
Data,1,record,timestamp,1699437669000,ms,distance,225.0,m,heart_rate,118,bpm,altitude,339.4,m,cadence,0,rpm,speed,0.0,m/s,temperature,25,C,vertical_speed,0.0,m/s
Data,1,record,timestamp,1699437670000,ms,distance,225.0,m,heart_rate,114,bpm,altitude,339.20000000000005,m,cadence,0,rpm,speed,0.0,m/s,temperature,25,C,vertical_speed,0.0,m/s
Data,1,record,timestamp,1699437671000,ms,distance,225.0,m,heart_rate,114,bpm,altitude,339.20000000000005,m,cadence,0,rpm,speed,0.0,m/s,temperature,25,C,vertical_speed,0.0,m/s
Data,1,record,timestamp,1699437672000,ms,distance,225.0,m,heart_rate,111,bpm,altitude,339.20000000000005,m,cadence,0,rpm,speed,0.0,m/s,temperature,25,C,vertical_speed,0.0,m/s
Data,1,record,timestamp,1699437673000,ms,distance,225.0,m,heart_rate,111,bpm,altitude,339.20000000000005,m,cadence,0,rpm,speed,0.0,m/s,temperature,25,C,vertical_speed,0.0,m/s
Data,1,record,timestamp,1699437674000,ms,distance,225.0,m,heart_rate,112,bpm,altitude,339.20000000000005,m,cadence,0,rpm,speed,0.0,m/s,temperature,25,C,vertical_speed,0.0,m/s
Data,1,record,timestamp,1699437675000,ms,distance,225.0,m,heart_rate,114,bpm,altitude,339.4,m,cadence,0,rpm,speed,0.0,m/s,temperature,25,C,vertical_speed,0.0,m/s
Data,1,record,timestamp,1699437676000,ms,distance,225.0,m,heart_rate,114,bpm,altitude,339.4,m,cadence,0,rpm,speed,0.0,m/s,temperature,25,C,vertical_speed,0.0,m/s
Definition,0,lap,timestamp,4,bytes,start_time,4,bytes,total_elapsed_time,4,bytes,event,1,bytes,event_type,1,bytes,lap_trigger,1,bytes,total_timer_time,4,bytes,min_altitude,2,bytes,avg_altitude,2,bytes,max_altitude,2,bytes,min_heart_rate,1,bytes,avg_heart_rate,1,bytes,max_heart_rate,1,bytes,avg_temperature,1,bytes,max_temperature,1,bytes,total_calories,2,bytes
Data,0,lap,timestamp,1699437676000,ms,start_time,1699437667000,ms,total_elapsed_time,9.05,s,event,9,,event_type,1,,lap_trigger,0,,total_timer_time,9.1,s,min_altitude,339.20000000000005,m,avg_altitude,339.20000000000005,m,max_altitude,339.6,m,min_heart_rate,111,bpm,avg_heart_rate,114,bpm,max_heart_rate,118,bpm,avg_temperature,25,C,max_temperature,25,C,total_calories,5,kcal
Data,4,event,event,0,,timestamp,1699437676000,ms,event_type,1,,timer_trigger,0,
Data,6,session,timestamp,1699437676000,ms,start_time,1699437448000,ms,event,8,,event_type,1,,sport,11,,first_lap_index,0,,num_laps,3,,min_heart_rate,88,bpm,avg_heart_rate,100,bpm,max_heart_rate,120,bpm,avg_speed,1.108,m/s,max_speed,1.65,m/s,total_calories,30,kcal,total_timer_time,203.06,s,total_elapsed_time,228.49,s,total_distance,225.0,m,max_altitude,339.79999999999995,m,min_altitude,338.79999999999995,m,training_stress_score,2.1,tss,total_strides,118,strides,avg_temperature,26,C,max_temperature,27,C,avg_cadence,57,rpm,max_cadence,75,rpm,total_training_effect,1.1,,total_ascent,0,m,total_descent,0,m,time_in_hr_zone,202.847,s,field_description,180,s,field_description,1.5,l/kg,field_description,5,,field_description,0.0,m
Definition,0,activity,timestamp,4,bytes,num_sessions,2,bytes,type,1,bytes,event,1,bytes,event_type,1,bytes,local_timestamp,4,bytes
Data,0,activity,timestamp,1699437676000,ms,num_sessions,1,,type,0,,event,26,,event_type,1,,local_timestamp,1068375676,
Can't render this file because it has a wrong number of fields in line 2.

@ -0,0 +1,22 @@
import csv
# Spécifiez le chemin du fichier CSV que vous souhaitez lire
fichier_csv = 'data\\heartrate_seconds_merged.csv'
final = 'User\\User_4020332650\\heartrate.csv'
data = []
data.append(["Time","Value"])
# Ouvrir le fichier CSV en mode lecture
with open(fichier_csv, 'r', newline='') as fichier:
lecteur_csv = csv.reader(fichier)
for ligne in lecteur_csv:
if ( ligne[0] == '4020332650'):
data.append([ligne[1],ligne[2]])
with open(final,'w', newline='') as fichierFinal:
ecrivain_csv = csv.writer(fichierFinal)
ecrivain_csv.writerows(data)

@ -0,0 +1,22 @@
import csv
# Spécifiez le chemin du fichier CSV que vous souhaitez lire
fichier_csv = 'data\\sleepDay_merged.csv'
final = 'User\\User_4020332650\\sleep.csv'
data = []
data.append(["Time","Value"])
# Ouvrir le fichier CSV en mode lecture
with open(fichier_csv, 'r', newline='') as fichier:
lecteur_csv = csv.reader(fichier)
for ligne in lecteur_csv:
if ( ligne[0] == '4020332650'):
data.append([ligne[1],ligne[2]])
with open(final,'w', newline='') as fichierFinal:
ecrivain_csv = csv.writer(fichierFinal)
ecrivain_csv.writerows(data)

@ -0,0 +1,22 @@
import csv
# Spécifiez le chemin du fichier CSV que vous souhaitez lire
fichier_csv = 'data\\dailySteps_merged.csv'
final = 'User\\User_4020332650\\dailySteps.csv'
data = []
data.append(["ActivityDay","StepTotal"])
# Ouvrir le fichier CSV en mode lecture
with open(fichier_csv, 'r', newline='') as fichier:
lecteur_csv = csv.reader(fichier)
for ligne in lecteur_csv:
if ( ligne[0] == '2022484408'):
data.append([ligne[1],ligne[2]])
with open(final,'w', newline='') as fichierFinal:
ecrivain_csv = csv.writer(fichierFinal)
ecrivain_csv.writerows(data)

@ -0,0 +1,28 @@
# This file configures the analyzer, which statically analyzes Dart code to
# check for errors, warnings, and lints.
#
# The issues identified by the analyzer are surfaced in the UI of Dart-enabled
# IDEs (https://dart.dev/tools#ides-and-editors). The analyzer can also be
# invoked from the command line by running `flutter analyze`.
# The following line activates a set of recommended lints for Flutter apps,
# packages, and plugins designed to encourage good coding practices.
include: package:flutter_lints/flutter.yaml
linter:
# The lint rules applied to this project can be customized in the
# section below to disable rules from the `package:flutter_lints/flutter.yaml`
# included above or to enable additional rules. A list of all available lints
# and their documentation is published at https://dart.dev/lints.
#
# Instead of disabling a lint rule for the entire project in the
# section below, it can also be suppressed for a single line of code
# or a specific dart file by using the `// ignore: name_of_lint` and
# `// ignore_for_file: name_of_lint` syntax on the line or in the file
# producing the lint.
rules:
# avoid_print: false # Uncomment to disable the `avoid_print` rule
# prefer_single_quotes: true # Uncomment to enable the `prefer_single_quotes` rule
# Additional information about this file can be found at
# https://dart.dev/guides/language/analysis-options

13
android/.gitignore vendored

@ -0,0 +1,13 @@
gradle-wrapper.jar
/.gradle
/captures/
/gradlew
/gradlew.bat
/local.properties
GeneratedPluginRegistrant.java
# Remember to never publicly share your keystore.
# See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app
key.properties
**/*.keystore
**/*.jks

@ -0,0 +1,67 @@
plugins {
id "com.android.application"
id "kotlin-android"
id "dev.flutter.flutter-gradle-plugin"
}
def localProperties = new Properties()
def localPropertiesFile = rootProject.file('local.properties')
if (localPropertiesFile.exists()) {
localPropertiesFile.withReader('UTF-8') { reader ->
localProperties.load(reader)
}
}
def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
if (flutterVersionCode == null) {
flutterVersionCode = '1'
}
def flutterVersionName = localProperties.getProperty('flutter.versionName')
if (flutterVersionName == null) {
flutterVersionName = '1.0'
}
android {
namespace "com.example.smartfit_app_mobile"
compileSdkVersion flutter.compileSdkVersion
ndkVersion flutter.ndkVersion
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
kotlinOptions {
jvmTarget = '1.8'
}
sourceSets {
main.java.srcDirs += 'src/main/kotlin'
}
defaultConfig {
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
applicationId "com.example.smartfit_app_mobile"
// You can update the following values to match your application needs.
// For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration.
minSdkVersion flutter.minSdkVersion
targetSdkVersion flutter.targetSdkVersion
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
}
buildTypes {
release {
// TODO: Add your own signing config for the release build.
// Signing with the debug keys for now, so `flutter run --release` works.
signingConfig signingConfigs.debug
}
}
}
flutter {
source '../..'
}
dependencies {}

@ -0,0 +1,7 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<!-- The INTERNET permission is required for development. Specifically,
the Flutter tool needs it to communicate with the running application
to allow setting breakpoints, to provide hot reload, etc.
-->
<uses-permission android:name="android.permission.INTERNET"/>
</manifest>

@ -0,0 +1,35 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<application
android:label="smartfit_app_mobile"
android:name="${applicationName}"
android:icon="@mipmap/ic_launcher">
<activity
android:name=".MainActivity"
android:exported="true"
android:launchMode="singleTop"
android:theme="@style/LaunchTheme"
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
android:hardwareAccelerated="true"
android:windowSoftInputMode="adjustResize">
<!-- Specifies an Android theme to apply to this Activity as soon as
the Android process has started. This theme is visible to the user
while the Flutter UI initializes. After that, this theme continues
to determine the Window background behind the Flutter UI. -->
<meta-data
android:name="io.flutter.embedding.android.NormalTheme"
android:resource="@style/NormalTheme"
/>
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<!-- Don't delete the meta-data below.
This is used by the Flutter tool to generate GeneratedPluginRegistrant.java -->
<meta-data
android:name="flutterEmbedding"
android:value="2" />
</application>
<!-- Required to fetch data from the internet. -->
<uses-permission android:name="android.permission.INTERNET" />
</manifest>

@ -0,0 +1,6 @@
package com.example.smartfit_app_mobile
import io.flutter.embedding.android.FlutterActivity
class MainActivity: FlutterActivity() {
}

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Modify this file to customize your launch splash screen -->
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="?android:colorBackground" />
<!-- You can insert your own image assets here -->
<!-- <item>
<bitmap
android:gravity="center"
android:src="@mipmap/launch_image" />
</item> -->
</layer-list>

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Modify this file to customize your launch splash screen -->
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@android:color/white" />
<!-- You can insert your own image assets here -->
<!-- <item>
<bitmap
android:gravity="center"
android:src="@mipmap/launch_image" />
</item> -->
</layer-list>

Binary file not shown.

After

Width:  |  Height:  |  Size: 544 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 442 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 721 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- Theme applied to the Android Window while the process is starting when the OS's Dark Mode setting is on -->
<style name="LaunchTheme" parent="@android:style/Theme.Black.NoTitleBar">
<!-- Show a splash screen on the activity. Automatically removed when
the Flutter engine draws its first frame -->
<item name="android:windowBackground">@drawable/launch_background</item>
</style>
<!-- Theme applied to the Android Window as soon as the process has started.
This theme determines the color of the Android Window while your
Flutter UI initializes, as well as behind your Flutter UI while its
running.
This Theme is only used starting with V2 of Flutter's Android embedding. -->
<style name="NormalTheme" parent="@android:style/Theme.Black.NoTitleBar">
<item name="android:windowBackground">?android:colorBackground</item>
</style>
</resources>

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- Theme applied to the Android Window while the process is starting when the OS's Dark Mode setting is off -->
<style name="LaunchTheme" parent="@android:style/Theme.Light.NoTitleBar">
<!-- Show a splash screen on the activity. Automatically removed when
the Flutter engine draws its first frame -->
<item name="android:windowBackground">@drawable/launch_background</item>
</style>
<!-- Theme applied to the Android Window as soon as the process has started.
This theme determines the color of the Android Window while your
Flutter UI initializes, as well as behind your Flutter UI while its
running.
This Theme is only used starting with V2 of Flutter's Android embedding. -->
<style name="NormalTheme" parent="@android:style/Theme.Light.NoTitleBar">
<item name="android:windowBackground">?android:colorBackground</item>
</style>
</resources>

@ -0,0 +1,7 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<!-- The INTERNET permission is required for development. Specifically,
the Flutter tool needs it to communicate with the running application
to allow setting breakpoints, to provide hot reload, etc.
-->
<uses-permission android:name="android.permission.INTERNET"/>
</manifest>

@ -0,0 +1,31 @@
buildscript {
ext.kotlin_version = '1.7.10'
repositories {
google()
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:7.3.0'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
allprojects {
repositories {
google()
mavenCentral()
}
}
rootProject.buildDir = '../build'
subprojects {
project.buildDir = "${rootProject.buildDir}/${project.name}"
}
subprojects {
project.evaluationDependsOn(':app')
}
tasks.register("clean", Delete) {
delete rootProject.buildDir
}

@ -0,0 +1,3 @@
org.gradle.jvmargs=-Xmx1536M
android.useAndroidX=true
android.enableJetifier=true

@ -0,0 +1,5 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-all.zip

@ -0,0 +1,20 @@
pluginManagement {
def flutterSdkPath = {
def properties = new Properties()
file("local.properties").withInputStream { properties.load(it) }
def flutterSdkPath = properties.getProperty("flutter.sdk")
assert flutterSdkPath != null, "flutter.sdk not set in local.properties"
return flutterSdkPath
}
settings.ext.flutterSdkPath = flutterSdkPath()
includeBuild("${settings.ext.flutterSdkPath}/packages/flutter_tools/gradle")
plugins {
id "dev.flutter.flutter-gradle-plugin" version "1.0.0" apply false
}
}
include ":app"
apply from: "${settings.ext.flutterSdkPath}/packages/flutter_tools/gradle/app_plugin_loader.gradle"

34
ios/.gitignore vendored

@ -0,0 +1,34 @@
**/dgph
*.mode1v3
*.mode2v3
*.moved-aside
*.pbxuser
*.perspectivev3
**/*sync/
.sconsign.dblite
.tags*
**/.vagrant/
**/DerivedData/
Icon?
**/Pods/
**/.symlinks/
profile
xcuserdata
**/.generated/
Flutter/App.framework
Flutter/Flutter.framework
Flutter/Flutter.podspec
Flutter/Generated.xcconfig
Flutter/ephemeral/
Flutter/app.flx
Flutter/app.zip
Flutter/flutter_assets/
Flutter/flutter_export_environment.sh
ServiceDefinitions.json
Runner/GeneratedPluginRegistrant.*
# Exceptions to above rules.
!default.mode1v3
!default.mode2v3
!default.pbxuser
!default.perspectivev3

@ -0,0 +1,26 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleExecutable</key>
<string>App</string>
<key>CFBundleIdentifier</key>
<string>io.flutter.flutter.app</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>App</string>
<key>CFBundlePackageType</key>
<string>FMWK</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>1.0</string>
<key>MinimumOSVersion</key>
<string>11.0</string>
</dict>
</plist>

@ -0,0 +1 @@
#include "Generated.xcconfig"

@ -0,0 +1 @@
#include "Generated.xcconfig"

@ -0,0 +1,614 @@
// !$*UTF8*$!
{
archiveVersion = 1;
classes = {
};
objectVersion = 54;
objects = {
/* Begin PBXBuildFile section */
1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; };
3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; };
74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; };
97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; };
97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; };
97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; };
331C808B294A63AB00263BE5 /* RunnerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 331C807B294A618700263BE5 /* RunnerTests.swift */; };
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
331C8085294A63A400263BE5 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 97C146E61CF9000F007C117D /* Project object */;
proxyType = 1;
remoteGlobalIDString = 97C146ED1CF9000F007C117D;
remoteInfo = Runner;
};
/* End PBXContainerItemProxy section */
/* Begin PBXCopyFilesBuildPhase section */
9705A1C41CF9048500538489 /* Embed Frameworks */ = {
isa = PBXCopyFilesBuildPhase;
buildActionMask = 2147483647;
dstPath = "";
dstSubfolderSpec = 10;
files = (
);
name = "Embed Frameworks";
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXCopyFilesBuildPhase section */
/* Begin PBXFileReference section */
1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = "<group>"; };
1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = "<group>"; };
3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = "<group>"; };
74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = "<group>"; };
74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = "<group>"; };
9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = "<group>"; };
9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = "<group>"; };
97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; };
97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; };
97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
331C807B294A618700263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = "<group>"; };
331C8081294A63A400263BE5 /* RunnerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
97C146EB1CF9000F007C117D /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
9740EEB11CF90186004384FC /* Flutter */ = {
isa = PBXGroup;
children = (
3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */,
9740EEB21CF90195004384FC /* Debug.xcconfig */,
7AFA3C8E1D35360C0083082E /* Release.xcconfig */,
9740EEB31CF90195004384FC /* Generated.xcconfig */,
);
name = Flutter;
sourceTree = "<group>";
};
331C8082294A63A400263BE5 /* RunnerTests */ = {
isa = PBXGroup;
children = (
331C807B294A618700263BE5 /* RunnerTests.swift */,
);
path = RunnerTests;
sourceTree = "<group>";
};
97C146E51CF9000F007C117D = {
isa = PBXGroup;
children = (
9740EEB11CF90186004384FC /* Flutter */,
97C146F01CF9000F007C117D /* Runner */,
97C146EF1CF9000F007C117D /* Products */,
331C8082294A63A400263BE5 /* RunnerTests */,
);
sourceTree = "<group>";
};
97C146EF1CF9000F007C117D /* Products */ = {
isa = PBXGroup;
children = (
97C146EE1CF9000F007C117D /* Runner.app */,
331C8081294A63A400263BE5 /* RunnerTests.xctest */,
);
name = Products;
sourceTree = "<group>";
};
97C146F01CF9000F007C117D /* Runner */ = {
isa = PBXGroup;
children = (
97C146FA1CF9000F007C117D /* Main.storyboard */,
97C146FD1CF9000F007C117D /* Assets.xcassets */,
97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */,
97C147021CF9000F007C117D /* Info.plist */,
1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */,
1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */,
74858FAE1ED2DC5600515810 /* AppDelegate.swift */,
74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */,
);
path = Runner;
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
331C8080294A63A400263BE5 /* RunnerTests */ = {
isa = PBXNativeTarget;
buildConfigurationList = 331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */;
buildPhases = (
331C807D294A63A400263BE5 /* Sources */,
331C807E294A63A400263BE5 /* Frameworks */,
331C807F294A63A400263BE5 /* Resources */,
);
buildRules = (
);
dependencies = (
331C8086294A63A400263BE5 /* PBXTargetDependency */,
);
name = RunnerTests;
productName = RunnerTests;
productReference = 331C8081294A63A400263BE5 /* RunnerTests.xctest */;
productType = "com.apple.product-type.bundle.unit-test";
};
97C146ED1CF9000F007C117D /* Runner */ = {
isa = PBXNativeTarget;
buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */;
buildPhases = (
9740EEB61CF901F6004384FC /* Run Script */,
97C146EA1CF9000F007C117D /* Sources */,
97C146EB1CF9000F007C117D /* Frameworks */,
97C146EC1CF9000F007C117D /* Resources */,
9705A1C41CF9048500538489 /* Embed Frameworks */,
3B06AD1E1E4923F5004D2608 /* Thin Binary */,
);
buildRules = (
);
dependencies = (
);
name = Runner;
productName = Runner;
productReference = 97C146EE1CF9000F007C117D /* Runner.app */;
productType = "com.apple.product-type.application";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
97C146E61CF9000F007C117D /* Project object */ = {
isa = PBXProject;
attributes = {
BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 1430;
ORGANIZATIONNAME = "";
TargetAttributes = {
331C8080294A63A400263BE5 = {
CreatedOnToolsVersion = 14.0;
TestTargetID = 97C146ED1CF9000F007C117D;
};
97C146ED1CF9000F007C117D = {
CreatedOnToolsVersion = 7.3.1;
LastSwiftMigration = 1100;
};
};
};
buildConfigurationList = 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */;
compatibilityVersion = "Xcode 9.3";
developmentRegion = en;
hasScannedForEncodings = 0;
knownRegions = (
en,
Base,
);
mainGroup = 97C146E51CF9000F007C117D;
productRefGroup = 97C146EF1CF9000F007C117D /* Products */;
projectDirPath = "";
projectRoot = "";
targets = (
97C146ED1CF9000F007C117D /* Runner */,
331C8080294A63A400263BE5 /* RunnerTests */,
);
};
/* End PBXProject section */
/* Begin PBXResourcesBuildPhase section */
331C807F294A63A400263BE5 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
97C146EC1CF9000F007C117D /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */,
3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */,
97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */,
97C146FC1CF9000F007C117D /* Main.storyboard in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */
/* Begin PBXShellScriptBuildPhase section */
3B06AD1E1E4923F5004D2608 /* Thin Binary */ = {
isa = PBXShellScriptBuildPhase;
alwaysOutOfDate = 1;
buildActionMask = 2147483647;
files = (
);
inputPaths = (
"${TARGET_BUILD_DIR}/${INFOPLIST_PATH}",
);
name = "Thin Binary";
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin";
};
9740EEB61CF901F6004384FC /* Run Script */ = {
isa = PBXShellScriptBuildPhase;
alwaysOutOfDate = 1;
buildActionMask = 2147483647;
files = (
);
inputPaths = (
);
name = "Run Script";
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build";
};
/* End PBXShellScriptBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
331C807D294A63A400263BE5 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
331C808B294A63AB00263BE5 /* RunnerTests.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
97C146EA1CF9000F007C117D /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */,
1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin PBXTargetDependency section */
331C8086294A63A400263BE5 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = 97C146ED1CF9000F007C117D /* Runner */;
targetProxy = 331C8085294A63A400263BE5 /* PBXContainerItemProxy */;
};
/* End PBXTargetDependency section */
/* Begin PBXVariantGroup section */
97C146FA1CF9000F007C117D /* Main.storyboard */ = {
isa = PBXVariantGroup;
children = (
97C146FB1CF9000F007C117D /* Base */,
);
name = Main.storyboard;
sourceTree = "<group>";
};
97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */ = {
isa = PBXVariantGroup;
children = (
97C147001CF9000F007C117D /* Base */,
);
name = LaunchScreen.storyboard;
sourceTree = "<group>";
};
/* End PBXVariantGroup section */
/* Begin XCBuildConfiguration section */
249021D3217E4FDB00AE95B9 /* Profile */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_NONNULL = YES;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_NO_COMMON_BLOCKS = YES;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 11.0;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = iphoneos;
SUPPORTED_PLATFORMS = iphoneos;
TARGETED_DEVICE_FAMILY = "1,2";
VALIDATE_PRODUCT = YES;
};
name = Profile;
};
249021D4217E4FDB00AE95B9 /* Profile */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
ENABLE_BITCODE = NO;
INFOPLIST_FILE = Runner/Info.plist;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
);
PRODUCT_BUNDLE_IDENTIFIER = com.example.smartfitAppMobile;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
SWIFT_VERSION = 5.0;
VERSIONING_SYSTEM = "apple-generic";
};
name = Profile;
};
331C8088294A63A400263BE5 /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = AE0B7B92F70575B8D7E0D07E /* Pods-RunnerTests.debug.xcconfig */;
buildSettings = {
BUNDLE_LOADER = "$(TEST_HOST)";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 1;
GENERATE_INFOPLIST_FILE = YES;
MARKETING_VERSION = 1.0;
PRODUCT_BUNDLE_IDENTIFIER = com.example.smartfitAppMobile.RunnerTests;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
SWIFT_VERSION = 5.0;
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner";
};
name = Debug;
};
331C8089294A63A400263BE5 /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 89B67EB44CE7B6631473024E /* Pods-RunnerTests.release.xcconfig */;
buildSettings = {
BUNDLE_LOADER = "$(TEST_HOST)";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 1;
GENERATE_INFOPLIST_FILE = YES;
MARKETING_VERSION = 1.0;
PRODUCT_BUNDLE_IDENTIFIER = com.example.smartfitAppMobile.RunnerTests;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_VERSION = 5.0;
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner";
};
name = Release;
};
331C808A294A63A400263BE5 /* Profile */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 640959BDD8F10B91D80A66BE /* Pods-RunnerTests.profile.xcconfig */;
buildSettings = {
BUNDLE_LOADER = "$(TEST_HOST)";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 1;
GENERATE_INFOPLIST_FILE = YES;
MARKETING_VERSION = 1.0;
PRODUCT_BUNDLE_IDENTIFIER = com.example.smartfitAppMobile.RunnerTests;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_VERSION = 5.0;
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner";
};
name = Profile;
};
97C147031CF9000F007C117D /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_NONNULL = YES;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = dwarf;
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_TESTABILITY = YES;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_DYNAMIC_NO_PIC = NO;
GCC_NO_COMMON_BLOCKS = YES;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PREPROCESSOR_DEFINITIONS = (
"DEBUG=1",
"$(inherited)",
);
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 11.0;
MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = iphoneos;
TARGETED_DEVICE_FAMILY = "1,2";
};
name = Debug;
};
97C147041CF9000F007C117D /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_NONNULL = YES;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_NO_COMMON_BLOCKS = YES;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 11.0;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = iphoneos;
SUPPORTED_PLATFORMS = iphoneos;
SWIFT_COMPILATION_MODE = wholemodule;
SWIFT_OPTIMIZATION_LEVEL = "-O";
TARGETED_DEVICE_FAMILY = "1,2";
VALIDATE_PRODUCT = YES;
};
name = Release;
};
97C147061CF9000F007C117D /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
ENABLE_BITCODE = NO;
INFOPLIST_FILE = Runner/Info.plist;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
);
PRODUCT_BUNDLE_IDENTIFIER = com.example.smartfitAppMobile;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
SWIFT_VERSION = 5.0;
VERSIONING_SYSTEM = "apple-generic";
};
name = Debug;
};
97C147071CF9000F007C117D /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
ENABLE_BITCODE = NO;
INFOPLIST_FILE = Runner/Info.plist;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
);
PRODUCT_BUNDLE_IDENTIFIER = com.example.smartfitAppMobile;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
SWIFT_VERSION = 5.0;
VERSIONING_SYSTEM = "apple-generic";
};
name = Release;
};
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */ = {
isa = XCConfigurationList;
buildConfigurations = (
331C8088294A63A400263BE5 /* Debug */,
331C8089294A63A400263BE5 /* Release */,
331C808A294A63A400263BE5 /* Profile */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */ = {
isa = XCConfigurationList;
buildConfigurations = (
97C147031CF9000F007C117D /* Debug */,
97C147041CF9000F007C117D /* Release */,
249021D3217E4FDB00AE95B9 /* Profile */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */ = {
isa = XCConfigurationList;
buildConfigurations = (
97C147061CF9000F007C117D /* Debug */,
97C147071CF9000F007C117D /* Release */,
249021D4217E4FDB00AE95B9 /* Profile */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */
};
rootObject = 97C146E61CF9000F007C117D /* Project object */;
}

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<Workspace
version = "1.0">
<FileRef
location = "self:">
</FileRef>
</Workspace>

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>IDEDidComputeMac32BitWarning</key>
<true/>
</dict>
</plist>

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>PreviewsEnabled</key>
<false/>
</dict>
</plist>

@ -0,0 +1,98 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1430"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "97C146ED1CF9000F007C117D"
BuildableName = "Runner.app"
BlueprintName = "Runner"
ReferencedContainer = "container:Runner.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES">
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "97C146ED1CF9000F007C117D"
BuildableName = "Runner.app"
BlueprintName = "Runner"
ReferencedContainer = "container:Runner.xcodeproj">
</BuildableReference>
</MacroExpansion>
<Testables>
<TestableReference
skipped = "NO"
parallelizable = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "331C8080294A63A400263BE5"
BuildableName = "RunnerTests.xctest"
BlueprintName = "RunnerTests"
ReferencedContainer = "container:Runner.xcodeproj">
</BuildableReference>
</TestableReference>
</Testables>
</TestAction>
<LaunchAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
allowLocationSimulation = "YES">
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "97C146ED1CF9000F007C117D"
BuildableName = "Runner.app"
BlueprintName = "Runner"
ReferencedContainer = "container:Runner.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
</LaunchAction>
<ProfileAction
buildConfiguration = "Profile"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES">
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "97C146ED1CF9000F007C117D"
BuildableName = "Runner.app"
BlueprintName = "Runner"
ReferencedContainer = "container:Runner.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<Workspace
version = "1.0">
<FileRef
location = "group:Runner.xcodeproj">
</FileRef>
</Workspace>

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>IDEDidComputeMac32BitWarning</key>
<true/>
</dict>
</plist>

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>PreviewsEnabled</key>
<false/>
</dict>
</plist>

@ -0,0 +1,13 @@
import UIKit
import Flutter
@UIApplicationMain
@objc class AppDelegate: FlutterAppDelegate {
override func application(
_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
) -> Bool {
GeneratedPluginRegistrant.register(with: self)
return super.application(application, didFinishLaunchingWithOptions: launchOptions)
}
}

@ -0,0 +1,122 @@
{
"images" : [
{
"size" : "20x20",
"idiom" : "iphone",
"filename" : "Icon-App-20x20@2x.png",
"scale" : "2x"
},
{
"size" : "20x20",
"idiom" : "iphone",
"filename" : "Icon-App-20x20@3x.png",
"scale" : "3x"
},
{
"size" : "29x29",
"idiom" : "iphone",
"filename" : "Icon-App-29x29@1x.png",
"scale" : "1x"
},
{
"size" : "29x29",
"idiom" : "iphone",
"filename" : "Icon-App-29x29@2x.png",
"scale" : "2x"
},
{
"size" : "29x29",
"idiom" : "iphone",
"filename" : "Icon-App-29x29@3x.png",
"scale" : "3x"
},
{
"size" : "40x40",
"idiom" : "iphone",
"filename" : "Icon-App-40x40@2x.png",
"scale" : "2x"
},
{
"size" : "40x40",
"idiom" : "iphone",
"filename" : "Icon-App-40x40@3x.png",
"scale" : "3x"
},
{
"size" : "60x60",
"idiom" : "iphone",
"filename" : "Icon-App-60x60@2x.png",
"scale" : "2x"
},
{
"size" : "60x60",
"idiom" : "iphone",
"filename" : "Icon-App-60x60@3x.png",
"scale" : "3x"
},
{
"size" : "20x20",
"idiom" : "ipad",
"filename" : "Icon-App-20x20@1x.png",
"scale" : "1x"
},
{
"size" : "20x20",
"idiom" : "ipad",
"filename" : "Icon-App-20x20@2x.png",
"scale" : "2x"
},
{
"size" : "29x29",
"idiom" : "ipad",
"filename" : "Icon-App-29x29@1x.png",
"scale" : "1x"
},
{
"size" : "29x29",
"idiom" : "ipad",
"filename" : "Icon-App-29x29@2x.png",
"scale" : "2x"
},
{
"size" : "40x40",
"idiom" : "ipad",
"filename" : "Icon-App-40x40@1x.png",
"scale" : "1x"
},
{
"size" : "40x40",
"idiom" : "ipad",
"filename" : "Icon-App-40x40@2x.png",
"scale" : "2x"
},
{
"size" : "76x76",
"idiom" : "ipad",
"filename" : "Icon-App-76x76@1x.png",
"scale" : "1x"
},
{
"size" : "76x76",
"idiom" : "ipad",
"filename" : "Icon-App-76x76@2x.png",
"scale" : "2x"
},
{
"size" : "83.5x83.5",
"idiom" : "ipad",
"filename" : "Icon-App-83.5x83.5@2x.png",
"scale" : "2x"
},
{
"size" : "1024x1024",
"idiom" : "ios-marketing",
"filename" : "Icon-App-1024x1024@1x.png",
"scale" : "1x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 295 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 406 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 450 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 282 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 462 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 704 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 406 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 586 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 862 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 862 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 762 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

@ -0,0 +1,23 @@
{
"images" : [
{
"idiom" : "universal",
"filename" : "LaunchImage.png",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "LaunchImage@2x.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"filename" : "LaunchImage@3x.png",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 B

@ -0,0 +1,5 @@
# Launch Screen Assets
You can customize the launch screen with your own desired assets by replacing the image files in this directory.
You can also do it by opening your Flutter project's Xcode project with `open ios/Runner.xcworkspace`, selecting `Runner/Assets.xcassets` in the Project Navigator and dropping in the desired images.

@ -0,0 +1,37 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="12121" systemVersion="16G29" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" colorMatched="YES" initialViewController="01J-lp-oVM">
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="12089"/>
</dependencies>
<scenes>
<!--View Controller-->
<scene sceneID="EHf-IW-A2E">
<objects>
<viewController id="01J-lp-oVM" sceneMemberID="viewController">
<layoutGuides>
<viewControllerLayoutGuide type="top" id="Ydg-fD-yQy"/>
<viewControllerLayoutGuide type="bottom" id="xbc-2k-c8Z"/>
</layoutGuides>
<view key="view" contentMode="scaleToFill" id="Ze5-6b-2t3">
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<imageView opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" image="LaunchImage" translatesAutoresizingMaskIntoConstraints="NO" id="YRO-k0-Ey4">
</imageView>
</subviews>
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<constraints>
<constraint firstItem="YRO-k0-Ey4" firstAttribute="centerX" secondItem="Ze5-6b-2t3" secondAttribute="centerX" id="1a2-6s-vTC"/>
<constraint firstItem="YRO-k0-Ey4" firstAttribute="centerY" secondItem="Ze5-6b-2t3" secondAttribute="centerY" id="4X2-HB-R7a"/>
</constraints>
</view>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="iYj-Kq-Ea1" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="53" y="375"/>
</scene>
</scenes>
<resources>
<image name="LaunchImage" width="168" height="185"/>
</resources>
</document>

@ -0,0 +1,26 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="10117" systemVersion="15F34" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" initialViewController="BYZ-38-t0r">
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="10085"/>
</dependencies>
<scenes>
<!--Flutter View Controller-->
<scene sceneID="tne-QT-ifu">
<objects>
<viewController id="BYZ-38-t0r" customClass="FlutterViewController" sceneMemberID="viewController">
<layoutGuides>
<viewControllerLayoutGuide type="top" id="y3c-jy-aDJ"/>
<viewControllerLayoutGuide type="bottom" id="wfy-db-euE"/>
</layoutGuides>
<view key="view" contentMode="scaleToFill" id="8bC-Xf-vdC">
<rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
</view>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="dkx-z0-nzr" sceneMemberID="firstResponder"/>
</objects>
</scene>
</scenes>
</document>

@ -0,0 +1,49 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>$(DEVELOPMENT_LANGUAGE)</string>
<key>CFBundleDisplayName</key>
<string>Smartfit App Mobile</string>
<key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>smartfit_app_mobile</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>$(FLUTTER_BUILD_NAME)</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>$(FLUTTER_BUILD_NUMBER)</string>
<key>LSRequiresIPhoneOS</key>
<true/>
<key>UILaunchStoryboardName</key>
<string>LaunchScreen</string>
<key>UIMainStoryboardFile</key>
<string>Main</string>
<key>UISupportedInterfaceOrientations</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
</array>
<key>UISupportedInterfaceOrientations~ipad</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
<string>UIInterfaceOrientationPortraitUpsideDown</string>
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
</array>
<key>CADisableMinimumFrameDurationOnPhone</key>
<true/>
<key>UIApplicationSupportsIndirectInputEvents</key>
<true/>
</dict>
</plist>

@ -0,0 +1 @@
#import "GeneratedPluginRegistrant.h"

@ -0,0 +1,12 @@
import Flutter
import UIKit
import XCTest
class RunnerTests: XCTestCase {
func testExample() {
// If you add code to the Runner application, consider adding tests here.
// See https://developer.apple.com/documentation/xctest for more information about using XCTest.
}
}

@ -0,0 +1,32 @@
import 'dart:io';
import 'package:smartfit_app_mobile/Modele/user.dart';
abstract class IDataStrategy {
// Create user
Future<bool> postUser(User user);
// Delete user
Future<void> deleteUser(String token);
// Get Token validate
Future<void> getToken(String uuid, String passwordHash);
// Get all files for user
Future<void> getFiles(String token);
// Upload file on BDD
Future<bool> uploadFile(String token, File file);
// Get one file by id
Future<void> getFile(String token, String idFile);
// Delete one file on BDD
Future<void> deleteFile(String token, String idFile);
// Update email
Future<void> updateEmail(String token, String email);
// Update username
Future<void> updateUsername(String token, String username);
}

@ -0,0 +1,124 @@
import 'dart:convert';
import 'dart:io';
import 'package:smartfit_app_mobile/Modele/Api/i_data_strategy.dart';
import 'package:http/http.dart' as http;
import 'package:smartfit_app_mobile/Modele/user.dart';
class RequestApi extends IDataStrategy {
// Faire attention au URL
String urlApi = "";
@override
Future<String> getFile(String token, String idFile) async {
final response = await http.get(Uri.parse('$urlApi/$token/files/$idFile'));
if (response.statusCode == 200) {
/*return Classe.fromJson(jsonDecode(response.body) as Map<String, dynamic>);*/
throw UnimplementedError();
} else {
throw UnimplementedError();
}
}
@override
Future<bool> deleteFile(String token, String idFile) async {
final response = await http.delete(Uri.parse('$urlApi/$token/files'));
if (response.statusCode == 200) {
/*return Classe.fromJson(jsonDecode(response.body) as Map<String, dynamic>);*/
throw UnimplementedError();
} else {
throw UnimplementedError();
}
}
@override
Future<bool> deleteUser(String token) async {
final response = await http.delete(Uri.parse('$urlApi/$token'));
if (response.statusCode == 200) {
return true;
} else {
return false;
}
}
@override
Future<String> getFiles(String token) async {
final response = await http.get(Uri.parse('$urlApi/$token/files'));
if (response.statusCode == 200) {
/*return Classe.fromJson(jsonDecode(response.body) as Map<String, dynamic>);*/
throw UnimplementedError();
} else {
throw UnimplementedError();
}
}
@override
Future<String> getToken(String uuid, String passwordHash) async {
final response =
await http.get(Uri.parse('$urlApi/$uuid/$passwordHash/token'));
if (response.statusCode == 200) {
/*return Classe.fromJson(jsonDecode(response.body) as Map<String, dynamic>);*/
throw UnimplementedError();
} else {
throw UnimplementedError();
}
}
@override
Future<bool> postUser(User user) async {
final response = await http.post(Uri.parse(urlApi),
headers: <String, String>{
'Content-Type': 'application/json; charset=UTF-8',
},
body: jsonEncode(<String, User>{'user': user}));
if (response.statusCode == 200) {
return true;
} else {
return false;
}
}
@override
Future<bool> updateEmail(String token, String email) async {
final response = await http.put(Uri.parse('$urlApi/$token/email'),
headers: <String, String>{
'Content-Type': 'application/json; charset=UTF-8',
},
body: jsonEncode(<String, String>{'email': email}));
if (response.statusCode == 200) {
return true;
} else {
return false;
}
}
@override
Future<bool> updateUsername(String token, String username) async {
final response = await http.put(Uri.parse('$urlApi/$token/username'),
headers: <String, String>{
'Content-Type': 'application/json; charset=UTF-8',
},
body: jsonEncode(<String, String>{'username': username}));
if (response.statusCode == 200) {
return true;
} else {
return false;
}
}
@override
Future<bool> uploadFile(String token, File file) async {
final response = await http.post(Uri.parse('$urlApi/$token/UploadFile'),
headers: <String, String>{
'Content-Type': 'application/json; charset=UTF-8',
},
body: jsonEncode(<String, File>{'file': file}));
if (response.statusCode == 200) {
return true;
} else {
return false;
}
}
}

@ -0,0 +1,14 @@
enum DeviceConnectionStatus { NOT_CONNECTED, CONNECTING, CONNECTED }
extension DeviceConnectionStatusExtenstion on DeviceConnectionStatus {
String get statusName {
switch (this) {
case DeviceConnectionStatus.NOT_CONNECTED:
return "Not connected";
case DeviceConnectionStatus.CONNECTING:
return "Connecting";
case DeviceConnectionStatus.CONNECTED:
return "MDS connected";
}
}
}

@ -0,0 +1,19 @@
import 'package:flutter/material.dart';
import 'package:mdsflutter/Mds.dart';
class DeviceModel extends ChangeNotifier {
String? _serial;
String? _info;
// ------------ //
String? get info => _info;
// ------------ //
void getInfo() {
MdsAsync.get(Mds.createRequestUri(_serial!, "/Info"), "{}")
.then((value) => {_info = value});
notifyListeners();
}
}

@ -0,0 +1,53 @@
import 'package:smartfit_app_mobile/Modele/Mds/DeviceConnectionStatus.dart';
class Device {
String? _address;
String? _name;
String? _serial;
DeviceConnectionStatus _connectionStatus =
DeviceConnectionStatus.NOT_CONNECTED;
Device(String? name, String? address) {
_name = name;
_address = address;
}
//String? get name => _name != null ? _name : "";
String? get name {
if (_name == null) {
return "";
}
return _name;
}
//String? get address => _address != null ? _address : "";
String? get address {
if (_address == null) {
return "";
}
return _address;
}
//String? get serial => _serial != null ? _serial : "";
String? get serial {
if (_serial == null) {
return "";
}
return _serial;
}
DeviceConnectionStatus get connectionStatus => _connectionStatus;
void onConnecting() => _connectionStatus = DeviceConnectionStatus.CONNECTING;
void onMdsConnected(String serial) {
_serial = serial;
_connectionStatus = DeviceConnectionStatus.CONNECTED;
}
void onDisconnected() =>
_connectionStatus = DeviceConnectionStatus.NOT_CONNECTED;
bool operator ==(o) =>
o is Device && o._address == _address && o._name == _name;
int get hashCode => _address.hashCode * _name.hashCode;
}

@ -0,0 +1,100 @@
import 'dart:collection';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:mdsflutter/Mds.dart';
import 'package:smartfit_app_mobile/Modele/Mds/DeviceConnectionStatus.dart';
import 'package:smartfit_app_mobile/Modele/Mds/device.dart';
// Doc - https://pub.dev/packages/mdsflutter
//https://github.com/petri-lipponen-movesense/mdsflutter/tree/master/example/lib
class ManagerStateWatch extends ChangeNotifier {
final Set<Device> _deviceList = {};
bool _scanning = false;
// ------------------ //
bool get scanning => _scanning;
UnmodifiableListView<Device> get deviceList =>
UnmodifiableListView(_deviceList);
// ------------------ //
void startScan() {
// On deconnecte les devices si ils sont connecté
_deviceList.forEach((device) {
if (device.connectionStatus == DeviceConnectionStatus.CONNECTED) {
disconnect(device);
}
});
// On vide la liste
_deviceList.clear();
notifyListeners();
// On lance le scan
try {
Mds.startScan((name, address) {
Device device = Device(name, address);
if (!_deviceList.contains(device)) {
_deviceList.add(device);
notifyListeners();
}
});
_scanning = true;
notifyListeners();
} on PlatformException {
_scanning = false;
notifyListeners();
}
}
void stopScan() {
Mds.stopScan();
_scanning = false;
notifyListeners();
}
void disconnect(Device device) {
// Deconnexion matérielle
Mds.disconnect(device.address!);
disconnectOnModele(device.address);
}
void disconnectOnModele(String? address) {
// Deconnexion avec l'enum
Device foundDevice =
_deviceList.firstWhere((element) => element.address == address);
foundDevice.onDisconnected();
notifyListeners();
}
void connectToDevice(Device device) {
// Changement de l'enum (On connecting)
device.onConnecting();
// Connexion matérielle
Mds.connect(
device.address!,
// Connexion établi
(serial) => _onDeviceMdsConnected(device.address, serial),
// Connexion coupé
() => disconnectOnModele(device.address),
// Erreur dans la connexion
() => _onDeviceConnectError(device.address));
}
// Appeller si la connexion à réussi
void _onDeviceMdsConnected(String? address, String serial) {
Device foundDevice =
_deviceList.firstWhere((element) => element.address == address);
// On save le serial + changer l'enum en connected
foundDevice.onMdsConnected(serial);
notifyListeners();
}
// Appeller si une erreur survient dans la connexion
void _onDeviceConnectError(String? address) {
disconnectOnModele(address);
}
}

@ -0,0 +1,87 @@
import 'dart:convert';
import 'dart:io';
import 'package:csv/csv.dart';
import 'package:fit_tool/fit_tool.dart';
import 'package:path_provider/path_provider.dart';
import 'package:smartfit_app_mobile/Modele/Api/i_data_strategy.dart';
import 'package:smartfit_app_mobile/Modele/Api/request_api.dart';
class ManagerFile {
final IDataStrategy _dataStrategy = RequestApi();
List<dynamic>? _contentFile;
List<dynamic>? get contentFile => _contentFile;
// ----- //
// ----- Read csv File ------- //
Future<bool> readCSVFile(String path) async {
if (File(path).exists() == false) return false;
final input = File(path).openRead();
final fields = await input
.transform(utf8.decoder)
.transform(const CsvToListConverter())
.toList();
_contentFile = fields;
return true;
}
// ------ Import File and save it in BDD
Future<bool> importFileAndSaveInBDD(String path, String tokenUser) async {
if (File(path).existsSync() == false) return false;
_dataStrategy.uploadFile(tokenUser, File(path));
return true;
}
// ----- Read a file FIT and put the result in _contentFile --- //
Future<bool> readFitFile(String path) async {
if (File(path).existsSync() == false) return false;
final file = File(path);
final bytes = await file.readAsBytes();
final fitFile = FitFile.fromBytes(bytes);
_contentFile = fitFile.toRows();
return true;
}
// ------------- Get The path of application --- //
Future<String> get _localPath async {
final directory = await getApplicationDocumentsDirectory();
return directory.path;
}
// --- A modifier si utilisé --- //
Future<bool> writeFileWithContentFile(String nameFileWithExtension) async {
final outFile = File("${await _localPath}\\Files\\$nameFileWithExtension");
if (outFile.existsSync() == false) {
outFile.createSync(recursive: true);
}
await outFile.writeAsString(_contentFile.toString());
return true;
}
// --- Ligne utile --- //
//final csv = const ListToCsvConverter().convert(fitFile.toRows());
//await outFile.writeAsString(csv);*/
// ---------------- Fonction to get data --------- //
List<List<int>> getHeartRateWithTime() {
List<List<int>> result = List.empty(growable: true);
int firtTimeStamp = 0;
if (_contentFile == null) return result;
for (List<dynamic> ligne in contentFile!) {
if (ligne.length >= 10 &&
ligne[0] == "Data" &&
ligne[9] == "heart_rate") {
if (firtTimeStamp == 0) {
firtTimeStamp = ligne[4];
}
result.add([(ligne[4] - firtTimeStamp) ~/ 100, ligne[10]]);
}
}
return result;
}
}

@ -0,0 +1,18 @@
import 'package:flutter/material.dart';
class User extends ChangeNotifier {
// A modifier
late String _username;
late String _email;
late String _passwordHash;
String get username => _username;
String get email => _email;
String get passwordHash => _passwordHash;
User(String username, String email, String passwordHash) {
_username = username;
_email = email;
_passwordHash = passwordHash;
}
}

@ -0,0 +1,266 @@
import 'package:flutter/material.dart';
import 'package:path_provider/path_provider.dart';
import 'package:file_picker/file_picker.dart';
import 'dart:io';
import 'package:provider/provider.dart';
import 'package:smartfit_app_mobile/Modele/manager_file.dart';
import 'package:smartfit_app_mobile/Modele/user.dart';
// ----------- File --------------- //
// Dossier de l'application
Future<String> get _localPath async {
final directory = await getApplicationDocumentsDirectory();
return directory.path;
}
// Uri du fichier
Future<File> get _localFile async {
final path = await _localPath;
return File('$path/counter.txt');
}
Future<File> writeCounter(int counter) async {
final file = await _localFile;
// Write the file
return file.writeAsString('$counter');
}
Future<int> readCounter() async {
try {
final file = await _localFile;
// Read the file
final contents = await file.readAsString();
return int.parse(contents);
} catch (e) {
// If encountering an error, return 0
return 0;
}
}
// File picker
// ------------------------------------------------- //
class TestPage extends StatefulWidget {
const TestPage({Key? key}) : super(key: key);
@override
State<TestPage> createState() => _TestPage();
}
class _TestPage extends State<TestPage> {
// Lire un fichier avec picker
FilePickerResult? result;
//late File x = File(file.path);
Future<void> readFile() async {
ManagerFile x = ManagerFile();
PlatformFile t = result!.files.single;
String? y = t.path;
if (t.path == null) {
print("t");
} else {
bool o = await x.readFitFile(y!);
print(x.getHeartRateWithTime());
}
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: Column(
children: [
const Text('A random AWESOME idea:'),
Text(Provider.of<User>(context).username),
// Add this.
ElevatedButton(
onPressed: () {
print('button pressed!');
},
child: Text('Next'),
),
ElevatedButton(
onPressed: () async {
result = await FilePicker.platform.pickFiles();
if (result == null) {
print("No file selected");
} else {
for (var element in result!.files) {
print(element.name);
}
}
},
child: const Text("File - ")),
ElevatedButton(onPressed: readFile, child: const Text("Read Data"))
],
),
);
}
}
/*
class MyHomePage extends StatefulWidget {
const MyHomePage({super.key, required this.title});
// This widget is the home page of your application. It is stateful, meaning
// that it has a State object (defined below) that contains fields that affect
// how it looks.
// This class is the configuration for the state. It holds the values (in this
// case the title) provided by the parent (in this case the App widget) and
// used by the build method of the State. Fields in a Widget subclass are
// always marked "final".
final String title;
@override
State<MyHomePage> createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
int _counter = 0;
void _incrementCounter() {
setState(() {
// This call to setState tells the Flutter framework that something has
// changed in this State, which causes it to rerun the build method below
// so that the display can reflect the updated values. If we changed
// _counter without calling setState(), then the build method would not be
// called again, and so nothing would appear to happen.
_counter++;
});
}
void _updateText(String text) {
setState(() {
test = text;
});
}
IDataStrategy tmp = RequestApi();
//late Future<String> val = tmp.GetFile("x", "x");
late Future<String> val = tmp.test();
final TextEditingController _controller = TextEditingController();
String test = "Null";
@override
Widget build(BuildContext context) {
// This method is rerun every time setState is called, for instance as done
// by the _incrementCounter method above.
//
// The Flutter framework has been optimized to make rerunning build methods
// fast, so that you can just rebuild anything that needs updating rather
// than having to individually change instances of widgets.
return Scaffold(
appBar: AppBar(
// TRY THIS: Try changing the color here to a specific color (to
// Colors.amber, perhaps?) and trigger a hot reload to see the AppBar
// change color while the other colors stay the same.
backgroundColor: Theme.of(context).colorScheme.inversePrimary,
// Here we take the value from the MyHomePage object that was created by
// the App.build method, and use it to set our appbar title.
title: Text(widget.title),
),
/*
body: Center(
// Center is a layout widget. It takes a single child and positions it
// in the middle of the parent.
child: Column(
// Column is also a layout widget. It takes a list of children and
// arranges them vertically. By default, it sizes itself to fit its
// children horizontally, and tries to be as tall as its parent.
//
// Column has various properties to control how it sizes itself and
// how it positions its children. Here we use mainAxisAlignment to
// center the children vertically; the main axis here is the vertical
// axis because Columns are vertical (the cross axis would be
// horizontal).
//
// TRY THIS: Invoke "debug painting" (choose the "Toggle Debug Paint"
// action in the IDE, or press "p" in the console), to see the
// wireframe for each widget.
mainAxisAlignment: MainAxisAlignment.center,
children: [
const Text('TEST'),
Text(
'$_counter',
style: Theme.of(context).textTheme.headlineMedium,
),
FutureBuilder<String>(
future: val,
builder: (context, snapshot) {
if (snapshot.connectionState == ConnectionState.done) {
if (snapshot.hasData) {
return Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[Text(snapshot.data!)],
);
}
} else {
return const Text("FAIL");
}
},
)
],
),
),
floatingActionButton: FloatingActionButton(
onPressed: _incrementCounter,
tooltip: 'Increment',
child: const Icon(Icons.add),
), // This trailing comma makes auto-formatting nicer for build methods.
*/
body: Container(
alignment: Alignment.center,
padding: const EdgeInsets.all(8),
child: FutureBuilder<String>(
future: val,
builder: (context, snapshot) {
if (snapshot.connectionState == ConnectionState.done) {
if (snapshot.hasData) {
return Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Text(snapshot.data!),
Text(test),
TextField(
controller: _controller,
decoration: const InputDecoration(
hintText: 'Enter Title',
),
),
ElevatedButton(
onPressed: () {
_updateText(_controller.text);
},
child: const Text('Update Data'),
),
ElevatedButton(
onPressed: () {
Navigator.of(context).push(MaterialPageRoute(
builder: (context) => const TestPage()));
},
child: const Text("Changer de page"))
],
);
} else if (snapshot.hasError) {
return Text('${snapshot.error}');
}
}
return const CircularProgressIndicator();
},
),
),
);
}
}
*/

@ -0,0 +1,26 @@
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:smartfit_app_mobile/Modele/user.dart';
import 'package:smartfit_app_mobile/View/page_test.dart';
void main() {
runApp(ChangeNotifierProvider(
create: (context) => User("toto", "toto@email", "1234"),
child: const MyApp()));
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
useMaterial3: true,
),
home: const TestPage(),
);
}
}

1
linux/.gitignore vendored

@ -0,0 +1 @@
flutter/ephemeral

@ -0,0 +1,139 @@
# Project-level configuration.
cmake_minimum_required(VERSION 3.10)
project(runner LANGUAGES CXX)
# The name of the executable created for the application. Change this to change
# the on-disk name of your application.
set(BINARY_NAME "smartfit_app_mobile")
# The unique GTK application identifier for this application. See:
# https://wiki.gnome.org/HowDoI/ChooseApplicationID
set(APPLICATION_ID "com.example.smartfit_app_mobile")
# Explicitly opt in to modern CMake behaviors to avoid warnings with recent
# versions of CMake.
cmake_policy(SET CMP0063 NEW)
# Load bundled libraries from the lib/ directory relative to the binary.
set(CMAKE_INSTALL_RPATH "$ORIGIN/lib")
# Root filesystem for cross-building.
if(FLUTTER_TARGET_PLATFORM_SYSROOT)
set(CMAKE_SYSROOT ${FLUTTER_TARGET_PLATFORM_SYSROOT})
set(CMAKE_FIND_ROOT_PATH ${CMAKE_SYSROOT})
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
endif()
# Define build configuration options.
if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
set(CMAKE_BUILD_TYPE "Debug" CACHE
STRING "Flutter build mode" FORCE)
set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS
"Debug" "Profile" "Release")
endif()
# Compilation settings that should be applied to most targets.
#
# Be cautious about adding new options here, as plugins use this function by
# default. In most cases, you should add new options to specific targets instead
# of modifying this function.
function(APPLY_STANDARD_SETTINGS TARGET)
target_compile_features(${TARGET} PUBLIC cxx_std_14)
target_compile_options(${TARGET} PRIVATE -Wall -Werror)
target_compile_options(${TARGET} PRIVATE "$<$<NOT:$<CONFIG:Debug>>:-O3>")
target_compile_definitions(${TARGET} PRIVATE "$<$<NOT:$<CONFIG:Debug>>:NDEBUG>")
endfunction()
# Flutter library and tool build rules.
set(FLUTTER_MANAGED_DIR "${CMAKE_CURRENT_SOURCE_DIR}/flutter")
add_subdirectory(${FLUTTER_MANAGED_DIR})
# System-level dependencies.
find_package(PkgConfig REQUIRED)
pkg_check_modules(GTK REQUIRED IMPORTED_TARGET gtk+-3.0)
add_definitions(-DAPPLICATION_ID="${APPLICATION_ID}")
# Define the application target. To change its name, change BINARY_NAME above,
# not the value here, or `flutter run` will no longer work.
#
# Any new source files that you add to the application should be added here.
add_executable(${BINARY_NAME}
"main.cc"
"my_application.cc"
"${FLUTTER_MANAGED_DIR}/generated_plugin_registrant.cc"
)
# Apply the standard set of build settings. This can be removed for applications
# that need different build settings.
apply_standard_settings(${BINARY_NAME})
# Add dependency libraries. Add any application-specific dependencies here.
target_link_libraries(${BINARY_NAME} PRIVATE flutter)
target_link_libraries(${BINARY_NAME} PRIVATE PkgConfig::GTK)
# Run the Flutter tool portions of the build. This must not be removed.
add_dependencies(${BINARY_NAME} flutter_assemble)
# Only the install-generated bundle's copy of the executable will launch
# correctly, since the resources must in the right relative locations. To avoid
# people trying to run the unbundled copy, put it in a subdirectory instead of
# the default top-level location.
set_target_properties(${BINARY_NAME}
PROPERTIES
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/intermediates_do_not_run"
)
# Generated plugin build rules, which manage building the plugins and adding
# them to the application.
include(flutter/generated_plugins.cmake)
# === Installation ===
# By default, "installing" just makes a relocatable bundle in the build
# directory.
set(BUILD_BUNDLE_DIR "${PROJECT_BINARY_DIR}/bundle")
if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
set(CMAKE_INSTALL_PREFIX "${BUILD_BUNDLE_DIR}" CACHE PATH "..." FORCE)
endif()
# Start with a clean build bundle directory every time.
install(CODE "
file(REMOVE_RECURSE \"${BUILD_BUNDLE_DIR}/\")
" COMPONENT Runtime)
set(INSTALL_BUNDLE_DATA_DIR "${CMAKE_INSTALL_PREFIX}/data")
set(INSTALL_BUNDLE_LIB_DIR "${CMAKE_INSTALL_PREFIX}/lib")
install(TARGETS ${BINARY_NAME} RUNTIME DESTINATION "${CMAKE_INSTALL_PREFIX}"
COMPONENT Runtime)
install(FILES "${FLUTTER_ICU_DATA_FILE}" DESTINATION "${INSTALL_BUNDLE_DATA_DIR}"
COMPONENT Runtime)
install(FILES "${FLUTTER_LIBRARY}" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}"
COMPONENT Runtime)
foreach(bundled_library ${PLUGIN_BUNDLED_LIBRARIES})
install(FILES "${bundled_library}"
DESTINATION "${INSTALL_BUNDLE_LIB_DIR}"
COMPONENT Runtime)
endforeach(bundled_library)
# Fully re-copy the assets directory on each build to avoid having stale files
# from a previous install.
set(FLUTTER_ASSET_DIR_NAME "flutter_assets")
install(CODE "
file(REMOVE_RECURSE \"${INSTALL_BUNDLE_DATA_DIR}/${FLUTTER_ASSET_DIR_NAME}\")
" COMPONENT Runtime)
install(DIRECTORY "${PROJECT_BUILD_DIR}/${FLUTTER_ASSET_DIR_NAME}"
DESTINATION "${INSTALL_BUNDLE_DATA_DIR}" COMPONENT Runtime)
# Install the AOT library on non-Debug builds only.
if(NOT CMAKE_BUILD_TYPE MATCHES "Debug")
install(FILES "${AOT_LIBRARY}" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}"
COMPONENT Runtime)
endif()

@ -0,0 +1,88 @@
# This file controls Flutter-level build steps. It should not be edited.
cmake_minimum_required(VERSION 3.10)
set(EPHEMERAL_DIR "${CMAKE_CURRENT_SOURCE_DIR}/ephemeral")
# Configuration provided via flutter tool.
include(${EPHEMERAL_DIR}/generated_config.cmake)
# TODO: Move the rest of this into files in ephemeral. See
# https://github.com/flutter/flutter/issues/57146.
# Serves the same purpose as list(TRANSFORM ... PREPEND ...),
# which isn't available in 3.10.
function(list_prepend LIST_NAME PREFIX)
set(NEW_LIST "")
foreach(element ${${LIST_NAME}})
list(APPEND NEW_LIST "${PREFIX}${element}")
endforeach(element)
set(${LIST_NAME} "${NEW_LIST}" PARENT_SCOPE)
endfunction()
# === Flutter Library ===
# System-level dependencies.
find_package(PkgConfig REQUIRED)
pkg_check_modules(GTK REQUIRED IMPORTED_TARGET gtk+-3.0)
pkg_check_modules(GLIB REQUIRED IMPORTED_TARGET glib-2.0)
pkg_check_modules(GIO REQUIRED IMPORTED_TARGET gio-2.0)
set(FLUTTER_LIBRARY "${EPHEMERAL_DIR}/libflutter_linux_gtk.so")
# Published to parent scope for install step.
set(FLUTTER_LIBRARY ${FLUTTER_LIBRARY} PARENT_SCOPE)
set(FLUTTER_ICU_DATA_FILE "${EPHEMERAL_DIR}/icudtl.dat" PARENT_SCOPE)
set(PROJECT_BUILD_DIR "${PROJECT_DIR}/build/" PARENT_SCOPE)
set(AOT_LIBRARY "${PROJECT_DIR}/build/lib/libapp.so" PARENT_SCOPE)
list(APPEND FLUTTER_LIBRARY_HEADERS
"fl_basic_message_channel.h"
"fl_binary_codec.h"
"fl_binary_messenger.h"
"fl_dart_project.h"
"fl_engine.h"
"fl_json_message_codec.h"
"fl_json_method_codec.h"
"fl_message_codec.h"
"fl_method_call.h"
"fl_method_channel.h"
"fl_method_codec.h"
"fl_method_response.h"
"fl_plugin_registrar.h"
"fl_plugin_registry.h"
"fl_standard_message_codec.h"
"fl_standard_method_codec.h"
"fl_string_codec.h"
"fl_value.h"
"fl_view.h"
"flutter_linux.h"
)
list_prepend(FLUTTER_LIBRARY_HEADERS "${EPHEMERAL_DIR}/flutter_linux/")
add_library(flutter INTERFACE)
target_include_directories(flutter INTERFACE
"${EPHEMERAL_DIR}"
)
target_link_libraries(flutter INTERFACE "${FLUTTER_LIBRARY}")
target_link_libraries(flutter INTERFACE
PkgConfig::GTK
PkgConfig::GLIB
PkgConfig::GIO
)
add_dependencies(flutter flutter_assemble)
# === Flutter tool backend ===
# _phony_ is a non-existent file to force this command to run every time,
# since currently there's no way to get a full input/output list from the
# flutter tool.
add_custom_command(
OUTPUT ${FLUTTER_LIBRARY} ${FLUTTER_LIBRARY_HEADERS}
${CMAKE_CURRENT_BINARY_DIR}/_phony_
COMMAND ${CMAKE_COMMAND} -E env
${FLUTTER_TOOL_ENVIRONMENT}
"${FLUTTER_ROOT}/packages/flutter_tools/bin/tool_backend.sh"
${FLUTTER_TARGET_PLATFORM} ${CMAKE_BUILD_TYPE}
VERBATIM
)
add_custom_target(flutter_assemble DEPENDS
"${FLUTTER_LIBRARY}"
${FLUTTER_LIBRARY_HEADERS}
)

@ -0,0 +1,11 @@
//
// Generated file. Do not edit.
//
// clang-format off
#include "generated_plugin_registrant.h"
void fl_register_plugins(FlPluginRegistry* registry) {
}

@ -0,0 +1,15 @@
//
// Generated file. Do not edit.
//
// clang-format off
#ifndef GENERATED_PLUGIN_REGISTRANT_
#define GENERATED_PLUGIN_REGISTRANT_
#include <flutter_linux/flutter_linux.h>
// Registers Flutter plugins.
void fl_register_plugins(FlPluginRegistry* registry);
#endif // GENERATED_PLUGIN_REGISTRANT_

@ -0,0 +1,23 @@
#
# Generated file, do not edit.
#
list(APPEND FLUTTER_PLUGIN_LIST
)
list(APPEND FLUTTER_FFI_PLUGIN_LIST
)
set(PLUGIN_BUNDLED_LIBRARIES)
foreach(plugin ${FLUTTER_PLUGIN_LIST})
add_subdirectory(flutter/ephemeral/.plugin_symlinks/${plugin}/linux plugins/${plugin})
target_link_libraries(${BINARY_NAME} PRIVATE ${plugin}_plugin)
list(APPEND PLUGIN_BUNDLED_LIBRARIES $<TARGET_FILE:${plugin}_plugin>)
list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries})
endforeach(plugin)
foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST})
add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/linux plugins/${ffi_plugin})
list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries})
endforeach(ffi_plugin)

@ -0,0 +1,6 @@
#include "my_application.h"
int main(int argc, char** argv) {
g_autoptr(MyApplication) app = my_application_new();
return g_application_run(G_APPLICATION(app), argc, argv);
}

@ -0,0 +1,104 @@
#include "my_application.h"
#include <flutter_linux/flutter_linux.h>
#ifdef GDK_WINDOWING_X11
#include <gdk/gdkx.h>
#endif
#include "flutter/generated_plugin_registrant.h"
struct _MyApplication {
GtkApplication parent_instance;
char** dart_entrypoint_arguments;
};
G_DEFINE_TYPE(MyApplication, my_application, GTK_TYPE_APPLICATION)
// Implements GApplication::activate.
static void my_application_activate(GApplication* application) {
MyApplication* self = MY_APPLICATION(application);
GtkWindow* window =
GTK_WINDOW(gtk_application_window_new(GTK_APPLICATION(application)));
// Use a header bar when running in GNOME as this is the common style used
// by applications and is the setup most users will be using (e.g. Ubuntu
// desktop).
// If running on X and not using GNOME then just use a traditional title bar
// in case the window manager does more exotic layout, e.g. tiling.
// If running on Wayland assume the header bar will work (may need changing
// if future cases occur).
gboolean use_header_bar = TRUE;
#ifdef GDK_WINDOWING_X11
GdkScreen* screen = gtk_window_get_screen(window);
if (GDK_IS_X11_SCREEN(screen)) {
const gchar* wm_name = gdk_x11_screen_get_window_manager_name(screen);
if (g_strcmp0(wm_name, "GNOME Shell") != 0) {
use_header_bar = FALSE;
}
}
#endif
if (use_header_bar) {
GtkHeaderBar* header_bar = GTK_HEADER_BAR(gtk_header_bar_new());
gtk_widget_show(GTK_WIDGET(header_bar));
gtk_header_bar_set_title(header_bar, "smartfit_app_mobile");
gtk_header_bar_set_show_close_button(header_bar, TRUE);
gtk_window_set_titlebar(window, GTK_WIDGET(header_bar));
} else {
gtk_window_set_title(window, "smartfit_app_mobile");
}
gtk_window_set_default_size(window, 1280, 720);
gtk_widget_show(GTK_WIDGET(window));
g_autoptr(FlDartProject) project = fl_dart_project_new();
fl_dart_project_set_dart_entrypoint_arguments(project, self->dart_entrypoint_arguments);
FlView* view = fl_view_new(project);
gtk_widget_show(GTK_WIDGET(view));
gtk_container_add(GTK_CONTAINER(window), GTK_WIDGET(view));
fl_register_plugins(FL_PLUGIN_REGISTRY(view));
gtk_widget_grab_focus(GTK_WIDGET(view));
}
// Implements GApplication::local_command_line.
static gboolean my_application_local_command_line(GApplication* application, gchar*** arguments, int* exit_status) {
MyApplication* self = MY_APPLICATION(application);
// Strip out the first argument as it is the binary name.
self->dart_entrypoint_arguments = g_strdupv(*arguments + 1);
g_autoptr(GError) error = nullptr;
if (!g_application_register(application, nullptr, &error)) {
g_warning("Failed to register: %s", error->message);
*exit_status = 1;
return TRUE;
}
g_application_activate(application);
*exit_status = 0;
return TRUE;
}
// Implements GObject::dispose.
static void my_application_dispose(GObject* object) {
MyApplication* self = MY_APPLICATION(object);
g_clear_pointer(&self->dart_entrypoint_arguments, g_strfreev);
G_OBJECT_CLASS(my_application_parent_class)->dispose(object);
}
static void my_application_class_init(MyApplicationClass* klass) {
G_APPLICATION_CLASS(klass)->activate = my_application_activate;
G_APPLICATION_CLASS(klass)->local_command_line = my_application_local_command_line;
G_OBJECT_CLASS(klass)->dispose = my_application_dispose;
}
static void my_application_init(MyApplication* self) {}
MyApplication* my_application_new() {
return MY_APPLICATION(g_object_new(my_application_get_type(),
"application-id", APPLICATION_ID,
"flags", G_APPLICATION_NON_UNIQUE,
nullptr));
}

@ -0,0 +1,18 @@
#ifndef FLUTTER_MY_APPLICATION_H_
#define FLUTTER_MY_APPLICATION_H_
#include <gtk/gtk.h>
G_DECLARE_FINAL_TYPE(MyApplication, my_application, MY, APPLICATION,
GtkApplication)
/**
* my_application_new:
*
* Creates a new Flutter-based application.
*
* Returns: a new #MyApplication.
*/
MyApplication* my_application_new();
#endif // FLUTTER_MY_APPLICATION_H_

7
macos/.gitignore vendored

@ -0,0 +1,7 @@
# Flutter-related
**/Flutter/ephemeral/
**/Pods/
# Xcode-related
**/dgph
**/xcuserdata/

@ -0,0 +1 @@
#include "ephemeral/Flutter-Generated.xcconfig"

@ -0,0 +1 @@
#include "ephemeral/Flutter-Generated.xcconfig"

@ -0,0 +1,695 @@
// !$*UTF8*$!
{
archiveVersion = 1;
classes = {
};
objectVersion = 54;
objects = {
/* Begin PBXAggregateTarget section */
33CC111A2044C6BA0003C045 /* Flutter Assemble */ = {
isa = PBXAggregateTarget;
buildConfigurationList = 33CC111B2044C6BA0003C045 /* Build configuration list for PBXAggregateTarget "Flutter Assemble" */;
buildPhases = (
33CC111E2044C6BF0003C045 /* ShellScript */,
);
dependencies = (
);
name = "Flutter Assemble";
productName = FLX;
};
/* End PBXAggregateTarget section */
/* Begin PBXBuildFile section */
331C80D8294CF71000263BE5 /* RunnerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 331C80D7294CF71000263BE5 /* RunnerTests.swift */; };
335BBD1B22A9A15E00E9071D /* GeneratedPluginRegistrant.swift in Sources */ = {isa = PBXBuildFile; fileRef = 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */; };
33CC10F12044A3C60003C045 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC10F02044A3C60003C045 /* AppDelegate.swift */; };
33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F22044A3C60003C045 /* Assets.xcassets */; };
33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F42044A3C60003C045 /* MainMenu.xib */; };
33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */; };
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
331C80D9294CF71000263BE5 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 33CC10E52044A3C60003C045 /* Project object */;
proxyType = 1;
remoteGlobalIDString = 33CC10EC2044A3C60003C045;
remoteInfo = Runner;
};
33CC111F2044C79F0003C045 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 33CC10E52044A3C60003C045 /* Project object */;
proxyType = 1;
remoteGlobalIDString = 33CC111A2044C6BA0003C045;
remoteInfo = FLX;
};
/* End PBXContainerItemProxy section */
/* Begin PBXCopyFilesBuildPhase section */
33CC110E2044A8840003C045 /* Bundle Framework */ = {
isa = PBXCopyFilesBuildPhase;
buildActionMask = 2147483647;
dstPath = "";
dstSubfolderSpec = 10;
files = (
);
name = "Bundle Framework";
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXCopyFilesBuildPhase section */
/* Begin PBXFileReference section */
331C80D5294CF71000263BE5 /* RunnerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
331C80D7294CF71000263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = "<group>"; };
333000ED22D3DE5D00554162 /* Warnings.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Warnings.xcconfig; sourceTree = "<group>"; };
335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GeneratedPluginRegistrant.swift; sourceTree = "<group>"; };
33CC10ED2044A3C60003C045 /* smartfit_app_mobile.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "smartfit_app_mobile.app"; sourceTree = BUILT_PRODUCTS_DIR; };
33CC10F02044A3C60003C045 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
33CC10F22044A3C60003C045 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Assets.xcassets; path = Runner/Assets.xcassets; sourceTree = "<group>"; };
33CC10F52044A3C60003C045 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/MainMenu.xib; sourceTree = "<group>"; };
33CC10F72044A3C60003C045 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = Info.plist; path = Runner/Info.plist; sourceTree = "<group>"; };
33CC11122044BFA00003C045 /* MainFlutterWindow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainFlutterWindow.swift; sourceTree = "<group>"; };
33CEB47222A05771004F2AC0 /* Flutter-Debug.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Flutter-Debug.xcconfig"; sourceTree = "<group>"; };
33CEB47422A05771004F2AC0 /* Flutter-Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Flutter-Release.xcconfig"; sourceTree = "<group>"; };
33CEB47722A0578A004F2AC0 /* Flutter-Generated.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = "Flutter-Generated.xcconfig"; path = "ephemeral/Flutter-Generated.xcconfig"; sourceTree = "<group>"; };
33E51913231747F40026EE4D /* DebugProfile.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = DebugProfile.entitlements; sourceTree = "<group>"; };
33E51914231749380026EE4D /* Release.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.entitlements; path = Release.entitlements; sourceTree = "<group>"; };
33E5194F232828860026EE4D /* AppInfo.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = AppInfo.xcconfig; sourceTree = "<group>"; };
7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Release.xcconfig; sourceTree = "<group>"; };
9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Debug.xcconfig; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
331C80D2294CF70F00263BE5 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
33CC10EA2044A3C60003C045 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
331C80D6294CF71000263BE5 /* RunnerTests */ = {
isa = PBXGroup;
children = (
331C80D7294CF71000263BE5 /* RunnerTests.swift */,
);
path = RunnerTests;
sourceTree = "<group>";
};
33BA886A226E78AF003329D5 /* Configs */ = {
isa = PBXGroup;
children = (
33E5194F232828860026EE4D /* AppInfo.xcconfig */,
9740EEB21CF90195004384FC /* Debug.xcconfig */,
7AFA3C8E1D35360C0083082E /* Release.xcconfig */,
333000ED22D3DE5D00554162 /* Warnings.xcconfig */,
);
path = Configs;
sourceTree = "<group>";
};
33CC10E42044A3C60003C045 = {
isa = PBXGroup;
children = (
33FAB671232836740065AC1E /* Runner */,
33CEB47122A05771004F2AC0 /* Flutter */,
331C80D6294CF71000263BE5 /* RunnerTests */,
33CC10EE2044A3C60003C045 /* Products */,
D73912EC22F37F3D000D13A0 /* Frameworks */,
);
sourceTree = "<group>";
};
33CC10EE2044A3C60003C045 /* Products */ = {
isa = PBXGroup;
children = (
33CC10ED2044A3C60003C045 /* smartfit_app_mobile.app */,
331C80D5294CF71000263BE5 /* RunnerTests.xctest */,
);
name = Products;
sourceTree = "<group>";
};
33CC11242044D66E0003C045 /* Resources */ = {
isa = PBXGroup;
children = (
33CC10F22044A3C60003C045 /* Assets.xcassets */,
33CC10F42044A3C60003C045 /* MainMenu.xib */,
33CC10F72044A3C60003C045 /* Info.plist */,
);
name = Resources;
path = ..;
sourceTree = "<group>";
};
33CEB47122A05771004F2AC0 /* Flutter */ = {
isa = PBXGroup;
children = (
335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */,
33CEB47222A05771004F2AC0 /* Flutter-Debug.xcconfig */,
33CEB47422A05771004F2AC0 /* Flutter-Release.xcconfig */,
33CEB47722A0578A004F2AC0 /* Flutter-Generated.xcconfig */,
);
path = Flutter;
sourceTree = "<group>";
};
33FAB671232836740065AC1E /* Runner */ = {
isa = PBXGroup;
children = (
33CC10F02044A3C60003C045 /* AppDelegate.swift */,
33CC11122044BFA00003C045 /* MainFlutterWindow.swift */,
33E51913231747F40026EE4D /* DebugProfile.entitlements */,
33E51914231749380026EE4D /* Release.entitlements */,
33CC11242044D66E0003C045 /* Resources */,
33BA886A226E78AF003329D5 /* Configs */,
);
path = Runner;
sourceTree = "<group>";
};
D73912EC22F37F3D000D13A0 /* Frameworks */ = {
isa = PBXGroup;
children = (
);
name = Frameworks;
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
331C80D4294CF70F00263BE5 /* RunnerTests */ = {
isa = PBXNativeTarget;
buildConfigurationList = 331C80DE294CF71000263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */;
buildPhases = (
331C80D1294CF70F00263BE5 /* Sources */,
331C80D2294CF70F00263BE5 /* Frameworks */,
331C80D3294CF70F00263BE5 /* Resources */,
);
buildRules = (
);
dependencies = (
331C80DA294CF71000263BE5 /* PBXTargetDependency */,
);
name = RunnerTests;
productName = RunnerTests;
productReference = 331C80D5294CF71000263BE5 /* RunnerTests.xctest */;
productType = "com.apple.product-type.bundle.unit-test";
};
33CC10EC2044A3C60003C045 /* Runner */ = {
isa = PBXNativeTarget;
buildConfigurationList = 33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */;
buildPhases = (
33CC10E92044A3C60003C045 /* Sources */,
33CC10EA2044A3C60003C045 /* Frameworks */,
33CC10EB2044A3C60003C045 /* Resources */,
33CC110E2044A8840003C045 /* Bundle Framework */,
3399D490228B24CF009A79C7 /* ShellScript */,
);
buildRules = (
);
dependencies = (
33CC11202044C79F0003C045 /* PBXTargetDependency */,
);
name = Runner;
productName = Runner;
productReference = 33CC10ED2044A3C60003C045 /* smartfit_app_mobile.app */;
productType = "com.apple.product-type.application";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
33CC10E52044A3C60003C045 /* Project object */ = {
isa = PBXProject;
attributes = {
LastSwiftUpdateCheck = 0920;
LastUpgradeCheck = 1430;
ORGANIZATIONNAME = "";
TargetAttributes = {
331C80D4294CF70F00263BE5 = {
CreatedOnToolsVersion = 14.0;
TestTargetID = 33CC10EC2044A3C60003C045;
};
33CC10EC2044A3C60003C045 = {
CreatedOnToolsVersion = 9.2;
LastSwiftMigration = 1100;
ProvisioningStyle = Automatic;
SystemCapabilities = {
com.apple.Sandbox = {
enabled = 1;
};
};
};
33CC111A2044C6BA0003C045 = {
CreatedOnToolsVersion = 9.2;
ProvisioningStyle = Manual;
};
};
};
buildConfigurationList = 33CC10E82044A3C60003C045 /* Build configuration list for PBXProject "Runner" */;
compatibilityVersion = "Xcode 9.3";
developmentRegion = en;
hasScannedForEncodings = 0;
knownRegions = (
en,
Base,
);
mainGroup = 33CC10E42044A3C60003C045;
productRefGroup = 33CC10EE2044A3C60003C045 /* Products */;
projectDirPath = "";
projectRoot = "";
targets = (
33CC10EC2044A3C60003C045 /* Runner */,
331C80D4294CF70F00263BE5 /* RunnerTests */,
33CC111A2044C6BA0003C045 /* Flutter Assemble */,
);
};
/* End PBXProject section */
/* Begin PBXResourcesBuildPhase section */
331C80D3294CF70F00263BE5 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
33CC10EB2044A3C60003C045 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */,
33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */
/* Begin PBXShellScriptBuildPhase section */
3399D490228B24CF009A79C7 /* ShellScript */ = {
isa = PBXShellScriptBuildPhase;
alwaysOutOfDate = 1;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
);
inputPaths = (
);
outputFileListPaths = (
);
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "echo \"$PRODUCT_NAME.app\" > \"$PROJECT_DIR\"/Flutter/ephemeral/.app_filename && \"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh embed\n";
};
33CC111E2044C6BF0003C045 /* ShellScript */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
Flutter/ephemeral/FlutterInputs.xcfilelist,
);
inputPaths = (
Flutter/ephemeral/tripwire,
);
outputFileListPaths = (
Flutter/ephemeral/FlutterOutputs.xcfilelist,
);
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh && touch Flutter/ephemeral/tripwire";
};
/* End PBXShellScriptBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
331C80D1294CF70F00263BE5 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
331C80D8294CF71000263BE5 /* RunnerTests.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
33CC10E92044A3C60003C045 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */,
33CC10F12044A3C60003C045 /* AppDelegate.swift in Sources */,
335BBD1B22A9A15E00E9071D /* GeneratedPluginRegistrant.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin PBXTargetDependency section */
331C80DA294CF71000263BE5 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = 33CC10EC2044A3C60003C045 /* Runner */;
targetProxy = 331C80D9294CF71000263BE5 /* PBXContainerItemProxy */;
};
33CC11202044C79F0003C045 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = 33CC111A2044C6BA0003C045 /* Flutter Assemble */;
targetProxy = 33CC111F2044C79F0003C045 /* PBXContainerItemProxy */;
};
/* End PBXTargetDependency section */
/* Begin PBXVariantGroup section */
33CC10F42044A3C60003C045 /* MainMenu.xib */ = {
isa = PBXVariantGroup;
children = (
33CC10F52044A3C60003C045 /* Base */,
);
name = MainMenu.xib;
path = Runner;
sourceTree = "<group>";
};
/* End PBXVariantGroup section */
/* Begin XCBuildConfiguration section */
331C80DB294CF71000263BE5 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
BUNDLE_LOADER = "$(TEST_HOST)";
CURRENT_PROJECT_VERSION = 1;
GENERATE_INFOPLIST_FILE = YES;
MARKETING_VERSION = 1.0;
PRODUCT_BUNDLE_IDENTIFIER = com.example.smartfitAppMobile.RunnerTests;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_VERSION = 5.0;
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/smartfit_app_mobile.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/smartfit_app_mobile";
};
name = Debug;
};
331C80DC294CF71000263BE5 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
BUNDLE_LOADER = "$(TEST_HOST)";
CURRENT_PROJECT_VERSION = 1;
GENERATE_INFOPLIST_FILE = YES;
MARKETING_VERSION = 1.0;
PRODUCT_BUNDLE_IDENTIFIER = com.example.smartfitAppMobile.RunnerTests;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_VERSION = 5.0;
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/smartfit_app_mobile.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/smartfit_app_mobile";
};
name = Release;
};
331C80DD294CF71000263BE5 /* Profile */ = {
isa = XCBuildConfiguration;
buildSettings = {
BUNDLE_LOADER = "$(TEST_HOST)";
CURRENT_PROJECT_VERSION = 1;
GENERATE_INFOPLIST_FILE = YES;
MARKETING_VERSION = 1.0;
PRODUCT_BUNDLE_IDENTIFIER = com.example.smartfitAppMobile.RunnerTests;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_VERSION = 5.0;
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/smartfit_app_mobile.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/smartfit_app_mobile";
};
name = Profile;
};
338D0CE9231458BD00FA5F75 /* Profile */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_NONNULL = YES;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CODE_SIGN_IDENTITY = "-";
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_C_LANGUAGE_STANDARD = gnu11;
GCC_NO_COMMON_BLOCKS = YES;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
MACOSX_DEPLOYMENT_TARGET = 10.14;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = macosx;
SWIFT_COMPILATION_MODE = wholemodule;
SWIFT_OPTIMIZATION_LEVEL = "-O";
};
name = Profile;
};
338D0CEA231458BD00FA5F75 /* Profile */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
CODE_SIGN_ENTITLEMENTS = Runner/DebugProfile.entitlements;
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
INFOPLIST_FILE = Runner/Info.plist;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/../Frameworks",
);
PROVISIONING_PROFILE_SPECIFIER = "";
SWIFT_VERSION = 5.0;
};
name = Profile;
};
338D0CEB231458BD00FA5F75 /* Profile */ = {
isa = XCBuildConfiguration;
buildSettings = {
CODE_SIGN_STYLE = Manual;
PRODUCT_NAME = "$(TARGET_NAME)";
};
name = Profile;
};
33CC10F92044A3C60003C045 /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_NONNULL = YES;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CODE_SIGN_IDENTITY = "-";
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = dwarf;
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_TESTABILITY = YES;
GCC_C_LANGUAGE_STANDARD = gnu11;
GCC_DYNAMIC_NO_PIC = NO;
GCC_NO_COMMON_BLOCKS = YES;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PREPROCESSOR_DEFINITIONS = (
"DEBUG=1",
"$(inherited)",
);
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
MACOSX_DEPLOYMENT_TARGET = 10.14;
MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = macosx;
SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
};
name = Debug;
};
33CC10FA2044A3C60003C045 /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_NONNULL = YES;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CODE_SIGN_IDENTITY = "-";
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_C_LANGUAGE_STANDARD = gnu11;
GCC_NO_COMMON_BLOCKS = YES;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
MACOSX_DEPLOYMENT_TARGET = 10.14;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = macosx;
SWIFT_COMPILATION_MODE = wholemodule;
SWIFT_OPTIMIZATION_LEVEL = "-O";
};
name = Release;
};
33CC10FC2044A3C60003C045 /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
CODE_SIGN_ENTITLEMENTS = Runner/DebugProfile.entitlements;
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
INFOPLIST_FILE = Runner/Info.plist;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/../Frameworks",
);
PROVISIONING_PROFILE_SPECIFIER = "";
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
SWIFT_VERSION = 5.0;
};
name = Debug;
};
33CC10FD2044A3C60003C045 /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
CODE_SIGN_ENTITLEMENTS = Runner/Release.entitlements;
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
INFOPLIST_FILE = Runner/Info.plist;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/../Frameworks",
);
PROVISIONING_PROFILE_SPECIFIER = "";
SWIFT_VERSION = 5.0;
};
name = Release;
};
33CC111C2044C6BA0003C045 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
CODE_SIGN_STYLE = Manual;
PRODUCT_NAME = "$(TARGET_NAME)";
};
name = Debug;
};
33CC111D2044C6BA0003C045 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
CODE_SIGN_STYLE = Automatic;
PRODUCT_NAME = "$(TARGET_NAME)";
};
name = Release;
};
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
331C80DE294CF71000263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */ = {
isa = XCConfigurationList;
buildConfigurations = (
331C80DB294CF71000263BE5 /* Debug */,
331C80DC294CF71000263BE5 /* Release */,
331C80DD294CF71000263BE5 /* Profile */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
33CC10E82044A3C60003C045 /* Build configuration list for PBXProject "Runner" */ = {
isa = XCConfigurationList;
buildConfigurations = (
33CC10F92044A3C60003C045 /* Debug */,
33CC10FA2044A3C60003C045 /* Release */,
338D0CE9231458BD00FA5F75 /* Profile */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */ = {
isa = XCConfigurationList;
buildConfigurations = (
33CC10FC2044A3C60003C045 /* Debug */,
33CC10FD2044A3C60003C045 /* Release */,
338D0CEA231458BD00FA5F75 /* Profile */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
33CC111B2044C6BA0003C045 /* Build configuration list for PBXAggregateTarget "Flutter Assemble" */ = {
isa = XCConfigurationList;
buildConfigurations = (
33CC111C2044C6BA0003C045 /* Debug */,
33CC111D2044C6BA0003C045 /* Release */,
338D0CEB231458BD00FA5F75 /* Profile */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */
};
rootObject = 33CC10E52044A3C60003C045 /* Project object */;
}

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>IDEDidComputeMac32BitWarning</key>
<true/>
</dict>
</plist>

@ -0,0 +1,98 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1430"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "33CC10EC2044A3C60003C045"
BuildableName = "smartfit_app_mobile.app"
BlueprintName = "Runner"
ReferencedContainer = "container:Runner.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES">
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "33CC10EC2044A3C60003C045"
BuildableName = "smartfit_app_mobile.app"
BlueprintName = "Runner"
ReferencedContainer = "container:Runner.xcodeproj">
</BuildableReference>
</MacroExpansion>
<Testables>
<TestableReference
skipped = "NO"
parallelizable = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "331C80D4294CF70F00263BE5"
BuildableName = "RunnerTests.xctest"
BlueprintName = "RunnerTests"
ReferencedContainer = "container:Runner.xcodeproj">
</BuildableReference>
</TestableReference>
</Testables>
</TestAction>
<LaunchAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
allowLocationSimulation = "YES">
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "33CC10EC2044A3C60003C045"
BuildableName = "smartfit_app_mobile.app"
BlueprintName = "Runner"
ReferencedContainer = "container:Runner.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
</LaunchAction>
<ProfileAction
buildConfiguration = "Profile"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES">
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "33CC10EC2044A3C60003C045"
BuildableName = "smartfit_app_mobile.app"
BlueprintName = "Runner"
ReferencedContainer = "container:Runner.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<Workspace
version = "1.0">
<FileRef
location = "group:Runner.xcodeproj">
</FileRef>
</Workspace>

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>IDEDidComputeMac32BitWarning</key>
<true/>
</dict>
</plist>

@ -0,0 +1,9 @@
import Cocoa
import FlutterMacOS
@NSApplicationMain
class AppDelegate: FlutterAppDelegate {
override func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool {
return true
}
}

@ -0,0 +1,68 @@
{
"images" : [
{
"size" : "16x16",
"idiom" : "mac",
"filename" : "app_icon_16.png",
"scale" : "1x"
},
{
"size" : "16x16",
"idiom" : "mac",
"filename" : "app_icon_32.png",
"scale" : "2x"
},
{
"size" : "32x32",
"idiom" : "mac",
"filename" : "app_icon_32.png",
"scale" : "1x"
},
{
"size" : "32x32",
"idiom" : "mac",
"filename" : "app_icon_64.png",
"scale" : "2x"
},
{
"size" : "128x128",
"idiom" : "mac",
"filename" : "app_icon_128.png",
"scale" : "1x"
},
{
"size" : "128x128",
"idiom" : "mac",
"filename" : "app_icon_256.png",
"scale" : "2x"
},
{
"size" : "256x256",
"idiom" : "mac",
"filename" : "app_icon_256.png",
"scale" : "1x"
},
{
"size" : "256x256",
"idiom" : "mac",
"filename" : "app_icon_512.png",
"scale" : "2x"
},
{
"size" : "512x512",
"idiom" : "mac",
"filename" : "app_icon_512.png",
"scale" : "1x"
},
{
"size" : "512x512",
"idiom" : "mac",
"filename" : "app_icon_1024.png",
"scale" : "2x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save