├── .firebase └── hosting.YnVpbGQvd2Vi.cache ├── .github └── ISSUE_TEMPLATE │ ├── bug_report.md │ └── feature_request.md ├── .gitignore ├── .metadata ├── LICENSE ├── License.md ├── README.md ├── android ├── .gitignore ├── app │ ├── build.gradle │ └── src │ │ ├── debug │ │ └── AndroidManifest.xml │ │ ├── main │ │ ├── AndroidManifest.xml │ │ ├── kotlin │ │ │ └── com │ │ │ │ └── estech │ │ │ │ └── fluttercon │ │ │ │ └── MainActivity.kt │ │ └── res │ │ │ ├── drawable │ │ │ └── launch_background.xml │ │ │ ├── mipmap-hdpi │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-mdpi │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-xhdpi │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-xxhdpi │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-xxxhdpi │ │ │ └── ic_launcher.png │ │ │ └── values │ │ │ └── styles.xml │ │ └── profile │ │ └── AndroidManifest.xml ├── build.gradle ├── gradle.properties ├── gradle │ └── wrapper │ │ └── gradle-wrapper.properties └── settings.gradle ├── assets ├── Images │ ├── Logos │ │ ├── FlutterConLogos │ │ │ ├── Group_twenty.png │ │ │ ├── Hello.png │ │ │ └── Vector.png │ │ ├── Organizer_Logo │ │ │ └── flutter_surat_logo.jpg │ │ └── Sponsors_Logo │ │ │ ├── slido_sponsor.png │ │ │ └── slido_sponsor.svg │ ├── cover_Images │ │ ├── Twitter_Cover.png │ │ ├── cover_image.png │ │ └── cover_image_1.png │ ├── extra │ │ ├── doughnut.png │ │ ├── newHomePage.png │ │ ├── speaker.png │ │ └── woman-discuss.png │ └── socialIcons │ │ ├── GDG.png │ │ ├── add_to_slack.png │ │ ├── facebook.png │ │ ├── meetup.png │ │ ├── slack.png │ │ ├── slack_white.png │ │ ├── twitter.png │ │ ├── youtube.png │ │ ├── youtube_icon.png │ │ └── youtube_social_circle_red.png ├── fonts │ ├── ProductSans.ttf │ ├── djoker-state.regular.ttf │ ├── flutter_con.png │ ├── newHomePage.png │ └── rockybilly.ttf └── json │ ├── organizers.json │ └── speakers.json ├── contributing.md ├── github_images └── poster.png ├── ios ├── .gitignore ├── Flutter │ ├── AppFrameworkInfo.plist │ ├── Debug.xcconfig │ └── Release.xcconfig ├── Podfile ├── Podfile.lock ├── Runner.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ │ ├── IDEWorkspaceChecks.plist │ │ │ └── WorkspaceSettings.xcsettings │ └── xcshareddata │ │ └── xcschemes │ │ └── Runner.xcscheme ├── Runner.xcworkspace │ ├── contents.xcworkspacedata │ └── xcshareddata │ │ ├── IDEWorkspaceChecks.plist │ │ └── WorkspaceSettings.xcsettings └── Runner │ ├── AppDelegate.swift │ ├── Assets.xcassets │ ├── AppIcon.appiconset │ │ ├── Contents.json │ │ ├── Icon-App-1024x1024@1x.png │ │ ├── Icon-App-20x20@1x.png │ │ ├── Icon-App-20x20@2x.png │ │ ├── Icon-App-20x20@3x.png │ │ ├── Icon-App-29x29@1x.png │ │ ├── Icon-App-29x29@2x.png │ │ ├── Icon-App-29x29@3x.png │ │ ├── Icon-App-40x40@1x.png │ │ ├── Icon-App-40x40@2x.png │ │ ├── Icon-App-40x40@3x.png │ │ ├── Icon-App-60x60@2x.png │ │ ├── Icon-App-60x60@3x.png │ │ ├── Icon-App-76x76@1x.png │ │ ├── Icon-App-76x76@2x.png │ │ └── Icon-App-83.5x83.5@2x.png │ └── LaunchImage.imageset │ │ ├── Contents.json │ │ ├── LaunchImage.png │ │ ├── LaunchImage@2x.png │ │ ├── LaunchImage@3x.png │ │ └── README.md │ ├── Base.lproj │ ├── LaunchScreen.storyboard │ └── Main.storyboard │ ├── Info.plist │ └── Runner-Bridging-Header.h ├── lib ├── HomePage │ ├── ContactUs │ │ └── ContactUs.dart │ ├── CoverImage.dart │ ├── FAQ │ │ ├── FAQ.dart │ │ └── QNA.dart │ ├── HomePage.dart │ ├── Intro │ │ ├── CoverImage.dart │ │ └── mainIntro.dart │ ├── MainIntro.dart │ ├── Motion.dart │ ├── OrganizerSection │ │ ├── OrganizerScreen.dart │ │ ├── OrganizerSection.dart │ │ └── Organizerhandle.dart │ ├── PoweredBy │ │ └── PoweredBy.dart │ ├── Responsiveness │ │ └── Responsive.dart │ ├── ScheduleSection │ │ ├── EventCard.dart │ │ ├── ScheduleScreen.dart │ │ └── ScheduleSection.dart │ └── SpeakerSection │ │ └── SpeakerScreen.dart ├── background │ └── graphic.dart ├── main.dart ├── organizer_screen.dart ├── utils │ ├── Motion.dart │ └── con_info.dart └── widgets │ ├── widget.dart │ └── worldReunite.dart ├── pubspec.lock ├── pubspec.yaml ├── pull_request_template.md ├── test └── widget_test.dart └── web ├── favicon.png ├── icons ├── Icon-192.png └── Icon-512.png ├── index.html └── manifest.json /.firebase/hosting.YnVpbGQvd2Vi.cache: -------------------------------------------------------------------------------- 1 | favicon.png,1591298212954,b08ea3e73b559907f4ec89f3ffb8897bc70808eeabedec294e73204bb817e915 2 | manifest.json,1591368387292,d7337c8cc14fc958072e7f9e5593e59ddd773518daf427cee2af718f4d18dfdc 3 | assets/assets/Images/Logos/FlutterConLogos/Group_twenty.png,1591298212914,193bf3bce0d7d2f9c4735d744cec06b2915b093edb07e91846d6c0f02a172588 4 | assets/assets/Images/Logos/FlutterConLogos/Hello.png,1591298212915,75e64c6988e5ad1a33377eb813bc00a300996fd15e06233603238e72ce261a91 5 | assets/assets/Images/Logos/FlutterConLogos/Vector.png,1591298212915,ed0d6a8f20bcdb72822a9adbe36026bb4a2ef2f476cc3e339180477af0724b3e 6 | assets/assets/Images/Logos/Organizer_Logo/flutter_surat_logo.jpg,1591298212915,08a4bd53d50da9378d22352093d35752aa513200796e608c10804306c3248fe2 7 | assets/assets/Images/Logos/Sponsors_Logo/slido_sponsor.png,1591298212916,7b34b39226ba8f27b2f72fdc94c89b83958e41a4d07968904eb99c3282c1852b 8 | assets/assets/Images/Logos/Sponsors_Logo/slido_sponsor.svg,1591298212916,df643806eb25b7ae04f1d69d2864fdb555f0680f039b627d7ab2e7acaeb3f7e7 9 | assets/assets/Images/cover_Images/Twitter_Cover.png,1591298212917,a375660880c84f0606f165e9927487584f3be14f2badf234d0144760f198f402 10 | assets/assets/Images/cover_Images/cover_image.png,1591298212919,5c45b0d6ef65ef312499225a72ffc52030e8501143877a8323987abe801ae8f0 11 | assets/assets/Images/cover_Images/cover_image_1.png,1591298212920,2e5fe752717be5526093a741f2f3375e6507e945668ebd3d8a0db8927074537e 12 | assets/assets/Images/extra/doughnut.png,1591298212920,03808212cc0ab6148e811b25d2008b5811a8e2d4e3884ed0eb2ae29862020087 13 | assets/assets/Images/extra/newHomePage.png,1591298212924,8f963773fa5ef8af042c97be6ed756b95d2d8ec2eec93e575df4e99027e9a478 14 | assets/assets/Images/extra/speaker.png,1591298212925,d7beadb123c639655eeb72ce746c49e11105401b21fe58eecb96824ebc1df0dc 15 | assets/assets/Images/extra/woman-discuss.png,1591298212925,4abefa4fce4e1bffd3cb928889930ad1fbb22ea9d40302df9a16c1b0f5217096 16 | assets/assets/Images/socialIcons/GDG.png,1591298212926,8dff02d1f5f14573868e63191abd4447a238090a0fd6416782bf16643a2c949f 17 | assets/assets/Images/socialIcons/add_to_slack.png,1591298212926,be741a1c5879efe2cbce48e94a5d7d94de58f0842546647b67bef0f917fba792 18 | assets/assets/Images/socialIcons/facebook.png,1591298212926,459a14fae30e65a69583c316810f463ed9366ff7629b82a72eeb02479a30ffa7 19 | assets/assets/Images/socialIcons/meetup.png,1591298212926,8b2bbf5969fc6a820203a75bdabd1e1577123d31ee959d8ae750d1c5d073f4b6 20 | assets/assets/Images/socialIcons/slack.png,1591298212927,d873979387c6c468bf2757675f88e0ec1d120ef1809927ab68055d2dba14a610 21 | assets/assets/Images/socialIcons/slack_white.png,1591298212927,a6d1ceb1be012c8fe25a3c512694ab83fe41c09d701247f681cc8995476cc81e 22 | assets/assets/Images/socialIcons/twitter.png,1591298212927,da7875b71f1125072f85961a31b7137c3f5e9794e6fdeb305878c0f9bf740702 23 | assets/assets/Images/socialIcons/youtube.png,1591298212928,e186f8dd36525bbd67c2326f96b4f3e32e186a39d8a9d600e5f016446e02bd88 24 | assets/assets/Images/socialIcons/youtube_icon.png,1591298212928,fe01c53f412f5ab908caa9bcd17070fb2a9463b54f2931e3cfaa686efe825f58 25 | assets/assets/Images/socialIcons/youtube_social_circle_red.png,1591298212928,6f20c19e689abe961c21f4836c22661295d905c84b587d003524c21e22fd45f3 26 | assets/assets/fonts/ProductSans.ttf,1591298212928,f1b651238a58fe290baec6c5e32f3bdb1943dd2bd582f02569231f7a757c7837 27 | assets/assets/fonts/rockybilly.ttf,1591298212935,afb561323061372a7c0101df7e4abbb3fb3af28b2a941477eaeb102dc6904ce3 28 | assets/assets/json/organizers.json,1591298212935,6e19f1d52b4e292e18a53c9577b7ed6cc79ecf6ca96c9e3bab2a31658fdec72e 29 | assets/assets/json/speakers.json,1591298212935,0f18d8bb5baadc1a78b3ff974fe6e219dd75807c0c75dd1b1b825df01f4814ca 30 | assets/fonts/MaterialIcons-Regular.ttf,1475273174000,49f9a5d2c31ecd331d178c6c3d587181ce635721e46240a8547f0a5374f3257d 31 | assets/packages/cupertino_icons/assets/CupertinoIcons.ttf,1575319380000,3d5615fc7a84c016d70e93141c13a613fda9babcede78918fbd190f0b9d5b578 32 | assets/packages/font_awesome_flutter/lib/fonts/fa-brands-400.ttf,1585313587000,5904e050d77c969303a8f3f1540934a903fd9cb23d4801f5fecb63dbb059ecd2 33 | assets/packages/font_awesome_flutter/lib/fonts/fa-regular-400.ttf,1585313587000,d8942f0fe4e089b72034680e565218c3fe778dd7083dc4fa4ccd593362c87bd7 34 | assets/packages/font_awesome_flutter/lib/fonts/fa-solid-900.ttf,1585313587000,33334b01ba02da2fde8fb8b943a6c76133b7a5533c2736798b67b6f4ba82644c 35 | icons/Icon-192.png,1591298212955,2517c32c4190a66b69e086b9f45fa768c196230b5cb74ee1e1747d0e53a4da19 36 | icons/Icon-512.png,1591298212955,d422043752f894d079752181a4fb90cdb81924b72d2a11887d9665ea837c5cee 37 | index.html,1591428177738,d180bea173ddd21bdbf72caf0b2e133f6493494d0400bc5b263e83d8c997872d 38 | flutter_service_worker.js,1591428227425,16a8833d4bd85b2978a6df4228824d45389b637550a71ad56796352a3e6e1522 39 | assets/FontManifest.json,1591428226403,81d3ed86cc26e6d8f8204fedb623d85a08d20bbde9a9e3c296271de754700c41 40 | assets/AssetManifest.json,1591428226402,07ce33b1c42476459de8071963b1afdf932329870e5c93b90a0d585857c4cf30 41 | assets/LICENSE,1591428226403,92223372a936143b53ed0eba57aa83a0a4326d2e9ef0a72945b4674418c1bfd5 42 | main.dart.js,1591428225284,fb390241f8c1c391f9433addb3b8217263a98ca986df128cd12efb623cfc8976 43 | main.dart.js.map,1591428225536,1d8c012d85e3a967eb1f87e1299cf0a4af2efb42e190dc7a5f39f77ff3a80abe 44 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Create a report to help us improve 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Describe the bug** 11 | A clear and concise description of what the bug is. 12 | 13 | **To Reproduce** 14 | Steps to reproduce the behavior: 15 | 1. Go to '...' 16 | 2. Click on '....' 17 | 3. Scroll down to '....' 18 | 4. See error 19 | 20 | **Expected behavior** 21 | A clear and concise description of what you expected to happen. 22 | 23 | **Screenshots** 24 | If applicable, add screenshots to help explain your problem. 25 | 26 | **Desktop (please complete the following information):** 27 | - OS: [e.g. iOS] 28 | - Browser [e.g. chrome, safari] 29 | - Version [e.g. 22] 30 | 31 | **Smartphone (please complete the following information):** 32 | - Device: [e.g. iPhone6] 33 | - OS: [e.g. iOS8.1] 34 | - Browser [e.g. stock browser, safari] 35 | - Version [e.g. 22] 36 | 37 | **Additional context** 38 | Add any other context about the problem here. 39 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea for this project 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Is your feature request related to a problem? Please describe.** 11 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] 12 | 13 | **Describe the solution you'd like** 14 | A clear and concise description of what you want to happen. 15 | 16 | **Describe alternatives you've considered** 17 | A clear and concise description of any alternative solutions or features you've considered. 18 | 19 | **Additional context** 20 | Add any other context or screenshots about the feature request here. 21 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Miscellaneous 2 | *.class 3 | *.log 4 | *.pyc 5 | *.swp 6 | .DS_Store 7 | .atom/ 8 | .buildlog/ 9 | .history 10 | .svn/ 11 | 12 | # IntelliJ related 13 | *.iml 14 | *.ipr 15 | *.iws 16 | .idea/ 17 | 18 | # The .vscode folder contains launch configuration and tasks you configure in 19 | # VS Code which you may wish to be included in version control, so this line 20 | # is commented out by default. 21 | #.vscode/ 22 | 23 | # Flutter/Dart/Pub related 24 | **/doc/api/ 25 | .dart_tool/ 26 | .flutter-plugins 27 | .flutter-plugins-dependencies 28 | .packages 29 | .pub-cache/ 30 | .pub/ 31 | /build/ 32 | 33 | # Web related 34 | lib/generated_plugin_registrant.dart 35 | 36 | # Symbolication related 37 | app.*.symbols 38 | 39 | # Obfuscation related 40 | app.*.map.json 41 | 42 | # Exceptions to above rules. 43 | !/packages/flutter_tools/test/data/dart_dependencies_test/**/.packages 44 | -------------------------------------------------------------------------------- /.metadata: -------------------------------------------------------------------------------- 1 | # This file tracks properties of this Flutter project. 2 | # Used by Flutter tool to assess capabilities and perform upgrades etc. 3 | # 4 | # This file should be version controlled and should not be manually edited. 5 | 6 | version: 7 | revision: 2a7bc389f28d83c581f7ddd4601588a22e12512e 8 | channel: beta 9 | 10 | project_type: app 11 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | BSD 3-Clause License 2 | 3 | Copyright (c) 2020, Flutter India 4 | All rights reserved. 5 | 6 | Redistribution and use in source and binary forms, with or without 7 | modification, are permitted provided that the following conditions are met: 8 | 9 | 1. Redistributions of source code must retain the above copyright notice, this 10 | list of conditions and the following disclaimer. 11 | 12 | 2. Redistributions in binary form must reproduce the above copyright notice, 13 | this list of conditions and the following disclaimer in the documentation 14 | and/or other materials provided with the distribution. 15 | 16 | 3. Neither the name of the copyright holder nor the names of its 17 | contributors may be used to endorse or promote products derived from 18 | this software without specific prior written permission. 19 | 20 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 21 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 22 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 23 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 24 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 25 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 26 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 27 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 28 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 29 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 30 | -------------------------------------------------------------------------------- /License.md: -------------------------------------------------------------------------------- 1 | # License 2 | 3 | The MIT License (MIT) 4 | 5 | Copyright (c) 2020 Yash Adulkar & Aditya Sutar 6 | 7 | Permission is hereby granted, free of charge, to any person obtaining a copy 8 | of this software and associated documentation files (the "Software"), to deal 9 | in the Software without restriction, including without limitation the rights 10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 11 | copies of the Software, and to permit persons to whom the Software is 12 | furnished to do so, subject to the following conditions: 13 | 14 | The above copyright notice and this permission notice shall be included in all 15 | copies or substantial portions of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 20 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 22 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 23 | SOFTWARE. 24 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # FLUTTER CONFERENCE INDIA 2020 WEBSITE 2 | 3 |

4 | 5 |

6 | 7 |

8 | :rocket:Get Started 9 |

10 | 11 | ## Overview 12 | Flutter India Website is a first community website which is completely developed using Flutter Web. 13 | It is made for Flutter India Community which will show all the updates about Flutter India Community. 14 | This is the repository of Flutter India Community. 15 | 16 | ### What is Flutter India 17 | Flutter India is an initiative of all the communities in India. 18 | The communities present under Flutter India are as follows: 19 | 1. Flutter Mumbai Community 20 | 2. Flutter Ahemdabad 21 | 3. Flutter Surat 22 | 4. Flutter Pune 23 | 5. Flutter Gwalior 24 | 6. Flutter Bangalore 25 | 7. Flutter Vadodara 26 | 8. Flutter Nagpur 27 | 9. Flutter Hyderabad 28 | 10. Flutter Kerala 29 | 30 | ## Technology Stack 31 | 32 | - Flutter 33 | - Firebase 34 | 35 | ## Getting Started 36 | 37 | 1. [Fork repository](https://github.com/elaishane/Flutter-India-Website/fork) and clone your fork locally 38 | 2. Install [Flutter](https://flutter.dev/docs/get-started/install) 39 | 3. Install [Android Studio / IntelliJ / VSCode](https://flutter.dev/docs/development/tools/android-studio) 40 | 41 | ## Contributing 42 | 43 | Awesome! Contributions of all kinds are greatly appreciated. To help smoothen the process we have a few non-exhaustive guidelines to follow which should get you going in no time. 44 | 45 | ### Using GitHub Issues 46 | 47 | - Feel free to use GitHub issues for questions, bug reports, and feature requests 48 | - Use the search feature to check for an existing issue 49 | - Include as much information as possible and provide any relevant resources (Eg. screenshots) 50 | - For bug reports ensure you have a reproducible test case 51 | - A pull request with a breaking test would be super preferable here but isn't required 52 | 53 | ### Submitting a Pull Request 54 | 55 | - Squash commits 56 | - Lint your code with eslint (config provided) 57 | - Include relevant test updates/additions 58 | 59 | ## Contributors 60 | 61 | [Yash Adulkar](https://github.com/elaishane) 62 | 63 | [Vivek Yadav](https://github.com/viveky259259) 64 | 65 | [Aditya Sutar](https://github.com/aditya305) 66 | 67 | [Aniket Chavan](https://github.com/ANIKET2017) 68 | 69 | 70 | 71 | ## License 72 | 73 | Project is published under [BSD 3-Clause License](LICENSE). 74 | 75 | ## Learning Resources 76 | A few resources to get you started if this is your first Flutter project: 77 | 78 | * [Lab: Write your first Flutter app](https://flutter.dev/docs/get-started/codelab) 79 | * [Cookbook: Useful Flutter samples](https://flutter.dev/docs/cookbook) 80 | 81 | For help getting started with Flutter, view Flutter 82 | [online documentation](https://flutter.dev/docs), which offers tutorials, 83 | samples, guidance on mobile development, and a full API reference. 84 | 85 | -------------------------------------------------------------------------------- /android/.gitignore: -------------------------------------------------------------------------------- 1 | gradle-wrapper.jar 2 | /.gradle 3 | /captures/ 4 | /gradlew 5 | /gradlew.bat 6 | /local.properties 7 | GeneratedPluginRegistrant.java 8 | -------------------------------------------------------------------------------- /android/app/build.gradle: -------------------------------------------------------------------------------- 1 | def localProperties = new Properties() 2 | def localPropertiesFile = rootProject.file('local.properties') 3 | if (localPropertiesFile.exists()) { 4 | localPropertiesFile.withReader('UTF-8') { reader -> 5 | localProperties.load(reader) 6 | } 7 | } 8 | 9 | def flutterRoot = localProperties.getProperty('flutter.sdk') 10 | if (flutterRoot == null) { 11 | throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.") 12 | } 13 | 14 | def flutterVersionCode = localProperties.getProperty('flutter.versionCode') 15 | if (flutterVersionCode == null) { 16 | flutterVersionCode = '1' 17 | } 18 | 19 | def flutterVersionName = localProperties.getProperty('flutter.versionName') 20 | if (flutterVersionName == null) { 21 | flutterVersionName = '1.0' 22 | } 23 | 24 | apply plugin: 'com.android.application' 25 | apply plugin: 'kotlin-android' 26 | apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle" 27 | 28 | android { 29 | compileSdkVersion 28 30 | 31 | sourceSets { 32 | main.java.srcDirs += 'src/main/kotlin' 33 | } 34 | 35 | lintOptions { 36 | disable 'InvalidPackage' 37 | } 38 | 39 | defaultConfig { 40 | // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). 41 | applicationId "com.estech.fluttercon" 42 | minSdkVersion 16 43 | targetSdkVersion 28 44 | versionCode flutterVersionCode.toInteger() 45 | versionName flutterVersionName 46 | } 47 | 48 | buildTypes { 49 | release { 50 | // TODO: Add your own signing config for the release build. 51 | // Signing with the debug keys for now, so `flutter run --release` works. 52 | signingConfig signingConfigs.debug 53 | } 54 | } 55 | } 56 | 57 | flutter { 58 | source '../..' 59 | } 60 | 61 | dependencies { 62 | implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" 63 | } 64 | -------------------------------------------------------------------------------- /android/app/src/debug/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /android/app/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | 8 | 12 | 19 | 23 | 27 | 32 | 36 | 37 | 38 | 39 | 40 | 41 | 43 | 46 | 47 | 48 | -------------------------------------------------------------------------------- /android/app/src/main/kotlin/com/estech/fluttercon/MainActivity.kt: -------------------------------------------------------------------------------- 1 | package com.estech.fluttercon 2 | 3 | import io.flutter.embedding.android.FlutterActivity 4 | 5 | class MainActivity: FlutterActivity() { 6 | } 7 | -------------------------------------------------------------------------------- /android/app/src/main/res/drawable/launch_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 12 | 13 | -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-India/Flutter-India-Conference-2020/dbb3395e8e623694791b2fd1414f87e5ac55c948/android/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-India/Flutter-India-Conference-2020/dbb3395e8e623694791b2fd1414f87e5ac55c948/android/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-India/Flutter-India-Conference-2020/dbb3395e8e623694791b2fd1414f87e5ac55c948/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-India/Flutter-India-Conference-2020/dbb3395e8e623694791b2fd1414f87e5ac55c948/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-India/Flutter-India-Conference-2020/dbb3395e8e623694791b2fd1414f87e5ac55c948/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 9 | 15 | 18 | 19 | -------------------------------------------------------------------------------- /android/app/src/profile/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /android/build.gradle: -------------------------------------------------------------------------------- 1 | buildscript { 2 | ext.kotlin_version = '1.3.50' 3 | repositories { 4 | google() 5 | jcenter() 6 | } 7 | 8 | dependencies { 9 | classpath 'com.android.tools.build:gradle:3.5.0' 10 | classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" 11 | } 12 | } 13 | 14 | allprojects { 15 | repositories { 16 | google() 17 | jcenter() 18 | } 19 | } 20 | 21 | rootProject.buildDir = '../build' 22 | subprojects { 23 | project.buildDir = "${rootProject.buildDir}/${project.name}" 24 | } 25 | subprojects { 26 | project.evaluationDependsOn(':app') 27 | } 28 | 29 | task clean(type: Delete) { 30 | delete rootProject.buildDir 31 | } 32 | -------------------------------------------------------------------------------- /android/gradle.properties: -------------------------------------------------------------------------------- 1 | org.gradle.jvmargs=-Xmx1536M 2 | android.enableR8=true 3 | android.useAndroidX=true 4 | android.enableJetifier=true 5 | -------------------------------------------------------------------------------- /android/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Fri Jun 23 08:50:38 CEST 2017 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.2-all.zip 7 | -------------------------------------------------------------------------------- /android/settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app' 2 | 3 | def flutterProjectRoot = rootProject.projectDir.parentFile.toPath() 4 | 5 | def plugins = new Properties() 6 | def pluginsFile = new File(flutterProjectRoot.toFile(), '.flutter-plugins') 7 | if (pluginsFile.exists()) { 8 | pluginsFile.withReader('UTF-8') { reader -> plugins.load(reader) } 9 | } 10 | 11 | plugins.each { name, path -> 12 | def pluginDirectory = flutterProjectRoot.resolve(path).resolve('android').toFile() 13 | include ":$name" 14 | project(":$name").projectDir = pluginDirectory 15 | } 16 | -------------------------------------------------------------------------------- /assets/Images/Logos/FlutterConLogos/Group_twenty.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-India/Flutter-India-Conference-2020/dbb3395e8e623694791b2fd1414f87e5ac55c948/assets/Images/Logos/FlutterConLogos/Group_twenty.png -------------------------------------------------------------------------------- /assets/Images/Logos/FlutterConLogos/Hello.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-India/Flutter-India-Conference-2020/dbb3395e8e623694791b2fd1414f87e5ac55c948/assets/Images/Logos/FlutterConLogos/Hello.png -------------------------------------------------------------------------------- /assets/Images/Logos/FlutterConLogos/Vector.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-India/Flutter-India-Conference-2020/dbb3395e8e623694791b2fd1414f87e5ac55c948/assets/Images/Logos/FlutterConLogos/Vector.png -------------------------------------------------------------------------------- /assets/Images/Logos/Organizer_Logo/flutter_surat_logo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-India/Flutter-India-Conference-2020/dbb3395e8e623694791b2fd1414f87e5ac55c948/assets/Images/Logos/Organizer_Logo/flutter_surat_logo.jpg -------------------------------------------------------------------------------- /assets/Images/Logos/Sponsors_Logo/slido_sponsor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-India/Flutter-India-Conference-2020/dbb3395e8e623694791b2fd1414f87e5ac55c948/assets/Images/Logos/Sponsors_Logo/slido_sponsor.png -------------------------------------------------------------------------------- /assets/Images/cover_Images/Twitter_Cover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-India/Flutter-India-Conference-2020/dbb3395e8e623694791b2fd1414f87e5ac55c948/assets/Images/cover_Images/Twitter_Cover.png -------------------------------------------------------------------------------- /assets/Images/cover_Images/cover_image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-India/Flutter-India-Conference-2020/dbb3395e8e623694791b2fd1414f87e5ac55c948/assets/Images/cover_Images/cover_image.png -------------------------------------------------------------------------------- /assets/Images/cover_Images/cover_image_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-India/Flutter-India-Conference-2020/dbb3395e8e623694791b2fd1414f87e5ac55c948/assets/Images/cover_Images/cover_image_1.png -------------------------------------------------------------------------------- /assets/Images/extra/doughnut.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-India/Flutter-India-Conference-2020/dbb3395e8e623694791b2fd1414f87e5ac55c948/assets/Images/extra/doughnut.png -------------------------------------------------------------------------------- /assets/Images/extra/newHomePage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-India/Flutter-India-Conference-2020/dbb3395e8e623694791b2fd1414f87e5ac55c948/assets/Images/extra/newHomePage.png -------------------------------------------------------------------------------- /assets/Images/extra/speaker.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-India/Flutter-India-Conference-2020/dbb3395e8e623694791b2fd1414f87e5ac55c948/assets/Images/extra/speaker.png -------------------------------------------------------------------------------- /assets/Images/extra/woman-discuss.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-India/Flutter-India-Conference-2020/dbb3395e8e623694791b2fd1414f87e5ac55c948/assets/Images/extra/woman-discuss.png -------------------------------------------------------------------------------- /assets/Images/socialIcons/GDG.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-India/Flutter-India-Conference-2020/dbb3395e8e623694791b2fd1414f87e5ac55c948/assets/Images/socialIcons/GDG.png -------------------------------------------------------------------------------- /assets/Images/socialIcons/add_to_slack.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-India/Flutter-India-Conference-2020/dbb3395e8e623694791b2fd1414f87e5ac55c948/assets/Images/socialIcons/add_to_slack.png -------------------------------------------------------------------------------- /assets/Images/socialIcons/facebook.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-India/Flutter-India-Conference-2020/dbb3395e8e623694791b2fd1414f87e5ac55c948/assets/Images/socialIcons/facebook.png -------------------------------------------------------------------------------- /assets/Images/socialIcons/meetup.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-India/Flutter-India-Conference-2020/dbb3395e8e623694791b2fd1414f87e5ac55c948/assets/Images/socialIcons/meetup.png -------------------------------------------------------------------------------- /assets/Images/socialIcons/slack.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-India/Flutter-India-Conference-2020/dbb3395e8e623694791b2fd1414f87e5ac55c948/assets/Images/socialIcons/slack.png -------------------------------------------------------------------------------- /assets/Images/socialIcons/slack_white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-India/Flutter-India-Conference-2020/dbb3395e8e623694791b2fd1414f87e5ac55c948/assets/Images/socialIcons/slack_white.png -------------------------------------------------------------------------------- /assets/Images/socialIcons/twitter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-India/Flutter-India-Conference-2020/dbb3395e8e623694791b2fd1414f87e5ac55c948/assets/Images/socialIcons/twitter.png -------------------------------------------------------------------------------- /assets/Images/socialIcons/youtube.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-India/Flutter-India-Conference-2020/dbb3395e8e623694791b2fd1414f87e5ac55c948/assets/Images/socialIcons/youtube.png -------------------------------------------------------------------------------- /assets/Images/socialIcons/youtube_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-India/Flutter-India-Conference-2020/dbb3395e8e623694791b2fd1414f87e5ac55c948/assets/Images/socialIcons/youtube_icon.png -------------------------------------------------------------------------------- /assets/Images/socialIcons/youtube_social_circle_red.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-India/Flutter-India-Conference-2020/dbb3395e8e623694791b2fd1414f87e5ac55c948/assets/Images/socialIcons/youtube_social_circle_red.png -------------------------------------------------------------------------------- /assets/fonts/ProductSans.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-India/Flutter-India-Conference-2020/dbb3395e8e623694791b2fd1414f87e5ac55c948/assets/fonts/ProductSans.ttf -------------------------------------------------------------------------------- /assets/fonts/djoker-state.regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-India/Flutter-India-Conference-2020/dbb3395e8e623694791b2fd1414f87e5ac55c948/assets/fonts/djoker-state.regular.ttf -------------------------------------------------------------------------------- /assets/fonts/flutter_con.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-India/Flutter-India-Conference-2020/dbb3395e8e623694791b2fd1414f87e5ac55c948/assets/fonts/flutter_con.png -------------------------------------------------------------------------------- /assets/fonts/newHomePage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-India/Flutter-India-Conference-2020/dbb3395e8e623694791b2fd1414f87e5ac55c948/assets/fonts/newHomePage.png -------------------------------------------------------------------------------- /assets/fonts/rockybilly.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-India/Flutter-India-Conference-2020/dbb3395e8e623694791b2fd1414f87e5ac55c948/assets/fonts/rockybilly.ttf -------------------------------------------------------------------------------- /assets/json/organizers.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "organizer_name": "Flutter Mumbai", 4 | "small_description": "Flutter Mumbai Community is all about learning and sharing knowledge about flutter and its related technologies.\nIf you are from a different background, you can join if you are enthusiastic about learning & sharing with fellow developers from Mumbai.", 5 | "logo": "https://pbs.twimg.com/profile_images/1247898189157392393/w8lhWOiy_400x400.jpg", 6 | "twitter_handle": "https://twitter.com/MumbaiFlutter", 7 | "facebook_handle": "https://www.facebook.com/fluttermumbai", 8 | "meetup_handle": "https://www.meetup.com/Mumbai-Flutter", 9 | "instagram_handle": "https://www.instagram.com/mumbaiflutter" 10 | }, 11 | { 12 | "organizer_name": "Flutter Ahemdabad", 13 | "small_description": "Software Development has been divided for long. Flutter lets us build beautiful Mobile, Web and Desktop applications in record time. Whether you are just starting a new Flutter project, or an experienced dev looking to discuss advanced topics, this is where you belong!", 14 | "logo": "https://pbs.twimg.com/profile_images/1114166773081751553/stpi_ORK_400x400.png", 15 | "twitter_handle": "https://twitter.com/flutterahm", 16 | "facebook_handle": "", 17 | "meetup_handle": "https://www.meetup.com/FlutterAHM", 18 | "instagram_handle": "" 19 | }, 20 | { 21 | "organizer_name": "Flutter Vadodara", 22 | "small_description": "", 23 | "logo": "https://pbs.twimg.com/profile_images/1161536509910106112/HxxZMlRw_400x400.jpg", 24 | "twitter_handle": "https://twitter.com/fluttervadodara", 25 | "facebook_handle": "", 26 | "meetup_handle": "", 27 | "instagram_handle": "" 28 | }, 29 | { 30 | "organizer_name": "Flutter Nagpur", 31 | "small_description": "Calling all Flutter enthusiasts! Let's meet with developers from Nagpur eager to learn or share your knowledge on Flutter, meet people with brilliant skills and mindsets! We'll meet atleast once a month to share what we have been doing with each other, helping everyone progress 10x faster.", 32 | "logo": "https://pbs.twimg.com/profile_images/1194299541555531776/oOdXL79I_400x400.png", 33 | "twitter_handle": "https://twitter.com/FlutterNagpur", 34 | "facebook_handle": "", 35 | "meetup_handle": "https://www.meetup.com/flutterngp", 36 | "instagram_handle": "" 37 | }, 38 | { 39 | "organizer_name": "Flutter Gwalior", 40 | "small_description": "Flutter Gwalior is a group of enthusiastic Flutter developers who love creating beautiful apps with Flutter. We provide a platform for developers and enthusiasts either working within the Android ecosystem or interested in learning more about Android to collaborate and network among each other.", 41 | "logo": "https://pbs.twimg.com/profile_images/1199339298513809416/IaibpwR-_400x400.jpg", 42 | "twitter_handle": "https://twitter.com/FlutterGWL", 43 | "facebook_handle": "https://www.facebook.com/FlutterGWL", 44 | "meetup_handle": "https://www.meetup.com/Gwalior-Flutter-Meetup-Group", 45 | "instagram_handle": "" 46 | }, 47 | { 48 | "organizer_name": "Flutter Pune", 49 | "small_description": "Flutter Pune Development Meetup group is focused on the flutter mobile framework by Google.\nWe believe Flutter is going to change the way native mobile apps are developed. Come be a part of this journey with us.", 50 | "logo": "https://pbs.twimg.com/profile_images/1134686935056769025/dkPN78qX_400x400.png", 51 | "twitter_handle": "https://twitter.com/flutterpune", 52 | "facebook_handle": "", 53 | "meetup_handle": "https://www.meetup.com/Flutter-Pune-Development-Meetup/", 54 | "instagram_handle": "" 55 | }, 56 | { 57 | "organizer_name": "Flutter Bangalore", 58 | "small_description": "This group is for mobile app developers who work with Google Flutter, who want to learn or are simply curious about it.", 59 | "logo": "https://pbs.twimg.com/profile_images/1015275215444742144/jV2vHT7M_400x400.jpg", 60 | "twitter_handle": "https://twitter.com/flutterblr", 61 | "facebook_handle": "https://www.facebook.com/flutterbangalore", 62 | "meetup_handle": "https://www.meetup.com/flutter-bangalore-group", 63 | "instagram_handle": "" 64 | }, 65 | { 66 | "organizer_name": "Flutter Hyderabad", 67 | "small_description": "A place where developers can discuss the latest and best of Flutter.", 68 | "logo": "https://pbs.twimg.com/profile_images/1138681198081761280/ZCnOMyFx_400x400.jpg", 69 | "twitter_handle": "", 70 | "facebook_handle": "", 71 | "meetup_handle": "https://www.meetup.com/Flutter-Hyderabad", 72 | "instagram_handle": "" 73 | }, 74 | { 75 | "organizer_name": "Flutter Surat", 76 | "small_description": "We are a community of passionate developers interested in sharing our experiences in building mobile apps using Flutter.\nA place where developers can discuss the latest and best of Flutter.", 77 | "logo": "https://pbs.twimg.com/profile_images/1138681198081761280/ZCnOMyFx_400x400.jpg", 78 | "twitter_handle": "https://twitter.com/fluttersurat", 79 | "facebook_handle": "https://www.facebook.com/fluttersurat", 80 | "meetup_handle": "https://www.meetup.com/FlutterSurat", 81 | "instagram_handle": "" 82 | } 83 | ] 84 | -------------------------------------------------------------------------------- /assets/json/speakers.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "Speaker_name": "Nilay Yener", 4 | "Speaker_bio": "Program Manger Flutter and Dart DevRel at Google", 5 | "logo": "https://i.ibb.co/YPGk4ts/1538867099796.jpg", 6 | "twitter_handle": "https://twitter.com/nlycskn" 7 | }, 8 | { 9 | "Speaker_name": "Dominik Roszkowski", 10 | "Speaker_bio": "Flutter Freelancer, PW-Sat2 Deputy Manager", 11 | "logo": "https://i.ibb.co/Wx2TLR4/1605258985165.jpg", 12 | "twitter_handle": "https://twitter.com/OrestesGaolin" 13 | }, 14 | { 15 | "Speaker_name": "Hasnen Tai", 16 | "Speaker_bio": "Founder of YouTube channel Trending Codes", 17 | "logo": "https://i.ibb.co/bRmnbVX/1577189169479.jpg", 18 | "twitter_handle": "https://twitter.com/voidnen" 19 | }, 20 | { 21 | "Speaker_name": "Gazihan Alankus", 22 | "Speaker_bio": "Dart GDE, Assistant Professor, Founder of GBot LLC.", 23 | "logo": "https://i.ibb.co/ZdKzwyk/412997.jpg", 24 | "twitter_handle": "https://twitter.com/gazialankus" 25 | }, 26 | { 27 | "Speaker_name": "Bhavesh Daswani", 28 | "Speaker_bio": "Full Stack Developer", 29 | "logo": "https://i.ibb.co/t21GP9v/1593144268626.jpg", 30 | "twitter_handle": "https://twitter.com/digitaldaswani" 31 | }, 32 | { 33 | "Speaker_name": "Will Larche", 34 | "Speaker_bio": "Software Engineering Manager at Google", 35 | "logo": "https://i.ibb.co/5xvMjgv/1564173203214.jpg", 36 | "twitter_handle": "https://www.linkedin.com/in/will-larche" 37 | }, 38 | { 39 | "Speaker_name": "Majid Hajian", 40 | "Speaker_bio": "ProgressiveHumble", 41 | "logo": "https://i.ibb.co/vD26Pvc/1613316921147.jpg", 42 | "twitter_handle": "https://twitter.com/mhadaily" 43 | }, 44 | { 45 | "Speaker_name": "Deven Joshi", 46 | "Speaker_bio": "Senior Developer at BaitFinder", 47 | "logo": "https://i.ibb.co/DL1dfg9/1550405718408.jpg", 48 | "twitter_handle": "https://twitter.com/DevenJoshi7" 49 | }, 50 | { 51 | "Speaker_name": "Pooja Bhaumik", 52 | "Speaker_bio": "Flutter GDE", 53 | "logo": "https://i.ibb.co/DtjL0Jn/1553373963950.jpg", 54 | "twitter_handle": "https://twitter.com/pblead26" 55 | }, 56 | { 57 | "Speaker_name": "Nikita Gandhi", 58 | "Speaker_bio": "Community Manager at Google DevRel India", 59 | "logo": "https://i.ibb.co/kgwsrWc/1578467205054.jpg", 60 | "twitter_handle": "https://twitter.com/Nikkitagandhi" 61 | } 62 | ] 63 | 64 | 65 | -------------------------------------------------------------------------------- /contributing.md: -------------------------------------------------------------------------------- 1 | # Contributing 2 | 3 | Awesome! Contributions of all kinds are greatly appreciated. To help smoothen the process we have a few non-exhaustive guidelines to follow which should get you going in no time. 4 | 5 | ## Using GitHub Issues 6 | 7 | - Feel free to use GitHub issues for questions, bug reports, and feature requests 8 | - Use the search feature to check for an existing issue 9 | - Include as much information as possible and provide any relevant resources (Eg. screenshots) 10 | - For bug reports ensure you have a reproducible test case 11 | - A pull request with a breaking test would be super preferable here but isn't required 12 | 13 | ## Getting Started 14 | - Fork the repository 15 | - Send your commits 16 | - Submit a Pull request 17 | 18 | 19 | -------------------------------------------------------------------------------- /github_images/poster.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-India/Flutter-India-Conference-2020/dbb3395e8e623694791b2fd1414f87e5ac55c948/github_images/poster.png -------------------------------------------------------------------------------- /ios/.gitignore: -------------------------------------------------------------------------------- 1 | *.mode1v3 2 | *.mode2v3 3 | *.moved-aside 4 | *.pbxuser 5 | *.perspectivev3 6 | **/*sync/ 7 | .sconsign.dblite 8 | .tags* 9 | **/.vagrant/ 10 | **/DerivedData/ 11 | Icon? 12 | **/Pods/ 13 | **/.symlinks/ 14 | profile 15 | xcuserdata 16 | **/.generated/ 17 | Flutter/App.framework 18 | Flutter/Flutter.framework 19 | Flutter/Flutter.podspec 20 | Flutter/Generated.xcconfig 21 | Flutter/app.flx 22 | Flutter/app.zip 23 | Flutter/flutter_assets/ 24 | Flutter/flutter_export_environment.sh 25 | ServiceDefinitions.json 26 | Runner/GeneratedPluginRegistrant.* 27 | 28 | # Exceptions to above rules. 29 | !default.mode1v3 30 | !default.mode2v3 31 | !default.pbxuser 32 | !default.perspectivev3 33 | -------------------------------------------------------------------------------- /ios/Flutter/AppFrameworkInfo.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 7 | CFBundleExecutable 8 | App 9 | CFBundleIdentifier 10 | io.flutter.flutter.app 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | App 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1.0 23 | MinimumOSVersion 24 | 8.0 25 | 26 | 27 | -------------------------------------------------------------------------------- /ios/Flutter/Debug.xcconfig: -------------------------------------------------------------------------------- 1 | #include "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig" 2 | #include "Generated.xcconfig" 3 | -------------------------------------------------------------------------------- /ios/Flutter/Release.xcconfig: -------------------------------------------------------------------------------- 1 | #include "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig" 2 | #include "Generated.xcconfig" 3 | -------------------------------------------------------------------------------- /ios/Podfile: -------------------------------------------------------------------------------- 1 | # Uncomment this line to define a global platform for your project 2 | # platform :ios, '9.0' 3 | 4 | # CocoaPods analytics sends network stats synchronously affecting flutter build latency. 5 | ENV['COCOAPODS_DISABLE_STATS'] = 'true' 6 | 7 | project 'Runner', { 8 | 'Debug' => :debug, 9 | 'Profile' => :release, 10 | 'Release' => :release, 11 | } 12 | 13 | def parse_KV_file(file, separator='=') 14 | file_abs_path = File.expand_path(file) 15 | if !File.exists? file_abs_path 16 | return []; 17 | end 18 | generated_key_values = {} 19 | skip_line_start_symbols = ["#", "/"] 20 | File.foreach(file_abs_path) do |line| 21 | next if skip_line_start_symbols.any? { |symbol| line =~ /^\s*#{symbol}/ } 22 | plugin = line.split(pattern=separator) 23 | if plugin.length == 2 24 | podname = plugin[0].strip() 25 | path = plugin[1].strip() 26 | podpath = File.expand_path("#{path}", file_abs_path) 27 | generated_key_values[podname] = podpath 28 | else 29 | puts "Invalid plugin specification: #{line}" 30 | end 31 | end 32 | generated_key_values 33 | end 34 | 35 | target 'Runner' do 36 | use_frameworks! 37 | use_modular_headers! 38 | 39 | # Flutter Pod 40 | 41 | copied_flutter_dir = File.join(__dir__, 'Flutter') 42 | copied_framework_path = File.join(copied_flutter_dir, 'Flutter.framework') 43 | copied_podspec_path = File.join(copied_flutter_dir, 'Flutter.podspec') 44 | unless File.exist?(copied_framework_path) && File.exist?(copied_podspec_path) 45 | # Copy Flutter.framework and Flutter.podspec to Flutter/ to have something to link against if the xcode backend script has not run yet. 46 | # That script will copy the correct debug/profile/release version of the framework based on the currently selected Xcode configuration. 47 | # CocoaPods will not embed the framework on pod install (before any build phases can generate) if the dylib does not exist. 48 | 49 | generated_xcode_build_settings_path = File.join(copied_flutter_dir, 'Generated.xcconfig') 50 | unless File.exist?(generated_xcode_build_settings_path) 51 | raise "Generated.xcconfig must exist. If you're running pod install manually, make sure flutter pub get is executed first" 52 | end 53 | generated_xcode_build_settings = parse_KV_file(generated_xcode_build_settings_path) 54 | cached_framework_dir = generated_xcode_build_settings['FLUTTER_FRAMEWORK_DIR']; 55 | 56 | unless File.exist?(copied_framework_path) 57 | FileUtils.cp_r(File.join(cached_framework_dir, 'Flutter.framework'), copied_flutter_dir) 58 | end 59 | unless File.exist?(copied_podspec_path) 60 | FileUtils.cp(File.join(cached_framework_dir, 'Flutter.podspec'), copied_flutter_dir) 61 | end 62 | end 63 | 64 | # Keep pod path relative so it can be checked into Podfile.lock. 65 | pod 'Flutter', :path => 'Flutter' 66 | 67 | # Plugin Pods 68 | 69 | # Prepare symlinks folder. We use symlinks to avoid having Podfile.lock 70 | # referring to absolute paths on developers' machines. 71 | system('rm -rf .symlinks') 72 | system('mkdir -p .symlinks/plugins') 73 | plugin_pods = parse_KV_file('../.flutter-plugins') 74 | plugin_pods.each do |name, path| 75 | symlink = File.join('.symlinks', 'plugins', name) 76 | File.symlink(path, symlink) 77 | pod name, :path => File.join(symlink, 'ios') 78 | end 79 | end 80 | 81 | post_install do |installer| 82 | installer.pods_project.targets.each do |target| 83 | target.build_configurations.each do |config| 84 | config.build_settings['ENABLE_BITCODE'] = 'NO' 85 | end 86 | end 87 | end 88 | -------------------------------------------------------------------------------- /ios/Podfile.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - Firebase/Core (6.23.0): 3 | - Firebase/CoreOnly 4 | - FirebaseAnalytics (= 6.4.2) 5 | - Firebase/CoreOnly (6.23.0): 6 | - FirebaseCore (= 6.6.7) 7 | - Firebase/Storage (6.23.0): 8 | - Firebase/CoreOnly 9 | - FirebaseStorage (~> 3.6.1) 10 | - firebase_core (0.0.1): 11 | - Firebase/Core 12 | - Flutter 13 | - firebase_core_web (0.1.0): 14 | - Flutter 15 | - firebase_storage (0.0.1): 16 | - Firebase/Storage 17 | - Flutter 18 | - FirebaseAnalytics (6.4.2): 19 | - FirebaseCore (~> 6.6) 20 | - FirebaseInstallations (~> 1.2) 21 | - GoogleAppMeasurement (= 6.4.2) 22 | - GoogleUtilities/AppDelegateSwizzler (~> 6.0) 23 | - GoogleUtilities/MethodSwizzler (~> 6.0) 24 | - GoogleUtilities/Network (~> 6.0) 25 | - "GoogleUtilities/NSData+zlib (~> 6.0)" 26 | - nanopb (= 0.3.9011) 27 | - FirebaseAuthInterop (1.1.0) 28 | - FirebaseCore (6.6.7): 29 | - FirebaseCoreDiagnostics (~> 1.2) 30 | - FirebaseCoreDiagnosticsInterop (~> 1.2) 31 | - GoogleUtilities/Environment (~> 6.5) 32 | - GoogleUtilities/Logger (~> 6.5) 33 | - FirebaseCoreDiagnostics (1.2.4): 34 | - FirebaseCoreDiagnosticsInterop (~> 1.2) 35 | - GoogleDataTransportCCTSupport (~> 3.0) 36 | - GoogleUtilities/Environment (~> 6.5) 37 | - GoogleUtilities/Logger (~> 6.5) 38 | - nanopb (~> 0.3.901) 39 | - FirebaseCoreDiagnosticsInterop (1.2.0) 40 | - FirebaseInstallations (1.2.0): 41 | - FirebaseCore (~> 6.6) 42 | - GoogleUtilities/Environment (~> 6.6) 43 | - GoogleUtilities/UserDefaults (~> 6.6) 44 | - PromisesObjC (~> 1.2) 45 | - FirebaseStorage (3.6.1): 46 | - FirebaseAuthInterop (~> 1.1) 47 | - FirebaseCore (~> 6.6) 48 | - GTMSessionFetcher/Core (~> 1.1) 49 | - Flutter (1.0.0) 50 | - FMDB (2.7.5): 51 | - FMDB/standard (= 2.7.5) 52 | - FMDB/standard (2.7.5) 53 | - GoogleAppMeasurement (6.4.2): 54 | - GoogleUtilities/AppDelegateSwizzler (~> 6.0) 55 | - GoogleUtilities/MethodSwizzler (~> 6.0) 56 | - GoogleUtilities/Network (~> 6.0) 57 | - "GoogleUtilities/NSData+zlib (~> 6.0)" 58 | - nanopb (= 0.3.9011) 59 | - GoogleDataTransport (6.0.0) 60 | - GoogleDataTransportCCTSupport (3.0.0): 61 | - GoogleDataTransport (~> 6.0) 62 | - nanopb (~> 0.3.901) 63 | - GoogleUtilities/AppDelegateSwizzler (6.6.0): 64 | - GoogleUtilities/Environment 65 | - GoogleUtilities/Logger 66 | - GoogleUtilities/Network 67 | - GoogleUtilities/Environment (6.6.0): 68 | - PromisesObjC (~> 1.2) 69 | - GoogleUtilities/Logger (6.6.0): 70 | - GoogleUtilities/Environment 71 | - GoogleUtilities/MethodSwizzler (6.6.0): 72 | - GoogleUtilities/Logger 73 | - GoogleUtilities/Network (6.6.0): 74 | - GoogleUtilities/Logger 75 | - "GoogleUtilities/NSData+zlib" 76 | - GoogleUtilities/Reachability 77 | - "GoogleUtilities/NSData+zlib (6.6.0)" 78 | - GoogleUtilities/Reachability (6.6.0): 79 | - GoogleUtilities/Logger 80 | - GoogleUtilities/UserDefaults (6.6.0): 81 | - GoogleUtilities/Logger 82 | - GTMSessionFetcher/Core (1.3.1) 83 | - nanopb (0.3.9011): 84 | - nanopb/decode (= 0.3.9011) 85 | - nanopb/encode (= 0.3.9011) 86 | - nanopb/decode (0.3.9011) 87 | - nanopb/encode (0.3.9011) 88 | - path_provider (0.0.1): 89 | - Flutter 90 | - path_provider_macos (0.0.1): 91 | - Flutter 92 | - PromisesObjC (1.2.8) 93 | - share (0.0.1): 94 | - Flutter 95 | - sqflite (0.0.1): 96 | - Flutter 97 | - FMDB (~> 2.7.2) 98 | - url_launcher (0.0.1): 99 | - Flutter 100 | - url_launcher_macos (0.0.1): 101 | - Flutter 102 | - url_launcher_web (0.0.1): 103 | - Flutter 104 | 105 | DEPENDENCIES: 106 | - firebase_core (from `.symlinks/plugins/firebase_core/ios`) 107 | - firebase_core_web (from `.symlinks/plugins/firebase_core_web/ios`) 108 | - firebase_storage (from `.symlinks/plugins/firebase_storage/ios`) 109 | - Flutter (from `Flutter`) 110 | - path_provider (from `.symlinks/plugins/path_provider/ios`) 111 | - path_provider_macos (from `.symlinks/plugins/path_provider_macos/ios`) 112 | - share (from `.symlinks/plugins/share/ios`) 113 | - sqflite (from `.symlinks/plugins/sqflite/ios`) 114 | - url_launcher (from `.symlinks/plugins/url_launcher/ios`) 115 | - url_launcher_macos (from `.symlinks/plugins/url_launcher_macos/ios`) 116 | - url_launcher_web (from `.symlinks/plugins/url_launcher_web/ios`) 117 | 118 | SPEC REPOS: 119 | trunk: 120 | - Firebase 121 | - FirebaseAnalytics 122 | - FirebaseAuthInterop 123 | - FirebaseCore 124 | - FirebaseCoreDiagnostics 125 | - FirebaseCoreDiagnosticsInterop 126 | - FirebaseInstallations 127 | - FirebaseStorage 128 | - FMDB 129 | - GoogleAppMeasurement 130 | - GoogleDataTransport 131 | - GoogleDataTransportCCTSupport 132 | - GoogleUtilities 133 | - GTMSessionFetcher 134 | - nanopb 135 | - PromisesObjC 136 | 137 | EXTERNAL SOURCES: 138 | firebase_core: 139 | :path: ".symlinks/plugins/firebase_core/ios" 140 | firebase_core_web: 141 | :path: ".symlinks/plugins/firebase_core_web/ios" 142 | firebase_storage: 143 | :path: ".symlinks/plugins/firebase_storage/ios" 144 | Flutter: 145 | :path: Flutter 146 | path_provider: 147 | :path: ".symlinks/plugins/path_provider/ios" 148 | path_provider_macos: 149 | :path: ".symlinks/plugins/path_provider_macos/ios" 150 | share: 151 | :path: ".symlinks/plugins/share/ios" 152 | sqflite: 153 | :path: ".symlinks/plugins/sqflite/ios" 154 | url_launcher: 155 | :path: ".symlinks/plugins/url_launcher/ios" 156 | url_launcher_macos: 157 | :path: ".symlinks/plugins/url_launcher_macos/ios" 158 | url_launcher_web: 159 | :path: ".symlinks/plugins/url_launcher_web/ios" 160 | 161 | SPEC CHECKSUMS: 162 | Firebase: 585ae467b3edda6a5444e788fda6888f024d8d6f 163 | firebase_core: 0d8be0e0d14c4902953aeb5ac5d7316d1fe4b978 164 | firebase_core_web: d501d8b946b60c8af265428ce483b0fff5ad52d1 165 | firebase_storage: 5e931af5cdef32331676c659bdd1ebcaba9dc78a 166 | FirebaseAnalytics: 558f7a03d19de451093032c806f39d5f9dff096e 167 | FirebaseAuthInterop: a0f37ae05833af156e72028f648d313f7e7592e9 168 | FirebaseCore: a2788a0d5f6c1dff17b8f79b4a73654a8d4bfdbd 169 | FirebaseCoreDiagnostics: b59c024493a409f8aecba02c99928d0d8431d159 170 | FirebaseCoreDiagnosticsInterop: 296e2c5f5314500a850ad0b83e9e7c10b011a850 171 | FirebaseInstallations: 2119fb3e46b0a88bfdbf12562f855ee3252462fa 172 | FirebaseStorage: f4f39ae834a7145963b913f54e2f24a9db1d8fac 173 | Flutter: 0e3d915762c693b495b44d77113d4970485de6ec 174 | FMDB: 2ce00b547f966261cd18927a3ddb07cb6f3db82a 175 | GoogleAppMeasurement: 2253e99c1f22638cf234c059144660c338ad76c3 176 | GoogleDataTransport: 061fe7d9b476710e3cd8ea51e8e07d8b67c2b420 177 | GoogleDataTransportCCTSupport: 0f39025e8cf51f168711bd3fb773938d7e62ddb5 178 | GoogleUtilities: 39530bc0ad980530298e9c4af8549e991fd033b1 179 | GTMSessionFetcher: cea130bbfe5a7edc8d06d3f0d17288c32ffe9925 180 | nanopb: 18003b5e52dab79db540fe93fe9579f399bd1ccd 181 | path_provider: abfe2b5c733d04e238b0d8691db0cfd63a27a93c 182 | path_provider_macos: f760a3c5b04357c380e2fddb6f9db6f3015897e0 183 | PromisesObjC: c119f3cd559f50b7ae681fa59dc1acd19173b7e6 184 | share: 0b2c3e82132f5888bccca3351c504d0003b3b410 185 | sqflite: 4001a31ff81d210346b500c55b17f4d6c7589dd0 186 | url_launcher: 6fef411d543ceb26efce54b05a0a40bfd74cbbef 187 | url_launcher_macos: fd7894421cd39320dce5f292fc99ea9270b2a313 188 | url_launcher_web: e5527357f037c87560776e36436bf2b0288b965c 189 | 190 | PODFILE CHECKSUM: c34e2287a9ccaa606aeceab922830efb9a6ff69a 191 | 192 | COCOAPODS: 1.9.1 193 | -------------------------------------------------------------------------------- /ios/Runner.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 46; 7 | objects = { 8 | 9 | /* Begin PBXBuildFile section */ 10 | 0CE61C3CD28A7A220EAE68AF /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2917C03AC9EF8ED11B9C73C0 /* Pods_Runner.framework */; }; 11 | 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; 12 | 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; 13 | 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; }; 14 | 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; }; 15 | 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; }; 16 | 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; }; 17 | /* End PBXBuildFile section */ 18 | 19 | /* Begin PBXCopyFilesBuildPhase section */ 20 | 9705A1C41CF9048500538489 /* Embed Frameworks */ = { 21 | isa = PBXCopyFilesBuildPhase; 22 | buildActionMask = 2147483647; 23 | dstPath = ""; 24 | dstSubfolderSpec = 10; 25 | files = ( 26 | ); 27 | name = "Embed Frameworks"; 28 | runOnlyForDeploymentPostprocessing = 0; 29 | }; 30 | /* End PBXCopyFilesBuildPhase section */ 31 | 32 | /* Begin PBXFileReference section */ 33 | 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; }; 34 | 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; }; 35 | 2917C03AC9EF8ED11B9C73C0 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 36 | 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; 37 | 41753F996C31519E4622A05E /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; 38 | 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = ""; }; 39 | 74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; 40 | 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; }; 41 | 8B65C328E27DDD495C8D7E1E /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; }; 42 | 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; }; 43 | 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; }; 44 | 97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; }; 45 | 97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; 46 | 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 47 | 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; 48 | 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 49 | DC72EA2A911AFDED653016A6 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; }; 50 | /* End PBXFileReference section */ 51 | 52 | /* Begin PBXFrameworksBuildPhase section */ 53 | 97C146EB1CF9000F007C117D /* Frameworks */ = { 54 | isa = PBXFrameworksBuildPhase; 55 | buildActionMask = 2147483647; 56 | files = ( 57 | 0CE61C3CD28A7A220EAE68AF /* Pods_Runner.framework in Frameworks */, 58 | ); 59 | runOnlyForDeploymentPostprocessing = 0; 60 | }; 61 | /* End PBXFrameworksBuildPhase section */ 62 | 63 | /* Begin PBXGroup section */ 64 | 3D7546E9BE4B446F36FF54F6 /* Pods */ = { 65 | isa = PBXGroup; 66 | children = ( 67 | 41753F996C31519E4622A05E /* Pods-Runner.debug.xcconfig */, 68 | 8B65C328E27DDD495C8D7E1E /* Pods-Runner.release.xcconfig */, 69 | DC72EA2A911AFDED653016A6 /* Pods-Runner.profile.xcconfig */, 70 | ); 71 | name = Pods; 72 | path = Pods; 73 | sourceTree = ""; 74 | }; 75 | 9740EEB11CF90186004384FC /* Flutter */ = { 76 | isa = PBXGroup; 77 | children = ( 78 | 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */, 79 | 9740EEB21CF90195004384FC /* Debug.xcconfig */, 80 | 7AFA3C8E1D35360C0083082E /* Release.xcconfig */, 81 | 9740EEB31CF90195004384FC /* Generated.xcconfig */, 82 | ); 83 | name = Flutter; 84 | sourceTree = ""; 85 | }; 86 | 97C146E51CF9000F007C117D = { 87 | isa = PBXGroup; 88 | children = ( 89 | 9740EEB11CF90186004384FC /* Flutter */, 90 | 97C146F01CF9000F007C117D /* Runner */, 91 | 97C146EF1CF9000F007C117D /* Products */, 92 | 3D7546E9BE4B446F36FF54F6 /* Pods */, 93 | EFEFC5EB55357EEFF5484B0B /* Frameworks */, 94 | ); 95 | sourceTree = ""; 96 | }; 97 | 97C146EF1CF9000F007C117D /* Products */ = { 98 | isa = PBXGroup; 99 | children = ( 100 | 97C146EE1CF9000F007C117D /* Runner.app */, 101 | ); 102 | name = Products; 103 | sourceTree = ""; 104 | }; 105 | 97C146F01CF9000F007C117D /* Runner */ = { 106 | isa = PBXGroup; 107 | children = ( 108 | 97C146FA1CF9000F007C117D /* Main.storyboard */, 109 | 97C146FD1CF9000F007C117D /* Assets.xcassets */, 110 | 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */, 111 | 97C147021CF9000F007C117D /* Info.plist */, 112 | 97C146F11CF9000F007C117D /* Supporting Files */, 113 | 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */, 114 | 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */, 115 | 74858FAE1ED2DC5600515810 /* AppDelegate.swift */, 116 | 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */, 117 | ); 118 | path = Runner; 119 | sourceTree = ""; 120 | }; 121 | 97C146F11CF9000F007C117D /* Supporting Files */ = { 122 | isa = PBXGroup; 123 | children = ( 124 | ); 125 | name = "Supporting Files"; 126 | sourceTree = ""; 127 | }; 128 | EFEFC5EB55357EEFF5484B0B /* Frameworks */ = { 129 | isa = PBXGroup; 130 | children = ( 131 | 2917C03AC9EF8ED11B9C73C0 /* Pods_Runner.framework */, 132 | ); 133 | name = Frameworks; 134 | sourceTree = ""; 135 | }; 136 | /* End PBXGroup section */ 137 | 138 | /* Begin PBXNativeTarget section */ 139 | 97C146ED1CF9000F007C117D /* Runner */ = { 140 | isa = PBXNativeTarget; 141 | buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; 142 | buildPhases = ( 143 | 201E27A497AF06632872D05E /* [CP] Check Pods Manifest.lock */, 144 | 9740EEB61CF901F6004384FC /* Run Script */, 145 | 97C146EA1CF9000F007C117D /* Sources */, 146 | 97C146EB1CF9000F007C117D /* Frameworks */, 147 | 97C146EC1CF9000F007C117D /* Resources */, 148 | 9705A1C41CF9048500538489 /* Embed Frameworks */, 149 | 3B06AD1E1E4923F5004D2608 /* Thin Binary */, 150 | 89F67858B367B44A9432E6ED /* [CP] Embed Pods Frameworks */, 151 | ); 152 | buildRules = ( 153 | ); 154 | dependencies = ( 155 | ); 156 | name = Runner; 157 | productName = Runner; 158 | productReference = 97C146EE1CF9000F007C117D /* Runner.app */; 159 | productType = "com.apple.product-type.application"; 160 | }; 161 | /* End PBXNativeTarget section */ 162 | 163 | /* Begin PBXProject section */ 164 | 97C146E61CF9000F007C117D /* Project object */ = { 165 | isa = PBXProject; 166 | attributes = { 167 | LastUpgradeCheck = 1020; 168 | ORGANIZATIONNAME = ""; 169 | TargetAttributes = { 170 | 97C146ED1CF9000F007C117D = { 171 | CreatedOnToolsVersion = 7.3.1; 172 | LastSwiftMigration = 1100; 173 | }; 174 | }; 175 | }; 176 | buildConfigurationList = 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */; 177 | compatibilityVersion = "Xcode 9.3"; 178 | developmentRegion = en; 179 | hasScannedForEncodings = 0; 180 | knownRegions = ( 181 | en, 182 | Base, 183 | ); 184 | mainGroup = 97C146E51CF9000F007C117D; 185 | productRefGroup = 97C146EF1CF9000F007C117D /* Products */; 186 | projectDirPath = ""; 187 | projectRoot = ""; 188 | targets = ( 189 | 97C146ED1CF9000F007C117D /* Runner */, 190 | ); 191 | }; 192 | /* End PBXProject section */ 193 | 194 | /* Begin PBXResourcesBuildPhase section */ 195 | 97C146EC1CF9000F007C117D /* Resources */ = { 196 | isa = PBXResourcesBuildPhase; 197 | buildActionMask = 2147483647; 198 | files = ( 199 | 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */, 200 | 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */, 201 | 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */, 202 | 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */, 203 | ); 204 | runOnlyForDeploymentPostprocessing = 0; 205 | }; 206 | /* End PBXResourcesBuildPhase section */ 207 | 208 | /* Begin PBXShellScriptBuildPhase section */ 209 | 201E27A497AF06632872D05E /* [CP] Check Pods Manifest.lock */ = { 210 | isa = PBXShellScriptBuildPhase; 211 | buildActionMask = 2147483647; 212 | files = ( 213 | ); 214 | inputFileListPaths = ( 215 | ); 216 | inputPaths = ( 217 | "${PODS_PODFILE_DIR_PATH}/Podfile.lock", 218 | "${PODS_ROOT}/Manifest.lock", 219 | ); 220 | name = "[CP] Check Pods Manifest.lock"; 221 | outputFileListPaths = ( 222 | ); 223 | outputPaths = ( 224 | "$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt", 225 | ); 226 | runOnlyForDeploymentPostprocessing = 0; 227 | shellPath = /bin/sh; 228 | shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; 229 | showEnvVarsInLog = 0; 230 | }; 231 | 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { 232 | isa = PBXShellScriptBuildPhase; 233 | buildActionMask = 2147483647; 234 | files = ( 235 | ); 236 | inputPaths = ( 237 | ); 238 | name = "Thin Binary"; 239 | outputPaths = ( 240 | ); 241 | runOnlyForDeploymentPostprocessing = 0; 242 | shellPath = /bin/sh; 243 | shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin"; 244 | }; 245 | 89F67858B367B44A9432E6ED /* [CP] Embed Pods Frameworks */ = { 246 | isa = PBXShellScriptBuildPhase; 247 | buildActionMask = 2147483647; 248 | files = ( 249 | ); 250 | inputPaths = ( 251 | "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh", 252 | "${BUILT_PRODUCTS_DIR}/FMDB/FMDB.framework", 253 | "${PODS_ROOT}/../Flutter/Flutter.framework", 254 | "${BUILT_PRODUCTS_DIR}/GTMSessionFetcher/GTMSessionFetcher.framework", 255 | "${BUILT_PRODUCTS_DIR}/GoogleUtilities/GoogleUtilities.framework", 256 | "${BUILT_PRODUCTS_DIR}/PromisesObjC/FBLPromises.framework", 257 | "${BUILT_PRODUCTS_DIR}/nanopb/nanopb.framework", 258 | "${BUILT_PRODUCTS_DIR}/path_provider/path_provider.framework", 259 | "${BUILT_PRODUCTS_DIR}/share/share.framework", 260 | "${BUILT_PRODUCTS_DIR}/sqflite/sqflite.framework", 261 | "${BUILT_PRODUCTS_DIR}/url_launcher/url_launcher.framework", 262 | ); 263 | name = "[CP] Embed Pods Frameworks"; 264 | outputPaths = ( 265 | "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FMDB.framework", 266 | "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Flutter.framework", 267 | "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/GTMSessionFetcher.framework", 268 | "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/GoogleUtilities.framework", 269 | "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FBLPromises.framework", 270 | "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/nanopb.framework", 271 | "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/path_provider.framework", 272 | "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/share.framework", 273 | "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/sqflite.framework", 274 | "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/url_launcher.framework", 275 | ); 276 | runOnlyForDeploymentPostprocessing = 0; 277 | shellPath = /bin/sh; 278 | shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n"; 279 | showEnvVarsInLog = 0; 280 | }; 281 | 9740EEB61CF901F6004384FC /* Run Script */ = { 282 | isa = PBXShellScriptBuildPhase; 283 | buildActionMask = 2147483647; 284 | files = ( 285 | ); 286 | inputPaths = ( 287 | ); 288 | name = "Run Script"; 289 | outputPaths = ( 290 | ); 291 | runOnlyForDeploymentPostprocessing = 0; 292 | shellPath = /bin/sh; 293 | shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build"; 294 | }; 295 | /* End PBXShellScriptBuildPhase section */ 296 | 297 | /* Begin PBXSourcesBuildPhase section */ 298 | 97C146EA1CF9000F007C117D /* Sources */ = { 299 | isa = PBXSourcesBuildPhase; 300 | buildActionMask = 2147483647; 301 | files = ( 302 | 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */, 303 | 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */, 304 | ); 305 | runOnlyForDeploymentPostprocessing = 0; 306 | }; 307 | /* End PBXSourcesBuildPhase section */ 308 | 309 | /* Begin PBXVariantGroup section */ 310 | 97C146FA1CF9000F007C117D /* Main.storyboard */ = { 311 | isa = PBXVariantGroup; 312 | children = ( 313 | 97C146FB1CF9000F007C117D /* Base */, 314 | ); 315 | name = Main.storyboard; 316 | sourceTree = ""; 317 | }; 318 | 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */ = { 319 | isa = PBXVariantGroup; 320 | children = ( 321 | 97C147001CF9000F007C117D /* Base */, 322 | ); 323 | name = LaunchScreen.storyboard; 324 | sourceTree = ""; 325 | }; 326 | /* End PBXVariantGroup section */ 327 | 328 | /* Begin XCBuildConfiguration section */ 329 | 249021D3217E4FDB00AE95B9 /* Profile */ = { 330 | isa = XCBuildConfiguration; 331 | baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; 332 | buildSettings = { 333 | ALWAYS_SEARCH_USER_PATHS = NO; 334 | CLANG_ANALYZER_NONNULL = YES; 335 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 336 | CLANG_CXX_LIBRARY = "libc++"; 337 | CLANG_ENABLE_MODULES = YES; 338 | CLANG_ENABLE_OBJC_ARC = YES; 339 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 340 | CLANG_WARN_BOOL_CONVERSION = YES; 341 | CLANG_WARN_COMMA = YES; 342 | CLANG_WARN_CONSTANT_CONVERSION = YES; 343 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 344 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 345 | CLANG_WARN_EMPTY_BODY = YES; 346 | CLANG_WARN_ENUM_CONVERSION = YES; 347 | CLANG_WARN_INFINITE_RECURSION = YES; 348 | CLANG_WARN_INT_CONVERSION = YES; 349 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 350 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 351 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 352 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 353 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 354 | CLANG_WARN_STRICT_PROTOTYPES = YES; 355 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 356 | CLANG_WARN_UNREACHABLE_CODE = YES; 357 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 358 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 359 | COPY_PHASE_STRIP = NO; 360 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 361 | ENABLE_NS_ASSERTIONS = NO; 362 | ENABLE_STRICT_OBJC_MSGSEND = YES; 363 | GCC_C_LANGUAGE_STANDARD = gnu99; 364 | GCC_NO_COMMON_BLOCKS = YES; 365 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 366 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 367 | GCC_WARN_UNDECLARED_SELECTOR = YES; 368 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 369 | GCC_WARN_UNUSED_FUNCTION = YES; 370 | GCC_WARN_UNUSED_VARIABLE = YES; 371 | IPHONEOS_DEPLOYMENT_TARGET = 8.0; 372 | MTL_ENABLE_DEBUG_INFO = NO; 373 | SDKROOT = iphoneos; 374 | SUPPORTED_PLATFORMS = iphoneos; 375 | TARGETED_DEVICE_FAMILY = "1,2"; 376 | VALIDATE_PRODUCT = YES; 377 | }; 378 | name = Profile; 379 | }; 380 | 249021D4217E4FDB00AE95B9 /* Profile */ = { 381 | isa = XCBuildConfiguration; 382 | baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; 383 | buildSettings = { 384 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 385 | CLANG_ENABLE_MODULES = YES; 386 | CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; 387 | ENABLE_BITCODE = NO; 388 | FRAMEWORK_SEARCH_PATHS = ( 389 | "$(inherited)", 390 | "$(PROJECT_DIR)/Flutter", 391 | ); 392 | INFOPLIST_FILE = Runner/Info.plist; 393 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; 394 | LIBRARY_SEARCH_PATHS = ( 395 | "$(inherited)", 396 | "$(PROJECT_DIR)/Flutter", 397 | ); 398 | PRODUCT_BUNDLE_IDENTIFIER = com.estech.fluttercon; 399 | PRODUCT_NAME = "$(TARGET_NAME)"; 400 | SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; 401 | SWIFT_VERSION = 5.0; 402 | VERSIONING_SYSTEM = "apple-generic"; 403 | }; 404 | name = Profile; 405 | }; 406 | 97C147031CF9000F007C117D /* Debug */ = { 407 | isa = XCBuildConfiguration; 408 | baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */; 409 | buildSettings = { 410 | ALWAYS_SEARCH_USER_PATHS = NO; 411 | CLANG_ANALYZER_NONNULL = YES; 412 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 413 | CLANG_CXX_LIBRARY = "libc++"; 414 | CLANG_ENABLE_MODULES = YES; 415 | CLANG_ENABLE_OBJC_ARC = YES; 416 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 417 | CLANG_WARN_BOOL_CONVERSION = YES; 418 | CLANG_WARN_COMMA = YES; 419 | CLANG_WARN_CONSTANT_CONVERSION = YES; 420 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 421 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 422 | CLANG_WARN_EMPTY_BODY = YES; 423 | CLANG_WARN_ENUM_CONVERSION = YES; 424 | CLANG_WARN_INFINITE_RECURSION = YES; 425 | CLANG_WARN_INT_CONVERSION = YES; 426 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 427 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 428 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 429 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 430 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 431 | CLANG_WARN_STRICT_PROTOTYPES = YES; 432 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 433 | CLANG_WARN_UNREACHABLE_CODE = YES; 434 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 435 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 436 | COPY_PHASE_STRIP = NO; 437 | DEBUG_INFORMATION_FORMAT = dwarf; 438 | ENABLE_STRICT_OBJC_MSGSEND = YES; 439 | ENABLE_TESTABILITY = YES; 440 | GCC_C_LANGUAGE_STANDARD = gnu99; 441 | GCC_DYNAMIC_NO_PIC = NO; 442 | GCC_NO_COMMON_BLOCKS = YES; 443 | GCC_OPTIMIZATION_LEVEL = 0; 444 | GCC_PREPROCESSOR_DEFINITIONS = ( 445 | "DEBUG=1", 446 | "$(inherited)", 447 | ); 448 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 449 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 450 | GCC_WARN_UNDECLARED_SELECTOR = YES; 451 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 452 | GCC_WARN_UNUSED_FUNCTION = YES; 453 | GCC_WARN_UNUSED_VARIABLE = YES; 454 | IPHONEOS_DEPLOYMENT_TARGET = 8.0; 455 | MTL_ENABLE_DEBUG_INFO = YES; 456 | ONLY_ACTIVE_ARCH = YES; 457 | SDKROOT = iphoneos; 458 | TARGETED_DEVICE_FAMILY = "1,2"; 459 | }; 460 | name = Debug; 461 | }; 462 | 97C147041CF9000F007C117D /* Release */ = { 463 | isa = XCBuildConfiguration; 464 | baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; 465 | buildSettings = { 466 | ALWAYS_SEARCH_USER_PATHS = NO; 467 | CLANG_ANALYZER_NONNULL = YES; 468 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 469 | CLANG_CXX_LIBRARY = "libc++"; 470 | CLANG_ENABLE_MODULES = YES; 471 | CLANG_ENABLE_OBJC_ARC = YES; 472 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 473 | CLANG_WARN_BOOL_CONVERSION = YES; 474 | CLANG_WARN_COMMA = YES; 475 | CLANG_WARN_CONSTANT_CONVERSION = YES; 476 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 477 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 478 | CLANG_WARN_EMPTY_BODY = YES; 479 | CLANG_WARN_ENUM_CONVERSION = YES; 480 | CLANG_WARN_INFINITE_RECURSION = YES; 481 | CLANG_WARN_INT_CONVERSION = YES; 482 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 483 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 484 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 485 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 486 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 487 | CLANG_WARN_STRICT_PROTOTYPES = YES; 488 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 489 | CLANG_WARN_UNREACHABLE_CODE = YES; 490 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 491 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 492 | COPY_PHASE_STRIP = NO; 493 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 494 | ENABLE_NS_ASSERTIONS = NO; 495 | ENABLE_STRICT_OBJC_MSGSEND = YES; 496 | GCC_C_LANGUAGE_STANDARD = gnu99; 497 | GCC_NO_COMMON_BLOCKS = YES; 498 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 499 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 500 | GCC_WARN_UNDECLARED_SELECTOR = YES; 501 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 502 | GCC_WARN_UNUSED_FUNCTION = YES; 503 | GCC_WARN_UNUSED_VARIABLE = YES; 504 | IPHONEOS_DEPLOYMENT_TARGET = 8.0; 505 | MTL_ENABLE_DEBUG_INFO = NO; 506 | SDKROOT = iphoneos; 507 | SUPPORTED_PLATFORMS = iphoneos; 508 | SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; 509 | TARGETED_DEVICE_FAMILY = "1,2"; 510 | VALIDATE_PRODUCT = YES; 511 | }; 512 | name = Release; 513 | }; 514 | 97C147061CF9000F007C117D /* Debug */ = { 515 | isa = XCBuildConfiguration; 516 | baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */; 517 | buildSettings = { 518 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 519 | CLANG_ENABLE_MODULES = YES; 520 | CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; 521 | ENABLE_BITCODE = NO; 522 | FRAMEWORK_SEARCH_PATHS = ( 523 | "$(inherited)", 524 | "$(PROJECT_DIR)/Flutter", 525 | ); 526 | INFOPLIST_FILE = Runner/Info.plist; 527 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; 528 | LIBRARY_SEARCH_PATHS = ( 529 | "$(inherited)", 530 | "$(PROJECT_DIR)/Flutter", 531 | ); 532 | PRODUCT_BUNDLE_IDENTIFIER = com.estech.fluttercon; 533 | PRODUCT_NAME = "$(TARGET_NAME)"; 534 | SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; 535 | SWIFT_OPTIMIZATION_LEVEL = "-Onone"; 536 | SWIFT_VERSION = 5.0; 537 | VERSIONING_SYSTEM = "apple-generic"; 538 | }; 539 | name = Debug; 540 | }; 541 | 97C147071CF9000F007C117D /* Release */ = { 542 | isa = XCBuildConfiguration; 543 | baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; 544 | buildSettings = { 545 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 546 | CLANG_ENABLE_MODULES = YES; 547 | CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; 548 | ENABLE_BITCODE = NO; 549 | FRAMEWORK_SEARCH_PATHS = ( 550 | "$(inherited)", 551 | "$(PROJECT_DIR)/Flutter", 552 | ); 553 | INFOPLIST_FILE = Runner/Info.plist; 554 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; 555 | LIBRARY_SEARCH_PATHS = ( 556 | "$(inherited)", 557 | "$(PROJECT_DIR)/Flutter", 558 | ); 559 | PRODUCT_BUNDLE_IDENTIFIER = com.estech.fluttercon; 560 | PRODUCT_NAME = "$(TARGET_NAME)"; 561 | SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; 562 | SWIFT_VERSION = 5.0; 563 | VERSIONING_SYSTEM = "apple-generic"; 564 | }; 565 | name = Release; 566 | }; 567 | /* End XCBuildConfiguration section */ 568 | 569 | /* Begin XCConfigurationList section */ 570 | 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */ = { 571 | isa = XCConfigurationList; 572 | buildConfigurations = ( 573 | 97C147031CF9000F007C117D /* Debug */, 574 | 97C147041CF9000F007C117D /* Release */, 575 | 249021D3217E4FDB00AE95B9 /* Profile */, 576 | ); 577 | defaultConfigurationIsVisible = 0; 578 | defaultConfigurationName = Release; 579 | }; 580 | 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */ = { 581 | isa = XCConfigurationList; 582 | buildConfigurations = ( 583 | 97C147061CF9000F007C117D /* Debug */, 584 | 97C147071CF9000F007C117D /* Release */, 585 | 249021D4217E4FDB00AE95B9 /* Profile */, 586 | ); 587 | defaultConfigurationIsVisible = 0; 588 | defaultConfigurationName = Release; 589 | }; 590 | /* End XCConfigurationList section */ 591 | }; 592 | rootObject = 97C146E61CF9000F007C117D /* Project object */; 593 | } 594 | -------------------------------------------------------------------------------- /ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | PreviewsEnabled 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 39 | 40 | 41 | 42 | 43 | 44 | 54 | 56 | 62 | 63 | 64 | 65 | 66 | 67 | 73 | 75 | 81 | 82 | 83 | 84 | 86 | 87 | 90 | 91 | 92 | -------------------------------------------------------------------------------- /ios/Runner.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | PreviewsEnabled 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /ios/Runner/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | import UIKit 2 | import Flutter 3 | 4 | @UIApplicationMain 5 | @objc class AppDelegate: FlutterAppDelegate { 6 | override func application( 7 | _ application: UIApplication, 8 | didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? 9 | ) -> Bool { 10 | GeneratedPluginRegistrant.register(with: self) 11 | return super.application(application, didFinishLaunchingWithOptions: launchOptions) 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "size" : "20x20", 5 | "idiom" : "iphone", 6 | "filename" : "Icon-App-20x20@2x.png", 7 | "scale" : "2x" 8 | }, 9 | { 10 | "size" : "20x20", 11 | "idiom" : "iphone", 12 | "filename" : "Icon-App-20x20@3x.png", 13 | "scale" : "3x" 14 | }, 15 | { 16 | "size" : "29x29", 17 | "idiom" : "iphone", 18 | "filename" : "Icon-App-29x29@1x.png", 19 | "scale" : "1x" 20 | }, 21 | { 22 | "size" : "29x29", 23 | "idiom" : "iphone", 24 | "filename" : "Icon-App-29x29@2x.png", 25 | "scale" : "2x" 26 | }, 27 | { 28 | "size" : "29x29", 29 | "idiom" : "iphone", 30 | "filename" : "Icon-App-29x29@3x.png", 31 | "scale" : "3x" 32 | }, 33 | { 34 | "size" : "40x40", 35 | "idiom" : "iphone", 36 | "filename" : "Icon-App-40x40@2x.png", 37 | "scale" : "2x" 38 | }, 39 | { 40 | "size" : "40x40", 41 | "idiom" : "iphone", 42 | "filename" : "Icon-App-40x40@3x.png", 43 | "scale" : "3x" 44 | }, 45 | { 46 | "size" : "60x60", 47 | "idiom" : "iphone", 48 | "filename" : "Icon-App-60x60@2x.png", 49 | "scale" : "2x" 50 | }, 51 | { 52 | "size" : "60x60", 53 | "idiom" : "iphone", 54 | "filename" : "Icon-App-60x60@3x.png", 55 | "scale" : "3x" 56 | }, 57 | { 58 | "size" : "20x20", 59 | "idiom" : "ipad", 60 | "filename" : "Icon-App-20x20@1x.png", 61 | "scale" : "1x" 62 | }, 63 | { 64 | "size" : "20x20", 65 | "idiom" : "ipad", 66 | "filename" : "Icon-App-20x20@2x.png", 67 | "scale" : "2x" 68 | }, 69 | { 70 | "size" : "29x29", 71 | "idiom" : "ipad", 72 | "filename" : "Icon-App-29x29@1x.png", 73 | "scale" : "1x" 74 | }, 75 | { 76 | "size" : "29x29", 77 | "idiom" : "ipad", 78 | "filename" : "Icon-App-29x29@2x.png", 79 | "scale" : "2x" 80 | }, 81 | { 82 | "size" : "40x40", 83 | "idiom" : "ipad", 84 | "filename" : "Icon-App-40x40@1x.png", 85 | "scale" : "1x" 86 | }, 87 | { 88 | "size" : "40x40", 89 | "idiom" : "ipad", 90 | "filename" : "Icon-App-40x40@2x.png", 91 | "scale" : "2x" 92 | }, 93 | { 94 | "size" : "76x76", 95 | "idiom" : "ipad", 96 | "filename" : "Icon-App-76x76@1x.png", 97 | "scale" : "1x" 98 | }, 99 | { 100 | "size" : "76x76", 101 | "idiom" : "ipad", 102 | "filename" : "Icon-App-76x76@2x.png", 103 | "scale" : "2x" 104 | }, 105 | { 106 | "size" : "83.5x83.5", 107 | "idiom" : "ipad", 108 | "filename" : "Icon-App-83.5x83.5@2x.png", 109 | "scale" : "2x" 110 | }, 111 | { 112 | "size" : "1024x1024", 113 | "idiom" : "ios-marketing", 114 | "filename" : "Icon-App-1024x1024@1x.png", 115 | "scale" : "1x" 116 | } 117 | ], 118 | "info" : { 119 | "version" : 1, 120 | "author" : "xcode" 121 | } 122 | } 123 | -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-India/Flutter-India-Conference-2020/dbb3395e8e623694791b2fd1414f87e5ac55c948/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-India/Flutter-India-Conference-2020/dbb3395e8e623694791b2fd1414f87e5ac55c948/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-India/Flutter-India-Conference-2020/dbb3395e8e623694791b2fd1414f87e5ac55c948/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-India/Flutter-India-Conference-2020/dbb3395e8e623694791b2fd1414f87e5ac55c948/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-India/Flutter-India-Conference-2020/dbb3395e8e623694791b2fd1414f87e5ac55c948/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-India/Flutter-India-Conference-2020/dbb3395e8e623694791b2fd1414f87e5ac55c948/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-India/Flutter-India-Conference-2020/dbb3395e8e623694791b2fd1414f87e5ac55c948/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-India/Flutter-India-Conference-2020/dbb3395e8e623694791b2fd1414f87e5ac55c948/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-India/Flutter-India-Conference-2020/dbb3395e8e623694791b2fd1414f87e5ac55c948/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-India/Flutter-India-Conference-2020/dbb3395e8e623694791b2fd1414f87e5ac55c948/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-India/Flutter-India-Conference-2020/dbb3395e8e623694791b2fd1414f87e5ac55c948/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-India/Flutter-India-Conference-2020/dbb3395e8e623694791b2fd1414f87e5ac55c948/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-India/Flutter-India-Conference-2020/dbb3395e8e623694791b2fd1414f87e5ac55c948/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-India/Flutter-India-Conference-2020/dbb3395e8e623694791b2fd1414f87e5ac55c948/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-India/Flutter-India-Conference-2020/dbb3395e8e623694791b2fd1414f87e5ac55c948/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "LaunchImage.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "LaunchImage@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "LaunchImage@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-India/Flutter-India-Conference-2020/dbb3395e8e623694791b2fd1414f87e5ac55c948/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-India/Flutter-India-Conference-2020/dbb3395e8e623694791b2fd1414f87e5ac55c948/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-India/Flutter-India-Conference-2020/dbb3395e8e623694791b2fd1414f87e5ac55c948/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md: -------------------------------------------------------------------------------- 1 | # Launch Screen Assets 2 | 3 | You can customize the launch screen with your own desired assets by replacing the image files in this directory. 4 | 5 | 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. -------------------------------------------------------------------------------- /ios/Runner/Base.lproj/LaunchScreen.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /ios/Runner/Base.lproj/Main.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /ios/Runner/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | fluttercon 15 | CFBundlePackageType 16 | APPL 17 | CFBundleShortVersionString 18 | $(FLUTTER_BUILD_NAME) 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | $(FLUTTER_BUILD_NUMBER) 23 | LSRequiresIPhoneOS 24 | 25 | UILaunchStoryboardName 26 | LaunchScreen 27 | UIMainStoryboardFile 28 | Main 29 | UISupportedInterfaceOrientations 30 | 31 | UIInterfaceOrientationPortrait 32 | UIInterfaceOrientationLandscapeLeft 33 | UIInterfaceOrientationLandscapeRight 34 | 35 | UISupportedInterfaceOrientations~ipad 36 | 37 | UIInterfaceOrientationPortrait 38 | UIInterfaceOrientationPortraitUpsideDown 39 | UIInterfaceOrientationLandscapeLeft 40 | UIInterfaceOrientationLandscapeRight 41 | 42 | UIViewControllerBasedStatusBarAppearance 43 | 44 | 45 | 46 | -------------------------------------------------------------------------------- /ios/Runner/Runner-Bridging-Header.h: -------------------------------------------------------------------------------- 1 | #import "GeneratedPluginRegistrant.h" 2 | -------------------------------------------------------------------------------- /lib/HomePage/ContactUs/ContactUs.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:url_launcher/url_launcher.dart'; 3 | 4 | import '../Responsiveness/Responsive.dart'; 5 | 6 | class ContactUs extends StatelessWidget { 7 | const ContactUs({ 8 | Key key, 9 | }) : super(key: key); 10 | 11 | @override 12 | Widget build(BuildContext context) { 13 | return Stack( 14 | children: [ 15 | Container( 16 | color: Colors.black, 17 | width: double.infinity, 18 | //height: MediaQuery.of(context).size.height / 2, 19 | ), 20 | Container( 21 | color: Colors.black, 22 | width: double.infinity, 23 | //height: MediaQuery.of(context).size.height / 2, 24 | child: Center( 25 | child: Column( 26 | children: [ 27 | SizedBox( 28 | height: 110.0, 29 | ), 30 | Text( 31 | 'Contact us', 32 | style: TextStyle( 33 | fontSize: 34 | ResponsiveWidget.isSmallScreen(context) ? 35.0 : 55.0, 35 | fontFamily: 'assets/fonts/ProductSans.ttf', 36 | color: Colors.white, 37 | ), 38 | ), 39 | SizedBox( 40 | height: 55.0, 41 | ), 42 | Padding( 43 | padding: const EdgeInsets.only( 44 | top: 10.0, bottom: 20.0, right: 10.0), 45 | child: Row( 46 | mainAxisAlignment: MainAxisAlignment.center, 47 | children: [ 48 | GestureDetector( 49 | onTap: () async { 50 | String url = 'https://twitter.com/IndiaFlutter'; 51 | if (await canLaunch(url)) { 52 | await launch(url); 53 | } else { 54 | throw 'Could not launch $url'; 55 | } 56 | }, 57 | child: CircleAvatar( 58 | radius: ResponsiveWidget.isSmallScreen(context) 59 | ? 20.0 60 | : 35.0, 61 | backgroundImage: AssetImage( 62 | 'assets/Images/socialIcons/twitter.png'), 63 | ), 64 | ), 65 | SizedBox( 66 | width: 30.0, 67 | ), 68 | GestureDetector( 69 | onTap: () async { 70 | String url = 'https://www.facebook.com/IndiaFlutter'; 71 | if (await canLaunch(url)) { 72 | await launch(url); 73 | } else { 74 | throw 'Could not launch $url'; 75 | } 76 | }, 77 | child: CircleAvatar( 78 | radius: ResponsiveWidget.isSmallScreen(context) 79 | ? 20.0 80 | : 35.0, 81 | backgroundImage: AssetImage( 82 | 'assets/Images/socialIcons/facebook.png'), 83 | ), 84 | ), 85 | SizedBox( 86 | width: 30.0, 87 | ), 88 | GestureDetector( 89 | onTap: () async { 90 | String url = 91 | 'https://www.youtube.com/channel/UCQ6LuIX6WBwIEOiVakjWM6w'; 92 | if (await canLaunch(url)) { 93 | await launch(url); 94 | } else { 95 | throw 'Could not launch $url'; 96 | } 97 | }, 98 | child: CircleAvatar( 99 | radius: ResponsiveWidget.isSmallScreen(context) 100 | ? 20.0 101 | : 35.0, 102 | backgroundImage: AssetImage( 103 | 'assets/Images/socialIcons/youtube.png'), 104 | ), 105 | ), 106 | ], 107 | ), 108 | ), 109 | SizedBox( 110 | height: ResponsiveWidget.isSmallScreen(context) ? 15.0 : 50.0, 111 | ), 112 | GestureDetector( 113 | onTap: () async { 114 | String url = 115 | 'https://join.slack.com/t/fluttercommunityindia/shared_invite/zt-ewhb1p50-6515IPymTDXRyv7Z9UbylA'; 116 | if (await canLaunch(url)) { 117 | await launch(url); 118 | } else { 119 | throw 'Could not launch $url'; 120 | } 121 | }, 122 | child: Container( 123 | width: 124 | ResponsiveWidget.isSmallScreen(context) ? 120.0 : 235.0, 125 | child: Image.asset( 126 | 'assets/Images/socialIcons/add_to_slack.png', 127 | ), 128 | ), 129 | ), 130 | SizedBox( 131 | height: 50.0, 132 | ), 133 | ], 134 | ), 135 | ), 136 | ), 137 | ], 138 | ); 139 | } 140 | } 141 | -------------------------------------------------------------------------------- /lib/HomePage/CoverImage.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | 3 | class CoverImage extends StatelessWidget { 4 | const CoverImage({ 5 | Key key, 6 | @required this.coverImage, 7 | }) : super(key: key); 8 | 9 | final String coverImage; 10 | 11 | @override 12 | Widget build(BuildContext context) { 13 | return Container( 14 | width: MediaQuery.of(context).size.width, 15 | height: MediaQuery.of(context).size.height, 16 | child: Center( 17 | child: Image.asset( 18 | coverImage, 19 | ), 20 | ), 21 | ); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /lib/HomePage/FAQ/FAQ.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | 3 | import '../Responsiveness/Responsive.dart'; 4 | import 'QNA.dart'; 5 | 6 | class FAQSection extends StatelessWidget { 7 | @override 8 | Widget build(BuildContext context) { 9 | return Column( 10 | children: [ 11 | Padding( 12 | padding: EdgeInsets.symmetric(horizontal: 30.0, vertical: 7.0), 13 | child: Align( 14 | alignment: Alignment.topLeft, 15 | child: Text( 16 | 'Frequently Asked Question', 17 | textAlign: TextAlign.justify, 18 | style: TextStyle( 19 | fontSize: ResponsiveWidget.isSmallScreen(context) ? 30.0 : 55.0, 20 | color: Colors.black, 21 | //color: Colors.white, 22 | fontWeight: FontWeight.w600, 23 | fontFamily: 'assets/fonts/ProductSans.ttf', 24 | ), 25 | ), 26 | ), 27 | ), 28 | SizedBox( 29 | height: 20.0, 30 | ), 31 | QNA.buildQuestion( 32 | context, 33 | 'How can i propose the talk?', 34 | ), 35 | SizedBox( 36 | height: 15.0, 37 | ), 38 | QNA.buildAnswer( 39 | context, 40 | 'You can fill the form by clicking Call for Speakers', 41 | ), 42 | SizedBox( 43 | height: 15.0, 44 | ), 45 | QNA.buildQuestion( 46 | context, 47 | 'Where will the sessions be broadcast?', 48 | ), 49 | SizedBox( 50 | height: 15.0, 51 | ), 52 | QNA.buildAnswer( 53 | context, 54 | 'The videos will be streamed live on our dedicated Youtube channel.', 55 | ), 56 | SizedBox( 57 | height: 15.0, 58 | ), 59 | QNA.buildQuestion( 60 | context, 61 | 'Will presentations be available after each event?', 62 | ), 63 | SizedBox( 64 | height: 15.0, 65 | ), 66 | QNA.buildAnswer( 67 | context, 68 | 'A few days after each talk, we will post them on a dedicated YouTube playlist.', 69 | ), 70 | SizedBox( 71 | height: 15.0, 72 | ), 73 | QNA.buildQuestion( 74 | context, 75 | 'Will the conference be fully in English?', 76 | ), 77 | SizedBox( 78 | height: 15.0, 79 | ), 80 | QNA.buildAnswer( 81 | context, 82 | 'Yes, the official language is English.', 83 | ), 84 | SizedBox( 85 | height: 15.0, 86 | ), 87 | QNA.buildQuestion( 88 | context, 89 | 'What do I need to bring with me?', 90 | ), 91 | SizedBox( 92 | height: 15.0, 93 | ), 94 | QNA.buildAnswer( 95 | context, 96 | 'You don`t need anything extra to fully attend the event. Although we recommend charging your phone. ;)', 97 | ), 98 | SizedBox( 99 | height: 15.0, 100 | ), 101 | ], 102 | ); 103 | } 104 | } 105 | 106 | circleLogo(String string) { 107 | if (string.isEmpty) { 108 | return AssetImage('assets/Organizer_Logo/flutter_surat_logo.jpg'); 109 | } 110 | return NetworkImage(string); 111 | } 112 | -------------------------------------------------------------------------------- /lib/HomePage/FAQ/QNA.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | 3 | import '../Responsiveness/Responsive.dart'; 4 | 5 | class QNA { 6 | static Container buildAnswer(BuildContext context, String answer) { 7 | return Container( 8 | padding: EdgeInsets.symmetric(horizontal: 40.0, vertical: 7.0), 9 | child: Align( 10 | alignment: Alignment.topLeft, 11 | child: Text( 12 | answer, 13 | style: TextStyle( 14 | fontFamily: 'assets/fonts/ProductSans.ttf', 15 | fontSize: ResponsiveWidget.isSmallScreen(context) ? 10.0 : 20.0, 16 | ), 17 | ), 18 | ), 19 | color: Colors.white, 20 | ); 21 | } 22 | 23 | static Container buildQuestion(BuildContext context, String question) { 24 | return Container( 25 | padding: EdgeInsets.symmetric(horizontal: 10.0, vertical: 7.0), 26 | child: Align( 27 | alignment: Alignment.topLeft, 28 | child: Text( 29 | question, 30 | style: TextStyle( 31 | fontSize: ResponsiveWidget.isSmallScreen(context) ? 15.0 : 25.0, 32 | fontFamily: 'assets/fonts/ProductSans.ttf', 33 | ), 34 | ), 35 | ), 36 | decoration: BoxDecoration( 37 | color: Colors.black12, 38 | borderRadius: BorderRadius.circular(10.0), 39 | ), 40 | margin: EdgeInsets.fromLTRB(30, 0, 30, 0), 41 | ); 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /lib/HomePage/HomePage.dart: -------------------------------------------------------------------------------- 1 | import 'package:FlutterConIndia2020/background/graphic.dart'; 2 | import 'package:flutter/material.dart'; 3 | import 'package:motion_widget/motion_widget.dart'; 4 | import 'package:url_launcher/url_launcher.dart'; 5 | 6 | import 'ContactUs/ContactUs.dart'; 7 | import 'Intro/CoverImage.dart'; 8 | import 'Intro/mainIntro.dart'; 9 | import 'OrganizerSection/OrganizerSection.dart'; 10 | import 'PoweredBy/PoweredBy.dart'; 11 | import 'Responsiveness/Responsive.dart'; 12 | import 'ScheduleSection/ScheduleSection.dart'; 13 | import 'SpeakerSection/SpeakerScreen.dart'; 14 | 15 | class HomePageNew extends StatelessWidget { 16 | static const String tag = '/HomePageNew'; 17 | final String primaryFont = 'assets/fonts/ProductSans.ttf'; 18 | final String coverImage = 19 | 'assets/Images/Logos/FlutterConLogos/Group_twenty.png'; 20 | 21 | final MotionExitConfigurations motionExitConfigurations = 22 | MotionExitConfigurations( 23 | displacement: 200, 24 | orientation: MotionOrientation.LEFT, 25 | durationMs: 400, 26 | ); 27 | 28 | @override 29 | Widget build(BuildContext context) { 30 | return Scaffold( 31 | extendBody: true, 32 | body: Stack( 33 | children: [ 34 | DiagonalApp(), 35 | ListView( 36 | children: [ 37 | CoverImage(coverImage: coverImage), 38 | SizedBox( 39 | width: ResponsiveWidget.isSmallScreen(context) 40 | ? MediaQuery.of(context).size.width 41 | : MediaQuery.of(context).size.width * 0.7, 42 | child: Column( 43 | children: [ 44 | Container( 45 | margin: EdgeInsets.only(top: 90.0), 46 | width: double.infinity, 47 | height: 400.0, 48 | color: Color(0xffFF0000), 49 | child: Column( 50 | mainAxisAlignment: MainAxisAlignment.center, 51 | children: [ 52 | Text( 53 | 'Streaming on', 54 | style: TextStyle( 55 | fontSize: 56 | ResponsiveWidget.isSmallScreen(context) 57 | ? 15.0 58 | : 35.0, 59 | color: Colors.white, 60 | fontFamily: 'Rocky Billy', 61 | ), 62 | ), 63 | SizedBox( 64 | height: 50.0, 65 | ), 66 | GestureDetector( 67 | onTap: () async { 68 | String url = 69 | 'https://www.youtube.com/channel/UCQ6LuIX6WBwIEOiVakjWM6w'; 70 | if (await canLaunch(url)) { 71 | await launch(url); 72 | } else { 73 | throw 'Could not launch $url'; 74 | } 75 | }, 76 | child: Image.asset( 77 | 'assets/Images/socialIcons/youtube_icon.png', 78 | height: 50.0, 79 | ), 80 | ), 81 | ], 82 | ), 83 | ), 84 | MainIntro( 85 | motionExitConfigurations: motionExitConfigurations, 86 | ), 87 | Container( 88 | color: Colors.black, 89 | width: double.infinity, 90 | margin: EdgeInsets.only(top: 90.0), 91 | child: Column( 92 | children: [ 93 | SizedBox( 94 | height: 10, 95 | ), 96 | Center( 97 | child: Text( 98 | 'Speakers', 99 | style: TextStyle( 100 | fontSize: 101 | ResponsiveWidget.isSmallScreen(context) 102 | ? 35.0 103 | : 45.0, 104 | fontFamily: 'assets/fonts/ProductSans.ttf', 105 | color: Colors.white, 106 | ), 107 | ), 108 | ), 109 | SizedBox( 110 | height: 35, 111 | ), 112 | SpeakerScreen(), 113 | SizedBox( 114 | height: 60, 115 | ), 116 | ], 117 | ), 118 | ), 119 | ScheduleSection( 120 | motionExitConfigurations: motionExitConfigurations), 121 | OrganzerSection(), 122 | SizedBox( 123 | height: 90.0, 124 | ), 125 | PoweredBy(), 126 | SizedBox( 127 | height: 90.0, 128 | ), 129 | ContactUs(), 130 | Container( 131 | color: Colors.black, 132 | width: double.infinity, 133 | child: Align( 134 | alignment: Alignment.bottomCenter, 135 | child: Padding( 136 | padding: 137 | const EdgeInsets.symmetric(horizontal: 10.0), 138 | child: Text( 139 | 'Made with Flutter 💙', 140 | style: TextStyle( 141 | fontSize: 142 | ResponsiveWidget.isSmallScreen(context) 143 | ? 8.0 144 | : 15.0, 145 | color: Colors.white, 146 | ), 147 | ), 148 | ), 149 | ), 150 | ), 151 | Container( 152 | color: Colors.black, 153 | width: double.infinity, 154 | child: Align( 155 | alignment: Alignment.bottomCenter, 156 | child: Padding( 157 | padding: 158 | const EdgeInsets.symmetric(horizontal: 10.0), 159 | child: Text( 160 | 'Flutter and the related logo are trademarks of Google LLC. Flutter India is not affiliated with or otherwise sponsored by Google LLC.', 161 | style: TextStyle( 162 | fontSize: 163 | ResponsiveWidget.isSmallScreen(context) 164 | ? 8.0 165 | : 15.0, 166 | color: Colors.white, 167 | ), 168 | ), 169 | ), 170 | ), 171 | ), 172 | ], 173 | ), 174 | ), 175 | ], 176 | ), 177 | ], 178 | ), 179 | ); 180 | } 181 | } 182 | -------------------------------------------------------------------------------- /lib/HomePage/Intro/CoverImage.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | 3 | class CoverImage extends StatelessWidget { 4 | const CoverImage({ 5 | Key key, 6 | @required this.coverImage, 7 | }) : super(key: key); 8 | 9 | @override 10 | Widget build(BuildContext context) { 11 | return Container( 12 | color: Colors.black38, 13 | width: MediaQuery.of(context).size.width, 14 | height: MediaQuery.of(context).size.height, 15 | child: Stack(children: [ 16 | Center( 17 | child: Image.asset( 18 | coverImage, 19 | ), 20 | ), 21 | ]), 22 | ); 23 | } 24 | 25 | final String coverImage; 26 | } 27 | -------------------------------------------------------------------------------- /lib/HomePage/Intro/mainIntro.dart: -------------------------------------------------------------------------------- 1 | import 'package:FlutterConIndia2020/widgets/worldReunite.dart'; 2 | import 'package:flutter/material.dart'; 3 | 4 | import 'package:motion_widget/motion_widget.dart'; 5 | 6 | import '../../widgets/widget.dart'; 7 | 8 | class MainIntro extends StatelessWidget { 9 | const MainIntro({ 10 | Key key, 11 | @required this.motionExitConfigurations, 12 | }) : super(key: key); 13 | 14 | final MotionExitConfigurations motionExitConfigurations; 15 | 16 | @override 17 | Widget build(BuildContext context) { 18 | return Container( 19 | color: Colors.black, 20 | margin: EdgeInsets.only( 21 | top: 90.0, 22 | ), 23 | child: Motion( 24 | durationMs: 3000, 25 | crossAxisAlignment: CrossAxisAlignment.center, 26 | exitConfigurations: motionExitConfigurations, 27 | children: [ 28 | SizedBox( 29 | height: 20.0, 30 | ), 31 | MotionElement( 32 | interval: Interval(0.0, 0.30), 33 | displacement: 100, 34 | orientation: MotionOrientation.DOWN, 35 | child: WhatisFlutterConIndia(), 36 | ), 37 | MotionElement( 38 | child: EventDesc(), 39 | interval: Interval(0.3, 1.0), 40 | ), 41 | Padding( 42 | padding: EdgeInsets.symmetric(horizontal: 64), child: Divider()), 43 | SizedBox( 44 | height: 10.0, 45 | ), 46 | MotionElement( 47 | interval: Interval(0.4, 1.0), 48 | mode: MotionMode.TRANSLATE, 49 | child: When( 50 | color: Colors.white, 51 | ), 52 | ), 53 | MotionElement( 54 | interval: Interval(0.5, 1.0), 55 | child: EventTime( 56 | color: Colors.white, 57 | ), 58 | ), 59 | Padding( 60 | padding: EdgeInsets.symmetric( 61 | horizontal: 64, 62 | ), 63 | child: Divider(), 64 | ), 65 | SizedBox( 66 | height: 10.0, 67 | ), 68 | MotionElement( 69 | interval: Interval(0.58, 1.0), 70 | child: GoalHead(color: Colors.white)), 71 | MotionElement( 72 | interval: Interval(0.63, 1.0), 73 | child: GoadAns(color: Colors.white)), 74 | Padding( 75 | padding: EdgeInsets.symmetric(horizontal: 64), child: Divider()), 76 | SizedBox( 77 | height: 10.0, 78 | ), 79 | MotionElement( 80 | interval: Interval(0.67, 1.0), 81 | child: FlutterWorldUnited(color: Colors.white)), 82 | MotionElement( 83 | interval: Interval(0.69, 1.0), 84 | child: WorldReunitedQuote(color: Colors.white)), 85 | SizedBox( 86 | height: 10.0, 87 | ), 88 | ], 89 | ), 90 | ); 91 | } 92 | } 93 | -------------------------------------------------------------------------------- /lib/HomePage/MainIntro.dart: -------------------------------------------------------------------------------- 1 | import 'package:FlutterConIndia2020/widgets/widget.dart'; 2 | import 'package:FlutterConIndia2020/widgets/worldReunite.dart'; 3 | import 'package:flutter/material.dart'; 4 | import 'package:motion_widget/motion_widget.dart'; 5 | 6 | class MainIntro extends StatelessWidget { 7 | const MainIntro({ 8 | Key key, 9 | @required this.motionExitConfigurations, 10 | }) : super(key: key); 11 | 12 | final MotionExitConfigurations motionExitConfigurations; 13 | 14 | @override 15 | Widget build(BuildContext context) { 16 | return Container( 17 | margin: EdgeInsets.only( 18 | top: 70.0, 19 | ), 20 | child: Motion( 21 | durationMs: 3000, 22 | crossAxisAlignment: CrossAxisAlignment.center, 23 | exitConfigurations: motionExitConfigurations, 24 | children: [ 25 | MotionElement( 26 | interval: Interval(0.0, 0.30), 27 | displacement: 100, 28 | orientation: MotionOrientation.DOWN, 29 | child: WhatisFlutterConIndia(), 30 | ), 31 | MotionElement( 32 | child: EventDesc(), 33 | interval: Interval(0.3, 1.0), 34 | ), 35 | Padding( 36 | padding: EdgeInsets.symmetric(horizontal: 64), child: Divider()), 37 | SizedBox( 38 | height: 10.0, 39 | ), 40 | MotionElement( 41 | interval: Interval(0.4, 1.0), 42 | mode: MotionMode.TRANSLATE, 43 | child: When( 44 | color: Colors.white, 45 | ), 46 | ), 47 | MotionElement( 48 | interval: Interval(0.5, 1.0), 49 | child: EventTime( 50 | color: Colors.white, 51 | ), 52 | ), 53 | Padding( 54 | padding: EdgeInsets.symmetric(horizontal: 64), child: Divider()), 55 | SizedBox( 56 | height: 10.0, 57 | ), 58 | MotionElement( 59 | interval: Interval(0.58, 1.0), 60 | child: GoalHead(color: Colors.white)), 61 | MotionElement( 62 | interval: Interval(0.63, 1.0), 63 | child: GoadAns(color: Colors.white)), 64 | Padding( 65 | padding: EdgeInsets.symmetric(horizontal: 64), child: Divider()), 66 | SizedBox( 67 | height: 10.0, 68 | ), 69 | MotionElement( 70 | interval: Interval(0.67, 1.0), 71 | child: FlutterWorldUnited(color: Colors.white)), 72 | MotionElement( 73 | interval: Interval(0.69, 1.0), 74 | child: WorldReunitedQuote(color: Colors.white)), 75 | SizedBox( 76 | height: 10.0, 77 | ), 78 | ], 79 | ), 80 | ); 81 | } 82 | } 83 | -------------------------------------------------------------------------------- /lib/HomePage/Motion.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:motion_widget/motion_widget.dart'; 3 | 4 | class Motion { 5 | static MotionElement getFeatureItem(Interval interval, String text) { 6 | return MotionElement( 7 | interval: interval, 8 | child: Row( 9 | crossAxisAlignment: CrossAxisAlignment.start, 10 | children: [ 11 | SizedBox(width: 10), 12 | Flexible( 13 | child: Text( 14 | text, 15 | style: TextStyle(fontSize: 20, fontWeight: FontWeight.w500), 16 | ), 17 | ), 18 | ], 19 | ), 20 | ); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /lib/HomePage/OrganizerSection/OrganizerScreen.dart: -------------------------------------------------------------------------------- 1 | import 'dart:convert'; 2 | 3 | import 'package:FlutterConIndia2020/utils/con_Info.dart'; 4 | import 'package:flutter/material.dart'; 5 | import 'package:flutter/services.dart'; 6 | 7 | 8 | import '../FAQ/FAQ.dart'; 9 | import '../Responsiveness/Responsive.dart'; 10 | import 'Organizerhandle.dart'; 11 | 12 | class OrganizerScreen extends StatefulWidget { 13 | @override 14 | _OrganizerScreenState createState() => _OrganizerScreenState(); 15 | } 16 | 17 | class _OrganizerScreenState extends State { 18 | var new_Data; 19 | List widgets; 20 | 21 | @override 22 | void initState() { 23 | super.initState(); 24 | WidgetsBinding.instance.addPostFrameCallback((timeStamp) async { 25 | String jsonData = await rootBundle.loadString(Con_Info.organizerjson); 26 | new_Data = json.decode(jsonData.toString()); 27 | widgets = List.generate( 28 | 9, 29 | (index) => SizedBox( 30 | width: MediaQuery.of(context).size.width, 31 | child: Card( 32 | elevation: 20.0, 33 | color: Colors.black, 34 | child: Column( 35 | mainAxisSize: MainAxisSize.min, 36 | mainAxisAlignment: MainAxisAlignment.center, 37 | crossAxisAlignment: CrossAxisAlignment.center, 38 | children: [ 39 | Text( 40 | new_Data[index]["organizer_name"], 41 | style: TextStyle( 42 | color: Colors.white, 43 | fontSize: ResponsiveWidget.isSmallScreen(context) 44 | ? 15.0 45 | : 25.0, 46 | ), 47 | ), 48 | SizedBox( 49 | height: 20.0, 50 | ), 51 | Row( 52 | mainAxisSize: MainAxisSize.min, 53 | mainAxisAlignment: MainAxisAlignment.start, 54 | children: [ 55 | CircleAvatar( 56 | backgroundImage: 57 | circleLogo(new_Data[index]["logo"]), 58 | backgroundColor: Colors.black, 59 | radius: ResponsiveWidget.isSmallScreen(context) 60 | ? 20.0 61 | : 30.0, 62 | ), 63 | SizedBox( 64 | width: 15.0, 65 | ), 66 | OrganizerMeetup( 67 | string: new_Data[index]["meetup_handle"]), 68 | SizedBox( 69 | width: 15.0, 70 | ), 71 | OrganizerTwitter( 72 | string: new_Data[index]["twitter_handle"], 73 | ), 74 | ], 75 | ), 76 | ], 77 | ), 78 | ), 79 | )); 80 | 81 | setState(() {}); 82 | }); 83 | } 84 | 85 | @override 86 | Widget build(BuildContext context) { 87 | return new_Data == null 88 | ? Center( 89 | child: CircularProgressIndicator(), 90 | ) 91 | : Wrap( 92 | spacing: 20, 93 | runSpacing: 20, 94 | runAlignment: WrapAlignment.center, 95 | children: widgets, 96 | ); 97 | } 98 | } 99 | -------------------------------------------------------------------------------- /lib/HomePage/OrganizerSection/OrganizerSection.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | 3 | import '../Responsiveness/Responsive.dart'; 4 | import 'OrganizerScreen.dart'; 5 | 6 | class OrganzerSection extends StatelessWidget { 7 | const OrganzerSection({ 8 | Key key, 9 | }) : super(key: key); 10 | 11 | @override 12 | Widget build(BuildContext context) { 13 | return Container( 14 | margin: EdgeInsets.only( 15 | top: 90, 16 | ), 17 | color: Colors.black, 18 | child: Column( 19 | children: [ 20 | SizedBox( 21 | height: 35, 22 | ), 23 | Center( 24 | child: Text( 25 | 'Organized by', 26 | style: TextStyle( 27 | fontSize: ResponsiveWidget.isSmallScreen(context) ? 35.0 : 55.0, 28 | fontFamily: 'assets/fonts/ProductSans.ttf', 29 | color: Colors.white, 30 | ), 31 | ), 32 | ), 33 | SizedBox( 34 | height: 35, 35 | ), 36 | OrganizerScreen(), 37 | SizedBox( 38 | height: 20, 39 | ), 40 | ], 41 | ), 42 | ); 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /lib/HomePage/OrganizerSection/Organizerhandle.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:url_launcher/url_launcher.dart'; 3 | 4 | import '../Responsiveness/Responsive.dart'; 5 | 6 | class OrganizerMeetup extends StatelessWidget { 7 | OrganizerMeetup({ 8 | Key key, 9 | @required this.string, 10 | }) : super(key: key); 11 | 12 | final String string; 13 | 14 | @override 15 | Widget build(BuildContext context) { 16 | if (string.isEmpty) { 17 | return Container( 18 | width: 0.0, 19 | height: 0.0, 20 | ); 21 | } 22 | return GestureDetector( 23 | onTap: () async { 24 | String url = string; 25 | if (await canLaunch(url)) { 26 | await launch(url); 27 | } else { 28 | throw 'Could not launch $url'; 29 | } 30 | }, 31 | child: CircleAvatar( 32 | radius: ResponsiveWidget.isSmallScreen(context) ? 20.0 : 30.0, 33 | backgroundImage: AssetImage('assets/Images/socialIcons/meetup.png'), 34 | ), 35 | ); 36 | } 37 | } 38 | 39 | class OrganizerTwitter extends StatelessWidget { 40 | final String string; 41 | 42 | const OrganizerTwitter({ 43 | Key key, 44 | @required this.string, 45 | }) : super(key: key); 46 | 47 | @override 48 | Widget build(BuildContext context) { 49 | if (string.isEmpty) { 50 | return Container( 51 | width: 0.0, 52 | height: 0.0, 53 | ); 54 | } 55 | return GestureDetector( 56 | onTap: () async { 57 | String url = string; 58 | if (await canLaunch(url)) { 59 | await launch(url); 60 | } else { 61 | throw 'Could not launch $url'; 62 | } 63 | }, 64 | child: CircleAvatar( 65 | radius: ResponsiveWidget.isSmallScreen(context) ? 20.0 : 30.0, 66 | backgroundImage: AssetImage('assets/Images/socialIcons/twitter.png'), 67 | ), 68 | ); 69 | } 70 | } 71 | -------------------------------------------------------------------------------- /lib/HomePage/PoweredBy/PoweredBy.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | 3 | import '../Responsiveness/Responsive.dart'; 4 | 5 | class PoweredBy extends StatelessWidget { 6 | @override 7 | Widget build(BuildContext context) { 8 | return Stack( 9 | children: [ 10 | Container( 11 | color: Colors.black, 12 | width: double.infinity, 13 | margin: EdgeInsets.only( 14 | top: 90.0, 15 | bottom: 90.0, 16 | ), 17 | ), 18 | Container( 19 | color: Colors.black, 20 | width: double.infinity, 21 | //height: MediaQuery.of(context).size.height / 2, 22 | child: Center( 23 | child: Column( 24 | children: [ 25 | SizedBox( 26 | height: 75.0, 27 | ), 28 | Text( 29 | 'Powered by', 30 | style: TextStyle( 31 | fontSize: 32 | ResponsiveWidget.isSmallScreen(context) ? 35.0 : 55.0, 33 | fontFamily: 'assets/fonts/ProductSans.ttf', 34 | color: Colors.white, 35 | ), 36 | ), 37 | SizedBox( 38 | height: 55.0, 39 | ), 40 | Padding( 41 | padding: const EdgeInsets.only( 42 | top: 10.0, bottom: 20.0, right: 10.0), 43 | child: Row( 44 | mainAxisAlignment: MainAxisAlignment.center, 45 | children: [ 46 | // CircleAvatar( 47 | // radius: ResponsiveWidget.isSmallScreen(context) 48 | // ? 20.0 49 | // : 35.0, 50 | // backgroundImage: 51 | // AssetImage('assets/Images/socialIcons/GDG.png'), 52 | // ), 53 | 54 | Image.asset( 55 | 'assets/Images/socialIcons/GDG.png', 56 | width: 57 | ResponsiveWidget.isSmallScreen(context) ? 200 : 600, 58 | ), 59 | ], 60 | ), 61 | ), 62 | SizedBox( 63 | height: ResponsiveWidget.isSmallScreen(context) ? 15.0 : 50.0, 64 | ), 65 | ], 66 | ), 67 | ), 68 | ), 69 | ], 70 | ); 71 | } 72 | } 73 | -------------------------------------------------------------------------------- /lib/HomePage/Responsiveness/Responsive.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | 3 | class ResponsiveWidget extends StatelessWidget { 4 | final Widget largeScreen; 5 | final Widget mediumScreen; 6 | final Widget smallScreen; 7 | 8 | ResponsiveWidget({this.largeScreen, this.mediumScreen, this.smallScreen}); 9 | 10 | static bool isLargeScreen(BuildContext context) { 11 | return MediaQuery.of(context).size.width > 1200; 12 | } 13 | 14 | static bool isSmallScreen(BuildContext context) { 15 | return MediaQuery.of(context).size.width < 750; 16 | } 17 | 18 | static bool isMediumScreen(BuildContext context) { 19 | return MediaQuery.of(context).size.width > 750 && 20 | MediaQuery.of(context).size.width < 1200; 21 | } 22 | 23 | @override 24 | Widget build(BuildContext context) { 25 | //Returns the widget which is more appropriate for the screen size 26 | return LayoutBuilder(builder: (context, constraints) { 27 | if (constraints.maxWidth > 1200) { 28 | return largeScreen; 29 | } else if (constraints.maxWidth > 800 && constraints.maxWidth < 1200) { 30 | //if medium screen not available, then return large screen 31 | return mediumScreen ?? largeScreen; 32 | } else { 33 | //if small screen implementation not available, then return large screen 34 | return smallScreen ?? largeScreen; 35 | } 36 | }); 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /lib/HomePage/ScheduleSection/EventCard.dart: -------------------------------------------------------------------------------- 1 | import 'package:FlutterConIndia2020/HomePage/Responsiveness/Responsive.dart'; 2 | import 'package:FlutterConIndia2020/utils/con_Info.dart'; 3 | import 'package:flutter/material.dart'; 4 | 5 | 6 | class EventCard extends StatelessWidget { 7 | const EventCard({ 8 | Key key, 9 | this.eventName, 10 | this.speakerName, 11 | this.image, 12 | this.time, 13 | }) : super(key: key); 14 | 15 | final String eventName; 16 | final String speakerName; 17 | final String image; 18 | final String time; 19 | 20 | @override 21 | Widget build(BuildContext context) { 22 | return Card( 23 | color: Colors.black, 24 | child: Row( 25 | children: [ 26 | CircleAvatar( 27 | radius: ResponsiveWidget.isSmallScreen(context) ? 30.0 : 45.0, 28 | backgroundColor: Colors.white, 29 | backgroundImage: NetworkImage(image), 30 | ), 31 | SizedBox( 32 | width: 10.0, 33 | ), 34 | Flexible( 35 | child: Column( 36 | crossAxisAlignment: CrossAxisAlignment.start, 37 | children: [ 38 | Text( 39 | eventName, 40 | textAlign: TextAlign.justify, 41 | style: TextStyle( 42 | fontFamily: Con_Info.fontfamily, 43 | fontWeight: FontWeight.bold, 44 | fontSize: 45 | ResponsiveWidget.isSmallScreen(context) ? 15.0 : 25.0, 46 | color: Colors.white, 47 | ), 48 | ), 49 | Text( 50 | speakerName, 51 | textAlign: TextAlign.left, 52 | softWrap: true, 53 | style: TextStyle( 54 | fontFamily: Con_Info.fontfamily, 55 | fontWeight: FontWeight.w400, 56 | fontSize: 57 | ResponsiveWidget.isSmallScreen(context) ? 13.0 : 25.0, 58 | color: Colors.white), 59 | ), 60 | Text( 61 | time, 62 | textAlign: TextAlign.left, 63 | softWrap: true, 64 | style: TextStyle( 65 | fontFamily: Con_Info.fontfamily, 66 | fontWeight: FontWeight.w200, 67 | fontSize: 68 | ResponsiveWidget.isSmallScreen(context) ? 12.0 : 22.0, 69 | color: Colors.white, 70 | ), 71 | ), 72 | ], 73 | ), 74 | ), 75 | ], 76 | ), 77 | ); 78 | } 79 | } 80 | -------------------------------------------------------------------------------- /lib/HomePage/ScheduleSection/ScheduleScreen.dart: -------------------------------------------------------------------------------- 1 | import 'package:FlutterConIndia2020/HomePage/Responsiveness/Responsive.dart'; 2 | import 'package:FlutterConIndia2020/utils/con_Info.dart'; 3 | import 'package:flutter/material.dart'; 4 | 5 | import 'EventCard.dart'; 6 | 7 | class ScheduleScreen extends StatefulWidget { 8 | @override 9 | _ScheduleScreenState createState() => _ScheduleScreenState(); 10 | } 11 | 12 | class _ScheduleScreenState extends State { 13 | int _index = 0; 14 | 15 | @override 16 | Widget build(BuildContext context) { 17 | return Stepper( 18 | currentStep: _index, 19 | onStepTapped: (index) { 20 | setState(() { 21 | _index = index; 22 | }); 23 | }, 24 | steps: [ 25 | Step( 26 | title: Text( 27 | 'Day 1', 28 | style: TextStyle( 29 | color: Colors.white, 30 | fontFamily: Con_Info.fontfamily, 31 | fontSize: 25.0, 32 | ), 33 | ), 34 | content: Column( 35 | children: [ 36 | EventCard( 37 | eventName: 'Opening Keynote', 38 | speakerName: 'Nilay Yener', 39 | image: "https://i.ibb.co/YPGk4ts/1538867099796.jpg", 40 | time: '20:30 - 21:00 IST', 41 | ), 42 | SizedBox( 43 | height: 50, 44 | ), 45 | EventCard( 46 | eventName: 'Grips of Flutter futures and async', 47 | speakerName: "Gazihan Alankus", 48 | image: "https://i.ibb.co/ZdKzwyk/412997.jpg", 49 | time: '21:10 - 21:50 IST', 50 | ), 51 | SizedBox( 52 | height: 50, 53 | ), 54 | EventCard( 55 | eventName: 'Responsive Web Apps in Flutter', 56 | speakerName: "Hasnen Tai", 57 | image: "https://i.ibb.co/bRmnbVX/1577189169479.jpg", 58 | time: '22:00 - 22:40 IST', 59 | ), 60 | ], 61 | ), 62 | state: StepState.indexed, 63 | isActive: true, 64 | ), 65 | Step( 66 | isActive: true, 67 | title: Text( 68 | 'Day 2', 69 | style: TextStyle( 70 | color: Colors.white, 71 | fontFamily: Con_Info.fontfamily, 72 | fontSize: 25.0, 73 | ), 74 | ), 75 | content: Column( 76 | children: [ 77 | EventCard( 78 | eventName: 'Efficient Internationalization of Flutter Apps', 79 | speakerName: 'Dominik Roszkowski', 80 | image: "https://i.ibb.co/Wx2TLR4/1605258985165.jpg", 81 | time: '20:30 - 21:10 IST', 82 | ), 83 | SizedBox( 84 | height: 50, 85 | ), 86 | EventCard( 87 | eventName: 'State Management in Flutter', 88 | speakerName: "Bhavesh Daswani", 89 | image: "https://i.ibb.co/t21GP9v/1593144268626.jpg", 90 | time: '21:20 - 22:00 IST', 91 | ), 92 | SizedBox( 93 | height: 50, 94 | ), 95 | EventCard( 96 | eventName: "What's new in Flutter Design Engineering", 97 | speakerName: "Will Larche", 98 | image: "https://i.ibb.co/5xvMjgv/1564173203214.jpg", 99 | time: '22:10 - 22:40 IST', 100 | ), 101 | ], 102 | ), 103 | ), 104 | Step( 105 | isActive: true, 106 | title: Text( 107 | 'Day 3', 108 | style: TextStyle( 109 | color: Colors.white, 110 | fontFamily: Con_Info.fontfamily, 111 | fontSize: 25.0, 112 | ), 113 | ), 114 | content: Column( 115 | children: [ 116 | EventCard( 117 | eventName: 118 | 'Scaling Flutter Architecture by Leveraging strategic Domain-Driven Design', 119 | speakerName: 'Majid Hajian', 120 | image: "https://i.ibb.co/vD26Pvc/1613316921147.jpg", 121 | time: '20:30 - 21:10 IST', 122 | ), 123 | SizedBox( 124 | height: 50, 125 | ), 126 | Card( 127 | color: Colors.black, 128 | child: Row( 129 | children: [ 130 | CircleAvatar( 131 | radius: 132 | ResponsiveWidget.isSmallScreen(context) ? 30.0 : 45.0, 133 | backgroundColor: Colors.white, 134 | backgroundImage: NetworkImage( 135 | 'https://i.ibb.co/DtjL0Jn/1553373963950.jpg'), 136 | ), 137 | SizedBox( 138 | width: 10.0, 139 | ), 140 | CircleAvatar( 141 | radius: 142 | ResponsiveWidget.isSmallScreen(context) ? 30.0 : 45.0, 143 | backgroundColor: Colors.white, 144 | backgroundImage: NetworkImage( 145 | 'https://i.ibb.co/DL1dfg9/1550405718408.jpg', 146 | ), 147 | ), 148 | SizedBox( 149 | width: 10.0, 150 | ), 151 | Flexible( 152 | child: Column( 153 | crossAxisAlignment: CrossAxisAlignment.start, 154 | children: [ 155 | Text( 156 | 'Mastering written Flutter Content', 157 | textAlign: TextAlign.justify, 158 | style: TextStyle( 159 | fontFamily: Con_Info.fontfamily, 160 | fontWeight: FontWeight.bold, 161 | fontSize: ResponsiveWidget.isSmallScreen(context) 162 | ? 15.0 163 | : 25.0, 164 | color: Colors.white, 165 | ), 166 | ), 167 | Text( 168 | 'Deven Joshi, Pooja Bhaumik', 169 | textAlign: TextAlign.left, 170 | softWrap: true, 171 | style: TextStyle( 172 | fontFamily: Con_Info.fontfamily, 173 | fontWeight: FontWeight.w400, 174 | fontSize: 175 | ResponsiveWidget.isSmallScreen(context) 176 | ? 13.0 177 | : 25.0, 178 | color: Colors.white), 179 | ), 180 | Text( 181 | '21:20 - 22:00 IST', 182 | textAlign: TextAlign.left, 183 | softWrap: true, 184 | style: TextStyle( 185 | fontFamily: Con_Info.fontfamily, 186 | fontWeight: FontWeight.w200, 187 | fontSize: ResponsiveWidget.isSmallScreen(context) 188 | ? 12.0 189 | : 22.0, 190 | color: Colors.white, 191 | ), 192 | ), 193 | ], 194 | ), 195 | ), 196 | ], 197 | ), 198 | ), 199 | SizedBox( 200 | height: 50, 201 | ), 202 | EventCard( 203 | eventName: 'Ending Keynote', 204 | speakerName: "Nikita Gandhi", 205 | image: "https://i.ibb.co/kgwsrWc/1578467205054.jpg", 206 | time: '22:10 - 22:50 IST', 207 | ), 208 | ], 209 | ), 210 | ), 211 | ], 212 | ); 213 | } 214 | } 215 | -------------------------------------------------------------------------------- /lib/HomePage/ScheduleSection/ScheduleSection.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:motion_widget/motion_widget.dart'; 3 | 4 | import '../Responsiveness/Responsive.dart'; 5 | import 'ScheduleScreen.dart'; 6 | 7 | class ScheduleSection extends StatelessWidget { 8 | const ScheduleSection({ 9 | Key key, 10 | @required this.motionExitConfigurations, 11 | }) : super(key: key); 12 | 13 | final MotionExitConfigurations motionExitConfigurations; 14 | 15 | @override 16 | Widget build(BuildContext context) { 17 | return Container( 18 | color: Colors.black, 19 | width: double.infinity, 20 | margin: EdgeInsets.only(top: 90.0), 21 | child: Motion( 22 | durationMs: 2500, 23 | crossAxisAlignment: CrossAxisAlignment.center, 24 | exitConfigurations: motionExitConfigurations, 25 | children: [ 26 | SizedBox( 27 | height: 35, 28 | ), 29 | MotionElement( 30 | interval: Interval(0.67, 1.0), 31 | child: Center( 32 | child: Text( 33 | 'Schedule', 34 | style: TextStyle( 35 | fontSize: 36 | ResponsiveWidget.isSmallScreen(context) ? 35.0 : 45.0, 37 | fontFamily: 'assets/fonts/ProductSans.ttf', 38 | color: Colors.white, 39 | ), 40 | ), 41 | ), 42 | ), 43 | SizedBox( 44 | height: 35, 45 | ), 46 | ScheduleScreen(), 47 | ], 48 | ), 49 | ); 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /lib/HomePage/SpeakerSection/SpeakerScreen.dart: -------------------------------------------------------------------------------- 1 | import 'dart:convert'; 2 | 3 | import 'package:FlutterConIndia2020/HomePage/Responsiveness/Responsive.dart'; 4 | import 'package:flutter/material.dart'; 5 | import 'package:flutter/services.dart'; 6 | import 'package:hover_effect/hover_effect.dart'; 7 | import 'package:url_launcher/url_launcher.dart'; 8 | 9 | import '../../utils/con_Info.dart'; 10 | 11 | class SpeakerScreen extends StatefulWidget { 12 | @override 13 | _SpeakerScreenState createState() => _SpeakerScreenState(); 14 | } 15 | 16 | class _SpeakerScreenState extends State { 17 | var new_speaker_Data; 18 | List widgets; 19 | 20 | @override 21 | void initState() { 22 | super.initState(); 23 | WidgetsBinding.instance.addPostFrameCallback( 24 | (timeStamp) async { 25 | String jsonnewData = await rootBundle.loadString(Con_Info.speakersjson); 26 | new_speaker_Data = json.decode(jsonnewData.toString()); 27 | print(new_speaker_Data); 28 | widgets = List.generate( 29 | new_speaker_Data.length, 30 | (index) => GestureDetector( 31 | onTap: () async { 32 | String url = new_speaker_Data[index]["twitter_handle"]; 33 | if (await canLaunch(url)) { 34 | await launch(url); 35 | } else { 36 | throw 'Could not launch $url'; 37 | } 38 | }, 39 | child: SizedBox( 40 | height: ResponsiveWidget.isSmallScreen(context) ? 150.0 : 400.0, 41 | width: ResponsiveWidget.isSmallScreen(context) ? 150.0 : 400.0, 42 | child: HoverCard( 43 | builder: (context, hovering) { 44 | return Card( 45 | elevation: 10.0, 46 | borderOnForeground: true, 47 | child: Container( 48 | width: 100, 49 | height: 400, 50 | child: Stack( 51 | children: [ 52 | Align( 53 | alignment: Alignment.bottomLeft, 54 | child: Column( 55 | mainAxisAlignment: MainAxisAlignment.end, 56 | children: [ 57 | Padding( 58 | padding: const EdgeInsets.only( 59 | bottom: 25.0, 60 | ), 61 | child: Container( 62 | color: Colors.white70, 63 | height: 64 | ResponsiveWidget.isSmallScreen(context) 65 | ? 40 66 | : 80, 67 | width: 68 | ResponsiveWidget.isSmallScreen(context) 69 | ? 100 70 | : 250, 71 | child: Center( 72 | child: Text( 73 | new_speaker_Data[index]["Speaker_name"], 74 | textAlign: TextAlign.left, 75 | softWrap: true, 76 | style: TextStyle( 77 | color: Colors.black, 78 | fontWeight: FontWeight.bold, 79 | fontSize: 80 | ResponsiveWidget.isSmallScreen( 81 | context, 82 | ) 83 | ? 9.0 84 | : 20.0, 85 | fontFamily: Con_Info.fontfamily, 86 | ), 87 | ), 88 | ), 89 | ), 90 | ), 91 | ], 92 | ), 93 | ), 94 | ], 95 | ), 96 | decoration: BoxDecoration( 97 | image: SpeakerImage(index), 98 | ), 99 | ), 100 | ); 101 | }, 102 | ), 103 | ), 104 | ), 105 | ); 106 | 107 | setState(() {}); 108 | }, 109 | ); 110 | } 111 | 112 | DecorationImage SpeakerImage(int index) { 113 | if (new_speaker_Data[index]["logo"].isEmpty) { 114 | return DecorationImage( 115 | fit: BoxFit.cover, 116 | colorFilter: new ColorFilter.mode( 117 | Colors.black.withOpacity(0.4), BlendMode.darken), 118 | image: AssetImage( 119 | 'assets/Images/Logos/Organizer_Logo/flutter_surat_logo.jpg', 120 | ), 121 | ); 122 | } 123 | return DecorationImage( 124 | fit: BoxFit.cover, 125 | colorFilter: new ColorFilter.mode( 126 | Colors.black.withOpacity(0.2), 127 | BlendMode.dstATop, 128 | ), 129 | image: NetworkImage( 130 | new_speaker_Data[index]["logo"], 131 | ), 132 | ); 133 | } 134 | 135 | @override 136 | Widget build(BuildContext context) { 137 | return new_speaker_Data == null 138 | ? Center( 139 | child: CircularProgressIndicator(), 140 | ) 141 | : Wrap( 142 | spacing: 20, 143 | runSpacing: 20, 144 | runAlignment: WrapAlignment.center, 145 | children: widgets, 146 | ); 147 | } 148 | } 149 | -------------------------------------------------------------------------------- /lib/background/graphic.dart: -------------------------------------------------------------------------------- 1 | import 'dart:math'; 2 | 3 | import 'package:flutter/material.dart'; 4 | 5 | class DiagonalApp extends StatelessWidget { 6 | @override 7 | Widget build(BuildContext context) => Container( 8 | color: Colors.black, 9 | width: double.infinity, 10 | child: Wrap( 11 | children: List.generate( 12 | 500, 13 | (index) => SizedBox( 14 | width: 50, 15 | child: AspectRatio( 16 | aspectRatio: 1, 17 | child: Transform.rotate( 18 | angle: Random().nextBool() ? pi / 2 : 0, 19 | child: CustomPaint( 20 | painter: Curved(), 21 | ), 22 | ), 23 | ), 24 | ), 25 | ), 26 | ), 27 | ); 28 | } 29 | 30 | class Curved extends CustomPainter { 31 | @override 32 | void paint(Canvas canvas, Size size) { 33 | final third = size.width / 2; 34 | 35 | final paint = Paint() 36 | ..color = Color.fromRGBO(29, 161, 242, 20) 37 | ..strokeWidth = 8 38 | ..style = PaintingStyle.stroke 39 | ..strokeJoin = StrokeJoin.round; 40 | 41 | final topCurve = Path(); 42 | topCurve.moveTo(third, 0); 43 | topCurve.quadraticBezierTo(third, third, 0, third); 44 | canvas.drawPath(topCurve, paint); 45 | 46 | final bottomCurve = Path(); 47 | bottomCurve.moveTo(size.width, size.height - third); 48 | bottomCurve.quadraticBezierTo(size.width - third, size.height - third, 49 | size.width - third, size.height); 50 | 51 | canvas.drawPath(bottomCurve, paint); 52 | } 53 | 54 | @override 55 | bool shouldRepaint(CustomPainter oldDelegate) => false; 56 | } 57 | 58 | 59 | // This code was written by Robert Felker 60 | // Codepen Link: https://codepen.io/blueaquilae/pen/ExVZJqp 61 | -------------------------------------------------------------------------------- /lib/main.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:flutter/services.dart'; 3 | 4 | import 'HomePage/HomePage.dart'; 5 | 6 | void main() async { 7 | runApp( 8 | MyApp(), 9 | ); 10 | SystemChrome.setSystemUIOverlayStyle( 11 | SystemUiOverlayStyle(statusBarColor: Colors.transparent)); 12 | SystemChrome.setPreferredOrientations([ 13 | DeviceOrientation.portraitUp, 14 | DeviceOrientation.portraitDown, 15 | ]); 16 | } 17 | 18 | class MyApp extends StatelessWidget { 19 | @override 20 | Widget build(BuildContext context) { 21 | return MaterialApp( 22 | title: 'Flutter India Conference 2020', 23 | theme: ThemeData( 24 | textTheme: TextTheme( 25 | headline5: TextStyle( 26 | color: Colors.white, 27 | fontWeight: FontWeight.w600, 28 | fontFamily: 'assets/fonts/ProductSans.ttf', 29 | fontSize: 35.0, 30 | ), 31 | ), 32 | ), 33 | debugShowCheckedModeBanner: false, 34 | home: HomePageNew(), 35 | routes: { 36 | HomePageNew.tag: (context) => HomePageNew(), 37 | }, 38 | ); 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /lib/organizer_screen.dart: -------------------------------------------------------------------------------- 1 | import 'dart:convert'; 2 | 3 | import 'package:FlutterConIndia2020/utils/con_info.dart'; 4 | import 'package:flutter/material.dart'; 5 | import 'package:flutter/services.dart'; 6 | 7 | import 'HomePage/OrganizerSection/Organizerhandle.dart'; 8 | import 'HomePage/Responsiveness/Responsive.dart'; 9 | 10 | class OrganizerScreen extends StatefulWidget { 11 | @override 12 | _OrganizerScreenState createState() => _OrganizerScreenState(); 13 | } 14 | 15 | class _OrganizerScreenState extends State { 16 | var new_Data; 17 | List widgets; 18 | 19 | @override 20 | void initState() { 21 | super.initState(); 22 | WidgetsBinding.instance.addPostFrameCallback((timeStamp) async { 23 | String jsonData = await rootBundle.loadString(Con_Info.organizerjson); 24 | new_Data = json.decode(jsonData.toString()); 25 | widgets = List.generate( 26 | 9, 27 | (index) => SizedBox( 28 | width: MediaQuery.of(context).size.width * 0.3, 29 | child: Column( 30 | mainAxisSize: MainAxisSize.min, 31 | mainAxisAlignment: MainAxisAlignment.center, 32 | crossAxisAlignment: CrossAxisAlignment.center, 33 | children: [ 34 | Text( 35 | new_Data[index]["organizer_name"], 36 | style: TextStyle( 37 | color: Colors.white, 38 | fontSize: ResponsiveWidget.isSmallScreen(context) 39 | ? 15.0 40 | : 25.0, 41 | ), 42 | ), 43 | SizedBox( 44 | height: 20.0, 45 | ), 46 | Row( 47 | mainAxisSize: MainAxisSize.min, 48 | mainAxisAlignment: MainAxisAlignment.start, 49 | children: [ 50 | CircleAvatar( 51 | backgroundImage: 52 | CircleLogo(new_Data[index]["logoUrl"]), 53 | backgroundColor: Colors.black, 54 | ), 55 | SizedBox( 56 | width: 15.0, 57 | ), 58 | OrganizerMeetup( 59 | string: new_Data[index]["meetup_handle"]), 60 | SizedBox( 61 | width: 15.0, 62 | ), 63 | OrganizerTwitter( 64 | string: new_Data[index]["twitter_handle"], 65 | ), 66 | ], 67 | ), 68 | ], 69 | ), 70 | )); 71 | // await Future.delayed(Duration(seconds: 5)); 72 | 73 | setState(() {}); 74 | }); 75 | } 76 | 77 | @override 78 | Widget build(BuildContext context) { 79 | return new_Data == null 80 | ? Center( 81 | child: CircularProgressIndicator(), 82 | ) 83 | : Wrap( 84 | spacing: 20, 85 | runSpacing: 20, 86 | runAlignment: WrapAlignment.center, 87 | children: widgets, 88 | ); 89 | } 90 | } 91 | 92 | NetworkImage CircleLogo(String string) { 93 | String defaultLogoUrl = 94 | "https://miro.medium.com/max/1000/1*ilC2Aqp5sZd1wi0CopD1Hw.png"; 95 | 96 | return NetworkImage(string ?? defaultLogoUrl); 97 | } 98 | -------------------------------------------------------------------------------- /lib/utils/Motion.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:motion_widget/motion_widget.dart'; 3 | 4 | class Motion { 5 | static MotionElement getFeatureItem(Interval interval, String text) { 6 | return MotionElement( 7 | interval: interval, 8 | child: Row( 9 | crossAxisAlignment: CrossAxisAlignment.start, 10 | children: [ 11 | SizedBox(width: 10), 12 | Flexible( 13 | child: Text( 14 | text, 15 | style: TextStyle(fontSize: 20, fontWeight: FontWeight.w500), 16 | ), 17 | ), 18 | ], 19 | ), 20 | ); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /lib/utils/con_info.dart: -------------------------------------------------------------------------------- 1 | class Con_Info { 2 | static const String app_name = 'Flutter India Conference 2020'; 3 | static const String app_version = "Version 1.0.0"; 4 | static const int app_version_code = 1; 5 | static bool isDebugMode = true; 6 | static const String welcomeText = 'Welcome to Flutter India '; 7 | static const String descriptionText = 8 | 'FlutterCon India is an online event driven by Indian Flutter Communities to gather all Flutter passionates and learn to create beautiful apps!'; 9 | static const String goal = 10 | 'Our goal is to share Flutter knowledge, improve Flutter skills, and expand the Flutter community.'; 11 | static const String eventtime = 12 | 'The week of Friday May 1 to , Sunday May 3 at 20:00 hr (IST) two Flutter talks will be given and broadcasted on Youtube.'; 13 | 14 | static const String fontfamily = 'assets/fonts/ProductSans.ttf'; 15 | static const organizerjson = "assets/json/organizers.json"; 16 | static const speakersjson = "assets/json/speakers.json"; 17 | } 18 | -------------------------------------------------------------------------------- /lib/widgets/widget.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:FlutterConIndia2020/utils/con_Info.dart'; 3 | 4 | import '../HomePage/Responsiveness/Responsive.dart'; 5 | 6 | class FlutterWorldUnited extends StatelessWidget { 7 | FlutterWorldUnited({Key key, this.color}) : super(key: key); 8 | Color color; 9 | @override 10 | Widget build(BuildContext context) { 11 | return Padding( 12 | padding: EdgeInsets.only( 13 | left: ResponsiveWidget.isSmallScreen(context) ? 30.0 : 200.0, 14 | right: 100.0, 15 | top: 7.0, 16 | bottom: 7.0, 17 | ), 18 | child: Align( 19 | alignment: Alignment.topLeft, 20 | child: Text( 21 | 'Flutter world reunited 🌎', 22 | textAlign: TextAlign.justify, 23 | style: TextStyle( 24 | fontSize: ResponsiveWidget.isSmallScreen(context) ? 30.0 : 45.0, 25 | color: color, 26 | fontWeight: FontWeight.w600, 27 | fontFamily: 'assets/fonts/ProductSans.ttf', 28 | wordSpacing: 0.2, 29 | ), 30 | ), 31 | ), 32 | ); 33 | } 34 | } 35 | 36 | class GoadAns extends StatelessWidget { 37 | GoadAns({ 38 | Key key, 39 | this.color, 40 | }) : super(key: key); 41 | Color color; 42 | @override 43 | Widget build(BuildContext context) { 44 | return Padding( 45 | padding: EdgeInsets.only( 46 | left: ResponsiveWidget.isSmallScreen(context) ? 30.0 : 200.0, 47 | right: 100.0, 48 | top: 7.0, 49 | bottom: 7.0, 50 | ), 51 | child: Align( 52 | alignment: Alignment.topLeft, 53 | child: Text( 54 | Con_Info.goal, 55 | textAlign: TextAlign.justify, 56 | style: TextStyle( 57 | color: color, 58 | //color: Colors.white70, 59 | fontSize: ResponsiveWidget.isSmallScreen(context) ? 15.0 : 25.0, 60 | fontFamily: 'assets/fonts/ProductSans.ttf', 61 | ), 62 | ), 63 | ), 64 | ); 65 | } 66 | } 67 | 68 | class GoalHead extends StatelessWidget { 69 | GoalHead({ 70 | Key key, 71 | this.color, 72 | }) : super(key: key); 73 | Color color; 74 | @override 75 | Widget build(BuildContext context) { 76 | return Padding( 77 | padding: EdgeInsets.only( 78 | left: ResponsiveWidget.isSmallScreen(context) ? 30.0 : 200.0, 79 | right: 30.0, 80 | top: 7.0, 81 | bottom: 7.0, 82 | ), 83 | child: Align( 84 | alignment: Alignment.topLeft, 85 | child: Text( 86 | 'Our Goal 🎯', 87 | textAlign: TextAlign.justify, 88 | style: TextStyle( 89 | fontSize: ResponsiveWidget.isSmallScreen(context) ? 30.0 : 45.0, 90 | color: color, 91 | fontWeight: FontWeight.w600, 92 | fontFamily: 'assets/fonts/ProductSans.ttf', 93 | ), 94 | ), 95 | ), 96 | ); 97 | } 98 | } 99 | 100 | class EventTime extends StatelessWidget { 101 | EventTime({ 102 | Key key, 103 | this.color, 104 | }) : super(key: key); 105 | Color color; 106 | @override 107 | Widget build(BuildContext context) { 108 | return Padding( 109 | padding: EdgeInsets.only( 110 | left: ResponsiveWidget.isSmallScreen(context) ? 30.0 : 200.0, 111 | right: 100.0, 112 | top: 7.0, 113 | bottom: 7.0, 114 | ), 115 | child: Align( 116 | alignment: Alignment.topLeft, 117 | child: Text( 118 | Con_Info.eventtime, 119 | textAlign: TextAlign.justify, 120 | style: TextStyle( 121 | color: color, 122 | fontSize: ResponsiveWidget.isSmallScreen(context) ? 15.0 : 25.0, 123 | fontFamily: 'assets/fonts/ProductSans.ttf', 124 | ), 125 | ), 126 | ), 127 | ); 128 | } 129 | } 130 | 131 | class When extends StatelessWidget { 132 | When({Key key, this.color}) : super(key: key); 133 | Color color; 134 | @override 135 | Widget build(BuildContext context) { 136 | return Padding( 137 | padding: EdgeInsets.only( 138 | left: ResponsiveWidget.isSmallScreen(context) ? 30.0 : 200.0, 139 | right: 100.0, 140 | top: 7.0, 141 | bottom: 7.0, 142 | ), 143 | child: Align( 144 | alignment: Alignment.topLeft, 145 | child: Text( 146 | 'When? ⏰️', 147 | textAlign: TextAlign.justify, 148 | style: TextStyle( 149 | fontSize: ResponsiveWidget.isSmallScreen(context) ? 35.0 : 45.0, 150 | color: color, 151 | fontWeight: FontWeight.w600, 152 | fontFamily: 'assets/fonts/ProductSans.ttf', 153 | ), 154 | ), 155 | ), 156 | ); 157 | } 158 | } 159 | 160 | class EventDesc extends StatelessWidget { 161 | EventDesc({ 162 | Key key, 163 | }) : super(key: key); 164 | 165 | @override 166 | Widget build(BuildContext context) { 167 | return Padding( 168 | padding: EdgeInsets.only( 169 | left: ResponsiveWidget.isSmallScreen(context) ? 30.0 : 200.0, 170 | right: 100.0, 171 | top: 7.0, 172 | bottom: 7.0, 173 | ), 174 | child: Align( 175 | alignment: Alignment.topLeft, 176 | child: Text( 177 | Con_Info.descriptionText, 178 | textAlign: TextAlign.justify, 179 | style: TextStyle( 180 | color: Colors.white, 181 | fontSize: ResponsiveWidget.isSmallScreen(context) ? 15.0 : 25.0, 182 | fontFamily: 'assets/fonts/ProductSans.ttf', 183 | ), 184 | ), 185 | ), 186 | ); 187 | } 188 | } 189 | 190 | class WhatisFlutterConIndia extends StatelessWidget { 191 | WhatisFlutterConIndia({ 192 | Key key, 193 | }) : super(key: key); 194 | 195 | @override 196 | Widget build(BuildContext context) { 197 | return Padding( 198 | padding: EdgeInsets.only( 199 | left: ResponsiveWidget.isSmallScreen(context) ? 30.0 : 200.0, 200 | right: 100.0, 201 | top: 7.0, 202 | bottom: 7.0, 203 | ), 204 | child: Align( 205 | alignment: Alignment.topLeft, 206 | child: Text( 207 | 'What is FlutterCon India?', 208 | textAlign: TextAlign.justify, 209 | style: TextStyle( 210 | fontSize: ResponsiveWidget.isSmallScreen(context) ? 30.0 : 45.0, 211 | color: Colors.white, 212 | fontWeight: FontWeight.w600, 213 | fontFamily: 'assets/fonts/ProductSans.ttf', 214 | ), 215 | ), 216 | ), 217 | ); 218 | } 219 | } 220 | -------------------------------------------------------------------------------- /lib/widgets/worldReunite.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | 3 | import '../HomePage/Responsiveness/Responsive.dart'; 4 | 5 | class WorldReunitedQuote extends StatelessWidget { 6 | WorldReunitedQuote({ 7 | this.color, 8 | this.fonts, 9 | }); 10 | 11 | final Color color; 12 | String fonts = 'assets/fonts/ProductSans.ttf'; 13 | 14 | @override 15 | Widget build(BuildContext context) { 16 | return Padding( 17 | padding: EdgeInsets.only( 18 | left: ResponsiveWidget.isSmallScreen(context) ? 30.0 : 200.0, 19 | right: 100.0, 20 | top: 7.0, 21 | bottom: 7.0, 22 | ), 23 | child: Align( 24 | alignment: Alignment.topLeft, 25 | child: Text( 26 | 'People! Want to meet the most recognizable Flutter developers and talk with them?\nThis is the place!\nFlutter India is the easiest way to talk with them.', 27 | textAlign: TextAlign.justify, 28 | style: TextStyle( 29 | color: color, 30 | fontSize: ResponsiveWidget.isSmallScreen(context) ? 15.0 : 25.0, 31 | fontFamily: fonts, 32 | ), 33 | ), 34 | ), 35 | ); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /pubspec.lock: -------------------------------------------------------------------------------- 1 | # Generated by pub 2 | # See https://dart.dev/tools/pub/glossary#lockfile 3 | packages: 4 | archive: 5 | dependency: transitive 6 | description: 7 | name: archive 8 | url: "https://pub.dartlang.org" 9 | source: hosted 10 | version: "3.1.2" 11 | async: 12 | dependency: transitive 13 | description: 14 | name: async 15 | url: "https://pub.dartlang.org" 16 | source: hosted 17 | version: "2.5.0" 18 | boolean_selector: 19 | dependency: transitive 20 | description: 21 | name: boolean_selector 22 | url: "https://pub.dartlang.org" 23 | source: hosted 24 | version: "2.1.0" 25 | cached_network_image: 26 | dependency: "direct main" 27 | description: 28 | name: cached_network_image 29 | url: "https://pub.dartlang.org" 30 | source: hosted 31 | version: "2.5.1" 32 | characters: 33 | dependency: transitive 34 | description: 35 | name: characters 36 | url: "https://pub.dartlang.org" 37 | source: hosted 38 | version: "1.1.0" 39 | charcode: 40 | dependency: transitive 41 | description: 42 | name: charcode 43 | url: "https://pub.dartlang.org" 44 | source: hosted 45 | version: "1.2.0" 46 | clock: 47 | dependency: transitive 48 | description: 49 | name: clock 50 | url: "https://pub.dartlang.org" 51 | source: hosted 52 | version: "1.1.0" 53 | collection: 54 | dependency: transitive 55 | description: 56 | name: collection 57 | url: "https://pub.dartlang.org" 58 | source: hosted 59 | version: "1.15.0" 60 | crypto: 61 | dependency: transitive 62 | description: 63 | name: crypto 64 | url: "https://pub.dartlang.org" 65 | source: hosted 66 | version: "3.0.1" 67 | cupertino_icons: 68 | dependency: "direct main" 69 | description: 70 | name: cupertino_icons 71 | url: "https://pub.dartlang.org" 72 | source: hosted 73 | version: "0.1.3" 74 | fake_async: 75 | dependency: transitive 76 | description: 77 | name: fake_async 78 | url: "https://pub.dartlang.org" 79 | source: hosted 80 | version: "1.2.0" 81 | ffi: 82 | dependency: transitive 83 | description: 84 | name: ffi 85 | url: "https://pub.dartlang.org" 86 | source: hosted 87 | version: "1.0.0" 88 | file: 89 | dependency: transitive 90 | description: 91 | name: file 92 | url: "https://pub.dartlang.org" 93 | source: hosted 94 | version: "6.1.0" 95 | flutter: 96 | dependency: "direct main" 97 | description: flutter 98 | source: sdk 99 | version: "0.0.0" 100 | flutter_blurhash: 101 | dependency: transitive 102 | description: 103 | name: flutter_blurhash 104 | url: "https://pub.dartlang.org" 105 | source: hosted 106 | version: "0.5.0" 107 | flutter_cache_manager: 108 | dependency: transitive 109 | description: 110 | name: flutter_cache_manager 111 | url: "https://pub.dartlang.org" 112 | source: hosted 113 | version: "2.1.2" 114 | flutter_test: 115 | dependency: "direct dev" 116 | description: flutter 117 | source: sdk 118 | version: "0.0.0" 119 | flutter_web_plugins: 120 | dependency: transitive 121 | description: flutter 122 | source: sdk 123 | version: "0.0.0" 124 | font_awesome_flutter: 125 | dependency: "direct main" 126 | description: 127 | name: font_awesome_flutter 128 | url: "https://pub.dartlang.org" 129 | source: hosted 130 | version: "8.12.0" 131 | hover_effect: 132 | dependency: "direct main" 133 | description: 134 | name: hover_effect 135 | url: "https://pub.dartlang.org" 136 | source: hosted 137 | version: "0.6.0" 138 | http: 139 | dependency: transitive 140 | description: 141 | name: http 142 | url: "https://pub.dartlang.org" 143 | source: hosted 144 | version: "0.13.1" 145 | http_parser: 146 | dependency: transitive 147 | description: 148 | name: http_parser 149 | url: "https://pub.dartlang.org" 150 | source: hosted 151 | version: "4.0.0" 152 | image: 153 | dependency: transitive 154 | description: 155 | name: image 156 | url: "https://pub.dartlang.org" 157 | source: hosted 158 | version: "3.0.2" 159 | js: 160 | dependency: transitive 161 | description: 162 | name: js 163 | url: "https://pub.dartlang.org" 164 | source: hosted 165 | version: "0.6.3" 166 | matcher: 167 | dependency: transitive 168 | description: 169 | name: matcher 170 | url: "https://pub.dartlang.org" 171 | source: hosted 172 | version: "0.12.10" 173 | meta: 174 | dependency: transitive 175 | description: 176 | name: meta 177 | url: "https://pub.dartlang.org" 178 | source: hosted 179 | version: "1.3.0" 180 | mime: 181 | dependency: transitive 182 | description: 183 | name: mime 184 | url: "https://pub.dartlang.org" 185 | source: hosted 186 | version: "0.9.7" 187 | motion_widget: 188 | dependency: "direct main" 189 | description: 190 | name: motion_widget 191 | url: "https://pub.dartlang.org" 192 | source: hosted 193 | version: "1.0.2" 194 | octo_image: 195 | dependency: transitive 196 | description: 197 | name: octo_image 198 | url: "https://pub.dartlang.org" 199 | source: hosted 200 | version: "0.3.0" 201 | path: 202 | dependency: transitive 203 | description: 204 | name: path 205 | url: "https://pub.dartlang.org" 206 | source: hosted 207 | version: "1.8.0" 208 | path_provider: 209 | dependency: transitive 210 | description: 211 | name: path_provider 212 | url: "https://pub.dartlang.org" 213 | source: hosted 214 | version: "2.0.1" 215 | path_provider_linux: 216 | dependency: transitive 217 | description: 218 | name: path_provider_linux 219 | url: "https://pub.dartlang.org" 220 | source: hosted 221 | version: "2.0.0" 222 | path_provider_macos: 223 | dependency: transitive 224 | description: 225 | name: path_provider_macos 226 | url: "https://pub.dartlang.org" 227 | source: hosted 228 | version: "2.0.0" 229 | path_provider_platform_interface: 230 | dependency: transitive 231 | description: 232 | name: path_provider_platform_interface 233 | url: "https://pub.dartlang.org" 234 | source: hosted 235 | version: "2.0.0" 236 | path_provider_windows: 237 | dependency: transitive 238 | description: 239 | name: path_provider_windows 240 | url: "https://pub.dartlang.org" 241 | source: hosted 242 | version: "2.0.1" 243 | pedantic: 244 | dependency: transitive 245 | description: 246 | name: pedantic 247 | url: "https://pub.dartlang.org" 248 | source: hosted 249 | version: "1.11.0" 250 | petitparser: 251 | dependency: transitive 252 | description: 253 | name: petitparser 254 | url: "https://pub.dartlang.org" 255 | source: hosted 256 | version: "4.1.0" 257 | platform: 258 | dependency: transitive 259 | description: 260 | name: platform 261 | url: "https://pub.dartlang.org" 262 | source: hosted 263 | version: "3.0.0" 264 | plugin_platform_interface: 265 | dependency: transitive 266 | description: 267 | name: plugin_platform_interface 268 | url: "https://pub.dartlang.org" 269 | source: hosted 270 | version: "1.0.3" 271 | process: 272 | dependency: transitive 273 | description: 274 | name: process 275 | url: "https://pub.dartlang.org" 276 | source: hosted 277 | version: "4.2.1" 278 | rxdart: 279 | dependency: transitive 280 | description: 281 | name: rxdart 282 | url: "https://pub.dartlang.org" 283 | source: hosted 284 | version: "0.25.0" 285 | share: 286 | dependency: "direct main" 287 | description: 288 | name: share 289 | url: "https://pub.dartlang.org" 290 | source: hosted 291 | version: "0.6.5+4" 292 | sky_engine: 293 | dependency: transitive 294 | description: flutter 295 | source: sdk 296 | version: "0.0.99" 297 | source_span: 298 | dependency: transitive 299 | description: 300 | name: source_span 301 | url: "https://pub.dartlang.org" 302 | source: hosted 303 | version: "1.8.0" 304 | sqflite: 305 | dependency: transitive 306 | description: 307 | name: sqflite 308 | url: "https://pub.dartlang.org" 309 | source: hosted 310 | version: "2.0.0+3" 311 | sqflite_common: 312 | dependency: transitive 313 | description: 314 | name: sqflite_common 315 | url: "https://pub.dartlang.org" 316 | source: hosted 317 | version: "2.0.0+2" 318 | stack_trace: 319 | dependency: transitive 320 | description: 321 | name: stack_trace 322 | url: "https://pub.dartlang.org" 323 | source: hosted 324 | version: "1.10.0" 325 | stream_channel: 326 | dependency: transitive 327 | description: 328 | name: stream_channel 329 | url: "https://pub.dartlang.org" 330 | source: hosted 331 | version: "2.1.0" 332 | string_scanner: 333 | dependency: transitive 334 | description: 335 | name: string_scanner 336 | url: "https://pub.dartlang.org" 337 | source: hosted 338 | version: "1.1.0" 339 | synchronized: 340 | dependency: transitive 341 | description: 342 | name: synchronized 343 | url: "https://pub.dartlang.org" 344 | source: hosted 345 | version: "3.0.0" 346 | term_glyph: 347 | dependency: transitive 348 | description: 349 | name: term_glyph 350 | url: "https://pub.dartlang.org" 351 | source: hosted 352 | version: "1.2.0" 353 | test_api: 354 | dependency: transitive 355 | description: 356 | name: test_api 357 | url: "https://pub.dartlang.org" 358 | source: hosted 359 | version: "0.2.19" 360 | typed_data: 361 | dependency: transitive 362 | description: 363 | name: typed_data 364 | url: "https://pub.dartlang.org" 365 | source: hosted 366 | version: "1.3.0" 367 | url_launcher: 368 | dependency: "direct main" 369 | description: 370 | name: url_launcher 371 | url: "https://pub.dartlang.org" 372 | source: hosted 373 | version: "5.7.10" 374 | url_launcher_linux: 375 | dependency: transitive 376 | description: 377 | name: url_launcher_linux 378 | url: "https://pub.dartlang.org" 379 | source: hosted 380 | version: "0.0.1+4" 381 | url_launcher_macos: 382 | dependency: transitive 383 | description: 384 | name: url_launcher_macos 385 | url: "https://pub.dartlang.org" 386 | source: hosted 387 | version: "0.0.1+9" 388 | url_launcher_platform_interface: 389 | dependency: transitive 390 | description: 391 | name: url_launcher_platform_interface 392 | url: "https://pub.dartlang.org" 393 | source: hosted 394 | version: "1.0.9" 395 | url_launcher_web: 396 | dependency: transitive 397 | description: 398 | name: url_launcher_web 399 | url: "https://pub.dartlang.org" 400 | source: hosted 401 | version: "0.1.5+3" 402 | url_launcher_windows: 403 | dependency: transitive 404 | description: 405 | name: url_launcher_windows 406 | url: "https://pub.dartlang.org" 407 | source: hosted 408 | version: "0.0.1+3" 409 | uuid: 410 | dependency: transitive 411 | description: 412 | name: uuid 413 | url: "https://pub.dartlang.org" 414 | source: hosted 415 | version: "3.0.4" 416 | vector_math: 417 | dependency: transitive 418 | description: 419 | name: vector_math 420 | url: "https://pub.dartlang.org" 421 | source: hosted 422 | version: "2.1.0" 423 | win32: 424 | dependency: transitive 425 | description: 426 | name: win32 427 | url: "https://pub.dartlang.org" 428 | source: hosted 429 | version: "2.0.5" 430 | xdg_directories: 431 | dependency: transitive 432 | description: 433 | name: xdg_directories 434 | url: "https://pub.dartlang.org" 435 | source: hosted 436 | version: "0.2.0" 437 | xml: 438 | dependency: transitive 439 | description: 440 | name: xml 441 | url: "https://pub.dartlang.org" 442 | source: hosted 443 | version: "5.1.0" 444 | sdks: 445 | dart: ">=2.12.0 <3.0.0" 446 | flutter: ">=1.24.0-10" 447 | -------------------------------------------------------------------------------- /pubspec.yaml: -------------------------------------------------------------------------------- 1 | name: FlutterConIndia2020 2 | description: This is a New Website of Flutter India Conference 2020.FlutterCon India is an online event driven by Indian Flutter Communities to gather all Flutter passionates and learn to create beautiful apps! Our goal is to share Flutter knowledge, improve Flutter skills, and expand the Flutter community. The 1st edition of FlutterCon India will take place on May 1-3, 2020. Best-in-class speakers from Flutter community around the globe will be presenting live on various Flutter topics. 3 | 4 | # The following line prevents the package from being accidentally published to 5 | # pub.dev using `pub publish`. This is preferred for private packages. 6 | publish_to: 'none' # Remove this line if you wish to publish to pub.dev 7 | 8 | # The following defines the version and build number for your application. 9 | # A version number is three numbers separated by dots, like 1.2.43 10 | # followed by an optional build number separated by a +. 11 | # Both the version and the builder number may be overridden in flutter 12 | # build by specifying --build-name and --build-number, respectively. 13 | # In Android, build-name is used as versionName while build-number used as versionCode. 14 | # Read more about Android versioning at https://developer.android.com/studio/publish/versioning 15 | # In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion. 16 | # Read more about iOS versioning at 17 | # https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html 18 | version: 1.0.0+1 19 | 20 | environment: 21 | sdk: ">=2.7.0 <3.0.0" 22 | 23 | dependencies: 24 | flutter: 25 | sdk: flutter 26 | 27 | 28 | 29 | # The following adds the Cupertino Icons font to your application. 30 | # Use with the CupertinoIcons class for iOS style icons. 31 | cupertino_icons: ^0.1.3 32 | font_awesome_flutter: ^8.8.1 33 | url_launcher: ^5.4.5 34 | share: ^0.6.4 35 | hover_effect: ^0.6.0 36 | motion_widget: ^1.0.2 37 | cached_network_image: ^2.1.0+1 38 | 39 | 40 | 41 | dev_dependencies: 42 | flutter_test: 43 | sdk: flutter 44 | 45 | # For information on the generic Dart part of this file, see the 46 | # following page: https://dart.dev/tools/pub/pubspec 47 | 48 | # The following section is specific to Flutter. 49 | flutter: 50 | 51 | # The following line ensures that the Material Icons font is 52 | # included with your application, so that you can use the icons in 53 | # the material Icons class. 54 | uses-material-design: true 55 | 56 | # To add assets to your application, add an assets section, like this: 57 | assets: 58 | - assets/ 59 | - assets/Images/ 60 | - assets/Images/cover_Images/ 61 | - assets/Images/extra/ 62 | - assets/Images/Logos/ 63 | - assets/Images/socialIcons/ 64 | - assets/Images/socialIcons/youtube_social_circle_red.png 65 | - assets/Images/Logos/FlutterConLogos/ 66 | - assets/Images/Logos/Organizer_Logo/ 67 | - assets/Images/Logos/Sponsors_Logo/ 68 | - assets/json/ 69 | # assets: 70 | # - images/a_dot_burr.jpeg 71 | # - images/a_dot_ham.jpeg 72 | 73 | # An image asset can refer to one or more resolution-specific "variants", see 74 | # https://flutter.dev/assets-and-images/#resolution-aware. 75 | 76 | # For details regarding adding assets from package dependencies, see 77 | # https://flutter.dev/assets-and-images/#from-packages 78 | 79 | # To add custom fonts to your application, add a fonts section here, 80 | # in this "flutter" section. Each entry in this list should have a 81 | # "family" key with the font family name, and a "fonts" key with a 82 | # list giving the asset and other descriptors for the font. For 83 | # example: 84 | fonts: 85 | - family: Product Sans 86 | fonts: 87 | - asset: assets/fonts/ProductSans.ttf 88 | - family: Rocky Billy 89 | fonts: 90 | - asset: assets/fonts/rockybilly.ttf 91 | # fonts: 92 | # - family: Schyler 93 | # fonts: 94 | # - asset: fonts/Schyler-Regular.ttf 95 | # - asset: fonts/Schyler-Italic.ttf 96 | # style: italic 97 | # - family: Trajan Pro 98 | # fonts: 99 | # - asset: fonts/TrajanPro.ttf 100 | # - asset: fonts/TrajanPro_Bold.ttf 101 | # weight: 700 102 | # 103 | # For details regarding fonts from package dependencies, 104 | # see https://flutter.dev/custom-fonts/#from-packages 105 | -------------------------------------------------------------------------------- /pull_request_template.md: -------------------------------------------------------------------------------- 1 | 2 | ## Description 3 | 4 | *Replace this paragraph with a description of what this PR is doing. If you're modifying existing behavior, describe the existing behavior, how this PR is changing it, and what motivated the change. If you're changing visual properties, consider including before/after screenshots (and runnable code snippets to reproduce them).* 5 | 6 | ## Related Issues 7 | 8 | *Replace this paragraph with a list of issues related to this PR from our [issue database]. Indicate, which of these issues are resolved or fixed by this PR. There should be at least one issue listed here.* 9 | 10 | ## Tests 11 | 12 | I added the following tests: 13 | 14 | *Replace this with a list of the tests that you added as part of this PR. A change in behaviour with no test covering it 15 | will likely get reverted accidentally sooner or later. PRs must include tests for all changed/updated/fixed behaviors. See [Test Coverage].* 16 | 17 | ## Checklist 18 | 19 | Before you create this PR confirm that it meets all requirements listed below by checking the relevant checkboxes (`[x]`). This will ensure a smooth and quick review process. 20 | 21 | - [ ] I read the [Contributor Guide] and followed the process outlined there for submitting PRs. 22 | - [ ] I signed the [CLA]. 23 | - [ ] I read and followed the [Flutter Style Guide], including [Features we expect every widget to implement]. 24 | - [ ] I read the [Tree Hygiene] wiki page, which explains my responsibilities. 25 | - [ ] I updated/added relevant documentation (doc comments with `///`). 26 | - [ ] All existing and new tests are passing. 27 | - [ ] I am willing to follow-up on review comments in a timely manner. 28 | 29 | ## Breaking Change 30 | 31 | Did any tests fail when you ran them? Please read [Handling breaking changes]. 32 | 33 | - [ ] No, no existing tests failed, so this is *not* a breaking change. 34 | - [ ] Yes, this is a breaking change. *If not, delete the remainder of this section.* 35 | - [ ] I wrote a design doc: https://flutter.dev/go/template *Replace this with a link to your design doc's short link* 36 | - [ ] I got input from the Flutter India team, specifically from: *Replace with the names of who gave advice* 37 | - [ ] I wrote a migration guide: https://flutter.dev/go/breaking-changes-template *Replace this with a link to a pull request that adds the migration guide to https://flutter.dev/docs/release/breaking-changes* 38 | 39 | 40 | [issue database]: https://github.com/Flutter-India/Flutter-India-Website/issues 41 | [Contributor Guide]: https://github.com/Flutter-India/Flutter-India-Website/blob/master/contributing.md 42 | [Flutter Style Guide]: https://github.com/flutter/flutter/wiki/Style-guide-for-Flutter-repo 43 | -------------------------------------------------------------------------------- /test/widget_test.dart: -------------------------------------------------------------------------------- 1 | // This is a basic Flutter widget test. 2 | // 3 | // To perform an interaction with a widget in your test, use the WidgetTester 4 | // utility that Flutter provides. For example, you can send tap and scroll 5 | // gestures. You can also use WidgetTester to find child widgets in the widget 6 | // tree, read text, and verify that the values of widget properties are correct. 7 | 8 | import 'package:FlutterConIndia2020/main.dart'; 9 | import 'package:flutter/material.dart'; 10 | import 'package:flutter_test/flutter_test.dart'; 11 | 12 | void main() { 13 | testWidgets('Counter increments smoke test', (WidgetTester tester) async { 14 | // Build our app and trigger a frame. 15 | await tester.pumpWidget(MyApp()); 16 | 17 | // Verify that our counter starts at 0. 18 | expect(find.text('0'), findsOneWidget); 19 | expect(find.text('1'), findsNothing); 20 | 21 | // Tap the '+' icon and trigger a frame. 22 | await tester.tap(find.byIcon(Icons.add)); 23 | await tester.pump(); 24 | 25 | // Verify that our counter has incremented. 26 | expect(find.text('0'), findsNothing); 27 | expect(find.text('1'), findsOneWidget); 28 | }); 29 | } 30 | -------------------------------------------------------------------------------- /web/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-India/Flutter-India-Conference-2020/dbb3395e8e623694791b2fd1414f87e5ac55c948/web/favicon.png -------------------------------------------------------------------------------- /web/icons/Icon-192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-India/Flutter-India-Conference-2020/dbb3395e8e623694791b2fd1414f87e5ac55c948/web/icons/Icon-192.png -------------------------------------------------------------------------------- /web/icons/Icon-512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flutter-India/Flutter-India-Conference-2020/dbb3395e8e623694791b2fd1414f87e5ac55c948/web/icons/Icon-512.png -------------------------------------------------------------------------------- /web/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | Flutter Conference India 2020 20 | 21 | 22 | 23 | 26 | 33 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /web/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "fluttercon", 3 | "short_name": "fluttercon", 4 | "start_url": ".", 5 | "display": "minimal-ui", 6 | "background_color": "#0175C2", 7 | "theme_color": "#0175C2", 8 | "description": "This is a New Website of Flutter India Conference 2020.FlutterCon India is an online event driven by Indian Flutter Communities to gather all Flutter passionates and learn to create beautiful apps! Our goal is to share Flutter knowledge, improve Flutter skills, and expand the Flutter community. The 1st edition of FlutterCon India will take place on May 1-3, 2020. Best-in-class speakers from Flutter community around the globe will be presenting live on various Flutter topics.", 9 | "orientation": "portrait-primary", 10 | "prefer_related_applications": false, 11 | "icons": [ 12 | { 13 | "src": "icons/Icon-192.png", 14 | "sizes": "192x192", 15 | "type": "image/png" 16 | }, 17 | { 18 | "src": "icons/Icon-512.png", 19 | "sizes": "512x512", 20 | "type": "image/png" 21 | } 22 | ] 23 | } 24 | --------------------------------------------------------------------------------