From c79430e488189608283127660ff616b26ad5e6f1 Mon Sep 17 00:00:00 2001 From: Cleyslane Date: Wed, 15 Jul 2020 18:21:43 -0300 Subject: [PATCH 1/7] Criando projeto --- entrevista_popcode/.gitignore | 43 ++ entrevista_popcode/.metadata | 10 + entrevista_popcode/README.md | 16 + entrevista_popcode/android/.gitignore | 7 + entrevista_popcode/android/app/build.gradle | 63 +++ .../android/app/src/debug/AndroidManifest.xml | 7 + .../android/app/src/main/AndroidManifest.xml | 47 ++ .../entrevista_popcode/MainActivity.kt | 6 + .../main/res/drawable/launch_background.xml | 12 + .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 544 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 442 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 721 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 1031 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 1443 bytes .../app/src/main/res/values/styles.xml | 18 + .../app/src/profile/AndroidManifest.xml | 7 + entrevista_popcode/android/build.gradle | 31 ++ entrevista_popcode/android/gradle.properties | 4 + .../gradle/wrapper/gradle-wrapper.properties | 6 + entrevista_popcode/android/settings.gradle | 15 + entrevista_popcode/ios/.gitignore | 32 ++ .../ios/Flutter/AppFrameworkInfo.plist | 26 + entrevista_popcode/ios/Flutter/Debug.xcconfig | 1 + .../ios/Flutter/Release.xcconfig | 1 + .../ios/Runner.xcodeproj/project.pbxproj | 506 ++++++++++++++++++ .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../xcshareddata/WorkspaceSettings.xcsettings | 8 + .../xcshareddata/xcschemes/Runner.xcscheme | 91 ++++ .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../xcshareddata/WorkspaceSettings.xcsettings | 8 + .../ios/Runner/AppDelegate.swift | 13 + .../AppIcon.appiconset/Contents.json | 122 +++++ .../Icon-App-1024x1024@1x.png | Bin 0 -> 10932 bytes .../AppIcon.appiconset/Icon-App-20x20@1x.png | Bin 0 -> 564 bytes .../AppIcon.appiconset/Icon-App-20x20@2x.png | Bin 0 -> 1283 bytes .../AppIcon.appiconset/Icon-App-20x20@3x.png | Bin 0 -> 1588 bytes .../AppIcon.appiconset/Icon-App-29x29@1x.png | Bin 0 -> 1025 bytes .../AppIcon.appiconset/Icon-App-29x29@2x.png | Bin 0 -> 1716 bytes .../AppIcon.appiconset/Icon-App-29x29@3x.png | Bin 0 -> 1920 bytes .../AppIcon.appiconset/Icon-App-40x40@1x.png | Bin 0 -> 1283 bytes .../AppIcon.appiconset/Icon-App-40x40@2x.png | Bin 0 -> 1895 bytes .../AppIcon.appiconset/Icon-App-40x40@3x.png | Bin 0 -> 2665 bytes .../AppIcon.appiconset/Icon-App-60x60@2x.png | Bin 0 -> 2665 bytes .../AppIcon.appiconset/Icon-App-60x60@3x.png | Bin 0 -> 3831 bytes .../AppIcon.appiconset/Icon-App-76x76@1x.png | Bin 0 -> 1888 bytes .../AppIcon.appiconset/Icon-App-76x76@2x.png | Bin 0 -> 3294 bytes .../Icon-App-83.5x83.5@2x.png | Bin 0 -> 3612 bytes .../LaunchImage.imageset/Contents.json | 23 + .../LaunchImage.imageset/LaunchImage.png | Bin 0 -> 68 bytes .../LaunchImage.imageset/LaunchImage@2x.png | Bin 0 -> 68 bytes .../LaunchImage.imageset/LaunchImage@3x.png | Bin 0 -> 68 bytes .../LaunchImage.imageset/README.md | 5 + .../Runner/Base.lproj/LaunchScreen.storyboard | 37 ++ .../ios/Runner/Base.lproj/Main.storyboard | 26 + entrevista_popcode/ios/Runner/Info.plist | 45 ++ .../ios/Runner/Runner-Bridging-Header.h | 1 + entrevista_popcode/lib/main.dart | 117 ++++ entrevista_popcode/pubspec.lock | 188 +++++++ entrevista_popcode/pubspec.yaml | 76 +++ 61 files changed, 1648 insertions(+) create mode 100644 entrevista_popcode/.gitignore create mode 100644 entrevista_popcode/.metadata create mode 100644 entrevista_popcode/README.md create mode 100644 entrevista_popcode/android/.gitignore create mode 100644 entrevista_popcode/android/app/build.gradle create mode 100644 entrevista_popcode/android/app/src/debug/AndroidManifest.xml create mode 100644 entrevista_popcode/android/app/src/main/AndroidManifest.xml create mode 100644 entrevista_popcode/android/app/src/main/kotlin/com/example/entrevista_popcode/MainActivity.kt create mode 100644 entrevista_popcode/android/app/src/main/res/drawable/launch_background.xml create mode 100644 entrevista_popcode/android/app/src/main/res/mipmap-hdpi/ic_launcher.png create mode 100644 entrevista_popcode/android/app/src/main/res/mipmap-mdpi/ic_launcher.png create mode 100644 entrevista_popcode/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png create mode 100644 entrevista_popcode/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 entrevista_popcode/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 entrevista_popcode/android/app/src/main/res/values/styles.xml create mode 100644 entrevista_popcode/android/app/src/profile/AndroidManifest.xml create mode 100644 entrevista_popcode/android/build.gradle create mode 100644 entrevista_popcode/android/gradle.properties create mode 100644 entrevista_popcode/android/gradle/wrapper/gradle-wrapper.properties create mode 100644 entrevista_popcode/android/settings.gradle create mode 100644 entrevista_popcode/ios/.gitignore create mode 100644 entrevista_popcode/ios/Flutter/AppFrameworkInfo.plist create mode 100644 entrevista_popcode/ios/Flutter/Debug.xcconfig create mode 100644 entrevista_popcode/ios/Flutter/Release.xcconfig create mode 100644 entrevista_popcode/ios/Runner.xcodeproj/project.pbxproj create mode 100644 entrevista_popcode/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 entrevista_popcode/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 entrevista_popcode/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings create mode 100644 entrevista_popcode/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme create mode 100644 entrevista_popcode/ios/Runner.xcworkspace/contents.xcworkspacedata create mode 100644 entrevista_popcode/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 entrevista_popcode/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings create mode 100644 entrevista_popcode/ios/Runner/AppDelegate.swift create mode 100644 entrevista_popcode/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 entrevista_popcode/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png create mode 100644 entrevista_popcode/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png create mode 100644 entrevista_popcode/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png create mode 100644 entrevista_popcode/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png create mode 100644 entrevista_popcode/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png create mode 100644 entrevista_popcode/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png create mode 100644 entrevista_popcode/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png create mode 100644 entrevista_popcode/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png create mode 100644 entrevista_popcode/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png create mode 100644 entrevista_popcode/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png create mode 100644 entrevista_popcode/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png create mode 100644 entrevista_popcode/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png create mode 100644 entrevista_popcode/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png create mode 100644 entrevista_popcode/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png create mode 100644 entrevista_popcode/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png create mode 100644 entrevista_popcode/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json create mode 100644 entrevista_popcode/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png create mode 100644 entrevista_popcode/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png create mode 100644 entrevista_popcode/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png create mode 100644 entrevista_popcode/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md create mode 100644 entrevista_popcode/ios/Runner/Base.lproj/LaunchScreen.storyboard create mode 100644 entrevista_popcode/ios/Runner/Base.lproj/Main.storyboard create mode 100644 entrevista_popcode/ios/Runner/Info.plist create mode 100644 entrevista_popcode/ios/Runner/Runner-Bridging-Header.h create mode 100644 entrevista_popcode/lib/main.dart create mode 100644 entrevista_popcode/pubspec.lock create mode 100644 entrevista_popcode/pubspec.yaml diff --git a/entrevista_popcode/.gitignore b/entrevista_popcode/.gitignore new file mode 100644 index 00000000..1ba9c339 --- /dev/null +++ b/entrevista_popcode/.gitignore @@ -0,0 +1,43 @@ +# Miscellaneous +*.class +*.log +*.pyc +*.swp +.DS_Store +.atom/ +.buildlog/ +.history +.svn/ + +# IntelliJ related +*.iml +*.ipr +*.iws +.idea/ + +# The .vscode folder contains launch configuration and tasks you configure in +# VS Code which you may wish to be included in version control, so this line +# is commented out by default. +#.vscode/ + +# Flutter/Dart/Pub related +**/doc/api/ +.dart_tool/ +.flutter-plugins +.flutter-plugins-dependencies +.packages +.pub-cache/ +.pub/ +/build/ + +# Web related +lib/generated_plugin_registrant.dart + +# Symbolication related +app.*.symbols + +# Obfuscation related +app.*.map.json + +# Exceptions to above rules. +!/packages/flutter_tools/test/data/dart_dependencies_test/**/.packages diff --git a/entrevista_popcode/.metadata b/entrevista_popcode/.metadata new file mode 100644 index 00000000..ade6bc98 --- /dev/null +++ b/entrevista_popcode/.metadata @@ -0,0 +1,10 @@ +# 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: 8af6b2f038c1172e61d418869363a28dffec3cb4 + channel: stable + +project_type: app diff --git a/entrevista_popcode/README.md b/entrevista_popcode/README.md new file mode 100644 index 00000000..20839ca6 --- /dev/null +++ b/entrevista_popcode/README.md @@ -0,0 +1,16 @@ +# entrevista_popcode + +A new Flutter project. + +## Getting Started + +This project is a starting point for a Flutter application. + +A few resources to get you started if this is your first Flutter project: + +- [Lab: Write your first Flutter app](https://flutter.dev/docs/get-started/codelab) +- [Cookbook: Useful Flutter samples](https://flutter.dev/docs/cookbook) + +For help getting started with Flutter, view our +[online documentation](https://flutter.dev/docs), which offers tutorials, +samples, guidance on mobile development, and a full API reference. diff --git a/entrevista_popcode/android/.gitignore b/entrevista_popcode/android/.gitignore new file mode 100644 index 00000000..bc2100d8 --- /dev/null +++ b/entrevista_popcode/android/.gitignore @@ -0,0 +1,7 @@ +gradle-wrapper.jar +/.gradle +/captures/ +/gradlew +/gradlew.bat +/local.properties +GeneratedPluginRegistrant.java diff --git a/entrevista_popcode/android/app/build.gradle b/entrevista_popcode/android/app/build.gradle new file mode 100644 index 00000000..9d54fb0e --- /dev/null +++ b/entrevista_popcode/android/app/build.gradle @@ -0,0 +1,63 @@ +def localProperties = new Properties() +def localPropertiesFile = rootProject.file('local.properties') +if (localPropertiesFile.exists()) { + localPropertiesFile.withReader('UTF-8') { reader -> + localProperties.load(reader) + } +} + +def flutterRoot = localProperties.getProperty('flutter.sdk') +if (flutterRoot == null) { + throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.") +} + +def flutterVersionCode = localProperties.getProperty('flutter.versionCode') +if (flutterVersionCode == null) { + flutterVersionCode = '1' +} + +def flutterVersionName = localProperties.getProperty('flutter.versionName') +if (flutterVersionName == null) { + flutterVersionName = '1.0' +} + +apply plugin: 'com.android.application' +apply plugin: 'kotlin-android' +apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle" + +android { + compileSdkVersion 28 + + sourceSets { + main.java.srcDirs += 'src/main/kotlin' + } + + lintOptions { + disable 'InvalidPackage' + } + + defaultConfig { + // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). + applicationId "com.example.entrevista_popcode" + minSdkVersion 16 + targetSdkVersion 28 + 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 { + implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" +} diff --git a/entrevista_popcode/android/app/src/debug/AndroidManifest.xml b/entrevista_popcode/android/app/src/debug/AndroidManifest.xml new file mode 100644 index 00000000..2f97c517 --- /dev/null +++ b/entrevista_popcode/android/app/src/debug/AndroidManifest.xml @@ -0,0 +1,7 @@ + + + + diff --git a/entrevista_popcode/android/app/src/main/AndroidManifest.xml b/entrevista_popcode/android/app/src/main/AndroidManifest.xml new file mode 100644 index 00000000..3056befc --- /dev/null +++ b/entrevista_popcode/android/app/src/main/AndroidManifest.xml @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + + diff --git a/entrevista_popcode/android/app/src/main/kotlin/com/example/entrevista_popcode/MainActivity.kt b/entrevista_popcode/android/app/src/main/kotlin/com/example/entrevista_popcode/MainActivity.kt new file mode 100644 index 00000000..53da5fa0 --- /dev/null +++ b/entrevista_popcode/android/app/src/main/kotlin/com/example/entrevista_popcode/MainActivity.kt @@ -0,0 +1,6 @@ +package com.example.entrevista_popcode + +import io.flutter.embedding.android.FlutterActivity + +class MainActivity: FlutterActivity() { +} diff --git a/entrevista_popcode/android/app/src/main/res/drawable/launch_background.xml b/entrevista_popcode/android/app/src/main/res/drawable/launch_background.xml new file mode 100644 index 00000000..304732f8 --- /dev/null +++ b/entrevista_popcode/android/app/src/main/res/drawable/launch_background.xml @@ -0,0 +1,12 @@ + + + + + + + + diff --git a/entrevista_popcode/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/entrevista_popcode/android/app/src/main/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..db77bb4b7b0906d62b1847e87f15cdcacf6a4f29 GIT binary patch literal 544 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY3?!3`olAj~WQl7;NpOBzNqJ&XDuZK6ep0G} zXKrG8YEWuoN@d~6R2!h8bpbvhu0Wd6uZuB!w&u2PAxD2eNXD>P5D~Wn-+_Wa#27Xc zC?Zj|6r#X(-D3u$NCt}(Ms06KgJ4FxJVv{GM)!I~&n8Bnc94O7-Hd)cjDZswgC;Qs zO=b+9!WcT8F?0rF7!Uys2bs@gozCP?z~o%U|N3vA*22NaGQG zlg@K`O_XuxvZ&Ks^m&R!`&1=spLvfx7oGDKDwpwW`#iqdw@AL`7MR}m`rwr|mZgU`8P7SBkL78fFf!WnuYWm$5Z0 zNXhDbCv&49sM544K|?c)WrFfiZvCi9h0O)B3Pgg&ebxsLQ05GG~ AQ2+n{ literal 0 HcmV?d00001 diff --git a/entrevista_popcode/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/entrevista_popcode/android/app/src/main/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..17987b79bb8a35cc66c3c1fd44f5a5526c1b78be GIT binary patch literal 442 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA3?vioaBc-sk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5Xx&nMcT!A!W`0S9QKQy;}1Cl^CgaH=;G9cpY;r$Q>i*pfB zP2drbID<_#qf;rPZx^FqH)F_D#*k@@q03KywUtLX8Ua?`H+NMzkczFPK3lFz@i_kW%1NOn0|D2I9n9wzH8m|-tHjsw|9>@K=iMBhxvkv6m8Y-l zytQ?X=U+MF$@3 zt`~i=@j|6y)RWMK--}M|=T`o&^Ni>IoWKHEbBXz7?A@mgWoL>!*SXo`SZH-*HSdS+ yn*9;$7;m`l>wYBC5bq;=U}IMqLzqbYCidGC!)_gkIk_C@Uy!y&wkt5C($~2D>~)O*cj@FGjOCM)M>_ixfudOh)?xMu#Fs z#}Y=@YDTwOM)x{K_j*Q;dPdJ?Mz0n|pLRx{4n|)f>SXlmV)XB04CrSJn#dS5nK2lM zrZ9#~WelCp7&e13Y$jvaEXHskn$2V!!DN-nWS__6T*l;H&Fopn?A6HZ-6WRLFP=R` zqG+CE#d4|IbyAI+rJJ`&x9*T`+a=p|0O(+s{UBcyZdkhj=yS1>AirP+0R;mf2uMgM zC}@~JfByORAh4SyRgi&!(cja>F(l*O+nd+@4m$|6K6KDn_&uvCpV23&>G9HJp{xgg zoq1^2_p9@|WEo z*X_Uko@K)qYYv~>43eQGMdbiGbo>E~Q& zrYBH{QP^@Sti!`2)uG{irBBq@y*$B zi#&(U-*=fp74j)RyIw49+0MRPMRU)+a2r*PJ$L5roHt2$UjExCTZSbq%V!HeS7J$N zdG@vOZB4v_lF7Plrx+hxo7(fCV&}fHq)$ literal 0 HcmV?d00001 diff --git a/entrevista_popcode/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/entrevista_popcode/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..d5f1c8d34e7a88e3f88bea192c3a370d44689c3c GIT binary patch literal 1031 zcmeAS@N?(olHy`uVBq!ia0vp^6F``Q8Ax83A=Cw=BuiW)N`mv#O3D+9QW+dm@{>{( zJaZG%Q-e|yQz{EjrrIztFa`(sgt!6~Yi|1%a`XoT0ojZ}lNrNjb9xjc(B0U1_% zz5^97Xt*%oq$rQy4?0GKNfJ44uvxI)gC`h-NZ|&0-7(qS@?b!5r36oQ}zyZrNO3 zMO=Or+<~>+A&uN&E!^Sl+>xE!QC-|oJv`ApDhqC^EWD|@=#J`=d#Xzxs4ah}w&Jnc z$|q_opQ^2TrnVZ0o~wh<3t%W&flvYGe#$xqda2bR_R zvPYgMcHgjZ5nSA^lJr%;<&0do;O^tDDh~=pIxA#coaCY>&N%M2^tq^U%3DB@ynvKo}b?yu-bFc-u0JHzced$sg7S3zqI(2 z#Km{dPr7I=pQ5>FuK#)QwK?Y`E`B?nP+}U)I#c1+FM*1kNvWG|a(TpksZQ3B@sD~b zpQ2)*V*TdwjFOtHvV|;OsiDqHi=6%)o4b!)x$)%9pGTsE z-JL={-Ffv+T87W(Xpooq<`r*VzWQcgBN$$`u}f>-ZQI1BB8ykN*=e4rIsJx9>z}*o zo~|9I;xof literal 0 HcmV?d00001 diff --git a/entrevista_popcode/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/entrevista_popcode/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..4d6372eebdb28e45604e46eeda8dd24651419bc0 GIT binary patch literal 1443 zcmb`G{WsKk6vsdJTdFg%tJav9_E4vzrOaqkWF|A724Nly!y+?N9`YV6wZ}5(X(D_N(?!*n3`|_r0Hc?=PQw&*vnU?QTFY zB_MsH|!j$PP;I}?dppoE_gA(4uc!jV&0!l7_;&p2^pxNo>PEcNJv za5_RT$o2Mf!<+r?&EbHH6nMoTsDOa;mN(wv8RNsHpG)`^ymG-S5By8=l9iVXzN_eG%Xg2@Xeq76tTZ*dGh~Lo9vl;Zfs+W#BydUw zCkZ$o1LqWQO$FC9aKlLl*7x9^0q%0}$OMlp@Kk_jHXOjofdePND+j!A{q!8~Jn+s3 z?~~w@4?egS02}8NuulUA=L~QQfm;MzCGd)XhiftT;+zFO&JVyp2mBww?;QByS_1w! zrQlx%{^cMj0|Bo1FjwY@Q8?Hx0cIPF*@-ZRFpPc#bBw{5@tD(5%sClzIfl8WU~V#u zm5Q;_F!wa$BSpqhN>W@2De?TKWR*!ujY;Yylk_X5#~V!L*Gw~;$%4Q8~Mad z@`-kG?yb$a9cHIApZDVZ^U6Xkp<*4rU82O7%}0jjHlK{id@?-wpN*fCHXyXh(bLt* zPc}H-x0e4E&nQ>y%B-(EL=9}RyC%MyX=upHuFhAk&MLbsF0LP-q`XnH78@fT+pKPW zu72MW`|?8ht^tz$iC}ZwLp4tB;Q49K!QCF3@!iB1qOI=?w z7In!}F~ij(18UYUjnbmC!qKhPo%24?8U1x{7o(+?^Zu0Hx81|FuS?bJ0jgBhEMzf< zCgUq7r2OCB(`XkKcN-TL>u5y#dD6D!)5W?`O5)V^>jb)P)GBdy%t$uUMpf$SNV31$ zb||OojAbvMP?T@$h_ZiFLFVHDmbyMhJF|-_)HX3%m=CDI+ID$0^C>kzxprBW)hw(v zr!Gmda);ICoQyhV_oP5+C%?jcG8v+D@9f?Dk*!BxY}dazmrT@64UrP3hlslANK)bq z$67n83eh}OeW&SV@HG95P|bjfqJ7gw$e+`Hxo!4cx`jdK1bJ>YDSpGKLPZ^1cv$ek zIB?0S<#tX?SJCLWdMd{-ME?$hc7A$zBOdIJ)4!KcAwb=VMov)nK;9z>x~rfT1>dS+ zZ6#`2v@`jgbqq)P22H)Tx2CpmM^o1$B+xT6`(v%5xJ(?j#>Q$+rx_R|7TzDZe{J6q zG1*EcU%tE?!kO%^M;3aM6JN*LAKUVb^xz8-Pxo#jR5(-KBeLJvA@-gxNHx0M-ZJLl z;#JwQoh~9V?`UVo#}{6ka@II>++D@%KqGpMdlQ}?9E*wFcf5(#XQnP$Dk5~%iX^>f z%$y;?M0BLp{O3a(-4A?ewryHrrD%cx#Q^%KY1H zNre$ve+vceSLZcNY4U(RBX&)oZn*Py()h)XkE?PL$!bNb{N5FVI2Y%LKEm%yvpyTP z(1P?z~7YxD~Rf<(a@_y` literal 0 HcmV?d00001 diff --git a/entrevista_popcode/android/app/src/main/res/values/styles.xml b/entrevista_popcode/android/app/src/main/res/values/styles.xml new file mode 100644 index 00000000..1f83a33f --- /dev/null +++ b/entrevista_popcode/android/app/src/main/res/values/styles.xml @@ -0,0 +1,18 @@ + + + + + + + diff --git a/entrevista_popcode/android/app/src/profile/AndroidManifest.xml b/entrevista_popcode/android/app/src/profile/AndroidManifest.xml new file mode 100644 index 00000000..2f97c517 --- /dev/null +++ b/entrevista_popcode/android/app/src/profile/AndroidManifest.xml @@ -0,0 +1,7 @@ + + + + diff --git a/entrevista_popcode/android/build.gradle b/entrevista_popcode/android/build.gradle new file mode 100644 index 00000000..3100ad2d --- /dev/null +++ b/entrevista_popcode/android/build.gradle @@ -0,0 +1,31 @@ +buildscript { + ext.kotlin_version = '1.3.50' + repositories { + google() + jcenter() + } + + dependencies { + classpath 'com.android.tools.build:gradle:3.5.0' + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" + } +} + +allprojects { + repositories { + google() + jcenter() + } +} + +rootProject.buildDir = '../build' +subprojects { + project.buildDir = "${rootProject.buildDir}/${project.name}" +} +subprojects { + project.evaluationDependsOn(':app') +} + +task clean(type: Delete) { + delete rootProject.buildDir +} diff --git a/entrevista_popcode/android/gradle.properties b/entrevista_popcode/android/gradle.properties new file mode 100644 index 00000000..38c8d454 --- /dev/null +++ b/entrevista_popcode/android/gradle.properties @@ -0,0 +1,4 @@ +org.gradle.jvmargs=-Xmx1536M +android.enableR8=true +android.useAndroidX=true +android.enableJetifier=true diff --git a/entrevista_popcode/android/gradle/wrapper/gradle-wrapper.properties b/entrevista_popcode/android/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 00000000..296b146b --- /dev/null +++ b/entrevista_popcode/android/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,6 @@ +#Fri Jun 23 08:50:38 CEST 2017 +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.2-all.zip diff --git a/entrevista_popcode/android/settings.gradle b/entrevista_popcode/android/settings.gradle new file mode 100644 index 00000000..d3b6a401 --- /dev/null +++ b/entrevista_popcode/android/settings.gradle @@ -0,0 +1,15 @@ +// Copyright 2014 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +include ':app' + +def localPropertiesFile = new File(rootProject.projectDir, "local.properties") +def properties = new Properties() + +assert localPropertiesFile.exists() +localPropertiesFile.withReader("UTF-8") { reader -> properties.load(reader) } + +def flutterSdkPath = properties.getProperty("flutter.sdk") +assert flutterSdkPath != null, "flutter.sdk not set in local.properties" +apply from: "$flutterSdkPath/packages/flutter_tools/gradle/app_plugin_loader.gradle" diff --git a/entrevista_popcode/ios/.gitignore b/entrevista_popcode/ios/.gitignore new file mode 100644 index 00000000..e96ef602 --- /dev/null +++ b/entrevista_popcode/ios/.gitignore @@ -0,0 +1,32 @@ +*.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/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 diff --git a/entrevista_popcode/ios/Flutter/AppFrameworkInfo.plist b/entrevista_popcode/ios/Flutter/AppFrameworkInfo.plist new file mode 100644 index 00000000..6b4c0f78 --- /dev/null +++ b/entrevista_popcode/ios/Flutter/AppFrameworkInfo.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + App + CFBundleIdentifier + io.flutter.flutter.app + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + App + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1.0 + MinimumOSVersion + 8.0 + + diff --git a/entrevista_popcode/ios/Flutter/Debug.xcconfig b/entrevista_popcode/ios/Flutter/Debug.xcconfig new file mode 100644 index 00000000..592ceee8 --- /dev/null +++ b/entrevista_popcode/ios/Flutter/Debug.xcconfig @@ -0,0 +1 @@ +#include "Generated.xcconfig" diff --git a/entrevista_popcode/ios/Flutter/Release.xcconfig b/entrevista_popcode/ios/Flutter/Release.xcconfig new file mode 100644 index 00000000..592ceee8 --- /dev/null +++ b/entrevista_popcode/ios/Flutter/Release.xcconfig @@ -0,0 +1 @@ +#include "Generated.xcconfig" diff --git a/entrevista_popcode/ios/Runner.xcodeproj/project.pbxproj b/entrevista_popcode/ios/Runner.xcodeproj/project.pbxproj new file mode 100644 index 00000000..f2fd08e3 --- /dev/null +++ b/entrevista_popcode/ios/Runner.xcodeproj/project.pbxproj @@ -0,0 +1,506 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + 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 */; }; +/* End PBXBuildFile 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 = ""; }; + 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; }; + 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; + 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = ""; }; + 74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; }; + 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; }; + 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; }; + 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 = ""; }; + 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; + 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; +/* 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 = ""; + }; + 97C146E51CF9000F007C117D = { + isa = PBXGroup; + children = ( + 9740EEB11CF90186004384FC /* Flutter */, + 97C146F01CF9000F007C117D /* Runner */, + 97C146EF1CF9000F007C117D /* Products */, + ); + sourceTree = ""; + }; + 97C146EF1CF9000F007C117D /* Products */ = { + isa = PBXGroup; + children = ( + 97C146EE1CF9000F007C117D /* Runner.app */, + ); + name = Products; + sourceTree = ""; + }; + 97C146F01CF9000F007C117D /* Runner */ = { + isa = PBXGroup; + children = ( + 97C146FA1CF9000F007C117D /* Main.storyboard */, + 97C146FD1CF9000F007C117D /* Assets.xcassets */, + 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */, + 97C147021CF9000F007C117D /* Info.plist */, + 97C146F11CF9000F007C117D /* Supporting Files */, + 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */, + 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */, + 74858FAE1ED2DC5600515810 /* AppDelegate.swift */, + 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */, + ); + path = Runner; + sourceTree = ""; + }; + 97C146F11CF9000F007C117D /* Supporting Files */ = { + isa = PBXGroup; + children = ( + ); + name = "Supporting Files"; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 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 = { + LastUpgradeCheck = 1020; + ORGANIZATIONNAME = ""; + TargetAttributes = { + 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 */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 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; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + 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; + 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 */ + 97C146EA1CF9000F007C117D /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */, + 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ + 97C146FA1CF9000F007C117D /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 97C146FB1CF9000F007C117D /* Base */, + ); + name = Main.storyboard; + sourceTree = ""; + }; + 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 97C147001CF9000F007C117D /* Base */, + ); + name = LaunchScreen.storyboard; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 249021D3217E4FDB00AE95B9 /* Profile */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + 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 = 8.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; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Flutter", + ); + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Flutter", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.example.entrevistaPopcode; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Profile; + }; + 97C147031CF9000F007C117D /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */; + 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 = 8.0; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 97C147041CF9000F007C117D /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + 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 = 8.0; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + SUPPORTED_PLATFORMS = iphoneos; + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + 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; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Flutter", + ); + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Flutter", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.example.entrevistaPopcode; + 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; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Flutter", + ); + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Flutter", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.example.entrevistaPopcode; + 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 */ + 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 */; +} diff --git a/entrevista_popcode/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/entrevista_popcode/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 00000000..1d526a16 --- /dev/null +++ b/entrevista_popcode/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/entrevista_popcode/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/entrevista_popcode/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 00000000..18d98100 --- /dev/null +++ b/entrevista_popcode/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/entrevista_popcode/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/entrevista_popcode/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings new file mode 100644 index 00000000..f9b0d7c5 --- /dev/null +++ b/entrevista_popcode/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings @@ -0,0 +1,8 @@ + + + + + PreviewsEnabled + + + diff --git a/entrevista_popcode/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/entrevista_popcode/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme new file mode 100644 index 00000000..a28140cf --- /dev/null +++ b/entrevista_popcode/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/entrevista_popcode/ios/Runner.xcworkspace/contents.xcworkspacedata b/entrevista_popcode/ios/Runner.xcworkspace/contents.xcworkspacedata new file mode 100644 index 00000000..1d526a16 --- /dev/null +++ b/entrevista_popcode/ios/Runner.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/entrevista_popcode/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/entrevista_popcode/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 00000000..18d98100 --- /dev/null +++ b/entrevista_popcode/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/entrevista_popcode/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/entrevista_popcode/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings new file mode 100644 index 00000000..f9b0d7c5 --- /dev/null +++ b/entrevista_popcode/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings @@ -0,0 +1,8 @@ + + + + + PreviewsEnabled + + + diff --git a/entrevista_popcode/ios/Runner/AppDelegate.swift b/entrevista_popcode/ios/Runner/AppDelegate.swift new file mode 100644 index 00000000..70693e4a --- /dev/null +++ b/entrevista_popcode/ios/Runner/AppDelegate.swift @@ -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) + } +} diff --git a/entrevista_popcode/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json b/entrevista_popcode/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 00000000..d36b1fab --- /dev/null +++ b/entrevista_popcode/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -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" + } +} diff --git a/entrevista_popcode/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png b/entrevista_popcode/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..dc9ada4725e9b0ddb1deab583e5b5102493aa332 GIT binary patch literal 10932 zcmeHN2~<R zh`|8`A_PQ1nSu(UMFx?8j8PC!!VDphaL#`F42fd#7Vlc`zIE4n%Y~eiz4y1j|NDpi z?<@|pSJ-HM`qifhf@m%MamgwK83`XpBA<+azdF#2QsT{X@z0A9Bq>~TVErigKH1~P zRX-!h-f0NJ4Mh++{D}J+K>~~rq}d%o%+4dogzXp7RxX4C>Km5XEI|PAFDmo;DFm6G zzjVoB`@qW98Yl0Kvc-9w09^PrsobmG*Eju^=3f?0o-t$U)TL1B3;sZ^!++3&bGZ!o-*6w?;oOhf z=A+Qb$scV5!RbG+&2S}BQ6YH!FKb0``VVX~T$dzzeSZ$&9=X$3)_7Z{SspSYJ!lGE z7yig_41zpQ)%5dr4ff0rh$@ky3-JLRk&DK)NEIHecf9c*?Z1bUB4%pZjQ7hD!A0r-@NF(^WKdr(LXj|=UE7?gBYGgGQV zidf2`ZT@pzXf7}!NH4q(0IMcxsUGDih(0{kRSez&z?CFA0RVXsVFw3^u=^KMtt95q z43q$b*6#uQDLoiCAF_{RFc{!H^moH_cmll#Fc^KXi{9GDl{>%+3qyfOE5;Zq|6#Hb zp^#1G+z^AXfRKaa9HK;%b3Ux~U@q?xg<2DXP%6k!3E)PA<#4$ui8eDy5|9hA5&{?v z(-;*1%(1~-NTQ`Is1_MGdQ{+i*ccd96ab$R$T3=% zw_KuNF@vI!A>>Y_2pl9L{9h1-C6H8<)J4gKI6{WzGBi<@u3P6hNsXG=bRq5c+z;Gc3VUCe;LIIFDmQAGy+=mRyF++u=drBWV8-^>0yE9N&*05XHZpPlE zxu@?8(ZNy7rm?|<+UNe0Vs6&o?l`Pt>P&WaL~M&#Eh%`rg@Mbb)J&@DA-wheQ>hRV z<(XhigZAT z>=M;URcdCaiO3d^?H<^EiEMDV+7HsTiOhoaMX%P65E<(5xMPJKxf!0u>U~uVqnPN7T!X!o@_gs3Ct1 zlZ_$5QXP4{Aj645wG_SNT&6m|O6~Tsl$q?nK*)(`{J4b=(yb^nOATtF1_aS978$x3 zx>Q@s4i3~IT*+l{@dx~Hst21fR*+5}S1@cf>&8*uLw-0^zK(+OpW?cS-YG1QBZ5q! zgTAgivzoF#`cSz&HL>Ti!!v#?36I1*l^mkrx7Y|K6L#n!-~5=d3;K<;Zqi|gpNUn_ z_^GaQDEQ*jfzh;`j&KXb66fWEk1K7vxQIMQ_#Wu_%3 z4Oeb7FJ`8I>Px;^S?)}2+4D_83gHEq>8qSQY0PVP?o)zAv3K~;R$fnwTmI-=ZLK`= zTm+0h*e+Yfr(IlH3i7gUclNH^!MU>id$Jw>O?2i0Cila#v|twub21@e{S2v}8Z13( zNDrTXZVgris|qYm<0NU(tAPouG!QF4ZNpZPkX~{tVf8xY690JqY1NVdiTtW+NqyRP zZ&;T0ikb8V{wxmFhlLTQ&?OP7 z;(z*<+?J2~z*6asSe7h`$8~Se(@t(#%?BGLVs$p``;CyvcT?7Y!{tIPva$LxCQ&4W z6v#F*);|RXvI%qnoOY&i4S*EL&h%hP3O zLsrFZhv&Hu5tF$Lx!8(hs&?!Kx5&L(fdu}UI5d*wn~A`nPUhG&Rv z2#ixiJdhSF-K2tpVL=)5UkXRuPAFrEW}7mW=uAmtVQ&pGE-&az6@#-(Te^n*lrH^m@X-ftVcwO_#7{WI)5v(?>uC9GG{lcGXYJ~Q8q zbMFl7;t+kV;|;KkBW2!P_o%Czhw&Q(nXlxK9ak&6r5t_KH8#1Mr-*0}2h8R9XNkr zto5-b7P_auqTJb(TJlmJ9xreA=6d=d)CVbYP-r4$hDn5|TIhB>SReMfh&OVLkMk-T zYf%$taLF0OqYF?V{+6Xkn>iX@TuqQ?&cN6UjC9YF&%q{Ut3zv{U2)~$>-3;Dp)*(? zg*$mu8^i=-e#acaj*T$pNowo{xiGEk$%DusaQiS!KjJH96XZ-hXv+jk%ard#fu=@Q z$AM)YWvE^{%tDfK%nD49=PI|wYu}lYVbB#a7wtN^Nml@CE@{Gv7+jo{_V?I*jkdLD zJE|jfdrmVbkfS>rN*+`#l%ZUi5_bMS<>=MBDNlpiSb_tAF|Zy`K7kcp@|d?yaTmB^ zo?(vg;B$vxS|SszusORgDg-*Uitzdi{dUV+glA~R8V(?`3GZIl^egW{a919!j#>f` znL1o_^-b`}xnU0+~KIFLQ)$Q6#ym%)(GYC`^XM*{g zv3AM5$+TtDRs%`2TyR^$(hqE7Y1b&`Jd6dS6B#hDVbJlUXcG3y*439D8MrK!2D~6gn>UD4Imctb z+IvAt0iaW73Iq$K?4}H`7wq6YkTMm`tcktXgK0lKPmh=>h+l}Y+pDtvHnG>uqBA)l zAH6BV4F}v$(o$8Gfo*PB>IuaY1*^*`OTx4|hM8jZ?B6HY;F6p4{`OcZZ(us-RVwDx zUzJrCQlp@mz1ZFiSZ*$yX3c_#h9J;yBE$2g%xjmGF4ca z&yL`nGVs!Zxsh^j6i%$a*I3ZD2SoNT`{D%mU=LKaEwbN(_J5%i-6Va?@*>=3(dQy` zOv%$_9lcy9+(t>qohkuU4r_P=R^6ME+wFu&LA9tw9RA?azGhjrVJKy&8=*qZT5Dr8g--d+S8zAyJ$1HlW3Olryt`yE zFIph~Z6oF&o64rw{>lgZISC6p^CBer9C5G6yq%?8tC+)7*d+ib^?fU!JRFxynRLEZ zj;?PwtS}Ao#9whV@KEmwQgM0TVP{hs>dg(1*DiMUOKHdQGIqa0`yZnHk9mtbPfoLx zo;^V6pKUJ!5#n`w2D&381#5#_t}AlTGEgDz$^;u;-vxDN?^#5!zN9ngytY@oTv!nc zp1Xn8uR$1Z;7vY`-<*?DfPHB;x|GUi_fI9@I9SVRv1)qETbNU_8{5U|(>Du84qP#7 z*l9Y$SgA&wGbj>R1YeT9vYjZuC@|{rajTL0f%N@>3$DFU=`lSPl=Iv;EjuGjBa$Gw zHD-;%YOE@<-!7-Mn`0WuO3oWuL6tB2cpPw~Nvuj|KM@))ixuDK`9;jGMe2d)7gHin zS<>k@!x;!TJEc#HdL#RF(`|4W+H88d4V%zlh(7#{q2d0OQX9*FW^`^_<3r$kabWAB z$9BONo5}*(%kx zOXi-yM_cmB3>inPpI~)duvZykJ@^^aWzQ=eQ&STUa}2uT@lV&WoRzkUoE`rR0)`=l zFT%f|LA9fCw>`enm$p7W^E@U7RNBtsh{_-7vVz3DtB*y#*~(L9+x9*wn8VjWw|Q~q zKFsj1Yl>;}%MG3=PY`$g$_mnyhuV&~O~u~)968$0b2!Jkd;2MtAP#ZDYw9hmK_+M$ zb3pxyYC&|CuAbtiG8HZjj?MZJBFbt`ryf+c1dXFuC z0*ZQhBzNBd*}s6K_G}(|Z_9NDV162#y%WSNe|FTDDhx)K!c(mMJh@h87@8(^YdK$&d*^WQe8Z53 z(|@MRJ$Lk-&ii74MPIs80WsOFZ(NX23oR-?As+*aq6b?~62@fSVmM-_*cb1RzZ)`5$agEiL`-E9s7{GM2?(KNPgK1(+c*|-FKoy}X(D_b#etO|YR z(BGZ)0Ntfv-7R4GHoXp?l5g#*={S1{u-QzxCGng*oWr~@X-5f~RA14b8~B+pLKvr4 zfgL|7I>jlak9>D4=(i(cqYf7#318!OSR=^`xxvI!bBlS??`xxWeg?+|>MxaIdH1U~#1tHu zB{QMR?EGRmQ_l4p6YXJ{o(hh-7Tdm>TAX380TZZZyVkqHNzjUn*_|cb?T? zt;d2s-?B#Mc>T-gvBmQZx(y_cfkXZO~{N zT6rP7SD6g~n9QJ)8F*8uHxTLCAZ{l1Y&?6v)BOJZ)=R-pY=Y=&1}jE7fQ>USS}xP#exo57uND0i*rEk@$;nLvRB@u~s^dwRf?G?_enN@$t* zbL%JO=rV(3Ju8#GqUpeE3l_Wu1lN9Y{D4uaUe`g>zlj$1ER$6S6@{m1!~V|bYkhZA z%CvrDRTkHuajMU8;&RZ&itnC~iYLW4DVkP<$}>#&(`UO>!n)Po;Mt(SY8Yb`AS9lt znbX^i?Oe9r_o=?})IHKHoQGKXsps_SE{hwrg?6dMI|^+$CeC&z@*LuF+P`7LfZ*yr+KN8B4{Nzv<`A(wyR@!|gw{zB6Ha ziwPAYh)oJ(nlqSknu(8g9N&1hu0$vFK$W#mp%>X~AU1ay+EKWcFdif{% z#4!4aoVVJ;ULmkQf!ke2}3hqxLK>eq|-d7Ly7-J9zMpT`?dxo6HdfJA|t)?qPEVBDv z{y_b?4^|YA4%WW0VZd8C(ZgQzRI5(I^)=Ub`Y#MHc@nv0w-DaJAqsbEHDWG8Ia6ju zo-iyr*sq((gEwCC&^TYBWt4_@|81?=B-?#P6NMff(*^re zYqvDuO`K@`mjm_Jd;mW_tP`3$cS?R$jR1ZN09$YO%_iBqh5ftzSpMQQtxKFU=FYmP zeY^jph+g<4>YO;U^O>-NFLn~-RqlHvnZl2yd2A{Yc1G@Ga$d+Q&(f^tnPf+Z7serIU};17+2DU_f4Z z@GaPFut27d?!YiD+QP@)T=77cR9~MK@bd~pY%X(h%L={{OIb8IQmf-!xmZkm8A0Ga zQSWONI17_ru5wpHg3jI@i9D+_Y|pCqVuHJNdHUauTD=R$JcD2K_liQisqG$(sm=k9;L* z!L?*4B~ql7uioSX$zWJ?;q-SWXRFhz2Jt4%fOHA=Bwf|RzhwqdXGr78y$J)LR7&3T zE1WWz*>GPWKZ0%|@%6=fyx)5rzUpI;bCj>3RKzNG_1w$fIFCZ&UR0(7S?g}`&Pg$M zf`SLsz8wK82Vyj7;RyKmY{a8G{2BHG%w!^T|Njr!h9TO2LaP^_f22Q1=l$QiU84ao zHe_#{S6;qrC6w~7{y(hs-?-j?lbOfgH^E=XcSgnwW*eEz{_Z<_Px$?ny*JR5%f>l)FnDQ543{x%ZCiu33$Wg!pQFfT_}?5Q|_VSlIbLC`dpoMXL}9 zHfd9&47Mo(7D231gb+kjFxZHS4-m~7WurTH&doVX2KI5sU4v(sJ1@T9eCIKPjsqSr z)C01LsCxk=72-vXmX}CQD#BD;Cthymh&~=f$Q8nn0J<}ZrusBy4PvRNE}+1ceuj8u z0mW5k8fmgeLnTbWHGwfKA3@PdZxhn|PypR&^p?weGftrtCbjF#+zk_5BJh7;0`#Wr zgDpM_;Ax{jO##IrT`Oz;MvfwGfV$zD#c2xckpcXC6oou4ML~ezCc2EtnsQTB4tWNg z?4bkf;hG7IMfhgNI(FV5Gs4|*GyMTIY0$B=_*mso9Ityq$m^S>15>-?0(zQ<8Qy<_TjHE33(?_M8oaM zyc;NxzRVK@DL6RJnX%U^xW0Gpg(lXp(!uK1v0YgHjs^ZXSQ|m#lV7ip7{`C_J2TxPmfw%h$|%acrYHt)Re^PB%O&&=~a zhS(%I#+V>J-vjIib^<+s%ludY7y^C(P8nmqn9fp!i+?vr`bziDE=bx`%2W#Xyrj|i z!XQ4v1%L`m{7KT7q+LZNB^h8Ha2e=`Wp65^0;J00)_^G=au=8Yo;1b`CV&@#=jIBo zjN^JNVfYSs)+kDdGe7`1&8!?MQYKS?DuHZf3iogk_%#9E|5S zWeHrmAo>P;ejX7mwq#*}W25m^ZI+{(Z8fI?4jM_fffY0nok=+88^|*_DwcW>mR#e+ zX$F_KMdb6sRz!~7KkyN0G(3XQ+;z3X%PZ4gh;n-%62U<*VUKNv(D&Q->Na@Xb&u5Q3`3DGf+a8O5x7c#7+R+EAYl@R5us)CIw z7sT@_y~Ao@uL#&^LIh&QceqiT^+lb0YbFZt_SHOtWA%mgPEKVNvVgCsXy{5+zl*X8 zCJe)Q@y>wH^>l4;h1l^Y*9%-23TSmE>q5nI@?mt%n;Sj4Qq`Z+ib)a*a^cJc%E9^J zB;4s+K@rARbcBLT5P=@r;IVnBMKvT*)ew*R;&8vu%?Z&S>s?8?)3*YawM0P4!q$Kv zMmKh3lgE~&w&v%wVzH3Oe=jeNT=n@Y6J6TdHWTjXfX~-=1A1Bw`EW8rn}MqeI34nh zexFeA?&C3B2(E?0{drE@DA2pu(A#ElY&6el60Rn|Qpn-FkfQ8M93AfWIr)drgDFEU zghdWK)^71EWCP(@(=c4kfH1Y(4iugD4fve6;nSUpLT%!)MUHs1!zJYy4y||C+SwQ! z)KM&$7_tyM`sljP2fz6&Z;jxRn{Wup8IOUx8D4uh&(=O zx-7$a;U><*5L^!%xRlw)vAbh;sdlR||& ze}8_8%)c2Fwy=F&H|LM+p{pZB5DKTx>Y?F1N%BlZkXf!}JeGuMZk~LPi7{cidvUGB zAJ4LVeNV%XO>LTrklB#^-;8nb;}6l;1oW&WS=Mz*Az!4cqqQzbOSFq`$Q%PfD7srM zpKgP-D_0XPTRX*hAqeq0TDkJ;5HB1%$3Np)99#16c{ zJImlNL(npL!W|Gr_kxl1GVmF5&^$^YherS7+~q$p zt}{a=*RiD2Ikv6o=IM1kgc7zqpaZ;OB)P!1zz*i3{U()Dq#jG)egvK}@uFLa`oyWZ zf~=MV)|yJn`M^$N%ul5);JuQvaU1r2wt(}J_Qgyy`qWQI`hEeRX0uC@c1(dQ2}=U$ tNIIaX+dr)NRWXcxoR{>fqI{SF_dm1Ylv~=3YHI)h002ovPDHLkV1g(pWS;;4 literal 0 HcmV?d00001 diff --git a/entrevista_popcode/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png b/entrevista_popcode/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..f091b6b0bca859a3f474b03065bef75ba58a9e4c GIT binary patch literal 1588 zcmV-42Fv-0P)C1SqPt}wig>|5Crh^=oyX$BK<}M8eLU3e2hGT;=G|!_SP)7zNI6fqUMB=)y zRAZ>eDe#*r`yDAVgB_R*LB*MAc)8(b{g{9McCXW!lq7r(btRoB9!8B-#AI6JMb~YFBEvdsV)`mEQO^&#eRKx@b&x- z5lZm*!WfD8oCLzfHGz#u7sT0^VLMI1MqGxF^v+`4YYnVYgk*=kU?HsSz{v({E3lb9 z>+xILjBN)t6`=g~IBOelGQ(O990@BfXf(DRI5I$qN$0Gkz-FSc$3a+2fX$AedL4u{ z4V+5Ong(9LiGcIKW?_352sR;LtDPmPJXI{YtT=O8=76o9;*n%_m|xo!i>7$IrZ-{l z-x3`7M}qzHsPV@$v#>H-TpjDh2UE$9g6sysUREDy_R(a)>=eHw-WAyfIN z*qb!_hW>G)Tu8nSw9yn#3wFMiLcfc4pY0ek1}8(NqkBR@t4{~oC>ryc-h_ByH(Cg5 z>ao-}771+xE3um9lWAY1FeQFxowa1(!J(;Jg*wrg!=6FdRX+t_<%z&d&?|Bn){>zm zZQj(aA_HeBY&OC^jj*)N`8fa^ePOU72VpInJoI1?`ty#lvlNzs(&MZX+R%2xS~5Kh zX*|AU4QE#~SgPzOXe9>tRj>hjU@c1k5Y_mW*Jp3fI;)1&g3j|zDgC+}2Q_v%YfDax z!?umcN^n}KYQ|a$Lr+51Nf9dkkYFSjZZjkma$0KOj+;aQ&721~t7QUKx61J3(P4P1 zstI~7-wOACnWP4=8oGOwz%vNDqD8w&Q`qcNGGrbbf&0s9L0De{4{mRS?o0MU+nR_! zrvshUau0G^DeMhM_v{5BuLjb#Hh@r23lDAk8oF(C+P0rsBpv85EP>4CVMx#04MOfG z;P%vktHcXwTj~+IE(~px)3*MY77e}p#|c>TD?sMatC0Tu4iKKJ0(X8jxQY*gYtxsC z(zYC$g|@+I+kY;dg_dE>scBf&bP1Nc@Hz<3R)V`=AGkc;8CXqdi=B4l2k|g;2%#m& z*jfX^%b!A8#bI!j9-0Fi0bOXl(-c^AB9|nQaE`*)Hw+o&jS9@7&Gov#HbD~#d{twV zXd^Tr^mWLfFh$@Dr$e;PBEz4(-2q1FF0}c;~B5sA}+Q>TOoP+t>wf)V9Iy=5ruQa;z)y zI9C9*oUga6=hxw6QasLPnee@3^Rr*M{CdaL5=R41nLs(AHk_=Y+A9$2&H(B7!_pURs&8aNw7?`&Z&xY_Ye z)~D5Bog^td-^QbUtkTirdyK^mTHAOuptDflut!#^lnKqU md>ggs(5nOWAqO?umG&QVYK#ibz}*4>0000U6E9hRK9^#O7(mu>ETqrXGsduA8$)?`v2seloOCza43C{NQ$$gAOH**MCn0Q?+L7dl7qnbRdqZ8LSVp1ItDxhxD?t@5_yHg6A8yI zC*%Wgg22K|8E#!~cTNYR~@Y9KepMPrrB8cABapAFa=`H+UGhkXUZV1GnwR1*lPyZ;*K(i~2gp|@bzp8}og7e*#% zEnr|^CWdVV!-4*Y_7rFvlww2Ze+>j*!Z!pQ?2l->4q#nqRu9`ELo6RMS5=br47g_X zRw}P9a7RRYQ%2Vsd0Me{_(EggTnuN6j=-?uFS6j^u69elMypu?t>op*wBx<=Wx8?( ztpe^(fwM6jJX7M-l*k3kEpWOl_Vk3@(_w4oc}4YF4|Rt=2V^XU?#Yz`8(e?aZ@#li0n*=g^qOcVpd-Wbok=@b#Yw zqn8u9a)z>l(1kEaPYZ6hwubN6i<8QHgsu0oE) ziJ(p;Wxm>sf!K+cw>R-(^Y2_bahB+&KI9y^);#0qt}t-$C|Bo71lHi{_+lg#f%RFy z0um=e3$K3i6K{U_4K!EX?F&rExl^W|G8Z8;`5z-k}OGNZ0#WVb$WCpQu-_YsiqKP?BB# vzVHS-CTUF4Ozn5G+mq_~Qqto~ahA+K`|lyv3(-e}00000NkvXXu0mjfd`9t{ literal 0 HcmV?d00001 diff --git a/entrevista_popcode/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png b/entrevista_popcode/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..d0ef06e7edb86cdfe0d15b4b0d98334a86163658 GIT binary patch literal 1716 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 literal 0 HcmV?d00001 diff --git a/entrevista_popcode/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png b/entrevista_popcode/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..c8f9ed8f5cee1c98386d13b17e89f719e83555b2 GIT binary patch literal 1895 zcmV-t2blPYP)FQtfgmafE#=YDCq`qUBt#QpG%*H6QHY765~R=q zZ6iudfM}q!Pz#~9JgOi8QJ|DSu?1-*(kSi1K4#~5?#|rh?sS)(-JQqX*}ciXJ56_H zdw=^s_srbAdqxlvGyrgGet#6T7_|j;95sL%MtM;q86vOxKM$f#puR)Bjv9Zvz9-di zXOTSsZkM83)E9PYBXC<$6(|>lNLVBb&&6y{NByFCp%6+^ALR@NCTse_wqvNmSWI-m z!$%KlHFH2omF!>#%1l3LTZg(s7eof$7*xB)ZQ0h?ejh?Ta9fDv59+u#MokW+1t8Zb zgHv%K(u9G^Lv`lh#f3<6!JVTL3(dCpxHbnbA;kKqQyd1~^Xe0VIaYBSWm6nsr;dFj z4;G-RyL?cYgsN1{L4ZFFNa;8)Rv0fM0C(~Tkit94 zz#~A)59?QjD&pAPSEQ)p8gP|DS{ng)j=2ux)_EzzJ773GmQ_Cic%3JJhC0t2cx>|v zJcVusIB!%F90{+}8hG3QU4KNeKmK%T>mN57NnCZ^56=0?&3@!j>a>B43pi{!u z7JyDj7`6d)qVp^R=%j>UIY6f+3`+qzIc!Y_=+uN^3BYV|o+$vGo-j-Wm<10%A=(Yk^beI{t%ld@yhKjq0iNjqN4XMGgQtbKubPM$JWBz}YA65k%dm*awtC^+f;a-x4+ddbH^7iDWGg&N0n#MW{kA|=8iMUiFYvMoDY@sPC#t$55gn6ykUTPAr`a@!(;np824>2xJthS z*ZdmT`g5-`BuJs`0LVhz+D9NNa3<=6m;cQLaF?tCv8)zcRSh66*Z|vXhG@$I%U~2l z?`Q zykI#*+rQ=z6Jm=Bui-SfpDYLA=|vzGE(dYm=OC8XM&MDo7ux4UF1~0J1+i%aCUpRe zt3L_uNyQ*cE(38Uy03H%I*)*Bh=Lb^Xj3?I^Hnbeq72(EOK^Y93CNp*uAA{5Lc=ky zx=~RKa4{iTm{_>_vSCm?$Ej=i6@=m%@VvAITnigVg{&@!7CDgs908761meDK5azA} z4?=NOH|PdvabgJ&fW2{Mo$Q0CcD8Qc84%{JPYt5EiG{MdLIAeX%T=D7NIP4%Hw}p9 zg)==!2Lbp#j{u_}hMiao9=!VSyx0gHbeCS`;q&vzeq|fs`y&^X-lso(Ls@-706qmA z7u*T5PMo_w3{se1t2`zWeO^hOvTsohG_;>J0wVqVe+n)AbQCx)yh9;w+J6?NF5Lmo zecS@ieAKL8%bVd@+-KT{yI|S}O>pYckUFs;ry9Ow$CD@ztz5K-*D$^{i(_1llhSh^ zEkL$}tsQt5>QA^;QgjgIfBDmcOgi5YDyu?t6vSnbp=1+@6D& z5MJ}B8q;bRlVoxasyhcUF1+)o`&3r0colr}QJ3hcSdLu;9;td>kf@Tcn<@9sIx&=m z;AD;SCh95=&p;$r{Xz3iWCO^MX83AGJ(yH&eTXgv|0=34#-&WAmw{)U7OU9!Wz^!7 zZ%jZFi@JR;>Mhi7S>V7wQ176|FdW2m?&`qa(ScO^CFPR80HucLHOTy%5s*HR0^8)i h0WYBP*#0Ks^FNSabJA*5${_#%002ovPDHLkV1oKhTl@e3 literal 0 HcmV?d00001 diff --git a/entrevista_popcode/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png b/entrevista_popcode/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..a6d6b8609df07bf62e5100a53a01510388bd2b22 GIT binary patch literal 2665 zcmV-v3YPVWP)oFh3q0MFesq&64WThn3$;G69TfjsAv=f2G9}p zgSx99+!YV6qME!>9MD13x)k(+XE7W?_O4LoLb5ND8 zaV{9+P@>42xDfRiYBMSgD$0!vssptcb;&?u9u(LLBKmkZ>RMD=kvD3h`sk6!QYtBa ztlZI#nu$8lJ^q2Z79UTgZe>BU73(Aospiq+?SdMt8lDZ;*?@tyWVZVS_Q7S&*tJaiRlJ z+aSMOmbg3@h5}v;A*c8SbqM3icg-`Cnwl;7Ts%A1RkNIp+Txl-Ckkvg4oxrqGA5ewEgYqwtECD<_3Egu)xGllKt&J8g&+=ac@Jq4-?w6M3b*>w5 z69N3O%=I^6&UL5gZ!}trC7bUj*12xLdkNs~Bz4QdJJ*UDZox2UGR}SNg@lmOvhCc~ z*f_UeXv(=#I#*7>VZx2ObEN~UoGUTl=-@)E;YtCRZ>SVp$p9yG5hEFZ!`wI!spd)n zSk+vK0Vin7FL{7f&6OB%f;SH22dtbcF<|9fi2Fp%q4kxL!b1#l^)8dUwJ zwEf{(wJj@8iYDVnKB`eSU+;ml-t2`@%_)0jDM`+a46xhDbBj2+&Ih>1A>6aky#(-SYyE{R3f#y57wfLs z6w1p~$bp;6!9DX$M+J~S@D6vJAaElETnsX4h9a5tvPhC3L@qB~bOzkL@^z0k_hS{T4PF*TDrgdXp+dzsE? z>V|VR035Pl9n5&-RePFdS{7KAr2vPOqR9=M$vXA1Yy5>w;EsF`;OK{2pkn-kpp9Pw z)r;5JfJKKaT$4qCb{TaXHjb$QA{y0EYy*+b1XI;6Ah- zw13P)xT`>~eFoJC!>{2XL(a_#upp3gaR1#5+L(Jmzp4TBnx{~WHedpJ1ch8JFk~Sw z>F+gN+i+VD?gMXwcIhn8rz`>e>J^TI3E-MW>f}6R-pL}>WMOa0k#jN+`RyUVUC;#D zg|~oS^$6%wpF{^Qr+}X>0PKcr3Fc&>Z>uv@C);pwDs@2bZWhYP!rvGx?_|q{d`t<*XEb#=aOb=N+L@CVBGqImZf&+a zCQEa3$~@#kC);pasdG=f6tuIi0PO-y&tvX%>Mv=oY3U$nD zJ#gMegnQ46pq+3r=;zmgcG+zRc9D~c>z+jo9&D+`E6$LmyFqlmCYw;-Zooma{sR@~ z)_^|YL1&&@|GXo*pivH7k!msl+$Sew3%XJnxajt0K%3M6Bd&YFNy9}tWG^aovK2eX z1aL1%7;KRDrA@eG-Wr6w+;*H_VD~qLiVI`{_;>o)k`{8xa3EJT1O_>#iy_?va0eR? zDV=N%;Zjb%Z2s$@O>w@iqt!I}tLjGk!=p`D23I}N4Be@$(|iSA zf3Ih7b<{zqpDB4WF_5X1(peKe+rASze%u8eKLn#KKXt;UZ+Adf$_TO+vTqshLLJ5c z52HucO=lrNVae5XWOLm!V@n-ObU11!b+DN<$RuU+YsrBq*lYT;?AwJpmNKniF0Q1< zJCo>Q$=v$@&y=sj6{r!Y&y&`0$-I}S!H_~pI&2H8Z1C|BX4VgZ^-! zje3-;x0PBD!M`v*J_)rL^+$<1VJhH*2Fi~aA7s&@_rUHYJ9zD=M%4AFQ`}k8OC$9s XsPq=LnkwKG00000NkvXXu0mjfhAk5^ literal 0 HcmV?d00001 diff --git a/entrevista_popcode/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png b/entrevista_popcode/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..a6d6b8609df07bf62e5100a53a01510388bd2b22 GIT binary patch literal 2665 zcmV-v3YPVWP)oFh3q0MFesq&64WThn3$;G69TfjsAv=f2G9}p zgSx99+!YV6qME!>9MD13x)k(+XE7W?_O4LoLb5ND8 zaV{9+P@>42xDfRiYBMSgD$0!vssptcb;&?u9u(LLBKmkZ>RMD=kvD3h`sk6!QYtBa ztlZI#nu$8lJ^q2Z79UTgZe>BU73(Aospiq+?SdMt8lDZ;*?@tyWVZVS_Q7S&*tJaiRlJ z+aSMOmbg3@h5}v;A*c8SbqM3icg-`Cnwl;7Ts%A1RkNIp+Txl-Ckkvg4oxrqGA5ewEgYqwtECD<_3Egu)xGllKt&J8g&+=ac@Jq4-?w6M3b*>w5 z69N3O%=I^6&UL5gZ!}trC7bUj*12xLdkNs~Bz4QdJJ*UDZox2UGR}SNg@lmOvhCc~ z*f_UeXv(=#I#*7>VZx2ObEN~UoGUTl=-@)E;YtCRZ>SVp$p9yG5hEFZ!`wI!spd)n zSk+vK0Vin7FL{7f&6OB%f;SH22dtbcF<|9fi2Fp%q4kxL!b1#l^)8dUwJ zwEf{(wJj@8iYDVnKB`eSU+;ml-t2`@%_)0jDM`+a46xhDbBj2+&Ih>1A>6aky#(-SYyE{R3f#y57wfLs z6w1p~$bp;6!9DX$M+J~S@D6vJAaElETnsX4h9a5tvPhC3L@qB~bOzkL@^z0k_hS{T4PF*TDrgdXp+dzsE? z>V|VR035Pl9n5&-RePFdS{7KAr2vPOqR9=M$vXA1Yy5>w;EsF`;OK{2pkn-kpp9Pw z)r;5JfJKKaT$4qCb{TaXHjb$QA{y0EYy*+b1XI;6Ah- zw13P)xT`>~eFoJC!>{2XL(a_#upp3gaR1#5+L(Jmzp4TBnx{~WHedpJ1ch8JFk~Sw z>F+gN+i+VD?gMXwcIhn8rz`>e>J^TI3E-MW>f}6R-pL}>WMOa0k#jN+`RyUVUC;#D zg|~oS^$6%wpF{^Qr+}X>0PKcr3Fc&>Z>uv@C);pwDs@2bZWhYP!rvGx?_|q{d`t<*XEb#=aOb=N+L@CVBGqImZf&+a zCQEa3$~@#kC);pasdG=f6tuIi0PO-y&tvX%>Mv=oY3U$nD zJ#gMegnQ46pq+3r=;zmgcG+zRc9D~c>z+jo9&D+`E6$LmyFqlmCYw;-Zooma{sR@~ z)_^|YL1&&@|GXo*pivH7k!msl+$Sew3%XJnxajt0K%3M6Bd&YFNy9}tWG^aovK2eX z1aL1%7;KRDrA@eG-Wr6w+;*H_VD~qLiVI`{_;>o)k`{8xa3EJT1O_>#iy_?va0eR? zDV=N%;Zjb%Z2s$@O>w@iqt!I}tLjGk!=p`D23I}N4Be@$(|iSA zf3Ih7b<{zqpDB4WF_5X1(peKe+rASze%u8eKLn#KKXt;UZ+Adf$_TO+vTqshLLJ5c z52HucO=lrNVae5XWOLm!V@n-ObU11!b+DN<$RuU+YsrBq*lYT;?AwJpmNKniF0Q1< zJCo>Q$=v$@&y=sj6{r!Y&y&`0$-I}S!H_~pI&2H8Z1C|BX4VgZ^-! zje3-;x0PBD!M`v*J_)rL^+$<1VJhH*2Fi~aA7s&@_rUHYJ9zD=M%4AFQ`}k8OC$9s XsPq=LnkwKG00000NkvXXu0mjfhAk5^ literal 0 HcmV?d00001 diff --git a/entrevista_popcode/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png b/entrevista_popcode/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..75b2d164a5a98e212cca15ea7bf2ab5de5108680 GIT binary patch literal 3831 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 literal 0 HcmV?d00001 diff --git a/entrevista_popcode/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png b/entrevista_popcode/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..c4df70d39da7941ef3f6dcb7f06a192d8dcb308d GIT binary patch literal 1888 zcmV-m2cP(fP)x~L`~4d)Rspd&<9kFh{hn*KP1LP0~$;u(LfAu zp%fx&qLBcRHx$G|3q(bv@+b;o0*D|jwD-Q9uQR(l*ST}s+uPgQ-MeFwZ#GS?b332? z&Tk$&_miXn3IGq)AmQ)3sisq{raD4(k*bHvpCe-TdWq^NRTEVM)i9xbgQ&ccnUVx* zEY%vS%gDcSg=!tuIK8$Th2_((_h^+7;R|G{n06&O2#6%LK`a}n?h_fL18btz<@lFG za}xS}u?#DBMB> zw^b($1Z)`9G?eP95EKi&$eOy@K%h;ryrR3la%;>|o*>CgB(s>dDcNOXg}CK9SPmD? zmr-s{0wRmxUnbDrYfRvnZ@d z6johZ2sMX{YkGSKWd}m|@V7`Degt-43=2M?+jR%8{(H$&MLLmS;-|JxnX2pnz;el1jsvqQz}pGSF<`mqEXRQ5sC4#BbwnB_4` zc5bFE-Gb#JV3tox9fp-vVEN{(tOCpRse`S+@)?%pz+zVJXSooTrNCUg`R6`hxwb{) zC@{O6MKY8tfZ5@!yy=p5Y|#+myRL=^{tc(6YgAnkg3I(Cd!r5l;|;l-MQ8B`;*SCE z{u)uP^C$lOPM z5d~UhKhRRmvv{LIa^|oavk1$QiEApSrP@~Jjbg`<*dW4TO?4qG%a%sTPUFz(QtW5( zM)lA+5)0TvH~aBaOAs|}?u2FO;yc-CZ1gNM1dAxJ?%m?YsGR`}-xk2*dxC}r5j$d* zE!#Vtbo69h>V4V`BL%_&$} z+oJAo@jQ^Tk`;%xw-4G>hhb&)B?##U+(6Fi7nno`C<|#PVA%$Y{}N-?(Gc$1%tr4Pc}}hm~yY#fTOe!@v9s-ik$dX~|ygArPhByaXn8 zpI^FUjNWMsTFKTP3X7m?UK)3m zp6rI^_zxRYrx6_QmhoWoDR`fp4R7gu6;gdO)!KexaoO2D88F9x#TM1(9Bn7g;|?|o z)~$n&Lh#hCP6_LOPD>a)NmhW})LADx2kq=X7}7wYRj-0?dXr&bHaRWCfSqvzFa=sn z-8^gSyn-RmH=BZ{AJZ~!8n5621GbUJV7Qvs%JNv&$%Q17s_X%s-41vAPfIR>;x0Wlqr5?09S>x#%Qkt>?(&XjFRY}*L6BeQ3 z<6XEBh^S7>AbwGm@XP{RkeEKj6@_o%oV?hDuUpUJ+r#JZO?!IUc;r0R?>mi)*ZpQ) z#((dn=A#i_&EQn|hd)N$#A*fjBFuiHcYvo?@y1 z5|fV=a^a~d!c-%ZbMNqkMKiSzM{Yq=7_c&1H!mXk60Uv32dV;vMg&-kQ)Q{+PFtwc zj|-uQ;b^gts??J*9VxxOro}W~Q9j4Em|zSRv)(WSO9$F$s=Ydu%Q+5DOid~lwk&we zY%W(Z@ofdwPHncEZzZgmqS|!gTj3wQq9rxQy+^eNYKr1mj&?tm@wkO*9@UtnRMG>c aR{jt9+;fr}hV%pg00001^@s67{VYS000c7NklQEG_j zup^)eW&WUIApqy$=APz8jE@awGp)!bsTjDbrJO`$x^ZR^dr;>)LW>{ zs70vpsD38v)19rI=GNk1b(0?Js9~rjsQsu*K;@SD40RB-3^gKU-MYC7G!Bw{fZsqp zih4iIi;Hr_xZ033Iu{sQxLS=}yBXgLMn40d++>aQ0#%8D1EbGZp7+ z5=mK?t31BkVYbGOxE9`i748x`YgCMwL$qMsChbSGSE1`p{nSmadR zcQ#R)(?!~dmtD0+D2!K zR9%!Xp1oOJzm(vbLvT^$IKp@+W2=-}qTzTgVtQ!#Y7Gxz}stUIm<1;oBQ^Sh2X{F4ibaOOx;5ZGSNK z0maF^@(UtV$=p6DXLgRURwF95C=|U8?osGhgOED*b z7woJ_PWXBD>V-NjQAm{~T%sjyJ{5tn2f{G%?J!KRSrrGvQ1(^`YLA5B!~eycY(e5_ z*%aa{at13SxC(=7JT7$IQF~R3sy`Nn%EMv!$-8ZEAryB*yB1k&stni)=)8-ODo41g zkJu~roIgAih94tb=YsL%iH5@^b~kU9M-=aqgXIrbtxMpFy5mekFm#edF9z7RQ6V}R zBIhbXs~pMzt0VWy1Fi$^fh+1xxLDoK09&5&MJl(q#THjPm(0=z2H2Yfm^a&E)V+a5 zbi>08u;bJsDRUKR9(INSc7XyuWv(JsD+BB*0hS)FO&l&7MdViuur@-<-EHw>kHRGY zqoT}3fDv2-m{NhBG8X}+rgOEZ;amh*DqN?jEfQdqxdj08`Sr=C-KmT)qU1 z+9Cl)a1mgXxhQiHVB}l`m;-RpmKy?0*|yl?FXvJkFxuu!fKlcmz$kN(a}i*saM3nr z0!;a~_%Xqy24IxA2rz<+08=B-Q|2PT)O4;EaxP^6qixOv7-cRh?*T?zZU`{nIM-at zTKYWr9rJ=tppQ9I#Z#mLgINVB!pO-^FOcvFw6NhV0gztuO?g ztoA*C-52Q-Z-P#xB4HAY3KQVd%dz1S4PA3vHp0aa=zAO?FCt zC_GaTyVBg2F!bBr3U@Zy2iJgIAt>1sf$JWA9kh{;L+P*HfUBX1Zy{4MgNbDfBV_ly z!y#+753arsZUt@366jIC0klaC@ckuk!qu=pAyf7&QmiBUT^L1&tOHzsK)4n|pmrVT zs2($4=?s~VejTFHbFdDOwG;_58LkIj1Fh@{glkO#F1>a==ymJS$z;gdedT1zPx4Kj ztjS`y_C}%af-RtpehdQDt3a<=W5C4$)9W@QAse;WUry$WYmr51ml9lkeunUrE`-3e zmq1SgSOPNEE-Mf+AGJ$g0M;3@w!$Ej;hMh=v=I+Lpz^n%Pg^MgwyqOkNyu2c^of)C z1~ALor3}}+RiF*K4+4{(1%1j3pif1>sv0r^mTZ?5Jd-It!tfPfiG_p$AY*Vfak%FG z4z#;wLtw&E&?}w+eKG^=#jF7HQzr8rV0mY<1YAJ_uGz~$E13p?F^fPSzXSn$8UcI$ z8er9{5w5iv0qf8%70zV71T1IBB1N}R5Kp%NO0=5wJalZt8;xYp;b{1K) zHY>2wW-`Sl{=NpR%iu3(u6l&)rc%%cSA#aV7WCowfbFR4wcc{LQZv~o1u_`}EJA3>ki`?9CKYTA!rhO)if*zRdd}Kn zEPfYbhoVE~!FI_2YbC5qAj1kq;xP6%J8+?2PAs?`V3}nyFVD#sV3+uP`pi}{$l9U^ zSz}_M9f7RgnnRhaoIJgT8us!1aB&4!*vYF07Hp&}L zCRlop0oK4DL@ISz{2_BPlezc;xj2|I z23RlDNpi9LgTG_#(w%cMaS)%N`e>~1&a3<{Xy}>?WbF>OOLuO+j&hc^YohQ$4F&ze z+hwnro1puQjnKm;vFG~o>`kCeUIlkA-2tI?WBKCFLMBY=J{hpSsQ=PDtU$=duS_hq zHpymHt^uuV1q@uc4bFb{MdG*|VoW@15Osrqt2@8ll0qO=j*uOXn{M0UJX#SUztui9FN4)K3{9!y8PC-AHHvpVTU;x|-7P+taAtyglk#rjlH2 z5Gq8ik}BPaGiM{#Woyg;*&N9R2{J0V+WGB69cEtH7F?U~Kbi6ksi*`CFXsi931q7Y zGO82?whBhN%w1iDetv%~wM*Y;E^)@Vl?VDj-f*RX>{;o_=$fU!&KAXbuadYZ46Zbg z&6jMF=49$uL^73y;;N5jaHYv)BTyfh&`qVLYn?`o6BCA_z-0niZz=qPG!vonK3MW_ zo$V96zM!+kJRs{P-5-rQVse0VBH*n6A58)4uc&gfHMa{gIhV2fGf{st>E8sKyP-$8zp~wJX^A*@DI&-;8>gANXZj zU)R+Y)PB?=)a|Kj>8NXEu^S_h^7R`~Q&7*Kn!xyvzVv&^>?^iu;S~R2e-2fJx-oUb cX)(b1KSk$MOV07*qoM6N<$f&6$jw%VRuvdN2+38CZWny1cRtlsl+0_KtW)EU14Ei(F!UtWuj4IK+3{sK@>rh zs1Z;=(DD&U6+tlyL?UnHVN^&g6QhFi2#HS+*qz;(>63G(`|jRtW|nz$Pv7qTovP!^ zP_jES{mr@O-02w%!^a?^1ZP!_KmQiz0L~jZ=W@Qt`8wzOoclQsAS<5YdH;a(4bGLE zk8s}1If(PSIgVi!XE!5kA?~z*sobvNyohr;=Q_@h2@$6Flyej3J)D-6YfheRGl`HEcPk|~huT_2-U?PfL=4BPV)f1o!%rQ!NMt_MYw-5bUSwQ9Z&zC>u zOrl~UJglJNa%f50Ok}?WB{on`Ci`p^Y!xBA?m@rcJXLxtrE0FhRF3d*ir>yzO|BD$ z3V}HpFcCh6bTzY}Nt_(W%QYd3NG)jJ4<`F<1Od) zfQblTdC&h2lCz`>y?>|9o2CdvC8qZeIZt%jN;B7Hdn2l*k4M4MFEtq`q_#5?}c$b$pf_3y{Y!cRDafZBEj-*OD|gz#PBDeu3QoueOesLzB+O zxjf2wvf6Wwz>@AiOo2mO4=TkAV+g~%_n&R;)l#!cBxjuoD$aS-`IIJv7cdX%2{WT7 zOm%5rs(wqyPE^k5SIpUZ!&Lq4<~%{*>_Hu$2|~Xa;iX*tz8~G6O3uFOS?+)tWtdi| zV2b#;zRN!m@H&jd=!$7YY6_}|=!IU@=SjvGDFtL;aCtw06U;-v^0%k0FOyESt z1Wv$={b_H&8FiRV?MrzoHWd>%v6KTRU;-v^Miiz+@q`(BoT!+<37CKhoKb)|8!+RG z6BQFU^@fRW;s8!mOf2QViKQGk0TVER6EG1`#;Nm39Do^PoT!+<37AD!%oJe86(=et zZ~|sLzU>V-qYiU6V8$0GmU7_K8|Fd0B?+9Un1BhKAz#V~Fk^`mJtlCX#{^8^M8!me z8Yg;8-~>!e<-iG;h*0B1kBKm}hItVGY6WnjVpgnTTAC$rqQ^v)4KvOtpY|sIj@WYg zyw##ZZ5AC2IKNC;^hwg9BPk0wLStlmBr;E|$5GoAo$&Ui_;S9WY62n3)i49|T%C#i017z3J=$RF|KyZWnci*@lW4 z=AKhNN6+m`Q!V3Ye68|8y@%=am>YD0nG99M)NWc20%)gwO!96j7muR}Fr&54SxKP2 zP30S~lt=a*qDlbu3+Av57=9v&vr<6g0&`!8E2fq>I|EJGKs}t|{h7+KT@)LfIV-3K zK)r_fr2?}FFyn*MYoLC>oV-J~eavL2ho4a4^r{E-8m2hi>~hA?_vIG4a*KT;2eyl1 zh_hUvUJpNCFwBvRq5BI*srSle>c6%n`#VNsyC|MGa{(P&08p=C9+WUw9Hl<1o9T4M zdD=_C0F7#o8A_bRR?sFNmU0R6tW`ElnF8p53IdHo#S9(JoZCz}fHwJ6F<&?qrpVqE zte|m%89JQD+XwaPU#%#lVs-@-OL);|MdfINd6!XwP2h(eyafTUsoRkA%&@fe?9m@jw-v(yTTiV2(*fthQH9}SqmsRPVnwwbV$1E(_lkmo&S zF-truCU914_$jpqjr(>Ha4HkM4YMT>m~NosUu&UZ>zirfHo%N6PPs9^_o$WqPA0#5 z%tG>qFCL+b*0s?sZ;Sht0nE7Kl>OVXy=gjWxxK;OJ3yGd7-pZf7JYNcZo2*1SF`u6 zHJyRRxGw9mDlOiXqVMsNe#WX`fC`vrtjSQ%KmLcl(lC>ZOQzG^%iql2w-f_K@r?OE zwCICifM#L-HJyc7Gm>Ern?+Sk3&|Khmu4(~3qa$(m6Ub^U0E5RHq49za|XklN#?kP zl;EstdW?(_4D>kwjWy2f!LM)y?F94kyU3`W!6+AyId-89v}sXJpuic^NLL7GJItl~ zsiuB98AI-(#Mnm|=A-R6&2fwJ0JVSY#Q>&3$zFh|@;#%0qeF=j5Ajq@4i0tIIW z&}sk$&fGwoJpe&u-JeGLi^r?dO`m=y(QO{@h zQqAC7$rvz&5+mo3IqE?h=a~6m>%r5Quapvzq;{y~p zJpyXOBgD9VrW7@#p6l7O?o3feml(DtSL>D^R) zZUY%T2b0-vBAFN7VB;M88!~HuOXi4KcI6aRQ&h|XQ0A?m%j2=l1f0cGP}h(oVfJ`N zz#PpmFC*ieab)zJK<4?^k=g%OjPnkANzbAbmGZHoVRk*mTfm75s_cWVa`l*f$B@xu z5E*?&@seIo#*Y~1rBm!7sF9~~u6Wrj5oICUOuz}CS)jdNIznfzCA(stJ(7$c^e5wN z?lt>eYgbA!kvAR7zYSD&*r1$b|(@;9dcZ^67R0 zXAXJKa|5Sdmj!g578Nwt6d$sXuc&MWezA0Whd`94$h{{?1IwXP4)Tx4obDK%xoFZ_Z zjjHJ_P@R_e5blG@yEjnaJb`l;s%Lb2&=8$&Ct-fV`E^4CUs)=jTk!I}2d&n!f@)bm z@ z_4Dc86+3l2*p|~;o-Sb~oXb_RuLmoifDU^&Te$*FevycC0*nE3Xws8gsWp|Rj2>SM zns)qcYj?^2sd8?N!_w~4v+f-HCF|a$TNZDoNl$I1Uq87euoNgKb6&r26TNrfkUa@o zfdiFA@p{K&mH3b8i!lcoz)V{n8Q@g(vR4ns4r6w;K z>1~ecQR0-<^J|Ndg5fvVUM9g;lbu-){#ghGw(fg>L zh)T5Ljb%lWE;V9L!;Cqk>AV1(rULYF07ZBJbGb9qbSoLAd;in9{)95YqX$J43-dY7YU*k~vrM25 zxh5_IqO0LYZW%oxQ5HOzmk4x{atE*vipUk}sh88$b2tn?!ujEHn`tQLe&vo}nMb&{ zio`xzZ&GG6&ZyN3jnaQy#iVqXE9VT(3tWY$n-)uWDQ|tc{`?fq2F`oQ{;d3aWPg4Hp-(iE{ry>MIPWL> iW8Zci7-kcv6Uzs@r-FtIZ-&5|)J Q1PU{Fy85}Sb4q9e0B4a5jsO4v literal 0 HcmV?d00001 diff --git a/entrevista_popcode/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png b/entrevista_popcode/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..9da19eacad3b03bb08bbddbbf4ac48dd78b3d838 GIT binary patch literal 68 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx0wlM}@Gt=>Zci7-kcv6Uzs@r-FtIZ-&5|)J Q1PU{Fy85}Sb4q9e0B4a5jsO4v literal 0 HcmV?d00001 diff --git a/entrevista_popcode/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png b/entrevista_popcode/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..9da19eacad3b03bb08bbddbbf4ac48dd78b3d838 GIT binary patch literal 68 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx0wlM}@Gt=>Zci7-kcv6Uzs@r-FtIZ-&5|)J Q1PU{Fy85}Sb4q9e0B4a5jsO4v literal 0 HcmV?d00001 diff --git a/entrevista_popcode/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md b/entrevista_popcode/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md new file mode 100644 index 00000000..89c2725b --- /dev/null +++ b/entrevista_popcode/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md @@ -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. \ No newline at end of file diff --git a/entrevista_popcode/ios/Runner/Base.lproj/LaunchScreen.storyboard b/entrevista_popcode/ios/Runner/Base.lproj/LaunchScreen.storyboard new file mode 100644 index 00000000..f2e259c7 --- /dev/null +++ b/entrevista_popcode/ios/Runner/Base.lproj/LaunchScreen.storyboard @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/entrevista_popcode/ios/Runner/Base.lproj/Main.storyboard b/entrevista_popcode/ios/Runner/Base.lproj/Main.storyboard new file mode 100644 index 00000000..f3c28516 --- /dev/null +++ b/entrevista_popcode/ios/Runner/Base.lproj/Main.storyboard @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/entrevista_popcode/ios/Runner/Info.plist b/entrevista_popcode/ios/Runner/Info.plist new file mode 100644 index 00000000..c94d166d --- /dev/null +++ b/entrevista_popcode/ios/Runner/Info.plist @@ -0,0 +1,45 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + entrevista_popcode + CFBundlePackageType + APPL + CFBundleShortVersionString + $(FLUTTER_BUILD_NAME) + CFBundleSignature + ???? + CFBundleVersion + $(FLUTTER_BUILD_NUMBER) + LSRequiresIPhoneOS + + UILaunchStoryboardName + LaunchScreen + UIMainStoryboardFile + Main + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UIViewControllerBasedStatusBarAppearance + + + diff --git a/entrevista_popcode/ios/Runner/Runner-Bridging-Header.h b/entrevista_popcode/ios/Runner/Runner-Bridging-Header.h new file mode 100644 index 00000000..308a2a56 --- /dev/null +++ b/entrevista_popcode/ios/Runner/Runner-Bridging-Header.h @@ -0,0 +1 @@ +#import "GeneratedPluginRegistrant.h" diff --git a/entrevista_popcode/lib/main.dart b/entrevista_popcode/lib/main.dart new file mode 100644 index 00000000..11655b66 --- /dev/null +++ b/entrevista_popcode/lib/main.dart @@ -0,0 +1,117 @@ +import 'package:flutter/material.dart'; + +void main() { + runApp(MyApp()); +} + +class MyApp extends StatelessWidget { + // This widget is the root of your application. + @override + Widget build(BuildContext context) { + return MaterialApp( + title: 'Flutter Demo', + theme: ThemeData( + // This is the theme of your application. + // + // Try running your application with "flutter run". You'll see the + // application has a blue toolbar. Then, without quitting the app, try + // changing the primarySwatch below to Colors.green and then invoke + // "hot reload" (press "r" in the console where you ran "flutter run", + // or simply save your changes to "hot reload" in a Flutter IDE). + // Notice that the counter didn't reset back to zero; the application + // is not restarted. + primarySwatch: Colors.blue, + // This makes the visual density adapt to the platform that you run + // the app on. For desktop platforms, the controls will be smaller and + // closer together (more dense) than on mobile platforms. + visualDensity: VisualDensity.adaptivePlatformDensity, + ), + home: MyHomePage(title: 'Flutter Demo Home Page'), + ); + } +} + +class MyHomePage extends StatefulWidget { + MyHomePage({Key key, this.title}) : super(key: key); + + // 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 + _MyHomePageState createState() => _MyHomePageState(); +} + +class _MyHomePageState extends State { + 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++; + }); + } + + @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( + // 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. + // + // Invoke "debug painting" (press "p" in the console, choose the + // "Toggle Debug Paint" action from the Flutter Inspector in Android + // Studio, or the "Toggle Debug Paint" command in Visual Studio Code) + // to see the wireframe for each widget. + // + // 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). + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Text( + 'You have pushed the button this many times:', + ), + Text( + '$_counter', + style: Theme.of(context).textTheme.headline4, + ), + ], + ), + ), + floatingActionButton: FloatingActionButton( + onPressed: _incrementCounter, + tooltip: 'Increment', + child: Icon(Icons.add), + ), // This trailing comma makes auto-formatting nicer for build methods. + ); + } +} diff --git a/entrevista_popcode/pubspec.lock b/entrevista_popcode/pubspec.lock new file mode 100644 index 00000000..b6489c51 --- /dev/null +++ b/entrevista_popcode/pubspec.lock @@ -0,0 +1,188 @@ +# Generated by pub +# See https://dart.dev/tools/pub/glossary#lockfile +packages: + archive: + dependency: transitive + description: + name: archive + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.13" + args: + dependency: transitive + description: + name: args + url: "https://pub.dartlang.org" + source: hosted + version: "1.6.0" + async: + dependency: transitive + description: + name: async + url: "https://pub.dartlang.org" + source: hosted + version: "2.4.1" + boolean_selector: + dependency: transitive + description: + name: boolean_selector + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.0" + charcode: + dependency: transitive + description: + name: charcode + url: "https://pub.dartlang.org" + source: hosted + version: "1.1.3" + collection: + dependency: transitive + description: + name: collection + url: "https://pub.dartlang.org" + source: hosted + version: "1.14.12" + convert: + dependency: transitive + description: + name: convert + url: "https://pub.dartlang.org" + source: hosted + version: "2.1.1" + crypto: + dependency: transitive + description: + name: crypto + url: "https://pub.dartlang.org" + source: hosted + version: "2.1.4" + cupertino_icons: + dependency: "direct main" + description: + name: cupertino_icons + url: "https://pub.dartlang.org" + source: hosted + version: "0.1.3" + flutter: + dependency: "direct main" + description: flutter + source: sdk + version: "0.0.0" + flutter_test: + dependency: "direct dev" + description: flutter + source: sdk + version: "0.0.0" + image: + dependency: transitive + description: + name: image + url: "https://pub.dartlang.org" + source: hosted + version: "2.1.12" + matcher: + dependency: transitive + description: + name: matcher + url: "https://pub.dartlang.org" + source: hosted + version: "0.12.6" + meta: + dependency: transitive + description: + name: meta + url: "https://pub.dartlang.org" + source: hosted + version: "1.1.8" + path: + dependency: transitive + description: + name: path + url: "https://pub.dartlang.org" + source: hosted + version: "1.6.4" + petitparser: + dependency: transitive + description: + name: petitparser + url: "https://pub.dartlang.org" + source: hosted + version: "2.4.0" + quiver: + dependency: transitive + description: + name: quiver + url: "https://pub.dartlang.org" + source: hosted + version: "2.1.3" + sky_engine: + dependency: transitive + description: flutter + source: sdk + version: "0.0.99" + source_span: + dependency: transitive + description: + name: source_span + url: "https://pub.dartlang.org" + source: hosted + version: "1.7.0" + stack_trace: + dependency: transitive + description: + name: stack_trace + url: "https://pub.dartlang.org" + source: hosted + version: "1.9.3" + stream_channel: + dependency: transitive + description: + name: stream_channel + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.0" + string_scanner: + dependency: transitive + description: + name: string_scanner + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.5" + term_glyph: + dependency: transitive + description: + name: term_glyph + url: "https://pub.dartlang.org" + source: hosted + version: "1.1.0" + test_api: + dependency: transitive + description: + name: test_api + url: "https://pub.dartlang.org" + source: hosted + version: "0.2.15" + typed_data: + dependency: transitive + description: + name: typed_data + url: "https://pub.dartlang.org" + source: hosted + version: "1.1.6" + vector_math: + dependency: transitive + description: + name: vector_math + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.8" + xml: + dependency: transitive + description: + name: xml + url: "https://pub.dartlang.org" + source: hosted + version: "3.6.1" +sdks: + dart: ">=2.7.0 <3.0.0" diff --git a/entrevista_popcode/pubspec.yaml b/entrevista_popcode/pubspec.yaml new file mode 100644 index 00000000..56b28907 --- /dev/null +++ b/entrevista_popcode/pubspec.yaml @@ -0,0 +1,76 @@ +name: entrevista_popcode +description: A new Flutter project. + +# The following line prevents the package from being accidentally published to +# pub.dev using `pub publish`. This is preferred for private packages. +publish_to: 'none' # Remove this line if you wish to publish to pub.dev + +# The following defines the version and build number for your application. +# A version number is three numbers separated by dots, like 1.2.43 +# followed by an optional build number separated by a +. +# Both the version and the builder number may be overridden in flutter +# build by specifying --build-name and --build-number, respectively. +# In Android, build-name is used as versionName while build-number used as versionCode. +# Read more about Android versioning at https://developer.android.com/studio/publish/versioning +# In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion. +# Read more about iOS versioning at +# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html +version: 1.0.0+1 + +environment: + sdk: ">=2.7.0 <3.0.0" + +dependencies: + flutter: + sdk: flutter + + + # The following adds the Cupertino Icons font to your application. + # Use with the CupertinoIcons class for iOS style icons. + cupertino_icons: ^0.1.3 + +dev_dependencies: + flutter_test: + sdk: flutter + +# For information on the generic Dart part of this file, see the +# following page: https://dart.dev/tools/pub/pubspec + +# The following section is specific to Flutter. +flutter: + + # The following line ensures that the Material Icons font is + # included with your application, so that you can use the icons in + # the material Icons class. + uses-material-design: true + + # To add assets to your application, add an assets section, like this: + # assets: + # - images/a_dot_burr.jpeg + # - images/a_dot_ham.jpeg + + # An image asset can refer to one or more resolution-specific "variants", see + # https://flutter.dev/assets-and-images/#resolution-aware. + + # For details regarding adding assets from package dependencies, see + # https://flutter.dev/assets-and-images/#from-packages + + # To add custom fonts to your application, add a fonts section here, + # in this "flutter" section. Each entry in this list should have a + # "family" key with the font family name, and a "fonts" key with a + # list giving the asset and other descriptors for the font. For + # example: + # fonts: + # - family: Schyler + # fonts: + # - asset: fonts/Schyler-Regular.ttf + # - asset: fonts/Schyler-Italic.ttf + # style: italic + # - family: Trajan Pro + # fonts: + # - asset: fonts/TrajanPro.ttf + # - asset: fonts/TrajanPro_Bold.ttf + # weight: 700 + # + # For details regarding fonts from package dependencies, + # see https://flutter.dev/custom-fonts/#from-packages From 5e9530ecd8d7caac28f828d507f425db744b113d Mon Sep 17 00:00:00 2001 From: Cleyslane Date: Sat, 18 Jul 2020 00:24:14 -0300 Subject: [PATCH 2/7] =?UTF-8?q?Conex=C3=A3o=20com=20a=20API=20e=20cria?= =?UTF-8?q?=C3=A7=C3=A3o=20db?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- entrevista_popcode/lib/MyHomePage.dart | 71 +++++++++++++ entrevista_popcode/lib/helpers/database.dart | 41 +++++++ .../lib/helpers/pessoahelper.dart | 79 ++++++++++++++ .../lib/helpers/requisicaoAPI.dart | 34 ++++++ entrevista_popcode/lib/main.dart | 100 +----------------- entrevista_popcode/lib/models/pessoa.dart | 55 ++++++++++ entrevista_popcode/pubspec.lock | 54 +++++++++- entrevista_popcode/pubspec.yaml | 4 + 8 files changed, 338 insertions(+), 100 deletions(-) create mode 100644 entrevista_popcode/lib/MyHomePage.dart create mode 100644 entrevista_popcode/lib/helpers/database.dart create mode 100644 entrevista_popcode/lib/helpers/pessoahelper.dart create mode 100644 entrevista_popcode/lib/helpers/requisicaoAPI.dart create mode 100644 entrevista_popcode/lib/models/pessoa.dart diff --git a/entrevista_popcode/lib/MyHomePage.dart b/entrevista_popcode/lib/MyHomePage.dart new file mode 100644 index 00000000..2aef0cee --- /dev/null +++ b/entrevista_popcode/lib/MyHomePage.dart @@ -0,0 +1,71 @@ +import 'package:entrevista_popcode/helpers/requisicaoAPI.dart'; +import 'package:entrevista_popcode/models/pessoa.dart'; +import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; +import 'package:http/http.dart' as http; + +class MyHomePage extends StatefulWidget { + MyHomePage({Key key, this.title}) : super(key: key); + + // 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 + _MyHomePageState createState() => _MyHomePageState(); +} + +class _MyHomePageState extends State { + @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( + title: Text(widget.title), + ), + body: FutureBuilder>( + future: RequisicaoApi().getPessoas(http.Client(), 8), + builder: (context, snapshot) { + if (snapshot.hasError) print(snapshot.error); + + return snapshot.hasData + ? PessoasList(pessoas: snapshot.data) + : Center(child: CircularProgressIndicator()); + }, + ), + ); + } +} + +class PessoasList extends StatelessWidget { + final List pessoas; + + PessoasList({Key key, this.pessoas}) : super(key: key); + + @override + Widget build(BuildContext context) { + return ListView.builder( + itemCount: pessoas.length, + itemBuilder: (context, index) { + Pessoa p = pessoas[index]; + //return Text(p.name); + return ListTile( + title: Text(p.name), + subtitle: Text(p.birthYear), + ); + }, + ); + } +} diff --git a/entrevista_popcode/lib/helpers/database.dart b/entrevista_popcode/lib/helpers/database.dart new file mode 100644 index 00000000..1647dc77 --- /dev/null +++ b/entrevista_popcode/lib/helpers/database.dart @@ -0,0 +1,41 @@ +import 'package:entrevista_popcode/helpers/pessoahelper.dart'; +import 'package:entrevista_popcode/models/pessoa.dart'; +import 'package:path/path.dart'; +import 'package:sqflite/sqflite.dart'; + +abstract class DataBaseHelper { + static final _databaseName = 'starwars.db'; + static final _databaseVersion = 1; + + static Database _dataBase; + + Future savePeople(T people); + Future getFirst(String nome); + Future getAll(); + Future getNumber(); + + Future get database async { + if (_dataBase != null) return _dataBase; + _dataBase = await _creatDatabase(); + return _dataBase; + } + + Future _creatDatabase() async { + final databasePath = await getDatabasesPath(); + final path = join(databasePath, _databaseName); + + return await openDatabase( + path, + version: _databaseVersion, + onCreate: (Database db, int version) async { + await db.execute( + "CREATE TABLE IF NOT EXISTS ${PessoaHelper.tableName} ( ${PessoaHelper.idColumn} INTEGER PRIMARY KEY AUTOINCREMENT, " + "${PessoaHelper.heightColumn} TEXT,${PessoaHelper.masColumn} TEXT, " + "${PessoaHelper.hairColorColumn} TEXT, ${PessoaHelper.skinColorColumn} TEXT, " + "${PessoaHelper.eyeColorColumn} TEXT, ${PessoaHelper.birthYearColumn} TEXT, " + "${PessoaHelper.genderColumn} TEXT, ${PessoaHelper.homeWorldColumn} TEXTE, " + "${PessoaHelper.specieColumn} TEXT)"); + }, + ); + } +} diff --git a/entrevista_popcode/lib/helpers/pessoahelper.dart b/entrevista_popcode/lib/helpers/pessoahelper.dart new file mode 100644 index 00000000..7e6e687e --- /dev/null +++ b/entrevista_popcode/lib/helpers/pessoahelper.dart @@ -0,0 +1,79 @@ +import 'package:entrevista_popcode/helpers/database.dart'; +import 'package:entrevista_popcode/models/pessoa.dart'; +import 'package:sqflite/sqflite.dart'; + +class PessoaHelper extends DataBaseHelper { + static final String tableName = 'tbPersonage'; + static final String idColumn = 'id'; + static final String nameColumn = 'name'; + static final String heightColumn = 'height'; + static final String masColumn = 'mass'; + static final String hairColorColumn = 'hairColor'; + static final String skinColorColumn = 'skinColor'; + static final String eyeColorColumn = 'eyeColor'; + static final String birthYearColumn = 'birthYear'; + static final String genderColumn = 'gender'; + static final String homeWorldColumn = 'homeWorld'; + static final String specieColumn = 'specie'; + + PessoaHelper._privateConstructor(); + static final PessoaHelper instance = PessoaHelper._privateConstructor(); + + @override + Future savePeople(Pessoa people) async { + Database db = await database; + Pessoa personagem = await getFirst(people.name); + String nomePlaneta = ""; + String nomeEspecie = ""; + + if (personagem == null) { + if (people.homeWorld.isNotEmpty || (people.species != null)) { + try { + if (people.homeWorld.isNotEmpty) + nomePlaneta = await Requisicao().getNomePlaneta(people.homeWorld); + if (people.species != null && people.species.length > 0) + nomeEspecie = + await Requisicao().getNomeEspecie(people.species.first); + } catch (e) { + throw new Exception("Não foi possível realizar a requisição!"); + } + } + + people.homeWorld = nomePlaneta; + people.specie = nomeEspecie; + + people.id = await db.insert(tableName, people.toMap()); + } + return people; + } + + @override + Future getFirst(String nome) async { + Database db = await database; + List personagem = await db + .rawQuery("SELECT * FROM $tableName WHERE $nameColumn LIKE '$nome'"); + if (personagem != null && personagem.length > 0) { + return Pessoa.fromJson(personagem.first); + } else { + return null; + } + } + + @override + Future getAll() async { + Database db = await database; + List listMap = await db.rawQuery("SELECT * FROM $tableName"); + List listaPessoas = List(); + for (Map m in listMap) { + listaPessoas.add(Pessoa.fromJson(m)); + } + return listaPessoas; + } + + @override + Future getNumber() async { + Database db = await database; + return Sqflite.firstIntValue( + await db.rawQuery("SELECT COUNT(*) FROM $tableName")); + } +} diff --git a/entrevista_popcode/lib/helpers/requisicaoAPI.dart b/entrevista_popcode/lib/helpers/requisicaoAPI.dart new file mode 100644 index 00000000..5f1b08dc --- /dev/null +++ b/entrevista_popcode/lib/helpers/requisicaoAPI.dart @@ -0,0 +1,34 @@ +import 'dart:convert'; + +import 'package:dio/dio.dart'; +import 'package:entrevista_popcode/models/pessoa.dart'; +import 'package:flutter/foundation.dart'; +import 'package:http/http.dart' as http; + +class RequisicaoApi { + Future> getPessoas(http.Client client, int page) async { + http.Response response = await client.get('http://swapi.dev/api/people/'); + + if (response.statusCode == 200) { + return compute(parsePessoa, response.body); + } else { + throw Exception('Não foi possível se conectar a API'); + } + } + + Future getEspecie(String nomeEspecie) async { + var response = await Dio().get(nomeEspecie); + return response.data['name']; + } + + Future getPlaneta(String nomePlaneta) async { + var response = await Dio().get(nomePlaneta); + return response.data['name']; + } +} + +List parsePessoa(String responseBody) { + final parsed = jsonDecode(responseBody); + var results = parsed['results']; + return results.map((json) => Pessoa.fromJson(json)).toList(); +} diff --git a/entrevista_popcode/lib/main.dart b/entrevista_popcode/lib/main.dart index 11655b66..4a823bb4 100644 --- a/entrevista_popcode/lib/main.dart +++ b/entrevista_popcode/lib/main.dart @@ -1,4 +1,5 @@ import 'package:flutter/material.dart'; +import 'MyHomePage.dart'; void main() { runApp(MyApp()); @@ -11,107 +12,10 @@ class MyApp extends StatelessWidget { return MaterialApp( title: 'Flutter Demo', theme: ThemeData( - // This is the theme of your application. - // - // Try running your application with "flutter run". You'll see the - // application has a blue toolbar. Then, without quitting the app, try - // changing the primarySwatch below to Colors.green and then invoke - // "hot reload" (press "r" in the console where you ran "flutter run", - // or simply save your changes to "hot reload" in a Flutter IDE). - // Notice that the counter didn't reset back to zero; the application - // is not restarted. primarySwatch: Colors.blue, - // This makes the visual density adapt to the platform that you run - // the app on. For desktop platforms, the controls will be smaller and - // closer together (more dense) than on mobile platforms. visualDensity: VisualDensity.adaptivePlatformDensity, ), - home: MyHomePage(title: 'Flutter Demo Home Page'), - ); - } -} - -class MyHomePage extends StatefulWidget { - MyHomePage({Key key, this.title}) : super(key: key); - - // 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 - _MyHomePageState createState() => _MyHomePageState(); -} - -class _MyHomePageState extends State { - 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++; - }); - } - - @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( - // 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. - // - // Invoke "debug painting" (press "p" in the console, choose the - // "Toggle Debug Paint" action from the Flutter Inspector in Android - // Studio, or the "Toggle Debug Paint" command in Visual Studio Code) - // to see the wireframe for each widget. - // - // 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). - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Text( - 'You have pushed the button this many times:', - ), - Text( - '$_counter', - style: Theme.of(context).textTheme.headline4, - ), - ], - ), - ), - floatingActionButton: FloatingActionButton( - onPressed: _incrementCounter, - tooltip: 'Increment', - child: Icon(Icons.add), - ), // This trailing comma makes auto-formatting nicer for build methods. + home: MyHomePage(title: 'Star Wars'), ); } } diff --git a/entrevista_popcode/lib/models/pessoa.dart b/entrevista_popcode/lib/models/pessoa.dart new file mode 100644 index 00000000..e95fd48f --- /dev/null +++ b/entrevista_popcode/lib/models/pessoa.dart @@ -0,0 +1,55 @@ +class Pessoa { + int id; + String name; + String height; + String mass; + String hairColor; + String skinColor; + String eyeColor; + String birthYear; + String gender; + String homeWorld; + String specie; + List species; + + Pessoa( + {this.name, + this.height, + this.mass, + this.hairColor, + this.skinColor, + this.eyeColor, + this.birthYear, + this.gender, + this.homeWorld, + this.specie, + this.species}); + + factory Pessoa.fromJson(Map json) => Pessoa( + name: json['name'], + height: json['height'], + mass: json['mass'], + hairColor: json['hair_color'], + skinColor: json['skin_color'], + eyeColor: json['eye_color'], + birthYear: json['birth_year'], + gender: json['gender'], + homeWorld: json['homeworld'], + species: json['species'].cast(), + ); + + Map toMap() { + return { + 'name': this.name, + 'height': this.name, + 'mass': this.name, + 'hairColor': this.hairColor, + 'skinColor': this.skinColor, + 'eyeColor': this.eyeColor, + 'birthYear': this.birthYear, + 'gender': this.gender, + 'homeWorld': this.homeWorld, + 'specie': this.specie + }; + } +} diff --git a/entrevista_popcode/pubspec.lock b/entrevista_popcode/pubspec.lock index b6489c51..073edcdc 100644 --- a/entrevista_popcode/pubspec.lock +++ b/entrevista_popcode/pubspec.lock @@ -64,6 +64,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "0.1.3" + dio: + dependency: "direct main" + description: + name: dio + url: "https://pub.dartlang.org" + source: hosted + version: "3.0.8" flutter: dependency: "direct main" description: flutter @@ -74,6 +81,20 @@ packages: description: flutter source: sdk version: "0.0.0" + http: + dependency: "direct main" + description: + name: http + url: "https://pub.dartlang.org" + source: hosted + version: "0.12.2" + http_parser: + dependency: transitive + description: + name: http_parser + url: "https://pub.dartlang.org" + source: hosted + version: "3.1.4" image: dependency: transitive description: @@ -96,12 +117,19 @@ packages: source: hosted version: "1.1.8" path: - dependency: transitive + dependency: "direct main" description: name: path url: "https://pub.dartlang.org" source: hosted version: "1.6.4" + pedantic: + dependency: transitive + description: + name: pedantic + url: "https://pub.dartlang.org" + source: hosted + version: "1.9.0" petitparser: dependency: transitive description: @@ -128,6 +156,20 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "1.7.0" + sqflite: + dependency: "direct main" + description: + name: sqflite + url: "https://pub.dartlang.org" + source: hosted + version: "1.3.0" + sqflite_common: + dependency: transitive + description: + name: sqflite_common + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.2+1" stack_trace: dependency: transitive description: @@ -149,6 +191,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "1.0.5" + synchronized: + dependency: transitive + description: + name: synchronized + url: "https://pub.dartlang.org" + source: hosted + version: "2.2.0+2" term_glyph: dependency: transitive description: @@ -185,4 +234,5 @@ packages: source: hosted version: "3.6.1" sdks: - dart: ">=2.7.0 <3.0.0" + dart: ">=2.8.0 <3.0.0" + flutter: ">=1.10.1 <2.0.0" diff --git a/entrevista_popcode/pubspec.yaml b/entrevista_popcode/pubspec.yaml index 56b28907..deca0bb7 100644 --- a/entrevista_popcode/pubspec.yaml +++ b/entrevista_popcode/pubspec.yaml @@ -23,6 +23,10 @@ environment: dependencies: flutter: sdk: flutter + sqflite: 1.3.0 + path: 1.6.4 + dio: 3.0.8 + http: ^0.12.0+3 # The following adds the Cupertino Icons font to your application. From 73ea07c0359e954a05d692c953c788b4a956ca08 Mon Sep 17 00:00:00 2001 From: Cleyslane Date: Tue, 21 Jul 2020 09:39:31 -0300 Subject: [PATCH 3/7] Criando Views --- entrevista_popcode/.vscode/launch.json | 14 ++ .../assets/images/dia-star-wars.jpg | Bin 0 -> 25669 bytes entrevista_popcode/assets/images/starWars.jpg | Bin 0 -> 53206 bytes entrevista_popcode/lib/MyHomePage.dart | 71 -------- entrevista_popcode/lib/helpers/database.dart | 11 +- .../{pessoahelper.dart => pessoa_helper.dart} | 51 +++--- ...requisicaoAPI.dart => requisicao_API.dart} | 3 +- entrevista_popcode/lib/main.dart | 21 ++- entrevista_popcode/lib/models/pessoa.dart | 2 +- entrevista_popcode/lib/views/homepage.dart | 163 ++++++++++++++++++ entrevista_popcode/lib/views/personagens.dart | 151 ++++++++++++++++ entrevista_popcode/pubspec.lock | 7 + entrevista_popcode/pubspec.yaml | 6 +- 13 files changed, 389 insertions(+), 111 deletions(-) create mode 100644 entrevista_popcode/.vscode/launch.json create mode 100644 entrevista_popcode/assets/images/dia-star-wars.jpg create mode 100644 entrevista_popcode/assets/images/starWars.jpg delete mode 100644 entrevista_popcode/lib/MyHomePage.dart rename entrevista_popcode/lib/helpers/{pessoahelper.dart => pessoa_helper.dart} (58%) rename entrevista_popcode/lib/helpers/{requisicaoAPI.dart => requisicao_API.dart} (89%) create mode 100644 entrevista_popcode/lib/views/homepage.dart create mode 100644 entrevista_popcode/lib/views/personagens.dart diff --git a/entrevista_popcode/.vscode/launch.json b/entrevista_popcode/.vscode/launch.json new file mode 100644 index 00000000..bd16495d --- /dev/null +++ b/entrevista_popcode/.vscode/launch.json @@ -0,0 +1,14 @@ +{ + // Use IntelliSense to learn about possible attributes. + // Hover to view descriptions of existing attributes. + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + + { + "name": "Flutter", + "request": "launch", + "type": "dart" + } + ] +} \ No newline at end of file diff --git a/entrevista_popcode/assets/images/dia-star-wars.jpg b/entrevista_popcode/assets/images/dia-star-wars.jpg new file mode 100644 index 0000000000000000000000000000000000000000..6c992bc80fceed83dec5711edd41dc7d7ceed2cb GIT binary patch literal 25669 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

e)tn_JzBnbEhP9A$WK{APY;4)n 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 bDDz%8)ZhV)GJ`-~y#@7(_ZdUR&_ literal 0 HcmV?d00001 diff --git a/entrevista_popcode/assets/images/starWars.jpg b/entrevista_popcode/assets/images/starWars.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b0d7d2e6396ef79cdf3f4a0a568157ff0e4ac328 GIT binary patch literal 53206 zcmb4qRZtwv6X)U*B)Cg(cX!v|?(XjH?kohCh2XA>Lm;?2B)Ah?7nl3~4_9@s*Yns@ z{p*_QYMbuQKc72*uL?5qG5{zj008R01NdAANCMzt;o#w5;o;%n5fI=Jk-s7%BOxJU zqoJdG#lyzO$HT_OB_yFHBP60E#>FLPBB!LGrDvcgAY*1@remX~qo@0y5GVu$1Y|^H zEM#OXIzn7Ry8mzb><3^VLK#CV!$460pfR9eFrYq%0K@z?1r37; z_>U{~6#xwd0|N~U3j+@e3kL^)`HusD#el>72G5Qqu4aaSP2t8N5r#vl4lHgmcORHX zq~ess)d)}9rRMs1eS>Gg{ht&fD8T<9{vQljxc}t90}%dW@?iX@z<(Gp|3UswlmFfg z8UTXYr->l>e?mW58elL;-i+QClI6 zRmV5xMYbfzuWIzAI$7@3Mf+jrf^$0Pfv5g%pMVv;Dhlv)pd5FYo;gvskWxl$-JRi` z?zF!y53P#8sQ)5&{%S?Lazqm%z>h&TjqD?0x^TcOREx`TF2CbbBf9$u7?=*J zDZx{ya&iv2R08Ug)Qn~W`X=G`d?V_>ieIY8eTx}A|7fu#ehosrGn^lPq2A9VTCb99 zVL6t=Cquu|{)qSlpyTFhx~q6q_Aadlr&hHiTxq2k**lLf9^& z+@X%I_i77)DRxOuVq;9})(fSaDO0My6IVe8t$KnZVvrxHFk^O}*s+HG1 z{^)i6Q#^jgvm{`x=_q)Vf>o%^a-FZXXfzw5o;;FhXx;b=847K!g(Q7F^QUk!pA*Xi4Bg# z`|^Z{=y#_f#k|A5&EbkMu+f(>ss{M8vA(O2N}$XkP8u@-UZ;CcRQJ?&cSk5tZc8o2 z1in$BAF76@4_pc^bu1<5+z-qAA?FKQ?+vU;*BixIqlS$S&EceRRDMXsGnZi#O7VA@ zcY=2YBaK$w-6haBga#k6)7dlSWd2cX0Lwe709 zDHAg1852qmnjT3H`UN6~Y?zM?JTsCCOKK+8Qa7CdTW9NTx8t{!IyoI3au;(k?id>U2l*P# zbv8~5n_O*|;vL<;Xa2k&g$!O8c31Unj<&wYWXCfg3+5E4-*7bAImcQ!A}GVNKL_^rx7IhKzRH z*#f(7L~1GS4ody(1C>LwOULkDaq;;!DGF))I0&NZK=l%fw&F;dm>H>)+$%4Xw%J|7 zVJeOtHa$GMfdgV4fJ5*8h9X1nQVL}TzK#1RsU%JF5F?F;@w2nESCj?$)sJF8D$gN^Tsvty)S|zWvp$_MGMq*_1;~3tnj``7lqi z*H3_%2GY?_TbPfg2OMF_#8F0hdRbLumW|8f)rr{lyX*!rw+fRLcj6VX^gj2S9<6Lb}H4Eag)51Ka#TU=FZf^xW$H#9=^fTHN+GLk;_Yk(SKTvHs z&U)3TRAqZDOfd4uBGDh~9-Wja3>+Zb_`+rB*X>1)-+ZmR+ixsIO86R-Y4aX&v&`y0k7OC5$)8tl4)wVV9D>a^HB>tYnVNU8{ws&EyG~MwEZCz=H>!C0_XOpnxL5|Rh&d>AuFjqy7C|rdyQl8ZSr+yuX(TJ(0-h{wg6Ai! z>Jllf*@ct)=KbpzvXxwc;0xef6(s^Wp<&X{d?f#kcd9OENa&ZE23MQ{A3`rnF9)r- zJOZRJ^ohGVyDM5zogL>~u&HpS=M!M@&T!D%o_ssw;1~U`Tq038cGxeX41&aUw$3b$ zB!UvwH+lTdX?p1ibNONDb zD*~+82HG6IU1f|SJgbkC*xi{k*HJ3%HX(J}?qKPNjyO?1uH+`_O;SqJ2ok$;d1D~-ju7#FqFmk}vq!7900G4Pa$=3U1(r<|}Md3$~=^TR9T{C*N*n*h1LXgrd#npT*W;qgzdv1!}pmug6K{BJ9icgS;#YwFTSuwx6 zZxn7V-Bk?iu8m+3{iFgG%FklgE&Jzwp$h-YGfGrWMBIiBpJJEZQ(yK4UJLEuMfFr( zFwt{4QmmQ{_RI3uajyN?NjaHAvy?N1#|Jp43u9^9*`)A9kNe|vkV4a?xu2!&kw#A# z?Q-Hpne)#!(Pnj{?p^bFe##7WUy4`_Sg<(pkaNjmNqesC{`#-R*^0_y6P7+qPI{gG zagwS@wbpprBAw6qAdc5P zg}c5S;m5x^(9NglU{*}=N{AU=qQco^yQi_uj(jV z3zo_m#fG2Q9_r8}K3HtU7acZm`!WG68ZGlo7b$y^7mM8&}=5)7vQ+grV3jbpB`W?*S;8siW# zCgN2DPp9X*nLLv1bs=1L=~Iu~Ikp$RNp8iQ>^5zW$<#s_i*DL~N7FrkCb!q7+ev0$ z;DEQ(2dUHYfN$GCl$8ZjuO>5$o}7u_=jzPWwd3s71|iSE88cQaYBScmZJKE9vwh?t zBE#vCp*ji~JhK!)>B?X~TP{e~eiI}0oi;4Mt4I=+3{!cR7xmrtP!Jd?vEm~&5Bb~6 zy3f6v*L?ROnr})QUm-$oZ^B)Z;OX*n!vbemxSIdpFYJZj&1jmz_4$ z#MS*%t!vTjM!;olT1`_)pzsaUo^p)C{r3j~e<{&xYx0S)T$=B4m~DP)J=7a5@m>z( zEU9{90j-S3C{9R6y1vES9AUn7YZvWaxcPL`e6g%c9Oc`QZfaVSKR_kWLsf+Oj8vrA z^|!P<8={b@nsH{noiJ-B(#BYLcGQf2 zgFQ`W!_Q(v$5v|-I_kh}+Nol_Y~{~mb6>#AVh~7Kc?F&q?0N>F>fooGTfuE0h+gXc zX%-jRl$7mucxHGImVk*M*b?8`#an{*t44ohVr*htRfueHC0`(Gr|e#KxJ~thE8kH# zimoGep;tuK?-*^QU`tROnTh>W98qe}?EpDIX{AVuw&%(K&;r$$juLsW!5* z41-qI^1$0Nn(x#~ArY3<4vY!bp>FDKqfiaN(z-eN$hxm~2Ow-O4bE?eeX?jAhrA0r zjK+DvC1cB-mNr7ijaIZ;=?6k34Z)0IOZ%Je;h=hvr_7oj{(7pPx0@xloX{bao?*mo z^i8~9!@b;t^?~aH_U{nuuoniXCB$m7NY)3A2x{VB#0dW2ZQ`p$1+rS9RHOrJNh(Bs zm$H+;`c$r=zkdQ6tJFJ8ixMqn5?bzZrvG&;Hk@%IQ2DLszRN;)>8|DzB-ffF`g|MA1Nb-tS56G& z>y{gZtJ%4ZrLtwv#bYxUk*cSc{dD*PtwEJdL9rSSH4ca8rjRWg6y4X~6PH^*Hm!eFP5(lib? z)~Q*bc}YsjF*=v%xBPx1x?5IvF_tz#6>E|2U8?{qSU#xAOqyjO^vi+KU~SsX$u>=v zV8Hq)<-S#at0BbYHd8EXWU~anoWGCklu+`rGub4~`>>cO=C%f*C_1a0BQG#Vbi|MB zLiK?jKXvX~yY{O?7b`+Gys4}UMzBudT`yz4>p=|a0z4tmS zn4oUib_ENIoL?3WJxRBuo^0Ziv57Zu+(!+qm>LzY4Vgim`_(k;rl``N%C`>CoXN)U z6n#jbDWE%tlxb9S)L;B!*SX*+xU6tbMi3qRCs4ToaY?;^TVqicOVV+-!<_8_c`aer~D z+f*b_5-Da-Di=Dtkz_8LVCticLfx~N@3Df1wi*@Ba)UMDls}Il%{}iSub8giU+Nn?KvZ zZ%kfI2UTYY3k+i<=4_@iS`u4ZIKv`%I8RWfvaG_m(oX4+=0|g{kTT}5V^3+=5xeto z>EHZ%@pK;(;+7g&;LM*_PCh}E)Jomnz-eC8QVd+$&%7hT>U^Egi0xK0*SQR)7)}sJ zJpf{xQ<=vjc95v^Z_SFhu@bk^ddSvYr(jdydWE6 zvPv9JMsK~ck%&H-!v5mZAoj;|-*%mqE8AQ<^&qfr1aA-~q7_t=zv6UXn7bPP7b2aS zqDs!CpAV2Gr_IOYie&NT2fMZP(c+6G7gwM4q#v{&NrFi9*C z;Hw}HgE02Cwe;L@U%LjQTSap;Ay)|HT@tFoKCbYN21k<%4|vs z9tWHy9R8`=mwHMMOhYlGWMdt^|C$dBx8xiM1qS+U8Pq9Ba1#@m&9rm<=w&zgK}p(c zKZq0=Qe^`65~Mcx;<%l$(gDqtuL9`c2$oanD$-(wCjg3 zyNTtfk^!*hUgo`^7|)IJTA-k&h6CF2&`wujMSum{m9lQ&M~w^A`E;g8sMZ`XQd(;t z20FEm_|H|Q!zeN9TSwZJ3 zaw#}&Eb;jIC17!NNJ(z%jH4Q~+0VlwblSLb+;5iquS*8BP=vK{$6sGj_2#1LLmbxs zPT`_vxSK}{(wF^}$K)D(KU}|I*=NUdE7=)~EvnVtUyveG0l>d=*9s<)C*1d(X&ArX ztHE!}iB>`Q1s1Z`(LG7f#kOpACb%svPcgr|=X;&YLc=1%D9k?g4z~CuZ!~J>hT_eW z;NdxnQG#-JG`iMHJ7**qT-{FC^HVkzW*2`10jvqSzF7c?271Y_0!XUmZf7(6Cw{Lm zdi_oW>0=pL3;*O@NUh2lRXFJtAd2uJDYauiNGkVrxgZAW@|iSl&9zC5GJ`MT+d(ac=Aau4<1dRzxzS z$We_i;qkd3Jrg>=ptwmfAc)UeMr`)mLHfrJ1ewLjpPNcU;@uc&+b;IZ)suv?u`*P5 zqh=4qm!`_F0gKg^k`{g!JimJX(yV)1eSF&nc}QC3>fv884Q{OD3}TK_t(?&Y)uaUu zTYq!1;Pv1nNQ{H+!4yf~hA+WBcoz#GeCpi%=a6@hzgG{7Gh=Fm(E48~Z=`$cP#Cqg z{|4@S({uvm&sZpq6olwqJM%Xr*nn*v7`290`SV~5qU*g<8EC>{^U{X{D{@~g07&Xk z1Oy~!B-PZ-0n=l(6--bU`nXlNYB|)Z=(KGNh*>6X{n6*5uLyvyi3u$^Vv9*`yb_HN z!}~XNz|gkz7nqsd9%zvzx$h44(j|y#j$;gV=hf{pbY) z5FYstAr_%&*CjC5ssOH&Nku(R-8-<5V9v&F9hmO{V)9?jgQ&#)!n{A@Gt5k0JN_5F zrz?`5d|LXP;-3i!P|1das`~_F33p_wsM}-c+q1fOQ@3Zt67iECZ~fqA<{;7|b+9vZ zrp{&`duLQm61XxMdo+?0`&y)x4Jcc`_`ceOJov-UeK0xjBxum_ zd=KHe=bc^a6QIUs#|sQAgfo1B)UuaA?^E*kS9{bb^vqBQ&lWh8^Yddd`#xCHP5jCF z1*;R_H<8RXIJYD}j^g7}M-gn7%t6c5=HzUF`Xl}ckU?trP%cbAJvit@<4d*U?-#Go zoaLBbh{|hwHcS_w@3d4IC^FnUc6@i~?bnzwP zq`l2Q(y+JZw-!k=d$=f&+fdw#KZm@KdXoSqBnS36*R%Bp5(#Ho--gX6;DV-wZXoiE zxz4FJ1)&Gxo#TV^9*O5lJj`XbDgx1Yvs{SuSeObhIGUP7?@O89Ssr{nequ`Ft*n-DtjvB-@>_$cnH)bVDU;PDSxlP{q{kh3t`Y zdKC%xA!!EFYE8x!5vDK5zWEf9XQFw>TzWHXtxoWs4?w>Gj|elRPOD~s+Y&b}sw{&J zyf5V{sEfPLQnRwAWwKY{7FajMPZD#{4}Zf99QI6Bt*{krn&vp7hy4ak(%K|1(UAnA zg%PpNY0XP2>6e$ItDs6A718`vGJ}(;2SUrQysc7k{eIK&Ey1`1KaMP7x5zx)PiD$0l)S@3%h0sxc@rCb{M1nh@ z)3-5Ne6*+3ADv;VxH}fDZC7smpzyZ`c(JaP8PyqFhG~x&dt$w<8rt|mYIYi!8D=jm zUn4v*OSwL=Dz^^ccTn&7D%2wWl2=)=d@Kp@PFiE+`w|(!nE4 z8cLO!k>JhT3GDSalcgu6m7KD1cB6Uc;2rmce}Cd zy*QpXpd|9E^Q{GqK9mY;IMpsPIgh*SR^7zX$c*2TdTw7o){q_8EI_#Bv*{c~~zPZI~rvp4oD zTuZI5;zD&+Y&T0URp(&6GhB58Lnk2g)uGOub}khWtksg2!Mgj0F6IhAmpEY2C@PjE zu>=rmYgG1Yg@awWi@WWg#eO^XR_XfGp+I!Q7a-D!_JG)4j+4cUL^4wG!&fKh+%Dt6 zW3Vsfh+1&@Y*8^p`&@l==%8_}W~JXhB@w?E1tY`0cJ>?U1OAHAtQ zTB8~a(W~>kavE!e(e3L6qL1wyAL?&hGiE{eUG07UD(Yqw*@zb(2O6SYOmt6H1sc?h z$Ki57hfd~6p&aswY4Z2?)uS3953JnoU%Oo=+|J3TBuLjROqc2}SVvGhK*PS~=@lQ4 z+`Lv>6C-Q90R2gw*L|q&uzk1Mc6UPt-IiX#%0ttL58X@b9c}Kt&WLk7o=@gWq(^NM zbYzkwmnT|(Ng~HpKuHzdvK?U9m~)c=F0T1yZ4S>iaBw7(VSzCTyZyFeS`FTOU9s8Hq>&p27a6( ztVdu?w(+F7qDh+)7Y1kprmX^wCvuc6Nxxn2yd}7Ou`stGI2Ku6!IL*}rIx#j5IZO0 zj1sEiqev8YbpIn5e9v7CmD0-F8w((S{+@G-W^1UuryeY3&&3pQ7?c#p1`#aqn)@4%BLArT1zKOBqBTTv6<=k$Kl(}GfDCnX* zRdLC|xC+AHx-2|vh`Cx`xnjOCaKW692$_c{l_VZV$Yvxiyw9qf+-t#fS2DL^_-j3k-T`8gxYMcQdC1jGofA0D0Gq~sc3DkNdBC6~m$Z{gME=ZQI-}R;;q%luQZ%nJKajZh zadexZyv((7CrGVp_OZU>IxY{wooj*WlN-#WrS%ZCSNOM@>~tg_8D(LuJ86kK0#E07(JkglZ#apy4AiSw}`@kr1zG zNSPQWV0$geVeY(Oxnq#f*n9AG9uknn?%nv}YyqF=9)7{Ztf-?-l*UgScXO5anXIg0rf)H{7K2hmI)C+(D;uIDH5vF@m`ItF zdq1pDDAhmn6X1V%gH_4GJ#ALh;)mRMO_8L74BT%b%UVf*WNZY{FKBNHmZ=ad<@5xc z2u;PjrhGezuXW5h>|hoidfrgIAikh%3-TDYEg?p1P_yfNw|*DdeiW2SK{-K&;UW)h zmT|ot9Am$Qlvf(%DT7m8Tz;g&8}rc3@UpJ2b2V8BDg__$4SCOxNH`z+lH7gA1x^N4 zul+Unoqm;?%4;#?ahx&{9xsNX<#5cNi^}9`ov+YVuWyhYW7*wOzAxxY)WAKjy+$fgxsdTAt5D`YHn8h^RjBGk;rf>?_b9kGjU15kjkI(cXGz*NvB!;g5jJ{TP)!OrAPSU}-(MJ_Y}(xjIEnt=jD01n=Ki-5Q22!a zi{Z6%bglLi5SjafNg3oiQ6s*40y3Lhdc|x;Y4M7#rXdg^1SIM~)EwGUA*Xa$Z zd{seJ@a`fy3MJWNnvh%AyLq0ZIG_7w}?rwzliFJu5s`7vy?J#`7(v7>}isptw~5HOr-Y zdh;)vz-B-Vo_g!^7_uL5TJ0C6zeUaWd77LcpKi!v-ihc;+=hK)t3e6S2;IC6Xsq-EnkU?rHPACMH0oX3IOdckrBoM+ zyDbi)ueHD7Qsss$ceg2o{)P45%d)o}g~lserX;ngY5>#atOE^$?b*>>1-0B3Jx;qa zI`sZbV5MNla2g6^sdp_F`921j?x)K;O6Dsk7nI7pYpAQ2(x7S!tJD~*k6qpshwN%7 z5@t5l*mDpW&>!SVX4>u$qX|vZpO^>-`EgMW$YbcsaJF%_T84o{#r4WlL2hgfZ{dqk zs(zU+g9ZMG^;dJH$ySMuuScP8hB5u8-7TR)az9;;z}sccYs)|Nm?M2y$x)E^q5Gaz z#7=cT0SSjCvyiHq1h#L4EnP_mcZ@+BHwHF|Xv;tQ#-RYjq(hd3Gw#Z=v~Bc}$CAnq z8nG;xN<}*l<>+g0i(iwPNL5Ixbcl~iB{}PHHIy`8Q_Jz+- zX=6VDIsktid@8vALNPd-XHN%g(Z

)*UvLy709l5l)?5O(FkIAHm94zm+3xBR93t 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 I1~{Mp**sNK&j0`b literal 0 HcmV?d00001 diff --git a/entrevista_popcode/lib/MyHomePage.dart b/entrevista_popcode/lib/MyHomePage.dart deleted file mode 100644 index 2aef0cee..00000000 --- a/entrevista_popcode/lib/MyHomePage.dart +++ /dev/null @@ -1,71 +0,0 @@ -import 'package:entrevista_popcode/helpers/requisicaoAPI.dart'; -import 'package:entrevista_popcode/models/pessoa.dart'; -import 'package:flutter/cupertino.dart'; -import 'package:flutter/material.dart'; -import 'package:http/http.dart' as http; - -class MyHomePage extends StatefulWidget { - MyHomePage({Key key, this.title}) : super(key: key); - - // 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 - _MyHomePageState createState() => _MyHomePageState(); -} - -class _MyHomePageState extends State { - @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( - title: Text(widget.title), - ), - body: FutureBuilder>( - future: RequisicaoApi().getPessoas(http.Client(), 8), - builder: (context, snapshot) { - if (snapshot.hasError) print(snapshot.error); - - return snapshot.hasData - ? PessoasList(pessoas: snapshot.data) - : Center(child: CircularProgressIndicator()); - }, - ), - ); - } -} - -class PessoasList extends StatelessWidget { - final List pessoas; - - PessoasList({Key key, this.pessoas}) : super(key: key); - - @override - Widget build(BuildContext context) { - return ListView.builder( - itemCount: pessoas.length, - itemBuilder: (context, index) { - Pessoa p = pessoas[index]; - //return Text(p.name); - return ListTile( - title: Text(p.name), - subtitle: Text(p.birthYear), - ); - }, - ); - } -} diff --git a/entrevista_popcode/lib/helpers/database.dart b/entrevista_popcode/lib/helpers/database.dart index 1647dc77..01384ad2 100644 --- a/entrevista_popcode/lib/helpers/database.dart +++ b/entrevista_popcode/lib/helpers/database.dart @@ -1,5 +1,4 @@ -import 'package:entrevista_popcode/helpers/pessoahelper.dart'; -import 'package:entrevista_popcode/models/pessoa.dart'; +import 'package:entrevista_popcode/helpers/pessoa_helper.dart'; import 'package:path/path.dart'; import 'package:sqflite/sqflite.dart'; @@ -12,7 +11,7 @@ abstract class DataBaseHelper { Future savePeople(T people); Future getFirst(String nome); Future getAll(); - Future getNumber(); + Future getRowCount(); Future get database async { if (_dataBase != null) return _dataBase; @@ -27,10 +26,10 @@ abstract class DataBaseHelper { return await openDatabase( path, version: _databaseVersion, - onCreate: (Database db, int version) async { + onCreate: (Database db, int newVersion) async { await db.execute( - "CREATE TABLE IF NOT EXISTS ${PessoaHelper.tableName} ( ${PessoaHelper.idColumn} INTEGER PRIMARY KEY AUTOINCREMENT, " - "${PessoaHelper.heightColumn} TEXT,${PessoaHelper.masColumn} TEXT, " + "CREATE TABLE IF NOT EXISTS ${PessoaHelper.tableName}(${PessoaHelper.idColumn} INTEGER PRIMARY KEY AUTOINCREMENT, " + "${PessoaHelper.nameColumn} TEXT, ${PessoaHelper.heightColumn} TEXT,${PessoaHelper.masColumn} TEXT, " "${PessoaHelper.hairColorColumn} TEXT, ${PessoaHelper.skinColorColumn} TEXT, " "${PessoaHelper.eyeColorColumn} TEXT, ${PessoaHelper.birthYearColumn} TEXT, " "${PessoaHelper.genderColumn} TEXT, ${PessoaHelper.homeWorldColumn} TEXTE, " diff --git a/entrevista_popcode/lib/helpers/pessoahelper.dart b/entrevista_popcode/lib/helpers/pessoa_helper.dart similarity index 58% rename from entrevista_popcode/lib/helpers/pessoahelper.dart rename to entrevista_popcode/lib/helpers/pessoa_helper.dart index 7e6e687e..73dfe9ac 100644 --- a/entrevista_popcode/lib/helpers/pessoahelper.dart +++ b/entrevista_popcode/lib/helpers/pessoa_helper.dart @@ -1,9 +1,10 @@ import 'package:entrevista_popcode/helpers/database.dart'; +import 'package:entrevista_popcode/helpers/requisicao_API.dart'; import 'package:entrevista_popcode/models/pessoa.dart'; import 'package:sqflite/sqflite.dart'; class PessoaHelper extends DataBaseHelper { - static final String tableName = 'tbPersonage'; + static final String tableName = 'tbPersonagem'; static final String idColumn = 'id'; static final String nameColumn = 'name'; static final String heightColumn = 'height'; @@ -16,33 +17,37 @@ class PessoaHelper extends DataBaseHelper { static final String homeWorldColumn = 'homeWorld'; static final String specieColumn = 'specie'; - PessoaHelper._privateConstructor(); - static final PessoaHelper instance = PessoaHelper._privateConstructor(); + static final PessoaHelper _instance = PessoaHelper.getInstance(); + + factory PessoaHelper() => _instance; + PessoaHelper.getInstance(); + + //PessoaHelper._privateConstructor(); + //static final PessoaHelper _instance = PessoaHelper._privateConstructor(); @override Future savePeople(Pessoa people) async { Database db = await database; - Pessoa personagem = await getFirst(people.name); + // Pessoa personagem = await getFirst(people.name); String nomePlaneta = ""; String nomeEspecie = ""; - if (personagem == null) { - if (people.homeWorld.isNotEmpty || (people.species != null)) { - try { - if (people.homeWorld.isNotEmpty) - nomePlaneta = await Requisicao().getNomePlaneta(people.homeWorld); - if (people.species != null && people.species.length > 0) - nomeEspecie = - await Requisicao().getNomeEspecie(people.species.first); - } catch (e) { - throw new Exception("Não foi possível realizar a requisição!"); - } + // if (personagem == null) { + if (people.homeWorld.isNotEmpty || (people.species != null)) { + try { + if (people.homeWorld.isNotEmpty) + nomePlaneta = await RequisicaoApi().getPlaneta(people.homeWorld); + if (people.species != null && people.species.length > 0) + nomeEspecie = await RequisicaoApi().getEspecie(people.species.first); + } catch (e) { + throw new Exception("Não foi possível realizar a requisição!"); } + // } people.homeWorld = nomePlaneta; people.specie = nomeEspecie; - people.id = await db.insert(tableName, people.toMap()); + people.id = await db.insert(tableName, people.toJson()); } return people; } @@ -51,7 +56,7 @@ class PessoaHelper extends DataBaseHelper { Future getFirst(String nome) async { Database db = await database; List personagem = await db - .rawQuery("SELECT * FROM $tableName WHERE $nameColumn LIKE '$nome'"); + .rawQuery("SELECT * FROM $tableName WHERE $nameColumn LIKE $nome"); if (personagem != null && personagem.length > 0) { return Pessoa.fromJson(personagem.first); } else { @@ -60,18 +65,18 @@ class PessoaHelper extends DataBaseHelper { } @override - Future getAll() async { + Future> getAll() async { Database db = await database; List listMap = await db.rawQuery("SELECT * FROM $tableName"); - List listaPessoas = List(); - for (Map m in listMap) { - listaPessoas.add(Pessoa.fromJson(m)); - } + List listaPessoas = listMap.isNotEmpty + ? listMap.map((e) => Pessoa.fromJson(e)).toList() + : []; + return listaPessoas; } @override - Future getNumber() async { + Future getRowCount() async { Database db = await database; return Sqflite.firstIntValue( await db.rawQuery("SELECT COUNT(*) FROM $tableName")); diff --git a/entrevista_popcode/lib/helpers/requisicaoAPI.dart b/entrevista_popcode/lib/helpers/requisicao_API.dart similarity index 89% rename from entrevista_popcode/lib/helpers/requisicaoAPI.dart rename to entrevista_popcode/lib/helpers/requisicao_API.dart index 5f1b08dc..cbbb70ef 100644 --- a/entrevista_popcode/lib/helpers/requisicaoAPI.dart +++ b/entrevista_popcode/lib/helpers/requisicao_API.dart @@ -7,7 +7,8 @@ import 'package:http/http.dart' as http; class RequisicaoApi { Future> getPessoas(http.Client client, int page) async { - http.Response response = await client.get('http://swapi.dev/api/people/'); + http.Response response = + await client.get('http://swapi.dev/api/people/?page=$page&format=json'); if (response.statusCode == 200) { return compute(parsePessoa, response.body); diff --git a/entrevista_popcode/lib/main.dart b/entrevista_popcode/lib/main.dart index 4a823bb4..209283e3 100644 --- a/entrevista_popcode/lib/main.dart +++ b/entrevista_popcode/lib/main.dart @@ -1,5 +1,6 @@ +import 'package:entrevista_popcode/views/homepage.dart'; +//import 'package:entrevista_popcode/views/personagens.dart'; import 'package:flutter/material.dart'; -import 'MyHomePage.dart'; void main() { runApp(MyApp()); @@ -10,12 +11,18 @@ class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( - title: 'Flutter Demo', - theme: ThemeData( - primarySwatch: Colors.blue, - visualDensity: VisualDensity.adaptivePlatformDensity, - ), - home: MyHomePage(title: 'Star Wars'), + debugShowCheckedModeBanner: false, + routes: { + '/': (context) => HomePage( + title: 'Wiki Star Wars', + ), + }, + // title: 'Flutter Demo', + // theme: ThemeData( + // primarySwatch: Colors.blue, + // visualDensity: VisualDensity.adaptivePlatformDensity, + // ), + // home: MyHomePage(), ); } } diff --git a/entrevista_popcode/lib/models/pessoa.dart b/entrevista_popcode/lib/models/pessoa.dart index e95fd48f..994db7a0 100644 --- a/entrevista_popcode/lib/models/pessoa.dart +++ b/entrevista_popcode/lib/models/pessoa.dart @@ -38,7 +38,7 @@ class Pessoa { species: json['species'].cast(), ); - Map toMap() { + Map toJson() { return { 'name': this.name, 'height': this.name, diff --git a/entrevista_popcode/lib/views/homepage.dart b/entrevista_popcode/lib/views/homepage.dart new file mode 100644 index 00000000..0c22f7cf --- /dev/null +++ b/entrevista_popcode/lib/views/homepage.dart @@ -0,0 +1,163 @@ +import 'package:entrevista_popcode/helpers/pessoa_helper.dart'; +import 'package:entrevista_popcode/helpers/requisicao_API.dart'; +import 'package:entrevista_popcode/models/pessoa.dart'; +import 'package:entrevista_popcode/views/personagens.dart'; +import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; +import 'package:http/http.dart' as http; + +class HomePage extends StatefulWidget { + HomePage({Key key, this.title}) : super(key: key); + + final String title; + + @override + _HomePageState createState() => _HomePageState(); +} + +class _HomePageState extends State { + final TextEditingController _filter = new TextEditingController(); + List personagens = new List(); + List personagensFiltrados = new List(); + PessoaHelper pessoa = PessoaHelper(); + + String _searchText = ""; + + Icon _searchIcon = new Icon(Icons.search); + + Widget _appBarTitle = new Text('Wiki Star Wars'); + + @override + void initState() { + super.initState(); + + _getAllPersonagens(); + // _armazenarPersonagens(); + } + + void _armazenarPersonagens() { + _getAllPersonagens(); + setState(() { + this.personagensFiltrados = personagens; + }); + } + + void _getAllPersonagens() { + pessoa.getAll().then((lista) { + setState(() { + personagens = lista; + }); + }); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: Color.fromRGBO(58, 66, 86, 1.0), + appBar: _buildBar(context), + body: FutureBuilder>( + future: RequisicaoApi().getPessoas(http.Client(), 1), + builder: (context, snapshot) { + if (snapshot.hasError) print(snapshot.error); + + return snapshot.hasData + ? Personagem( + personagens: ((_filtrar() != null) + ? _filtrar() + : (personagens != null && personagens.length > 0) + ? personagens + : snapshot.data), + isSearching: (_searchText.isEmpty) ? false : true) + : Center(child: CircularProgressIndicator()); + }, + ), + ); + } + + Widget _buildBar(BuildContext context) { + return new AppBar( + elevation: 0.1, + backgroundColor: Color.fromRGBO(58, 66, 86, 1.0), + centerTitle: true, + title: _appBarTitle, + leading: new IconButton( + icon: _searchIcon, + onPressed: _searchPressed, + )); + } + + List _filtrar() { + if (_searchText.isNotEmpty) { + personagensFiltrados = new List(); + for (int i = 0; i < personagens.length; i++) { + if (personagens[i] + .name + .toLowerCase() + .contains(_searchText.toLowerCase())) { + personagensFiltrados.add(personagens[i]); + } + } + return personagensFiltrados; + } + return null; + } + + _HomePageState() { + _filter.addListener(() { + if (_filter.text.isEmpty) { + setState(() { + _searchText = ""; + //_resetRecords(); + }); + } else { + setState(() { + _searchText = _filter.text; + }); + } + }); + } + + void _searchPressed() { + setState(() { + if (this._searchIcon.icon == Icons.search) { + this._searchIcon = new Icon(Icons.close); + this._appBarTitle = new TextField( + controller: _filter, + style: new TextStyle(color: Colors.white), + decoration: new InputDecoration( + prefixIcon: new Icon(Icons.search, color: Colors.white), + fillColor: Colors.white, + hintText: 'Search by name', + hintStyle: TextStyle(color: Colors.white), + ), + ); + _armazenarPersonagens(); + } else { + _searchIcon = new Icon(Icons.search); + _appBarTitle = new Text('Wiki Star Wars'); + personagensFiltrados = personagens; + _filter.clear(); + } + }); + } +} + +//class PessoasList extends StatelessWidget { +// final List pessoas; + +// PessoasList({Key key, this.pessoas}) : super(key: key); + +// @override +// Widget build(BuildContext context) { +// return ListView.builder( +// itemCount: pessoas.length, +// itemBuilder: (context, index) { +// Pessoa p = pessoas[index]; +// return ListTile( +// title: Text(p.name), +// subtitle: Text(p.birthYear), +// ); +// }, +// ); +// } +//} diff --git a/entrevista_popcode/lib/views/personagens.dart b/entrevista_popcode/lib/views/personagens.dart new file mode 100644 index 00000000..930fc748 --- /dev/null +++ b/entrevista_popcode/lib/views/personagens.dart @@ -0,0 +1,151 @@ +import 'package:entrevista_popcode/helpers/pessoa_helper.dart'; +import 'package:entrevista_popcode/helpers/requisicao_API.dart'; +import 'package:entrevista_popcode/models/pessoa.dart'; +import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; +import 'package:pull_to_refresh/pull_to_refresh.dart'; +import 'package:http/http.dart' as http; +import 'package:flutter/foundation.dart'; + +// ignore: must_be_immutable +class Personagem extends StatefulWidget { + List personagens; + bool isSearching; + Personagem({Key key, this.personagens, this.isSearching}) : super(key: key); + + @override + _Personagem createState() => _Personagem(); +} + +class _Personagem extends State { + RefreshController _refreshController = + RefreshController(initialRefresh: false); + PessoaHelper helperP = PessoaHelper(); + int page = 2; + + void _onRefresh() async { + await Future.delayed(Duration(milliseconds: 1000)); + _refreshController.refreshCompleted(); + } + + void _onLoading() async { + await Future.delayed(Duration(milliseconds: 1000)); + + if (this.page < 9) { + List listPessoa = + await RequisicaoApi().getPessoas(http.Client(), this.page); + widget.personagens.addAll(listPessoa); + listPessoa.forEach((personagem) => helperP.savePeople(personagem)); + this.page++; + } + if (mounted) setState(() {}); + _refreshController.loadComplete(); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: Color.fromRGBO(58, 66, 86, 1.0), + body: SmartRefresher( + enablePullDown: true, + enablePullUp: true, + header: WaterDropHeader(), + footer: CustomFooter( + builder: (BuildContext context, LoadStatus mode) { + Widget body; + if (mode == LoadStatus.idle) { + body = Text("pull up load"); + } else if (mode == LoadStatus.loading) { + body = CupertinoActivityIndicator(); + } else if (mode == LoadStatus.failed) { + body = Text("Falha ao carregar. Tente novamente!"); + } else if (mode == LoadStatus.canLoading) { + body = Text("Solte para carregar mais"); + } else { + body = Text("Não há mais dados"); + } + return Container( + height: 55.0, + child: Center(child: body), + ); + }, + ), + controller: _refreshController, + onRefresh: _onRefresh, + onLoading: _onLoading, + child: _buildListItem(), + // child: ListView.builder( + // itemCount: widget.personagens.length, + // itemBuilder: (context, index) { + // Pessoa p = widget.personagens[index]; + // PessoaHelper().savePeople(p); + // return Card( + // child: Center( + // child: ListTile( + // title: Text(p.name), + // subtitle: Text(p.birthYear), + // ))); + // }, + ), + ); + } + + Widget _buildListItem() { + return ListView.builder( + itemCount: widget.personagens.length, + itemBuilder: (context, index) { + Pessoa p = widget.personagens[index]; + PessoaHelper().savePeople(p); + return Card( + key: ValueKey(p.name), + elevation: 8.0, + margin: new EdgeInsets.symmetric(horizontal: 10.0, vertical: 6.0), + child: Container( + decoration: BoxDecoration(color: Color.fromRGBO(64, 75, 96, .9)), + child: ListTile( + contentPadding: + EdgeInsets.symmetric(horizontal: 20.0, vertical: 10.0), + leading: Container( + padding: EdgeInsets.only(right: 12.0), + decoration: new BoxDecoration( + border: new Border( + right: new BorderSide( + width: 1.0, color: Colors.white24))), + child: Hero( + tag: "avatar_" + p.name, + child: CircleAvatar( + radius: 32, + backgroundImage: + NetworkImage('assets/images/dia-star-wars.jpg'), + ))), + title: Text( + p.name, + style: TextStyle( + color: Colors.white, fontWeight: FontWeight.bold), + ), + subtitle: Row( + children: [ + new Flexible( + child: new Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + RichText( + text: TextSpan( + text: p.birthYear, + style: TextStyle(color: Colors.white), + ), + maxLines: 3, + softWrap: true, + ) + ])) + ], + ), + trailing: Icon(Icons.keyboard_arrow_right, + color: Colors.white, size: 30.0), + onTap: () {}, + ), + ), + ); + }); + } +} diff --git a/entrevista_popcode/pubspec.lock b/entrevista_popcode/pubspec.lock index 073edcdc..44356031 100644 --- a/entrevista_popcode/pubspec.lock +++ b/entrevista_popcode/pubspec.lock @@ -137,6 +137,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "2.4.0" + pull_to_refresh: + dependency: "direct main" + description: + name: pull_to_refresh + url: "https://pub.dartlang.org" + source: hosted + version: "1.6.0" quiver: dependency: transitive description: diff --git a/entrevista_popcode/pubspec.yaml b/entrevista_popcode/pubspec.yaml index deca0bb7..a96bd74e 100644 --- a/entrevista_popcode/pubspec.yaml +++ b/entrevista_popcode/pubspec.yaml @@ -27,6 +27,7 @@ dependencies: path: 1.6.4 dio: 3.0.8 http: ^0.12.0+3 + pull_to_refresh: ^1.6.0 # The following adds the Cupertino Icons font to your application. @@ -49,8 +50,9 @@ flutter: uses-material-design: true # To add assets to your application, add an assets section, like this: - # assets: - # - images/a_dot_burr.jpeg + assets: + - assets/images/starWars.jpg + - assets/images/dia-star-wars.jpg # - images/a_dot_ham.jpeg # An image asset can refer to one or more resolution-specific "variants", see From fddc8dff7e9d9bee6743d0942bf6f522edfd5e80 Mon Sep 17 00:00:00 2001 From: Cleyslane Date: Tue, 21 Jul 2020 17:51:32 -0300 Subject: [PATCH 4/7] Ajustes na View --- .../assets/{images => }/dia-star-wars.jpg | Bin entrevista_popcode/assets/images/starWars.jpg | Bin 53206 -> 0 bytes .../lib/helpers/pessoa_helper.dart | 4 +- .../lib/helpers/requisicao_API.dart | 9 +- entrevista_popcode/lib/main.dart | 4 + entrevista_popcode/lib/models/pessoa.dart | 24 ++-- entrevista_popcode/lib/views/homepage.dart | 112 ++++++++---------- entrevista_popcode/lib/views/personagens.dart | 91 +++++++------- entrevista_popcode/pubspec.yaml | 4 +- 9 files changed, 122 insertions(+), 126 deletions(-) rename entrevista_popcode/assets/{images => }/dia-star-wars.jpg (100%) delete mode 100644 entrevista_popcode/assets/images/starWars.jpg diff --git a/entrevista_popcode/assets/images/dia-star-wars.jpg b/entrevista_popcode/assets/dia-star-wars.jpg similarity index 100% rename from entrevista_popcode/assets/images/dia-star-wars.jpg rename to entrevista_popcode/assets/dia-star-wars.jpg diff --git a/entrevista_popcode/assets/images/starWars.jpg b/entrevista_popcode/assets/images/starWars.jpg deleted file mode 100644 index b0d7d2e6396ef79cdf3f4a0a568157ff0e4ac328..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 53206 zcmb4qRZtwv6X)U*B)Cg(cX!v|?(XjH?kohCh2XA>Lm;?2B)Ah?7nl3~4_9@s*Yns@ z{p*_QYMbuQKc72*uL?5qG5{zj008R01NdAANCMzt;o#w5;o;%n5fI=Jk-s7%BOxJU zqoJdG#lyzO$HT_OB_yFHBP60E#>FLPBB!LGrDvcgAY*1@remX~qo@0y5GVu$1Y|^H zEM#OXIzn7Ry8mzb><3^VLK#CV!$460pfR9eFrYq%0K@z?1r37; z_>U{~6#xwd0|N~U3j+@e3kL^)`HusD#el>72G5Qqu4aaSP2t8N5r#vl4lHgmcORHX zq~ess)d)}9rRMs1eS>Gg{ht&fD8T<9{vQljxc}t90}%dW@?iX@z<(Gp|3UswlmFfg z8UTXYr->l>e?mW58elL;-i+QClI6 zRmV5xMYbfzuWIzAI$7@3Mf+jrf^$0Pfv5g%pMVv;Dhlv)pd5FYo;gvskWxl$-JRi` z?zF!y53P#8sQ)5&{%S?Lazqm%z>h&TjqD?0x^TcOREx`TF2CbbBf9$u7?=*J zDZx{ya&iv2R08Ug)Qn~W`X=G`d?V_>ieIY8eTx}A|7fu#ehosrGn^lPq2A9VTCb99 zVL6t=Cquu|{)qSlpyTFhx~q6q_Aadlr&hHiTxq2k**lLf9^& z+@X%I_i77)DRxOuVq;9})(fSaDO0My6IVe8t$KnZVvrxHFk^O}*s+HG1 z{^)i6Q#^jgvm{`x=_q)Vf>o%^a-FZXXfzw5o;;FhXx;b=847K!g(Q7F^QUk!pA*Xi4Bg# z`|^Z{=y#_f#k|A5&EbkMu+f(>ss{M8vA(O2N}$XkP8u@-UZ;CcRQJ?&cSk5tZc8o2 z1in$BAF76@4_pc^bu1<5+z-qAA?FKQ?+vU;*BixIqlS$S&EceRRDMXsGnZi#O7VA@ zcY=2YBaK$w-6haBga#k6)7dlSWd2cX0Lwe709 zDHAg1852qmnjT3H`UN6~Y?zM?JTsCCOKK+8Qa7CdTW9NTx8t{!IyoI3au;(k?id>U2l*P# zbv8~5n_O*|;vL<;Xa2k&g$!O8c31Unj<&wYWXCfg3+5E4-*7bAImcQ!A}GVNKL_^rx7IhKzRH z*#f(7L~1GS4ody(1C>LwOULkDaq;;!DGF))I0&NZK=l%fw&F;dm>H>)+$%4Xw%J|7 zVJeOtHa$GMfdgV4fJ5*8h9X1nQVL}TzK#1RsU%JF5F?F;@w2nESCj?$)sJF8D$gN^Tsvty)S|zWvp$_MGMq*_1;~3tnj``7lqi z*H3_%2GY?_TbPfg2OMF_#8F0hdRbLumW|8f)rr{lyX*!rw+fRLcj6VX^gj2S9<6Lb}H4Eag)51Ka#TU=FZf^xW$H#9=^fTHN+GLk;_Yk(SKTvHs z&U)3TRAqZDOfd4uBGDh~9-Wja3>+Zb_`+rB*X>1)-+ZmR+ixsIO86R-Y4aX&v&`y0k7OC5$)8tl4)wVV9D>a^HB>tYnVNU8{ws&EyG~MwEZCz=H>!C0_XOpnxL5|Rh&d>AuFjqy7C|rdyQl8ZSr+yuX(TJ(0-h{wg6Ai! z>Jllf*@ct)=KbpzvXxwc;0xef6(s^Wp<&X{d?f#kcd9OENa&ZE23MQ{A3`rnF9)r- zJOZRJ^ohGVyDM5zogL>~u&HpS=M!M@&T!D%o_ssw;1~U`Tq038cGxeX41&aUw$3b$ zB!UvwH+lTdX?p1ibNONDb zD*~+82HG6IU1f|SJgbkC*xi{k*HJ3%HX(J}?qKPNjyO?1uH+`_O;SqJ2ok$;d1D~-ju7#FqFmk}vq!7900G4Pa$=3U1(r<|}Md3$~=^TR9T{C*N*n*h1LXgrd#npT*W;qgzdv1!}pmug6K{BJ9icgS;#YwFTSuwx6 zZxn7V-Bk?iu8m+3{iFgG%FklgE&Jzwp$h-YGfGrWMBIiBpJJEZQ(yK4UJLEuMfFr( zFwt{4QmmQ{_RI3uajyN?NjaHAvy?N1#|Jp43u9^9*`)A9kNe|vkV4a?xu2!&kw#A# z?Q-Hpne)#!(Pnj{?p^bFe##7WUy4`_Sg<(pkaNjmNqesC{`#-R*^0_y6P7+qPI{gG zagwS@wbpprBAw6qAdc5P zg}c5S;m5x^(9NglU{*}=N{AU=qQco^yQi_uj(jV z3zo_m#fG2Q9_r8}K3HtU7acZm`!WG68ZGlo7b$y^7mM8&}=5)7vQ+grV3jbpB`W?*S;8siW# zCgN2DPp9X*nLLv1bs=1L=~Iu~Ikp$RNp8iQ>^5zW$<#s_i*DL~N7FrkCb!q7+ev0$ z;DEQ(2dUHYfN$GCl$8ZjuO>5$o}7u_=jzPWwd3s71|iSE88cQaYBScmZJKE9vwh?t zBE#vCp*ji~JhK!)>B?X~TP{e~eiI}0oi;4Mt4I=+3{!cR7xmrtP!Jd?vEm~&5Bb~6 zy3f6v*L?ROnr})QUm-$oZ^B)Z;OX*n!vbemxSIdpFYJZj&1jmz_4$ z#MS*%t!vTjM!;olT1`_)pzsaUo^p)C{r3j~e<{&xYx0S)T$=B4m~DP)J=7a5@m>z( zEU9{90j-S3C{9R6y1vES9AUn7YZvWaxcPL`e6g%c9Oc`QZfaVSKR_kWLsf+Oj8vrA z^|!P<8={b@nsH{noiJ-B(#BYLcGQf2 zgFQ`W!_Q(v$5v|-I_kh}+Nol_Y~{~mb6>#AVh~7Kc?F&q?0N>F>fooGTfuE0h+gXc zX%-jRl$7mucxHGImVk*M*b?8`#an{*t44ohVr*htRfueHC0`(Gr|e#KxJ~thE8kH# zimoGep;tuK?-*^QU`tROnTh>W98qe}?EpDIX{AVuw&%(K&;r$$juLsW!5* z41-qI^1$0Nn(x#~ArY3<4vY!bp>FDKqfiaN(z-eN$hxm~2Ow-O4bE?eeX?jAhrA0r zjK+DvC1cB-mNr7ijaIZ;=?6k34Z)0IOZ%Je;h=hvr_7oj{(7pPx0@xloX{bao?*mo z^i8~9!@b;t^?~aH_U{nuuoniXCB$m7NY)3A2x{VB#0dW2ZQ`p$1+rS9RHOrJNh(Bs zm$H+;`c$r=zkdQ6tJFJ8ixMqn5?bzZrvG&;Hk@%IQ2DLszRN;)>8|DzB-ffF`g|MA1Nb-tS56G& z>y{gZtJ%4ZrLtwv#bYxUk*cSc{dD*PtwEJdL9rSSH4ca8rjRWg6y4X~6PH^*Hm!eFP5(lib? z)~Q*bc}YsjF*=v%xBPx1x?5IvF_tz#6>E|2U8?{qSU#xAOqyjO^vi+KU~SsX$u>=v zV8Hq)<-S#at0BbYHd8EXWU~anoWGCklu+`rGub4~`>>cO=C%f*C_1a0BQG#Vbi|MB zLiK?jKXvX~yY{O?7b`+Gys4}UMzBudT`yz4>p=|a0z4tmS zn4oUib_ENIoL?3WJxRBuo^0Ziv57Zu+(!+qm>LzY4Vgim`_(k;rl``N%C`>CoXN)U z6n#jbDWE%tlxb9S)L;B!*SX*+xU6tbMi3qRCs4ToaY?;^TVqicOVV+-!<_8_c`aer~D z+f*b_5-Da-Di=Dtkz_8LVCticLfx~N@3Df1wi*@Ba)UMDls}Il%{}iSub8giU+Nn?KvZ zZ%kfI2UTYY3k+i<=4_@iS`u4ZIKv`%I8RWfvaG_m(oX4+=0|g{kTT}5V^3+=5xeto z>EHZ%@pK;(;+7g&;LM*_PCh}E)Jomnz-eC8QVd+$&%7hT>U^Egi0xK0*SQR)7)}sJ zJpf{xQ<=vjc95v^Z_SFhu@bk^ddSvYr(jdydWE6 zvPv9JMsK~ck%&H-!v5mZAoj;|-*%mqE8AQ<^&qfr1aA-~q7_t=zv6UXn7bPP7b2aS zqDs!CpAV2Gr_IOYie&NT2fMZP(c+6G7gwM4q#v{&NrFi9*C z;Hw}HgE02Cwe;L@U%LjQTSap;Ay)|HT@tFoKCbYN21k<%4|vs z9tWHy9R8`=mwHMMOhYlGWMdt^|C$dBx8xiM1qS+U8Pq9Ba1#@m&9rm<=w&zgK}p(c zKZq0=Qe^`65~Mcx;<%l$(gDqtuL9`c2$oanD$-(wCjg3 zyNTtfk^!*hUgo`^7|)IJTA-k&h6CF2&`wujMSum{m9lQ&M~w^A`E;g8sMZ`XQd(;t z20FEm_|H|Q!zeN9TSwZJ3 zaw#}&Eb;jIC17!NNJ(z%jH4Q~+0VlwblSLb+;5iquS*8BP=vK{$6sGj_2#1LLmbxs zPT`_vxSK}{(wF^}$K)D(KU}|I*=NUdE7=)~EvnVtUyveG0l>d=*9s<)C*1d(X&ArX ztHE!}iB>`Q1s1Z`(LG7f#kOpACb%svPcgr|=X;&YLc=1%D9k?g4z~CuZ!~J>hT_eW z;NdxnQG#-JG`iMHJ7**qT-{FC^HVkzW*2`10jvqSzF7c?271Y_0!XUmZf7(6Cw{Lm zdi_oW>0=pL3;*O@NUh2lRXFJtAd2uJDYauiNGkVrxgZAW@|iSl&9zC5GJ`MT+d(ac=Aau4<1dRzxzS z$We_i;qkd3Jrg>=ptwmfAc)UeMr`)mLHfrJ1ewLjpPNcU;@uc&+b;IZ)suv?u`*P5 zqh=4qm!`_F0gKg^k`{g!JimJX(yV)1eSF&nc}QC3>fv884Q{OD3}TK_t(?&Y)uaUu zTYq!1;Pv1nNQ{H+!4yf~hA+WBcoz#GeCpi%=a6@hzgG{7Gh=Fm(E48~Z=`$cP#Cqg z{|4@S({uvm&sZpq6olwqJM%Xr*nn*v7`290`SV~5qU*g<8EC>{^U{X{D{@~g07&Xk z1Oy~!B-PZ-0n=l(6--bU`nXlNYB|)Z=(KGNh*>6X{n6*5uLyvyi3u$^Vv9*`yb_HN z!}~XNz|gkz7nqsd9%zvzx$h44(j|y#j$;gV=hf{pbY) z5FYstAr_%&*CjC5ssOH&Nku(R-8-<5V9v&F9hmO{V)9?jgQ&#)!n{A@Gt5k0JN_5F zrz?`5d|LXP;-3i!P|1das`~_F33p_wsM}-c+q1fOQ@3Zt67iECZ~fqA<{;7|b+9vZ zrp{&`duLQm61XxMdo+?0`&y)x4Jcc`_`ceOJov-UeK0xjBxum_ zd=KHe=bc^a6QIUs#|sQAgfo1B)UuaA?^E*kS9{bb^vqBQ&lWh8^Yddd`#xCHP5jCF z1*;R_H<8RXIJYD}j^g7}M-gn7%t6c5=HzUF`Xl}ckU?trP%cbAJvit@<4d*U?-#Go zoaLBbh{|hwHcS_w@3d4IC^FnUc6@i~?bnzwP zq`l2Q(y+JZw-!k=d$=f&+fdw#KZm@KdXoSqBnS36*R%Bp5(#Ho--gX6;DV-wZXoiE zxz4FJ1)&Gxo#TV^9*O5lJj`XbDgx1Yvs{SuSeObhIGUP7?@O89Ssr{nequ`Ft*n-DtjvB-@>_$cnH)bVDU;PDSxlP{q{kh3t`Y zdKC%xA!!EFYE8x!5vDK5zWEf9XQFw>TzWHXtxoWs4?w>Gj|elRPOD~s+Y&b}sw{&J zyf5V{sEfPLQnRwAWwKY{7FajMPZD#{4}Zf99QI6Bt*{krn&vp7hy4ak(%K|1(UAnA zg%PpNY0XP2>6e$ItDs6A718`vGJ}(;2SUrQysc7k{eIK&Ey1`1KaMP7x5zx)PiD$0l)S@3%h0sxc@rCb{M1nh@ z)3-5Ne6*+3ADv;VxH}fDZC7smpzyZ`c(JaP8PyqFhG~x&dt$w<8rt|mYIYi!8D=jm zUn4v*OSwL=Dz^^ccTn&7D%2wWl2=)=d@Kp@PFiE+`w|(!nE4 z8cLO!k>JhT3GDSalcgu6m7KD1cB6Uc;2rmce}Cd zy*QpXpd|9E^Q{GqK9mY;IMpsPIgh*SR^7zX$c*2TdTw7o){q_8EI_#Bv*{c~~zPZI~rvp4oD zTuZI5;zD&+Y&T0URp(&6GhB58Lnk2g)uGOub}khWtksg2!Mgj0F6IhAmpEY2C@PjE zu>=rmYgG1Yg@awWi@WWg#eO^XR_XfGp+I!Q7a-D!_JG)4j+4cUL^4wG!&fKh+%Dt6 zW3Vsfh+1&@Y*8^p`&@l==%8_}W~JXhB@w?E1tY`0cJ>?U1OAHAtQ zTB8~a(W~>kavE!e(e3L6qL1wyAL?&hGiE{eUG07UD(Yqw*@zb(2O6SYOmt6H1sc?h z$Ki57hfd~6p&aswY4Z2?)uS3953JnoU%Oo=+|J3TBuLjROqc2}SVvGhK*PS~=@lQ4 z+`Lv>6C-Q90R2gw*L|q&uzk1Mc6UPt-IiX#%0ttL58X@b9c}Kt&WLk7o=@gWq(^NM zbYzkwmnT|(Ng~HpKuHzdvK?U9m~)c=F0T1yZ4S>iaBw7(VSzCTyZyFeS`FTOU9s8Hq>&p27a6( ztVdu?w(+F7qDh+)7Y1kprmX^wCvuc6Nxxn2yd}7Ou`stGI2Ku6!IL*}rIx#j5IZO0 zj1sEiqev8YbpIn5e9v7CmD0-F8w((S{+@G-W^1UuryeY3&&3pQ7?c#p1`#aqn)@4%BLArT1zKOBqBTTv6<=k$Kl(}GfDCnX* zRdLC|xC+AHx-2|vh`Cx`xnjOCaKW692$_c{l_VZV$Yvxiyw9qf+-t#fS2DL^_-j3k-T`8gxYMcQdC1jGofA0D0Gq~sc3DkNdBC6~m$Z{gME=ZQI-}R;;q%luQZ%nJKajZh zadexZyv((7CrGVp_OZU>IxY{wooj*WlN-#WrS%ZCSNOM@>~tg_8D(LuJ86kK0#E07(JkglZ#apy4AiSw}`@kr1zG zNSPQWV0$geVeY(Oxnq#f*n9AG9uknn?%nv}YyqF=9)7{Ztf-?-l*UgScXO5anXIg0rf)H{7K2hmI)C+(D;uIDH5vF@m`ItF zdq1pDDAhmn6X1V%gH_4GJ#ALh;)mRMO_8L74BT%b%UVf*WNZY{FKBNHmZ=ad<@5xc z2u;PjrhGezuXW5h>|hoidfrgIAikh%3-TDYEg?p1P_yfNw|*DdeiW2SK{-K&;UW)h zmT|ot9Am$Qlvf(%DT7m8Tz;g&8}rc3@UpJ2b2V8BDg__$4SCOxNH`z+lH7gA1x^N4 zul+Unoqm;?%4;#?ahx&{9xsNX<#5cNi^}9`ov+YVuWyhYW7*wOzAxxY)WAKjy+$fgxsdTAt5D`YHn8h^RjBGk;rf>?_b9kGjU15kjkI(cXGz*NvB!;g5jJ{TP)!OrAPSU}-(MJ_Y}(xjIEnt=jD01n=Ki-5Q22!a zi{Z6%bglLi5SjafNg3oiQ6s*40y3Lhdc|x;Y4M7#rXdg^1SIM~)EwGUA*Xa$Z zd{seJ@a`fy3MJWNnvh%AyLq0ZIG_7w}?rwzliFJu5s`7vy?J#`7(v7>}isptw~5HOr-Y zdh;)vz-B-Vo_g!^7_uL5TJ0C6zeUaWd77LcpKi!v-ihc;+=hK)t3e6S2;IC6Xsq-EnkU?rHPACMH0oX3IOdckrBoM+ zyDbi)ueHD7Qsss$ceg2o{)P45%d)o}g~lserX;ngY5>#atOE^$?b*>>1-0B3Jx;qa zI`sZbV5MNla2g6^sdp_F`921j?x)K;O6Dsk7nI7pYpAQ2(x7S!tJD~*k6qpshwN%7 z5@t5l*mDpW&>!SVX4>u$qX|vZpO^>-`EgMW$YbcsaJF%_T84o{#r4WlL2hgfZ{dqk zs(zU+g9ZMG^;dJH$ySMuuScP8hB5u8-7TR)az9;;z}sccYs)|Nm?M2y$x)E^q5Gaz z#7=cT0SSjCvyiHq1h#L4EnP_mcZ@+BHwHF|Xv;tQ#-RYjq(hd3Gw#Z=v~Bc}$CAnq z8nG;xN<}*l<>+g0i(iwPNL5Ixbcl~iB{}PHHIy`8Q_Jz+- zX=6VDIsktid@8vALNPd-XHN%g(Z

)*UvLy709l5l)?5O(FkIAHm94zm+3xBR93t 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 I1~{Mp**sNK&j0`b diff --git a/entrevista_popcode/lib/helpers/pessoa_helper.dart b/entrevista_popcode/lib/helpers/pessoa_helper.dart index 73dfe9ac..5763bda0 100644 --- a/entrevista_popcode/lib/helpers/pessoa_helper.dart +++ b/entrevista_popcode/lib/helpers/pessoa_helper.dart @@ -41,8 +41,8 @@ class PessoaHelper extends DataBaseHelper { nomeEspecie = await RequisicaoApi().getEspecie(people.species.first); } catch (e) { throw new Exception("Não foi possível realizar a requisição!"); + // } } - // } people.homeWorld = nomePlaneta; people.specie = nomeEspecie; @@ -56,7 +56,7 @@ class PessoaHelper extends DataBaseHelper { Future getFirst(String nome) async { Database db = await database; List personagem = await db - .rawQuery("SELECT * FROM $tableName WHERE $nameColumn LIKE $nome"); + .rawQuery("SELECT * FROM $tableName WHERE $nameColumn LIKE '$nome'"); if (personagem != null && personagem.length > 0) { return Pessoa.fromJson(personagem.first); } else { diff --git a/entrevista_popcode/lib/helpers/requisicao_API.dart b/entrevista_popcode/lib/helpers/requisicao_API.dart index cbbb70ef..d009c626 100644 --- a/entrevista_popcode/lib/helpers/requisicao_API.dart +++ b/entrevista_popcode/lib/helpers/requisicao_API.dart @@ -29,7 +29,10 @@ class RequisicaoApi { } List parsePessoa(String responseBody) { - final parsed = jsonDecode(responseBody); - var results = parsed['results']; - return results.map((json) => Pessoa.fromJson(json)).toList(); + if (responseBody != "") { + final parsed = jsonDecode(responseBody); + var results = parsed['results']; + return results.map((json) => Pessoa.fromJson(json)).toList(); + } + return null; } diff --git a/entrevista_popcode/lib/main.dart b/entrevista_popcode/lib/main.dart index 209283e3..1618a589 100644 --- a/entrevista_popcode/lib/main.dart +++ b/entrevista_popcode/lib/main.dart @@ -12,6 +12,10 @@ class MyApp extends StatelessWidget { Widget build(BuildContext context) { return MaterialApp( debugShowCheckedModeBanner: false, + // title: appTitle, + theme: new ThemeData( + primaryColor: Color.fromRGBO(58, 66, 86, 1.0), + ), routes: { '/': (context) => HomePage( title: 'Wiki Star Wars', diff --git a/entrevista_popcode/lib/models/pessoa.dart b/entrevista_popcode/lib/models/pessoa.dart index 994db7a0..4b646ea2 100644 --- a/entrevista_popcode/lib/models/pessoa.dart +++ b/entrevista_popcode/lib/models/pessoa.dart @@ -25,18 +25,18 @@ class Pessoa { this.specie, this.species}); - factory Pessoa.fromJson(Map json) => Pessoa( - name: json['name'], - height: json['height'], - mass: json['mass'], - hairColor: json['hair_color'], - skinColor: json['skin_color'], - eyeColor: json['eye_color'], - birthYear: json['birth_year'], - gender: json['gender'], - homeWorld: json['homeworld'], - species: json['species'].cast(), - ); + Pessoa.fromJson(Map json) { + name = json['name']; + height = json['height']; + mass = json['mass']; + hairColor = json['hair_color']; + skinColor = json['skin_color']; + eyeColor = json['eye_color']; + birthYear = json['birth_year']; + gender = json['gender']; + homeWorld = json['homeworld']; + species = json['species'].cast(); + } Map toJson() { return { diff --git a/entrevista_popcode/lib/views/homepage.dart b/entrevista_popcode/lib/views/homepage.dart index 0c22f7cf..5defc0fe 100644 --- a/entrevista_popcode/lib/views/homepage.dart +++ b/entrevista_popcode/lib/views/homepage.dart @@ -17,10 +17,11 @@ class HomePage extends StatefulWidget { class _HomePageState extends State { final TextEditingController _filter = new TextEditingController(); - List personagens = new List(); - List personagensFiltrados = new List(); PessoaHelper pessoa = PessoaHelper(); + List _personagens = new List(); + List _personagensFiltrados = new List(); + String _searchText = ""; Icon _searchIcon = new Icon(Icons.search); @@ -32,24 +33,53 @@ class _HomePageState extends State { super.initState(); _getAllPersonagens(); - // _armazenarPersonagens(); - } - - void _armazenarPersonagens() { - _getAllPersonagens(); - setState(() { - this.personagensFiltrados = personagens; - }); } void _getAllPersonagens() { pessoa.getAll().then((lista) { setState(() { - personagens = lista; + _personagens = lista; }); }); } + _HomePageState() { + _filter.addListener(() { + if (_filter.text.isEmpty) { + setState(() { + _searchText = ""; + //_resetRecords(); + }); + } else { + setState(() { + _searchText = _filter.text; + }); + } + }); + } + + void _searchPressed() { + setState(() { + if (this._searchIcon.icon == Icons.search) { + this._searchIcon = new Icon(Icons.close); + this._appBarTitle = new TextField( + controller: _filter, + style: new TextStyle(color: Colors.white), + decoration: new InputDecoration( + prefixIcon: new Icon(Icons.search, color: Colors.white), + fillColor: Colors.white, + hintText: 'Search by name', + hintStyle: TextStyle(color: Colors.white), + ), + ); + } else { + this._searchIcon = new Icon(Icons.search); + this._appBarTitle = new Text('Wiki Star Wars'); + _filter.clear(); + } + }); + } + @override Widget build(BuildContext context) { return Scaffold( @@ -59,15 +89,14 @@ class _HomePageState extends State { future: RequisicaoApi().getPessoas(http.Client(), 1), builder: (context, snapshot) { if (snapshot.hasError) print(snapshot.error); - - return snapshot.hasData + return (snapshot.hasData || _personagens.length > 0) ? Personagem( - personagens: ((_filtrar() != null) + personagens: (_filtrar() != null) ? _filtrar() - : (personagens != null && personagens.length > 0) - ? personagens + : ((_personagens != null && _personagens.length > 0) + ? _personagens : snapshot.data), - isSearching: (_searchText.isEmpty) ? false : true) + isSearching: (_searchText.isEmpty != null) ? false : true) : Center(child: CircularProgressIndicator()); }, ), @@ -88,58 +117,19 @@ class _HomePageState extends State { List _filtrar() { if (_searchText.isNotEmpty) { - personagensFiltrados = new List(); - for (int i = 0; i < personagens.length; i++) { - if (personagens[i] + _personagensFiltrados = new List(); + for (int i = 0; i < _personagens.length; i++) { + if (_personagens[i] .name .toLowerCase() .contains(_searchText.toLowerCase())) { - personagensFiltrados.add(personagens[i]); + _personagensFiltrados.add(_personagens[i]); } } - return personagensFiltrados; + return _personagensFiltrados; } return null; } - - _HomePageState() { - _filter.addListener(() { - if (_filter.text.isEmpty) { - setState(() { - _searchText = ""; - //_resetRecords(); - }); - } else { - setState(() { - _searchText = _filter.text; - }); - } - }); - } - - void _searchPressed() { - setState(() { - if (this._searchIcon.icon == Icons.search) { - this._searchIcon = new Icon(Icons.close); - this._appBarTitle = new TextField( - controller: _filter, - style: new TextStyle(color: Colors.white), - decoration: new InputDecoration( - prefixIcon: new Icon(Icons.search, color: Colors.white), - fillColor: Colors.white, - hintText: 'Search by name', - hintStyle: TextStyle(color: Colors.white), - ), - ); - _armazenarPersonagens(); - } else { - _searchIcon = new Icon(Icons.search); - _appBarTitle = new Text('Wiki Star Wars'); - personagensFiltrados = personagens; - _filter.clear(); - } - }); - } } //class PessoasList extends StatelessWidget { diff --git a/entrevista_popcode/lib/views/personagens.dart b/entrevista_popcode/lib/views/personagens.dart index 930fc748..fbd88bdf 100644 --- a/entrevista_popcode/lib/views/personagens.dart +++ b/entrevista_popcode/lib/views/personagens.dart @@ -31,7 +31,7 @@ class _Personagem extends State { void _onLoading() async { await Future.delayed(Duration(milliseconds: 1000)); - if (this.page < 9) { + if (this.page < 9 && widget.isSearching) { List listPessoa = await RequisicaoApi().getPessoas(http.Client(), this.page); widget.personagens.addAll(listPessoa); @@ -45,49 +45,49 @@ class _Personagem extends State { @override Widget build(BuildContext context) { return Scaffold( - backgroundColor: Color.fromRGBO(58, 66, 86, 1.0), - body: SmartRefresher( - enablePullDown: true, - enablePullUp: true, - header: WaterDropHeader(), - footer: CustomFooter( - builder: (BuildContext context, LoadStatus mode) { - Widget body; - if (mode == LoadStatus.idle) { - body = Text("pull up load"); - } else if (mode == LoadStatus.loading) { - body = CupertinoActivityIndicator(); - } else if (mode == LoadStatus.failed) { - body = Text("Falha ao carregar. Tente novamente!"); - } else if (mode == LoadStatus.canLoading) { - body = Text("Solte para carregar mais"); - } else { - body = Text("Não há mais dados"); - } - return Container( - height: 55.0, - child: Center(child: body), - ); - }, - ), - controller: _refreshController, - onRefresh: _onRefresh, - onLoading: _onLoading, - child: _buildListItem(), - // child: ListView.builder( - // itemCount: widget.personagens.length, - // itemBuilder: (context, index) { - // Pessoa p = widget.personagens[index]; - // PessoaHelper().savePeople(p); - // return Card( - // child: Center( - // child: ListTile( - // title: Text(p.name), - // subtitle: Text(p.birthYear), - // ))); - // }, - ), - ); + backgroundColor: Color.fromRGBO(58, 66, 86, 1.0), + body: SmartRefresher( + enablePullDown: true, + enablePullUp: true, + header: WaterDropHeader(), + footer: CustomFooter( + builder: (BuildContext context, LoadStatus mode) { + Widget body; + if (mode == LoadStatus.idle) { + body = Text("pull up load"); + } else if (mode == LoadStatus.loading) { + body = CupertinoActivityIndicator(); + } else if (mode == LoadStatus.failed) { + body = Text("Falha ao carregar. Tente novamente!"); + } else if (mode == LoadStatus.canLoading) { + body = Text("Solte para carregar mais"); + } else { + body = Text("Não há mais dados"); + } + return Container( + height: 55.0, + child: Center(child: body), + ); + }, + ), + controller: _refreshController, + onRefresh: _onRefresh, + onLoading: _onLoading, + child: _buildListItem(), + //child: ListView.builder( + // itemCount: widget.personagens.length, + // itemBuilder: (context, index) { + // Pessoa p = widget.personagens[index]; + // PessoaHelper().savePeople(p); + // return Card( + // child: Center( + // child: ListTile( + // title: Text(p.name), + // subtitle: Text(p.birthYear), + // ))); + // }, + // ), + )); } Widget _buildListItem() { @@ -115,8 +115,7 @@ class _Personagem extends State { tag: "avatar_" + p.name, child: CircleAvatar( radius: 32, - backgroundImage: - NetworkImage('assets/images/dia-star-wars.jpg'), + // backgroundImage: NetworkImage(record.photo), ))), title: Text( p.name, diff --git a/entrevista_popcode/pubspec.yaml b/entrevista_popcode/pubspec.yaml index a96bd74e..03e24d37 100644 --- a/entrevista_popcode/pubspec.yaml +++ b/entrevista_popcode/pubspec.yaml @@ -51,8 +51,8 @@ flutter: # To add assets to your application, add an assets section, like this: assets: - - assets/images/starWars.jpg - - assets/images/dia-star-wars.jpg + - assets/dia-star-wars.jpg + # - assets/images/starWars.jpg # - images/a_dot_ham.jpeg # An image asset can refer to one or more resolution-specific "variants", see From 3591733d45909f26c1d3479a3e3bf9605adfe193 Mon Sep 17 00:00:00 2001 From: Cleyslane Date: Tue, 21 Jul 2020 20:28:14 -0300 Subject: [PATCH 5/7] Corrigindo erros --- entrevista_popcode/lib/models/pessoa.dart | 4 +++- entrevista_popcode/lib/views/personagens.dart | 5 +++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/entrevista_popcode/lib/models/pessoa.dart b/entrevista_popcode/lib/models/pessoa.dart index 4b646ea2..17df2fc7 100644 --- a/entrevista_popcode/lib/models/pessoa.dart +++ b/entrevista_popcode/lib/models/pessoa.dart @@ -35,7 +35,9 @@ class Pessoa { birthYear = json['birth_year']; gender = json['gender']; homeWorld = json['homeworld']; - species = json['species'].cast(); + if (json['species'] != null) { + species = json['species'].cast(); + } } Map toJson() { diff --git a/entrevista_popcode/lib/views/personagens.dart b/entrevista_popcode/lib/views/personagens.dart index fbd88bdf..1282eea6 100644 --- a/entrevista_popcode/lib/views/personagens.dart +++ b/entrevista_popcode/lib/views/personagens.dart @@ -35,7 +35,9 @@ class _Personagem extends State { List listPessoa = await RequisicaoApi().getPessoas(http.Client(), this.page); widget.personagens.addAll(listPessoa); - listPessoa.forEach((personagem) => helperP.savePeople(personagem)); + for (var item in listPessoa) { + await helperP.savePeople(item); + } this.page++; } if (mounted) setState(() {}); @@ -95,7 +97,6 @@ class _Personagem extends State { itemCount: widget.personagens.length, itemBuilder: (context, index) { Pessoa p = widget.personagens[index]; - PessoaHelper().savePeople(p); return Card( key: ValueKey(p.name), elevation: 8.0, From 348f52ac341548aad8056d4675fdf8cc89b07035 Mon Sep 17 00:00:00 2001 From: Cleyslane Date: Thu, 23 Jul 2020 11:01:33 -0300 Subject: [PATCH 6/7] =?UTF-8?q?Cria=C3=A7=C3=A3o=20da=20p=C3=A1gina=20deta?= =?UTF-8?q?lhes?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../android/settings_aar.gradle | 1 + entrevista_popcode/assets/starWars.jpg | Bin 0 -> 53206 bytes entrevista_popcode/lib/helpers/database.dart | 2 +- .../lib/helpers/pessoa_helper.dart | 55 +-- .../lib/helpers/requisicao_API.dart | 30 +- entrevista_popcode/lib/main.dart | 7 - entrevista_popcode/lib/models/pessoa.dart | 49 ++- entrevista_popcode/lib/views/detalhes.dart | 392 ++++++++++++++++++ entrevista_popcode/lib/views/homepage.dart | 88 ++-- entrevista_popcode/lib/views/personagens.dart | 126 +++--- .../lib/widgets/menu_drawer.dart | 39 ++ entrevista_popcode/pubspec.yaml | 2 +- 12 files changed, 637 insertions(+), 154 deletions(-) create mode 100644 entrevista_popcode/android/settings_aar.gradle create mode 100644 entrevista_popcode/assets/starWars.jpg create mode 100644 entrevista_popcode/lib/views/detalhes.dart create mode 100644 entrevista_popcode/lib/widgets/menu_drawer.dart diff --git a/entrevista_popcode/android/settings_aar.gradle b/entrevista_popcode/android/settings_aar.gradle new file mode 100644 index 00000000..e7b4def4 --- /dev/null +++ b/entrevista_popcode/android/settings_aar.gradle @@ -0,0 +1 @@ +include ':app' diff --git a/entrevista_popcode/assets/starWars.jpg b/entrevista_popcode/assets/starWars.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b0d7d2e6396ef79cdf3f4a0a568157ff0e4ac328 GIT binary patch literal 53206 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

)*UvLy709l5l)?5O(FkIAHm94zm+3xBR93t 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 I1~{Mp**sNK&j0`b literal 0 HcmV?d00001 diff --git a/entrevista_popcode/lib/helpers/database.dart b/entrevista_popcode/lib/helpers/database.dart index 01384ad2..f56e5cc8 100644 --- a/entrevista_popcode/lib/helpers/database.dart +++ b/entrevista_popcode/lib/helpers/database.dart @@ -29,7 +29,7 @@ abstract class DataBaseHelper { onCreate: (Database db, int newVersion) async { await db.execute( "CREATE TABLE IF NOT EXISTS ${PessoaHelper.tableName}(${PessoaHelper.idColumn} INTEGER PRIMARY KEY AUTOINCREMENT, " - "${PessoaHelper.nameColumn} TEXT, ${PessoaHelper.heightColumn} TEXT,${PessoaHelper.masColumn} TEXT, " + "${PessoaHelper.nameColumn} TEXT, ${PessoaHelper.heightColumn} TEXT,${PessoaHelper.massColumn} TEXT, " "${PessoaHelper.hairColorColumn} TEXT, ${PessoaHelper.skinColorColumn} TEXT, " "${PessoaHelper.eyeColorColumn} TEXT, ${PessoaHelper.birthYearColumn} TEXT, " "${PessoaHelper.genderColumn} TEXT, ${PessoaHelper.homeWorldColumn} TEXTE, " diff --git a/entrevista_popcode/lib/helpers/pessoa_helper.dart b/entrevista_popcode/lib/helpers/pessoa_helper.dart index 5763bda0..7fbdd01d 100644 --- a/entrevista_popcode/lib/helpers/pessoa_helper.dart +++ b/entrevista_popcode/lib/helpers/pessoa_helper.dart @@ -8,14 +8,14 @@ class PessoaHelper extends DataBaseHelper { static final String idColumn = 'id'; static final String nameColumn = 'name'; static final String heightColumn = 'height'; - static final String masColumn = 'mass'; - static final String hairColorColumn = 'hairColor'; - static final String skinColorColumn = 'skinColor'; - static final String eyeColorColumn = 'eyeColor'; - static final String birthYearColumn = 'birthYear'; + static final String massColumn = 'mass'; + static final String hairColorColumn = 'hair_color'; + static final String skinColorColumn = 'skin_color'; + static final String eyeColorColumn = 'eye_color'; + static final String birthYearColumn = 'birth_year'; static final String genderColumn = 'gender'; - static final String homeWorldColumn = 'homeWorld'; - static final String specieColumn = 'specie'; + static final String homeWorldColumn = 'homeworld'; + static final String specieColumn = 'species'; static final PessoaHelper _instance = PessoaHelper.getInstance(); @@ -28,20 +28,21 @@ class PessoaHelper extends DataBaseHelper { @override Future savePeople(Pessoa people) async { Database db = await database; - // Pessoa personagem = await getFirst(people.name); + Pessoa personagem = await getFirst(people.name); String nomePlaneta = ""; String nomeEspecie = ""; - // if (personagem == null) { - if (people.homeWorld.isNotEmpty || (people.species != null)) { - try { - if (people.homeWorld.isNotEmpty) - nomePlaneta = await RequisicaoApi().getPlaneta(people.homeWorld); - if (people.species != null && people.species.length > 0) - nomeEspecie = await RequisicaoApi().getEspecie(people.species.first); - } catch (e) { - throw new Exception("Não foi possível realizar a requisição!"); - // } + if (personagem == null) { + if (people.homeWorld.isNotEmpty || (people.species != null)) { + try { + if (people.homeWorld.isNotEmpty) + nomePlaneta = await RequisicaoApi().getPlaneta(people.homeWorld); + if (people.species != null && people.species.length > 0) + nomeEspecie = + await RequisicaoApi().getEspecie(people.species.first); + } catch (e) { + throw new Exception("Não foi possível realizar a requisição!"); + } } people.homeWorld = nomePlaneta; @@ -58,21 +59,25 @@ class PessoaHelper extends DataBaseHelper { List personagem = await db .rawQuery("SELECT * FROM $tableName WHERE $nameColumn LIKE '$nome'"); if (personagem != null && personagem.length > 0) { - return Pessoa.fromJson(personagem.first); + return Pessoa.fromJson(personagem.first, true); } else { return null; } } @override - Future> getAll() async { + Future getAll() async { Database db = await database; - List listMap = await db.rawQuery("SELECT * FROM $tableName"); - List listaPessoas = listMap.isNotEmpty - ? listMap.map((e) => Pessoa.fromJson(e)).toList() - : []; + List lista = await db.rawQuery("SELECT * FROM $tableName"); + List personagens = List(); + for (Map m in lista) { + personagens.add(Pessoa.fromJson(m, true)); + } + // List personagens = lista.isNotEmpty + // ? lista.map((e) => Pessoa.fromJson(e, true)).toList() + // : []; - return listaPessoas; + return personagens; } @override diff --git a/entrevista_popcode/lib/helpers/requisicao_API.dart b/entrevista_popcode/lib/helpers/requisicao_API.dart index d009c626..e99f09a3 100644 --- a/entrevista_popcode/lib/helpers/requisicao_API.dart +++ b/entrevista_popcode/lib/helpers/requisicao_API.dart @@ -6,15 +6,25 @@ import 'package:flutter/foundation.dart'; import 'package:http/http.dart' as http; class RequisicaoApi { + final api = "http://swapi.dev/api/people/"; + Future> getPessoas(http.Client client, int page) async { - http.Response response = - await client.get('http://swapi.dev/api/people/?page=$page&format=json'); + // http.Response response = + // await client.get('http://swapi.dev/api/people/?page=$page&format=json'); + + // if (response.statusCode == 200) { + // return compute(parsePessoa, response.body); + // } else { + // throw Exception('Não foi possível se conectar a API'); + // } - if (response.statusCode == 200) { - return compute(parsePessoa, response.body); - } else { - throw Exception('Não foi possível se conectar a API'); + http.Response response; + try { + response = await client.get(api + "?page=$page&format=json"); + } catch (e) { + throw new Exception("Não foi possível obter informações da API!"); } + return compute(parsePessoa, response.body); } Future getEspecie(String nomeEspecie) async { @@ -28,11 +38,11 @@ class RequisicaoApi { } } -List parsePessoa(String responseBody) { - if (responseBody != "") { - final parsed = jsonDecode(responseBody); +List parsePessoa(String response) { + if (response != "") { + final parsed = jsonDecode(response); var results = parsed['results']; - return results.map((json) => Pessoa.fromJson(json)).toList(); + return results.map((json) => Pessoa.fromJson(json, false)).toList(); } return null; } diff --git a/entrevista_popcode/lib/main.dart b/entrevista_popcode/lib/main.dart index 1618a589..45c67351 100644 --- a/entrevista_popcode/lib/main.dart +++ b/entrevista_popcode/lib/main.dart @@ -12,7 +12,6 @@ class MyApp extends StatelessWidget { Widget build(BuildContext context) { return MaterialApp( debugShowCheckedModeBanner: false, - // title: appTitle, theme: new ThemeData( primaryColor: Color.fromRGBO(58, 66, 86, 1.0), ), @@ -21,12 +20,6 @@ class MyApp extends StatelessWidget { title: 'Wiki Star Wars', ), }, - // title: 'Flutter Demo', - // theme: ThemeData( - // primarySwatch: Colors.blue, - // visualDensity: VisualDensity.adaptivePlatformDensity, - // ), - // home: MyHomePage(), ); } } diff --git a/entrevista_popcode/lib/models/pessoa.dart b/entrevista_popcode/lib/models/pessoa.dart index 17df2fc7..b01c5fea 100644 --- a/entrevista_popcode/lib/models/pessoa.dart +++ b/entrevista_popcode/lib/models/pessoa.dart @@ -25,18 +25,31 @@ class Pessoa { this.specie, this.species}); - Pessoa.fromJson(Map json) { - name = json['name']; - height = json['height']; - mass = json['mass']; - hairColor = json['hair_color']; - skinColor = json['skin_color']; - eyeColor = json['eye_color']; - birthYear = json['birth_year']; - gender = json['gender']; - homeWorld = json['homeworld']; - if (json['species'] != null) { - species = json['species'].cast(); + Pessoa.fromJson(Map json, bool bancoLocal) { + if (bancoLocal) { + name = json['nameColumn']; + height = json['heightColumn']; + mass = json['massColumn']; + hairColor = json['hairColorColumn']; + skinColor = json['skinColorColumn']; + eyeColor = json['eyeColorColumn']; + birthYear = json['birthYearColumn']; + gender = json['genderColumn']; + homeWorld = json['homeWorldColumn']; + specie = json['specieColumn']; + } else { + name = json['name']; + height = json['height']; + mass = json['mass']; + hairColor = json['hair_color']; + skinColor = json['skin_color']; + eyeColor = json['eye_color']; + birthYear = json['birth_year']; + gender = json['gender']; + homeWorld = json['homeworld']; + if (json['species'] != null) { + species = json['species'].cast(); + } } } @@ -45,13 +58,13 @@ class Pessoa { 'name': this.name, 'height': this.name, 'mass': this.name, - 'hairColor': this.hairColor, - 'skinColor': this.skinColor, - 'eyeColor': this.eyeColor, - 'birthYear': this.birthYear, + 'hair_color': this.hairColor, + 'skin_color': this.skinColor, + 'eye_color': this.eyeColor, + 'birth_year': this.birthYear, 'gender': this.gender, - 'homeWorld': this.homeWorld, - 'specie': this.specie + 'homeworld': this.homeWorld, + 'species': this.specie }; } } diff --git a/entrevista_popcode/lib/views/detalhes.dart b/entrevista_popcode/lib/views/detalhes.dart new file mode 100644 index 00000000..49ff4095 --- /dev/null +++ b/entrevista_popcode/lib/views/detalhes.dart @@ -0,0 +1,392 @@ +import 'package:entrevista_popcode/models/pessoa.dart'; +import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; + +class Detalhes extends StatelessWidget { + final Pessoa pessoa; + + Detalhes({this.pessoa}); + + @override + Widget build(BuildContext context) { + return new Scaffold( + appBar: new AppBar( + centerTitle: true, + title: new Text(pessoa.name), + ), + body: new ListView(children: [ + Hero( + tag: "avatar_" + pessoa.name, + child: new Image.asset('assets/starWars.jpg'), + ), + Container( + padding: const EdgeInsets.all(32.0), + child: new Row( + children: [ + // First child in the Row for the name and the + // Release date information. + new Expanded( + // Name and Address are in the same column + child: new Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Padding( + padding: EdgeInsets.only(left: 5.0, right: 5.0), + child: Card( + color: Color.fromRGBO(58, 66, 86, 1.0), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(15)), + child: ListTile( + title: RichText( + text: TextSpan( + text: "Altura: ", + style: TextStyle( + color: Colors.white, fontSize: 20), + children: [ + TextSpan( + text: pessoa.height, + style: TextStyle( + color: Colors.white, fontSize: 20), + ), + ])), + )), + ), + Padding( + padding: EdgeInsets.only(left: 5.0, right: 5.0), + child: Card( + color: Color.fromRGBO(58, 66, 86, 1.0), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(15)), + child: ListTile( + title: RichText( + text: TextSpan( + text: "Peso: ", + style: TextStyle( + color: Colors.white, fontSize: 20), + children: [ + TextSpan( + text: pessoa.mass, + style: TextStyle( + color: Colors.white, fontSize: 20), + ), + ])), + )), + ), + // Row(children: [ + // Flexible( + // child: Card( + // color: Color.fromRGBO(58, 66, 86, 1.0), + // //color: Colors.grey[700], + // shape: RoundedRectangleBorder( + // borderRadius: BorderRadius.circular(15)), + // child: ListTile( + // title: RichText( + // text: TextSpan( + // text: "Altura: ", + // style: TextStyle( + // color: Colors.white, + // fontSize: 20), + // children: [ + // TextSpan( + // text: pessoa.height, + // style: TextStyle( + // color: Colors.white, + // fontSize: 20.0), + // ), + // ]))))), + // Flexible( + // child: Card( + // color: Color.fromRGBO(58, 66, 86, 1.0), + // shape: RoundedRectangleBorder( + // borderRadius: BorderRadius.circular(15)), + // child: ListTile( + // title: RichText( + // text: TextSpan( + // text: "Pesso: ", + // style: TextStyle( + // color: Colors.white, + // fontSize: 20), + // children: [ + // TextSpan( + // text: pessoa.mass, + // style: TextStyle( + // color: Colors.white, + // fontSize: 20.0), + // ), + // ])), + // ))), + // ]), + Padding( + padding: EdgeInsets.only(left: 5.0, right: 5.0), + child: Card( + color: Color.fromRGBO(58, 66, 86, 1.0), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(15)), + child: ListTile( + title: RichText( + text: TextSpan( + text: "Genêro: ", + style: TextStyle( + color: Colors.white, fontSize: 20), + children: [ + TextSpan( + text: pessoa.gender, + style: TextStyle( + color: Colors.white, fontSize: 20), + ), + ])), + )), + ), + // Row( + // children: [ + // Flexible( + // child: Card( + // color: Color.fromRGBO(58, 66, 86, 1.0), + // shape: RoundedRectangleBorder( + // borderRadius: BorderRadius.circular(15)), + // child: ListTile( + // title: RichText( + // text: TextSpan( + // text: "Genêro: ", + // style: TextStyle( + // color: Colors.white, + // fontSize: 20), + // children: [ + // TextSpan( + // text: pessoa.gender, + // style: TextStyle( + // color: Colors.white, + // fontSize: 20), + // ), + // ])), + // ))), + // Flexible( + // child: Card( + // color: Color.fromRGBO(58, 66, 86, 1.0), + // shape: RoundedRectangleBorder( + // borderRadius: BorderRadius.circular(15)), + // child: ListTile( + // title: RichText( + // text: TextSpan( + // text: "Espécie: ", + // style: TextStyle( + // color: Colors.white, + // fontSize: 20), + // children: [ + // TextSpan( + // text: (pessoa.specie == null || + // pessoa.specie.isEmpty) + // ? "unknown" + // : pessoa.specie, + // style: TextStyle( + // color: Colors.white, + // fontSize: 20.0), + // ), + // ]))))) + // ], + // ), + Padding( + padding: EdgeInsets.only(left: 5.0, right: 5.0), + child: Card( + color: Color.fromRGBO(58, 66, 86, 1.0), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(15)), + child: ListTile( + title: RichText( + text: TextSpan( + text: "Espécie: ", + style: TextStyle( + color: Colors.white, fontSize: 20), + children: [ + TextSpan( + text: (pessoa.specie == null || + pessoa.specie.isEmpty) + ? "unknown" + : pessoa.specie, + style: TextStyle( + color: Colors.white, fontSize: 20), + ), + ])), + )), + ), + Padding( + padding: EdgeInsets.only(left: 5.0, right: 5.0), + child: Card( + color: Color.fromRGBO(58, 66, 86, 1.0), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(15)), + child: ListTile( + title: RichText( + text: TextSpan( + text: "Cor do Cabelo: ", + style: TextStyle( + color: Colors.white, fontSize: 20), + children: [ + TextSpan( + text: pessoa.hairColor, + style: TextStyle( + color: Colors.white, fontSize: 20), + ), + ])), + )), + ), + Padding( + padding: EdgeInsets.only(left: 5.0, right: 5.0), + child: Card( + color: Color.fromRGBO(58, 66, 86, 1.0), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(15)), + child: ListTile( + title: RichText( + text: TextSpan( + text: "Cor da Pele: ", + style: TextStyle( + color: Colors.white, fontSize: 20), + children: [ + TextSpan( + text: pessoa.skinColor, + style: TextStyle( + color: Colors.white, fontSize: 20), + ), + ])), + )), + ), + Padding( + padding: EdgeInsets.only(left: 5.0, right: 5.0), + child: Card( + color: Color.fromRGBO(58, 66, 86, 1.0), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(15)), + child: ListTile( + title: RichText( + text: TextSpan( + text: "Cor dos Olhos: ", + style: TextStyle( + color: Colors.white, fontSize: 20), + children: [ + TextSpan( + text: pessoa.eyeColor, + style: TextStyle( + color: Colors.white, fontSize: 20), + ), + ])), + )), + ), + Padding( + padding: EdgeInsets.only(left: 5.0, right: 5.0), + child: Card( + color: Color.fromRGBO(58, 66, 86, 1.0), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(15)), + child: ListTile( + title: RichText( + text: TextSpan( + text: "Planeta: ", + style: TextStyle( + color: Colors.white, fontSize: 20), + children: [ + TextSpan( + text: pessoa.homeWorld, + style: TextStyle( + color: Colors.white, fontSize: 20), + ), + ])), + )), + ), + // Row( + // children: [ + // Flexible( + // child: Card( + // color: Color.fromRGBO(58, 66, 86, 1.0), + // shape: RoundedRectangleBorder( + // borderRadius: BorderRadius.circular(15)), + // child: ListTile( + // title: RichText( + // text: TextSpan( + // text: "Cor dos Olhos: ", + // style: TextStyle( + // color: Colors.white, + // fontSize: 20), + // children: [ + // TextSpan( + // text: pessoa.eyeColor, + // style: TextStyle( + // color: Colors.white, + // fontSize: 20), + // ), + // ])), + // ))), + // Flexible( + // child: Card( + // color: Color.fromRGBO(58, 66, 86, 1.0), + // shape: RoundedRectangleBorder( + // borderRadius: BorderRadius.circular(15)), + // child: ListTile( + // title: RichText( + // text: TextSpan( + // text: "Planeta: ", + // style: TextStyle( + // color: Colors.white, + // fontSize: 20), + // children: [ + // TextSpan( + // text: pessoa.homeWorld, + // style: TextStyle( + // color: Colors.white, + // fontSize: 20.0), + // ), + // ]))))) + // ], + // ), + // Padding( + // padding: EdgeInsets.only(left: 10.0, right: 5.0), + // child: Card( + // color: Color.fromRGBO(58, 66, 86, 1.0), + // shape: RoundedRectangleBorder( + // borderRadius: BorderRadius.circular(15)), + // child: ListTile( + // title: RichText( + // text: TextSpan( + // text: "Espécie: ", + // style: TextStyle( + // color: Colors.white, fontSize: 20), + // children: [ + // TextSpan( + // text: (pessoa.specie == null || + // pessoa.specie.isEmpty) + // ? "unknown" + // : pessoa.specie, + // style: TextStyle( + // color: Colors.white, fontSize: 20), + // ), + // ])), + // )), + // ) + + // new Text( + // "Altura: " + pessoa.height, + // style: new TextStyle( + // color: Colors.grey[500], + // ), + // ), + // new Text( + // "Peso: " + pessoa.mass, + // style: new TextStyle( + // color: Colors.grey[500], + // ), + // ), + // new Text( + // "Cor do cabelo: " + pessoa.hairColor, + // style: new TextStyle( + // color: Colors.grey[500], + // ), + // ) + ], + ), + ), + ], + ), + ), + ])); + } +} diff --git a/entrevista_popcode/lib/views/homepage.dart b/entrevista_popcode/lib/views/homepage.dart index 5defc0fe..1213efdc 100644 --- a/entrevista_popcode/lib/views/homepage.dart +++ b/entrevista_popcode/lib/views/homepage.dart @@ -2,6 +2,7 @@ import 'package:entrevista_popcode/helpers/pessoa_helper.dart'; import 'package:entrevista_popcode/helpers/requisicao_API.dart'; import 'package:entrevista_popcode/models/pessoa.dart'; import 'package:entrevista_popcode/views/personagens.dart'; +import 'package:entrevista_popcode/widgets/menu_drawer.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:http/http.dart' as http; @@ -17,10 +18,11 @@ class HomePage extends StatefulWidget { class _HomePageState extends State { final TextEditingController _filter = new TextEditingController(); + PessoaHelper pessoa = PessoaHelper(); - List _personagens = new List(); - List _personagensFiltrados = new List(); + List personagens = new List(); + List personagensFiltrados = new List(); String _searchText = ""; @@ -30,15 +32,14 @@ class _HomePageState extends State { @override void initState() { - super.initState(); - _getAllPersonagens(); + super.initState(); } void _getAllPersonagens() { pessoa.getAll().then((lista) { setState(() { - _personagens = lista; + personagens = lista; }); }); } @@ -58,6 +59,33 @@ class _HomePageState extends State { }); } + List _filtrar() { + if (_searchText.isNotEmpty) { + List auxList = new List(); + // personagensFiltrados = new List(); + for (int i = 0; i < personagens.length; i++) { + if (personagens[i] + .name + .toLowerCase() + .contains(_searchText.toLowerCase())) { + // personagensFiltrados.add(personagens[i]); + auxList.add(personagens[i]); + } + } + personagensFiltrados = auxList; + return personagensFiltrados; + } + return null; + } + + void _armazenarPersonagens() { + // ignore: unnecessary_statements + _getAllPersonagens; + setState(() { + this.personagensFiltrados = personagens; + }); + } + void _searchPressed() { setState(() { if (this._searchIcon.icon == Icons.search) { @@ -72,9 +100,11 @@ class _HomePageState extends State { hintStyle: TextStyle(color: Colors.white), ), ); + _armazenarPersonagens(); } else { this._searchIcon = new Icon(Icons.search); this._appBarTitle = new Text('Wiki Star Wars'); + this.personagensFiltrados = personagens; _filter.clear(); } }); @@ -85,18 +115,19 @@ class _HomePageState extends State { return Scaffold( backgroundColor: Color.fromRGBO(58, 66, 86, 1.0), appBar: _buildBar(context), + drawer: Drawer(child: MenuDrawer()), body: FutureBuilder>( future: RequisicaoApi().getPessoas(http.Client(), 1), builder: (context, snapshot) { if (snapshot.hasError) print(snapshot.error); - return (snapshot.hasData || _personagens.length > 0) + return (snapshot.hasData || personagens.length > 0) ? Personagem( - personagens: (_filtrar() != null) + personagens: ((_filtrar() != null) ? _filtrar() - : ((_personagens != null && _personagens.length > 0) - ? _personagens + : (personagens != null && personagens.length > 0) + ? personagens : snapshot.data), - isSearching: (_searchText.isEmpty != null) ? false : true) + isSearching: (_searchText.isEmpty ? false : true)) : Center(child: CircularProgressIndicator()); }, ), @@ -105,30 +136,21 @@ class _HomePageState extends State { Widget _buildBar(BuildContext context) { return new AppBar( - elevation: 0.1, - backgroundColor: Color.fromRGBO(58, 66, 86, 1.0), - centerTitle: true, - title: _appBarTitle, - leading: new IconButton( + elevation: 0.1, + backgroundColor: Color.fromRGBO(58, 66, 86, 1.0), + centerTitle: true, + title: _appBarTitle, + actions: [ + IconButton( + onPressed: () => _searchPressed(), icon: _searchIcon, - onPressed: _searchPressed, - )); - } - - List _filtrar() { - if (_searchText.isNotEmpty) { - _personagensFiltrados = new List(); - for (int i = 0; i < _personagens.length; i++) { - if (_personagens[i] - .name - .toLowerCase() - .contains(_searchText.toLowerCase())) { - _personagensFiltrados.add(_personagens[i]); - } - } - return _personagensFiltrados; - } - return null; + ) + ], + ); + // leading: new IconButton( + // icon: _searchIcon, + // onPressed: _searchPressed, + // )); } } diff --git a/entrevista_popcode/lib/views/personagens.dart b/entrevista_popcode/lib/views/personagens.dart index 1282eea6..d5f59d6f 100644 --- a/entrevista_popcode/lib/views/personagens.dart +++ b/entrevista_popcode/lib/views/personagens.dart @@ -1,6 +1,7 @@ import 'package:entrevista_popcode/helpers/pessoa_helper.dart'; import 'package:entrevista_popcode/helpers/requisicao_API.dart'; import 'package:entrevista_popcode/models/pessoa.dart'; +import 'package:entrevista_popcode/views/detalhes.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:pull_to_refresh/pull_to_refresh.dart'; @@ -30,73 +31,23 @@ class _Personagem extends State { void _onLoading() async { await Future.delayed(Duration(milliseconds: 1000)); - - if (this.page < 9 && widget.isSearching) { - List listPessoa = + if (this.page < 9 && !widget.isSearching) { + List pessoas = await RequisicaoApi().getPessoas(http.Client(), this.page); - widget.personagens.addAll(listPessoa); - for (var item in listPessoa) { - await helperP.savePeople(item); - } + widget.personagens.addAll(pessoas); + pessoas.forEach((personagem) => helperP.savePeople(personagem)); this.page++; } if (mounted) setState(() {}); _refreshController.loadComplete(); } - @override - Widget build(BuildContext context) { - return Scaffold( - backgroundColor: Color.fromRGBO(58, 66, 86, 1.0), - body: SmartRefresher( - enablePullDown: true, - enablePullUp: true, - header: WaterDropHeader(), - footer: CustomFooter( - builder: (BuildContext context, LoadStatus mode) { - Widget body; - if (mode == LoadStatus.idle) { - body = Text("pull up load"); - } else if (mode == LoadStatus.loading) { - body = CupertinoActivityIndicator(); - } else if (mode == LoadStatus.failed) { - body = Text("Falha ao carregar. Tente novamente!"); - } else if (mode == LoadStatus.canLoading) { - body = Text("Solte para carregar mais"); - } else { - body = Text("Não há mais dados"); - } - return Container( - height: 55.0, - child: Center(child: body), - ); - }, - ), - controller: _refreshController, - onRefresh: _onRefresh, - onLoading: _onLoading, - child: _buildListItem(), - //child: ListView.builder( - // itemCount: widget.personagens.length, - // itemBuilder: (context, index) { - // Pessoa p = widget.personagens[index]; - // PessoaHelper().savePeople(p); - // return Card( - // child: Center( - // child: ListTile( - // title: Text(p.name), - // subtitle: Text(p.birthYear), - // ))); - // }, - // ), - )); - } - - Widget _buildListItem() { + _buildListItem() { return ListView.builder( itemCount: widget.personagens.length, itemBuilder: (context, index) { Pessoa p = widget.personagens[index]; + PessoaHelper().savePeople(p); return Card( key: ValueKey(p.name), elevation: 8.0, @@ -116,7 +67,8 @@ class _Personagem extends State { tag: "avatar_" + p.name, child: CircleAvatar( radius: 32, - // backgroundImage: NetworkImage(record.photo), + backgroundImage: + AssetImage('assets/dia-star-wars.jpg'), ))), title: Text( p.name, @@ -131,7 +83,23 @@ class _Personagem extends State { children: [ RichText( text: TextSpan( - text: p.birthYear, + text: 'Altura: ' + p.height, + style: TextStyle(color: Colors.white), + ), + maxLines: 3, + softWrap: true, + ), + RichText( + text: TextSpan( + text: 'Genero: ' + p.gender, + style: TextStyle(color: Colors.white), + ), + maxLines: 3, + softWrap: true, + ), + RichText( + text: TextSpan( + text: 'Peso: ' + p.mass, style: TextStyle(color: Colors.white), ), maxLines: 3, @@ -142,10 +110,50 @@ class _Personagem extends State { ), trailing: Icon(Icons.keyboard_arrow_right, color: Colors.white, size: 30.0), - onTap: () {}, + onTap: () { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => new Detalhes(pessoa: p))); + }, ), ), ); }); } + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: Color.fromRGBO(58, 66, 86, 1.0), + body: SmartRefresher( + enablePullDown: true, + enablePullUp: true, + header: WaterDropHeader(), + footer: CustomFooter( + builder: (BuildContext context, LoadStatus mode) { + Widget body; + if (mode == LoadStatus.idle) { + body = Text(""); + } else if (mode == LoadStatus.loading) { + body = CircularProgressIndicator(); + } else if (mode == LoadStatus.failed) { + body = Text("Falha ao carregar. Tente novamente!"); + } else if (mode == LoadStatus.canLoading) { + body = Text("Solte para carregar mais"); + } else { + body = Text("Não há mais dados"); + } + return Container( + height: 55.0, + child: Center(child: body), + ); + }, + ), + controller: _refreshController, + onRefresh: _onRefresh, + onLoading: _onLoading, + child: _buildListItem(), + )); + } } diff --git a/entrevista_popcode/lib/widgets/menu_drawer.dart b/entrevista_popcode/lib/widgets/menu_drawer.dart new file mode 100644 index 00000000..e1d79096 --- /dev/null +++ b/entrevista_popcode/lib/widgets/menu_drawer.dart @@ -0,0 +1,39 @@ +import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; + +class MenuDrawer extends StatefulWidget { + MenuDrawer({Key key}) : super(key: key); + + _MenuDrawerState createState() => _MenuDrawerState(); +} + +class _MenuDrawerState extends State { + @override + Widget build(BuildContext context) { + return ListView( + children: [ + UserAccountsDrawerHeader( + accountName: Text("Wiki Star Wars", style: TextStyle(fontSize: 20)), + accountEmail: null, + ), + ListTile( + leading: Icon(Icons.home), + title: Text('Todos Personagens'), + trailing: Icon(Icons.arrow_forward), + onTap: () { + Navigator.pushNamed(context, '/'); + }, + ), + ListTile( + leading: Icon(Icons.star), + title: Text('Favoritos'), + trailing: Icon(Icons.arrow_forward), + onTap: () { + // Update the state of the app. + // ... + }, + ), + ], + ); + } +} diff --git a/entrevista_popcode/pubspec.yaml b/entrevista_popcode/pubspec.yaml index 03e24d37..3cd812ac 100644 --- a/entrevista_popcode/pubspec.yaml +++ b/entrevista_popcode/pubspec.yaml @@ -52,7 +52,7 @@ flutter: # To add assets to your application, add an assets section, like this: assets: - assets/dia-star-wars.jpg - # - assets/images/starWars.jpg + - assets/starWars.jpg # - images/a_dot_ham.jpeg # An image asset can refer to one or more resolution-specific "variants", see From ed5123054cd61c8e5392a1a5b4f5b6c2f6fff390 Mon Sep 17 00:00:00 2001 From: Cleyslane Date: Thu, 23 Jul 2020 13:29:59 -0300 Subject: [PATCH 7/7] =?UTF-8?q?Altera=C3=A7=C3=B5es=20finais?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- entrevista_popcode/lib/helpers/database.dart | 2 +- entrevista_popcode/lib/main.dart | 2 +- entrevista_popcode/lib/views/homepage.dart | 85 +++++++++----------- 3 files changed, 38 insertions(+), 51 deletions(-) diff --git a/entrevista_popcode/lib/helpers/database.dart b/entrevista_popcode/lib/helpers/database.dart index f56e5cc8..f29edf93 100644 --- a/entrevista_popcode/lib/helpers/database.dart +++ b/entrevista_popcode/lib/helpers/database.dart @@ -6,7 +6,7 @@ abstract class DataBaseHelper { static final _databaseName = 'starwars.db'; static final _databaseVersion = 1; - static Database _dataBase; + Database _dataBase; Future savePeople(T people); Future getFirst(String nome); diff --git a/entrevista_popcode/lib/main.dart b/entrevista_popcode/lib/main.dart index 45c67351..69396c2b 100644 --- a/entrevista_popcode/lib/main.dart +++ b/entrevista_popcode/lib/main.dart @@ -1,5 +1,4 @@ import 'package:entrevista_popcode/views/homepage.dart'; -//import 'package:entrevista_popcode/views/personagens.dart'; import 'package:flutter/material.dart'; void main() { @@ -8,6 +7,7 @@ void main() { class MyApp extends StatelessWidget { // This widget is the root of your application. + @override Widget build(BuildContext context) { return MaterialApp( diff --git a/entrevista_popcode/lib/views/homepage.dart b/entrevista_popcode/lib/views/homepage.dart index 1213efdc..27b7b98b 100644 --- a/entrevista_popcode/lib/views/homepage.dart +++ b/entrevista_popcode/lib/views/homepage.dart @@ -36,20 +36,11 @@ class _HomePageState extends State { super.initState(); } - void _getAllPersonagens() { - pessoa.getAll().then((lista) { - setState(() { - personagens = lista; - }); - }); - } - _HomePageState() { _filter.addListener(() { if (_filter.text.isEmpty) { setState(() { _searchText = ""; - //_resetRecords(); }); } else { setState(() { @@ -59,6 +50,14 @@ class _HomePageState extends State { }); } + void _getAllPersonagens() { + pessoa.getAll().then((lista) { + setState(() { + personagens = lista; + }); + }); + } + List _filtrar() { if (_searchText.isNotEmpty) { List auxList = new List(); @@ -110,11 +109,38 @@ class _HomePageState extends State { }); } + // _buildBar(BuildContext context) { + // return new AppBar( + // elevation: 0.1, + // backgroundColor: Color.fromRGBO(58, 66, 86, 1.0), + // centerTitle: true, + // title: _appBarTitle, + // actions: [ + // IconButton( + // onPressed: () => _searchPressed(), + // icon: _searchIcon, + // ) + // ], + // ); + // } + @override Widget build(BuildContext context) { return Scaffold( backgroundColor: Color.fromRGBO(58, 66, 86, 1.0), - appBar: _buildBar(context), + //appBar: _buildBar(context), + appBar: new AppBar( + elevation: 0.1, + backgroundColor: Color.fromRGBO(58, 66, 86, 1.0), + centerTitle: true, + title: _appBarTitle, + actions: [ + IconButton( + onPressed: () => _searchPressed(), + icon: _searchIcon, + ) + ], + ), drawer: Drawer(child: MenuDrawer()), body: FutureBuilder>( future: RequisicaoApi().getPessoas(http.Client(), 1), @@ -133,43 +159,4 @@ class _HomePageState extends State { ), ); } - - Widget _buildBar(BuildContext context) { - return new AppBar( - elevation: 0.1, - backgroundColor: Color.fromRGBO(58, 66, 86, 1.0), - centerTitle: true, - title: _appBarTitle, - actions: [ - IconButton( - onPressed: () => _searchPressed(), - icon: _searchIcon, - ) - ], - ); - // leading: new IconButton( - // icon: _searchIcon, - // onPressed: _searchPressed, - // )); - } } - -//class PessoasList extends StatelessWidget { -// final List pessoas; - -// PessoasList({Key key, this.pessoas}) : super(key: key); - -// @override -// Widget build(BuildContext context) { -// return ListView.builder( -// itemCount: pessoas.length, -// itemBuilder: (context, index) { -// Pessoa p = pessoas[index]; -// return ListTile( -// title: Text(p.name), -// subtitle: Text(p.birthYear), -// ); -// }, -// ); -// } -//}