├── android ├── gradle.properties ├── app │ ├── src │ │ ├── main │ │ │ ├── res │ │ │ │ ├── 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 │ │ │ │ └── drawable │ │ │ │ │ └── launch_background.xml │ │ │ ├── java │ │ │ │ └── com │ │ │ │ │ └── example │ │ │ │ │ └── book_store │ │ │ │ │ └── MainActivity.java │ │ │ └── AndroidManifest.xml │ │ ├── debug │ │ │ └── AndroidManifest.xml │ │ └── profile │ │ │ └── AndroidManifest.xml │ └── build.gradle ├── gradle │ └── wrapper │ │ └── gradle-wrapper.properties ├── settings.gradle └── build.gradle ├── ios ├── Flutter │ ├── Debug.xcconfig │ ├── Release.xcconfig │ └── AppFrameworkInfo.plist ├── Runner │ ├── AppDelegate.h │ ├── Assets.xcassets │ │ ├── LaunchImage.imageset │ │ │ ├── LaunchImage.png │ │ │ ├── LaunchImage@2x.png │ │ │ ├── LaunchImage@3x.png │ │ │ ├── README.md │ │ │ └── Contents.json │ │ └── AppIcon.appiconset │ │ │ ├── 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-1024x1024@1x.png │ │ │ ├── Icon-App-83.5x83.5@2x.png │ │ │ └── Contents.json │ ├── main.m │ ├── AppDelegate.m │ ├── Info.plist │ └── Base.lproj │ │ ├── Main.storyboard │ │ └── LaunchScreen.storyboard ├── Runner.xcworkspace │ ├── contents.xcworkspacedata │ └── xcshareddata │ │ └── WorkspaceSettings.xcsettings └── Runner.xcodeproj │ ├── project.xcworkspace │ └── contents.xcworkspacedata │ ├── xcshareddata │ └── xcschemes │ │ └── Runner.xcscheme │ └── project.pbxproj ├── assets ├── book_1.png ├── book_2.png ├── book_3.png ├── book_4.png ├── book_5.png ├── book_6.png ├── book_7.png ├── book_8.png ├── master.png ├── paypal.png ├── account.png ├── course_1.png ├── course_2.png ├── course_3.png ├── slide_1.png ├── slide_2.png ├── interests_1.png └── screenshots │ ├── Simulator Screen Shot - iPhone XR - 2019-07-06 at 22.44.09.png │ ├── Simulator Screen Shot - iPhone XR - 2019-07-06 at 23.11.35.png │ ├── Simulator Screen Shot - iPhone XR - 2019-07-06 at 23.22.58.png │ ├── Simulator Screen Shot - iPhone XR - 2019-07-06 at 23.25.10.png │ └── Simulator Screen Shot - iPhone XR - 2019-07-06 at 23.25.15.png ├── .metadata ├── lib ├── utils │ └── color.dart ├── main.dart ├── widgets │ ├── bottonBar.dart │ ├── topBar.dart │ ├── slide.dart │ ├── itemListBook.dart │ ├── itemCardCourse.dart │ └── itemCardBook.dart └── screens │ ├── home.dart │ ├── bookDetail.dart │ ├── recharge.dart │ └── account.dart ├── README.md ├── test └── widget_test.dart ├── .gitignore ├── pubspec.yaml └── pubspec.lock /android/gradle.properties: -------------------------------------------------------------------------------- 1 | org.gradle.jvmargs=-Xmx1536M 2 | -------------------------------------------------------------------------------- /ios/Flutter/Debug.xcconfig: -------------------------------------------------------------------------------- 1 | #include "Generated.xcconfig" 2 | -------------------------------------------------------------------------------- /ios/Flutter/Release.xcconfig: -------------------------------------------------------------------------------- 1 | #include "Generated.xcconfig" 2 | -------------------------------------------------------------------------------- /assets/book_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manudevcode/flutter_listening_book_app/HEAD/assets/book_1.png -------------------------------------------------------------------------------- /assets/book_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manudevcode/flutter_listening_book_app/HEAD/assets/book_2.png -------------------------------------------------------------------------------- /assets/book_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manudevcode/flutter_listening_book_app/HEAD/assets/book_3.png -------------------------------------------------------------------------------- /assets/book_4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manudevcode/flutter_listening_book_app/HEAD/assets/book_4.png -------------------------------------------------------------------------------- /assets/book_5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manudevcode/flutter_listening_book_app/HEAD/assets/book_5.png -------------------------------------------------------------------------------- /assets/book_6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manudevcode/flutter_listening_book_app/HEAD/assets/book_6.png -------------------------------------------------------------------------------- /assets/book_7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manudevcode/flutter_listening_book_app/HEAD/assets/book_7.png -------------------------------------------------------------------------------- /assets/book_8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manudevcode/flutter_listening_book_app/HEAD/assets/book_8.png -------------------------------------------------------------------------------- /assets/master.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manudevcode/flutter_listening_book_app/HEAD/assets/master.png -------------------------------------------------------------------------------- /assets/paypal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manudevcode/flutter_listening_book_app/HEAD/assets/paypal.png -------------------------------------------------------------------------------- /assets/account.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manudevcode/flutter_listening_book_app/HEAD/assets/account.png -------------------------------------------------------------------------------- /assets/course_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manudevcode/flutter_listening_book_app/HEAD/assets/course_1.png -------------------------------------------------------------------------------- /assets/course_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manudevcode/flutter_listening_book_app/HEAD/assets/course_2.png -------------------------------------------------------------------------------- /assets/course_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manudevcode/flutter_listening_book_app/HEAD/assets/course_3.png -------------------------------------------------------------------------------- /assets/slide_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manudevcode/flutter_listening_book_app/HEAD/assets/slide_1.png -------------------------------------------------------------------------------- /assets/slide_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manudevcode/flutter_listening_book_app/HEAD/assets/slide_2.png -------------------------------------------------------------------------------- /assets/interests_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manudevcode/flutter_listening_book_app/HEAD/assets/interests_1.png -------------------------------------------------------------------------------- /ios/Runner/AppDelegate.h: -------------------------------------------------------------------------------- 1 | #import 2 | #import 3 | 4 | @interface AppDelegate : FlutterAppDelegate 5 | 6 | @end 7 | -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manudevcode/flutter_listening_book_app/HEAD/android/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manudevcode/flutter_listening_book_app/HEAD/android/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manudevcode/flutter_listening_book_app/HEAD/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manudevcode/flutter_listening_book_app/HEAD/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manudevcode/flutter_listening_book_app/HEAD/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manudevcode/flutter_listening_book_app/HEAD/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manudevcode/flutter_listening_book_app/HEAD/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/manudevcode/flutter_listening_book_app/HEAD/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/manudevcode/flutter_listening_book_app/HEAD/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/manudevcode/flutter_listening_book_app/HEAD/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/manudevcode/flutter_listening_book_app/HEAD/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/manudevcode/flutter_listening_book_app/HEAD/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/manudevcode/flutter_listening_book_app/HEAD/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/manudevcode/flutter_listening_book_app/HEAD/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/manudevcode/flutter_listening_book_app/HEAD/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/manudevcode/flutter_listening_book_app/HEAD/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/manudevcode/flutter_listening_book_app/HEAD/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/manudevcode/flutter_listening_book_app/HEAD/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/manudevcode/flutter_listening_book_app/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manudevcode/flutter_listening_book_app/HEAD/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manudevcode/flutter_listening_book_app/HEAD/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manudevcode/flutter_listening_book_app/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manudevcode/flutter_listening_book_app/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png -------------------------------------------------------------------------------- /ios/Runner.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /assets/screenshots/Simulator Screen Shot - iPhone XR - 2019-07-06 at 22.44.09.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manudevcode/flutter_listening_book_app/HEAD/assets/screenshots/Simulator Screen Shot - iPhone XR - 2019-07-06 at 22.44.09.png -------------------------------------------------------------------------------- /assets/screenshots/Simulator Screen Shot - iPhone XR - 2019-07-06 at 23.11.35.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manudevcode/flutter_listening_book_app/HEAD/assets/screenshots/Simulator Screen Shot - iPhone XR - 2019-07-06 at 23.11.35.png -------------------------------------------------------------------------------- /assets/screenshots/Simulator Screen Shot - iPhone XR - 2019-07-06 at 23.22.58.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manudevcode/flutter_listening_book_app/HEAD/assets/screenshots/Simulator Screen Shot - iPhone XR - 2019-07-06 at 23.22.58.png -------------------------------------------------------------------------------- /assets/screenshots/Simulator Screen Shot - iPhone XR - 2019-07-06 at 23.25.10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manudevcode/flutter_listening_book_app/HEAD/assets/screenshots/Simulator Screen Shot - iPhone XR - 2019-07-06 at 23.25.10.png -------------------------------------------------------------------------------- /assets/screenshots/Simulator Screen Shot - iPhone XR - 2019-07-06 at 23.25.15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manudevcode/flutter_listening_book_app/HEAD/assets/screenshots/Simulator Screen Shot - iPhone XR - 2019-07-06 at 23.25.15.png -------------------------------------------------------------------------------- /ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /ios/Runner/main.m: -------------------------------------------------------------------------------- 1 | #import 2 | #import 3 | #import "AppDelegate.h" 4 | 5 | int main(int argc, char* argv[]) { 6 | @autoreleasepool { 7 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /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-4.10.2-all.zip 7 | -------------------------------------------------------------------------------- /ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | BuildSystemType 6 | Original 7 | 8 | 9 | -------------------------------------------------------------------------------- /.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: 7a4c33425ddd78c54aba07d86f3f9a4a0051769b 8 | channel: stable 9 | 10 | project_type: app 11 | -------------------------------------------------------------------------------- /android/app/src/debug/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /android/app/src/profile/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /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. -------------------------------------------------------------------------------- /android/app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | 9 | -------------------------------------------------------------------------------- /android/app/src/main/java/com/example/book_store/MainActivity.java: -------------------------------------------------------------------------------- 1 | package com.example.book_store; 2 | 3 | import android.os.Bundle; 4 | import io.flutter.app.FlutterActivity; 5 | import io.flutter.plugins.GeneratedPluginRegistrant; 6 | 7 | public class MainActivity extends FlutterActivity { 8 | @Override 9 | protected void onCreate(Bundle savedInstanceState) { 10 | super.onCreate(savedInstanceState); 11 | GeneratedPluginRegistrant.registerWith(this); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /ios/Runner/AppDelegate.m: -------------------------------------------------------------------------------- 1 | #include "AppDelegate.h" 2 | #include "GeneratedPluginRegistrant.h" 3 | 4 | @implementation AppDelegate 5 | 6 | - (BOOL)application:(UIApplication *)application 7 | didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 8 | [GeneratedPluginRegistrant registerWithRegistry:self]; 9 | // Override point for customization after application launch. 10 | return [super application:application didFinishLaunchingWithOptions:launchOptions]; 11 | } 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /android/app/src/main/res/drawable/launch_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 12 | 13 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /android/settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app' 2 | 3 | def flutterProjectRoot = rootProject.projectDir.parentFile.toPath() 4 | 5 | def plugins = new Properties() 6 | def pluginsFile = new File(flutterProjectRoot.toFile(), '.flutter-plugins') 7 | if (pluginsFile.exists()) { 8 | pluginsFile.withReader('UTF-8') { reader -> plugins.load(reader) } 9 | } 10 | 11 | plugins.each { name, path -> 12 | def pluginDirectory = flutterProjectRoot.resolve(path).resolve('android').toFile() 13 | include ":$name" 14 | project(":$name").projectDir = pluginDirectory 15 | } 16 | -------------------------------------------------------------------------------- /android/build.gradle: -------------------------------------------------------------------------------- 1 | buildscript { 2 | repositories { 3 | google() 4 | jcenter() 5 | } 6 | 7 | dependencies { 8 | classpath 'com.android.tools.build:gradle:3.2.1' 9 | } 10 | } 11 | 12 | allprojects { 13 | repositories { 14 | google() 15 | jcenter() 16 | } 17 | } 18 | 19 | rootProject.buildDir = '../build' 20 | subprojects { 21 | project.buildDir = "${rootProject.buildDir}/${project.name}" 22 | } 23 | subprojects { 24 | project.evaluationDependsOn(':app') 25 | } 26 | 27 | task clean(type: Delete) { 28 | delete rootProject.buildDir 29 | } 30 | -------------------------------------------------------------------------------- /lib/utils/color.dart: -------------------------------------------------------------------------------- 1 | int getColorHexFromStr(String colorStr) { 2 | colorStr = "FF" + colorStr; 3 | colorStr = colorStr.replaceAll("#", ""); 4 | int val = 0; 5 | int len = colorStr.length; 6 | for (int i = 0; i < len; i++) { 7 | int hexDigit = colorStr.codeUnitAt(i); 8 | if (hexDigit >= 48 && hexDigit <= 57) { 9 | val += (hexDigit - 48) * (1 << (4 * (len - 1 - i))); 10 | } else if (hexDigit >= 65 && hexDigit <= 70) { 11 | // A..F 12 | val += (hexDigit - 55) * (1 << (4 * (len - 1 - i))); 13 | } else if (hexDigit >= 97 && hexDigit <= 102) { 14 | // a..f 15 | val += (hexDigit - 87) * (1 << (4 * (len - 1 - i))); 16 | } else { 17 | throw new FormatException("An error occurred when converting a color"); 18 | } 19 | } 20 | return val; 21 | } -------------------------------------------------------------------------------- /ios/Flutter/AppFrameworkInfo.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | App 9 | CFBundleIdentifier 10 | io.flutter.flutter.app 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | App 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1.0 23 | MinimumOSVersion 24 | 8.0 25 | 26 | 27 | -------------------------------------------------------------------------------- /lib/main.dart: -------------------------------------------------------------------------------- 1 | import 'package:book_store/screens/account.dart'; 2 | import 'package:book_store/screens/recharge.dart'; 3 | import 'package:flutter/material.dart'; 4 | 5 | import 'screens/bookDetail.dart'; 6 | import 'screens/home.dart'; 7 | 8 | void main() => runApp(MyApp()); 9 | 10 | class MyApp extends StatelessWidget { 11 | // This widget is the root of your application. 12 | @override 13 | Widget build(BuildContext context) { 14 | return MaterialApp( 15 | title: 'Book store', 16 | debugShowCheckedModeBanner: false, 17 | theme: ThemeData( 18 | primaryColor: Colors.orange[700], 19 | ), 20 | initialRoute: '/', 21 | routes: { 22 | BookDetail.routeName: (context) => BookDetail(), 23 | Account.routeName: (context) => Account(), 24 | Recharge.routeName: (context) => Recharge() 25 | }, 26 | home: Home(), 27 | ); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # · UI | Listening Book app with Flutter 2 | 3 | ## Screenshots 4 | 5 | ![alt text](https://github.com/manudevcode/flutter_listening_book_app/blob/master/assets/screenshots/Simulator%20Screen%20Shot%20-%20iPhone%20XR%20-%202019-07-06%20at%2022.44.09.png?raw=true) 6 | 7 | ![alt text](https://github.com/manudevcode/flutter_listening_book_app/blob/master/assets/screenshots/Simulator%20Screen%20Shot%20-%20iPhone%20XR%20-%202019-07-06%20at%2023.11.35.png?raw=true) 8 | 9 | ![alt text](https://github.com/manudevcode/flutter_listening_book_app/blob/master/assets/screenshots/Simulator%20Screen%20Shot%20-%20iPhone%20XR%20-%202019-07-06%20at%2023.22.58.png?raw=true) 10 | 11 | 12 | ![alt text](https://github.com/manudevcode/flutter_listening_book_app/blob/master/assets/screenshots/Simulator%20Screen%20Shot%20-%20iPhone%20XR%20-%202019-07-06%20at%2023.25.10.png?raw=true) 13 | 14 | 15 | ![alt text](https://github.com/manudevcode/flutter_listening_book_app/blob/master/assets/screenshots/Simulator%20Screen%20Shot%20-%20iPhone%20XR%20-%202019-07-06%20at%2023.25.15.png?raw=true) 16 | -------------------------------------------------------------------------------- /test/widget_test.dart: -------------------------------------------------------------------------------- 1 | // This is a basic Flutter widget test. 2 | // 3 | // To perform an interaction with a widget in your test, use the WidgetTester 4 | // utility that Flutter provides. For example, you can send tap and scroll 5 | // gestures. You can also use WidgetTester to find child widgets in the widget 6 | // tree, read text, and verify that the values of widget properties are correct. 7 | 8 | import 'package:flutter/material.dart'; 9 | import 'package:flutter_test/flutter_test.dart'; 10 | 11 | import 'package:book_store/main.dart'; 12 | 13 | void main() { 14 | testWidgets('Counter increments smoke test', (WidgetTester tester) async { 15 | // Build our app and trigger a frame. 16 | await tester.pumpWidget(MyApp()); 17 | 18 | // Verify that our counter starts at 0. 19 | expect(find.text('0'), findsOneWidget); 20 | expect(find.text('1'), findsNothing); 21 | 22 | // Tap the '+' icon and trigger a frame. 23 | await tester.tap(find.byIcon(Icons.add)); 24 | await tester.pump(); 25 | 26 | // Verify that our counter has incremented. 27 | expect(find.text('0'), findsNothing); 28 | expect(find.text('1'), findsOneWidget); 29 | }); 30 | } 31 | -------------------------------------------------------------------------------- /lib/widgets/bottonBar.dart: -------------------------------------------------------------------------------- 1 | import 'package:book_store/utils/color.dart'; 2 | import 'package:flutter/material.dart'; 3 | 4 | Widget bottomBar(active){ 5 | return new Container( 6 | color: Colors.white, 7 | height: 70.0, 8 | alignment: Alignment.center, 9 | child: new BottomAppBar( 10 | child: new Row( 11 | mainAxisAlignment: MainAxisAlignment.spaceAround, 12 | children: [ 13 | new IconButton( 14 | icon: Icon( 15 | Icons.home, 16 | color: (active == 'home')?Colors.orange:Colors.grey, 17 | size: 30.0, 18 | ), 19 | onPressed: () { 20 | }, 21 | ), 22 | new IconButton( 23 | icon: Icon( 24 | Icons.book, 25 | color: (active == 'books')?Colors.orange:Colors.grey, 26 | size: 30.0, 27 | ), 28 | onPressed: null, 29 | ), 30 | new IconButton( 31 | icon: Icon( 32 | Icons.person_outline, 33 | color: (active == 'account')?Colors.orange:Colors.grey, 34 | size: 30.0, 35 | ), 36 | onPressed: null, 37 | ), 38 | ], 39 | ), 40 | ), 41 | ); 42 | } -------------------------------------------------------------------------------- /.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 | # Visual Studio Code related 19 | .vscode/ 20 | 21 | # Flutter/Dart/Pub related 22 | **/doc/api/ 23 | .dart_tool/ 24 | .flutter-plugins 25 | .packages 26 | .pub-cache/ 27 | .pub/ 28 | /build/ 29 | 30 | # Android related 31 | **/android/**/gradle-wrapper.jar 32 | **/android/.gradle 33 | **/android/captures/ 34 | **/android/gradlew 35 | **/android/gradlew.bat 36 | **/android/local.properties 37 | **/android/**/GeneratedPluginRegistrant.java 38 | 39 | # iOS/XCode related 40 | **/ios/**/*.mode1v3 41 | **/ios/**/*.mode2v3 42 | **/ios/**/*.moved-aside 43 | **/ios/**/*.pbxuser 44 | **/ios/**/*.perspectivev3 45 | **/ios/**/*sync/ 46 | **/ios/**/.sconsign.dblite 47 | **/ios/**/.tags* 48 | **/ios/**/.vagrant/ 49 | **/ios/**/DerivedData/ 50 | **/ios/**/Icon? 51 | **/ios/**/Pods/ 52 | **/ios/**/.symlinks/ 53 | **/ios/**/profile 54 | **/ios/**/xcuserdata 55 | **/ios/.generated/ 56 | **/ios/Flutter/App.framework 57 | **/ios/Flutter/Flutter.framework 58 | **/ios/Flutter/Generated.xcconfig 59 | **/ios/Flutter/app.flx 60 | **/ios/Flutter/app.zip 61 | **/ios/Flutter/flutter_assets/ 62 | **/ios/ServiceDefinitions.json 63 | **/ios/Runner/GeneratedPluginRegistrant.* 64 | 65 | # Exceptions to above rules. 66 | !**/ios/**/default.mode1v3 67 | !**/ios/**/default.mode2v3 68 | !**/ios/**/default.pbxuser 69 | !**/ios/**/default.perspectivev3 70 | !/packages/flutter_tools/test/data/dart_dependencies_test/**/.packages 71 | -------------------------------------------------------------------------------- /ios/Runner/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | book_store 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/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 | -------------------------------------------------------------------------------- /lib/widgets/topBar.dart: -------------------------------------------------------------------------------- 1 | import 'package:book_store/screens/account.dart'; 2 | import 'package:book_store/utils/color.dart'; 3 | import 'package:flutter/material.dart'; 4 | import 'package:flutter/material.dart' as prefix0; 5 | 6 | Widget accountWidget(context) { 7 | return GestureDetector( 8 | onTap: () { 9 | Navigator.pushNamed( 10 | context, 11 | Account.routeName, 12 | ); 13 | }, 14 | child: Container( 15 | width: 40.0, 16 | height: 40.0, 17 | decoration: BoxDecoration( 18 | image: DecorationImage( 19 | fit: BoxFit.contain, 20 | image: AssetImage("assets/account.png"), 21 | ), 22 | ), 23 | ), 24 | ); 25 | } 26 | 27 | Widget topBar(title, color, context){ 28 | return( 29 | new AppBar( 30 | backgroundColor: color, 31 | title: Text( 32 | title, 33 | style: TextStyle( 34 | color: Color(getColorHexFromStr('#323643')), 35 | fontSize: 24.0 36 | ), 37 | ), 38 | elevation:0.0, 39 | actions: [ 40 | (ModalRoute.of(context).settings.name.indexOf("account") == -1) 41 | ?GestureDetector( 42 | onTap: () { 43 | Navigator.pushNamed( 44 | context, 45 | Account.routeName, 46 | ); 47 | }, 48 | child: Container( 49 | width: 40.0, 50 | height: 40.0, 51 | decoration: BoxDecoration( 52 | image: DecorationImage( 53 | fit: BoxFit.contain, 54 | image: AssetImage("assets/account.png"), 55 | ), 56 | ), 57 | ), 58 | ):Text(''), 59 | SizedBox(width: 20.0,) 60 | ], 61 | ) 62 | ); 63 | } -------------------------------------------------------------------------------- /android/app/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | 4 | 9 | 13 | 20 | 24 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /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 from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle" 26 | 27 | android { 28 | compileSdkVersion 28 29 | 30 | lintOptions { 31 | disable 'InvalidPackage' 32 | } 33 | 34 | defaultConfig { 35 | // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). 36 | applicationId "com.example.book_store" 37 | minSdkVersion 16 38 | targetSdkVersion 28 39 | versionCode flutterVersionCode.toInteger() 40 | versionName flutterVersionName 41 | testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" 42 | } 43 | 44 | buildTypes { 45 | release { 46 | // TODO: Add your own signing config for the release build. 47 | // Signing with the debug keys for now, so `flutter run --release` works. 48 | signingConfig signingConfigs.debug 49 | } 50 | } 51 | } 52 | 53 | flutter { 54 | source '../..' 55 | } 56 | 57 | dependencies { 58 | testImplementation 'junit:junit:4.12' 59 | androidTestImplementation 'com.android.support.test:runner:1.0.2' 60 | androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2' 61 | } 62 | -------------------------------------------------------------------------------- /lib/widgets/slide.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | 3 | Widget slideItem(title, subtitle, image, Null Function() onTap){ 4 | return GestureDetector( 5 | onTap: onTap, 6 | child: AspectRatio( 7 | aspectRatio: 1.5, 8 | child: Padding( 9 | padding: EdgeInsets.all(16.0), 10 | child: Material( 11 | elevation: 6.0, 12 | borderRadius: BorderRadius.circular(25.0), 13 | child: Container( 14 | decoration: BoxDecoration( 15 | borderRadius: BorderRadius.circular(10.0), 16 | image: DecorationImage( 17 | fit: BoxFit.cover, 18 | image: AssetImage(image), 19 | ), 20 | ), 21 | child: Container( 22 | child: Row( 23 | children: [ 24 | SizedBox(width: 16.0), 25 | Column( 26 | mainAxisAlignment: MainAxisAlignment.center, 27 | crossAxisAlignment: CrossAxisAlignment.start, 28 | children: [ 29 | Text( 30 | title.toString().toUpperCase(), 31 | style: TextStyle( 32 | color: Colors.white, 33 | fontSize: 30.0, 34 | fontFamily: "Helvatica", 35 | letterSpacing: 2.1, 36 | fontWeight: FontWeight.w100 37 | ), 38 | ), 39 | Text( 40 | subtitle.toString().toUpperCase(), 41 | style: TextStyle( 42 | color: Colors.white, 43 | fontSize: 60.0, 44 | fontFamily: "Helvatica", 45 | fontWeight: FontWeight.w400 46 | ), 47 | ), 48 | ], 49 | ) 50 | ], 51 | ), 52 | ), 53 | ), 54 | ), 55 | ), 56 | ) 57 | ); 58 | } 59 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /lib/widgets/itemListBook.dart: -------------------------------------------------------------------------------- 1 | import 'package:book_store/utils/color.dart'; 2 | import 'package:flutter/material.dart'; 3 | 4 | Widget itemListBook(title, price, stars, image ,Null Function() onTap){ 5 | return GestureDetector( 6 | onTap: onTap, 7 | child: Container( 8 | width: 163.0, 9 | child: Padding( 10 | padding: EdgeInsets.all(16.0), 11 | child: Column( 12 | children: [ 13 | Material( 14 | elevation: 6.0, 15 | borderRadius: BorderRadius.circular(8.0), 16 | child: Container( 17 | width: 163.0, 18 | height: 200.0, 19 | decoration: BoxDecoration( 20 | image: DecorationImage( 21 | fit: BoxFit.cover, 22 | image: AssetImage(image), 23 | ), 24 | ), 25 | child: Stack( 26 | children: [ 27 | Positioned( 28 | top: 12.0, 29 | right: 12.0, 30 | child: Align( 31 | child: Container( 32 | width: 35.0, 33 | height: 50.0, 34 | alignment: Alignment.center, 35 | decoration: BoxDecoration( 36 | color: Color(getColorHexFromStr("#FF6B03")), 37 | borderRadius: BorderRadius.circular(10.0), 38 | ), 39 | child: Column( 40 | mainAxisAlignment: MainAxisAlignment.center, 41 | children: [ 42 | Icon( 43 | Icons.star, 44 | color: Colors.white, 45 | size: 18.0, 46 | ), 47 | Text(stars, 48 | style: TextStyle( 49 | color: Colors.white, 50 | fontSize: 16.0, 51 | ), 52 | ), 53 | ],) 54 | ), 55 | ), 56 | ), 57 | ], 58 | ) 59 | ), 60 | ), 61 | Flexible( 62 | child: Column( 63 | crossAxisAlignment: CrossAxisAlignment.start, 64 | mainAxisAlignment: MainAxisAlignment.center, 65 | children: [ 66 | Text(title, textAlign: TextAlign.left, style: TextStyle(fontSize: 25.0),), 67 | Text("\$$price", textAlign: TextAlign.left, style: TextStyle(fontSize: 15.0),) 68 | ], 69 | ), 70 | ) 71 | ], 72 | ) 73 | ), 74 | ) 75 | ); 76 | } 77 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /pubspec.yaml: -------------------------------------------------------------------------------- 1 | name: book_store 2 | description: A new Flutter project. 3 | 4 | # The following defines the version and build number for your application. 5 | # A version number is three numbers separated by dots, like 1.2.43 6 | # followed by an optional build number separated by a +. 7 | # Both the version and the builder number may be overridden in flutter 8 | # build by specifying --build-name and --build-number, respectively. 9 | # In Android, build-name is used as versionName while build-number used as versionCode. 10 | # Read more about Android versioning at https://developer.android.com/studio/publish/versioning 11 | # In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion. 12 | # Read more about iOS versioning at 13 | # https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html 14 | version: 1.0.0+1 15 | 16 | environment: 17 | sdk: ">=2.1.0 <3.0.0" 18 | 19 | dependencies: 20 | flutter: 21 | sdk: flutter 22 | 23 | # The following adds the Cupertino Icons font to your application. 24 | # Use with the CupertinoIcons class for iOS style icons. 25 | cupertino_icons: ^0.1.2 26 | 27 | dev_dependencies: 28 | flutter_test: 29 | sdk: flutter 30 | 31 | 32 | # For information on the generic Dart part of this file, see the 33 | # following page: https://www.dartlang.org/tools/pub/pubspec 34 | 35 | # The following section is specific to Flutter. 36 | flutter: 37 | 38 | # The following line ensures that the Material Icons font is 39 | # included with your application, so that you can use the icons in 40 | # the material Icons class. 41 | uses-material-design: true 42 | 43 | # To add assets to your application, add an assets section, like this: 44 | assets: 45 | - assets/slide_1.png 46 | - assets/slide_2.png 47 | - assets/book_1.png 48 | - assets/book_2.png 49 | - assets/book_3.png 50 | - assets/book_4.png 51 | - assets/book_5.png 52 | - assets/book_6.png 53 | - assets/book_7.png 54 | - assets/book_8.png 55 | - assets/account.png 56 | - assets/course_1.png 57 | - assets/course_2.png 58 | - assets/course_3.png 59 | - assets/paypal.png 60 | - assets/master.png 61 | 62 | # An image asset can refer to one or more resolution-specific "variants", see 63 | # https://flutter.dev/assets-and-images/#resolution-aware. 64 | 65 | # For details regarding adding assets from package dependencies, see 66 | # https://flutter.dev/assets-and-images/#from-packages 67 | 68 | # To add custom fonts to your application, add a fonts section here, 69 | # in this "flutter" section. Each entry in this list should have a 70 | # "family" key with the font family name, and a "fonts" key with a 71 | # list giving the asset and other descriptors for the font. For 72 | # example: 73 | # fonts: 74 | # - family: Schyler 75 | # fonts: 76 | # - asset: fonts/Schyler-Regular.ttf 77 | # - asset: fonts/Schyler-Italic.ttf 78 | # style: italic 79 | # - family: Trajan Pro 80 | # fonts: 81 | # - asset: fonts/TrajanPro.ttf 82 | # - asset: fonts/TrajanPro_Bold.ttf 83 | # weight: 700 84 | # 85 | # For details regarding fonts from package dependencies, 86 | # see https://flutter.dev/custom-fonts/#from-packages 87 | -------------------------------------------------------------------------------- /lib/screens/home.dart: -------------------------------------------------------------------------------- 1 | import 'package:book_store/widgets/bottonBar.dart'; 2 | import 'package:book_store/widgets/itemCardBook.dart'; 3 | import 'package:book_store/widgets/itemCardCourse.dart'; 4 | import 'package:book_store/widgets/slide.dart'; 5 | import 'package:book_store/widgets/topBar.dart'; 6 | import 'package:flutter/material.dart'; 7 | 8 | class Home extends StatelessWidget { 9 | 10 | @override 11 | Widget build(BuildContext context) { 12 | return Scaffold( 13 | backgroundColor: Colors.white, 14 | appBar: topBar("Home", Colors.white, context), 15 | body: ListView( 16 | physics: const AlwaysScrollableScrollPhysics(), 17 | children: [ 18 | Container( 19 | height: 250.0, 20 | child: ListView( 21 | physics: const AlwaysScrollableScrollPhysics(), 22 | scrollDirection: Axis.horizontal, 23 | children: [ 24 | slideItem("Listening", "Books", "assets/slide_1.png", (){}), 25 | slideItem("Liten", "Books", "assets/slide_2.png", (){}), 26 | ], 27 | ), 28 | ), 29 | SizedBox(height: 20.0,), 30 | Container( 31 | margin: EdgeInsets.only(left: 20.0), 32 | child: Text("Featured", style: TextStyle(fontSize: 25.0)), 33 | ), 34 | Container( 35 | height: 360.0, 36 | child: ListView( 37 | physics: const AlwaysScrollableScrollPhysics(), 38 | scrollDirection: Axis.horizontal, 39 | children: [ 40 | itemBookCard("The Forgotten Hours", "4.99", "5.0","assets/book_1.png", context), 41 | itemBookCard("Whiskey in a Teacup", "2.99", "4.5","assets/book_2.png", context), 42 | itemBookCard("kate spade new york- SHE", "1.99", "5.0","assets/book_3.png", context), 43 | ], 44 | ), 45 | ), 46 | SizedBox(height: 20.0,), 47 | Container( 48 | margin: EdgeInsets.only(left: 20.0), 49 | child: Text("Lastested", style: TextStyle(fontSize: 25.0)), 50 | ), 51 | Container( 52 | height: 360.0, 53 | child: ListView( 54 | physics: const AlwaysScrollableScrollPhysics(), 55 | scrollDirection: Axis.horizontal, 56 | children: [ 57 | itemBookCard("Blood for blood", "4.99", "5.0","assets/book_4.png", (){}), 58 | itemBookCard("The killer colective", "0.99", "4.5","assets/book_5.png", (){}), 59 | itemBookCard("Planner Weekly And Monthly", "5.99", "5.0","assets/book_6.png", (){}), 60 | ], 61 | ), 62 | ), 63 | SizedBox(height: 20.0,), 64 | Container( 65 | margin: EdgeInsets.only(left: 20.0), 66 | child: Text("Course", style: TextStyle(fontSize: 25.0)), 67 | ), 68 | itemCardCourse("Learn - Online Courses Educational App", "12/30", "assets/course_1.png", context), 69 | itemCardCourse("Learn - Online Courses Educational App", "12/30", "assets/course_2.png", context), 70 | itemCardCourse("Learn - Online Courses Educational App", "12/30", "assets/course_3.png", context) 71 | ], 72 | ), 73 | bottomNavigationBar: bottomBar("home"), 74 | ); 75 | } 76 | } -------------------------------------------------------------------------------- /ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 31 | 32 | 33 | 34 | 40 | 41 | 42 | 43 | 44 | 45 | 56 | 58 | 64 | 65 | 66 | 67 | 68 | 69 | 75 | 77 | 83 | 84 | 85 | 86 | 88 | 89 | 92 | 93 | 94 | -------------------------------------------------------------------------------- /lib/widgets/itemCardCourse.dart: -------------------------------------------------------------------------------- 1 | import 'package:book_store/utils/color.dart'; 2 | import 'package:flutter/material.dart'; 3 | 4 | Widget itemCardCourse(title, progress, image, context){ 5 | return GestureDetector( 6 | child: AspectRatio( 7 | aspectRatio: 1.2, 8 | child: Container( 9 | child: Padding( 10 | padding: EdgeInsets.all(16.0), 11 | child: Column( 12 | children: [ 13 | Material( 14 | elevation: 6.0, 15 | borderRadius: BorderRadius.circular(10.0), 16 | child: Container( 17 | width: MediaQuery.of(context).size.width, 18 | height: 200.0, 19 | decoration: BoxDecoration( 20 | borderRadius: BorderRadius.circular(10.0), 21 | image: DecorationImage( 22 | fit: BoxFit.cover, 23 | image: AssetImage(image), 24 | ), 25 | ), 26 | ), 27 | ), 28 | Flexible( 29 | child: Column( 30 | children: [ 31 | SizedBox(height: 20.0), 32 | new Container( 33 | child: new Text( 34 | title, 35 | textAlign: TextAlign.left, 36 | overflow: TextOverflow.ellipsis, 37 | softWrap: true, 38 | style: new TextStyle( 39 | fontSize: 25.0, 40 | fontFamily: 'Roboto', 41 | color: new Color(0xFF212121), 42 | ), 43 | ), 44 | ), 45 | SizedBox(height: 20.0), 46 | Row( 47 | children: [ 48 | Container( 49 | width: MediaQuery.of(context).size.width / 10 * 7, 50 | height: 10.0, 51 | decoration: BoxDecoration( 52 | borderRadius: BorderRadius.circular(10.0), 53 | color: Color(getColorHexFromStr("#ECECEC")) 54 | ), 55 | foregroundDecoration: BoxDecoration( 56 | borderRadius: BorderRadius.circular(10.0), 57 | gradient: LinearGradient( 58 | begin: Alignment.centerLeft, 59 | end: Alignment.centerRight, 60 | stops: [0.1, 0.7, 0.7], 61 | colors: [Color(getColorHexFromStr("#FF974D")), Color(getColorHexFromStr("#FF6A02")), Color(getColorHexFromStr("#ECECEC"))], 62 | ), 63 | ), 64 | ), 65 | SizedBox(width: 10.0), 66 | new Text( 67 | progress, 68 | textAlign: TextAlign.left, 69 | overflow: TextOverflow.ellipsis, 70 | softWrap: true, 71 | style: new TextStyle( 72 | fontFamily: 'Roboto', 73 | ), 74 | ), 75 | ], 76 | ) 77 | ], 78 | ), 79 | ) 80 | ], 81 | ) 82 | ), 83 | ), 84 | ) 85 | ); 86 | } -------------------------------------------------------------------------------- /pubspec.lock: -------------------------------------------------------------------------------- 1 | # Generated by pub 2 | # See https://www.dartlang.org/tools/pub/glossary#lockfile 3 | packages: 4 | async: 5 | dependency: transitive 6 | description: 7 | name: async 8 | url: "https://pub.dartlang.org" 9 | source: hosted 10 | version: "2.1.0" 11 | boolean_selector: 12 | dependency: transitive 13 | description: 14 | name: boolean_selector 15 | url: "https://pub.dartlang.org" 16 | source: hosted 17 | version: "1.0.4" 18 | charcode: 19 | dependency: transitive 20 | description: 21 | name: charcode 22 | url: "https://pub.dartlang.org" 23 | source: hosted 24 | version: "1.1.2" 25 | collection: 26 | dependency: transitive 27 | description: 28 | name: collection 29 | url: "https://pub.dartlang.org" 30 | source: hosted 31 | version: "1.14.11" 32 | cupertino_icons: 33 | dependency: "direct main" 34 | description: 35 | name: cupertino_icons 36 | url: "https://pub.dartlang.org" 37 | source: hosted 38 | version: "0.1.2" 39 | flutter: 40 | dependency: "direct main" 41 | description: flutter 42 | source: sdk 43 | version: "0.0.0" 44 | flutter_test: 45 | dependency: "direct dev" 46 | description: flutter 47 | source: sdk 48 | version: "0.0.0" 49 | matcher: 50 | dependency: transitive 51 | description: 52 | name: matcher 53 | url: "https://pub.dartlang.org" 54 | source: hosted 55 | version: "0.12.5" 56 | meta: 57 | dependency: transitive 58 | description: 59 | name: meta 60 | url: "https://pub.dartlang.org" 61 | source: hosted 62 | version: "1.1.6" 63 | path: 64 | dependency: transitive 65 | description: 66 | name: path 67 | url: "https://pub.dartlang.org" 68 | source: hosted 69 | version: "1.6.2" 70 | pedantic: 71 | dependency: transitive 72 | description: 73 | name: pedantic 74 | url: "https://pub.dartlang.org" 75 | source: hosted 76 | version: "1.5.0" 77 | quiver: 78 | dependency: transitive 79 | description: 80 | name: quiver 81 | url: "https://pub.dartlang.org" 82 | source: hosted 83 | version: "2.0.2" 84 | sky_engine: 85 | dependency: transitive 86 | description: flutter 87 | source: sdk 88 | version: "0.0.99" 89 | source_span: 90 | dependency: transitive 91 | description: 92 | name: source_span 93 | url: "https://pub.dartlang.org" 94 | source: hosted 95 | version: "1.5.5" 96 | stack_trace: 97 | dependency: transitive 98 | description: 99 | name: stack_trace 100 | url: "https://pub.dartlang.org" 101 | source: hosted 102 | version: "1.9.3" 103 | stream_channel: 104 | dependency: transitive 105 | description: 106 | name: stream_channel 107 | url: "https://pub.dartlang.org" 108 | source: hosted 109 | version: "2.0.0" 110 | string_scanner: 111 | dependency: transitive 112 | description: 113 | name: string_scanner 114 | url: "https://pub.dartlang.org" 115 | source: hosted 116 | version: "1.0.4" 117 | term_glyph: 118 | dependency: transitive 119 | description: 120 | name: term_glyph 121 | url: "https://pub.dartlang.org" 122 | source: hosted 123 | version: "1.1.0" 124 | test_api: 125 | dependency: transitive 126 | description: 127 | name: test_api 128 | url: "https://pub.dartlang.org" 129 | source: hosted 130 | version: "0.2.4" 131 | typed_data: 132 | dependency: transitive 133 | description: 134 | name: typed_data 135 | url: "https://pub.dartlang.org" 136 | source: hosted 137 | version: "1.1.6" 138 | vector_math: 139 | dependency: transitive 140 | description: 141 | name: vector_math 142 | url: "https://pub.dartlang.org" 143 | source: hosted 144 | version: "2.0.8" 145 | sdks: 146 | dart: ">=2.2.0 <3.0.0" 147 | -------------------------------------------------------------------------------- /lib/widgets/itemCardBook.dart: -------------------------------------------------------------------------------- 1 | import 'package:book_store/screens/bookDetail.dart'; 2 | import 'package:book_store/utils/color.dart'; 3 | import 'package:flutter/material.dart'; 4 | 5 | Widget itemBookCard(title, price, stars, image, context){ 6 | return GestureDetector( 7 | onTap: (){ 8 | Navigator.pushNamed( 9 | context, 10 | BookDetail.routeName, 11 | arguments: BookDetailArguments( 12 | title, 13 | image 14 | ), 15 | ); 16 | }, 17 | child: Container( 18 | width: 163.0, 19 | child: Padding( 20 | padding: EdgeInsets.all(16.0), 21 | child: Column( 22 | children: [ 23 | Material( 24 | elevation: 6.0, 25 | borderRadius: BorderRadius.circular(8.0), 26 | child: Container( 27 | width: 163.0, 28 | height: 200.0, 29 | decoration: BoxDecoration( 30 | image: DecorationImage( 31 | fit: BoxFit.cover, 32 | image: AssetImage(image), 33 | ), 34 | ), 35 | child: Stack( 36 | children: [ 37 | Positioned( 38 | top: 12.0, 39 | right: 12.0, 40 | child: Align( 41 | child: Container( 42 | width: 35.0, 43 | height: 50.0, 44 | alignment: Alignment.center, 45 | decoration: BoxDecoration( 46 | color: Color(getColorHexFromStr("#FF6B03")), 47 | borderRadius: BorderRadius.circular(10.0), 48 | ), 49 | child: Column( 50 | mainAxisAlignment: MainAxisAlignment.center, 51 | children: [ 52 | Icon( 53 | Icons.star, 54 | color: Colors.white, 55 | size: 18.0, 56 | ), 57 | Text(stars, 58 | style: TextStyle( 59 | color: Colors.white, 60 | fontSize: 16.0, 61 | ), 62 | ), 63 | ],) 64 | ), 65 | ), 66 | ), 67 | ], 68 | ) 69 | ), 70 | ), 71 | Flexible( 72 | child: Column( 73 | crossAxisAlignment: CrossAxisAlignment.start, 74 | mainAxisAlignment: MainAxisAlignment.center, 75 | children: [ 76 | new Flexible( 77 | child: new Container( 78 | padding: new EdgeInsets.only(right: 13.0), 79 | child: new Text( 80 | title, 81 | textAlign: TextAlign.left, 82 | overflow: TextOverflow.fade, 83 | softWrap: true, 84 | style: new TextStyle( 85 | fontSize: 25.0, 86 | fontFamily: 'Roboto', 87 | color: new Color(0xFF212121), 88 | fontWeight: FontWeight.bold, 89 | ), 90 | ), 91 | ), 92 | ), 93 | Text("\$$price", textAlign: TextAlign.left, style: TextStyle(fontSize: 15.0),) 94 | ], 95 | ), 96 | ) 97 | ], 98 | ) 99 | ), 100 | ) 101 | ); 102 | } 103 | -------------------------------------------------------------------------------- /lib/screens/bookDetail.dart: -------------------------------------------------------------------------------- 1 | import 'package:book_store/utils/color.dart'; 2 | import 'package:book_store/widgets/topBar.dart'; 3 | import 'package:flutter/material.dart'; 4 | 5 | class BookDetailArguments { 6 | final String name; 7 | final String image; 8 | 9 | BookDetailArguments(this.name, this.image); 10 | } 11 | 12 | class BookDetail extends StatelessWidget { 13 | static const routeName = '/book-detail'; 14 | 15 | @override 16 | Widget build(BuildContext context) { 17 | 18 | final BookDetailArguments args = ModalRoute.of(context).settings.arguments; 19 | 20 | return Scaffold( 21 | backgroundColor: Colors.white, 22 | appBar: topBar("", Color(getColorHexFromStr("#F8F8F8")), context), 23 | body: ListView( 24 | children: [ 25 | Container( 26 | width: MediaQuery.of(context).size.width, 27 | color: Color(getColorHexFromStr("#F8F8F8")), 28 | child: Column( 29 | crossAxisAlignment: CrossAxisAlignment.center, 30 | children: [ 31 | Container( 32 | width: 166.0, 33 | height: 240.0, 34 | decoration: BoxDecoration( 35 | image: DecorationImage( 36 | fit: BoxFit.cover, 37 | image: AssetImage(args.image), 38 | ), 39 | ), 40 | ), 41 | Container( 42 | child: RaisedButton( 43 | onPressed: () {}, 44 | textColor: Colors.white, 45 | padding: const EdgeInsets.all(0.0), 46 | child: Container( 47 | decoration: BoxDecoration( 48 | borderRadius: BorderRadius.circular(30.0), 49 | gradient: LinearGradient( 50 | begin: Alignment.topCenter, 51 | end: Alignment.bottomCenter, 52 | colors: [Color(getColorHexFromStr("#FF974D")), Color(getColorHexFromStr("#FF6A02"))], 53 | ), 54 | ), 55 | padding: const EdgeInsets.only(left: 40.0, right: 40.0, top: 12.0, bottom: 12.0), 56 | child: const Text( 57 | '\$ 4.99', 58 | style: TextStyle(fontSize: 20, fontWeight: FontWeight.w600) 59 | ), 60 | ), 61 | shape: new RoundedRectangleBorder(borderRadius: new BorderRadius.circular(30.0)) 62 | ), 63 | transform: Matrix4.translationValues(0.0, -25.0, 0.0), 64 | ), 65 | Text( 66 | args.name, 67 | style: TextStyle( 68 | fontSize: 24.0, 69 | color: Color(getColorHexFromStr("#333333")), 70 | fontWeight: FontWeight.w600 71 | ), 72 | ), 73 | SizedBox(height: 10.0), 74 | Text( 75 | 'Sarah Perez | 12\'45\" ', 76 | style: TextStyle( 77 | fontSize: 18.0, 78 | color: Color(getColorHexFromStr("#666666")), 79 | ), 80 | ), 81 | SizedBox(height: 10.0), 82 | Row( 83 | mainAxisAlignment: MainAxisAlignment.center, 84 | children: [ 85 | Icon(Icons.star, color: Theme.of(context).primaryColor ,), 86 | Icon(Icons.star, color: Theme.of(context).primaryColor ,), 87 | Icon(Icons.star, color: Theme.of(context).primaryColor ,), 88 | Icon(Icons.star, color: Theme.of(context).primaryColor ,), 89 | Icon(Icons.star, color: Colors.grey[400] ,), 90 | ], 91 | ), 92 | SizedBox(height: 40.0), 93 | ], 94 | ), 95 | ), 96 | Padding( 97 | padding: EdgeInsets.all(16.0), 98 | child: Column( 99 | mainAxisAlignment: MainAxisAlignment.center, 100 | children: [ 101 | SizedBox(height: 30.0), 102 | Text( 103 | 'Introduction', 104 | style: TextStyle( 105 | fontSize: 28.0, 106 | fontWeight: FontWeight.w500, 107 | color: Color(getColorHexFromStr("#333333")), 108 | ), 109 | ), 110 | SizedBox(height: 40.0), 111 | Row( 112 | children: [ 113 | Container( 114 | width: 8.0, 115 | height: 30.0, 116 | decoration: BoxDecoration( 117 | color: Theme.of(context).primaryColor, 118 | borderRadius: BorderRadius.circular(10.0) 119 | ), 120 | ), 121 | SizedBox(width: 10.0,), 122 | Text( 123 | 'Recommendation', 124 | style: TextStyle( 125 | fontSize: 18.0, 126 | fontWeight: FontWeight.w500, 127 | color: Color(getColorHexFromStr("#333333")), 128 | ), 129 | ), 130 | ], 131 | ), 132 | SizedBox(height: 20.0), 133 | Padding( 134 | padding: EdgeInsets.only(left: 13.0), 135 | child: Text( 136 | 'Has your life been living in the expectations of others?', 137 | style: TextStyle( 138 | fontSize: 18.0, 139 | fontWeight: FontWeight.w500, 140 | color: Color(getColorHexFromStr("#666666")), 141 | ), 142 | ), 143 | ), 144 | SizedBox(height: 40.0), 145 | Row( 146 | children: [ 147 | Container( 148 | width: 8.0, 149 | height: 30.0, 150 | decoration: BoxDecoration( 151 | color: Theme.of(context).primaryColor, 152 | borderRadius: BorderRadius.circular(10.0) 153 | ), 154 | ), 155 | SizedBox(width: 10.0,), 156 | Text( 157 | 'Audio Introduction', 158 | style: TextStyle( 159 | fontSize: 18.0, 160 | fontWeight: FontWeight.w500, 161 | color: Color(getColorHexFromStr("#333333")), 162 | ), 163 | ), 164 | ], 165 | ), 166 | SizedBox(height: 20.0), 167 | Padding( 168 | padding: EdgeInsets.only(left: 13.0), 169 | child: Text( 170 | 'In your feelings, work, or family, do you have the experience of "do not want to do it, but still do it?" Has anyone been living in the expectations of others? \n\n\n' + 171 | 'In your feelings, work, or family, do you have the experience of "do not want to do it, but still do it?" Has anyone been living in the expectations of others? \n\n\n' + 172 | 'In your feelings, work, or family, do you have the experience of "do not want to do it, but still do it?" Has anyone been living in the expectations of others?', 173 | style: TextStyle( 174 | fontSize: 18.0, 175 | fontWeight: FontWeight.w500, 176 | color: Color(getColorHexFromStr("#666666")), 177 | ), 178 | ), 179 | ), 180 | SizedBox(height: 40.0), 181 | Row( 182 | children: [ 183 | Container( 184 | width: 8.0, 185 | height: 30.0, 186 | decoration: BoxDecoration( 187 | color: Theme.of(context).primaryColor, 188 | borderRadius: BorderRadius.circular(10.0) 189 | ), 190 | ), 191 | SizedBox(width: 10.0,), 192 | Text( 193 | 'Book information', 194 | style: TextStyle( 195 | fontSize: 18.0, 196 | fontWeight: FontWeight.w500, 197 | color: Color(getColorHexFromStr("#333333")), 198 | ), 199 | ), 200 | ], 201 | ), 202 | SizedBox(height: 20.0), 203 | Padding( 204 | padding: EdgeInsets.only(left: 13.0), 205 | child: Text( 206 | 'In your feelings, work, or family, do you have the experience of "do not want to do it, but still do it?" Has anyone been living in the expectations of others?', 207 | style: TextStyle( 208 | fontSize: 18.0, 209 | fontWeight: FontWeight.w500, 210 | color: Color(getColorHexFromStr("#666666")), 211 | ), 212 | ), 213 | ), 214 | ], 215 | ) 216 | ), 217 | ] 218 | ), 219 | floatingActionButton: Row( 220 | mainAxisAlignment: MainAxisAlignment.center, 221 | crossAxisAlignment: CrossAxisAlignment.center, 222 | children: [ 223 | SizedBox(width: 10.0,), 224 | RaisedButton( 225 | elevation: 12.0, 226 | onPressed: () {}, 227 | textColor: Colors.grey[700], 228 | padding: const EdgeInsets.all(0.0), 229 | child: Container( 230 | decoration: BoxDecoration( 231 | borderRadius: BorderRadius.circular(30.0), 232 | color: Colors.white 233 | ), 234 | padding: const EdgeInsets.all(16.0), 235 | child: Row( 236 | children: [ 237 | Icon(Icons.message, size: 18,), 238 | SizedBox(width: 10.0,), 239 | Text( 240 | '1.9k', 241 | style: TextStyle(fontSize: 16, fontWeight: FontWeight.w600) 242 | ), 243 | ], 244 | ) 245 | ), 246 | shape: new RoundedRectangleBorder(borderRadius: new BorderRadius.circular(50.0)) 247 | ), 248 | SizedBox(width: 10.0,), 249 | RaisedButton( 250 | elevation: 12.0, 251 | onPressed: () {}, 252 | textColor: Colors.grey[700], 253 | padding: const EdgeInsets.all(0.0), 254 | child: Container( 255 | decoration: BoxDecoration( 256 | borderRadius: BorderRadius.circular(30.0), 257 | color: Colors.white 258 | ), 259 | padding: const EdgeInsets.all(16.0), 260 | child: Row( 261 | children: [ 262 | Icon(Icons.thumb_up, color: Colors.orange[700], size: 18,), 263 | SizedBox(width: 10.0,), 264 | Text( 265 | '291k', 266 | style: TextStyle(fontSize: 16, fontWeight: FontWeight.w600) 267 | ), 268 | ], 269 | ) 270 | ), 271 | shape: new RoundedRectangleBorder(borderRadius: new BorderRadius.circular(50.0)) 272 | ), 273 | SizedBox(width: 10.0,), 274 | RaisedButton( 275 | elevation: 12.0, 276 | onPressed: () {}, 277 | textColor: Colors.grey[700], 278 | color: Colors.white, 279 | padding: const EdgeInsets.all(0.0), 280 | child: Container( 281 | decoration: BoxDecoration( 282 | borderRadius: BorderRadius.circular(30.0), 283 | color: Colors.white 284 | ), 285 | padding: const EdgeInsets.all(16.0), 286 | child: Row( 287 | children: [ 288 | Icon(Icons.share, size: 18,), 289 | ], 290 | ) 291 | ), 292 | shape: new RoundedRectangleBorder(borderRadius: new BorderRadius.circular(50.0)) 293 | ), 294 | ], 295 | ) 296 | ); 297 | } 298 | } -------------------------------------------------------------------------------- /lib/screens/recharge.dart: -------------------------------------------------------------------------------- 1 | import 'package:book_store/utils/color.dart'; 2 | import 'package:book_store/widgets/topBar.dart'; 3 | import 'package:flutter/material.dart'; 4 | 5 | 6 | class Recharge extends StatelessWidget { 7 | static const routeName = '/account/recharge'; 8 | 9 | @override 10 | Widget build(BuildContext context) { 11 | 12 | return Scaffold( 13 | backgroundColor: Color(getColorHexFromStr("#F8F8F8")), 14 | appBar: topBar("", Color(getColorHexFromStr("#F8F8F8")), context), 15 | body: ListView( 16 | children: [ 17 | Padding( 18 | padding: EdgeInsets.all(16.0), 19 | child: Column( 20 | crossAxisAlignment: CrossAxisAlignment.start, 21 | children: [ 22 | Text( 23 | 'Recharge', 24 | style: TextStyle( 25 | fontSize: 28.0 26 | ) 27 | ), 28 | SizedBox(height: 30.0,), 29 | Container( 30 | height: 64.0, 31 | decoration: BoxDecoration( 32 | border: Border.all( 33 | color: Colors.orange, 34 | width: 3.0, 35 | ), 36 | borderRadius: BorderRadius.circular(12.0), 37 | ), 38 | child: Material( 39 | elevation: 0.0, 40 | borderRadius: BorderRadius.circular(12.0), 41 | color: Color(getColorHexFromStr('#FFF0E6')), 42 | child: Padding( 43 | padding: const EdgeInsets.all(16.0), 44 | child: Row( 45 | mainAxisAlignment: MainAxisAlignment.spaceBetween, 46 | children: [ 47 | Row( 48 | children: [ 49 | Text('Month Card', style: TextStyle(fontSize: 20.0, color: Colors.orange),), 50 | SizedBox(width: 10.0,), 51 | Container( 52 | height: 30.0, 53 | decoration: BoxDecoration( 54 | border: Border.all( 55 | color: Colors.orange, 56 | width: 1.0, 57 | ), 58 | ), 59 | child: Padding( 60 | padding: const EdgeInsets.all(2.0), 61 | child: Center( 62 | child: Text( 63 | 'Off 5%', 64 | style: TextStyle( 65 | color: Colors.orange, 66 | ), 67 | ), 68 | ), 69 | ) 70 | ), 71 | ], 72 | ), 73 | Row( 74 | children: [ 75 | Text( 76 | '\$ 6', 77 | style: TextStyle( 78 | fontSize: 18.0, 79 | color: Colors.orange, 80 | ), 81 | ), 82 | ], 83 | ) , 84 | ], 85 | ), 86 | ), 87 | ), 88 | ), 89 | SizedBox(height: 20.0,), 90 | Container( 91 | height: 64.0, 92 | child: Material( 93 | elevation: 0.0, 94 | borderRadius: BorderRadius.circular(12.0), 95 | color: Colors.white, 96 | child: Padding( 97 | padding: const EdgeInsets.all(16.0), 98 | child: Row( 99 | mainAxisAlignment: MainAxisAlignment.spaceBetween, 100 | children: [ 101 | Row( 102 | children: [ 103 | Text('Quarter Card', style: TextStyle(fontSize: 20.0, color: Color(getColorHexFromStr('#999999')))), 104 | SizedBox(width: 10.0,), 105 | Container( 106 | height: 30.0, 107 | decoration: BoxDecoration( 108 | border: Border.all( 109 | color: Color(getColorHexFromStr('#999999')), 110 | width: 1.0, 111 | ), 112 | ), 113 | child: Padding( 114 | padding: const EdgeInsets.all(2.0), 115 | child: Center( 116 | child: Text( 117 | 'Off 10%', 118 | style: TextStyle( 119 | color: Color(getColorHexFromStr('#999999')), 120 | ), 121 | ), 122 | ), 123 | ) 124 | ), 125 | ], 126 | ), 127 | Row( 128 | children: [ 129 | Text( 130 | '\$ 16', 131 | style: TextStyle( 132 | fontSize: 18.0, 133 | color: Color(getColorHexFromStr('#999999')) 134 | ), 135 | ), 136 | ], 137 | ) , 138 | ], 139 | ), 140 | ), 141 | ), 142 | ), 143 | SizedBox(height: 20.0,), 144 | Container( 145 | height: 64.0, 146 | child: Material( 147 | elevation: 0.0, 148 | borderRadius: BorderRadius.circular(12.0), 149 | color: Colors.white, 150 | child: Padding( 151 | padding: const EdgeInsets.all(16.0), 152 | child: Row( 153 | mainAxisAlignment: MainAxisAlignment.spaceBetween, 154 | children: [ 155 | Row( 156 | children: [ 157 | Text('Year Card', style: TextStyle(fontSize: 20.0, color: Color(getColorHexFromStr('#999999')))), 158 | SizedBox(width: 10.0,), 159 | Container( 160 | height: 30.0, 161 | decoration: BoxDecoration( 162 | border: Border.all( 163 | color: Color(getColorHexFromStr('#999999')), 164 | width: 1.0, 165 | ), 166 | ), 167 | child: Padding( 168 | padding: const EdgeInsets.all(2.0), 169 | child: Center( 170 | child: Text( 171 | 'Off 30%', 172 | style: TextStyle( 173 | color: Color(getColorHexFromStr('#999999')), 174 | ), 175 | ), 176 | ), 177 | ) 178 | ), 179 | ], 180 | ), 181 | Row( 182 | children: [ 183 | Text( 184 | '\$ 42', 185 | style: TextStyle( 186 | fontSize: 18.0, 187 | color: Color(getColorHexFromStr('#999999')) 188 | ), 189 | ), 190 | ], 191 | ) , 192 | ], 193 | ), 194 | ), 195 | ), 196 | ), 197 | SizedBox(height: 30.0,), 198 | Text( 199 | 'Interests', 200 | style: TextStyle( 201 | fontSize: 28.0 202 | ) 203 | ), 204 | ], 205 | ) 206 | ), 207 | Container( 208 | width: MediaQuery.of(context).size.width, 209 | child: Padding( 210 | padding: EdgeInsets.all(16.0), 211 | child: Column( 212 | children: [ 213 | Text( 214 | 'Every day as low as 1 yuan, all the books are good', 215 | textAlign: TextAlign.left, 216 | style: TextStyle( 217 | color: Color(getColorHexFromStr('#333333')), 218 | fontSize: 22.0 219 | ) 220 | ), 221 | SizedBox(height: 10.0,), 222 | Text( 223 | 'During the membership period, all regular listening products are listened to. Updated daily, one book a day, 365 books a year.', 224 | ), 225 | ], 226 | ), 227 | ), 228 | ), 229 | Container( 230 | width: MediaQuery.of(context).size.width, 231 | child: Padding( 232 | padding: EdgeInsets.all(16.0), 233 | child: Column( 234 | children: [ 235 | Text( 236 | 'Experts master for hundreds of hours to read for you', 237 | textAlign: TextAlign.left, 238 | style: TextStyle( 239 | color: Color(getColorHexFromStr('#333333')), 240 | fontSize: 22.0 241 | ) 242 | ), 243 | SizedBox(height: 10.0,), 244 | Text( 245 | 'During the membership period, all regular listening products are listened to. Updated daily, one book a day, 365 books a year.', 246 | style: TextStyle( color: Color(getColorHexFromStr("#FF974D"))), 247 | ), 248 | ], 249 | ), 250 | ), 251 | ) 252 | ] 253 | ), 254 | bottomNavigationBar: Container( 255 | padding: EdgeInsets.only(bottom: 20.0), 256 | color: Colors.white, 257 | child: Padding( 258 | padding: EdgeInsets.all(16.0), 259 | child: Row( 260 | mainAxisAlignment: MainAxisAlignment.spaceBetween, 261 | children: [ 262 | Text('Month Card. \$ 6.0', style: TextStyle(fontSize: 20.0, color: Colors.orange),), 263 | Container( 264 | child: RaisedButton( 265 | onPressed: () {}, 266 | textColor: Colors.white, 267 | padding: const EdgeInsets.all(0.0), 268 | child: Container( 269 | decoration: BoxDecoration( 270 | borderRadius: BorderRadius.circular(30.0), 271 | gradient: LinearGradient( 272 | begin: Alignment.topCenter, 273 | end: Alignment.bottomCenter, 274 | colors: [Color(getColorHexFromStr("#FF974D")), Color(getColorHexFromStr("#FF6A02"))], 275 | ), 276 | ), 277 | padding: const EdgeInsets.only(left: 60.0, right: 60.0, top: 12.0, bottom: 12.0), 278 | child: const Text( 279 | 'Pay', 280 | style: TextStyle(fontSize: 20, fontWeight: FontWeight.w600) 281 | ), 282 | ), 283 | shape: new RoundedRectangleBorder(borderRadius: new BorderRadius.circular(30.0)) 284 | ), 285 | ), 286 | ], 287 | ), 288 | ), 289 | ), 290 | ); 291 | } 292 | } -------------------------------------------------------------------------------- /lib/screens/account.dart: -------------------------------------------------------------------------------- 1 | import 'package:book_store/screens/recharge.dart'; 2 | import 'package:book_store/utils/color.dart'; 3 | import 'package:book_store/widgets/bottonBar.dart'; 4 | import 'package:book_store/widgets/topBar.dart'; 5 | import 'package:flutter/material.dart'; 6 | 7 | 8 | class Account extends StatelessWidget { 9 | static const routeName = '/account'; 10 | 11 | @override 12 | Widget build(BuildContext context) { 13 | 14 | return Scaffold( 15 | backgroundColor: Color(getColorHexFromStr("#F8F8F8")), 16 | appBar: topBar("", Color(getColorHexFromStr("#F8F8F8")), context), 17 | body: ListView( 18 | children: [ 19 | Container( 20 | width: MediaQuery.of(context).size.width, 21 | color: Color(getColorHexFromStr("#F8F8F8")), 22 | child: Column( 23 | crossAxisAlignment: CrossAxisAlignment.center, 24 | children: [ 25 | Container( 26 | width: 80.0, 27 | height: 80.0, 28 | decoration: BoxDecoration( 29 | image: DecorationImage( 30 | fit: BoxFit.cover, 31 | image: AssetImage("assets/account.png"), 32 | ), 33 | ), 34 | ), 35 | SizedBox(height: 20.0), 36 | Text( 37 | "Manu Codes", 38 | style: TextStyle( 39 | fontSize: 24.0, 40 | color: Color(getColorHexFromStr("#333333")), 41 | fontWeight: FontWeight.w600 42 | ), 43 | ), 44 | SizedBox(height: 40.0), 45 | ], 46 | ), 47 | ), 48 | Padding( 49 | padding: EdgeInsets.all(16.0), 50 | child: Column( 51 | mainAxisAlignment: MainAxisAlignment.center, 52 | children: [ 53 | Row( 54 | mainAxisAlignment: MainAxisAlignment.center, 55 | children: [ 56 | Container( 57 | height: 82.0, 58 | child: Material( 59 | elevation: 10.0, 60 | borderRadius: BorderRadius.circular(10.0), 61 | color: Color(getColorHexFromStr('#FF6B03')), 62 | child: Padding( 63 | padding: EdgeInsets.all(16.0), 64 | child: Column( 65 | mainAxisAlignment: MainAxisAlignment.center, 66 | children: [ 67 | Text( 68 | 'Type', 69 | style: TextStyle( 70 | color: Colors.white, 71 | fontSize: 13.0 72 | ), 73 | ), 74 | SizedBox(height: 10.0,), 75 | Text( 76 | 'Ordinary', 77 | style: TextStyle( 78 | fontSize: 18.0, 79 | color: Colors.white, 80 | fontWeight: FontWeight.w400 81 | ), 82 | ) 83 | ], 84 | ), 85 | ), 86 | ), 87 | ), 88 | SizedBox(width: 20.0), 89 | Container( 90 | height: 82.0, 91 | child: Material( 92 | elevation: 10.0, 93 | borderRadius: BorderRadius.circular(10.0), 94 | color: Color(getColorHexFromStr('#1093ED')), 95 | child: Padding( 96 | padding: EdgeInsets.all(16.0), 97 | child: Column( 98 | mainAxisAlignment: MainAxisAlignment.center, 99 | children: [ 100 | Text( 101 | 'Type', 102 | style: TextStyle( 103 | fontSize: 13.0, 104 | color: Colors.white, 105 | ), 106 | ), 107 | SizedBox(height: 10.0,), 108 | Text( 109 | 'Ordinary', 110 | style: TextStyle( 111 | fontSize: 18.0, 112 | color: Colors.white, 113 | fontWeight: FontWeight.w600 114 | ), 115 | ) 116 | ], 117 | ), 118 | ), 119 | ), 120 | ), 121 | SizedBox(width: 20.0), 122 | Container( 123 | height: 82.0, 124 | child: Material( 125 | elevation: 10.0, 126 | borderRadius: BorderRadius.circular(10.0), 127 | color: Color(getColorHexFromStr('#EEC60A')), 128 | child: Padding( 129 | padding: EdgeInsets.all(16.0), 130 | child: Column( 131 | mainAxisAlignment: MainAxisAlignment.center, 132 | children: [ 133 | Text( 134 | 'Type', 135 | style: TextStyle( 136 | color: Colors.white, 137 | fontSize: 13.0 138 | ), 139 | ), 140 | SizedBox(height: 10.0,), 141 | Text( 142 | 'Ordinary', 143 | style: TextStyle( 144 | fontSize: 18.0, 145 | color: Colors.white, 146 | fontWeight: FontWeight.w600 147 | ), 148 | ) 149 | ], 150 | ), 151 | ), 152 | ), 153 | ), 154 | ],), 155 | SizedBox(height: 60.0,), 156 | GestureDetector( 157 | onTap: (){ 158 | Navigator.pushNamed( 159 | context, 160 | Recharge.routeName 161 | ); 162 | }, 163 | child: Container( 164 | height: 64.0, 165 | child: Material( 166 | elevation: 0.0, 167 | borderRadius: BorderRadius.circular(12.0), 168 | color: Colors.white, 169 | child: Padding( 170 | padding: const EdgeInsets.all(16.0), 171 | child: Row( 172 | mainAxisAlignment: MainAxisAlignment.spaceBetween, 173 | children: [ 174 | Container( 175 | width: 20.0, 176 | height: 20.0, 177 | decoration: BoxDecoration( 178 | borderRadius: BorderRadius.circular(30.0), 179 | color: Colors.orange, 180 | ), 181 | child: Icon( 182 | Icons.credit_card, 183 | size: 10.0, 184 | color: Colors.white, 185 | ), 186 | ), 187 | SizedBox(width: 10.0,), 188 | Text('Recharge', style: TextStyle(fontSize: 20.0),), 189 | SizedBox(width: 70.0,), 190 | Image.asset('assets/paypal.png'), 191 | SizedBox(width: 10.0,), 192 | Image.asset('assets/master.png'), 193 | SizedBox(width: 10.0,), 194 | Icon(Icons.keyboard_arrow_right), 195 | ], 196 | ), 197 | ), 198 | ), 199 | ), 200 | ), 201 | SizedBox(height: 10.0,), 202 | Container( 203 | height: 64.0, 204 | child: Material( 205 | elevation: 0.0, 206 | borderRadius: BorderRadius.circular(12.0), 207 | color: Colors.white, 208 | child: Padding( 209 | padding: const EdgeInsets.all(16.0), 210 | child: Row( 211 | mainAxisAlignment: MainAxisAlignment.spaceBetween, 212 | children: [ 213 | Row( 214 | children: [ 215 | Container( 216 | width: 20.0, 217 | height: 20.0, 218 | decoration: BoxDecoration( 219 | borderRadius: BorderRadius.circular(30.0), 220 | color: Colors.purple, 221 | ), 222 | child: Icon( 223 | Icons.card_travel, 224 | size: 10.0, 225 | color: Colors.white, 226 | ), 227 | ), 228 | SizedBox(width: 13.0,), 229 | Text('Purchase', style: TextStyle(fontSize: 20.0),), 230 | ], 231 | ) , 232 | Row( 233 | children: [ 234 | Icon(Icons.keyboard_arrow_right), 235 | ], 236 | ) , 237 | ], 238 | ), 239 | ), 240 | ), 241 | ), 242 | SizedBox(height: 10.0,), 243 | Container( 244 | height: 64.0, 245 | child: Material( 246 | elevation: 0.0, 247 | borderRadius: BorderRadius.circular(12.0), 248 | color: Colors.white, 249 | child: Padding( 250 | padding: const EdgeInsets.all(16.0), 251 | child: Row( 252 | mainAxisAlignment: MainAxisAlignment.spaceBetween, 253 | children: [ 254 | Row( 255 | children: [ 256 | Container( 257 | width: 20.0, 258 | height: 20.0, 259 | decoration: BoxDecoration( 260 | borderRadius: BorderRadius.circular(30.0), 261 | color: Colors.yellow, 262 | ), 263 | child: Icon( 264 | Icons.favorite, 265 | size: 10.0, 266 | color: Colors.white, 267 | ), 268 | ), 269 | SizedBox(width: 13.0,), 270 | Text('Favorite', style: TextStyle(fontSize: 20.0),), 271 | ], 272 | ) , 273 | Row( 274 | children: [ 275 | Icon(Icons.keyboard_arrow_right), 276 | ], 277 | ) , 278 | ], 279 | ), 280 | ), 281 | ), 282 | ), 283 | SizedBox(height: 10.0,), 284 | Container( 285 | height: 64.0, 286 | child: Material( 287 | elevation: 0.0, 288 | borderRadius: BorderRadius.circular(12.0), 289 | color: Colors.white, 290 | child: Padding( 291 | padding: const EdgeInsets.all(16.0), 292 | child: Row( 293 | mainAxisAlignment: MainAxisAlignment.spaceBetween, 294 | children: [ 295 | Row( 296 | children: [ 297 | Container( 298 | width: 20.0, 299 | height: 20.0, 300 | decoration: BoxDecoration( 301 | borderRadius: BorderRadius.circular(30.0), 302 | color: Colors.blue, 303 | ), 304 | child: Icon( 305 | Icons.info_outline, 306 | size: 10.0, 307 | color: Colors.white, 308 | ), 309 | ), 310 | SizedBox(width: 13.0,), 311 | Text('About', style: TextStyle(fontSize: 20.0),), 312 | ], 313 | ) , 314 | Row( 315 | children: [ 316 | Icon(Icons.keyboard_arrow_right), 317 | ], 318 | ) , 319 | ], 320 | ), 321 | ), 322 | ), 323 | ), 324 | SizedBox(height: 10.0,), 325 | Container( 326 | height: 64.0, 327 | child: Material( 328 | elevation: 0.0, 329 | borderRadius: BorderRadius.circular(12.0), 330 | color: Colors.white, 331 | child: Padding( 332 | padding: const EdgeInsets.all(16.0), 333 | child: Row( 334 | mainAxisAlignment: MainAxisAlignment.spaceBetween, 335 | children: [ 336 | Row( 337 | children: [ 338 | Container( 339 | width: 20.0, 340 | height: 20.0, 341 | decoration: BoxDecoration( 342 | borderRadius: BorderRadius.circular(30.0), 343 | color: Colors.blueGrey, 344 | ), 345 | child: Icon( 346 | Icons.settings, 347 | size: 10.0, 348 | color: Colors.white, 349 | ), 350 | ), 351 | SizedBox(width: 13.0,), 352 | Text('Settings', style: TextStyle(fontSize: 20.0),), 353 | ], 354 | ) , 355 | Row( 356 | children: [ 357 | Icon(Icons.keyboard_arrow_right), 358 | ], 359 | ) , 360 | ], 361 | ), 362 | ), 363 | ), 364 | ), 365 | ], 366 | ) 367 | ), 368 | ] 369 | ), 370 | bottomNavigationBar: bottomBar("account"), 371 | ); 372 | } 373 | } -------------------------------------------------------------------------------- /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 | 3B80C3941E831B6300D905FE /* App.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3B80C3931E831B6300D905FE /* App.framework */; }; 13 | 3B80C3951E831B6300D905FE /* App.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 3B80C3931E831B6300D905FE /* App.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 14 | 9705A1C61CF904A100538489 /* Flutter.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9740EEBA1CF902C7004384FC /* Flutter.framework */; }; 15 | 9705A1C71CF904A300538489 /* Flutter.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 9740EEBA1CF902C7004384FC /* Flutter.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 16 | 9740EEB41CF90195004384FC /* Debug.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 9740EEB21CF90195004384FC /* Debug.xcconfig */; }; 17 | 978B8F6F1D3862AE00F588F7 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 7AFFD8EE1D35381100E5BB4D /* AppDelegate.m */; }; 18 | 97C146F31CF9000F007C117D /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 97C146F21CF9000F007C117D /* main.m */; }; 19 | 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; }; 20 | 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; }; 21 | 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; }; 22 | /* End PBXBuildFile section */ 23 | 24 | /* Begin PBXCopyFilesBuildPhase section */ 25 | 9705A1C41CF9048500538489 /* Embed Frameworks */ = { 26 | isa = PBXCopyFilesBuildPhase; 27 | buildActionMask = 2147483647; 28 | dstPath = ""; 29 | dstSubfolderSpec = 10; 30 | files = ( 31 | 3B80C3951E831B6300D905FE /* App.framework in Embed Frameworks */, 32 | 9705A1C71CF904A300538489 /* Flutter.framework in Embed Frameworks */, 33 | ); 34 | name = "Embed Frameworks"; 35 | runOnlyForDeploymentPostprocessing = 0; 36 | }; 37 | /* End PBXCopyFilesBuildPhase section */ 38 | 39 | /* Begin PBXFileReference section */ 40 | 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; }; 41 | 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; }; 42 | 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; 43 | 3B80C3931E831B6300D905FE /* App.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = App.framework; path = Flutter/App.framework; sourceTree = ""; }; 44 | 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; }; 45 | 7AFFD8ED1D35381100E5BB4D /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; 46 | 7AFFD8EE1D35381100E5BB4D /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; 47 | 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; }; 48 | 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; }; 49 | 9740EEBA1CF902C7004384FC /* Flutter.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Flutter.framework; path = Flutter/Flutter.framework; sourceTree = ""; }; 50 | 97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; }; 51 | 97C146F21CF9000F007C117D /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; 52 | 97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; 53 | 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 54 | 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; 55 | 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 56 | /* End PBXFileReference section */ 57 | 58 | /* Begin PBXFrameworksBuildPhase section */ 59 | 97C146EB1CF9000F007C117D /* Frameworks */ = { 60 | isa = PBXFrameworksBuildPhase; 61 | buildActionMask = 2147483647; 62 | files = ( 63 | 9705A1C61CF904A100538489 /* Flutter.framework in Frameworks */, 64 | 3B80C3941E831B6300D905FE /* App.framework in Frameworks */, 65 | ); 66 | runOnlyForDeploymentPostprocessing = 0; 67 | }; 68 | /* End PBXFrameworksBuildPhase section */ 69 | 70 | /* Begin PBXGroup section */ 71 | 9740EEB11CF90186004384FC /* Flutter */ = { 72 | isa = PBXGroup; 73 | children = ( 74 | 3B80C3931E831B6300D905FE /* App.framework */, 75 | 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */, 76 | 9740EEBA1CF902C7004384FC /* Flutter.framework */, 77 | 9740EEB21CF90195004384FC /* Debug.xcconfig */, 78 | 7AFA3C8E1D35360C0083082E /* Release.xcconfig */, 79 | 9740EEB31CF90195004384FC /* Generated.xcconfig */, 80 | ); 81 | name = Flutter; 82 | sourceTree = ""; 83 | }; 84 | 97C146E51CF9000F007C117D = { 85 | isa = PBXGroup; 86 | children = ( 87 | 9740EEB11CF90186004384FC /* Flutter */, 88 | 97C146F01CF9000F007C117D /* Runner */, 89 | 97C146EF1CF9000F007C117D /* Products */, 90 | CF3B75C9A7D2FA2A4C99F110 /* Frameworks */, 91 | ); 92 | sourceTree = ""; 93 | }; 94 | 97C146EF1CF9000F007C117D /* Products */ = { 95 | isa = PBXGroup; 96 | children = ( 97 | 97C146EE1CF9000F007C117D /* Runner.app */, 98 | ); 99 | name = Products; 100 | sourceTree = ""; 101 | }; 102 | 97C146F01CF9000F007C117D /* Runner */ = { 103 | isa = PBXGroup; 104 | children = ( 105 | 7AFFD8ED1D35381100E5BB4D /* AppDelegate.h */, 106 | 7AFFD8EE1D35381100E5BB4D /* AppDelegate.m */, 107 | 97C146FA1CF9000F007C117D /* Main.storyboard */, 108 | 97C146FD1CF9000F007C117D /* Assets.xcassets */, 109 | 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */, 110 | 97C147021CF9000F007C117D /* Info.plist */, 111 | 97C146F11CF9000F007C117D /* Supporting Files */, 112 | 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */, 113 | 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */, 114 | ); 115 | path = Runner; 116 | sourceTree = ""; 117 | }; 118 | 97C146F11CF9000F007C117D /* Supporting Files */ = { 119 | isa = PBXGroup; 120 | children = ( 121 | 97C146F21CF9000F007C117D /* main.m */, 122 | ); 123 | name = "Supporting Files"; 124 | sourceTree = ""; 125 | }; 126 | /* End PBXGroup section */ 127 | 128 | /* Begin PBXNativeTarget section */ 129 | 97C146ED1CF9000F007C117D /* Runner */ = { 130 | isa = PBXNativeTarget; 131 | buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; 132 | buildPhases = ( 133 | 9740EEB61CF901F6004384FC /* Run Script */, 134 | 97C146EA1CF9000F007C117D /* Sources */, 135 | 97C146EB1CF9000F007C117D /* Frameworks */, 136 | 97C146EC1CF9000F007C117D /* Resources */, 137 | 9705A1C41CF9048500538489 /* Embed Frameworks */, 138 | 3B06AD1E1E4923F5004D2608 /* Thin Binary */, 139 | ); 140 | buildRules = ( 141 | ); 142 | dependencies = ( 143 | ); 144 | name = Runner; 145 | productName = Runner; 146 | productReference = 97C146EE1CF9000F007C117D /* Runner.app */; 147 | productType = "com.apple.product-type.application"; 148 | }; 149 | /* End PBXNativeTarget section */ 150 | 151 | /* Begin PBXProject section */ 152 | 97C146E61CF9000F007C117D /* Project object */ = { 153 | isa = PBXProject; 154 | attributes = { 155 | LastUpgradeCheck = 0910; 156 | ORGANIZATIONNAME = "The Chromium Authors"; 157 | TargetAttributes = { 158 | 97C146ED1CF9000F007C117D = { 159 | CreatedOnToolsVersion = 7.3.1; 160 | }; 161 | }; 162 | }; 163 | buildConfigurationList = 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */; 164 | compatibilityVersion = "Xcode 3.2"; 165 | developmentRegion = English; 166 | hasScannedForEncodings = 0; 167 | knownRegions = ( 168 | en, 169 | Base, 170 | ); 171 | mainGroup = 97C146E51CF9000F007C117D; 172 | productRefGroup = 97C146EF1CF9000F007C117D /* Products */; 173 | projectDirPath = ""; 174 | projectRoot = ""; 175 | targets = ( 176 | 97C146ED1CF9000F007C117D /* Runner */, 177 | ); 178 | }; 179 | /* End PBXProject section */ 180 | 181 | /* Begin PBXResourcesBuildPhase section */ 182 | 97C146EC1CF9000F007C117D /* Resources */ = { 183 | isa = PBXResourcesBuildPhase; 184 | buildActionMask = 2147483647; 185 | files = ( 186 | 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */, 187 | 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */, 188 | 9740EEB41CF90195004384FC /* Debug.xcconfig in Resources */, 189 | 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */, 190 | 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */, 191 | ); 192 | runOnlyForDeploymentPostprocessing = 0; 193 | }; 194 | /* End PBXResourcesBuildPhase section */ 195 | 196 | /* Begin PBXShellScriptBuildPhase section */ 197 | 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { 198 | isa = PBXShellScriptBuildPhase; 199 | buildActionMask = 2147483647; 200 | files = ( 201 | ); 202 | inputPaths = ( 203 | ); 204 | name = "Thin Binary"; 205 | outputPaths = ( 206 | ); 207 | runOnlyForDeploymentPostprocessing = 0; 208 | shellPath = /bin/sh; 209 | shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" thin"; 210 | }; 211 | 9740EEB61CF901F6004384FC /* Run Script */ = { 212 | isa = PBXShellScriptBuildPhase; 213 | buildActionMask = 2147483647; 214 | files = ( 215 | ); 216 | inputPaths = ( 217 | ); 218 | name = "Run Script"; 219 | outputPaths = ( 220 | ); 221 | runOnlyForDeploymentPostprocessing = 0; 222 | shellPath = /bin/sh; 223 | shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build"; 224 | }; 225 | /* End PBXShellScriptBuildPhase section */ 226 | 227 | /* Begin PBXSourcesBuildPhase section */ 228 | 97C146EA1CF9000F007C117D /* Sources */ = { 229 | isa = PBXSourcesBuildPhase; 230 | buildActionMask = 2147483647; 231 | files = ( 232 | 978B8F6F1D3862AE00F588F7 /* AppDelegate.m in Sources */, 233 | 97C146F31CF9000F007C117D /* main.m in Sources */, 234 | 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */, 235 | ); 236 | runOnlyForDeploymentPostprocessing = 0; 237 | }; 238 | /* End PBXSourcesBuildPhase section */ 239 | 240 | /* Begin PBXVariantGroup section */ 241 | 97C146FA1CF9000F007C117D /* Main.storyboard */ = { 242 | isa = PBXVariantGroup; 243 | children = ( 244 | 97C146FB1CF9000F007C117D /* Base */, 245 | ); 246 | name = Main.storyboard; 247 | sourceTree = ""; 248 | }; 249 | 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */ = { 250 | isa = PBXVariantGroup; 251 | children = ( 252 | 97C147001CF9000F007C117D /* Base */, 253 | ); 254 | name = LaunchScreen.storyboard; 255 | sourceTree = ""; 256 | }; 257 | /* End PBXVariantGroup section */ 258 | 259 | /* Begin XCBuildConfiguration section */ 260 | 249021D3217E4FDB00AE95B9 /* Profile */ = { 261 | isa = XCBuildConfiguration; 262 | baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; 263 | buildSettings = { 264 | ALWAYS_SEARCH_USER_PATHS = NO; 265 | CLANG_ANALYZER_NONNULL = YES; 266 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 267 | CLANG_CXX_LIBRARY = "libc++"; 268 | CLANG_ENABLE_MODULES = YES; 269 | CLANG_ENABLE_OBJC_ARC = YES; 270 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 271 | CLANG_WARN_BOOL_CONVERSION = YES; 272 | CLANG_WARN_COMMA = YES; 273 | CLANG_WARN_CONSTANT_CONVERSION = YES; 274 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 275 | CLANG_WARN_EMPTY_BODY = YES; 276 | CLANG_WARN_ENUM_CONVERSION = YES; 277 | CLANG_WARN_INFINITE_RECURSION = YES; 278 | CLANG_WARN_INT_CONVERSION = YES; 279 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 280 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 281 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 282 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 283 | CLANG_WARN_STRICT_PROTOTYPES = YES; 284 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 285 | CLANG_WARN_UNREACHABLE_CODE = YES; 286 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 287 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 288 | COPY_PHASE_STRIP = NO; 289 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 290 | ENABLE_NS_ASSERTIONS = NO; 291 | ENABLE_STRICT_OBJC_MSGSEND = YES; 292 | GCC_C_LANGUAGE_STANDARD = gnu99; 293 | GCC_NO_COMMON_BLOCKS = YES; 294 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 295 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 296 | GCC_WARN_UNDECLARED_SELECTOR = YES; 297 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 298 | GCC_WARN_UNUSED_FUNCTION = YES; 299 | GCC_WARN_UNUSED_VARIABLE = YES; 300 | IPHONEOS_DEPLOYMENT_TARGET = 8.0; 301 | MTL_ENABLE_DEBUG_INFO = NO; 302 | SDKROOT = iphoneos; 303 | TARGETED_DEVICE_FAMILY = "1,2"; 304 | VALIDATE_PRODUCT = YES; 305 | }; 306 | name = Profile; 307 | }; 308 | 249021D4217E4FDB00AE95B9 /* Profile */ = { 309 | isa = XCBuildConfiguration; 310 | baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; 311 | buildSettings = { 312 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 313 | CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; 314 | DEVELOPMENT_TEAM = S8QB4VV633; 315 | ENABLE_BITCODE = NO; 316 | FRAMEWORK_SEARCH_PATHS = ( 317 | "$(inherited)", 318 | "$(PROJECT_DIR)/Flutter", 319 | ); 320 | INFOPLIST_FILE = Runner/Info.plist; 321 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; 322 | LIBRARY_SEARCH_PATHS = ( 323 | "$(inherited)", 324 | "$(PROJECT_DIR)/Flutter", 325 | ); 326 | PRODUCT_BUNDLE_IDENTIFIER = com.example.bookStore; 327 | PRODUCT_NAME = "$(TARGET_NAME)"; 328 | VERSIONING_SYSTEM = "apple-generic"; 329 | }; 330 | name = Profile; 331 | }; 332 | 97C147031CF9000F007C117D /* Debug */ = { 333 | isa = XCBuildConfiguration; 334 | baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */; 335 | buildSettings = { 336 | ALWAYS_SEARCH_USER_PATHS = NO; 337 | CLANG_ANALYZER_NONNULL = YES; 338 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 339 | CLANG_CXX_LIBRARY = "libc++"; 340 | CLANG_ENABLE_MODULES = YES; 341 | CLANG_ENABLE_OBJC_ARC = YES; 342 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 343 | CLANG_WARN_BOOL_CONVERSION = YES; 344 | CLANG_WARN_COMMA = YES; 345 | CLANG_WARN_CONSTANT_CONVERSION = YES; 346 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 347 | CLANG_WARN_EMPTY_BODY = YES; 348 | CLANG_WARN_ENUM_CONVERSION = YES; 349 | CLANG_WARN_INFINITE_RECURSION = YES; 350 | CLANG_WARN_INT_CONVERSION = YES; 351 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 352 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 353 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 354 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 355 | CLANG_WARN_STRICT_PROTOTYPES = YES; 356 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 357 | CLANG_WARN_UNREACHABLE_CODE = YES; 358 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 359 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 360 | COPY_PHASE_STRIP = NO; 361 | DEBUG_INFORMATION_FORMAT = dwarf; 362 | ENABLE_STRICT_OBJC_MSGSEND = YES; 363 | ENABLE_TESTABILITY = YES; 364 | GCC_C_LANGUAGE_STANDARD = gnu99; 365 | GCC_DYNAMIC_NO_PIC = NO; 366 | GCC_NO_COMMON_BLOCKS = YES; 367 | GCC_OPTIMIZATION_LEVEL = 0; 368 | GCC_PREPROCESSOR_DEFINITIONS = ( 369 | "DEBUG=1", 370 | "$(inherited)", 371 | ); 372 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 373 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 374 | GCC_WARN_UNDECLARED_SELECTOR = YES; 375 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 376 | GCC_WARN_UNUSED_FUNCTION = YES; 377 | GCC_WARN_UNUSED_VARIABLE = YES; 378 | IPHONEOS_DEPLOYMENT_TARGET = 8.0; 379 | MTL_ENABLE_DEBUG_INFO = YES; 380 | ONLY_ACTIVE_ARCH = YES; 381 | SDKROOT = iphoneos; 382 | TARGETED_DEVICE_FAMILY = "1,2"; 383 | }; 384 | name = Debug; 385 | }; 386 | 97C147041CF9000F007C117D /* Release */ = { 387 | isa = XCBuildConfiguration; 388 | baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; 389 | buildSettings = { 390 | ALWAYS_SEARCH_USER_PATHS = NO; 391 | CLANG_ANALYZER_NONNULL = YES; 392 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 393 | CLANG_CXX_LIBRARY = "libc++"; 394 | CLANG_ENABLE_MODULES = YES; 395 | CLANG_ENABLE_OBJC_ARC = YES; 396 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 397 | CLANG_WARN_BOOL_CONVERSION = YES; 398 | CLANG_WARN_COMMA = YES; 399 | CLANG_WARN_CONSTANT_CONVERSION = YES; 400 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 401 | CLANG_WARN_EMPTY_BODY = YES; 402 | CLANG_WARN_ENUM_CONVERSION = YES; 403 | CLANG_WARN_INFINITE_RECURSION = YES; 404 | CLANG_WARN_INT_CONVERSION = YES; 405 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 406 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 407 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 408 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 409 | CLANG_WARN_STRICT_PROTOTYPES = YES; 410 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 411 | CLANG_WARN_UNREACHABLE_CODE = YES; 412 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 413 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 414 | COPY_PHASE_STRIP = NO; 415 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 416 | ENABLE_NS_ASSERTIONS = NO; 417 | ENABLE_STRICT_OBJC_MSGSEND = YES; 418 | GCC_C_LANGUAGE_STANDARD = gnu99; 419 | GCC_NO_COMMON_BLOCKS = YES; 420 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 421 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 422 | GCC_WARN_UNDECLARED_SELECTOR = YES; 423 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 424 | GCC_WARN_UNUSED_FUNCTION = YES; 425 | GCC_WARN_UNUSED_VARIABLE = YES; 426 | IPHONEOS_DEPLOYMENT_TARGET = 8.0; 427 | MTL_ENABLE_DEBUG_INFO = NO; 428 | SDKROOT = iphoneos; 429 | TARGETED_DEVICE_FAMILY = "1,2"; 430 | VALIDATE_PRODUCT = YES; 431 | }; 432 | name = Release; 433 | }; 434 | 97C147061CF9000F007C117D /* Debug */ = { 435 | isa = XCBuildConfiguration; 436 | baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */; 437 | buildSettings = { 438 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 439 | CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; 440 | ENABLE_BITCODE = NO; 441 | FRAMEWORK_SEARCH_PATHS = ( 442 | "$(inherited)", 443 | "$(PROJECT_DIR)/Flutter", 444 | ); 445 | INFOPLIST_FILE = Runner/Info.plist; 446 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; 447 | LIBRARY_SEARCH_PATHS = ( 448 | "$(inherited)", 449 | "$(PROJECT_DIR)/Flutter", 450 | ); 451 | PRODUCT_BUNDLE_IDENTIFIER = com.example.bookStore; 452 | PRODUCT_NAME = "$(TARGET_NAME)"; 453 | VERSIONING_SYSTEM = "apple-generic"; 454 | }; 455 | name = Debug; 456 | }; 457 | 97C147071CF9000F007C117D /* Release */ = { 458 | isa = XCBuildConfiguration; 459 | baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; 460 | buildSettings = { 461 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 462 | CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; 463 | ENABLE_BITCODE = NO; 464 | FRAMEWORK_SEARCH_PATHS = ( 465 | "$(inherited)", 466 | "$(PROJECT_DIR)/Flutter", 467 | ); 468 | INFOPLIST_FILE = Runner/Info.plist; 469 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; 470 | LIBRARY_SEARCH_PATHS = ( 471 | "$(inherited)", 472 | "$(PROJECT_DIR)/Flutter", 473 | ); 474 | PRODUCT_BUNDLE_IDENTIFIER = com.example.bookStore; 475 | PRODUCT_NAME = "$(TARGET_NAME)"; 476 | VERSIONING_SYSTEM = "apple-generic"; 477 | }; 478 | name = Release; 479 | }; 480 | /* End XCBuildConfiguration section */ 481 | 482 | /* Begin XCConfigurationList section */ 483 | 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */ = { 484 | isa = XCConfigurationList; 485 | buildConfigurations = ( 486 | 97C147031CF9000F007C117D /* Debug */, 487 | 97C147041CF9000F007C117D /* Release */, 488 | 249021D3217E4FDB00AE95B9 /* Profile */, 489 | ); 490 | defaultConfigurationIsVisible = 0; 491 | defaultConfigurationName = Release; 492 | }; 493 | 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */ = { 494 | isa = XCConfigurationList; 495 | buildConfigurations = ( 496 | 97C147061CF9000F007C117D /* Debug */, 497 | 97C147071CF9000F007C117D /* Release */, 498 | 249021D4217E4FDB00AE95B9 /* Profile */, 499 | ); 500 | defaultConfigurationIsVisible = 0; 501 | defaultConfigurationName = Release; 502 | }; 503 | /* End XCConfigurationList section */ 504 | }; 505 | rootObject = 97C146E61CF9000F007C117D /* Project object */; 506 | } 507 | --------------------------------------------------------------------------------