diff --git a/snehao/android/app/build.gradle b/snehao/android/app/build.gradle
new file mode 100644
index 0000000..6eb93ce
--- /dev/null
+++ b/snehao/android/app/build.gradle
@@ -0,0 +1,68 @@
+def localProperties = new Properties()
+def localPropertiesFile = rootProject.file('local.properties')
+if (localPropertiesFile.exists()) {
+ localPropertiesFile.withReader('UTF-8') { reader ->
+ localProperties.load(reader)
+ }
+}
+
+def flutterRoot = localProperties.getProperty('flutter.sdk')
+if (flutterRoot == null) {
+ throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.")
+}
+
+def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
+if (flutterVersionCode == null) {
+ flutterVersionCode = '1'
+}
+
+def flutterVersionName = localProperties.getProperty('flutter.versionName')
+if (flutterVersionName == null) {
+ flutterVersionName = '1.0'
+}
+
+apply plugin: 'com.android.application'
+apply plugin: 'kotlin-android'
+apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
+
+android {
+ compileSdkVersion 30
+
+ compileOptions {
+ sourceCompatibility JavaVersion.VERSION_1_8
+ targetCompatibility JavaVersion.VERSION_1_8
+ }
+
+ kotlinOptions {
+ jvmTarget = '1.8'
+ }
+
+ sourceSets {
+ main.java.srcDirs += 'src/main/kotlin'
+ }
+
+ defaultConfig {
+ // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
+ applicationId "com.example.newsapp"
+ minSdkVersion 16
+ targetSdkVersion 30
+ versionCode flutterVersionCode.toInteger()
+ versionName flutterVersionName
+ }
+
+ buildTypes {
+ release {
+ // TODO: Add your own signing config for the release build.
+ // Signing with the debug keys for now, so `flutter run --release` works.
+ signingConfig signingConfigs.debug
+ }
+ }
+}
+
+flutter {
+ source '../..'
+}
+
+dependencies {
+ implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
+}
diff --git a/snehao/android/app/src/debug/AndroidManifest.xml b/snehao/android/app/src/debug/AndroidManifest.xml
new file mode 100644
index 0000000..7892dd7
--- /dev/null
+++ b/snehao/android/app/src/debug/AndroidManifest.xml
@@ -0,0 +1,7 @@
+
+
+
+
diff --git a/snehao/android/app/src/main/AndroidManifest.xml b/snehao/android/app/src/main/AndroidManifest.xml
new file mode 100644
index 0000000..28a056b
--- /dev/null
+++ b/snehao/android/app/src/main/AndroidManifest.xml
@@ -0,0 +1,41 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/snehao/android/app/src/main/java/io/flutter/plugins/GeneratedPluginRegistrant.java b/snehao/android/app/src/main/java/io/flutter/plugins/GeneratedPluginRegistrant.java
new file mode 100644
index 0000000..539ab02
--- /dev/null
+++ b/snehao/android/app/src/main/java/io/flutter/plugins/GeneratedPluginRegistrant.java
@@ -0,0 +1,19 @@
+package io.flutter.plugins;
+
+import androidx.annotation.Keep;
+import androidx.annotation.NonNull;
+import io.flutter.Log;
+
+import io.flutter.embedding.engine.FlutterEngine;
+
+/**
+ * Generated file. Do not edit.
+ * This file is generated by the Flutter tool based on the
+ * plugins that support the Android platform.
+ */
+@Keep
+public final class GeneratedPluginRegistrant {
+ private static final String TAG = "GeneratedPluginRegistrant";
+ public static void registerWith(@NonNull FlutterEngine flutterEngine) {
+ }
+}
diff --git a/snehao/android/app/src/main/kotlin/com/example/newsapp/MainActivity.kt b/snehao/android/app/src/main/kotlin/com/example/newsapp/MainActivity.kt
new file mode 100644
index 0000000..107faa2
--- /dev/null
+++ b/snehao/android/app/src/main/kotlin/com/example/newsapp/MainActivity.kt
@@ -0,0 +1,6 @@
+package com.example.newsapp
+
+import io.flutter.embedding.android.FlutterActivity
+
+class MainActivity: FlutterActivity() {
+}
diff --git a/snehao/android/app/src/main/res/drawable-v21/launch_background.xml b/snehao/android/app/src/main/res/drawable-v21/launch_background.xml
new file mode 100644
index 0000000..1cb7aa2
--- /dev/null
+++ b/snehao/android/app/src/main/res/drawable-v21/launch_background.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
diff --git a/snehao/android/app/src/main/res/drawable/launch_background.xml b/snehao/android/app/src/main/res/drawable/launch_background.xml
new file mode 100644
index 0000000..8403758
--- /dev/null
+++ b/snehao/android/app/src/main/res/drawable/launch_background.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
diff --git a/snehao/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/snehao/android/app/src/main/res/mipmap-hdpi/ic_launcher.png
new file mode 100644
index 0000000..db77bb4
Binary files /dev/null and b/snehao/android/app/src/main/res/mipmap-hdpi/ic_launcher.png differ
diff --git a/snehao/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/snehao/android/app/src/main/res/mipmap-mdpi/ic_launcher.png
new file mode 100644
index 0000000..17987b7
Binary files /dev/null and b/snehao/android/app/src/main/res/mipmap-mdpi/ic_launcher.png differ
diff --git a/snehao/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/snehao/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
new file mode 100644
index 0000000..09d4391
Binary files /dev/null and b/snehao/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png differ
diff --git a/snehao/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/snehao/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
new file mode 100644
index 0000000..d5f1c8d
Binary files /dev/null and b/snehao/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png differ
diff --git a/snehao/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/snehao/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
new file mode 100644
index 0000000..4d6372e
Binary files /dev/null and b/snehao/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png differ
diff --git a/snehao/android/app/src/main/res/values-night/styles.xml b/snehao/android/app/src/main/res/values-night/styles.xml
new file mode 100644
index 0000000..827f12f
--- /dev/null
+++ b/snehao/android/app/src/main/res/values-night/styles.xml
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
diff --git a/snehao/android/app/src/main/res/values/styles.xml b/snehao/android/app/src/main/res/values/styles.xml
new file mode 100644
index 0000000..ccf2854
--- /dev/null
+++ b/snehao/android/app/src/main/res/values/styles.xml
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
diff --git a/snehao/android/app/src/profile/AndroidManifest.xml b/snehao/android/app/src/profile/AndroidManifest.xml
new file mode 100644
index 0000000..7892dd7
--- /dev/null
+++ b/snehao/android/app/src/profile/AndroidManifest.xml
@@ -0,0 +1,7 @@
+
+
+
+
diff --git a/snehao/android/build.gradle b/snehao/android/build.gradle
new file mode 100644
index 0000000..c11f0f8
--- /dev/null
+++ b/snehao/android/build.gradle
@@ -0,0 +1,29 @@
+buildscript {
+ ext.kotlin_version = '1.3.50'
+ repositories {
+ google()
+ mavenCentral()
+ }
+
+ dependencies {
+ classpath 'com.android.tools.build:gradle:4.1.0'
+ classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
+ }
+}
+
+allprojects {
+ repositories {
+ google()
+ mavenCentral()
+ }
+}
+
+rootProject.buildDir = '../build'
+subprojects {
+ project.buildDir = "${rootProject.buildDir}/${project.name}"
+ project.evaluationDependsOn(':app')
+}
+
+task clean(type: Delete) {
+ delete rootProject.buildDir
+}
diff --git a/snehao/android/gradle.properties b/snehao/android/gradle.properties
new file mode 100644
index 0000000..46c1f16
--- /dev/null
+++ b/snehao/android/gradle.properties
@@ -0,0 +1,3 @@
+org.gradle.jvmargs=-Xmx1536M
+android.useAndroidX=true
+android.enableJetifier=true
diff --git a/snehao/android/gradle/wrapper/gradle-wrapper.jar b/snehao/android/gradle/wrapper/gradle-wrapper.jar
new file mode 100644
index 0000000..13372ae
Binary files /dev/null and b/snehao/android/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/snehao/android/gradle/wrapper/gradle-wrapper.properties b/snehao/android/gradle/wrapper/gradle-wrapper.properties
new file mode 100644
index 0000000..571984a
--- /dev/null
+++ b/snehao/android/gradle/wrapper/gradle-wrapper.properties
@@ -0,0 +1,6 @@
+#Fri Jun 23 08:50:38 CEST 2017
+distributionBase=GRADLE_USER_HOME
+distributionPath=wrapper/dists
+zipStoreBase=GRADLE_USER_HOME
+zipStorePath=wrapper/dists
+distributionUrl=https\://services.gradle.org/distributions/gradle-6.7-all.zip
diff --git a/snehao/android/gradlew b/snehao/android/gradlew
new file mode 100644
index 0000000..9d82f78
--- /dev/null
+++ b/snehao/android/gradlew
@@ -0,0 +1,160 @@
+#!/usr/bin/env bash
+
+##############################################################################
+##
+## Gradle start up script for UN*X
+##
+##############################################################################
+
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS=""
+
+APP_NAME="Gradle"
+APP_BASE_NAME=`basename "$0"`
+
+# Use the maximum available, or set MAX_FD != -1 to use that value.
+MAX_FD="maximum"
+
+warn ( ) {
+ echo "$*"
+}
+
+die ( ) {
+ echo
+ echo "$*"
+ echo
+ exit 1
+}
+
+# OS specific support (must be 'true' or 'false').
+cygwin=false
+msys=false
+darwin=false
+case "`uname`" in
+ CYGWIN* )
+ cygwin=true
+ ;;
+ Darwin* )
+ darwin=true
+ ;;
+ MINGW* )
+ msys=true
+ ;;
+esac
+
+# Attempt to set APP_HOME
+# Resolve links: $0 may be a link
+PRG="$0"
+# Need this for relative symlinks.
+while [ -h "$PRG" ] ; do
+ ls=`ls -ld "$PRG"`
+ link=`expr "$ls" : '.*-> \(.*\)$'`
+ if expr "$link" : '/.*' > /dev/null; then
+ PRG="$link"
+ else
+ PRG=`dirname "$PRG"`"/$link"
+ fi
+done
+SAVED="`pwd`"
+cd "`dirname \"$PRG\"`/" >/dev/null
+APP_HOME="`pwd -P`"
+cd "$SAVED" >/dev/null
+
+CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
+
+# Determine the Java command to use to start the JVM.
+if [ -n "$JAVA_HOME" ] ; then
+ if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+ # IBM's JDK on AIX uses strange locations for the executables
+ JAVACMD="$JAVA_HOME/jre/sh/java"
+ else
+ JAVACMD="$JAVA_HOME/bin/java"
+ fi
+ if [ ! -x "$JAVACMD" ] ; then
+ die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+ fi
+else
+ JAVACMD="java"
+ which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+fi
+
+# Increase the maximum file descriptors if we can.
+if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then
+ MAX_FD_LIMIT=`ulimit -H -n`
+ if [ $? -eq 0 ] ; then
+ if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
+ MAX_FD="$MAX_FD_LIMIT"
+ fi
+ ulimit -n $MAX_FD
+ if [ $? -ne 0 ] ; then
+ warn "Could not set maximum file descriptor limit: $MAX_FD"
+ fi
+ else
+ warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
+ fi
+fi
+
+# For Darwin, add options to specify how the application appears in the dock
+if $darwin; then
+ GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
+fi
+
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin ; then
+ APP_HOME=`cygpath --path --mixed "$APP_HOME"`
+ CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
+ JAVACMD=`cygpath --unix "$JAVACMD"`
+
+ # We build the pattern for arguments to be converted via cygpath
+ ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
+ SEP=""
+ for dir in $ROOTDIRSRAW ; do
+ ROOTDIRS="$ROOTDIRS$SEP$dir"
+ SEP="|"
+ done
+ OURCYGPATTERN="(^($ROOTDIRS))"
+ # Add a user-defined pattern to the cygpath arguments
+ if [ "$GRADLE_CYGPATTERN" != "" ] ; then
+ OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
+ fi
+ # Now convert the arguments - kludge to limit ourselves to /bin/sh
+ i=0
+ for arg in "$@" ; do
+ CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
+ CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
+
+ if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
+ eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
+ else
+ eval `echo args$i`="\"$arg\""
+ fi
+ i=$((i+1))
+ done
+ case $i in
+ (0) set -- ;;
+ (1) set -- "$args0" ;;
+ (2) set -- "$args0" "$args1" ;;
+ (3) set -- "$args0" "$args1" "$args2" ;;
+ (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
+ (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
+ (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
+ (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
+ (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
+ (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
+ esac
+fi
+
+# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
+function splitJvmOpts() {
+ JVM_OPTS=("$@")
+}
+eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
+JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
+
+exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"
diff --git a/snehao/android/gradlew.bat b/snehao/android/gradlew.bat
new file mode 100644
index 0000000..aec9973
--- /dev/null
+++ b/snehao/android/gradlew.bat
@@ -0,0 +1,90 @@
+@if "%DEBUG%" == "" @echo off
+@rem ##########################################################################
+@rem
+@rem Gradle startup script for Windows
+@rem
+@rem ##########################################################################
+
+@rem Set local scope for the variables with windows NT shell
+if "%OS%"=="Windows_NT" setlocal
+
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+set DEFAULT_JVM_OPTS=
+
+set DIRNAME=%~dp0
+if "%DIRNAME%" == "" set DIRNAME=.
+set APP_BASE_NAME=%~n0
+set APP_HOME=%DIRNAME%
+
+@rem Find java.exe
+if defined JAVA_HOME goto findJavaFromJavaHome
+
+set JAVA_EXE=java.exe
+%JAVA_EXE% -version >NUL 2>&1
+if "%ERRORLEVEL%" == "0" goto init
+
+echo.
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:findJavaFromJavaHome
+set JAVA_HOME=%JAVA_HOME:"=%
+set JAVA_EXE=%JAVA_HOME%/bin/java.exe
+
+if exist "%JAVA_EXE%" goto init
+
+echo.
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:init
+@rem Get command-line arguments, handling Windowz variants
+
+if not "%OS%" == "Windows_NT" goto win9xME_args
+if "%@eval[2+2]" == "4" goto 4NT_args
+
+:win9xME_args
+@rem Slurp the command line arguments.
+set CMD_LINE_ARGS=
+set _SKIP=2
+
+:win9xME_args_slurp
+if "x%~1" == "x" goto execute
+
+set CMD_LINE_ARGS=%*
+goto execute
+
+:4NT_args
+@rem Get arguments from the 4NT Shell from JP Software
+set CMD_LINE_ARGS=%$
+
+:execute
+@rem Setup the command line
+
+set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
+
+@rem Execute Gradle
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
+
+:end
+@rem End local scope for the variables with windows NT shell
+if "%ERRORLEVEL%"=="0" goto mainEnd
+
+:fail
+rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
+rem the _cmd.exe /c_ return code!
+if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
+exit /b 1
+
+:mainEnd
+if "%OS%"=="Windows_NT" endlocal
+
+:omega
diff --git a/snehao/android/local.properties b/snehao/android/local.properties
new file mode 100644
index 0000000..2a2a8b9
--- /dev/null
+++ b/snehao/android/local.properties
@@ -0,0 +1,5 @@
+sdk.dir=C:\\Users\\hp\\AppData\\Local\\Android\\sdk
+flutter.sdk=H:\\Flutter\\flutter
+flutter.buildMode=debug
+flutter.versionName=1.0.0
+flutter.versionCode=1
\ No newline at end of file
diff --git a/snehao/android/newsapp_android.iml b/snehao/android/newsapp_android.iml
new file mode 100644
index 0000000..5e74ee6
--- /dev/null
+++ b/snehao/android/newsapp_android.iml
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/snehao/android/settings.gradle b/snehao/android/settings.gradle
new file mode 100644
index 0000000..33f0745
--- /dev/null
+++ b/snehao/android/settings.gradle
@@ -0,0 +1,11 @@
+include ':app'
+
+def localPropertiesFile = new File(rootProject.projectDir, "local.properties")
+def properties = new Properties()
+
+assert localPropertiesFile.exists()
+localPropertiesFile.withReader("UTF-8") { reader -> properties.load(reader) }
+
+def flutterSdkPath = properties.getProperty("flutter.sdk")
+assert flutterSdkPath != null, "flutter.sdk not set in local.properties"
+apply from: "$flutterSdkPath/packages/flutter_tools/gradle/app_plugin_loader.gradle"
diff --git a/snehao/ios/Flutter/AppFrameworkInfo.plist b/snehao/ios/Flutter/AppFrameworkInfo.plist
new file mode 100644
index 0000000..80391e4
--- /dev/null
+++ b/snehao/ios/Flutter/AppFrameworkInfo.plist
@@ -0,0 +1,26 @@
+
+
+
+
+ CFBundleDevelopmentRegion
+ en
+ CFBundleExecutable
+ App
+ CFBundleIdentifier
+ io.flutter.flutter.app
+ CFBundleInfoDictionaryVersion
+ 6.0
+ CFBundleName
+ App
+ CFBundlePackageType
+ FMWK
+ CFBundleShortVersionString
+ 1.0
+ CFBundleSignature
+ ????
+ CFBundleVersion
+ 1.0
+ MinimumOSVersion
+ 9.0
+
+
diff --git a/snehao/ios/Flutter/Debug.xcconfig b/snehao/ios/Flutter/Debug.xcconfig
new file mode 100644
index 0000000..0b2d479
--- /dev/null
+++ b/snehao/ios/Flutter/Debug.xcconfig
@@ -0,0 +1 @@
+#include "Generated.xcconfig"
diff --git a/snehao/ios/Flutter/Generated.xcconfig b/snehao/ios/Flutter/Generated.xcconfig
new file mode 100644
index 0000000..be3ecca
--- /dev/null
+++ b/snehao/ios/Flutter/Generated.xcconfig
@@ -0,0 +1,13 @@
+// This is a generated file; do not edit or check into version control.
+FLUTTER_ROOT=H:\Flutter\flutter
+FLUTTER_APPLICATION_PATH=G:\builtinflutter\newsapp
+COCOAPODS_PARALLEL_CODE_SIGN=true
+FLUTTER_TARGET=lib\main.dart
+FLUTTER_BUILD_DIR=build
+FLUTTER_BUILD_NAME=1.0.0
+FLUTTER_BUILD_NUMBER=1
+EXCLUDED_ARCHS[sdk=iphonesimulator*]=i386
+DART_OBFUSCATION=false
+TRACK_WIDGET_CREATION=false
+TREE_SHAKE_ICONS=false
+PACKAGE_CONFIG=.packages
diff --git a/snehao/ios/Flutter/Release.xcconfig b/snehao/ios/Flutter/Release.xcconfig
new file mode 100644
index 0000000..0b2d479
--- /dev/null
+++ b/snehao/ios/Flutter/Release.xcconfig
@@ -0,0 +1 @@
+#include "Generated.xcconfig"
diff --git a/snehao/ios/Flutter/flutter_export_environment.sh b/snehao/ios/Flutter/flutter_export_environment.sh
new file mode 100644
index 0000000..b45c0e2
--- /dev/null
+++ b/snehao/ios/Flutter/flutter_export_environment.sh
@@ -0,0 +1,13 @@
+#!/bin/sh
+# This is a generated file; do not edit or check into version control.
+export "FLUTTER_ROOT=H:\Flutter\flutter"
+export "FLUTTER_APPLICATION_PATH=G:\builtinflutter\newsapp"
+export "COCOAPODS_PARALLEL_CODE_SIGN=true"
+export "FLUTTER_TARGET=lib\main.dart"
+export "FLUTTER_BUILD_DIR=build"
+export "FLUTTER_BUILD_NAME=1.0.0"
+export "FLUTTER_BUILD_NUMBER=1"
+export "DART_OBFUSCATION=false"
+export "TRACK_WIDGET_CREATION=false"
+export "TREE_SHAKE_ICONS=false"
+export "PACKAGE_CONFIG=.packages"
diff --git a/snehao/ios/Runner.xcodeproj/project.pbxproj b/snehao/ios/Runner.xcodeproj/project.pbxproj
new file mode 100644
index 0000000..d0e2223
--- /dev/null
+++ b/snehao/ios/Runner.xcodeproj/project.pbxproj
@@ -0,0 +1,471 @@
+// !$*UTF8*$!
+{
+ archiveVersion = 1;
+ classes = {
+ };
+ objectVersion = 46;
+ objects = {
+
+/* Begin PBXBuildFile section */
+ 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; };
+ 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; };
+ 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; };
+ 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; };
+ 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; };
+ 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXCopyFilesBuildPhase section */
+ 9705A1C41CF9048500538489 /* Embed Frameworks */ = {
+ isa = PBXCopyFilesBuildPhase;
+ buildActionMask = 2147483647;
+ dstPath = "";
+ dstSubfolderSpec = 10;
+ files = (
+ );
+ name = "Embed Frameworks";
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXCopyFilesBuildPhase section */
+
+/* Begin PBXFileReference section */
+ 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; };
+ 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; };
+ 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; };
+ 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = ""; };
+ 74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; };
+ 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; };
+ 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; };
+ 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; };
+ 97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; };
+ 97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; };
+ 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; };
+ 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; };
+ 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+ 97C146EB1CF9000F007C117D /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+ 9740EEB11CF90186004384FC /* Flutter */ = {
+ isa = PBXGroup;
+ children = (
+ 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */,
+ 9740EEB21CF90195004384FC /* Debug.xcconfig */,
+ 7AFA3C8E1D35360C0083082E /* Release.xcconfig */,
+ 9740EEB31CF90195004384FC /* Generated.xcconfig */,
+ );
+ name = Flutter;
+ sourceTree = "";
+ };
+ 97C146E51CF9000F007C117D = {
+ isa = PBXGroup;
+ children = (
+ 9740EEB11CF90186004384FC /* Flutter */,
+ 97C146F01CF9000F007C117D /* Runner */,
+ 97C146EF1CF9000F007C117D /* Products */,
+ );
+ sourceTree = "";
+ };
+ 97C146EF1CF9000F007C117D /* Products */ = {
+ isa = PBXGroup;
+ children = (
+ 97C146EE1CF9000F007C117D /* Runner.app */,
+ );
+ name = Products;
+ sourceTree = "";
+ };
+ 97C146F01CF9000F007C117D /* Runner */ = {
+ isa = PBXGroup;
+ children = (
+ 97C146FA1CF9000F007C117D /* Main.storyboard */,
+ 97C146FD1CF9000F007C117D /* Assets.xcassets */,
+ 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */,
+ 97C147021CF9000F007C117D /* Info.plist */,
+ 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */,
+ 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */,
+ 74858FAE1ED2DC5600515810 /* AppDelegate.swift */,
+ 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */,
+ );
+ path = Runner;
+ sourceTree = "";
+ };
+/* End PBXGroup section */
+
+/* Begin PBXNativeTarget section */
+ 97C146ED1CF9000F007C117D /* Runner */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */;
+ buildPhases = (
+ 9740EEB61CF901F6004384FC /* Run Script */,
+ 97C146EA1CF9000F007C117D /* Sources */,
+ 97C146EB1CF9000F007C117D /* Frameworks */,
+ 97C146EC1CF9000F007C117D /* Resources */,
+ 9705A1C41CF9048500538489 /* Embed Frameworks */,
+ 3B06AD1E1E4923F5004D2608 /* Thin Binary */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ );
+ name = Runner;
+ productName = Runner;
+ productReference = 97C146EE1CF9000F007C117D /* Runner.app */;
+ productType = "com.apple.product-type.application";
+ };
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+ 97C146E61CF9000F007C117D /* Project object */ = {
+ isa = PBXProject;
+ attributes = {
+ LastUpgradeCheck = 1020;
+ ORGANIZATIONNAME = "";
+ TargetAttributes = {
+ 97C146ED1CF9000F007C117D = {
+ CreatedOnToolsVersion = 7.3.1;
+ LastSwiftMigration = 1100;
+ };
+ };
+ };
+ buildConfigurationList = 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */;
+ compatibilityVersion = "Xcode 9.3";
+ developmentRegion = en;
+ hasScannedForEncodings = 0;
+ knownRegions = (
+ en,
+ Base,
+ );
+ mainGroup = 97C146E51CF9000F007C117D;
+ productRefGroup = 97C146EF1CF9000F007C117D /* Products */;
+ projectDirPath = "";
+ projectRoot = "";
+ targets = (
+ 97C146ED1CF9000F007C117D /* Runner */,
+ );
+ };
+/* End PBXProject section */
+
+/* Begin PBXResourcesBuildPhase section */
+ 97C146EC1CF9000F007C117D /* Resources */ = {
+ isa = PBXResourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */,
+ 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */,
+ 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */,
+ 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXResourcesBuildPhase section */
+
+/* Begin PBXShellScriptBuildPhase section */
+ 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ inputPaths = (
+ );
+ name = "Thin Binary";
+ outputPaths = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin";
+ };
+ 9740EEB61CF901F6004384FC /* Run Script */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ inputPaths = (
+ );
+ name = "Run Script";
+ outputPaths = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build";
+ };
+/* End PBXShellScriptBuildPhase section */
+
+/* Begin PBXSourcesBuildPhase section */
+ 97C146EA1CF9000F007C117D /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */,
+ 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXSourcesBuildPhase section */
+
+/* Begin PBXVariantGroup section */
+ 97C146FA1CF9000F007C117D /* Main.storyboard */ = {
+ isa = PBXVariantGroup;
+ children = (
+ 97C146FB1CF9000F007C117D /* Base */,
+ );
+ name = Main.storyboard;
+ sourceTree = "";
+ };
+ 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */ = {
+ isa = PBXVariantGroup;
+ children = (
+ 97C147001CF9000F007C117D /* Base */,
+ );
+ name = LaunchScreen.storyboard;
+ sourceTree = "";
+ };
+/* End PBXVariantGroup section */
+
+/* Begin XCBuildConfiguration section */
+ 249021D3217E4FDB00AE95B9 /* Profile */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ CLANG_ANALYZER_NONNULL = YES;
+ CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
+ CLANG_CXX_LIBRARY = "libc++";
+ CLANG_ENABLE_MODULES = YES;
+ CLANG_ENABLE_OBJC_ARC = YES;
+ CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
+ CLANG_WARN_BOOL_CONVERSION = YES;
+ CLANG_WARN_COMMA = YES;
+ CLANG_WARN_CONSTANT_CONVERSION = YES;
+ CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
+ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
+ CLANG_WARN_EMPTY_BODY = YES;
+ CLANG_WARN_ENUM_CONVERSION = YES;
+ CLANG_WARN_INFINITE_RECURSION = YES;
+ CLANG_WARN_INT_CONVERSION = YES;
+ CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
+ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
+ CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
+ CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+ CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
+ CLANG_WARN_STRICT_PROTOTYPES = YES;
+ CLANG_WARN_SUSPICIOUS_MOVE = YES;
+ CLANG_WARN_UNREACHABLE_CODE = YES;
+ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+ "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
+ COPY_PHASE_STRIP = NO;
+ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+ ENABLE_NS_ASSERTIONS = NO;
+ ENABLE_STRICT_OBJC_MSGSEND = YES;
+ GCC_C_LANGUAGE_STANDARD = gnu99;
+ GCC_NO_COMMON_BLOCKS = YES;
+ GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
+ GCC_WARN_UNDECLARED_SELECTOR = YES;
+ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
+ GCC_WARN_UNUSED_FUNCTION = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ IPHONEOS_DEPLOYMENT_TARGET = 9.0;
+ MTL_ENABLE_DEBUG_INFO = NO;
+ SDKROOT = iphoneos;
+ SUPPORTED_PLATFORMS = iphoneos;
+ TARGETED_DEVICE_FAMILY = "1,2";
+ VALIDATE_PRODUCT = YES;
+ };
+ name = Profile;
+ };
+ 249021D4217E4FDB00AE95B9 /* Profile */ = {
+ isa = XCBuildConfiguration;
+ baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
+ buildSettings = {
+ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
+ CLANG_ENABLE_MODULES = YES;
+ CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
+ ENABLE_BITCODE = NO;
+ INFOPLIST_FILE = Runner/Info.plist;
+ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
+ PRODUCT_BUNDLE_IDENTIFIER = com.example.newsapp;
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
+ SWIFT_VERSION = 5.0;
+ VERSIONING_SYSTEM = "apple-generic";
+ };
+ name = Profile;
+ };
+ 97C147031CF9000F007C117D /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ CLANG_ANALYZER_NONNULL = YES;
+ CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
+ CLANG_CXX_LIBRARY = "libc++";
+ CLANG_ENABLE_MODULES = YES;
+ CLANG_ENABLE_OBJC_ARC = YES;
+ CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
+ CLANG_WARN_BOOL_CONVERSION = YES;
+ CLANG_WARN_COMMA = YES;
+ CLANG_WARN_CONSTANT_CONVERSION = YES;
+ CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
+ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
+ CLANG_WARN_EMPTY_BODY = YES;
+ CLANG_WARN_ENUM_CONVERSION = YES;
+ CLANG_WARN_INFINITE_RECURSION = YES;
+ CLANG_WARN_INT_CONVERSION = YES;
+ CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
+ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
+ CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
+ CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+ CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
+ CLANG_WARN_STRICT_PROTOTYPES = YES;
+ CLANG_WARN_SUSPICIOUS_MOVE = YES;
+ CLANG_WARN_UNREACHABLE_CODE = YES;
+ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+ "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
+ COPY_PHASE_STRIP = NO;
+ DEBUG_INFORMATION_FORMAT = dwarf;
+ ENABLE_STRICT_OBJC_MSGSEND = YES;
+ ENABLE_TESTABILITY = YES;
+ GCC_C_LANGUAGE_STANDARD = gnu99;
+ GCC_DYNAMIC_NO_PIC = NO;
+ GCC_NO_COMMON_BLOCKS = YES;
+ GCC_OPTIMIZATION_LEVEL = 0;
+ GCC_PREPROCESSOR_DEFINITIONS = (
+ "DEBUG=1",
+ "$(inherited)",
+ );
+ GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
+ GCC_WARN_UNDECLARED_SELECTOR = YES;
+ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
+ GCC_WARN_UNUSED_FUNCTION = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ IPHONEOS_DEPLOYMENT_TARGET = 9.0;
+ MTL_ENABLE_DEBUG_INFO = YES;
+ ONLY_ACTIVE_ARCH = YES;
+ SDKROOT = iphoneos;
+ TARGETED_DEVICE_FAMILY = "1,2";
+ };
+ name = Debug;
+ };
+ 97C147041CF9000F007C117D /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ CLANG_ANALYZER_NONNULL = YES;
+ CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
+ CLANG_CXX_LIBRARY = "libc++";
+ CLANG_ENABLE_MODULES = YES;
+ CLANG_ENABLE_OBJC_ARC = YES;
+ CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
+ CLANG_WARN_BOOL_CONVERSION = YES;
+ CLANG_WARN_COMMA = YES;
+ CLANG_WARN_CONSTANT_CONVERSION = YES;
+ CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
+ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
+ CLANG_WARN_EMPTY_BODY = YES;
+ CLANG_WARN_ENUM_CONVERSION = YES;
+ CLANG_WARN_INFINITE_RECURSION = YES;
+ CLANG_WARN_INT_CONVERSION = YES;
+ CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
+ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
+ CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
+ CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+ CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
+ CLANG_WARN_STRICT_PROTOTYPES = YES;
+ CLANG_WARN_SUSPICIOUS_MOVE = YES;
+ CLANG_WARN_UNREACHABLE_CODE = YES;
+ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+ "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
+ COPY_PHASE_STRIP = NO;
+ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+ ENABLE_NS_ASSERTIONS = NO;
+ ENABLE_STRICT_OBJC_MSGSEND = YES;
+ GCC_C_LANGUAGE_STANDARD = gnu99;
+ GCC_NO_COMMON_BLOCKS = YES;
+ GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
+ GCC_WARN_UNDECLARED_SELECTOR = YES;
+ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
+ GCC_WARN_UNUSED_FUNCTION = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ IPHONEOS_DEPLOYMENT_TARGET = 9.0;
+ MTL_ENABLE_DEBUG_INFO = NO;
+ SDKROOT = iphoneos;
+ SUPPORTED_PLATFORMS = iphoneos;
+ SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
+ TARGETED_DEVICE_FAMILY = "1,2";
+ VALIDATE_PRODUCT = YES;
+ };
+ name = Release;
+ };
+ 97C147061CF9000F007C117D /* Debug */ = {
+ isa = XCBuildConfiguration;
+ baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */;
+ buildSettings = {
+ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
+ CLANG_ENABLE_MODULES = YES;
+ CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
+ ENABLE_BITCODE = NO;
+ INFOPLIST_FILE = Runner/Info.plist;
+ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
+ PRODUCT_BUNDLE_IDENTIFIER = com.example.newsapp;
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
+ SWIFT_OPTIMIZATION_LEVEL = "-Onone";
+ SWIFT_VERSION = 5.0;
+ VERSIONING_SYSTEM = "apple-generic";
+ };
+ name = Debug;
+ };
+ 97C147071CF9000F007C117D /* Release */ = {
+ isa = XCBuildConfiguration;
+ baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
+ buildSettings = {
+ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
+ CLANG_ENABLE_MODULES = YES;
+ CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
+ ENABLE_BITCODE = NO;
+ INFOPLIST_FILE = Runner/Info.plist;
+ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
+ PRODUCT_BUNDLE_IDENTIFIER = com.example.newsapp;
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
+ SWIFT_VERSION = 5.0;
+ VERSIONING_SYSTEM = "apple-generic";
+ };
+ name = Release;
+ };
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+ 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 97C147031CF9000F007C117D /* Debug */,
+ 97C147041CF9000F007C117D /* Release */,
+ 249021D3217E4FDB00AE95B9 /* Profile */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+ 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 97C147061CF9000F007C117D /* Debug */,
+ 97C147071CF9000F007C117D /* Release */,
+ 249021D4217E4FDB00AE95B9 /* Profile */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+/* End XCConfigurationList section */
+ };
+ rootObject = 97C146E61CF9000F007C117D /* Project object */;
+}
diff --git a/snehao/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/snehao/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata
new file mode 100644
index 0000000..c4b79bd
--- /dev/null
+++ b/snehao/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata
@@ -0,0 +1,7 @@
+
+
+
+
+
diff --git a/snehao/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/snehao/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
new file mode 100644
index 0000000..fc6bf80
--- /dev/null
+++ b/snehao/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
@@ -0,0 +1,8 @@
+
+
+
+
+ IDEDidComputeMac32BitWarning
+
+
+
diff --git a/snehao/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/snehao/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings
new file mode 100644
index 0000000..af0309c
--- /dev/null
+++ b/snehao/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings
@@ -0,0 +1,8 @@
+
+
+
+
+ PreviewsEnabled
+
+
+
diff --git a/snehao/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/snehao/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme
new file mode 100644
index 0000000..be0b92e
--- /dev/null
+++ b/snehao/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme
@@ -0,0 +1,91 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/snehao/ios/Runner.xcworkspace/contents.xcworkspacedata b/snehao/ios/Runner.xcworkspace/contents.xcworkspacedata
new file mode 100644
index 0000000..59c6d39
--- /dev/null
+++ b/snehao/ios/Runner.xcworkspace/contents.xcworkspacedata
@@ -0,0 +1,7 @@
+
+
+
+
+
diff --git a/snehao/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/snehao/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
new file mode 100644
index 0000000..fc6bf80
--- /dev/null
+++ b/snehao/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
@@ -0,0 +1,8 @@
+
+
+
+
+ IDEDidComputeMac32BitWarning
+
+
+
diff --git a/snehao/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/snehao/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings
new file mode 100644
index 0000000..af0309c
--- /dev/null
+++ b/snehao/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings
@@ -0,0 +1,8 @@
+
+
+
+
+ PreviewsEnabled
+
+
+
diff --git a/snehao/ios/Runner/AppDelegate.swift b/snehao/ios/Runner/AppDelegate.swift
new file mode 100644
index 0000000..3763683
--- /dev/null
+++ b/snehao/ios/Runner/AppDelegate.swift
@@ -0,0 +1,13 @@
+import UIKit
+import Flutter
+
+@UIApplicationMain
+@objc class AppDelegate: FlutterAppDelegate {
+ override func application(
+ _ application: UIApplication,
+ didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
+ ) -> Bool {
+ GeneratedPluginRegistrant.register(with: self)
+ return super.application(application, didFinishLaunchingWithOptions: launchOptions)
+ }
+}
diff --git a/snehao/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json b/snehao/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json
new file mode 100644
index 0000000..1950fd8
--- /dev/null
+++ b/snehao/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json
@@ -0,0 +1,122 @@
+{
+ "images" : [
+ {
+ "size" : "20x20",
+ "idiom" : "iphone",
+ "filename" : "Icon-App-20x20@2x.png",
+ "scale" : "2x"
+ },
+ {
+ "size" : "20x20",
+ "idiom" : "iphone",
+ "filename" : "Icon-App-20x20@3x.png",
+ "scale" : "3x"
+ },
+ {
+ "size" : "29x29",
+ "idiom" : "iphone",
+ "filename" : "Icon-App-29x29@1x.png",
+ "scale" : "1x"
+ },
+ {
+ "size" : "29x29",
+ "idiom" : "iphone",
+ "filename" : "Icon-App-29x29@2x.png",
+ "scale" : "2x"
+ },
+ {
+ "size" : "29x29",
+ "idiom" : "iphone",
+ "filename" : "Icon-App-29x29@3x.png",
+ "scale" : "3x"
+ },
+ {
+ "size" : "40x40",
+ "idiom" : "iphone",
+ "filename" : "Icon-App-40x40@2x.png",
+ "scale" : "2x"
+ },
+ {
+ "size" : "40x40",
+ "idiom" : "iphone",
+ "filename" : "Icon-App-40x40@3x.png",
+ "scale" : "3x"
+ },
+ {
+ "size" : "60x60",
+ "idiom" : "iphone",
+ "filename" : "Icon-App-60x60@2x.png",
+ "scale" : "2x"
+ },
+ {
+ "size" : "60x60",
+ "idiom" : "iphone",
+ "filename" : "Icon-App-60x60@3x.png",
+ "scale" : "3x"
+ },
+ {
+ "size" : "20x20",
+ "idiom" : "ipad",
+ "filename" : "Icon-App-20x20@1x.png",
+ "scale" : "1x"
+ },
+ {
+ "size" : "20x20",
+ "idiom" : "ipad",
+ "filename" : "Icon-App-20x20@2x.png",
+ "scale" : "2x"
+ },
+ {
+ "size" : "29x29",
+ "idiom" : "ipad",
+ "filename" : "Icon-App-29x29@1x.png",
+ "scale" : "1x"
+ },
+ {
+ "size" : "29x29",
+ "idiom" : "ipad",
+ "filename" : "Icon-App-29x29@2x.png",
+ "scale" : "2x"
+ },
+ {
+ "size" : "40x40",
+ "idiom" : "ipad",
+ "filename" : "Icon-App-40x40@1x.png",
+ "scale" : "1x"
+ },
+ {
+ "size" : "40x40",
+ "idiom" : "ipad",
+ "filename" : "Icon-App-40x40@2x.png",
+ "scale" : "2x"
+ },
+ {
+ "size" : "76x76",
+ "idiom" : "ipad",
+ "filename" : "Icon-App-76x76@1x.png",
+ "scale" : "1x"
+ },
+ {
+ "size" : "76x76",
+ "idiom" : "ipad",
+ "filename" : "Icon-App-76x76@2x.png",
+ "scale" : "2x"
+ },
+ {
+ "size" : "83.5x83.5",
+ "idiom" : "ipad",
+ "filename" : "Icon-App-83.5x83.5@2x.png",
+ "scale" : "2x"
+ },
+ {
+ "size" : "1024x1024",
+ "idiom" : "ios-marketing",
+ "filename" : "Icon-App-1024x1024@1x.png",
+ "scale" : "1x"
+ }
+ ],
+ "info" : {
+ "version" : 1,
+ "author" : "xcode"
+ }
+}
diff --git a/snehao/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png b/snehao/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png
new file mode 100644
index 0000000..dc9ada4
Binary files /dev/null and b/snehao/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png differ
diff --git a/snehao/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png b/snehao/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png
new file mode 100644
index 0000000..28c6bf0
Binary files /dev/null and b/snehao/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png differ
diff --git a/snehao/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png b/snehao/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png
new file mode 100644
index 0000000..2ccbfd9
Binary files /dev/null and b/snehao/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png differ
diff --git a/snehao/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png b/snehao/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png
new file mode 100644
index 0000000..f091b6b
Binary files /dev/null and b/snehao/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png differ
diff --git a/snehao/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png b/snehao/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png
new file mode 100644
index 0000000..4cde121
Binary files /dev/null and b/snehao/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png differ
diff --git a/snehao/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png b/snehao/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png
new file mode 100644
index 0000000..d0ef06e
Binary files /dev/null and b/snehao/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png differ
diff --git a/snehao/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png b/snehao/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png
new file mode 100644
index 0000000..dcdc230
Binary files /dev/null and b/snehao/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png differ
diff --git a/snehao/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png b/snehao/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png
new file mode 100644
index 0000000..2ccbfd9
Binary files /dev/null and b/snehao/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png differ
diff --git a/snehao/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png b/snehao/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png
new file mode 100644
index 0000000..c8f9ed8
Binary files /dev/null and b/snehao/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png differ
diff --git a/snehao/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png b/snehao/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png
new file mode 100644
index 0000000..a6d6b86
Binary files /dev/null and b/snehao/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png differ
diff --git a/snehao/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png b/snehao/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png
new file mode 100644
index 0000000..a6d6b86
Binary files /dev/null and b/snehao/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png differ
diff --git a/snehao/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png b/snehao/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png
new file mode 100644
index 0000000..75b2d16
Binary files /dev/null and b/snehao/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png differ
diff --git a/snehao/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png b/snehao/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png
new file mode 100644
index 0000000..c4df70d
Binary files /dev/null and b/snehao/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png differ
diff --git a/snehao/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png b/snehao/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png
new file mode 100644
index 0000000..6a84f41
Binary files /dev/null and b/snehao/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png differ
diff --git a/snehao/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png b/snehao/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png
new file mode 100644
index 0000000..d0e1f58
Binary files /dev/null and b/snehao/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png differ
diff --git a/snehao/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json b/snehao/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json
new file mode 100644
index 0000000..d08a4de
--- /dev/null
+++ b/snehao/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json
@@ -0,0 +1,23 @@
+{
+ "images" : [
+ {
+ "idiom" : "universal",
+ "filename" : "LaunchImage.png",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "filename" : "LaunchImage@2x.png",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "filename" : "LaunchImage@3x.png",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "version" : 1,
+ "author" : "xcode"
+ }
+}
diff --git a/snehao/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png b/snehao/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png
new file mode 100644
index 0000000..9da19ea
Binary files /dev/null and b/snehao/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png differ
diff --git a/snehao/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png b/snehao/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png
new file mode 100644
index 0000000..9da19ea
Binary files /dev/null and b/snehao/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png differ
diff --git a/snehao/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png b/snehao/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png
new file mode 100644
index 0000000..9da19ea
Binary files /dev/null and b/snehao/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png differ
diff --git a/snehao/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md b/snehao/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md
new file mode 100644
index 0000000..65a94b5
--- /dev/null
+++ b/snehao/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md
@@ -0,0 +1,5 @@
+# Launch Screen Assets
+
+You can customize the launch screen with your own desired assets by replacing the image files in this directory.
+
+You can also do it by opening your Flutter project's Xcode project with `open ios/Runner.xcworkspace`, selecting `Runner/Assets.xcassets` in the Project Navigator and dropping in the desired images.
\ No newline at end of file
diff --git a/snehao/ios/Runner/Base.lproj/LaunchScreen.storyboard b/snehao/ios/Runner/Base.lproj/LaunchScreen.storyboard
new file mode 100644
index 0000000..497371e
--- /dev/null
+++ b/snehao/ios/Runner/Base.lproj/LaunchScreen.storyboard
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/snehao/ios/Runner/Base.lproj/Main.storyboard b/snehao/ios/Runner/Base.lproj/Main.storyboard
new file mode 100644
index 0000000..bbb83ca
--- /dev/null
+++ b/snehao/ios/Runner/Base.lproj/Main.storyboard
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/snehao/ios/Runner/GeneratedPluginRegistrant.h b/snehao/ios/Runner/GeneratedPluginRegistrant.h
new file mode 100644
index 0000000..7a89092
--- /dev/null
+++ b/snehao/ios/Runner/GeneratedPluginRegistrant.h
@@ -0,0 +1,19 @@
+//
+// Generated file. Do not edit.
+//
+
+// clang-format off
+
+#ifndef GeneratedPluginRegistrant_h
+#define GeneratedPluginRegistrant_h
+
+#import
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface GeneratedPluginRegistrant : NSObject
++ (void)registerWithRegistry:(NSObject*)registry;
+@end
+
+NS_ASSUME_NONNULL_END
+#endif /* GeneratedPluginRegistrant_h */
diff --git a/snehao/ios/Runner/GeneratedPluginRegistrant.m b/snehao/ios/Runner/GeneratedPluginRegistrant.m
new file mode 100644
index 0000000..efe65ec
--- /dev/null
+++ b/snehao/ios/Runner/GeneratedPluginRegistrant.m
@@ -0,0 +1,14 @@
+//
+// Generated file. Do not edit.
+//
+
+// clang-format off
+
+#import "GeneratedPluginRegistrant.h"
+
+@implementation GeneratedPluginRegistrant
+
++ (void)registerWithRegistry:(NSObject*)registry {
+}
+
+@end
diff --git a/snehao/ios/Runner/Info.plist b/snehao/ios/Runner/Info.plist
new file mode 100644
index 0000000..8eabc76
--- /dev/null
+++ b/snehao/ios/Runner/Info.plist
@@ -0,0 +1,45 @@
+
+
+
+
+ CFBundleDevelopmentRegion
+ $(DEVELOPMENT_LANGUAGE)
+ CFBundleExecutable
+ $(EXECUTABLE_NAME)
+ CFBundleIdentifier
+ $(PRODUCT_BUNDLE_IDENTIFIER)
+ CFBundleInfoDictionaryVersion
+ 6.0
+ CFBundleName
+ newsapp
+ CFBundlePackageType
+ APPL
+ CFBundleShortVersionString
+ $(FLUTTER_BUILD_NAME)
+ CFBundleSignature
+ ????
+ CFBundleVersion
+ $(FLUTTER_BUILD_NUMBER)
+ LSRequiresIPhoneOS
+
+ UILaunchStoryboardName
+ LaunchScreen
+ UIMainStoryboardFile
+ Main
+ UISupportedInterfaceOrientations
+
+ UIInterfaceOrientationPortrait
+ UIInterfaceOrientationLandscapeLeft
+ UIInterfaceOrientationLandscapeRight
+
+ UISupportedInterfaceOrientations~ipad
+
+ UIInterfaceOrientationPortrait
+ UIInterfaceOrientationPortraitUpsideDown
+ UIInterfaceOrientationLandscapeLeft
+ UIInterfaceOrientationLandscapeRight
+
+ UIViewControllerBasedStatusBarAppearance
+
+
+
diff --git a/snehao/ios/Runner/Runner-Bridging-Header.h b/snehao/ios/Runner/Runner-Bridging-Header.h
new file mode 100644
index 0000000..fae207f
--- /dev/null
+++ b/snehao/ios/Runner/Runner-Bridging-Header.h
@@ -0,0 +1 @@
+#import "GeneratedPluginRegistrant.h"
diff --git a/snehao/lib/assets/fonts/Poppinsmedium.ttf b/snehao/lib/assets/fonts/Poppinsmedium.ttf
new file mode 100644
index 0000000..e90e87e
Binary files /dev/null and b/snehao/lib/assets/fonts/Poppinsmedium.ttf differ
diff --git a/snehao/lib/assets/fonts/hamster.png b/snehao/lib/assets/fonts/hamster.png
new file mode 100644
index 0000000..0752ed8
Binary files /dev/null and b/snehao/lib/assets/fonts/hamster.png differ
diff --git a/snehao/lib/components/categoryselector.dart b/snehao/lib/components/categoryselector.dart
new file mode 100644
index 0000000..c8d5fce
--- /dev/null
+++ b/snehao/lib/components/categoryselector.dart
@@ -0,0 +1,51 @@
+import 'package:flutter/material.dart';
+import 'package:newsapp/constants/values.dart';
+import 'package:newsapp/models/category.dart';
+
+class CategorySelector extends StatefulWidget {
+ const CategorySelector({Key? key}) : super(key: key);
+
+ @override
+ _CategorySelectorState createState() => _CategorySelectorState();
+}
+
+class _CategorySelectorState extends State {
+ List categories = StaticValues().categories;
+ int selectedCategoryIndex = 0;
+
+ @override
+ Widget build(BuildContext context) {
+ return Container(
+ padding: EdgeInsets.only(left: 10),
+ child: SingleChildScrollView(
+ scrollDirection: Axis.horizontal,
+ child: Row(
+ children: List.generate(categories.length, (index) {
+ Category category = categories[index];
+ bool isSelected = index == selectedCategoryIndex;
+ return GestureDetector(
+ onTap: () {
+ setState(() {
+ this.selectedCategoryIndex = index;
+ });
+ },
+ child: AnimatedContainer(
+ duration: Duration(milliseconds: 150),
+ decoration: BoxDecoration(
+ borderRadius: BorderRadius.circular(10),
+ color: isSelected ? Colors.black : Colors.white),
+ padding: EdgeInsets.symmetric(vertical: 5, horizontal: 15),
+ margin: EdgeInsets.symmetric(horizontal: 2),
+ child: Text(
+ category.name,
+ style: TextStyle(
+ fontSize: 15,
+ color: isSelected ? Colors.white : Colors.black),
+ ),
+ ),
+ );
+ })),
+ ),
+ );
+ }
+}
diff --git a/snehao/lib/components/newscarousel.dart b/snehao/lib/components/newscarousel.dart
new file mode 100644
index 0000000..ffc990e
--- /dev/null
+++ b/snehao/lib/components/newscarousel.dart
@@ -0,0 +1,70 @@
+import 'package:carousel_slider/carousel_slider.dart';
+import 'package:flutter/material.dart';
+import 'package:newsapp/constants/values.dart';
+
+class NewsCarousel extends StatelessWidget {
+ NewsCarousel({Key? key}) : super(key: key);
+ final StaticValues staticValues = StaticValues();
+
+ @override
+ Widget build(BuildContext context) {
+ return CarouselSlider(
+ options: CarouselOptions(
+ height: 250.0,
+ ),
+ items: staticValues.news.map((news) {
+ return Builder(
+ builder: (BuildContext context) {
+ return Container(
+ margin: EdgeInsets.symmetric(horizontal: 5),
+ child: Stack(
+ children: [
+ ClipRRect(
+ borderRadius: BorderRadius.circular(20),
+ child: Image(
+ fit: BoxFit.cover,
+ image: NetworkImage(news.image),
+ height: 250,
+ // width: MediaQuery.of(context).size.width,
+ ),
+ ),
+ Container(
+ width: MediaQuery.of(context).size.width,
+ margin: EdgeInsets.symmetric(horizontal: 5.0),
+ decoration: BoxDecoration(
+ gradient: LinearGradient(
+ begin: Alignment.topCenter,
+ end: Alignment.bottomCenter,
+ colors: [
+ const Color(0xCC000000),
+ const Color(0x00000000),
+ const Color(0x00000000),
+ const Color(0xCC000000),
+ const Color(0xCC000000),
+ ],
+ ),
+ // image: DecorationImage(
+ // colorFilter: new ColorFilter.mode(
+ // Colors.black, BlendMode.dstATop),
+ // image: NetworkImage(news.image),
+ // fit: BoxFit.cover),
+ borderRadius: BorderRadius.circular(20)),
+ ),
+ Align(
+ alignment: Alignment.bottomCenter,
+ child: Container(
+ padding: EdgeInsets.all(20),
+ child: Text(
+ news.title,
+ style: TextStyle(fontSize: 15, color: Colors.white),
+ ),
+ ))
+ ],
+ ),
+ );
+ },
+ );
+ }).toList(),
+ );
+ }
+}
diff --git a/snehao/lib/components/searchbar.dart b/snehao/lib/components/searchbar.dart
new file mode 100644
index 0000000..f0235a5
--- /dev/null
+++ b/snehao/lib/components/searchbar.dart
@@ -0,0 +1,23 @@
+import 'package:flutter/material.dart';
+
+class SearchBar extends StatelessWidget {
+ const SearchBar({Key? key}) : super(key: key);
+
+ @override
+ Widget build(BuildContext context) {
+ return Container(
+ child: TextField(
+ style: TextStyle(fontSize: 15),
+ cursorColor: Colors.black,
+ decoration: InputDecoration(
+ suffixIcon: Icon(
+ Icons.search,
+ color: Colors.grey,
+ ),
+ border: InputBorder.none,
+ hintText: "Search News",
+ filled: true,
+ fillColor: Colors.grey[200])),
+ );
+ }
+}
diff --git a/snehao/lib/components/titlednesview.dart b/snehao/lib/components/titlednesview.dart
new file mode 100644
index 0000000..486009f
--- /dev/null
+++ b/snehao/lib/components/titlednesview.dart
@@ -0,0 +1,88 @@
+import 'package:flutter/material.dart';
+import 'package:newsapp/constants/values.dart';
+import 'package:newsapp/models/news.dart';
+import 'package:newsapp/pages/viewnews.dart';
+
+class TiledNewsView extends StatelessWidget {
+ TiledNewsView({Key? key}) : super(key: key);
+ final List news = StaticValues().news;
+
+ @override
+ Widget build(BuildContext context) {
+ return Column(
+ children: List.generate(news.length, (index) {
+ News newsItem = news[index];
+ int newsDescriptionLength = newsItem.descrption.split(' ').length;
+ return GestureDetector(
+ onTap: () {
+ Navigator.push(
+ context,
+ MaterialPageRoute(
+ builder: (context) => NewsViewPage(newsPost: newsItem)));
+ },
+ child: Container(
+ margin: EdgeInsets.symmetric(vertical: 5),
+ padding: EdgeInsets.symmetric(vertical: 5),
+ decoration: BoxDecoration(
+ color: Colors.grey[200],
+ borderRadius: BorderRadius.circular(10)),
+ child: Row(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+ ClipRRect(
+ child: Image.network(
+ newsItem.image,
+ width: 87,
+ height: 100,
+ fit: BoxFit.cover,
+ ),
+ borderRadius: BorderRadius.circular(10),
+ ),
+ SizedBox(
+ width: 10,
+ ),
+ Expanded(
+ child: Column(
+ children: [
+ SizedBox(
+ height: 10,
+ ),
+ Container(
+ child: Text(
+ getTruncatedTitle(newsItem.title, 60),
+ )),
+ SizedBox(
+ height: 10,
+ ),
+ Row(
+ mainAxisAlignment: MainAxisAlignment.spaceBetween,
+ children: [
+ Text(
+ "${newsDescriptionLength >= 200 ? (newsDescriptionLength / 200).floor() : (newsDescriptionLength / 200 * 60).floor()} ${newsDescriptionLength >= 200 ? "mins" : "secs"} read",
+ style: TextStyle(
+ fontSize: 13, color: Colors.grey[700]),
+ ),
+ Text(
+ newsItem.time,
+ style: TextStyle(
+ fontSize: 13, color: Colors.grey[700]),
+ ),
+ ],
+ )
+ ],
+ ),
+ ),
+ ],
+ ),
+ ),
+ );
+ }),
+ );
+ }
+
+ String getTruncatedTitle(String actualString, int maxLetters) {
+ return actualString.length > maxLetters
+ ? actualString.substring(0, maxLetters) + "..."
+ : actualString;
+ }
+}
diff --git a/snehao/lib/components/topbar.dart b/snehao/lib/components/topbar.dart
new file mode 100644
index 0000000..35f4fb8
--- /dev/null
+++ b/snehao/lib/components/topbar.dart
@@ -0,0 +1,30 @@
+import 'package:flutter/material.dart';
+import 'package:newsapp/components/searchbar.dart';
+
+class TopBar extends StatelessWidget {
+ const TopBar({
+ Key? key,
+ }) : super(key: key);
+
+ @override
+ Widget build(BuildContext context) {
+ return Row(
+ children: [
+ Expanded(flex: 6, child: SearchBar()),
+ SizedBox(
+ width: 10,
+ ),
+ Container(
+ child: Icon(Icons.menu, size: 30),
+
+ //)
+ //]
+ )
+ ],
+ );
+ }
+}
+ //Container(
+ //child: Column(
+ //children: [
+
\ No newline at end of file
diff --git a/snehao/lib/components/welcomewidget.dart b/snehao/lib/components/welcomewidget.dart
new file mode 100644
index 0000000..646f628
--- /dev/null
+++ b/snehao/lib/components/welcomewidget.dart
@@ -0,0 +1,22 @@
+import 'package:flutter/material.dart';
+
+class WelcomeWidget extends StatelessWidget {
+ const WelcomeWidget({Key? key}) : super(key: key);
+
+ @override
+ Widget build(BuildContext context) {
+ return Container(
+ child: Column(
+ mainAxisAlignment: MainAxisAlignment.start,
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+ Text(
+ " Discover",
+ style: TextStyle(fontSize: 30),
+ ),
+ Text(" Latest news")
+ ],
+ ),
+ );
+ }
+}
diff --git a/snehao/lib/constants/values.dart b/snehao/lib/constants/values.dart
new file mode 100644
index 0000000..cfc072e
--- /dev/null
+++ b/snehao/lib/constants/values.dart
@@ -0,0 +1,68 @@
+import 'package:newsapp/models/category.dart';
+import 'package:newsapp/models/news.dart';
+
+class StaticValues {
+ List news = [
+ News(
+ title:
+ "IPL 2021 Qualifier 1 | CSK beat DC by four wickets to take the shortest route to final",
+ image:
+ "https://th.thgim.com/sport/cricket/vr3t44/article36931869.ece/ALTERNATES/FREE_660/DelhiCapitals",
+ source: "The Hindu",
+ sourceImage:
+ "https://th.thgim.com/static/theme/default/base/img/logo.png",
+ time: "OCTOBER 10, 2021 19:17 IST",
+ descrption:
+ "The ageless Mahendra Singh Dhoni produced a nostalgic little innings to take a band of old men from Chennai Super Kings into their ninth Indian Premier League final after beating Delhi Capitals by four wickets here on Sunday.DC though will get another shot at making it to the final when they meet the winner of the eliminator between KKR and RCB scheduled Monday.Needing 13 off the last over, Dhoni hit a square cut, got a bit of luck going his way and then pulled DC's best bowler Tom Curran for the most celebrated T20 boundary of recent times. Before that, he had just slapped Avesh Khan for a six over mid-wicket.Curran and Avesh weren't bad but it was one of those days, the cricketing Gods wanted the 40-year-old to finish it in style."),
+ News(
+ title: "Apple’s new iPhone to take longer to reach customers: analysts",
+ image:
+ "https://th.thgim.com/sci-tech/technology/gadgets/gnth5w/article36465185.ece/ALTERNATES/FREE_355/Appleiphone13colorsgeo09142021",
+ source: "The Hindu",
+ sourceImage:
+ "https://th.thgim.com/static/theme/default/base/img/logo.png",
+ time: "YESTERDAY",
+ descrption:
+ "Apple Inc's customers will have to wait for a few more weeks to lay their hands on the new iPhone 13 as supply chain delays and strong demand lead to one of the longest waiting times for the phone in recent years, analysts said.The delivery time for Apple's iPhones after a new launch is watched by analysts as one of the measures to gauge demand for the flagship phone's newest model. But this year, it is also shining a light on supply chain issues plaguing technology companies ahead of the holiday shopping season."),
+ News(
+ title:
+ "Children aged 12 and above must be prioritised for vaccination: ICMR",
+ image:
+ "https://images.unsplash.com/photo-1542587227-8802646daa56?ixid=MnwxMjA3fDB8MHxzZWFyY2h8NHx8c2Nob29sJTIwY2hpbGRyZW58ZW58MHx8MHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=900&q=60",
+ source: "THe Hindu",
+ sourceImage:
+ "https://th.thgim.com/static/theme/default/base/img/logo.png",
+ time: "SEPTEMBER 28, 2021 12:52 IST",
+ descrption:
+ "Available evidence suggests that children aged 12 and above are at a high risk of contracting COVID-19 infection and must be prioritised for vaccination compared to younger children, said experts at the Indian Council of Medical Research (ICMR), adding that schools need to be reopened in a phased manner (beginning with primary schools followed by secondary schools) and allowed to remain open and safe with appropriate implementation of multi-layered mitigation measures where children’s participation remains essential.An opinion piece titled ‘Reopening of schools during COVID-19 pandemic: A persistent dilemma’ published in the Indian Journal of Medical Research further adds that there is ample evidence to suggest that children aged 1-17 years have similar susceptibility to a mild form of SARS-CoV-2 infection as in adults. However, the risk of severe disease and mortality in children is less.The fourth round of the National Serosurvey for COVID-19 held in June 2021 in India revealed that more than half of children aged between 6 and 17 were seropositive, which indicated that a considerable proportion of them had been infected with SARS-CoV-2.“However, treatment centres did not experience attending to severely ill SARS-CoV-2-infected children with any greater frequency during the second wave of COVID-19 in May & June 2021 compared to the previous year, while adults were being treated in inpatient facilities in considerable numbers throughout the country coinciding with the rapid spread of Delta variant in 2021,” states ICMR in its paper.The paper further states that it is well known that COVID-19 transmission is an ‘over-dispersed’ phenomenon, hence testing strategies in school settings could serve as key interventions to check the potential spread of the virus.“It must also be acknowledged that the testing strategies for SARS-CoV-2 infection in schools should act as adjunct and not substitute to other organisational and behavioural interventions,” states ICMR, while adding that frequent testing of school staff and students for early detection of cases is essential to prevent outbreaks.“Routine temperature or symptom checking in schools should be avoided due to limited evidence on their utility. It is also recommended that schools should have access to on-site testing facilities as per existing country-specific guidelines. Temporary or localised closures of a class or school may occur depending upon the local community transmission levels or if COVID-19 indicators worsen,” states the paper."),
+ News(
+ title:
+ "Rupee inches 8 paise higher to 73.75 against US dollar in early trade",
+ descrption:
+ "The Indian rupee appreciated 8 paise to 73.75 against the U.S. dollar in opening trade on September 28, tracking positive domestic equities. Forex traders said rupee is trading in a narrow range as weakness of Asian currencies, firm crude oil prices and strong dollar weighed on the domestic unit.At the interbank foreign exchange, the rupee opened at 73.79 against the dollar, then edged higher to 73.75, up 8 paise over its previous close.On Monday, the rupee had settled at 73.83 against the U.S. dollar.Meanwhile, the dollar index, which gauges the greenback’s strength against a basket of six currencies, rose 0.06% to 93.44.The Indian rupee opened on a flat note this Tuesday morning against the dollar, tracking the strength of the greenback and strong crude oil prices, Reliance Securities said in a research note.Moreover, most emerging market and Asian currencies have started weaker this Tuesday morning and will weigh on sentiments, the note added.Meanwhile, foreign institutional investors were net sellers in the capital market on Monday as they offloaded shares worth ₹594.63 crore, as per exchange data.On the domestic equity market front, BSE Sensex was trading 16.19 points or 0.03% higher at 60,094.07, while the broader NSE Nifty advanced 24.75 points or 0.14% to 17,879.85.Meanwhile, global oil benchmark Brent crude futures rose 0.79% to 80.16 dollar per barrel.",
+ image:
+ "https://media.gettyimages.com/photos/concept-of-indian-coin-one-rupee-india-asia-picture-id520896312?k=20&m=520896312&s=612x612&w=0&h=9EhWj9NpYwcFuhcsVAsDB-v3qsYeuH-_bLAUgGCXZJQ=",
+ source: "The Hindu",
+ sourceImage:
+ "https://th.thgim.com/static/theme/default/base/img/logo.png",
+ time: "SEPTEMBER 28, 2021 11:24 IST"),
+ ];
+
+ List categories = [
+ Category(
+ name: "Covid-19",
+ ),
+ Category(
+ name: "Market",
+ ),
+ Category(
+ name: "Tech",
+ ),
+ Category(
+ name: "Sport",
+ ),
+ Category(
+ name: "Business",
+ ),
+ ];
+}
diff --git a/snehao/lib/main.dart b/snehao/lib/main.dart
new file mode 100644
index 0000000..aaeaef2
--- /dev/null
+++ b/snehao/lib/main.dart
@@ -0,0 +1,11 @@
+import 'package:flutter/material.dart';
+import 'package:newsapp/pages/home.dart';
+
+void main(List args) {
+ runApp(MaterialApp(
+ debugShowCheckedModeBanner: false,
+ home: HomePage(),
+ title: "News App",
+ theme: ThemeData(fontFamily: "Poppins"),
+ ));
+}
diff --git a/snehao/lib/models/category.dart b/snehao/lib/models/category.dart
new file mode 100644
index 0000000..52ccb9a
--- /dev/null
+++ b/snehao/lib/models/category.dart
@@ -0,0 +1,4 @@
+class Category {
+ String name;
+ Category({required this.name});
+}
diff --git a/snehao/lib/models/news.dart b/snehao/lib/models/news.dart
new file mode 100644
index 0000000..0a67036
--- /dev/null
+++ b/snehao/lib/models/news.dart
@@ -0,0 +1,17 @@
+class News {
+ String title;
+ String image;
+ String source;
+ String sourceImage;
+ String time;
+ String descrption;
+
+ News({
+ required this.title,
+ required this.image,
+ required this.source,
+ required this.sourceImage,
+ required this.time,
+ required this.descrption,
+ });
+}
diff --git a/snehao/lib/pages/home.dart b/snehao/lib/pages/home.dart
new file mode 100644
index 0000000..f482b00
--- /dev/null
+++ b/snehao/lib/pages/home.dart
@@ -0,0 +1,56 @@
+import 'package:flutter/material.dart';
+import 'package:newsapp/components/categoryselector.dart';
+import 'package:newsapp/components/newsCarousel.dart';
+import 'package:newsapp/components/titlednesview.dart';
+import 'package:newsapp/components/topbar.dart';
+import 'package:newsapp/components/welcomeWidget.dart';
+
+class HomePage extends StatelessWidget {
+ const HomePage({Key? key}) : super(key: key);
+
+ @override
+ Widget build(BuildContext context) {
+ var size = MediaQuery.of(context).size;
+ return Scaffold(
+ body: SafeArea(
+ child: Container(
+ width: size.width,
+ child: SingleChildScrollView(
+ scrollDirection: Axis.vertical,
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+ Container(
+ padding: EdgeInsets.all(5),
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+ TopBar(),
+ SizedBox(height: 10),
+ WelcomeWidget(),
+ ],
+ ),
+ ),
+ SizedBox(height: 5),
+ NewsCarousel(),
+ SizedBox(
+ height: 15,
+ ),
+ CategorySelector(),
+ SizedBox(
+ height: 5,
+ ),
+ Container(
+ padding: EdgeInsets.all(5),
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [TiledNewsView()],
+ ),
+ )
+ ],
+ ),
+ )),
+ ),
+ );
+ }
+}
diff --git a/snehao/lib/pages/viewnews.dart b/snehao/lib/pages/viewnews.dart
new file mode 100644
index 0000000..9a73951
--- /dev/null
+++ b/snehao/lib/pages/viewnews.dart
@@ -0,0 +1,145 @@
+import 'package:flutter/material.dart';
+import 'package:newsapp/models/news.dart';
+
+class NewsViewPage extends StatelessWidget {
+ final News newsPost;
+ const NewsViewPage({Key? key, required this.newsPost}) : super(key: key);
+
+ @override
+ Widget build(BuildContext context) {
+ var size = MediaQuery.of(context).size;
+ return Scaffold(
+ backgroundColor: Colors.white,
+ body: Container(
+ width: size.width,
+ child: Stack(
+ alignment: Alignment.topLeft,
+ children: [
+ ClipRRect(
+ child: Image(
+ fit: BoxFit.cover,
+ image: NetworkImage(newsPost.image),
+ height: size.height,
+ width: size.width,
+ ),
+ ),
+ Container(
+ width: size.width,
+ height: size.height,
+ decoration: BoxDecoration(
+ gradient: LinearGradient(
+ begin: Alignment.topCenter,
+ end: Alignment.bottomCenter,
+ colors: [
+ const Color(0x00000000),
+ const Color(0x00000000),
+ const Color(0xCC000000),
+ ],
+ ),
+ ),
+ ),
+ Align(
+ alignment: Alignment.topLeft,
+ child: GestureDetector(
+ onTap: () {
+ Navigator.pop(context);
+ },
+ child: Container(
+ decoration: BoxDecoration(
+ color: Colors.white,
+ borderRadius: BorderRadius.circular(10)),
+ padding: EdgeInsets.all(5),
+ margin: EdgeInsets.only(top: 20, left: 10, right: 10),
+ child: Icon(
+ Icons.arrow_back,
+ ),
+ ),
+ ),
+ ),
+ Positioned(
+ bottom: 0,
+ left: 0,
+ // alignment: Alignment.bottomCenter,
+ child: Container(
+ width: size.width,
+ margin: EdgeInsets.all(10),
+ child: Column(
+ children: [
+ Text(
+ newsPost.title,
+ style: TextStyle(
+ color: Colors.white,
+ fontSize: 15,
+ fontWeight: FontWeight.bold),
+ ),
+ Row(
+ children: [
+ Container(
+ width: 30,
+ height: 30,
+ decoration: BoxDecoration(
+ shape: BoxShape.circle,
+ image: DecorationImage(
+ image: NetworkImage(newsPost.sourceImage))),
+ ),
+ Expanded(
+ child: Container(
+ margin: EdgeInsets.only(left: 10),
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ mainAxisAlignment: MainAxisAlignment.start,
+ children: [
+ Text(
+ newsPost.source,
+ style: TextStyle(
+ color: Colors.white,
+ fontWeight: FontWeight.bold),
+ ),
+ Text(
+ newsPost.time,
+ style: TextStyle(color: Colors.grey[400]),
+ )
+ ],
+ ),
+ ),
+ ),
+ Container(
+ margin: EdgeInsets.only(right: 40),
+ child: Row(
+ children: [
+ Icon(
+ Icons.bookmark_outlined,
+ color: Colors.white,
+ size: 30,
+ ),
+ Icon(
+ Icons.share,
+ color: Colors.white,
+ size: 30,
+ ),
+ ],
+ ),
+ )
+ ],
+ ),
+ Container(
+ margin: EdgeInsets.only(top: 10, right: 40),
+ height: 3,
+ decoration: BoxDecoration(color: Colors.white),
+ ),
+ Container(
+ margin: EdgeInsets.only(top: 10, right: 40),
+ child: Text(newsPost.descrption,
+ style: TextStyle(
+ color: Colors.white,
+ )),
+ )
+ ],
+ ),
+ ),
+ )
+ ],
+ )),
+ );
+ }
+}
diff --git a/snehao/pubspec.lock b/snehao/pubspec.lock
new file mode 100644
index 0000000..5bfe25a
--- /dev/null
+++ b/snehao/pubspec.lock
@@ -0,0 +1,174 @@
+# Generated by pub
+# See https://dart.dev/tools/pub/glossary#lockfile
+packages:
+ async:
+ dependency: transitive
+ description:
+ name: async
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "2.8.1"
+ boolean_selector:
+ dependency: transitive
+ description:
+ name: boolean_selector
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "2.1.0"
+ carousel_slider:
+ dependency: "direct main"
+ description:
+ name: carousel_slider
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "4.0.0"
+ characters:
+ dependency: transitive
+ description:
+ name: characters
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "1.1.0"
+ charcode:
+ dependency: transitive
+ description:
+ name: charcode
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "1.3.1"
+ clock:
+ dependency: transitive
+ description:
+ name: clock
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "1.1.0"
+ collection:
+ dependency: transitive
+ description:
+ name: collection
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "1.15.0"
+ cupertino_icons:
+ dependency: "direct main"
+ description:
+ name: cupertino_icons
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "1.0.3"
+ fake_async:
+ dependency: transitive
+ description:
+ name: fake_async
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "1.2.0"
+ flutter:
+ dependency: "direct main"
+ description: flutter
+ source: sdk
+ version: "0.0.0"
+ flutter_lints:
+ dependency: "direct dev"
+ description:
+ name: flutter_lints
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "1.0.4"
+ flutter_test:
+ dependency: "direct dev"
+ description: flutter
+ source: sdk
+ version: "0.0.0"
+ lints:
+ dependency: transitive
+ description:
+ name: lints
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "1.0.1"
+ matcher:
+ dependency: transitive
+ description:
+ name: matcher
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "0.12.10"
+ meta:
+ dependency: transitive
+ description:
+ name: meta
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "1.7.0"
+ path:
+ dependency: transitive
+ description:
+ name: path
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "1.8.0"
+ sky_engine:
+ dependency: transitive
+ description: flutter
+ source: sdk
+ version: "0.0.99"
+ source_span:
+ dependency: transitive
+ description:
+ name: source_span
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "1.8.1"
+ stack_trace:
+ dependency: transitive
+ description:
+ name: stack_trace
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "1.10.0"
+ stream_channel:
+ dependency: transitive
+ description:
+ name: stream_channel
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "2.1.0"
+ string_scanner:
+ dependency: transitive
+ description:
+ name: string_scanner
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "1.1.0"
+ term_glyph:
+ dependency: transitive
+ description:
+ name: term_glyph
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "1.2.0"
+ test_api:
+ dependency: transitive
+ description:
+ name: test_api
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "0.4.2"
+ typed_data:
+ dependency: transitive
+ description:
+ name: typed_data
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "1.3.0"
+ vector_math:
+ dependency: transitive
+ description:
+ name: vector_math
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "2.1.0"
+sdks:
+ dart: ">=2.12.0 <3.0.0"
diff --git a/snehao/pubspec.yaml b/snehao/pubspec.yaml
new file mode 100644
index 0000000..d17651f
--- /dev/null
+++ b/snehao/pubspec.yaml
@@ -0,0 +1,91 @@
+name: newsapp
+description: A new Flutter project.
+
+# The following line prevents the package from being accidentally published to
+# pub.dev using `flutter pub publish`. This is preferred for private packages.
+publish_to: 'none' # Remove this line if you wish to publish to pub.dev
+
+# The following defines the version and build number for your application.
+# A version number is three numbers separated by dots, like 1.2.43
+# followed by an optional build number separated by a +.
+# Both the version and the builder number may be overridden in flutter
+# build by specifying --build-name and --build-number, respectively.
+# In Android, build-name is used as versionName while build-number used as versionCode.
+# Read more about Android versioning at https://developer.android.com/studio/publish/versioning
+# In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion.
+# Read more about iOS versioning at
+# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
+version: 1.0.0+1
+
+environment:
+ sdk: ">=2.12.0 <3.0.0"
+
+
+# Dependencies specify other packages that your package needs in order to work.
+# To automatically upgrade your package dependencies to the latest versions
+# consider running `flutter pub upgrade --major-versions`. Alternatively,
+# dependencies can be manually updated by changing the version numbers below to
+# the latest version available on pub.dev. To see which dependencies have newer
+# versions available, run `flutter pub outdated`.
+dependencies:
+ flutter:
+ sdk: flutter
+ carousel_slider: ^4.0.0
+
+
+ # The following adds the Cupertino Icons font to your application.
+ # Use with the CupertinoIcons class for iOS style icons.
+ cupertino_icons: ^1.0.2
+
+dev_dependencies:
+ flutter_test:
+ sdk: flutter
+
+ # The "flutter_lints" package below contains a set of recommended lints to
+ # encourage good coding practices. The lint set provided by the package is
+ # activated in the `analysis_options.yaml` file located at the root of your
+ # package. See that file for information about deactivating specific lint
+ # rules and activating additional ones.
+ flutter_lints: ^1.0.0
+
+# For information on the generic Dart part of this file, see the
+# following page: https://dart.dev/tools/pub/pubspec
+
+# The following section is specific to Flutter.
+flutter:
+
+ # The following line ensures that the Material Icons font is
+ # included with your application, so that you can use the icons in
+ # the material Icons class.
+ uses-material-design: true
+
+ # To add assets to your application, add an assets section, like this:
+ # assets:
+ # - images/a_dot_burr.jpeg
+ # - images/a_dot_ham.jpeg
+
+ # An image asset can refer to one or more resolution-specific "variants", see
+ # https://flutter.dev/assets-and-images/#resolution-aware.
+
+ # For details regarding adding assets from package dependencies, see
+ # https://flutter.dev/assets-and-images/#from-packages
+
+ # To add custom fonts to your application, add a fonts section here,
+ # in this "flutter" section. Each entry in this list should have a
+ # "family" key with the font family name, and a "fonts" key with a
+ # list giving the asset and other descriptors for the font. For
+ # example:
+ fonts:
+ - family: Poppins
+ fonts:
+ - asset: lib/assets/fonts/Poppinsmedium.ttf
+ # - asset: fonts/Schyler-Italic.ttf
+ # style: italic
+ # - family: Trajan Pro
+ # fonts:
+ # - asset: fonts/TrajanPro.ttf
+ # - asset: fonts/TrajanPro_Bold.ttf
+ # weight: 700
+ #
+ # For details regarding fonts from package dependencies,
+ # see https://flutter.dev/custom-fonts/#from-packages
diff --git a/snehao/snehao_newsui.jpg b/snehao/snehao_newsui.jpg
new file mode 100644
index 0000000..2b989c9
Binary files /dev/null and b/snehao/snehao_newsui.jpg differ
diff --git a/snehao/test/widget_test.dart b/snehao/test/widget_test.dart
new file mode 100644
index 0000000..29e4653
--- /dev/null
+++ b/snehao/test/widget_test.dart
@@ -0,0 +1,30 @@
+// This is a basic Flutter widget test.
+//
+// To perform an interaction with a widget in your test, use the WidgetTester
+// utility that Flutter provides. For example, you can send tap and scroll
+// gestures. You can also use WidgetTester to find child widgets in the widget
+// tree, read text, and verify that the values of widget properties are correct.
+
+import 'package:flutter/material.dart';
+import 'package:flutter_test/flutter_test.dart';
+
+import 'package:newsapp/main.dart';
+
+void main() {
+ testWidgets('Counter increments smoke test', (WidgetTester tester) async {
+ // Build our app and trigger a frame.
+ await tester.pumpWidget(const MyApp());
+
+ // Verify that our counter starts at 0.
+ expect(find.text('0'), findsOneWidget);
+ expect(find.text('1'), findsNothing);
+
+ // Tap the '+' icon and trigger a frame.
+ await tester.tap(find.byIcon(Icons.add));
+ await tester.pump();
+
+ // Verify that our counter has incremented.
+ expect(find.text('0'), findsNothing);
+ expect(find.text('1'), findsOneWidget);
+ });
+}
diff --git a/snehao/web/favicon.png b/snehao/web/favicon.png
new file mode 100644
index 0000000..8aaa46a
Binary files /dev/null and b/snehao/web/favicon.png differ
diff --git a/snehao/web/icons/Icon-192.png b/snehao/web/icons/Icon-192.png
new file mode 100644
index 0000000..b749bfe
Binary files /dev/null and b/snehao/web/icons/Icon-192.png differ
diff --git a/snehao/web/icons/Icon-512.png b/snehao/web/icons/Icon-512.png
new file mode 100644
index 0000000..88cfd48
Binary files /dev/null and b/snehao/web/icons/Icon-512.png differ
diff --git a/snehao/web/icons/Icon-maskable-192.png b/snehao/web/icons/Icon-maskable-192.png
new file mode 100644
index 0000000..eb9b4d7
Binary files /dev/null and b/snehao/web/icons/Icon-maskable-192.png differ
diff --git a/snehao/web/icons/Icon-maskable-512.png b/snehao/web/icons/Icon-maskable-512.png
new file mode 100644
index 0000000..d69c566
Binary files /dev/null and b/snehao/web/icons/Icon-maskable-512.png differ
diff --git a/snehao/web/index.html b/snehao/web/index.html
new file mode 100644
index 0000000..042bfc3
--- /dev/null
+++ b/snehao/web/index.html
@@ -0,0 +1,101 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ newsapp
+
+
+
+
+
+
+
diff --git a/snehao/web/manifest.json b/snehao/web/manifest.json
new file mode 100644
index 0000000..a842e80
--- /dev/null
+++ b/snehao/web/manifest.json
@@ -0,0 +1,35 @@
+{
+ "name": "newsapp",
+ "short_name": "newsapp",
+ "start_url": ".",
+ "display": "standalone",
+ "background_color": "#0175C2",
+ "theme_color": "#0175C2",
+ "description": "A new Flutter project.",
+ "orientation": "portrait-primary",
+ "prefer_related_applications": false,
+ "icons": [
+ {
+ "src": "icons/Icon-192.png",
+ "sizes": "192x192",
+ "type": "image/png"
+ },
+ {
+ "src": "icons/Icon-512.png",
+ "sizes": "512x512",
+ "type": "image/png"
+ },
+ {
+ "src": "icons/Icon-maskable-192.png",
+ "sizes": "192x192",
+ "type": "image/png",
+ "purpose": "maskable"
+ },
+ {
+ "src": "icons/Icon-maskable-512.png",
+ "sizes": "512x512",
+ "type": "image/png",
+ "purpose": "maskable"
+ }
+ ]
+}