├── .firebase
└── hosting.YnVpbGQvd2Vi.cache
├── .firebaserc
├── .gitignore
├── .metadata
├── README.md
├── android
├── .gitignore
├── app
│ ├── build.gradle
│ └── src
│ │ ├── debug
│ │ └── AndroidManifest.xml
│ │ ├── main
│ │ ├── AndroidManifest.xml
│ │ ├── kotlin
│ │ │ └── hiashutoshsingh
│ │ │ │ └── flutter_developer_portfolio
│ │ │ │ └── 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
├── asset
├── batuni_1.png
├── batuni_2.png
├── duit_1.png
├── duit_2.png
├── duit_3.png
├── duit_4.png
├── duit_5.png
├── facebook.svg
├── fonts
│ ├── FiraSans-ExtraBold.ttf
│ ├── FiraSans-Regular.ttf
│ └── FiraSans-SemiBold.ttf
├── github.svg
├── google_play.png
├── instagram.svg
├── intellect_1.png
├── intellect_2.png
├── intellect_3.png
├── intellect_4.png
├── intellect_5.png
├── intellect_d_1.png
├── intellect_d_2.png
├── intellect_d_3.png
├── janhit_1.png
├── janhit_2.png
├── janhit_3.png
├── janhit_4.png
├── janhit_5.png
├── janhit_6.png
├── linkedin.svg
├── medium.svg
├── playstore_dark.png
├── playstore_light.png
├── profile.png
├── stackoverflow.svg
├── twitter.svg
├── y1.png
├── y2.png
├── y3.png
├── y4.png
├── y5.png
├── y6.png
├── y7.png
└── y8.png
├── firebase.json
├── ios
├── .gitignore
├── Flutter
│ ├── .last_build_id
│ ├── AppFrameworkInfo.plist
│ ├── Debug.xcconfig
│ └── Release.xcconfig
├── Podfile
├── 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
├── generated_plugin_registrant.dart
├── main.dart
├── screens
│ └── home_screen.dart
├── utils
│ ├── common_functions.dart
│ ├── constants.dart
│ └── custom_scroll.dart
└── widgets
│ ├── app_bar
│ ├── mobile_app_bar.dart
│ └── web_app_bar.dart
│ ├── bottom_line_widget.dart
│ ├── company_job_info.dart
│ ├── company_tile.dart
│ ├── email_widget.dart
│ ├── home_body
│ ├── app_home_body.dart
│ └── web_home_body.dart
│ ├── main_page
│ ├── about_me_widget.dart
│ ├── experience.dart
│ ├── introduction.dart
│ └── projects.dart
│ ├── other_noteworthy_projects
│ ├── other_project_item.dart
│ └── other_projects.dart
│ ├── profile_image_widget.dart
│ ├── project_showcase.dart
│ ├── social_handles
│ ├── social_handle_item.dart
│ └── social_handles.dart
│ ├── sub_header.dart
│ └── tech_stack_item.dart
├── pubspec.yaml
└── web
├── favicon.png
├── icons
├── Icon-192.png
└── Icon-512.png
├── index.html
├── manifest.json
└── styles.css
/.firebase/hosting.YnVpbGQvd2Vi.cache:
--------------------------------------------------------------------------------
1 | favicon.png,1655533592565,cc0beb697396679d622e9f1370f77ae9a14f5da6e8cd63e0fea8afaa7cd7852b
2 | flutter_service_worker.js,1655537861928,2a9e1f277dc157fbec343234f4a040402e62b8dcd4a5ca089e3ab71dd603affe
3 | main.dart.js,1655537860678,ba49684124e80e7edaba7a41822b9b93d60c4ec5d122b225bf7e3bc1d71546c1
4 | manifest.json,1655533592566,6baace4ca5f79f7feaceae643a1f0614d85dfbc85ef2d8354b754f4720745323
5 | styles.css,1655533592566,c598b84609645e68d4171eb2de0ee9b9a1cd0b2605c2dd3b400ad2fc44e53b01
6 | version.json,1655537861221,a8a789fbe3f1d7764506c302e06868b252eea7cce03efff8b71b9f638c441a9f
7 | assets/AssetManifest.json,1655537861325,b61064a99fdc6dcba5b3c8766f6093428547624869ac1e000315ea38aef8709a
8 | assets/FontManifest.json,1655537861326,115ad7429680fdd7f31815fc08e99726d4311ad5168393683b42651281cfee6d
9 | assets/NOTICES,1655537861326,57b43edbf84d99a8c9aa8ab5b397039c55890f3a8aa97b3258f06ae36df6da32
10 | assets/asset/batuni_1.png,1655533592530,55a110873f28db68f438619334959be59fbf3a51a9085a10c0176930aef4f882
11 | assets/asset/batuni_2.png,1655533592531,ce06d96a73b1654c830e6d5f45c77c3502385ee4fdddfd6ba74d9cf9719e6b18
12 | assets/asset/duit_1.png,1655533592532,7a121f4b8c09813790eeb6cc0e95bf1129e5b5074712d7450c41955b99b5f6cb
13 | assets/asset/duit_2.png,1655533592532,de77e0572a7bb7e553df777997249f9dbdee8d42840a5967056818659a9da3f1
14 | assets/asset/duit_3.png,1655533592533,6643271982b28004b8cd6fae6b47a1da4ae7d3db289c0e2215f3a61851bdebc2
15 | assets/asset/duit_4.png,1655533592535,4ca5a76344c760835e954239adc08c09c23870a1048ef35ec3085858c496072e
16 | assets/asset/duit_5.png,1655533592536,b51f97e311c9258494699882fc45cf2d4598233150af7016f040699872987267
17 | assets/asset/facebook.svg,1655533592537,09bd813087974cef7269af168a1ebff49f5cfea6ec62153b2ef26a270a82c1c8
18 | assets/asset/github.svg,1655533592545,45b9d7efcd05cc6b2a1ea2c2b48cb12f4b4fb73ce6a0db9eb55d6cf03d3162c6
19 | assets/asset/google_play.png,1655533592545,61522789d0c74fb1582c8a2cdb5efb55c54ca79f4a9d7692ee076662a8a14398
20 | assets/asset/instagram.svg,1655533592545,ff2e0c7aa899d1d94b6f4524504ca86ae0e30b66a830cd281c05caff41c8d74d
21 | assets/asset/intellect_1.png,1655533592546,49453aaf7dc95c3fee0a316704f86fcfaed1cb001b2fca6b65ae43fbb1f8060c
22 | assets/asset/intellect_2.png,1655533592546,fa102ec4de08867a24a7b757ca871e3bb1816eb3c7a42f7c842f44fe3a680905
23 | assets/asset/intellect_3.png,1655533592547,158fe4efb1b319ada55215bead99686a2dbff102e9ed4ed78e5911a2607c158a
24 | assets/asset/intellect_4.png,1655533592548,efbdcad50bd6044ea35e3e62eae1af0d7d0ba146ce0c52c6688e51069fd1aae8
25 | assets/asset/intellect_5.png,1655533592548,cdabfe045c5e180abf46a3b78dd1e23d2a36a74ff4e3a672a4ae574229a811c2
26 | assets/asset/intellect_d_1.png,1655533592549,96242d946b502e45b76ff94c18f1d0cc79b8b7e6fa207c2844bccde2b00f7842
27 | assets/asset/intellect_d_2.png,1655533592549,f2135f9330bc9aa1597aacc0ce08b942b646228b9d4dff75ee704b45f7477646
28 | assets/asset/intellect_d_3.png,1655533592549,590f2b4b0f7f1626dc596678d7e70aff777fd5233ecfc1dae43a4cc9b44623eb
29 | assets/asset/janhit_1.png,1655533592550,1a414f0c208092f93ecd036500a99c0dc8c539be44de31fea5a168ff2eb866b6
30 | assets/asset/janhit_2.png,1655533592551,dd5e71b7f10ff0544707d5263d56e59e4ab720e09a8674bc6eb382f95bcc7a9d
31 | assets/asset/janhit_3.png,1655533592551,b038d3d459a80e66e91121c64a113c2c8b2c29acaec27493d752f8d9bbd7222c
32 | assets/asset/janhit_4.png,1655533592552,aeacbc0ab4abb88e631d96a57a05bbcc09e19588113ec02b95c794ee313d0417
33 | assets/asset/janhit_5.png,1655533592553,a861cf140e0cacf9082928b25ab69561f5d7a62076c830fa7b008fcba15b631d
34 | assets/asset/janhit_6.png,1655533592553,621502b874b48ec96ebae08e58a251280abc14218a97f51fbeccf51786fe99a7
35 | assets/asset/linkedin.svg,1655533592554,b74f561a3d96ee2ebb253a9eb968ee681fbde114e8686dfeca1a756e22215609
36 | assets/asset/medium.svg,1655533592554,6a43ce38a4d4e5daa5daa3c3a65c7bdf1a84bec01f165a636f82258890fd1a6e
37 | assets/asset/playstore_dark.png,1655533592554,cfaeada452423313b4fe05405c0bdd22d9827b954f8080fa361f3c82ade0da06
38 | assets/asset/playstore_light.png,1655533592554,b1cb4232fa12e1523f1f3803388fcb73cce345fc164eed26a0a4b2938ad3c540
39 | assets/asset/profile.png,1655277018669,d0dbf2f4a09373e4793fbc9981596d6f0e5c6daa1c075a38c4b9c9084ba82e8c
40 | assets/asset/stackoverflow.svg,1655533592556,fa335d2ceff257bb51b0f06d14d7e3d7fb92ba00136cabd940e6d81c55ca0172
41 | assets/asset/twitter.svg,1655533592556,4cbef17e743d30050c5de047aff474d96387a569f9af51cb79ba0f3829c7ce56
42 | assets/asset/y1.png,1655533592556,c9a07e88c65d0cfc8d48d3b0ee6864ef4efb2197b948072affb8de8166891261
43 | assets/asset/y2.png,1655533592556,4ae663931110ea4ea58e8ca3c2de69a1a23b6a86f65b08a6f8684dda6ec1c0ef
44 | assets/asset/y3.png,1655533592557,607695df3e95d55e6804f4b0c826fa04712b682b82e998437bdc87df32c55adc
45 | assets/asset/y4.png,1655533592557,1ae15414330d3f120a260b4cf8125f1b0e7d8cf2ae40de512ecae5e69d498cf9
46 | assets/asset/y5.png,1655533592557,4b8b33f1b84132c1d7f6b8600f30c81ccc16bbf495b30b436cd41681d37d43e7
47 | assets/asset/y6.png,1655533592557,532f8cd770b94e963e4b172d80f38078b5dd66a98ee2db0b5628e011a8db54a5
48 | assets/asset/y7.png,1655533592558,1291efbcf90438b8bfde3cd38d8073e498f845a9421b562c50c69b2a3ae32261
49 | assets/asset/y8.png,1655533592558,379b35454d43d7554ce1dd6432995fd8182d5e198c2808adc3cfc1ea0baffe37
50 | assets/asset/fonts/FiraSans-ExtraBold.ttf,1655533592539,419ffdd0f3db0a3645f5feba33adc20b924d17d45a84d84f10cbe25645cd6e89
51 | assets/asset/fonts/FiraSans-Regular.ttf,1655533592542,52a6f20b861aee554697055569f752c92333168bd9cd42b0978ea5f380e5bf79
52 | assets/asset/fonts/FiraSans-SemiBold.ttf,1655533592545,116ea7567084b3f83781ff95e3e39d7b1b542da5d87d8f48801ba01caf2bc707
53 | assets/fonts/MaterialIcons-Regular.otf,1639015896000,b9e3a9c3ffab1f1c8adbb4f67484ef1f2c4b50d318dc037d7d8f77c8e044c51c
54 | canvaskit/canvaskit.js,315426600000,332d67a51b86f5129fc7d929d6bb6bd0416b17fd853899efc1f5044770954ed6
55 | canvaskit/canvaskit.wasm,315426600000,762e8ec23b044aaf7e2afe995375fa038229c63fddc04b1a3109854d9f78d187
56 | canvaskit/profiling/canvaskit.js,315426600000,41ae97b4ac8a386f55b22f1962c7b564da96df256fd938d684e73a8061e70b61
57 | canvaskit/profiling/canvaskit.wasm,315426600000,cb4c2221f1c20811ac3a33666833b4458656193de55b276b3c8fc31856b2f3a0
58 | icons/Icon-192.png,1655533592565,d2e0131bb7851eb9d98f7885edb5ae4b4d6b7a6c7addf8a25b9b712b39274c0f
59 | icons/Icon-512.png,1655533592565,7a31ce91e554f1941158ca46f31c7f3f2b7c8c129229ea74a8fae1affe335033
60 | index.html,1655538333277,34bd1c77558a64a2f04fe16c5e8563416842c6ab89ffdcb0d7ebf628655676bb
61 |
--------------------------------------------------------------------------------
/.firebaserc:
--------------------------------------------------------------------------------
1 | {
2 | "projects": {
3 | "prod": "portfolio-b1887"
4 | }
5 | }
--------------------------------------------------------------------------------
/.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 | pubspec.lock
33 |
34 | # Android related
35 | **/android/**/gradle-wrapper.jar
36 | **/android/.gradle
37 | **/android/captures/
38 | **/android/gradlew
39 | **/android/gradlew.bat
40 | **/android/local.properties
41 | **/android/**/GeneratedPluginRegistrant.java
42 |
43 | # iOS/XCode related
44 | **/ios/**/*.mode1v3
45 | **/ios/**/*.mode2v3
46 | **/ios/**/*.moved-aside
47 | **/ios/**/*.pbxuser
48 | **/ios/**/*.perspectivev3
49 | **/ios/**/*sync/
50 | **/ios/**/.sconsign.dblite
51 | **/ios/**/.tags*
52 | **/ios/**/.vagrant/
53 | **/ios/**/DerivedData/
54 | **/ios/**/Icon?
55 | **/ios/**/Pods/
56 | **/ios/**/.symlinks/
57 | **/ios/**/profile
58 | **/ios/**/xcuserdata
59 | **/ios/.generated/
60 | **/ios/Flutter/App.framework
61 | **/ios/Flutter/Flutter.framework
62 | **/ios/Flutter/Flutter.podspec
63 | **/ios/Flutter/Generated.xcconfig
64 | **/ios/Flutter/app.flx
65 | **/ios/Flutter/app.zip
66 | **/ios/Flutter/flutter_assets/
67 | **/ios/Flutter/flutter_export_environment.sh
68 | **/ios/ServiceDefinitions.json
69 | **/ios/Runner/GeneratedPluginRegistrant.*
70 |
71 | # Exceptions to above rules.
72 | !**/ios/**/default.mode1v3
73 | !**/ios/**/default.mode2v3
74 | !**/ios/**/default.pbxuser
75 | !**/ios/**/default.perspectivev3
76 |
--------------------------------------------------------------------------------
/.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: d408d302e22179d598f467e11da5dd968dbdc9ec
8 | channel: beta
9 |
10 | project_type: app
11 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Portfolio
2 |
3 | ### Note:
4 | `If you use this, please give credit to me. This iteration of my website took a significant amount of time and work to construct and design.`
5 |
6 |
7 | Live : https://portfolio-b1887.web.app/
8 |
9 | Inspiration : https://brittanychiang.com/
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/android/.gitignore:
--------------------------------------------------------------------------------
1 | gradle-wrapper.jar
2 | /.gradle
3 | /captures/
4 | /gradlew
5 | /gradlew.bat
6 | /local.properties
7 | GeneratedPluginRegistrant.java
8 |
9 | # Remember to never publicly share your keystore.
10 | # See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app
11 | key.properties
12 |
--------------------------------------------------------------------------------
/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 29
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 "hiashutoshsingh.flutter_developer_portfolio"
42 | minSdkVersion 16
43 | targetSdkVersion 29
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/hiashutoshsingh/flutter_developer_portfolio/MainActivity.kt:
--------------------------------------------------------------------------------
1 | package hiashutoshsingh.flutter_developer_portfolio
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/hiashutoshsingh/flutter-developer-portfolio/1c8ee52c7b049cc6c3061093d0af02e997d5b6bd/android/app/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hiashutoshsingh/flutter-developer-portfolio/1c8ee52c7b049cc6c3061093d0af02e997d5b6bd/android/app/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hiashutoshsingh/flutter-developer-portfolio/1c8ee52c7b049cc6c3061093d0af02e997d5b6bd/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hiashutoshsingh/flutter-developer-portfolio/1c8ee52c7b049cc6c3061093d0af02e997d5b6bd/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hiashutoshsingh/flutter-developer-portfolio/1c8ee52c7b049cc6c3061093d0af02e997d5b6bd/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.useAndroidX=true
3 | android.enableJetifier=true
4 | android.enableR8=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 localPropertiesFile = new File(rootProject.projectDir, "local.properties")
4 | def properties = new Properties()
5 |
6 | assert localPropertiesFile.exists()
7 | localPropertiesFile.withReader("UTF-8") { reader -> properties.load(reader) }
8 |
9 | def flutterSdkPath = properties.getProperty("flutter.sdk")
10 | assert flutterSdkPath != null, "flutter.sdk not set in local.properties"
11 | apply from: "$flutterSdkPath/packages/flutter_tools/gradle/app_plugin_loader.gradle"
12 |
--------------------------------------------------------------------------------
/asset/batuni_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hiashutoshsingh/flutter-developer-portfolio/1c8ee52c7b049cc6c3061093d0af02e997d5b6bd/asset/batuni_1.png
--------------------------------------------------------------------------------
/asset/batuni_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hiashutoshsingh/flutter-developer-portfolio/1c8ee52c7b049cc6c3061093d0af02e997d5b6bd/asset/batuni_2.png
--------------------------------------------------------------------------------
/asset/duit_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hiashutoshsingh/flutter-developer-portfolio/1c8ee52c7b049cc6c3061093d0af02e997d5b6bd/asset/duit_1.png
--------------------------------------------------------------------------------
/asset/duit_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hiashutoshsingh/flutter-developer-portfolio/1c8ee52c7b049cc6c3061093d0af02e997d5b6bd/asset/duit_2.png
--------------------------------------------------------------------------------
/asset/duit_3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hiashutoshsingh/flutter-developer-portfolio/1c8ee52c7b049cc6c3061093d0af02e997d5b6bd/asset/duit_3.png
--------------------------------------------------------------------------------
/asset/duit_4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hiashutoshsingh/flutter-developer-portfolio/1c8ee52c7b049cc6c3061093d0af02e997d5b6bd/asset/duit_4.png
--------------------------------------------------------------------------------
/asset/duit_5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hiashutoshsingh/flutter-developer-portfolio/1c8ee52c7b049cc6c3061093d0af02e997d5b6bd/asset/duit_5.png
--------------------------------------------------------------------------------
/asset/facebook.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/asset/fonts/FiraSans-ExtraBold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hiashutoshsingh/flutter-developer-portfolio/1c8ee52c7b049cc6c3061093d0af02e997d5b6bd/asset/fonts/FiraSans-ExtraBold.ttf
--------------------------------------------------------------------------------
/asset/fonts/FiraSans-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hiashutoshsingh/flutter-developer-portfolio/1c8ee52c7b049cc6c3061093d0af02e997d5b6bd/asset/fonts/FiraSans-Regular.ttf
--------------------------------------------------------------------------------
/asset/fonts/FiraSans-SemiBold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hiashutoshsingh/flutter-developer-portfolio/1c8ee52c7b049cc6c3061093d0af02e997d5b6bd/asset/fonts/FiraSans-SemiBold.ttf
--------------------------------------------------------------------------------
/asset/github.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/asset/google_play.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hiashutoshsingh/flutter-developer-portfolio/1c8ee52c7b049cc6c3061093d0af02e997d5b6bd/asset/google_play.png
--------------------------------------------------------------------------------
/asset/instagram.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/asset/intellect_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hiashutoshsingh/flutter-developer-portfolio/1c8ee52c7b049cc6c3061093d0af02e997d5b6bd/asset/intellect_1.png
--------------------------------------------------------------------------------
/asset/intellect_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hiashutoshsingh/flutter-developer-portfolio/1c8ee52c7b049cc6c3061093d0af02e997d5b6bd/asset/intellect_2.png
--------------------------------------------------------------------------------
/asset/intellect_3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hiashutoshsingh/flutter-developer-portfolio/1c8ee52c7b049cc6c3061093d0af02e997d5b6bd/asset/intellect_3.png
--------------------------------------------------------------------------------
/asset/intellect_4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hiashutoshsingh/flutter-developer-portfolio/1c8ee52c7b049cc6c3061093d0af02e997d5b6bd/asset/intellect_4.png
--------------------------------------------------------------------------------
/asset/intellect_5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hiashutoshsingh/flutter-developer-portfolio/1c8ee52c7b049cc6c3061093d0af02e997d5b6bd/asset/intellect_5.png
--------------------------------------------------------------------------------
/asset/intellect_d_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hiashutoshsingh/flutter-developer-portfolio/1c8ee52c7b049cc6c3061093d0af02e997d5b6bd/asset/intellect_d_1.png
--------------------------------------------------------------------------------
/asset/intellect_d_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hiashutoshsingh/flutter-developer-portfolio/1c8ee52c7b049cc6c3061093d0af02e997d5b6bd/asset/intellect_d_2.png
--------------------------------------------------------------------------------
/asset/intellect_d_3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hiashutoshsingh/flutter-developer-portfolio/1c8ee52c7b049cc6c3061093d0af02e997d5b6bd/asset/intellect_d_3.png
--------------------------------------------------------------------------------
/asset/janhit_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hiashutoshsingh/flutter-developer-portfolio/1c8ee52c7b049cc6c3061093d0af02e997d5b6bd/asset/janhit_1.png
--------------------------------------------------------------------------------
/asset/janhit_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hiashutoshsingh/flutter-developer-portfolio/1c8ee52c7b049cc6c3061093d0af02e997d5b6bd/asset/janhit_2.png
--------------------------------------------------------------------------------
/asset/janhit_3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hiashutoshsingh/flutter-developer-portfolio/1c8ee52c7b049cc6c3061093d0af02e997d5b6bd/asset/janhit_3.png
--------------------------------------------------------------------------------
/asset/janhit_4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hiashutoshsingh/flutter-developer-portfolio/1c8ee52c7b049cc6c3061093d0af02e997d5b6bd/asset/janhit_4.png
--------------------------------------------------------------------------------
/asset/janhit_5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hiashutoshsingh/flutter-developer-portfolio/1c8ee52c7b049cc6c3061093d0af02e997d5b6bd/asset/janhit_5.png
--------------------------------------------------------------------------------
/asset/janhit_6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hiashutoshsingh/flutter-developer-portfolio/1c8ee52c7b049cc6c3061093d0af02e997d5b6bd/asset/janhit_6.png
--------------------------------------------------------------------------------
/asset/linkedin.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/asset/medium.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/asset/playstore_dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hiashutoshsingh/flutter-developer-portfolio/1c8ee52c7b049cc6c3061093d0af02e997d5b6bd/asset/playstore_dark.png
--------------------------------------------------------------------------------
/asset/playstore_light.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hiashutoshsingh/flutter-developer-portfolio/1c8ee52c7b049cc6c3061093d0af02e997d5b6bd/asset/playstore_light.png
--------------------------------------------------------------------------------
/asset/profile.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hiashutoshsingh/flutter-developer-portfolio/1c8ee52c7b049cc6c3061093d0af02e997d5b6bd/asset/profile.png
--------------------------------------------------------------------------------
/asset/stackoverflow.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/asset/twitter.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/asset/y1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hiashutoshsingh/flutter-developer-portfolio/1c8ee52c7b049cc6c3061093d0af02e997d5b6bd/asset/y1.png
--------------------------------------------------------------------------------
/asset/y2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hiashutoshsingh/flutter-developer-portfolio/1c8ee52c7b049cc6c3061093d0af02e997d5b6bd/asset/y2.png
--------------------------------------------------------------------------------
/asset/y3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hiashutoshsingh/flutter-developer-portfolio/1c8ee52c7b049cc6c3061093d0af02e997d5b6bd/asset/y3.png
--------------------------------------------------------------------------------
/asset/y4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hiashutoshsingh/flutter-developer-portfolio/1c8ee52c7b049cc6c3061093d0af02e997d5b6bd/asset/y4.png
--------------------------------------------------------------------------------
/asset/y5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hiashutoshsingh/flutter-developer-portfolio/1c8ee52c7b049cc6c3061093d0af02e997d5b6bd/asset/y5.png
--------------------------------------------------------------------------------
/asset/y6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hiashutoshsingh/flutter-developer-portfolio/1c8ee52c7b049cc6c3061093d0af02e997d5b6bd/asset/y6.png
--------------------------------------------------------------------------------
/asset/y7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hiashutoshsingh/flutter-developer-portfolio/1c8ee52c7b049cc6c3061093d0af02e997d5b6bd/asset/y7.png
--------------------------------------------------------------------------------
/asset/y8.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hiashutoshsingh/flutter-developer-portfolio/1c8ee52c7b049cc6c3061093d0af02e997d5b6bd/asset/y8.png
--------------------------------------------------------------------------------
/firebase.json:
--------------------------------------------------------------------------------
1 | {
2 | "hosting": {
3 | "public": "build/web",
4 | "ignore": [
5 | "firebase.json",
6 | "**/.*",
7 | "**/node_modules/**"
8 | ],
9 | "rewrites": [
10 | {
11 | "source": "**",
12 | "destination": "/index.html"
13 | }
14 | ]
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/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/.last_build_id:
--------------------------------------------------------------------------------
1 | 0c76d05fabc8cfb2948254918081cd25
--------------------------------------------------------------------------------
/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 | 9.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 flutter_root
14 | generated_xcode_build_settings_path = File.expand_path(File.join('..', 'Flutter', 'Generated.xcconfig'), __FILE__)
15 | unless File.exist?(generated_xcode_build_settings_path)
16 | raise "#{generated_xcode_build_settings_path} must exist. If you're running pod install manually, make sure flutter pub get is executed first"
17 | end
18 |
19 | File.foreach(generated_xcode_build_settings_path) do |line|
20 | matches = line.match(/FLUTTER_ROOT\=(.*)/)
21 | return matches[1].strip if matches
22 | end
23 | raise "FLUTTER_ROOT not found in #{generated_xcode_build_settings_path}. Try deleting Generated.xcconfig, then run flutter pub get"
24 | end
25 |
26 | require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelper'), flutter_root)
27 |
28 | flutter_ios_podfile_setup
29 |
30 | target 'Runner' do
31 | use_frameworks!
32 | use_modular_headers!
33 |
34 | flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__))
35 | end
36 |
37 | post_install do |installer|
38 | installer.pods_project.targets.each do |target|
39 | flutter_additional_ios_build_settings(target)
40 | end
41 | end
42 |
--------------------------------------------------------------------------------
/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 | 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; };
11 | 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; };
12 | 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; };
13 | 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; };
14 | 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; };
15 | 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; };
16 | F57E71024E422798AC38ACB1 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B502501445E4DDBB8F7C6FAF /* Pods_Runner.framework */; };
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 | 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; };
36 | 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = ""; };
37 | 74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; };
38 | 79EE7EB41450D3F3EA4C9BA0 /* 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 = ""; };
39 | 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; };
40 | 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; };
41 | 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; };
42 | 97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; };
43 | 97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; };
44 | 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; };
45 | 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; };
46 | 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
47 | B502501445E4DDBB8F7C6FAF /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; };
48 | CDFE0C6361882D26A6F5A177 /* 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 = ""; };
49 | D0B3A6EE36F8A050A7E4EC0C /* 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 = ""; };
50 | /* End PBXFileReference section */
51 |
52 | /* Begin PBXFrameworksBuildPhase section */
53 | 97C146EB1CF9000F007C117D /* Frameworks */ = {
54 | isa = PBXFrameworksBuildPhase;
55 | buildActionMask = 2147483647;
56 | files = (
57 | F57E71024E422798AC38ACB1 /* Pods_Runner.framework in Frameworks */,
58 | );
59 | runOnlyForDeploymentPostprocessing = 0;
60 | };
61 | /* End PBXFrameworksBuildPhase section */
62 |
63 | /* Begin PBXGroup section */
64 | 9740EEB11CF90186004384FC /* Flutter */ = {
65 | isa = PBXGroup;
66 | children = (
67 | 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */,
68 | 9740EEB21CF90195004384FC /* Debug.xcconfig */,
69 | 7AFA3C8E1D35360C0083082E /* Release.xcconfig */,
70 | 9740EEB31CF90195004384FC /* Generated.xcconfig */,
71 | );
72 | name = Flutter;
73 | sourceTree = "";
74 | };
75 | 97C146E51CF9000F007C117D = {
76 | isa = PBXGroup;
77 | children = (
78 | 9740EEB11CF90186004384FC /* Flutter */,
79 | 97C146F01CF9000F007C117D /* Runner */,
80 | 97C146EF1CF9000F007C117D /* Products */,
81 | E97B32EB6E70180849B37C82 /* Pods */,
82 | EAF29CC588B65E22654AD5E2 /* Frameworks */,
83 | );
84 | sourceTree = "";
85 | };
86 | 97C146EF1CF9000F007C117D /* Products */ = {
87 | isa = PBXGroup;
88 | children = (
89 | 97C146EE1CF9000F007C117D /* Runner.app */,
90 | );
91 | name = Products;
92 | sourceTree = "";
93 | };
94 | 97C146F01CF9000F007C117D /* Runner */ = {
95 | isa = PBXGroup;
96 | children = (
97 | 97C146FA1CF9000F007C117D /* Main.storyboard */,
98 | 97C146FD1CF9000F007C117D /* Assets.xcassets */,
99 | 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */,
100 | 97C147021CF9000F007C117D /* Info.plist */,
101 | 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */,
102 | 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */,
103 | 74858FAE1ED2DC5600515810 /* AppDelegate.swift */,
104 | 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */,
105 | );
106 | path = Runner;
107 | sourceTree = "";
108 | };
109 | E97B32EB6E70180849B37C82 /* Pods */ = {
110 | isa = PBXGroup;
111 | children = (
112 | D0B3A6EE36F8A050A7E4EC0C /* Pods-Runner.debug.xcconfig */,
113 | CDFE0C6361882D26A6F5A177 /* Pods-Runner.release.xcconfig */,
114 | 79EE7EB41450D3F3EA4C9BA0 /* Pods-Runner.profile.xcconfig */,
115 | );
116 | name = Pods;
117 | path = Pods;
118 | sourceTree = "";
119 | };
120 | EAF29CC588B65E22654AD5E2 /* Frameworks */ = {
121 | isa = PBXGroup;
122 | children = (
123 | B502501445E4DDBB8F7C6FAF /* Pods_Runner.framework */,
124 | );
125 | name = Frameworks;
126 | sourceTree = "";
127 | };
128 | /* End PBXGroup section */
129 |
130 | /* Begin PBXNativeTarget section */
131 | 97C146ED1CF9000F007C117D /* Runner */ = {
132 | isa = PBXNativeTarget;
133 | buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */;
134 | buildPhases = (
135 | E106B04C61607E8022FB36E0 /* [CP] Check Pods Manifest.lock */,
136 | 9740EEB61CF901F6004384FC /* Run Script */,
137 | 97C146EA1CF9000F007C117D /* Sources */,
138 | 97C146EB1CF9000F007C117D /* Frameworks */,
139 | 97C146EC1CF9000F007C117D /* Resources */,
140 | 9705A1C41CF9048500538489 /* Embed Frameworks */,
141 | 3B06AD1E1E4923F5004D2608 /* Thin Binary */,
142 | 8B995648F93BEA0B3032CC85 /* [CP] Embed Pods Frameworks */,
143 | );
144 | buildRules = (
145 | );
146 | dependencies = (
147 | );
148 | name = Runner;
149 | productName = Runner;
150 | productReference = 97C146EE1CF9000F007C117D /* Runner.app */;
151 | productType = "com.apple.product-type.application";
152 | };
153 | /* End PBXNativeTarget section */
154 |
155 | /* Begin PBXProject section */
156 | 97C146E61CF9000F007C117D /* Project object */ = {
157 | isa = PBXProject;
158 | attributes = {
159 | LastUpgradeCheck = 1020;
160 | ORGANIZATIONNAME = "";
161 | TargetAttributes = {
162 | 97C146ED1CF9000F007C117D = {
163 | CreatedOnToolsVersion = 7.3.1;
164 | LastSwiftMigration = 1100;
165 | };
166 | };
167 | };
168 | buildConfigurationList = 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */;
169 | compatibilityVersion = "Xcode 9.3";
170 | developmentRegion = en;
171 | hasScannedForEncodings = 0;
172 | knownRegions = (
173 | en,
174 | Base,
175 | );
176 | mainGroup = 97C146E51CF9000F007C117D;
177 | productRefGroup = 97C146EF1CF9000F007C117D /* Products */;
178 | projectDirPath = "";
179 | projectRoot = "";
180 | targets = (
181 | 97C146ED1CF9000F007C117D /* Runner */,
182 | );
183 | };
184 | /* End PBXProject section */
185 |
186 | /* Begin PBXResourcesBuildPhase section */
187 | 97C146EC1CF9000F007C117D /* Resources */ = {
188 | isa = PBXResourcesBuildPhase;
189 | buildActionMask = 2147483647;
190 | files = (
191 | 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */,
192 | 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */,
193 | 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */,
194 | 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */,
195 | );
196 | runOnlyForDeploymentPostprocessing = 0;
197 | };
198 | /* End PBXResourcesBuildPhase section */
199 |
200 | /* Begin PBXShellScriptBuildPhase section */
201 | 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = {
202 | isa = PBXShellScriptBuildPhase;
203 | buildActionMask = 2147483647;
204 | files = (
205 | );
206 | inputPaths = (
207 | );
208 | name = "Thin Binary";
209 | outputPaths = (
210 | );
211 | runOnlyForDeploymentPostprocessing = 0;
212 | shellPath = /bin/sh;
213 | shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin";
214 | };
215 | 8B995648F93BEA0B3032CC85 /* [CP] Embed Pods Frameworks */ = {
216 | isa = PBXShellScriptBuildPhase;
217 | buildActionMask = 2147483647;
218 | files = (
219 | );
220 | inputPaths = (
221 | "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh",
222 | "${PODS_ROOT}/../Flutter/Flutter.framework",
223 | "${BUILT_PRODUCTS_DIR}/url_launcher/url_launcher.framework",
224 | );
225 | name = "[CP] Embed Pods Frameworks";
226 | outputPaths = (
227 | "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Flutter.framework",
228 | "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/url_launcher.framework",
229 | );
230 | runOnlyForDeploymentPostprocessing = 0;
231 | shellPath = /bin/sh;
232 | shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n";
233 | showEnvVarsInLog = 0;
234 | };
235 | 9740EEB61CF901F6004384FC /* Run Script */ = {
236 | isa = PBXShellScriptBuildPhase;
237 | buildActionMask = 2147483647;
238 | files = (
239 | );
240 | inputPaths = (
241 | );
242 | name = "Run Script";
243 | outputPaths = (
244 | );
245 | runOnlyForDeploymentPostprocessing = 0;
246 | shellPath = /bin/sh;
247 | shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build";
248 | };
249 | E106B04C61607E8022FB36E0 /* [CP] Check Pods Manifest.lock */ = {
250 | isa = PBXShellScriptBuildPhase;
251 | buildActionMask = 2147483647;
252 | files = (
253 | );
254 | inputFileListPaths = (
255 | );
256 | inputPaths = (
257 | "${PODS_PODFILE_DIR_PATH}/Podfile.lock",
258 | "${PODS_ROOT}/Manifest.lock",
259 | );
260 | name = "[CP] Check Pods Manifest.lock";
261 | outputFileListPaths = (
262 | );
263 | outputPaths = (
264 | "$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt",
265 | );
266 | runOnlyForDeploymentPostprocessing = 0;
267 | shellPath = /bin/sh;
268 | 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";
269 | showEnvVarsInLog = 0;
270 | };
271 | /* End PBXShellScriptBuildPhase section */
272 |
273 | /* Begin PBXSourcesBuildPhase section */
274 | 97C146EA1CF9000F007C117D /* Sources */ = {
275 | isa = PBXSourcesBuildPhase;
276 | buildActionMask = 2147483647;
277 | files = (
278 | 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */,
279 | 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */,
280 | );
281 | runOnlyForDeploymentPostprocessing = 0;
282 | };
283 | /* End PBXSourcesBuildPhase section */
284 |
285 | /* Begin PBXVariantGroup section */
286 | 97C146FA1CF9000F007C117D /* Main.storyboard */ = {
287 | isa = PBXVariantGroup;
288 | children = (
289 | 97C146FB1CF9000F007C117D /* Base */,
290 | );
291 | name = Main.storyboard;
292 | sourceTree = "";
293 | };
294 | 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */ = {
295 | isa = PBXVariantGroup;
296 | children = (
297 | 97C147001CF9000F007C117D /* Base */,
298 | );
299 | name = LaunchScreen.storyboard;
300 | sourceTree = "";
301 | };
302 | /* End PBXVariantGroup section */
303 |
304 | /* Begin XCBuildConfiguration section */
305 | 249021D3217E4FDB00AE95B9 /* Profile */ = {
306 | isa = XCBuildConfiguration;
307 | buildSettings = {
308 | ALWAYS_SEARCH_USER_PATHS = NO;
309 | CLANG_ANALYZER_NONNULL = YES;
310 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
311 | CLANG_CXX_LIBRARY = "libc++";
312 | CLANG_ENABLE_MODULES = YES;
313 | CLANG_ENABLE_OBJC_ARC = YES;
314 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
315 | CLANG_WARN_BOOL_CONVERSION = YES;
316 | CLANG_WARN_COMMA = YES;
317 | CLANG_WARN_CONSTANT_CONVERSION = YES;
318 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
319 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
320 | CLANG_WARN_EMPTY_BODY = YES;
321 | CLANG_WARN_ENUM_CONVERSION = YES;
322 | CLANG_WARN_INFINITE_RECURSION = YES;
323 | CLANG_WARN_INT_CONVERSION = YES;
324 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
325 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
326 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
327 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
328 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
329 | CLANG_WARN_STRICT_PROTOTYPES = YES;
330 | CLANG_WARN_SUSPICIOUS_MOVE = YES;
331 | CLANG_WARN_UNREACHABLE_CODE = YES;
332 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
333 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
334 | COPY_PHASE_STRIP = NO;
335 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
336 | ENABLE_NS_ASSERTIONS = NO;
337 | ENABLE_STRICT_OBJC_MSGSEND = YES;
338 | GCC_C_LANGUAGE_STANDARD = gnu99;
339 | GCC_NO_COMMON_BLOCKS = YES;
340 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
341 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
342 | GCC_WARN_UNDECLARED_SELECTOR = YES;
343 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
344 | GCC_WARN_UNUSED_FUNCTION = YES;
345 | GCC_WARN_UNUSED_VARIABLE = YES;
346 | IPHONEOS_DEPLOYMENT_TARGET = 9.0;
347 | MTL_ENABLE_DEBUG_INFO = NO;
348 | SDKROOT = iphoneos;
349 | SUPPORTED_PLATFORMS = iphoneos;
350 | TARGETED_DEVICE_FAMILY = "1,2";
351 | VALIDATE_PRODUCT = YES;
352 | };
353 | name = Profile;
354 | };
355 | 249021D4217E4FDB00AE95B9 /* Profile */ = {
356 | isa = XCBuildConfiguration;
357 | baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
358 | buildSettings = {
359 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
360 | CLANG_ENABLE_MODULES = YES;
361 | CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
362 | ENABLE_BITCODE = NO;
363 | FRAMEWORK_SEARCH_PATHS = (
364 | "$(inherited)",
365 | "$(PROJECT_DIR)/Flutter",
366 | );
367 | INFOPLIST_FILE = Runner/Info.plist;
368 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
369 | LIBRARY_SEARCH_PATHS = (
370 | "$(inherited)",
371 | "$(PROJECT_DIR)/Flutter",
372 | );
373 | PRODUCT_BUNDLE_IDENTIFIER = hiashutoshsingh.flutterDeveloperPortfolio;
374 | PRODUCT_NAME = "$(TARGET_NAME)";
375 | SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
376 | SWIFT_VERSION = 5.0;
377 | VERSIONING_SYSTEM = "apple-generic";
378 | };
379 | name = Profile;
380 | };
381 | 97C147031CF9000F007C117D /* Debug */ = {
382 | isa = XCBuildConfiguration;
383 | buildSettings = {
384 | ALWAYS_SEARCH_USER_PATHS = NO;
385 | CLANG_ANALYZER_NONNULL = YES;
386 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
387 | CLANG_CXX_LIBRARY = "libc++";
388 | CLANG_ENABLE_MODULES = YES;
389 | CLANG_ENABLE_OBJC_ARC = YES;
390 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
391 | CLANG_WARN_BOOL_CONVERSION = YES;
392 | CLANG_WARN_COMMA = YES;
393 | CLANG_WARN_CONSTANT_CONVERSION = YES;
394 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
395 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
396 | CLANG_WARN_EMPTY_BODY = YES;
397 | CLANG_WARN_ENUM_CONVERSION = YES;
398 | CLANG_WARN_INFINITE_RECURSION = YES;
399 | CLANG_WARN_INT_CONVERSION = YES;
400 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
401 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
402 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
403 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
404 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
405 | CLANG_WARN_STRICT_PROTOTYPES = YES;
406 | CLANG_WARN_SUSPICIOUS_MOVE = YES;
407 | CLANG_WARN_UNREACHABLE_CODE = YES;
408 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
409 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
410 | COPY_PHASE_STRIP = NO;
411 | DEBUG_INFORMATION_FORMAT = dwarf;
412 | ENABLE_STRICT_OBJC_MSGSEND = YES;
413 | ENABLE_TESTABILITY = YES;
414 | GCC_C_LANGUAGE_STANDARD = gnu99;
415 | GCC_DYNAMIC_NO_PIC = NO;
416 | GCC_NO_COMMON_BLOCKS = YES;
417 | GCC_OPTIMIZATION_LEVEL = 0;
418 | GCC_PREPROCESSOR_DEFINITIONS = (
419 | "DEBUG=1",
420 | "$(inherited)",
421 | );
422 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
423 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
424 | GCC_WARN_UNDECLARED_SELECTOR = YES;
425 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
426 | GCC_WARN_UNUSED_FUNCTION = YES;
427 | GCC_WARN_UNUSED_VARIABLE = YES;
428 | IPHONEOS_DEPLOYMENT_TARGET = 9.0;
429 | MTL_ENABLE_DEBUG_INFO = YES;
430 | ONLY_ACTIVE_ARCH = YES;
431 | SDKROOT = iphoneos;
432 | TARGETED_DEVICE_FAMILY = "1,2";
433 | };
434 | name = Debug;
435 | };
436 | 97C147041CF9000F007C117D /* Release */ = {
437 | isa = XCBuildConfiguration;
438 | buildSettings = {
439 | ALWAYS_SEARCH_USER_PATHS = NO;
440 | CLANG_ANALYZER_NONNULL = YES;
441 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
442 | CLANG_CXX_LIBRARY = "libc++";
443 | CLANG_ENABLE_MODULES = YES;
444 | CLANG_ENABLE_OBJC_ARC = YES;
445 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
446 | CLANG_WARN_BOOL_CONVERSION = YES;
447 | CLANG_WARN_COMMA = YES;
448 | CLANG_WARN_CONSTANT_CONVERSION = YES;
449 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
450 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
451 | CLANG_WARN_EMPTY_BODY = YES;
452 | CLANG_WARN_ENUM_CONVERSION = YES;
453 | CLANG_WARN_INFINITE_RECURSION = YES;
454 | CLANG_WARN_INT_CONVERSION = YES;
455 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
456 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
457 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
458 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
459 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
460 | CLANG_WARN_STRICT_PROTOTYPES = YES;
461 | CLANG_WARN_SUSPICIOUS_MOVE = YES;
462 | CLANG_WARN_UNREACHABLE_CODE = YES;
463 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
464 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
465 | COPY_PHASE_STRIP = NO;
466 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
467 | ENABLE_NS_ASSERTIONS = NO;
468 | ENABLE_STRICT_OBJC_MSGSEND = YES;
469 | GCC_C_LANGUAGE_STANDARD = gnu99;
470 | GCC_NO_COMMON_BLOCKS = YES;
471 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
472 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
473 | GCC_WARN_UNDECLARED_SELECTOR = YES;
474 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
475 | GCC_WARN_UNUSED_FUNCTION = YES;
476 | GCC_WARN_UNUSED_VARIABLE = YES;
477 | IPHONEOS_DEPLOYMENT_TARGET = 9.0;
478 | MTL_ENABLE_DEBUG_INFO = NO;
479 | SDKROOT = iphoneos;
480 | SUPPORTED_PLATFORMS = iphoneos;
481 | SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
482 | TARGETED_DEVICE_FAMILY = "1,2";
483 | VALIDATE_PRODUCT = YES;
484 | };
485 | name = Release;
486 | };
487 | 97C147061CF9000F007C117D /* Debug */ = {
488 | isa = XCBuildConfiguration;
489 | baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */;
490 | buildSettings = {
491 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
492 | CLANG_ENABLE_MODULES = YES;
493 | CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
494 | ENABLE_BITCODE = NO;
495 | FRAMEWORK_SEARCH_PATHS = (
496 | "$(inherited)",
497 | "$(PROJECT_DIR)/Flutter",
498 | );
499 | INFOPLIST_FILE = Runner/Info.plist;
500 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
501 | LIBRARY_SEARCH_PATHS = (
502 | "$(inherited)",
503 | "$(PROJECT_DIR)/Flutter",
504 | );
505 | PRODUCT_BUNDLE_IDENTIFIER = hiashutoshsingh.flutterDeveloperPortfolio;
506 | PRODUCT_NAME = "$(TARGET_NAME)";
507 | SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
508 | SWIFT_OPTIMIZATION_LEVEL = "-Onone";
509 | SWIFT_VERSION = 5.0;
510 | VERSIONING_SYSTEM = "apple-generic";
511 | };
512 | name = Debug;
513 | };
514 | 97C147071CF9000F007C117D /* Release */ = {
515 | isa = XCBuildConfiguration;
516 | baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.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 = hiashutoshsingh.flutterDeveloperPortfolio;
533 | PRODUCT_NAME = "$(TARGET_NAME)";
534 | SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
535 | SWIFT_VERSION = 5.0;
536 | VERSIONING_SYSTEM = "apple-generic";
537 | };
538 | name = Release;
539 | };
540 | /* End XCBuildConfiguration section */
541 |
542 | /* Begin XCConfigurationList section */
543 | 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */ = {
544 | isa = XCConfigurationList;
545 | buildConfigurations = (
546 | 97C147031CF9000F007C117D /* Debug */,
547 | 97C147041CF9000F007C117D /* Release */,
548 | 249021D3217E4FDB00AE95B9 /* Profile */,
549 | );
550 | defaultConfigurationIsVisible = 0;
551 | defaultConfigurationName = Release;
552 | };
553 | 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */ = {
554 | isa = XCConfigurationList;
555 | buildConfigurations = (
556 | 97C147061CF9000F007C117D /* Debug */,
557 | 97C147071CF9000F007C117D /* Release */,
558 | 249021D4217E4FDB00AE95B9 /* Profile */,
559 | );
560 | defaultConfigurationIsVisible = 0;
561 | defaultConfigurationName = Release;
562 | };
563 | /* End XCConfigurationList section */
564 | };
565 | rootObject = 97C146E61CF9000F007C117D /* Project object */;
566 | }
567 |
--------------------------------------------------------------------------------
/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/hiashutoshsingh/flutter-developer-portfolio/1c8ee52c7b049cc6c3061093d0af02e997d5b6bd/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/hiashutoshsingh/flutter-developer-portfolio/1c8ee52c7b049cc6c3061093d0af02e997d5b6bd/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/hiashutoshsingh/flutter-developer-portfolio/1c8ee52c7b049cc6c3061093d0af02e997d5b6bd/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/hiashutoshsingh/flutter-developer-portfolio/1c8ee52c7b049cc6c3061093d0af02e997d5b6bd/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/hiashutoshsingh/flutter-developer-portfolio/1c8ee52c7b049cc6c3061093d0af02e997d5b6bd/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/hiashutoshsingh/flutter-developer-portfolio/1c8ee52c7b049cc6c3061093d0af02e997d5b6bd/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/hiashutoshsingh/flutter-developer-portfolio/1c8ee52c7b049cc6c3061093d0af02e997d5b6bd/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/hiashutoshsingh/flutter-developer-portfolio/1c8ee52c7b049cc6c3061093d0af02e997d5b6bd/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/hiashutoshsingh/flutter-developer-portfolio/1c8ee52c7b049cc6c3061093d0af02e997d5b6bd/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/hiashutoshsingh/flutter-developer-portfolio/1c8ee52c7b049cc6c3061093d0af02e997d5b6bd/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/hiashutoshsingh/flutter-developer-portfolio/1c8ee52c7b049cc6c3061093d0af02e997d5b6bd/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/hiashutoshsingh/flutter-developer-portfolio/1c8ee52c7b049cc6c3061093d0af02e997d5b6bd/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/hiashutoshsingh/flutter-developer-portfolio/1c8ee52c7b049cc6c3061093d0af02e997d5b6bd/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/hiashutoshsingh/flutter-developer-portfolio/1c8ee52c7b049cc6c3061093d0af02e997d5b6bd/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/hiashutoshsingh/flutter-developer-portfolio/1c8ee52c7b049cc6c3061093d0af02e997d5b6bd/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/hiashutoshsingh/flutter-developer-portfolio/1c8ee52c7b049cc6c3061093d0af02e997d5b6bd/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hiashutoshsingh/flutter-developer-portfolio/1c8ee52c7b049cc6c3061093d0af02e997d5b6bd/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hiashutoshsingh/flutter-developer-portfolio/1c8ee52c7b049cc6c3061093d0af02e997d5b6bd/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 | flutter_developer_portfolio
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/generated_plugin_registrant.dart:
--------------------------------------------------------------------------------
1 | //
2 | // Generated file. Do not edit.
3 | //
4 |
5 | // ignore_for_file: directives_ordering
6 | // ignore_for_file: lines_longer_than_80_chars
7 |
8 | import 'package:url_launcher_web/url_launcher_web.dart';
9 |
10 | import 'package:flutter_web_plugins/flutter_web_plugins.dart';
11 |
12 | // ignore: public_member_api_docs
13 | void registerPlugins(Registrar registrar) {
14 | UrlLauncherPlugin.registerWith(registrar);
15 | registrar.registerMessageHandler();
16 | }
17 |
--------------------------------------------------------------------------------
/lib/main.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 |
3 | import 'screens/home_screen.dart';
4 | import 'utils/custom_scroll.dart';
5 |
6 | void main() {
7 | runApp(MyApp());
8 | }
9 |
10 | class MyApp extends StatelessWidget {
11 | @override
12 | Widget build(BuildContext context) {
13 | return MaterialApp(
14 | title: 'Ashutosh Singh',
15 | debugShowCheckedModeBanner: false,
16 | scrollBehavior: MyCustomScrollBehavior(),
17 | theme: ThemeData(
18 | primarySwatch: Colors.green,
19 | visualDensity: VisualDensity.adaptivePlatformDensity,
20 | ),
21 | home: HomeScreen(),
22 | );
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/lib/screens/home_screen.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/foundation.dart';
2 | import 'package:flutter/material.dart';
3 | import 'package:flutter_developer_portfolio/widgets/home_body/web_home_body.dart';
4 | import 'package:particles_flutter/particles_flutter.dart';
5 |
6 | import '../utils/common_functions.dart';
7 | import '../utils/constants.dart';
8 | import '../widgets/app_bar/mobile_app_bar.dart';
9 | import '../widgets/app_bar/web_app_bar.dart';
10 | import '../widgets/home_body/app_home_body.dart';
11 | import '../widgets/social_handles/social_handles.dart';
12 |
13 | class HomeScreen extends StatefulWidget {
14 | @override
15 | _HomeScreenState createState() => _HomeScreenState();
16 | }
17 |
18 | class _HomeScreenState extends State {
19 | PageController _pageController;
20 | double _appBarHeight;
21 |
22 | @override
23 | void initState() {
24 | super.initState();
25 | _pageController = PageController(
26 | keepPage: true,
27 | viewportFraction: 1,
28 | );
29 | }
30 |
31 | @override
32 | void dispose() {
33 | _pageController.dispose();
34 | super.dispose();
35 | }
36 |
37 | @override
38 | Widget build(BuildContext context) {
39 | return Scaffold(
40 | backgroundColor: Constants.navy,
41 | bottomNavigationBar: CommonFunction.isApp(context)
42 | ? SafeArea(
43 | child: Padding(
44 | padding: EdgeInsets.all(
45 | kIsWeb ? 8.0 : 0,
46 | ),
47 | child: SocialHandles(),
48 | ),
49 | )
50 | : null,
51 | appBar: AppBar(
52 | backgroundColor: Constants.navy,
53 | shadowColor: Constants.green.withOpacity(0.5),
54 | elevation: 10,
55 | toolbarHeight: _appBarHeight,
56 | title: CommonFunction.isApp(context)
57 | ? MobileAppBar(
58 | appBarClick: (isToggled, item) {
59 | setState(() {
60 | if (isToggled)
61 | _appBarHeight = 160;
62 | else
63 | _appBarHeight = null;
64 | });
65 | if (item != -1) {
66 | _pageController.animateToPage(
67 | item,
68 | curve: Curves.easeIn,
69 | duration: Duration(milliseconds: 800),
70 | );
71 | }
72 | },
73 | )
74 | : WebAppBar(
75 | pageCallback: (pageNumber) {
76 | _pageController.animateToPage(
77 | pageNumber,
78 | curve: Curves.easeIn,
79 | duration: Duration(milliseconds: 800),
80 | );
81 | },
82 | ),
83 | ),
84 | body: Container(
85 | child: Stack(
86 | children: [
87 | CircularParticle(
88 | key: UniqueKey(),
89 | awayRadius: 1,
90 | numberOfParticles: CommonFunction.isApp(context) ? 20 : 50,
91 | speedOfParticles: 2,
92 | height: MediaQuery.of(context).size.height,
93 | width: MediaQuery.of(context).size.width,
94 | onTapAnimation: true,
95 | particleColor: Constants.white,
96 | awayAnimationDuration: Duration(milliseconds: 600),
97 | maxParticleSize: 2,
98 | isRandSize: true,
99 | isRandomColor: true,
100 | randColorList: [Constants.green, Constants.white, Constants.lightestNavy],
101 | awayAnimationCurve: Curves.easeInOut,
102 | enableHover: false,
103 | connectDots: false,
104 | ),
105 | if (CommonFunction.isApp(context))
106 | AppHomeBody(
107 | pageController: _pageController,
108 | )
109 | else
110 | WebHomeBody(
111 | pageController: _pageController,
112 | ),
113 | ],
114 | ),
115 | ),
116 | );
117 | }
118 | }
119 |
--------------------------------------------------------------------------------
/lib/utils/common_functions.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/cupertino.dart';
2 | import 'package:url_launcher/url_launcher.dart';
3 |
4 | class CommonFunction {
5 | static void openFromUrl(String url) async {
6 | if (await canLaunch(url)) {
7 | await launch(url);
8 | } else {
9 | throw 'Could not launch $url';
10 | }
11 | }
12 |
13 | static void openMail() {
14 | Uri _emailLaunchUri = Uri(
15 | scheme: 'mailto',
16 | path: 'hiashutoshkumarsingh@gmail.com',
17 | );
18 | launch(_emailLaunchUri.toString());
19 | }
20 |
21 | static bool isApp(BuildContext context) {
22 | double width = MediaQuery.of(context).size.width;
23 | if (width > 800) {
24 | return false;
25 | } else {
26 | return true;
27 | }
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/lib/utils/constants.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/cupertino.dart';
2 |
3 | class Constants {
4 | /// all theme colors for project
5 | static final Color navy = Color(0xff0a192f);
6 | static final Color lightNavy = Color(0xff172a45);
7 | static final Color lightestNavy = Color(0xff303C55);
8 | static final Color slate = Color(0xff8892b0);
9 | static final Color lightSlate = Color(0xffa8b2d1);
10 | static final Color lightestSlate = Color(0xffccd6f6);
11 | static final Color green = Color(0xff64ffda);
12 | static final Color white = Color(0xffe6f1ff);
13 |
14 | static final String githubUrl = 'https://github.com/hiashutoshsingh/';
15 | static final String linkedinUrl = 'https://www.linkedin.com/in/hiashutoshsingh/';
16 | static final String twitterUrl = 'https://twitter.com/hiashutoshsingh/';
17 | static final String instagramUrl = 'https://www.instagram.com/hiashutoshsingh/';
18 | static final String facebookUrl = 'https://www.facebook.com/hiashutoshsingh/';
19 | static final String mediumUrl = 'https://medium.com/@hiashutoshsingh';
20 | static final String stackoverflowUrl = 'https://stackoverflow.com/users/6875249/hiashutoshsingh';
21 | static final String email = 'hiashutoshkumarsingh@gmail.com';
22 | }
23 |
--------------------------------------------------------------------------------
/lib/utils/custom_scroll.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/gestures.dart';
2 | import 'package:flutter/material.dart';
3 |
4 | class MyCustomScrollBehavior extends MaterialScrollBehavior {
5 | @override
6 | Set get dragDevices => {
7 | PointerDeviceKind.touch,
8 | PointerDeviceKind.mouse,
9 | };
10 | }
11 |
--------------------------------------------------------------------------------
/lib/widgets/app_bar/mobile_app_bar.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/foundation.dart';
2 | import 'package:flutter/material.dart';
3 | import 'package:flutter_developer_portfolio/utils/constants.dart';
4 |
5 | class MobileAppBar extends StatefulWidget {
6 | final Function(bool, int) appBarClick;
7 |
8 | MobileAppBar({
9 | this.appBarClick,
10 | });
11 |
12 | @override
13 | _MobileAppBarState createState() => _MobileAppBarState();
14 | }
15 |
16 | class _MobileAppBarState extends State {
17 | bool _toggle;
18 |
19 | @override
20 | void initState() {
21 | super.initState();
22 | _toggle = false;
23 | }
24 |
25 | @override
26 | Widget build(BuildContext context) {
27 | return Column(
28 | crossAxisAlignment: CrossAxisAlignment.start,
29 | children: [
30 | Row(
31 | mainAxisAlignment: MainAxisAlignment.spaceBetween,
32 | crossAxisAlignment: CrossAxisAlignment.center,
33 | children: [
34 | InkWell(
35 | onTap: () => widget.appBarClick(_toggle, 0),
36 | child: Text(
37 | 'Ashutosh.',
38 | style: TextStyle(
39 | fontWeight: FontWeight.bold,
40 | fontSize: 32,
41 | color: Constants.green,
42 | fontFamily: 'FiraSans',
43 | ),
44 | ),
45 | ),
46 | InkWell(
47 | onTap: () {
48 | setState(() {
49 | _toggle = !_toggle;
50 | });
51 | widget.appBarClick(_toggle, -1);
52 | },
53 | child: Container(
54 | decoration: BoxDecoration(
55 | borderRadius: BorderRadius.circular(6),
56 | border: Border.all(
57 | color: Constants.green,
58 | ),
59 | ),
60 | child: Padding(
61 | padding: const EdgeInsets.all(2.0),
62 | child: Icon(
63 | Icons.view_headline_outlined,
64 | color: Constants.slate,
65 | size: 24,
66 | ),
67 | ),
68 | ),
69 | ),
70 | ],
71 | ),
72 | _toggle
73 | ? Padding(
74 | padding: const EdgeInsets.only(
75 | top: 8,
76 | left: 4,
77 | ),
78 | child: Column(
79 | crossAxisAlignment: CrossAxisAlignment.start,
80 | children: [
81 | _appBarItem(
82 | 'About',
83 | 1,
84 | Icons.info_outline,
85 | ),
86 | _appBarItem(
87 | 'Experience',
88 | 2,
89 | Icons.work_outline,
90 | ),
91 | _appBarItem(
92 | 'Work',
93 | 3,
94 | Icons.handyman_outlined,
95 | ),
96 | ],
97 | ),
98 | )
99 | : Container()
100 | ],
101 | );
102 | }
103 |
104 | Widget _appBarItem(String title, int item, IconData icon) {
105 | return InkWell(
106 | onTap: () {
107 | setState(() {
108 | _toggle = !_toggle;
109 | });
110 | widget.appBarClick(false, item);
111 | },
112 | child: Padding(
113 | padding: const EdgeInsets.only(
114 | bottom: 12,
115 | ),
116 | child: Row(
117 | children: [
118 | Icon(
119 | icon,
120 | size: kIsWeb ? 20 : 24,
121 | color: Constants.green.withOpacity(0.8),
122 | ),
123 | SizedBox(
124 | width: 16,
125 | ),
126 | Text(
127 | title,
128 | style: TextStyle(
129 | fontWeight: FontWeight.w800,
130 | fontSize: kIsWeb ? 16 : 20,
131 | color: Constants.white,
132 | fontFamily: 'FiraSans',
133 | ),
134 | ),
135 | ],
136 | ),
137 | ),
138 | );
139 | }
140 | }
141 |
--------------------------------------------------------------------------------
/lib/widgets/app_bar/web_app_bar.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 | import 'package:flutter_developer_portfolio/utils/constants.dart';
3 |
4 | class WebAppBar extends StatelessWidget {
5 | final Function(int) pageCallback;
6 |
7 | WebAppBar({
8 | this.pageCallback,
9 | });
10 |
11 | @override
12 | Widget build(BuildContext context) {
13 | return Container(
14 | color: Constants.navy,
15 | child: Padding(
16 | padding: EdgeInsets.symmetric(horizontal: 32),
17 | child: Row(
18 | mainAxisAlignment: MainAxisAlignment.spaceBetween,
19 | children: [
20 | InkWell(
21 | onTap: () {
22 | pageCallback(0);
23 | },
24 |
25 | /// todo generic
26 | child: Text(
27 | 'Ashutosh.'.toUpperCase(),
28 | style: TextStyle(
29 | fontWeight: FontWeight.w800,
30 | fontSize: 32,
31 | color: Constants.green,
32 | fontFamily: 'FiraSans',
33 | ),
34 | ),
35 | ),
36 | Row(
37 | children: [
38 | InkWell(
39 | onTap: () {
40 | pageCallback(1);
41 | },
42 | child: _appBarItem(
43 | '1',
44 | 'About',
45 | Icons.info_outline,
46 | ),
47 | ),
48 | SizedBox(
49 | width: 32,
50 | ),
51 | InkWell(
52 | onTap: () {
53 | pageCallback(2);
54 | },
55 | child: _appBarItem(
56 | '2',
57 | 'Experience',
58 | Icons.work_outline,
59 | ),
60 | ),
61 | SizedBox(
62 | width: 32,
63 | ),
64 | InkWell(
65 | onTap: () {
66 | pageCallback(3);
67 | },
68 | child: _appBarItem(
69 | '3',
70 | 'Work',
71 | Icons.handyman_outlined,
72 | ),
73 | ),
74 | SizedBox(
75 | width: 32,
76 | ),
77 | ],
78 | ),
79 | ],
80 | ),
81 | ),
82 | );
83 | }
84 |
85 | Widget _appBarItem(String number, String item, IconData iconData) {
86 | return Row(
87 | children: [
88 | Icon(
89 | iconData,
90 | size: 18,
91 | color: Constants.green,
92 | ),
93 | SizedBox(
94 | width: 8,
95 | ),
96 | Text(
97 | '$item',
98 | style: TextStyle(
99 | fontSize: 16,
100 | color: Colors.white,
101 | fontFamily: 'FiraSans',
102 | fontWeight: FontWeight.w400,
103 | ),
104 | ),
105 | ],
106 | );
107 | }
108 | }
109 |
--------------------------------------------------------------------------------
/lib/widgets/bottom_line_widget.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 | import 'package:flutter_developer_portfolio/utils/constants.dart';
3 |
4 | class BottomLineWidget extends StatelessWidget {
5 | @override
6 | Widget build(BuildContext context) {
7 | return Padding(
8 | padding: const EdgeInsets.only(top: 16),
9 | child: Container(
10 | height: 100,
11 | width: 1,
12 | color: Constants.white,
13 | ),
14 | );
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/lib/widgets/company_job_info.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 | import 'package:flutter_developer_portfolio/utils/common_functions.dart';
3 | import 'package:flutter_developer_portfolio/utils/constants.dart';
4 |
5 | class CompanyJobInfo extends StatelessWidget {
6 | final int selectedIndex;
7 |
8 | CompanyJobInfo({
9 | this.selectedIndex,
10 | });
11 |
12 | @override
13 | Widget build(BuildContext context) {
14 | /// todo generic
15 | if (selectedIndex == 0) {
16 | return Column(
17 | crossAxisAlignment: CrossAxisAlignment.start,
18 | children: [
19 | _position('Software Engineer', 'Gojek', 'https://gojek.com/', context),
20 | SizedBox(
21 | height: 8,
22 | ),
23 | _period('June 2022', 'Present', context),
24 | SizedBox(
25 | height: 16,
26 | ),
27 | _jobRole(
28 | 'UXE Engineering',
29 | context),
30 | SizedBox(
31 | height: 16,
32 | ),
33 | ],
34 | );
35 | }
36 | if (selectedIndex == 1) {
37 | return Column(
38 | crossAxisAlignment: CrossAxisAlignment.start,
39 | children: [
40 | /// todo generic
41 | _position('Software Developer Engineer I', 'Innovaccer', 'https://innovaccer.com/', context),
42 | SizedBox(
43 | height: 8,
44 | ),
45 | _period('March 2020', 'June 2022', context),
46 | SizedBox(
47 | height: 16,
48 | ),
49 | _jobRole(
50 | 'Worked on the Chat-SDK and building Design system components in Flutter, which is used in a variety of Innovaccer mobile products as well as a Telemedicine application.',
51 | context),
52 | SizedBox(
53 | height: 12,
54 | ),
55 | _jobRole(
56 | 'On Android, iOS, and the Web, I developed and released the CBO app, which is utilised by community organisations to assist manage social risk factors.',
57 | context),
58 | SizedBox(
59 | height: 12,
60 | ),
61 | _jobRole('I worked with multi-disciplinary teams of engineers, designers, and product managers on a daily basis.',
62 | context),
63 | SizedBox(
64 | height: 12,
65 | ),
66 | _jobRole(
67 | 'The team had several discussions and demos to learn more about flutter and make our existing apps more scalable.',
68 | context),
69 | ],
70 | );
71 | } else if (selectedIndex == 2) {
72 | return Column(
73 | crossAxisAlignment: CrossAxisAlignment.start,
74 | children: [
75 | _position('Executive Software Developer', 'Zappfresh', 'https://www.zappfresh.com/', context),
76 | SizedBox(
77 | height: 8,
78 | ),
79 | _period('August 2019', 'Feb 2020', context),
80 | SizedBox(
81 | height: 16,
82 | ),
83 | _jobRole(
84 | 'I developed the 2.0 version of Zappfresh from the bottom up utilising Agile processes with the help of a Tech Lead and a Designer.',
85 | context),
86 | SizedBox(
87 | height: 12,
88 | ),
89 | _jobRole("In Flutter, I built and constructed a basic inventory app that is used by users at Zappfresh's many hubs.",
90 | context),
91 | SizedBox(
92 | height: 12,
93 | ),
94 | _jobRole("Responsible for the design, development, testing, and upkeep of Zappfresh's current app.", context),
95 | ],
96 | );
97 | } else if (selectedIndex == 3) {
98 | return Column(
99 | crossAxisAlignment: CrossAxisAlignment.start,
100 | children: [
101 | _position('Software Engineer Intern', 'DUIT Mobile', 'https://www.duit.io/', context),
102 | SizedBox(
103 | height: 8,
104 | ),
105 | _period('March 2018', 'Jan 2019', context),
106 | SizedBox(
107 | height: 16,
108 | ),
109 | _jobRole(
110 | 'Successfully implemented modules like profile, analytics, Realm and also app connected with server APIs', context),
111 | SizedBox(
112 | height: 12,
113 | ),
114 | _jobRole('Conducted and Organised Startup Events and networking with people', context),
115 | ],
116 | );
117 | } else if (selectedIndex == 4) {
118 | return Column(
119 | crossAxisAlignment: CrossAxisAlignment.start,
120 | children: [
121 | _position('Android Developer Intern', 'Sapne NGO', 'http://www.sapne.org.in/', context),
122 | SizedBox(
123 | height: 8,
124 | ),
125 | _period('Aug 2018', 'Jan 2019', context),
126 | SizedBox(
127 | height: 16,
128 | ),
129 | _jobRole('Improved app functionality and logics by writing modular code', context),
130 | SizedBox(
131 | height: 12,
132 | ),
133 | _jobRole('Planned and implemented few modules in current to attract users', context),
134 | ],
135 | );
136 | } else {
137 | return Column(
138 | crossAxisAlignment: CrossAxisAlignment.start,
139 | children: [
140 | _position(
141 | 'Android Developer Intern', 'Optimus Technology & IT - Services', 'https://www.optimustechnology.com/', context),
142 | SizedBox(
143 | height: 8,
144 | ),
145 | _period('June 2017', 'July 2017', context),
146 | SizedBox(
147 | height: 16,
148 | ),
149 | _jobRole('Successfully Created a Prototype of E-learning app', context),
150 | SizedBox(
151 | height: 12,
152 | ),
153 | _jobRole('Connected with the Local Database using SQLite to handle offline data', context),
154 | ],
155 | );
156 | }
157 | }
158 |
159 | Widget _position(String position, String company, String link, BuildContext context) {
160 | return Row(
161 | children: [
162 | Text(
163 | position,
164 | style: TextStyle(
165 | fontSize: 20,
166 | color: Constants.white,
167 | fontFamily: 'FiraSans',
168 | fontWeight: CommonFunction.isApp(context) ? FontWeight.w600 : FontWeight.normal,
169 | ),
170 | ),
171 | CommonFunction.isApp(context)
172 | ? Container()
173 | : InkWell(
174 | onTap: () {
175 | CommonFunction.openFromUrl(link);
176 | },
177 | child: Text(
178 | ' @' + company,
179 | style: TextStyle(
180 | fontSize: 20,
181 | fontFamily: 'FiraSans',
182 | fontWeight: FontWeight.w400,
183 | color: Constants.green,
184 | ),
185 | ),
186 | ),
187 | ],
188 | );
189 | }
190 |
191 | Widget _period(String start, String end, BuildContext context) {
192 | return Text(
193 | '$start - $end',
194 | style: TextStyle(
195 | fontSize: CommonFunction.isApp(context) ? 18 : 16,
196 | color: Constants.slate,
197 | fontFamily: 'FiraSans',
198 | fontWeight: FontWeight.w400,
199 | ),
200 | );
201 | }
202 |
203 | Widget _jobRole(String value, BuildContext context) {
204 | return Row(
205 | crossAxisAlignment: CrossAxisAlignment.start,
206 | children: [
207 | Padding(
208 | padding: EdgeInsets.only(top: 2),
209 | child: Icon(
210 | Icons.play_arrow,
211 | size: CommonFunction.isApp(context) ? 20 : 16,
212 | color: Constants.green,
213 | ),
214 | ),
215 | SizedBox(
216 | width: 12,
217 | ),
218 | Flexible(
219 | child: Text(
220 | value,
221 | style: TextStyle(
222 | fontSize: 16,
223 | color: Constants.slate,
224 | fontFamily: 'FiraSans',
225 | fontWeight: FontWeight.w400,
226 | ),
227 | ),
228 | ),
229 | ],
230 | );
231 | }
232 | }
233 |
--------------------------------------------------------------------------------
/lib/widgets/company_tile.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 | import 'package:flutter_developer_portfolio/utils/common_functions.dart';
3 | import 'package:flutter_developer_portfolio/utils/constants.dart';
4 |
5 | class CompanyTile extends StatelessWidget {
6 | final String val;
7 | final bool selected;
8 |
9 | CompanyTile({
10 | this.val,
11 | this.selected = false,
12 | });
13 |
14 | @override
15 | Widget build(BuildContext context) {
16 | return Container(
17 | decoration: BoxDecoration(
18 | color: selected ? Constants.green.withOpacity(.05) : Colors.transparent,
19 | borderRadius: BorderRadius.circular(
20 | CommonFunction.isApp(context) ? 12 : 6,
21 | ),
22 | ),
23 | child: Padding(
24 | padding: EdgeInsets.all(12.0),
25 | child: Text(
26 | val,
27 | style: TextStyle(
28 | fontSize: CommonFunction.isApp(context) ? 18 : 16,
29 | color: selected ? Constants.green : Constants.slate,
30 | fontFamily: 'FiraSans',
31 | fontWeight: CommonFunction.isApp(context) ? FontWeight.w600 : FontWeight.w400,
32 | ),
33 | ),
34 | ),
35 | );
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/lib/widgets/email_widget.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 | import 'package:flutter_developer_portfolio/utils/common_functions.dart';
3 | import 'package:flutter_developer_portfolio/utils/constants.dart';
4 |
5 | import 'bottom_line_widget.dart';
6 |
7 | class EmailWidget extends StatefulWidget {
8 | @override
9 | State createState() => _EmailWidgetState();
10 | }
11 |
12 | class _EmailWidgetState extends State {
13 | bool _emailHover;
14 | double _animatedPaddingValueBottom;
15 | double _animatedPaddingValueTop;
16 |
17 | @override
18 | void initState() {
19 | super.initState();
20 | _emailHover = false;
21 | _animatedPaddingValueBottom = 0;
22 | _animatedPaddingValueTop = 24;
23 | }
24 |
25 | @override
26 | Widget build(BuildContext context) {
27 | return Column(
28 | mainAxisSize: MainAxisSize.min,
29 | crossAxisAlignment: CrossAxisAlignment.start,
30 | children: [
31 | RotatedBox(
32 | quarterTurns: 1,
33 | child: InkWell(
34 | onTap: () {
35 | CommonFunction.openMail();
36 | },
37 | onHover: (val) {
38 | if (val) {
39 | setState(() {
40 | _emailHover = true;
41 | _animatedPaddingValueTop = 18;
42 | _animatedPaddingValueBottom = 6;
43 | });
44 | } else {
45 | setState(() {
46 | _emailHover = false;
47 | _animatedPaddingValueTop = 24;
48 | _animatedPaddingValueBottom = 0;
49 | });
50 | }
51 | },
52 | child: AnimatedPadding(
53 | curve: Curves.easeIn,
54 | padding: EdgeInsets.only(
55 | left: _animatedPaddingValueTop,
56 | right: _animatedPaddingValueBottom,
57 | ),
58 | duration: Duration(milliseconds: 100),
59 | child: Text(
60 | Constants.email,
61 |
62 | /// todo style from TextStyle
63 | style: TextStyle(
64 | fontSize: 16,
65 | fontFamily: 'FiraSans',
66 | fontWeight: FontWeight.w400,
67 | color: _emailHover ? Constants.green : Constants.slate,
68 | ),
69 | ),
70 | ),
71 | ),
72 | ),
73 | SizedBox(
74 | height: 24,
75 | ),
76 | !CommonFunction.isApp(context)
77 | ? InkWell(
78 | onTap: () {
79 | CommonFunction.openFromUrl('https://brittanychiang.com/');
80 | },
81 | child: Tooltip(
82 | message: 'Shout-out to Brittany Chiang',
83 | textStyle: TextStyle(
84 | fontWeight: FontWeight.w400,
85 | fontSize: 12,
86 | color: Constants.green,
87 | fontFamily: 'FiraSans',
88 | ),
89 | child: Icon(
90 | Icons.whatshot,
91 | size: 20,
92 | color: Constants.lightestSlate,
93 | ),
94 | ),
95 | )
96 | : Container(),
97 | SizedBox(
98 | height: 16,
99 | ),
100 | Padding(
101 | padding: EdgeInsets.only(
102 | left: 8,
103 | ),
104 | child: BottomLineWidget(),
105 | ),
106 | ],
107 | );
108 | }
109 | }
110 |
--------------------------------------------------------------------------------
/lib/widgets/home_body/app_home_body.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 | import 'package:flutter_developer_portfolio/utils/common_functions.dart';
3 | import 'package:flutter_developer_portfolio/widgets/main_page/about_me_widget.dart';
4 | import 'package:flutter_developer_portfolio/widgets/main_page/experience.dart';
5 | import 'package:flutter_developer_portfolio/widgets/main_page/introduction.dart';
6 | import 'package:flutter_developer_portfolio/widgets/main_page/projects.dart';
7 | import 'package:flutter_developer_portfolio/widgets/project_showcase.dart';
8 |
9 | import '../other_noteworthy_projects/other_projects.dart';
10 |
11 | class AppHomeBody extends StatelessWidget {
12 | final PageController pageController;
13 |
14 | AppHomeBody({
15 | this.pageController,
16 | });
17 |
18 | @override
19 | Widget build(BuildContext context) {
20 | return PageView(
21 | scrollDirection: Axis.vertical,
22 | controller: pageController,
23 | children: [
24 | Padding(
25 | padding: const EdgeInsets.only(
26 | left: 16,
27 | right: 4,
28 | ),
29 | child: Introduction(),
30 | ),
31 | Padding(
32 | padding: const EdgeInsets.only(
33 | left: 16,
34 | right: 16,
35 | ),
36 | child: AboutMeWidget(),
37 | ),
38 | Padding(
39 | padding: const EdgeInsets.only(
40 | left: 16,
41 | right: 16,
42 | ),
43 | child: Experience(),
44 | ),
45 | Padding(
46 | padding: EdgeInsets.only(
47 | left: CommonFunction.isApp(context) ? 16 : 0,
48 | top: 48,
49 | bottom: 48,
50 | ),
51 | child: Projects(),
52 | ),
53 |
54 | /// todo generic
55 | Padding(
56 | padding: EdgeInsets.only(
57 | left: CommonFunction.isApp(context) ? 16 : 0,
58 | ),
59 | child: _showcaseWidget(
60 | 'YourSkool',
61 | 'YourSkool gives a platform to practise english for children aged 5-12yrs.',
62 | appUrl: 'https://play.google.com/store/apps/details?id=co.yourskool',
63 | ),
64 | ),
65 | Padding(
66 | padding: EdgeInsets.only(
67 | left: CommonFunction.isApp(context) ? 16 : 0,
68 | ),
69 | child: _showcaseWidget(
70 | 'Intellect',
71 | 'Intellect provides you platform to prepare for UPSC.',
72 | appUrl: 'https://play.google.com/store/apps/details?id=com.intellectias.gradeupProto',
73 | ),
74 | ),
75 | Padding(
76 | padding: EdgeInsets.only(
77 | left: CommonFunction.isApp(context) ? 16 : 0,
78 | ),
79 | child: _showcaseWidget(
80 | 'Intellect Dashboard',
81 | 'Dashboard to mange your courses, videos, tests and materials for Intellect app.',
82 | ),
83 | ),
84 | Padding(
85 | padding: EdgeInsets.only(
86 | left: CommonFunction.isApp(context) ? 16 : 0,
87 | ),
88 | child: _showcaseWidget(
89 | 'Batuni',
90 | 'Batuni connects you to other users in topic based anonymous audio chats.',
91 | appUrl: 'https://play.google.com/store/apps/details?id=app.batuni',
92 | ),
93 | ),
94 | Padding(
95 | padding: EdgeInsets.only(
96 | left: CommonFunction.isApp(context) ? 16 : 0,
97 | ),
98 | child: _showcaseWidget(
99 | 'Duit',
100 | 'Duit provides you to share contact information with anyone to expand your reach.',
101 | appUrl: 'https://play.google.com/store/apps/details?id=io.duit.ecards',
102 | ),
103 | ),
104 | Padding(
105 | padding: EdgeInsets.only(
106 | top: 48,
107 | bottom: 48,
108 | ) +
109 | (CommonFunction.isApp(context) ? EdgeInsets.symmetric(horizontal: 16) : EdgeInsets.zero),
110 | child: OtherProjects(),
111 | ),
112 | ],
113 | );
114 | }
115 |
116 | Widget _showcaseWidget(
117 | String title,
118 | String subtitle, {
119 | String appUrl,
120 | String github,
121 | }) {
122 | return Padding(
123 | padding: const EdgeInsets.symmetric(vertical: 48),
124 | child: ProjectShowcase(
125 | title: title,
126 | subTitle: subtitle,
127 | playStoreUrl: appUrl,
128 | githubUrl: github,
129 | ),
130 | );
131 | }
132 | }
133 |
--------------------------------------------------------------------------------
/lib/widgets/home_body/web_home_body.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 | import 'package:flutter_developer_portfolio/utils/constants.dart';
3 | import 'package:flutter_developer_portfolio/widgets/project_showcase.dart';
4 | import 'package:flutter_developer_portfolio/widgets/social_handles/social_handles.dart';
5 |
6 | import '../bottom_line_widget.dart';
7 | import '../email_widget.dart';
8 | import '../main_page/about_me_widget.dart';
9 | import '../main_page/experience.dart';
10 | import '../main_page/introduction.dart';
11 | import '../main_page/projects.dart';
12 | import '../other_noteworthy_projects/other_projects.dart';
13 |
14 | class WebHomeBody extends StatelessWidget {
15 | final PageController pageController;
16 |
17 | WebHomeBody({
18 | this.pageController,
19 | });
20 |
21 | @override
22 | Widget build(BuildContext context) {
23 | return Container(
24 | child: Padding(
25 | padding: const EdgeInsets.symmetric(
26 | horizontal: 8,
27 | ),
28 | child: RawScrollbar(
29 | controller: pageController,
30 | thickness: 8,
31 | interactive: true,
32 | thumbColor: Constants.green,
33 | radius: Radius.circular(8),
34 | child: Padding(
35 | padding: const EdgeInsets.symmetric(
36 | horizontal: 40,
37 | ),
38 | child: Row(
39 | mainAxisSize: MainAxisSize.max,
40 | crossAxisAlignment: CrossAxisAlignment.end,
41 | children: [
42 | Column(
43 | mainAxisAlignment: MainAxisAlignment.end,
44 | mainAxisSize: MainAxisSize.max,
45 | children: [
46 | SocialHandles(),
47 | SizedBox(
48 | height: 16,
49 | ),
50 | BottomLineWidget(),
51 | ],
52 | ),
53 | Expanded(
54 | child: Padding(
55 | padding: EdgeInsets.symmetric(horizontal: 128),
56 | child: PageView(
57 | scrollDirection: Axis.vertical,
58 | controller: pageController,
59 | children: [
60 | Introduction(),
61 | AboutMeWidget(),
62 | Experience(),
63 | Padding(
64 | padding: const EdgeInsets.symmetric(vertical: 48),
65 | child: Projects(),
66 | ),
67 |
68 | /// todo pass this through constants
69 | _showcaseWidget(
70 | 'YourSkool',
71 | 'YourSkool gives a platform to practise english for children aged 5-12yrs.',
72 | ),
73 | _showcaseWidget(
74 | 'Intellect',
75 | 'Intellect provides you platform to prepare for UPSC.',
76 | ),
77 | _showcaseWidget(
78 | 'Intellect Dashboard',
79 | 'Dashboard to mange your courses, videos, tests and materials for Intellect app.',
80 | ),
81 | _showcaseWidget(
82 | 'Batuni',
83 | 'Batuni connects you to other users in topic based anonymous audio chats.',
84 | appUrl: 'https://play.google.com/store/apps/details?id=app.batuni',
85 | ),
86 | _showcaseWidget(
87 | 'Duit',
88 | 'Duit provides you to share contact information with anyone to expand your reach.',
89 | ),
90 | Padding(
91 | padding: EdgeInsets.symmetric(vertical: 48),
92 | child: OtherProjects(),
93 | ),
94 | ],
95 | ),
96 | ),
97 | ),
98 | EmailWidget(),
99 | ],
100 | ),
101 | ),
102 | ),
103 | ),
104 | );
105 | }
106 |
107 | Widget _showcaseWidget(
108 | String title,
109 | String subtitle, {
110 | String appUrl,
111 | String github,
112 | }) {
113 | return Padding(
114 | padding: const EdgeInsets.symmetric(vertical: 48),
115 | child: ProjectShowcase(
116 | title: title,
117 | subTitle: subtitle,
118 | playStoreUrl: appUrl,
119 | githubUrl: github,
120 | ),
121 | );
122 | }
123 | }
124 |
--------------------------------------------------------------------------------
/lib/widgets/main_page/about_me_widget.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 | import 'package:flutter_developer_portfolio/utils/constants.dart';
3 | import 'package:flutter_developer_portfolio/widgets/sub_header.dart';
4 |
5 | import '../../utils/common_functions.dart';
6 | import '../profile_image_widget.dart';
7 | import '../tech_stack_item.dart';
8 |
9 | class AboutMeWidget extends StatelessWidget {
10 | @override
11 | Widget build(BuildContext context) {
12 | return Column(
13 | crossAxisAlignment: CrossAxisAlignment.start,
14 | mainAxisAlignment: MainAxisAlignment.center,
15 | mainAxisSize: MainAxisSize.min,
16 | children: [
17 | SubHeader(
18 | number: '01.',
19 | heading: 'About me',
20 | ),
21 | SizedBox(
22 | height: CommonFunction.isApp(context) ? 16 : 32,
23 | ),
24 | Row(
25 | crossAxisAlignment: CrossAxisAlignment.center,
26 | children: [
27 | Flexible(
28 | flex: 10,
29 | child: Column(
30 | crossAxisAlignment: CrossAxisAlignment.start,
31 | mainAxisAlignment: MainAxisAlignment.center,
32 | mainAxisSize: MainAxisSize.min,
33 | children: [
34 | if (CommonFunction.isApp(context)) ...[
35 | Center(child: ProfileImageWidget()),
36 | SizedBox(
37 | height: 16,
38 | ),
39 | ],
40 | Text(
41 | "I'm using Flutter to create mobile apps, and I've completed over ten mobile and online projects. \nI presently work as a Software Engineer for Gojek, and I'm also working on various side projects to improve my mobile skills.",
42 | style: TextStyle(
43 | fontSize: CommonFunction.isApp(context) ? 18 : 16,
44 | color: Constants.slate,
45 | fontFamily: 'FiraSans',
46 | fontWeight: FontWeight.w400,
47 | ),
48 | ),
49 | SizedBox(
50 | height: 8,
51 | ),
52 | Text(
53 | 'I enjoy making music beats and travelling SOLO to new locations :)',
54 | style: TextStyle(
55 | fontSize: CommonFunction.isApp(context) ? 18 : 16,
56 | color: Constants.slate,
57 | fontFamily: 'FiraSans',
58 | fontWeight: FontWeight.w400,
59 | ),
60 | ),
61 | SizedBox(
62 | height: 16,
63 | ),
64 | Flexible(
65 | child: Text(
66 | "I've worked on the following technologies:",
67 | style: TextStyle(
68 | fontSize: CommonFunction.isApp(context) ? 18 : 16,
69 | color: Constants.slate,
70 | fontFamily: 'FiraSans',
71 | fontWeight: FontWeight.w400,
72 | ),
73 | ),
74 | ),
75 | SizedBox(
76 | height: 16,
77 | ),
78 | Flexible(
79 | child: Row(
80 | mainAxisSize: MainAxisSize.min,
81 | children: [
82 | Column(
83 | crossAxisAlignment: CrossAxisAlignment.start,
84 | children: [
85 | TechStackItem(text: 'Flutter'),
86 | SizedBox(
87 | height: CommonFunction.isApp(context) ? 8 : 12,
88 | ),
89 | TechStackItem(text: 'Android'),
90 | SizedBox(
91 | height: CommonFunction.isApp(context) ? 8 : 12,
92 | ),
93 | TechStackItem(text: 'Python'),
94 | ],
95 | ),
96 | SizedBox(
97 | width: 32,
98 | ),
99 | Column(
100 | crossAxisAlignment: CrossAxisAlignment.start,
101 | children: [
102 | TechStackItem(text: 'Flutter-Web'),
103 | SizedBox(
104 | height: CommonFunction.isApp(context) ? 8 : 12,
105 | ),
106 | TechStackItem(text: 'iOS'),
107 | SizedBox(
108 | height: CommonFunction.isApp(context) ? 8 : 12,
109 | ),
110 | TechStackItem(text: 'ReactNative'),
111 | ],
112 | ),
113 | ],
114 | ),
115 | ),
116 | ],
117 | ),
118 | ),
119 | !CommonFunction.isApp(context)
120 | ? Flexible(
121 | flex: 4,
122 | child: ProfileImageWidget(),
123 | )
124 | : Container()
125 | ],
126 | ),
127 | ],
128 | );
129 | }
130 | }
131 |
--------------------------------------------------------------------------------
/lib/widgets/main_page/experience.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 | import 'package:flutter_developer_portfolio/utils/common_functions.dart';
3 | import 'package:flutter_developer_portfolio/widgets/company_job_info.dart';
4 | import 'package:flutter_developer_portfolio/widgets/company_tile.dart';
5 | import 'package:flutter_developer_portfolio/widgets/sub_header.dart';
6 |
7 | class Experience extends StatefulWidget {
8 | @override
9 | _ExperienceState createState() => _ExperienceState();
10 | }
11 |
12 | class _ExperienceState extends State {
13 | List _companyList;
14 | List _companySelected = [];
15 | int _selectedIndex;
16 |
17 | @override
18 | void initState() {
19 | super.initState();
20 |
21 | /// todo move to constants
22 | _companyList = [
23 | 'Optimus Technology & IT - Services',
24 | 'SAPNE NGO',
25 | 'DUIT Mobile',
26 | 'Zappfresh',
27 | 'Innovaccer',
28 | 'Gojek',
29 | ];
30 | _selectedIndex = _companyList.length-1;
31 | for (int i = 0; i < _companyList.length-1; i++) {
32 | _companySelected.add(false);
33 | }
34 | _companySelected.add(true);
35 | }
36 |
37 | @override
38 | void didChangeDependencies() {
39 | super.didChangeDependencies();
40 | if (CommonFunction.isApp(context)) {
41 | _selectedIndex = 0;
42 | _companyList = _companyList.reversed.toList();
43 | _companySelected = _companySelected.reversed.toList();
44 | }
45 | }
46 |
47 | @override
48 | Widget build(BuildContext context) {
49 | return Column(
50 | crossAxisAlignment: CrossAxisAlignment.start,
51 | mainAxisAlignment: MainAxisAlignment.center,
52 | mainAxisSize: MainAxisSize.min,
53 | children: [
54 | Padding(
55 | padding: EdgeInsets.only(
56 | top: CommonFunction.isApp(context) ? 64 : 0,
57 | ),
58 | child: SubHeader(
59 | number: '02.',
60 | heading: 'Experience',
61 | ),
62 | ),
63 | SizedBox(
64 | height: 32,
65 | ),
66 | CommonFunction.isApp(context)
67 | ? Expanded(
68 | child: Column(
69 | mainAxisSize: MainAxisSize.min,
70 | children: [
71 | Container(
72 | height: 64,
73 | child: ListView.builder(
74 | itemCount: _companyList.length,
75 | shrinkWrap: true,
76 | scrollDirection: Axis.horizontal,
77 | reverse: CommonFunction.isApp(context) ? false : true,
78 | itemBuilder: (context, index) {
79 | return InkWell(
80 | splashColor: Colors.transparent,
81 | hoverColor: Colors.transparent,
82 | onTap: () {
83 | setState(() {
84 | _selectedIndex = index;
85 | _companySelected[index] = true;
86 | for (int i = 0; i < _companyList.length; i++) {
87 | if (i != index) {
88 | _companySelected[i] = false;
89 | }
90 | }
91 | });
92 | },
93 | child: Center(
94 | child: CompanyTile(
95 | val: _companyList[index],
96 | selected: _companySelected[index],
97 | ),
98 | ),
99 | );
100 | },
101 | ),
102 | ),
103 | Padding(
104 | padding: const EdgeInsets.only(
105 | top: 16,
106 | left: 12,
107 | ),
108 | child: CompanyJobInfo(
109 | selectedIndex: CommonFunction.isApp(context) ? _selectedIndex : _companyList.length-1 - _selectedIndex,
110 | ),
111 | ),
112 | ],
113 | ),
114 | )
115 | : Row(
116 | mainAxisSize: MainAxisSize.min,
117 | crossAxisAlignment: CrossAxisAlignment.start,
118 | children: [
119 | Expanded(
120 | flex: 1,
121 | child: ListView.builder(
122 | itemCount: _companyList.length,
123 | shrinkWrap: true,
124 | physics: NeverScrollableScrollPhysics(),
125 | reverse: true,
126 | itemBuilder: (context, index) {
127 | return InkWell(
128 | splashColor: Colors.transparent,
129 | hoverColor: Colors.transparent,
130 | highlightColor: Colors.transparent,
131 | onTap: () {
132 | setState(() {
133 | _selectedIndex = index;
134 | _companySelected[index] = true;
135 | for (int i = 0; i < _companyList.length; i++) {
136 | if (i != index) {
137 | _companySelected[i] = false;
138 | }
139 | }
140 | });
141 | },
142 | child: Padding(
143 | padding: const EdgeInsets.symmetric(vertical: 4) + EdgeInsets.only(right: 64),
144 | child: CompanyTile(
145 | val: _companyList[index],
146 | selected: _companySelected[index],
147 | ),
148 | ),
149 | );
150 | },
151 | ),
152 | ),
153 | Expanded(
154 | flex: 2,
155 | child: CompanyJobInfo(
156 | selectedIndex: _companyList.length-1 - _selectedIndex,
157 | ),
158 | ),
159 | ],
160 | ),
161 | ],
162 | );
163 | }
164 | }
165 |
--------------------------------------------------------------------------------
/lib/widgets/main_page/introduction.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 | import 'package:flutter_developer_portfolio/utils/common_functions.dart';
3 | import 'package:flutter_developer_portfolio/utils/constants.dart';
4 |
5 | class Introduction extends StatelessWidget {
6 | @override
7 | Widget build(BuildContext context) {
8 | return Container(
9 | child: Column(
10 | crossAxisAlignment: CrossAxisAlignment.start,
11 | mainAxisAlignment: MainAxisAlignment.center,
12 | children: [
13 | /// todo generic
14 | Text(
15 | 'Hi, my name is',
16 | style: TextStyle(
17 | fontWeight: FontWeight.w600,
18 | fontSize: CommonFunction.isApp(context) ? 24 : 16,
19 | color: Constants.green,
20 | fontFamily: 'FiraSans',
21 | ),
22 | ),
23 | SizedBox(
24 | height: 32,
25 | ),
26 | Text(
27 | 'Ashutosh Singh.',
28 | style: TextStyle(
29 | fontWeight: FontWeight.w800,
30 | fontSize: CommonFunction.isApp(context) ? 48 : 64,
31 | color: Constants.white,
32 | fontFamily: 'FiraSans',
33 | ),
34 | ),
35 | SizedBox(
36 | height: 16,
37 | ),
38 | Text(
39 | 'I build mobile apps.',
40 | style: TextStyle(
41 | fontWeight: FontWeight.w800,
42 | fontFamily: 'FiraSans',
43 | fontSize: CommonFunction.isApp(context) ? 48 : 64,
44 | color: Constants.lightSlate,
45 | ),
46 | ),
47 | SizedBox(
48 | height: 32,
49 | ),
50 | Text(
51 | "I am a Software Developer from India that specialises in developing mobile apps. \nI'm fluttering right now!",
52 | style: TextStyle(
53 | fontWeight: FontWeight.w600,
54 | fontSize: 16,
55 | fontFamily: 'FiraSans',
56 | color: Constants.slate,
57 | ),
58 | ),
59 | ],
60 | ),
61 | );
62 | }
63 | }
64 |
--------------------------------------------------------------------------------
/lib/widgets/main_page/projects.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 | import 'package:flutter_developer_portfolio/widgets/project_showcase.dart';
3 | import 'package:flutter_developer_portfolio/widgets/sub_header.dart';
4 |
5 | class Projects extends StatelessWidget {
6 | @override
7 | Widget build(BuildContext context) {
8 | return Container(
9 | child: Column(
10 | crossAxisAlignment: CrossAxisAlignment.start,
11 | mainAxisAlignment: MainAxisAlignment.center,
12 | children: [
13 | SubHeader(
14 | number: '03.',
15 | heading: 'Some Things I’ve Built',
16 | ),
17 | SizedBox(
18 | height: 32,
19 | ),
20 |
21 | /// todo change this
22 | /// todo generic
23 | Expanded(
24 | child: ProjectShowcase(
25 | title: 'Janhit',
26 | subTitle:
27 | 'Janhit app provides you information about the Covid 19.',
28 | ),
29 | ),
30 | ],
31 | ),
32 | );
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/lib/widgets/other_noteworthy_projects/other_project_item.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 | import 'package:flutter_developer_portfolio/utils/common_functions.dart';
3 | import 'package:flutter_developer_portfolio/utils/constants.dart';
4 |
5 | class OtherNoteworthyProjectItem extends StatelessWidget {
6 | final String title;
7 | final String description;
8 | final String url;
9 |
10 | OtherNoteworthyProjectItem({
11 | this.title,
12 | this.description,
13 | this.url,
14 | });
15 |
16 | @override
17 | Widget build(BuildContext context) {
18 | var size = MediaQuery.of(context).size;
19 | return Container(
20 | width: CommonFunction.isApp(context) ? null : size.width * .3,
21 | height: CommonFunction.isApp(context) ? null : size.height * .2,
22 | child: Card(
23 | color: Constants.lightNavy,
24 | elevation: 5,
25 | child: Padding(
26 | padding: EdgeInsets.all(16.0),
27 | child: Column(
28 | crossAxisAlignment: CrossAxisAlignment.start,
29 | mainAxisSize: MainAxisSize.min,
30 | children: [
31 | Row(
32 | mainAxisAlignment: MainAxisAlignment.spaceBetween,
33 | crossAxisAlignment: CrossAxisAlignment.start,
34 | children: [
35 | Flexible(
36 | child: Text(
37 | title,
38 | style: TextStyle(
39 | fontSize: CommonFunction.isApp(context) ? 20 : 16,
40 | fontWeight: FontWeight.w600,
41 | color: Constants.white,
42 | fontFamily: 'FiraSans',
43 | ),
44 | ),
45 | ),
46 | InkWell(
47 | onTap: () {
48 | CommonFunction.openFromUrl(url);
49 | },
50 | child: Icon(
51 | Icons.open_in_new,
52 | size: CommonFunction.isApp(context) ? 20 : 16,
53 | color: Constants.green,
54 | ),
55 | )
56 | ],
57 | ),
58 | SizedBox(
59 | height: 16,
60 | ),
61 | Flexible(
62 | child: Text(
63 | description,
64 | style: TextStyle(
65 | fontSize: CommonFunction.isApp(context) ? 18 : 16,
66 | color: Constants.lightestSlate,
67 | fontFamily: 'FiraSans',
68 | fontWeight: FontWeight.w400,
69 | ),
70 | ),
71 | ),
72 | ],
73 | ),
74 | ),
75 | ),
76 | );
77 | }
78 | }
79 |
--------------------------------------------------------------------------------
/lib/widgets/other_noteworthy_projects/other_projects.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 | import 'package:flutter_developer_portfolio/utils/common_functions.dart';
3 | import 'package:flutter_developer_portfolio/utils/constants.dart';
4 |
5 | import 'other_project_item.dart';
6 |
7 | class OtherProjects extends StatefulWidget {
8 | @override
9 | _OtherProjectsState createState() => _OtherProjectsState();
10 | }
11 |
12 | class _OtherProjectsState extends State {
13 | List _titleOtherProject;
14 |
15 | List _subTitleOtherProject;
16 |
17 | List _link;
18 |
19 | @override
20 | void initState() {
21 | super.initState();
22 |
23 | /// todo generic
24 | _titleOtherProject = [
25 | 'Flutter Animation Examples',
26 | 'FlutterUIChallenge',
27 | 'Movie',
28 | 'Bulletin',
29 | ];
30 | _subTitleOtherProject = [
31 | 'Examples of all types of widgets used for animation.',
32 | 'List of all the flutter ui screens.',
33 | 'It is clone of the Netlfix app calling api of Movie api.',
34 | 'News app calling api of newapi.org.',
35 | ];
36 | _link = [
37 | 'https://github.com/hiashutoshsingh/flutter-animation_examples',
38 | 'https://github.com/hiashutoshsingh/FlutterUIChallenge',
39 | 'https://github.com/hiashutoshsingh/Movie',
40 | 'https://github.com/hiashutoshsingh/Bulletin',
41 | ];
42 | }
43 |
44 | @override
45 | Widget build(BuildContext context) {
46 | return Column(
47 | crossAxisAlignment: CrossAxisAlignment.center,
48 | mainAxisSize: MainAxisSize.min,
49 | children: [
50 | Text(
51 | 'Other Noteworthy Projects',
52 | style: TextStyle(
53 | fontSize: 24,
54 | fontWeight: FontWeight.w600,
55 | color: Constants.lightestSlate,
56 | fontFamily: 'FiraSans',
57 | ),
58 | ),
59 | SizedBox(
60 | height: 32,
61 | ),
62 | Expanded(
63 | child: ListView(
64 | shrinkWrap: true,
65 | physics: ClampingScrollPhysics(),
66 | children: [
67 | Center(
68 | child: Wrap(
69 | crossAxisAlignment: WrapCrossAlignment.center,
70 | spacing: 16,
71 | runSpacing: 16,
72 | children: [
73 | OtherNoteworthyProjectItem(
74 | title: _titleOtherProject[0],
75 | description: _subTitleOtherProject[0],
76 | url: _link[0],
77 | ),
78 | OtherNoteworthyProjectItem(
79 | title: _titleOtherProject[1],
80 | description: _subTitleOtherProject[1],
81 | url: _link[1],
82 | ),
83 | OtherNoteworthyProjectItem(
84 | title: _titleOtherProject[2],
85 | description: _subTitleOtherProject[2],
86 | url: _link[2],
87 | ),
88 | OtherNoteworthyProjectItem(
89 | title: _titleOtherProject[3],
90 | description: _subTitleOtherProject[3],
91 | url: _link[3],
92 | ),
93 | ],
94 | ),
95 | ),
96 | ],
97 | ),
98 | ),
99 | CommonFunction.isApp(context)
100 | ? Padding(
101 | padding: const EdgeInsets.only(top: 16),
102 | child: InkWell(
103 | onTap: () {
104 | CommonFunction.openFromUrl('https://brittanychiang.com/');
105 | },
106 | child: Card(
107 | color: Constants.slate,
108 | child: Center(
109 | child: Padding(
110 | padding: EdgeInsets.all(8.0),
111 | child: Row(
112 | mainAxisSize: MainAxisSize.min,
113 | children: [
114 | Text(
115 | 'Shout-out to Brittany Chiang',
116 | style: TextStyle(
117 | fontSize: 16,
118 | fontWeight: FontWeight.w600,
119 | color: Constants.white,
120 | fontFamily: 'FiraSans',
121 | ),
122 | ),
123 | SizedBox(
124 | width: 8,
125 | ),
126 | Icon(
127 | Icons.open_in_new,
128 | size: 20,
129 | color: Constants.green,
130 | ),
131 | ],
132 | ),
133 | ),
134 | ),
135 | ),
136 | ),
137 | )
138 | : Container(),
139 | ],
140 | );
141 | }
142 | }
143 |
--------------------------------------------------------------------------------
/lib/widgets/profile_image_widget.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 | import 'package:flutter_developer_portfolio/utils/common_functions.dart';
3 |
4 | class ProfileImageWidget extends StatelessWidget {
5 | @override
6 | Widget build(BuildContext context) {
7 | var size = MediaQuery.of(context).size;
8 | return Padding(
9 | padding: EdgeInsets.symmetric(horizontal: 16),
10 | child: ClipRRect(
11 | borderRadius: BorderRadius.circular(CommonFunction.isApp(context) ? 8 : 6),
12 | child: Image.asset(
13 | "asset/profile.png",
14 | height: CommonFunction.isApp(context) ? size.height * .3 : null,
15 | width: CommonFunction.isApp(context) ? size.width * .6 : null,
16 | fit: BoxFit.cover,
17 | ),
18 | ),
19 | );
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/lib/widgets/project_showcase.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 | import 'package:flutter_developer_portfolio/utils/constants.dart';
3 |
4 | import '../utils/common_functions.dart';
5 |
6 | class ProjectShowcase extends StatefulWidget {
7 | final String title;
8 | final String subTitle;
9 | final String githubUrl;
10 | final String playStoreUrl;
11 |
12 | ProjectShowcase({
13 | this.title,
14 | this.subTitle,
15 | this.githubUrl,
16 | this.playStoreUrl,
17 | });
18 |
19 | @override
20 | _ProjectShowcaseState createState() => _ProjectShowcaseState();
21 | }
22 |
23 | class _ProjectShowcaseState extends State {
24 | List _showcaseList;
25 | String _playStore;
26 |
27 | @override
28 | void initState() {
29 | /// todo generic
30 | _playStore = 'playstore_dark';
31 | if (widget.title == 'YourSkool') {
32 | _showcaseList = [
33 | _placeholder('y1'),
34 | _placeholder('y2'),
35 | _placeholder('y3'),
36 | _placeholder('y4'),
37 | _placeholder('y5'),
38 | _placeholder('y6'),
39 | _placeholder('y7'),
40 | _placeholder('y8'),
41 | ];
42 | } else if (widget.title == 'Janhit') {
43 | _showcaseList = [
44 | _placeholder('janhit_1'),
45 | _placeholder('janhit_2'),
46 | _placeholder('janhit_4'),
47 | _placeholder('janhit_5'),
48 | _placeholder('janhit_6'),
49 | ];
50 | } else if (widget.title == 'Intellect') {
51 | _showcaseList = [
52 | _placeholder('intellect_1'),
53 | _placeholder('intellect_2'),
54 | _placeholder('intellect_3'),
55 | _placeholder('intellect_4'),
56 | _placeholder('intellect_5'),
57 | ];
58 | } else if (widget.title == 'Intellect Dashboard') {
59 | _showcaseList = [
60 | _placeholder('intellect_d_1'),
61 | _placeholder('intellect_d_2'),
62 | _placeholder('intellect_d_3'),
63 | ];
64 | } else if (widget.title == 'Batuni') {
65 | _showcaseList = [
66 | _placeholder('batuni_1'),
67 | _placeholder('batuni_2'),
68 | ];
69 | } else if (widget.title == 'Duit') {
70 | _showcaseList = [
71 | _placeholder('duit_1'),
72 | _placeholder('duit_2'),
73 | _placeholder('duit_3'),
74 | _placeholder('duit_4'),
75 | _placeholder('duit_5'),
76 | ];
77 | }
78 | super.initState();
79 | }
80 |
81 | @override
82 | Widget build(BuildContext context) {
83 | return Container(
84 | child: Column(
85 | crossAxisAlignment: CrossAxisAlignment.start,
86 | mainAxisAlignment: MainAxisAlignment.center,
87 | children: [
88 | Row(
89 | children: [
90 | Text(
91 | widget.title.toUpperCase(),
92 | style: TextStyle(
93 | fontSize: 24,
94 | fontWeight: FontWeight.w600,
95 | color: Constants.lightestSlate,
96 | fontFamily: 'FiraSans',
97 | ),
98 | ),
99 | SizedBox(
100 | width: widget.playStoreUrl != null ? 16 : 0,
101 | ),
102 | widget.playStoreUrl != null
103 | ? InkWell(
104 | onTap: () {
105 | CommonFunction.openFromUrl(widget.playStoreUrl);
106 | },
107 | child: Card(
108 | shadowColor: Constants.green,
109 | color: Constants.navy,
110 | elevation: 5,
111 | child: Image.asset(
112 | 'asset/google_play.png',
113 | fit: BoxFit.fill,
114 | width: 130,
115 | height: 36,
116 | ),
117 | ),
118 | )
119 | : Container(),
120 | widget.githubUrl != null
121 | ? Padding(
122 | padding: const EdgeInsets.only(left: 16),
123 | child: InkWell(
124 | onTap: () {
125 | CommonFunction.openFromUrl(widget.githubUrl);
126 | },
127 | onHover: (value) {
128 | if (value) {
129 | setState(() {
130 | _playStore = 'github_light';
131 | });
132 | } else {
133 | setState(() {
134 | _playStore = 'github_dark';
135 | });
136 | }
137 | },
138 | child: Image.asset(
139 | 'asset/$_playStore.png',
140 | width: 16,
141 | height: 16,
142 | ),
143 | ),
144 | )
145 | : Container(),
146 | ],
147 | ),
148 | SizedBox(
149 | height: 6,
150 | ),
151 | Text(
152 | widget.subTitle,
153 | style: TextStyle(
154 | fontSize: CommonFunction.isApp(context) ? 18 : 16,
155 | color: Constants.green,
156 | fontFamily: 'FiraSans',
157 | fontWeight: FontWeight.w400,
158 | ),
159 | ),
160 | SizedBox(
161 | height: 16,
162 | ),
163 | Expanded(
164 | child: Padding(
165 | padding: const EdgeInsets.symmetric(vertical: 32),
166 | child: ListView(
167 | scrollDirection: Axis.horizontal,
168 | shrinkWrap: true,
169 | children: _showcaseList,
170 | ),
171 | ),
172 | )
173 | ],
174 | ),
175 | );
176 | }
177 |
178 | Widget _placeholder(String image) {
179 | return Container(
180 | padding: EdgeInsets.symmetric(
181 | horizontal: widget.title == 'Intellect Dashboard' ? 16 : 0,
182 | ),
183 | child: Image.asset(
184 | 'asset/$image.png',
185 | ),
186 | );
187 | }
188 | }
189 |
--------------------------------------------------------------------------------
/lib/widgets/social_handles/social_handle_item.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 | import 'package:flutter_svg/flutter_svg.dart';
3 |
4 | import '../../utils/common_functions.dart';
5 | import '../../utils/constants.dart';
6 |
7 | class SocialHandleItem extends StatefulWidget {
8 | final String socialHandleUrl;
9 | final String assetName;
10 |
11 | SocialHandleItem({
12 | this.assetName,
13 | this.socialHandleUrl,
14 | });
15 |
16 | @override
17 | _SocialHandleItemState createState() => _SocialHandleItemState();
18 | }
19 |
20 | class _SocialHandleItemState extends State {
21 | Color _iconColor;
22 | double _iconSize;
23 | double _animatedPaddingValueBottom;
24 | double _animatedPaddingValueTop;
25 |
26 | @override
27 | void initState() {
28 | super.initState();
29 | _iconColor = Constants.lightestSlate;
30 | _iconSize = 24;
31 | _animatedPaddingValueBottom = 0;
32 | _animatedPaddingValueTop = 24;
33 | }
34 |
35 | @override
36 | Widget build(BuildContext context) {
37 | return InkWell(
38 | splashColor: Colors.transparent,
39 | hoverColor: Colors.transparent,
40 | highlightColor: Colors.transparent,
41 | onTap: () {
42 | CommonFunction.openFromUrl(widget.socialHandleUrl);
43 | },
44 | onHover: (value) {
45 | if (value) {
46 | setState(() {
47 | _iconColor = Constants.green;
48 | _animatedPaddingValueTop = 18;
49 | _animatedPaddingValueBottom = 6;
50 | });
51 | } else {
52 | setState(() {
53 | _iconColor = Constants.lightestSlate;
54 | _animatedPaddingValueTop = 24;
55 | _animatedPaddingValueBottom = 0;
56 | });
57 | }
58 | },
59 | child: AnimatedPadding(
60 | curve: Curves.easeIn,
61 | padding: EdgeInsets.only(
62 | top: _animatedPaddingValueTop,
63 | bottom: _animatedPaddingValueBottom,
64 | ),
65 | duration: Duration(milliseconds: 200),
66 | child: SvgPicture.asset(
67 | 'asset/${widget.assetName}.svg',
68 | width: _iconSize,
69 | height: _iconSize,
70 | color: _iconColor,
71 | ),
72 | ),
73 | );
74 | }
75 | }
76 |
--------------------------------------------------------------------------------
/lib/widgets/social_handles/social_handles.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 | import 'package:flutter_developer_portfolio/utils/common_functions.dart';
3 | import 'package:flutter_developer_portfolio/utils/constants.dart';
4 |
5 | import '../../utils/constants.dart';
6 | import 'social_handle_item.dart';
7 |
8 | class SocialHandles extends StatefulWidget {
9 | @override
10 | _SocialHandlesState createState() => _SocialHandlesState();
11 | }
12 |
13 | class _SocialHandlesState extends State {
14 | @override
15 | Widget build(BuildContext context) {
16 | return CommonFunction.isApp(context)
17 | ? Row(
18 | mainAxisSize: MainAxisSize.max,
19 | children: _socialList(),
20 | mainAxisAlignment: MainAxisAlignment.spaceAround,
21 | crossAxisAlignment: CrossAxisAlignment.center,
22 | )
23 | : Column(
24 | crossAxisAlignment: CrossAxisAlignment.start,
25 | mainAxisSize: MainAxisSize.min,
26 | mainAxisAlignment: MainAxisAlignment.spaceEvenly,
27 | children: _socialList(),
28 | );
29 | }
30 |
31 | List _socialList() {
32 | return [
33 | SocialHandleItem(
34 | assetName: 'github',
35 | socialHandleUrl: Constants.githubUrl,
36 | ),
37 | SocialHandleItem(
38 | assetName: 'medium',
39 | socialHandleUrl: Constants.mediumUrl,
40 | ),
41 | SocialHandleItem(
42 | assetName: 'stackoverflow',
43 | socialHandleUrl: Constants.stackoverflowUrl,
44 | ),
45 | SocialHandleItem(
46 | assetName: 'linkedin',
47 | socialHandleUrl: Constants.linkedinUrl,
48 | ),
49 | SocialHandleItem(
50 | assetName: 'twitter',
51 | socialHandleUrl: Constants.twitterUrl,
52 | ),
53 | SocialHandleItem(
54 | assetName: 'instagram',
55 | socialHandleUrl: Constants.instagramUrl,
56 | ),
57 | SocialHandleItem(
58 | assetName: 'facebook',
59 | socialHandleUrl: Constants.facebookUrl,
60 | ),
61 | CommonFunction.isApp(context)
62 | ? InkWell(
63 | onTap: () {
64 | CommonFunction.openMail();
65 | },
66 | child: Padding(
67 | padding: EdgeInsets.only(top: 22),
68 | child: Icon(
69 | Icons.email_outlined,
70 | size: 24,
71 | color: Constants.lightestSlate,
72 | ),
73 | ),
74 | )
75 | : Container(),
76 | ];
77 | }
78 | }
79 |
--------------------------------------------------------------------------------
/lib/widgets/sub_header.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 | import 'package:flutter_developer_portfolio/utils/common_functions.dart';
3 | import 'package:flutter_developer_portfolio/utils/constants.dart';
4 |
5 | class SubHeader extends StatelessWidget {
6 | final String number;
7 | final String heading;
8 |
9 | SubHeader({
10 | this.number,
11 | this.heading,
12 | });
13 |
14 | @override
15 | Widget build(BuildContext context) {
16 | return Row(
17 | mainAxisSize: MainAxisSize.min,
18 | children: [
19 | Flexible(
20 | flex: 2,
21 | child: Row(
22 | mainAxisSize: MainAxisSize.min,
23 | crossAxisAlignment: CommonFunction.isApp(context) ? CrossAxisAlignment.start : CrossAxisAlignment.center,
24 | children: [
25 | Padding(
26 | padding: EdgeInsets.only(
27 | top: CommonFunction.isApp(context) ? 6 : 2,
28 | ),
29 | child: Text(
30 | number,
31 | style: TextStyle(
32 | fontSize: 24,
33 | color: Constants.green,
34 | fontFamily: 'FiraSans',
35 | fontWeight: FontWeight.w400,
36 | ),
37 | ),
38 | ),
39 | SizedBox(
40 | width: 8,
41 | ),
42 | Flexible(
43 | child: Text(
44 | heading,
45 | style: TextStyle(
46 | fontSize: 32,
47 | fontFamily: 'FiraSans',
48 | fontWeight: FontWeight.w800,
49 | color: Constants.white,
50 | ),
51 | ),
52 | ),
53 | SizedBox(
54 | width: 16,
55 | ),
56 | ],
57 | ),
58 | ),
59 | CommonFunction.isApp(context)
60 | ? Container()
61 | : Flexible(
62 | flex: 1,
63 | child: Container(
64 | height: .5,
65 | color: Constants.slate,
66 | ),
67 | )
68 | ],
69 | );
70 | }
71 | }
72 |
--------------------------------------------------------------------------------
/lib/widgets/tech_stack_item.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 | import 'package:flutter_developer_portfolio/utils/common_functions.dart';
3 | import 'package:flutter_developer_portfolio/utils/constants.dart';
4 |
5 | class TechStackItem extends StatelessWidget {
6 | final String text;
7 |
8 | TechStackItem({
9 | this.text,
10 | });
11 |
12 | @override
13 | Widget build(BuildContext context) {
14 | return Row(
15 | children: [
16 | Icon(
17 | Icons.play_arrow,
18 | size: CommonFunction.isApp(context) ? 20 : 14,
19 | color: Constants.green,
20 | ),
21 | SizedBox(
22 | width: 8,
23 | ),
24 | Text(
25 | text,
26 | overflow: TextOverflow.ellipsis,
27 | style: TextStyle(
28 | fontSize: CommonFunction.isApp(context) ? 18 : 16,
29 | color: Constants.slate,
30 | fontFamily: 'FiraSans',
31 | fontWeight: FontWeight.w400,
32 | ),
33 | ),
34 | ],
35 | );
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/pubspec.yaml:
--------------------------------------------------------------------------------
1 | name: flutter_developer_portfolio
2 | description: Flutter Developer Portfolio
3 | publish_to: 'none'
4 | version: 0.0.1+1
5 |
6 | environment:
7 | sdk: ">=2.7.0 <3.0.0"
8 |
9 | dependencies:
10 | flutter:
11 | sdk: flutter
12 | url_launcher: 6.0.20
13 | particles_flutter: 0.1.4
14 | flutter_svg: 1.0.3
15 |
16 |
17 | flutter:
18 | uses-material-design: true
19 | assets:
20 | - asset/
21 | fonts:
22 | - family: FiraSans
23 | fonts:
24 | - asset: asset/fonts/FiraSans-Regular.ttf
25 | weight: 400
26 | - asset: asset/fonts/FiraSans-SemiBold.ttf
27 | weight: 600
28 | - asset: asset/fonts/FiraSans-ExtraBold.ttf
29 | weight: 800
30 |
31 |
--------------------------------------------------------------------------------
/web/favicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hiashutoshsingh/flutter-developer-portfolio/1c8ee52c7b049cc6c3061093d0af02e997d5b6bd/web/favicon.png
--------------------------------------------------------------------------------
/web/icons/Icon-192.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hiashutoshsingh/flutter-developer-portfolio/1c8ee52c7b049cc6c3061093d0af02e997d5b6bd/web/icons/Icon-192.png
--------------------------------------------------------------------------------
/web/icons/Icon-512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hiashutoshsingh/flutter-developer-portfolio/1c8ee52c7b049cc6c3061093d0af02e997d5b6bd/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 |
20 | Ashutosh Singh
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
56 |
59 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
--------------------------------------------------------------------------------
/web/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "flutter_developer_portfolio",
3 | "short_name": "flutter_developer_portfolio",
4 | "start_url": ".",
5 | "display": "standalone",
6 | "background_color": "#0175C2",
7 | "theme_color": "#0175C2",
8 | "description": "Flutter Developer Portfolio",
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 |
--------------------------------------------------------------------------------
/web/styles.css:
--------------------------------------------------------------------------------
1 | html,
2 | body {
3 | height: 100%;
4 | width: 100%;
5 | background-color: #172a45;
6 | }
7 | .center {
8 | margin: 0;
9 | position: absolute;
10 | top: 50%;
11 | left: 50%;
12 | margin-right: -50%;
13 | transform: translate(-50%, -50%)
14 | }
--------------------------------------------------------------------------------