├── .gitignore
├── App.js
├── README.md
├── __tests__
└── App-test.js
├── android
├── app
│ ├── BUCK
│ ├── build.gradle
│ ├── build_defs.bzl
│ ├── debug.keystore
│ ├── proguard-rules.pro
│ └── src
│ │ ├── debug
│ │ ├── AndroidManifest.xml
│ │ └── java
│ │ │ └── com
│ │ │ └── fooddeliveryapp
│ │ │ └── ReactNativeFlipper.java
│ │ └── main
│ │ ├── AndroidManifest.xml
│ │ ├── assets
│ │ └── fonts
│ │ │ ├── Roboto-Black.ttf
│ │ │ ├── Roboto-BlackItalic.ttf
│ │ │ ├── Roboto-Bold.ttf
│ │ │ ├── Roboto-BoldItalic.ttf
│ │ │ ├── Roboto-Italic.ttf
│ │ │ ├── Roboto-Light.ttf
│ │ │ ├── Roboto-LightItalic.ttf
│ │ │ ├── Roboto-Medium.ttf
│ │ │ ├── Roboto-MediumItalic.ttf
│ │ │ ├── Roboto-Regular.ttf
│ │ │ ├── Roboto-Thin.ttf
│ │ │ ├── Roboto-ThinItalic.ttf
│ │ │ ├── RobotoCondensed-Bold.ttf
│ │ │ ├── RobotoCondensed-BoldItalic.ttf
│ │ │ ├── RobotoCondensed-Italic.ttf
│ │ │ ├── RobotoCondensed-Light.ttf
│ │ │ ├── RobotoCondensed-LightItalic.ttf
│ │ │ └── RobotoCondensed-Regular.ttf
│ │ ├── java
│ │ └── com
│ │ │ └── fooddeliveryapp
│ │ │ ├── MainActivity.java
│ │ │ └── MainApplication.java
│ │ └── res
│ │ ├── mipmap-hdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ ├── mipmap-mdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ ├── mipmap-xhdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ ├── mipmap-xxhdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ ├── mipmap-xxxhdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ └── values
│ │ ├── strings.xml
│ │ └── styles.xml
├── build.gradle
├── gradle.properties
├── gradle
│ └── wrapper
│ │ ├── gradle-wrapper.jar
│ │ └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
└── settings.gradle
├── app.json
├── assets
├── fonts
│ ├── Roboto-Black.ttf
│ ├── Roboto-BlackItalic.ttf
│ ├── Roboto-Bold.ttf
│ ├── Roboto-BoldItalic.ttf
│ ├── Roboto-Italic.ttf
│ ├── Roboto-Light.ttf
│ ├── Roboto-LightItalic.ttf
│ ├── Roboto-Medium.ttf
│ ├── Roboto-MediumItalic.ttf
│ ├── Roboto-Regular.ttf
│ ├── Roboto-Thin.ttf
│ ├── Roboto-ThinItalic.ttf
│ ├── RobotoCondensed-Bold.ttf
│ ├── RobotoCondensed-BoldItalic.ttf
│ ├── RobotoCondensed-Italic.ttf
│ ├── RobotoCondensed-Light.ttf
│ ├── RobotoCondensed-LightItalic.ttf
│ └── RobotoCondensed-Regular.ttf
├── icons
│ ├── back.png
│ ├── car.png
│ ├── cutlery.png
│ ├── donut.png
│ ├── drink.png
│ ├── fire.png
│ ├── fries.png
│ ├── hamburger.png
│ ├── hotdog.png
│ ├── like.png
│ ├── list.png
│ ├── location.png
│ ├── mastercard.png
│ ├── nearby.png
│ ├── noodle.png
│ ├── pin.png
│ ├── pizza.png
│ ├── red-pin.png
│ ├── rice-bowl.png
│ ├── salad.png
│ ├── search.png
│ ├── shopping-basket.png
│ ├── star.png
│ ├── sushi.png
│ └── user.png
└── images
│ ├── avatar-1.jpg
│ ├── avatar-2.jpg
│ ├── avatar-3.jpg
│ ├── avatar-4.jpg
│ ├── avatar-5.jpg
│ ├── baked-fries.jpg
│ ├── burger-restaurant-2.jpg
│ ├── burger-restaurant.jpg
│ ├── chicago-hot-dog.jpg
│ ├── crispy-chicken-burger.jpg
│ ├── fries-restaurant.jpg
│ ├── hawaiian-pizza.jpg
│ ├── honey-mustard-chicken-burger.jpg
│ ├── hot-dog-restaurant.jpg
│ ├── ice-kacang.jpg
│ ├── japanese-restaurant.jpg
│ ├── kek-lapis-shop.jpg
│ ├── kek-lapis.jpg
│ ├── kolo-mee.jpg
│ ├── nasi-briyani-mutton.jpg
│ ├── nasi-lemak.jpg
│ ├── noodle-shop.jpg
│ ├── pizza-restaurant.jpg
│ ├── pizza.jpg
│ ├── salad.jpg
│ ├── sarawak-laksa.jpg
│ ├── sushi.jpg
│ ├── teh-c-peng.jpg
│ └── tomato-pasta.jpg
├── babel.config.js
├── constants
├── icons.js
├── images.js
├── index.js
├── maps.js
└── theme.js
├── index.js
├── ios
├── FoodDeliveryApp-tvOS
│ └── Info.plist
├── FoodDeliveryApp-tvOSTests
│ └── Info.plist
├── FoodDeliveryApp.xcodeproj
│ ├── project.pbxproj
│ └── xcshareddata
│ │ └── xcschemes
│ │ ├── FoodDeliveryApp-tvOS.xcscheme
│ │ └── FoodDeliveryApp.xcscheme
├── FoodDeliveryApp.xcworkspace
│ ├── contents.xcworkspacedata
│ └── xcshareddata
│ │ └── IDEWorkspaceChecks.plist
├── FoodDeliveryApp
│ ├── AppDelegate.h
│ ├── AppDelegate.m
│ ├── Images.xcassets
│ │ ├── AppIcon.appiconset
│ │ │ └── Contents.json
│ │ └── Contents.json
│ ├── Info.plist
│ ├── LaunchScreen.storyboard
│ └── main.m
├── FoodDeliveryAppTests
│ ├── FoodDeliveryAppTests.m
│ └── Info.plist
├── Podfile
└── Podfile.lock
├── metro.config.js
├── navigation
└── tabs.js
├── package-lock.json
├── package.json
├── react-native.config.js
└── screens
├── Home.js
├── OrderDelivery.js
├── Restaurant.js
└── index.js
/.gitignore:
--------------------------------------------------------------------------------
1 | # OSX
2 | #
3 | .DS_Store
4 |
5 | # Xcode
6 | #
7 | build/
8 | *.pbxuser
9 | !default.pbxuser
10 | *.mode1v3
11 | !default.mode1v3
12 | *.mode2v3
13 | !default.mode2v3
14 | *.perspectivev3
15 | !default.perspectivev3
16 | xcuserdata
17 | *.xccheckout
18 | *.moved-aside
19 | DerivedData
20 | *.hmap
21 | *.ipa
22 | *.xcuserstate
23 |
24 | # Android/IntelliJ
25 | #
26 | build/
27 | .idea
28 | .gradle
29 | local.properties
30 | *.iml
31 |
32 | # node.js
33 | #
34 | node_modules/
35 | npm-debug.log
36 | yarn-error.log
37 |
38 | # BUCK
39 | buck-out/
40 | \.buckd/
41 | *.keystore
42 | !debug.keystore
43 |
44 | # fastlane
45 | #
46 | # It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the
47 | # screenshots whenever they are needed.
48 | # For more information about the recommended setup visit:
49 | # https://docs.fastlane.tools/best-practices/source-control/
50 |
51 | */fastlane/report.xml
52 | */fastlane/Preview.html
53 | */fastlane/screenshots
54 |
55 | # Bundle artifact
56 | *.jsbundle
57 |
58 | # CocoaPods
59 | /ios/Pods/
60 |
--------------------------------------------------------------------------------
/App.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 |
3 | import { createStackNavigator } from "@react-navigation/stack";
4 | import { NavigationContainer } from '@react-navigation/native'
5 |
6 | import { Restaurant, OrderDelivery } from './screens'
7 | import Tabs from './navigation/tabs'
8 |
9 | const Stack = createStackNavigator();
10 |
11 | const App = () => {
12 | return (
13 |
14 |
20 |
21 |
22 |
23 |
24 |
25 | )
26 | }
27 |
28 | export default App;
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # React-Native-Food-Ordering-App
2 | 
3 |
4 |
--------------------------------------------------------------------------------
/__tests__/App-test.js:
--------------------------------------------------------------------------------
1 | /**
2 | * @format
3 | */
4 |
5 | import 'react-native';
6 | import React from 'react';
7 | import App from '../App';
8 |
9 | // Note: test renderer must be required after react-native.
10 | import renderer from 'react-test-renderer';
11 |
12 | it('renders correctly', () => {
13 | renderer.create();
14 | });
15 |
--------------------------------------------------------------------------------
/android/app/BUCK:
--------------------------------------------------------------------------------
1 | # To learn about Buck see [Docs](https://buckbuild.com/).
2 | # To run your application with Buck:
3 | # - install Buck
4 | # - `npm start` - to start the packager
5 | # - `cd android`
6 | # - `keytool -genkey -v -keystore keystores/debug.keystore -storepass android -alias androiddebugkey -keypass android -dname "CN=Android Debug,O=Android,C=US"`
7 | # - `./gradlew :app:copyDownloadableDepsToLibs` - make all Gradle compile dependencies available to Buck
8 | # - `buck install -r android/app` - compile, install and run application
9 | #
10 |
11 | load(":build_defs.bzl", "create_aar_targets", "create_jar_targets")
12 |
13 | lib_deps = []
14 |
15 | create_aar_targets(glob(["libs/*.aar"]))
16 |
17 | create_jar_targets(glob(["libs/*.jar"]))
18 |
19 | android_library(
20 | name = "all-libs",
21 | exported_deps = lib_deps,
22 | )
23 |
24 | android_library(
25 | name = "app-code",
26 | srcs = glob([
27 | "src/main/java/**/*.java",
28 | ]),
29 | deps = [
30 | ":all-libs",
31 | ":build_config",
32 | ":res",
33 | ],
34 | )
35 |
36 | android_build_config(
37 | name = "build_config",
38 | package = "com.fooddeliveryapp",
39 | )
40 |
41 | android_resource(
42 | name = "res",
43 | package = "com.fooddeliveryapp",
44 | res = "src/main/res",
45 | )
46 |
47 | android_binary(
48 | name = "app",
49 | keystore = "//android/keystores:debug",
50 | manifest = "src/main/AndroidManifest.xml",
51 | package_type = "debug",
52 | deps = [
53 | ":app-code",
54 | ],
55 | )
56 |
--------------------------------------------------------------------------------
/android/app/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: "com.android.application"
2 |
3 | import com.android.build.OutputFile
4 |
5 | /**
6 | * The react.gradle file registers a task for each build variant (e.g. bundleDebugJsAndAssets
7 | * and bundleReleaseJsAndAssets).
8 | * These basically call `react-native bundle` with the correct arguments during the Android build
9 | * cycle. By default, bundleDebugJsAndAssets is skipped, as in debug/dev mode we prefer to load the
10 | * bundle directly from the development server. Below you can see all the possible configurations
11 | * and their defaults. If you decide to add a configuration block, make sure to add it before the
12 | * `apply from: "../../node_modules/react-native/react.gradle"` line.
13 | *
14 | * project.ext.react = [
15 | * // the name of the generated asset file containing your JS bundle
16 | * bundleAssetName: "index.android.bundle",
17 | *
18 | * // the entry file for bundle generation. If none specified and
19 | * // "index.android.js" exists, it will be used. Otherwise "index.js" is
20 | * // default. Can be overridden with ENTRY_FILE environment variable.
21 | * entryFile: "index.android.js",
22 | *
23 | * // https://reactnative.dev/docs/performance#enable-the-ram-format
24 | * bundleCommand: "ram-bundle",
25 | *
26 | * // whether to bundle JS and assets in debug mode
27 | * bundleInDebug: false,
28 | *
29 | * // whether to bundle JS and assets in release mode
30 | * bundleInRelease: true,
31 | *
32 | * // whether to bundle JS and assets in another build variant (if configured).
33 | * // See http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Build-Variants
34 | * // The configuration property can be in the following formats
35 | * // 'bundleIn${productFlavor}${buildType}'
36 | * // 'bundleIn${buildType}'
37 | * // bundleInFreeDebug: true,
38 | * // bundleInPaidRelease: true,
39 | * // bundleInBeta: true,
40 | *
41 | * // whether to disable dev mode in custom build variants (by default only disabled in release)
42 | * // for example: to disable dev mode in the staging build type (if configured)
43 | * devDisabledInStaging: true,
44 | * // The configuration property can be in the following formats
45 | * // 'devDisabledIn${productFlavor}${buildType}'
46 | * // 'devDisabledIn${buildType}'
47 | *
48 | * // the root of your project, i.e. where "package.json" lives
49 | * root: "../../",
50 | *
51 | * // where to put the JS bundle asset in debug mode
52 | * jsBundleDirDebug: "$buildDir/intermediates/assets/debug",
53 | *
54 | * // where to put the JS bundle asset in release mode
55 | * jsBundleDirRelease: "$buildDir/intermediates/assets/release",
56 | *
57 | * // where to put drawable resources / React Native assets, e.g. the ones you use via
58 | * // require('./image.png')), in debug mode
59 | * resourcesDirDebug: "$buildDir/intermediates/res/merged/debug",
60 | *
61 | * // where to put drawable resources / React Native assets, e.g. the ones you use via
62 | * // require('./image.png')), in release mode
63 | * resourcesDirRelease: "$buildDir/intermediates/res/merged/release",
64 | *
65 | * // by default the gradle tasks are skipped if none of the JS files or assets change; this means
66 | * // that we don't look at files in android/ or ios/ to determine whether the tasks are up to
67 | * // date; if you have any other folders that you want to ignore for performance reasons (gradle
68 | * // indexes the entire tree), add them here. Alternatively, if you have JS files in android/
69 | * // for example, you might want to remove it from here.
70 | * inputExcludes: ["android/**", "ios/**"],
71 | *
72 | * // override which node gets called and with what additional arguments
73 | * nodeExecutableAndArgs: ["node"],
74 | *
75 | * // supply additional arguments to the packager
76 | * extraPackagerArgs: []
77 | * ]
78 | */
79 |
80 | project.ext.react = [
81 | enableHermes: false, // clean and rebuild if changing
82 | ]
83 |
84 | apply from: "../../node_modules/react-native/react.gradle"
85 |
86 | /**
87 | * Set this to true to create two separate APKs instead of one:
88 | * - An APK that only works on ARM devices
89 | * - An APK that only works on x86 devices
90 | * The advantage is the size of the APK is reduced by about 4MB.
91 | * Upload all the APKs to the Play Store and people will download
92 | * the correct one based on the CPU architecture of their device.
93 | */
94 | def enableSeparateBuildPerCPUArchitecture = false
95 |
96 | /**
97 | * Run Proguard to shrink the Java bytecode in release builds.
98 | */
99 | def enableProguardInReleaseBuilds = false
100 |
101 | /**
102 | * The preferred build flavor of JavaScriptCore.
103 | *
104 | * For example, to use the international variant, you can use:
105 | * `def jscFlavor = 'org.webkit:android-jsc-intl:+'`
106 | *
107 | * The international variant includes ICU i18n library and necessary data
108 | * allowing to use e.g. `Date.toLocaleString` and `String.localeCompare` that
109 | * give correct results when using with locales other than en-US. Note that
110 | * this variant is about 6MiB larger per architecture than default.
111 | */
112 | def jscFlavor = 'org.webkit:android-jsc:+'
113 |
114 | /**
115 | * Whether to enable the Hermes VM.
116 | *
117 | * This should be set on project.ext.react and mirrored here. If it is not set
118 | * on project.ext.react, JavaScript will not be compiled to Hermes Bytecode
119 | * and the benefits of using Hermes will therefore be sharply reduced.
120 | */
121 | def enableHermes = project.ext.react.get("enableHermes", false);
122 |
123 | android {
124 | compileSdkVersion rootProject.ext.compileSdkVersion
125 |
126 | compileOptions {
127 | sourceCompatibility JavaVersion.VERSION_1_8
128 | targetCompatibility JavaVersion.VERSION_1_8
129 | }
130 |
131 | defaultConfig {
132 | applicationId "com.fooddeliveryapp"
133 | minSdkVersion rootProject.ext.minSdkVersion
134 | targetSdkVersion rootProject.ext.targetSdkVersion
135 | versionCode 1
136 | versionName "1.0"
137 | }
138 | splits {
139 | abi {
140 | reset()
141 | enable enableSeparateBuildPerCPUArchitecture
142 | universalApk false // If true, also generate a universal APK
143 | include "armeabi-v7a", "x86", "arm64-v8a", "x86_64"
144 | }
145 | }
146 | signingConfigs {
147 | debug {
148 | storeFile file('debug.keystore')
149 | storePassword 'android'
150 | keyAlias 'androiddebugkey'
151 | keyPassword 'android'
152 | }
153 | }
154 | buildTypes {
155 | debug {
156 | signingConfig signingConfigs.debug
157 | }
158 | release {
159 | // Caution! In production, you need to generate your own keystore file.
160 | // see https://reactnative.dev/docs/signed-apk-android.
161 | signingConfig signingConfigs.debug
162 | minifyEnabled enableProguardInReleaseBuilds
163 | proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
164 | }
165 | }
166 |
167 | // applicationVariants are e.g. debug, release
168 | applicationVariants.all { variant ->
169 | variant.outputs.each { output ->
170 | // For each separate APK per architecture, set a unique version code as described here:
171 | // https://developer.android.com/studio/build/configure-apk-splits.html
172 | def versionCodes = ["armeabi-v7a": 1, "x86": 2, "arm64-v8a": 3, "x86_64": 4]
173 | def abi = output.getFilter(OutputFile.ABI)
174 | if (abi != null) { // null for the universal-debug, universal-release variants
175 | output.versionCodeOverride =
176 | versionCodes.get(abi) * 1048576 + defaultConfig.versionCode
177 | }
178 |
179 | }
180 | }
181 | }
182 |
183 | dependencies {
184 | implementation fileTree(dir: "libs", include: ["*.jar"])
185 | //noinspection GradleDynamicVersion
186 | implementation "com.facebook.react:react-native:+" // From node_modules
187 |
188 | implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.0.0"
189 |
190 | // start add this
191 | implementation(project(':react-native-maps')){
192 | exclude group: 'com.google.android.gms', module: 'play-services-base'
193 | exclude group: 'com.google.android.gms', module: 'play-services-maps'
194 | }
195 | implementation 'com.google.android.gms:play-services-base:17.5.0'
196 | implementation 'com.google.android.gms:play-services-maps:17.0.0'
197 | // end add this
198 |
199 | debugImplementation("com.facebook.flipper:flipper:${FLIPPER_VERSION}") {
200 | exclude group:'com.facebook.fbjni'
201 | }
202 |
203 | debugImplementation("com.facebook.flipper:flipper-network-plugin:${FLIPPER_VERSION}") {
204 | exclude group:'com.facebook.flipper'
205 | exclude group:'com.squareup.okhttp3', module:'okhttp'
206 | }
207 |
208 | debugImplementation("com.facebook.flipper:flipper-fresco-plugin:${FLIPPER_VERSION}") {
209 | exclude group:'com.facebook.flipper'
210 | }
211 |
212 | if (enableHermes) {
213 | def hermesPath = "../../node_modules/hermes-engine/android/";
214 | debugImplementation files(hermesPath + "hermes-debug.aar")
215 | releaseImplementation files(hermesPath + "hermes-release.aar")
216 | } else {
217 | implementation jscFlavor
218 | }
219 | }
220 |
221 | // Run this once to be able to run the application with BUCK
222 | // puts all compile dependencies into folder libs for BUCK to use
223 | task copyDownloadableDepsToLibs(type: Copy) {
224 | from configurations.compile
225 | into 'libs'
226 | }
227 |
228 | apply from: file("../../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesAppBuildGradle(project)
229 |
--------------------------------------------------------------------------------
/android/app/build_defs.bzl:
--------------------------------------------------------------------------------
1 | """Helper definitions to glob .aar and .jar targets"""
2 |
3 | def create_aar_targets(aarfiles):
4 | for aarfile in aarfiles:
5 | name = "aars__" + aarfile[aarfile.rindex("/") + 1:aarfile.rindex(".aar")]
6 | lib_deps.append(":" + name)
7 | android_prebuilt_aar(
8 | name = name,
9 | aar = aarfile,
10 | )
11 |
12 | def create_jar_targets(jarfiles):
13 | for jarfile in jarfiles:
14 | name = "jars__" + jarfile[jarfile.rindex("/") + 1:jarfile.rindex(".jar")]
15 | lib_deps.append(":" + name)
16 | prebuilt_jar(
17 | name = name,
18 | binary_jar = jarfile,
19 | )
20 |
--------------------------------------------------------------------------------
/android/app/debug.keystore:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Priyadarshan2000/React-Native-Food-Ordering-App/779e02f6dfca67d2e526d8fc4d9facfcdb78cae4/android/app/debug.keystore
--------------------------------------------------------------------------------
/android/app/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # By default, the flags in this file are appended to flags specified
3 | # in /usr/local/Cellar/android-sdk/24.3.3/tools/proguard/proguard-android.txt
4 | # You can edit the include path and order by changing the proguardFiles
5 | # directive in build.gradle.
6 | #
7 | # For more details, see
8 | # http://developer.android.com/guide/developing/tools/proguard.html
9 |
10 | # Add any project specific keep options here:
11 |
--------------------------------------------------------------------------------
/android/app/src/debug/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/android/app/src/debug/java/com/fooddeliveryapp/ReactNativeFlipper.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) Facebook, Inc. and its affiliates.
3 | *
4 | *
This source code is licensed under the MIT license found in the LICENSE file in the root
5 | * directory of this source tree.
6 | */
7 | package com.fooddeliveryapp;
8 |
9 | import android.content.Context;
10 | import com.facebook.flipper.android.AndroidFlipperClient;
11 | import com.facebook.flipper.android.utils.FlipperUtils;
12 | import com.facebook.flipper.core.FlipperClient;
13 | import com.facebook.flipper.plugins.crashreporter.CrashReporterPlugin;
14 | import com.facebook.flipper.plugins.databases.DatabasesFlipperPlugin;
15 | import com.facebook.flipper.plugins.fresco.FrescoFlipperPlugin;
16 | import com.facebook.flipper.plugins.inspector.DescriptorMapping;
17 | import com.facebook.flipper.plugins.inspector.InspectorFlipperPlugin;
18 | import com.facebook.flipper.plugins.network.FlipperOkhttpInterceptor;
19 | import com.facebook.flipper.plugins.network.NetworkFlipperPlugin;
20 | import com.facebook.flipper.plugins.react.ReactFlipperPlugin;
21 | import com.facebook.flipper.plugins.sharedpreferences.SharedPreferencesFlipperPlugin;
22 | import com.facebook.react.ReactInstanceManager;
23 | import com.facebook.react.bridge.ReactContext;
24 | import com.facebook.react.modules.network.NetworkingModule;
25 | import okhttp3.OkHttpClient;
26 |
27 | public class ReactNativeFlipper {
28 | public static void initializeFlipper(Context context, ReactInstanceManager reactInstanceManager) {
29 | if (FlipperUtils.shouldEnableFlipper(context)) {
30 | final FlipperClient client = AndroidFlipperClient.getInstance(context);
31 |
32 | client.addPlugin(new InspectorFlipperPlugin(context, DescriptorMapping.withDefaults()));
33 | client.addPlugin(new ReactFlipperPlugin());
34 | client.addPlugin(new DatabasesFlipperPlugin(context));
35 | client.addPlugin(new SharedPreferencesFlipperPlugin(context));
36 | client.addPlugin(CrashReporterPlugin.getInstance());
37 |
38 | NetworkFlipperPlugin networkFlipperPlugin = new NetworkFlipperPlugin();
39 | NetworkingModule.setCustomClientBuilder(
40 | new NetworkingModule.CustomClientBuilder() {
41 | @Override
42 | public void apply(OkHttpClient.Builder builder) {
43 | builder.addNetworkInterceptor(new FlipperOkhttpInterceptor(networkFlipperPlugin));
44 | }
45 | });
46 | client.addPlugin(networkFlipperPlugin);
47 | client.start();
48 |
49 | // Fresco Plugin needs to ensure that ImagePipelineFactory is initialized
50 | // Hence we run if after all native modules have been initialized
51 | ReactContext reactContext = reactInstanceManager.getCurrentReactContext();
52 | if (reactContext == null) {
53 | reactInstanceManager.addReactInstanceEventListener(
54 | new ReactInstanceManager.ReactInstanceEventListener() {
55 | @Override
56 | public void onReactContextInitialized(ReactContext reactContext) {
57 | reactInstanceManager.removeReactInstanceEventListener(this);
58 | reactContext.runOnNativeModulesQueueThread(
59 | new Runnable() {
60 | @Override
61 | public void run() {
62 | client.addPlugin(new FrescoFlipperPlugin());
63 | }
64 | });
65 | }
66 | });
67 | } else {
68 | client.addPlugin(new FrescoFlipperPlugin());
69 | }
70 | }
71 | }
72 | }
73 |
--------------------------------------------------------------------------------
/android/app/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
4 |
5 |
6 |
13 |
16 |
17 |
18 |
19 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
--------------------------------------------------------------------------------
/android/app/src/main/assets/fonts/Roboto-Black.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Priyadarshan2000/React-Native-Food-Ordering-App/779e02f6dfca67d2e526d8fc4d9facfcdb78cae4/android/app/src/main/assets/fonts/Roboto-Black.ttf
--------------------------------------------------------------------------------
/android/app/src/main/assets/fonts/Roboto-BlackItalic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Priyadarshan2000/React-Native-Food-Ordering-App/779e02f6dfca67d2e526d8fc4d9facfcdb78cae4/android/app/src/main/assets/fonts/Roboto-BlackItalic.ttf
--------------------------------------------------------------------------------
/android/app/src/main/assets/fonts/Roboto-Bold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Priyadarshan2000/React-Native-Food-Ordering-App/779e02f6dfca67d2e526d8fc4d9facfcdb78cae4/android/app/src/main/assets/fonts/Roboto-Bold.ttf
--------------------------------------------------------------------------------
/android/app/src/main/assets/fonts/Roboto-BoldItalic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Priyadarshan2000/React-Native-Food-Ordering-App/779e02f6dfca67d2e526d8fc4d9facfcdb78cae4/android/app/src/main/assets/fonts/Roboto-BoldItalic.ttf
--------------------------------------------------------------------------------
/android/app/src/main/assets/fonts/Roboto-Italic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Priyadarshan2000/React-Native-Food-Ordering-App/779e02f6dfca67d2e526d8fc4d9facfcdb78cae4/android/app/src/main/assets/fonts/Roboto-Italic.ttf
--------------------------------------------------------------------------------
/android/app/src/main/assets/fonts/Roboto-Light.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Priyadarshan2000/React-Native-Food-Ordering-App/779e02f6dfca67d2e526d8fc4d9facfcdb78cae4/android/app/src/main/assets/fonts/Roboto-Light.ttf
--------------------------------------------------------------------------------
/android/app/src/main/assets/fonts/Roboto-LightItalic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Priyadarshan2000/React-Native-Food-Ordering-App/779e02f6dfca67d2e526d8fc4d9facfcdb78cae4/android/app/src/main/assets/fonts/Roboto-LightItalic.ttf
--------------------------------------------------------------------------------
/android/app/src/main/assets/fonts/Roboto-Medium.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Priyadarshan2000/React-Native-Food-Ordering-App/779e02f6dfca67d2e526d8fc4d9facfcdb78cae4/android/app/src/main/assets/fonts/Roboto-Medium.ttf
--------------------------------------------------------------------------------
/android/app/src/main/assets/fonts/Roboto-MediumItalic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Priyadarshan2000/React-Native-Food-Ordering-App/779e02f6dfca67d2e526d8fc4d9facfcdb78cae4/android/app/src/main/assets/fonts/Roboto-MediumItalic.ttf
--------------------------------------------------------------------------------
/android/app/src/main/assets/fonts/Roboto-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Priyadarshan2000/React-Native-Food-Ordering-App/779e02f6dfca67d2e526d8fc4d9facfcdb78cae4/android/app/src/main/assets/fonts/Roboto-Regular.ttf
--------------------------------------------------------------------------------
/android/app/src/main/assets/fonts/Roboto-Thin.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Priyadarshan2000/React-Native-Food-Ordering-App/779e02f6dfca67d2e526d8fc4d9facfcdb78cae4/android/app/src/main/assets/fonts/Roboto-Thin.ttf
--------------------------------------------------------------------------------
/android/app/src/main/assets/fonts/Roboto-ThinItalic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Priyadarshan2000/React-Native-Food-Ordering-App/779e02f6dfca67d2e526d8fc4d9facfcdb78cae4/android/app/src/main/assets/fonts/Roboto-ThinItalic.ttf
--------------------------------------------------------------------------------
/android/app/src/main/assets/fonts/RobotoCondensed-Bold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Priyadarshan2000/React-Native-Food-Ordering-App/779e02f6dfca67d2e526d8fc4d9facfcdb78cae4/android/app/src/main/assets/fonts/RobotoCondensed-Bold.ttf
--------------------------------------------------------------------------------
/android/app/src/main/assets/fonts/RobotoCondensed-BoldItalic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Priyadarshan2000/React-Native-Food-Ordering-App/779e02f6dfca67d2e526d8fc4d9facfcdb78cae4/android/app/src/main/assets/fonts/RobotoCondensed-BoldItalic.ttf
--------------------------------------------------------------------------------
/android/app/src/main/assets/fonts/RobotoCondensed-Italic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Priyadarshan2000/React-Native-Food-Ordering-App/779e02f6dfca67d2e526d8fc4d9facfcdb78cae4/android/app/src/main/assets/fonts/RobotoCondensed-Italic.ttf
--------------------------------------------------------------------------------
/android/app/src/main/assets/fonts/RobotoCondensed-Light.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Priyadarshan2000/React-Native-Food-Ordering-App/779e02f6dfca67d2e526d8fc4d9facfcdb78cae4/android/app/src/main/assets/fonts/RobotoCondensed-Light.ttf
--------------------------------------------------------------------------------
/android/app/src/main/assets/fonts/RobotoCondensed-LightItalic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Priyadarshan2000/React-Native-Food-Ordering-App/779e02f6dfca67d2e526d8fc4d9facfcdb78cae4/android/app/src/main/assets/fonts/RobotoCondensed-LightItalic.ttf
--------------------------------------------------------------------------------
/android/app/src/main/assets/fonts/RobotoCondensed-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Priyadarshan2000/React-Native-Food-Ordering-App/779e02f6dfca67d2e526d8fc4d9facfcdb78cae4/android/app/src/main/assets/fonts/RobotoCondensed-Regular.ttf
--------------------------------------------------------------------------------
/android/app/src/main/java/com/fooddeliveryapp/MainActivity.java:
--------------------------------------------------------------------------------
1 | package com.fooddeliveryapp;
2 |
3 | import com.facebook.react.ReactActivity;
4 |
5 | public class MainActivity extends ReactActivity {
6 |
7 | /**
8 | * Returns the name of the main component registered from JavaScript. This is used to schedule
9 | * rendering of the component.
10 | */
11 | @Override
12 | protected String getMainComponentName() {
13 | return "FoodDeliveryApp";
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/android/app/src/main/java/com/fooddeliveryapp/MainApplication.java:
--------------------------------------------------------------------------------
1 | package com.fooddeliveryapp;
2 |
3 | import android.app.Application;
4 | import android.content.Context;
5 | import com.facebook.react.PackageList;
6 | import com.facebook.react.ReactApplication;
7 | import com.facebook.react.ReactInstanceManager;
8 | import com.facebook.react.ReactNativeHost;
9 | import com.facebook.react.ReactPackage;
10 | import com.facebook.soloader.SoLoader;
11 | import java.lang.reflect.InvocationTargetException;
12 | import java.util.List;
13 |
14 | public class MainApplication extends Application implements ReactApplication {
15 |
16 | private final ReactNativeHost mReactNativeHost =
17 | new ReactNativeHost(this) {
18 | @Override
19 | public boolean getUseDeveloperSupport() {
20 | return BuildConfig.DEBUG;
21 | }
22 |
23 | @Override
24 | protected List getPackages() {
25 | @SuppressWarnings("UnnecessaryLocalVariable")
26 | List packages = new PackageList(this).getPackages();
27 | // Packages that cannot be autolinked yet can be added manually here, for example:
28 | // packages.add(new MyReactNativePackage());
29 | //packages.add(new MapsPackage());
30 | return packages;
31 | }
32 |
33 | @Override
34 | protected String getJSMainModuleName() {
35 | return "index";
36 | }
37 | };
38 |
39 | @Override
40 | public ReactNativeHost getReactNativeHost() {
41 | return mReactNativeHost;
42 | }
43 |
44 | @Override
45 | public void onCreate() {
46 | super.onCreate();
47 | SoLoader.init(this, /* native exopackage */ false);
48 | initializeFlipper(this, getReactNativeHost().getReactInstanceManager());
49 | }
50 |
51 | /**
52 | * Loads Flipper in React Native templates. Call this in the onCreate method with something like
53 | * initializeFlipper(this, getReactNativeHost().getReactInstanceManager());
54 | *
55 | * @param context
56 | * @param reactInstanceManager
57 | */
58 | private static void initializeFlipper(
59 | Context context, ReactInstanceManager reactInstanceManager) {
60 | if (BuildConfig.DEBUG) {
61 | try {
62 | /*
63 | We use reflection here to pick up the class that initializes Flipper,
64 | since Flipper library is not available in release mode
65 | */
66 | Class> aClass = Class.forName("com.fooddeliveryapp.ReactNativeFlipper");
67 | aClass
68 | .getMethod("initializeFlipper", Context.class, ReactInstanceManager.class)
69 | .invoke(null, context, reactInstanceManager);
70 | } catch (ClassNotFoundException e) {
71 | e.printStackTrace();
72 | } catch (NoSuchMethodException e) {
73 | e.printStackTrace();
74 | } catch (IllegalAccessException e) {
75 | e.printStackTrace();
76 | } catch (InvocationTargetException e) {
77 | e.printStackTrace();
78 | }
79 | }
80 | }
81 | }
82 |
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Priyadarshan2000/React-Native-Food-Ordering-App/779e02f6dfca67d2e526d8fc4d9facfcdb78cae4/android/app/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Priyadarshan2000/React-Native-Food-Ordering-App/779e02f6dfca67d2e526d8fc4d9facfcdb78cae4/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Priyadarshan2000/React-Native-Food-Ordering-App/779e02f6dfca67d2e526d8fc4d9facfcdb78cae4/android/app/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Priyadarshan2000/React-Native-Food-Ordering-App/779e02f6dfca67d2e526d8fc4d9facfcdb78cae4/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Priyadarshan2000/React-Native-Food-Ordering-App/779e02f6dfca67d2e526d8fc4d9facfcdb78cae4/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Priyadarshan2000/React-Native-Food-Ordering-App/779e02f6dfca67d2e526d8fc4d9facfcdb78cae4/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Priyadarshan2000/React-Native-Food-Ordering-App/779e02f6dfca67d2e526d8fc4d9facfcdb78cae4/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Priyadarshan2000/React-Native-Food-Ordering-App/779e02f6dfca67d2e526d8fc4d9facfcdb78cae4/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Priyadarshan2000/React-Native-Food-Ordering-App/779e02f6dfca67d2e526d8fc4d9facfcdb78cae4/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Priyadarshan2000/React-Native-Food-Ordering-App/779e02f6dfca67d2e526d8fc4d9facfcdb78cae4/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/android/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | FoodDeliveryApp
3 |
4 |
--------------------------------------------------------------------------------
/android/app/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/android/build.gradle:
--------------------------------------------------------------------------------
1 | // Top-level build file where you can add configuration options common to all sub-projects/modules.
2 |
3 | buildscript {
4 | ext {
5 | buildToolsVersion = "29.0.2"
6 | minSdkVersion = 21
7 | compileSdkVersion = 29
8 | targetSdkVersion = 29
9 | // add this 2 lines
10 | playServicesVersion = "17.0.0"
11 | androidMapsUtilsVersion = "2.2.0"
12 | // end this 2 lines
13 | }
14 | repositories {
15 | google()
16 | jcenter()
17 | }
18 | dependencies {
19 | classpath('com.android.tools.build:gradle:4.1.0')
20 | // NOTE: Do not place your application dependencies here; they belong
21 | // in the individual module build.gradle files
22 | }
23 | }
24 |
25 | allprojects {
26 | repositories {
27 | mavenLocal()
28 | maven {
29 | // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
30 | url("$rootDir/../node_modules/react-native/android")
31 | }
32 | maven {
33 | // Android JSC is installed from npm
34 | url("$rootDir/../node_modules/jsc-android/dist")
35 | }
36 |
37 | google()
38 | jcenter()
39 | maven { url 'https://www.jitpack.io' }
40 | }
41 | }
42 |
--------------------------------------------------------------------------------
/android/gradle.properties:
--------------------------------------------------------------------------------
1 | # Project-wide Gradle settings.
2 |
3 | # IDE (e.g. Android Studio) users:
4 | # Gradle settings configured through the IDE *will override*
5 | # any settings specified in this file.
6 |
7 | # For more details on how to configure your build environment visit
8 | # http://www.gradle.org/docs/current/userguide/build_environment.html
9 |
10 | # Specifies the JVM arguments used for the daemon process.
11 | # The setting is particularly useful for tweaking memory settings.
12 | # Default value: -Xmx10248m -XX:MaxPermSize=256m
13 | # org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
14 |
15 | # When configured, Gradle will run in incubating parallel mode.
16 | # This option should only be used with decoupled projects. More details, visit
17 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
18 | # org.gradle.parallel=true
19 |
20 | # AndroidX package structure to make it clearer which packages are bundled with the
21 | # Android operating system, and which are packaged with your app's APK
22 | # https://developer.android.com/topic/libraries/support-library/androidx-rn
23 | android.useAndroidX=true
24 | # Automatically convert third-party libraries to use AndroidX
25 | android.enableJetifier=true
26 |
27 | # Version of flipper SDK to use with React Native
28 | FLIPPER_VERSION=0.54.0
29 |
--------------------------------------------------------------------------------
/android/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Priyadarshan2000/React-Native-Food-Ordering-App/779e02f6dfca67d2e526d8fc4d9facfcdb78cae4/android/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/android/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Wed Jun 23 21:17:23 MYT 2021
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-6.5-bin.zip
7 |
--------------------------------------------------------------------------------
/android/gradlew:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env sh
2 |
3 | #
4 | # Copyright 2015 the original author or authors.
5 | #
6 | # Licensed under the Apache License, Version 2.0 (the "License");
7 | # you may not use this file except in compliance with the License.
8 | # You may obtain a copy of the License at
9 | #
10 | # https://www.apache.org/licenses/LICENSE-2.0
11 | #
12 | # Unless required by applicable law or agreed to in writing, software
13 | # distributed under the License is distributed on an "AS IS" BASIS,
14 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | # See the License for the specific language governing permissions and
16 | # limitations under the License.
17 | #
18 |
19 | ##############################################################################
20 | ##
21 | ## Gradle start up script for UN*X
22 | ##
23 | ##############################################################################
24 |
25 | # Attempt to set APP_HOME
26 | # Resolve links: $0 may be a link
27 | PRG="$0"
28 | # Need this for relative symlinks.
29 | while [ -h "$PRG" ] ; do
30 | ls=`ls -ld "$PRG"`
31 | link=`expr "$ls" : '.*-> \(.*\)$'`
32 | if expr "$link" : '/.*' > /dev/null; then
33 | PRG="$link"
34 | else
35 | PRG=`dirname "$PRG"`"/$link"
36 | fi
37 | done
38 | SAVED="`pwd`"
39 | cd "`dirname \"$PRG\"`/" >/dev/null
40 | APP_HOME="`pwd -P`"
41 | cd "$SAVED" >/dev/null
42 |
43 | APP_NAME="Gradle"
44 | APP_BASE_NAME=`basename "$0"`
45 |
46 | # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
47 | DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
48 |
49 | # Use the maximum available, or set MAX_FD != -1 to use that value.
50 | MAX_FD="maximum"
51 |
52 | warn () {
53 | echo "$*"
54 | }
55 |
56 | die () {
57 | echo
58 | echo "$*"
59 | echo
60 | exit 1
61 | }
62 |
63 | # OS specific support (must be 'true' or 'false').
64 | cygwin=false
65 | msys=false
66 | darwin=false
67 | nonstop=false
68 | case "`uname`" in
69 | CYGWIN* )
70 | cygwin=true
71 | ;;
72 | Darwin* )
73 | darwin=true
74 | ;;
75 | MINGW* )
76 | msys=true
77 | ;;
78 | NONSTOP* )
79 | nonstop=true
80 | ;;
81 | esac
82 |
83 | CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
84 |
85 | # Determine the Java command to use to start the JVM.
86 | if [ -n "$JAVA_HOME" ] ; then
87 | if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
88 | # IBM's JDK on AIX uses strange locations for the executables
89 | JAVACMD="$JAVA_HOME/jre/sh/java"
90 | else
91 | JAVACMD="$JAVA_HOME/bin/java"
92 | fi
93 | if [ ! -x "$JAVACMD" ] ; then
94 | die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
95 |
96 | Please set the JAVA_HOME variable in your environment to match the
97 | location of your Java installation."
98 | fi
99 | else
100 | JAVACMD="java"
101 | which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
102 |
103 | Please set the JAVA_HOME variable in your environment to match the
104 | location of your Java installation."
105 | fi
106 |
107 | # Increase the maximum file descriptors if we can.
108 | if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
109 | MAX_FD_LIMIT=`ulimit -H -n`
110 | if [ $? -eq 0 ] ; then
111 | if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
112 | MAX_FD="$MAX_FD_LIMIT"
113 | fi
114 | ulimit -n $MAX_FD
115 | if [ $? -ne 0 ] ; then
116 | warn "Could not set maximum file descriptor limit: $MAX_FD"
117 | fi
118 | else
119 | warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
120 | fi
121 | fi
122 |
123 | # For Darwin, add options to specify how the application appears in the dock
124 | if $darwin; then
125 | GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
126 | fi
127 |
128 | # For Cygwin or MSYS, switch paths to Windows format before running java
129 | if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
130 | APP_HOME=`cygpath --path --mixed "$APP_HOME"`
131 | CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
132 | JAVACMD=`cygpath --unix "$JAVACMD"`
133 |
134 | # We build the pattern for arguments to be converted via cygpath
135 | ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
136 | SEP=""
137 | for dir in $ROOTDIRSRAW ; do
138 | ROOTDIRS="$ROOTDIRS$SEP$dir"
139 | SEP="|"
140 | done
141 | OURCYGPATTERN="(^($ROOTDIRS))"
142 | # Add a user-defined pattern to the cygpath arguments
143 | if [ "$GRADLE_CYGPATTERN" != "" ] ; then
144 | OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
145 | fi
146 | # Now convert the arguments - kludge to limit ourselves to /bin/sh
147 | i=0
148 | for arg in "$@" ; do
149 | CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
150 | CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
151 |
152 | if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
153 | eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
154 | else
155 | eval `echo args$i`="\"$arg\""
156 | fi
157 | i=`expr $i + 1`
158 | done
159 | case $i in
160 | 0) set -- ;;
161 | 1) set -- "$args0" ;;
162 | 2) set -- "$args0" "$args1" ;;
163 | 3) set -- "$args0" "$args1" "$args2" ;;
164 | 4) set -- "$args0" "$args1" "$args2" "$args3" ;;
165 | 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
166 | 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
167 | 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
168 | 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
169 | 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
170 | esac
171 | fi
172 |
173 | # Escape application args
174 | save () {
175 | for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
176 | echo " "
177 | }
178 | APP_ARGS=`save "$@"`
179 |
180 | # Collect all arguments for the java command, following the shell quoting and substitution rules
181 | eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
182 |
183 | exec "$JAVACMD" "$@"
184 |
--------------------------------------------------------------------------------
/android/gradlew.bat:
--------------------------------------------------------------------------------
1 | @rem
2 | @rem Copyright 2015 the original author or authors.
3 | @rem
4 | @rem Licensed under the Apache License, Version 2.0 (the "License");
5 | @rem you may not use this file except in compliance with the License.
6 | @rem You may obtain a copy of the License at
7 | @rem
8 | @rem https://www.apache.org/licenses/LICENSE-2.0
9 | @rem
10 | @rem Unless required by applicable law or agreed to in writing, software
11 | @rem distributed under the License is distributed on an "AS IS" BASIS,
12 | @rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | @rem See the License for the specific language governing permissions and
14 | @rem limitations under the License.
15 | @rem
16 |
17 | @if "%DEBUG%" == "" @echo off
18 | @rem ##########################################################################
19 | @rem
20 | @rem Gradle startup script for Windows
21 | @rem
22 | @rem ##########################################################################
23 |
24 | @rem Set local scope for the variables with windows NT shell
25 | if "%OS%"=="Windows_NT" setlocal
26 |
27 | set DIRNAME=%~dp0
28 | if "%DIRNAME%" == "" set DIRNAME=.
29 | set APP_BASE_NAME=%~n0
30 | set APP_HOME=%DIRNAME%
31 |
32 | @rem Resolve any "." and ".." in APP_HOME to make it shorter.
33 | for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
34 |
35 | @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
36 | set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
37 |
38 | @rem Find java.exe
39 | if defined JAVA_HOME goto findJavaFromJavaHome
40 |
41 | set JAVA_EXE=java.exe
42 | %JAVA_EXE% -version >NUL 2>&1
43 | if "%ERRORLEVEL%" == "0" goto init
44 |
45 | echo.
46 | echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
47 | echo.
48 | echo Please set the JAVA_HOME variable in your environment to match the
49 | echo location of your Java installation.
50 |
51 | goto fail
52 |
53 | :findJavaFromJavaHome
54 | set JAVA_HOME=%JAVA_HOME:"=%
55 | set JAVA_EXE=%JAVA_HOME%/bin/java.exe
56 |
57 | if exist "%JAVA_EXE%" goto init
58 |
59 | echo.
60 | echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
61 | echo.
62 | echo Please set the JAVA_HOME variable in your environment to match the
63 | echo location of your Java installation.
64 |
65 | goto fail
66 |
67 | :init
68 | @rem Get command-line arguments, handling Windows variants
69 |
70 | if not "%OS%" == "Windows_NT" goto win9xME_args
71 |
72 | :win9xME_args
73 | @rem Slurp the command line arguments.
74 | set CMD_LINE_ARGS=
75 | set _SKIP=2
76 |
77 | :win9xME_args_slurp
78 | if "x%~1" == "x" goto execute
79 |
80 | set CMD_LINE_ARGS=%*
81 |
82 | :execute
83 | @rem Setup the command line
84 |
85 | set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
86 |
87 | @rem Execute Gradle
88 | "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
89 |
90 | :end
91 | @rem End local scope for the variables with windows NT shell
92 | if "%ERRORLEVEL%"=="0" goto mainEnd
93 |
94 | :fail
95 | rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
96 | rem the _cmd.exe /c_ return code!
97 | if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
98 | exit /b 1
99 |
100 | :mainEnd
101 | if "%OS%"=="Windows_NT" endlocal
102 |
103 | :omega
104 |
--------------------------------------------------------------------------------
/android/settings.gradle:
--------------------------------------------------------------------------------
1 | rootProject.name = 'FoodDeliveryApp'
2 | apply from: file("../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesSettingsGradle(settings)
3 | include ':app'
4 |
--------------------------------------------------------------------------------
/app.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "FoodDeliveryApp",
3 | "displayName": "FoodDeliveryApp"
4 | }
--------------------------------------------------------------------------------
/assets/fonts/Roboto-Black.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Priyadarshan2000/React-Native-Food-Ordering-App/779e02f6dfca67d2e526d8fc4d9facfcdb78cae4/assets/fonts/Roboto-Black.ttf
--------------------------------------------------------------------------------
/assets/fonts/Roboto-BlackItalic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Priyadarshan2000/React-Native-Food-Ordering-App/779e02f6dfca67d2e526d8fc4d9facfcdb78cae4/assets/fonts/Roboto-BlackItalic.ttf
--------------------------------------------------------------------------------
/assets/fonts/Roboto-Bold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Priyadarshan2000/React-Native-Food-Ordering-App/779e02f6dfca67d2e526d8fc4d9facfcdb78cae4/assets/fonts/Roboto-Bold.ttf
--------------------------------------------------------------------------------
/assets/fonts/Roboto-BoldItalic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Priyadarshan2000/React-Native-Food-Ordering-App/779e02f6dfca67d2e526d8fc4d9facfcdb78cae4/assets/fonts/Roboto-BoldItalic.ttf
--------------------------------------------------------------------------------
/assets/fonts/Roboto-Italic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Priyadarshan2000/React-Native-Food-Ordering-App/779e02f6dfca67d2e526d8fc4d9facfcdb78cae4/assets/fonts/Roboto-Italic.ttf
--------------------------------------------------------------------------------
/assets/fonts/Roboto-Light.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Priyadarshan2000/React-Native-Food-Ordering-App/779e02f6dfca67d2e526d8fc4d9facfcdb78cae4/assets/fonts/Roboto-Light.ttf
--------------------------------------------------------------------------------
/assets/fonts/Roboto-LightItalic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Priyadarshan2000/React-Native-Food-Ordering-App/779e02f6dfca67d2e526d8fc4d9facfcdb78cae4/assets/fonts/Roboto-LightItalic.ttf
--------------------------------------------------------------------------------
/assets/fonts/Roboto-Medium.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Priyadarshan2000/React-Native-Food-Ordering-App/779e02f6dfca67d2e526d8fc4d9facfcdb78cae4/assets/fonts/Roboto-Medium.ttf
--------------------------------------------------------------------------------
/assets/fonts/Roboto-MediumItalic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Priyadarshan2000/React-Native-Food-Ordering-App/779e02f6dfca67d2e526d8fc4d9facfcdb78cae4/assets/fonts/Roboto-MediumItalic.ttf
--------------------------------------------------------------------------------
/assets/fonts/Roboto-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Priyadarshan2000/React-Native-Food-Ordering-App/779e02f6dfca67d2e526d8fc4d9facfcdb78cae4/assets/fonts/Roboto-Regular.ttf
--------------------------------------------------------------------------------
/assets/fonts/Roboto-Thin.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Priyadarshan2000/React-Native-Food-Ordering-App/779e02f6dfca67d2e526d8fc4d9facfcdb78cae4/assets/fonts/Roboto-Thin.ttf
--------------------------------------------------------------------------------
/assets/fonts/Roboto-ThinItalic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Priyadarshan2000/React-Native-Food-Ordering-App/779e02f6dfca67d2e526d8fc4d9facfcdb78cae4/assets/fonts/Roboto-ThinItalic.ttf
--------------------------------------------------------------------------------
/assets/fonts/RobotoCondensed-Bold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Priyadarshan2000/React-Native-Food-Ordering-App/779e02f6dfca67d2e526d8fc4d9facfcdb78cae4/assets/fonts/RobotoCondensed-Bold.ttf
--------------------------------------------------------------------------------
/assets/fonts/RobotoCondensed-BoldItalic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Priyadarshan2000/React-Native-Food-Ordering-App/779e02f6dfca67d2e526d8fc4d9facfcdb78cae4/assets/fonts/RobotoCondensed-BoldItalic.ttf
--------------------------------------------------------------------------------
/assets/fonts/RobotoCondensed-Italic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Priyadarshan2000/React-Native-Food-Ordering-App/779e02f6dfca67d2e526d8fc4d9facfcdb78cae4/assets/fonts/RobotoCondensed-Italic.ttf
--------------------------------------------------------------------------------
/assets/fonts/RobotoCondensed-Light.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Priyadarshan2000/React-Native-Food-Ordering-App/779e02f6dfca67d2e526d8fc4d9facfcdb78cae4/assets/fonts/RobotoCondensed-Light.ttf
--------------------------------------------------------------------------------
/assets/fonts/RobotoCondensed-LightItalic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Priyadarshan2000/React-Native-Food-Ordering-App/779e02f6dfca67d2e526d8fc4d9facfcdb78cae4/assets/fonts/RobotoCondensed-LightItalic.ttf
--------------------------------------------------------------------------------
/assets/fonts/RobotoCondensed-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Priyadarshan2000/React-Native-Food-Ordering-App/779e02f6dfca67d2e526d8fc4d9facfcdb78cae4/assets/fonts/RobotoCondensed-Regular.ttf
--------------------------------------------------------------------------------
/assets/icons/back.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Priyadarshan2000/React-Native-Food-Ordering-App/779e02f6dfca67d2e526d8fc4d9facfcdb78cae4/assets/icons/back.png
--------------------------------------------------------------------------------
/assets/icons/car.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Priyadarshan2000/React-Native-Food-Ordering-App/779e02f6dfca67d2e526d8fc4d9facfcdb78cae4/assets/icons/car.png
--------------------------------------------------------------------------------
/assets/icons/cutlery.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Priyadarshan2000/React-Native-Food-Ordering-App/779e02f6dfca67d2e526d8fc4d9facfcdb78cae4/assets/icons/cutlery.png
--------------------------------------------------------------------------------
/assets/icons/donut.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Priyadarshan2000/React-Native-Food-Ordering-App/779e02f6dfca67d2e526d8fc4d9facfcdb78cae4/assets/icons/donut.png
--------------------------------------------------------------------------------
/assets/icons/drink.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Priyadarshan2000/React-Native-Food-Ordering-App/779e02f6dfca67d2e526d8fc4d9facfcdb78cae4/assets/icons/drink.png
--------------------------------------------------------------------------------
/assets/icons/fire.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Priyadarshan2000/React-Native-Food-Ordering-App/779e02f6dfca67d2e526d8fc4d9facfcdb78cae4/assets/icons/fire.png
--------------------------------------------------------------------------------
/assets/icons/fries.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Priyadarshan2000/React-Native-Food-Ordering-App/779e02f6dfca67d2e526d8fc4d9facfcdb78cae4/assets/icons/fries.png
--------------------------------------------------------------------------------
/assets/icons/hamburger.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Priyadarshan2000/React-Native-Food-Ordering-App/779e02f6dfca67d2e526d8fc4d9facfcdb78cae4/assets/icons/hamburger.png
--------------------------------------------------------------------------------
/assets/icons/hotdog.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Priyadarshan2000/React-Native-Food-Ordering-App/779e02f6dfca67d2e526d8fc4d9facfcdb78cae4/assets/icons/hotdog.png
--------------------------------------------------------------------------------
/assets/icons/like.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Priyadarshan2000/React-Native-Food-Ordering-App/779e02f6dfca67d2e526d8fc4d9facfcdb78cae4/assets/icons/like.png
--------------------------------------------------------------------------------
/assets/icons/list.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Priyadarshan2000/React-Native-Food-Ordering-App/779e02f6dfca67d2e526d8fc4d9facfcdb78cae4/assets/icons/list.png
--------------------------------------------------------------------------------
/assets/icons/location.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Priyadarshan2000/React-Native-Food-Ordering-App/779e02f6dfca67d2e526d8fc4d9facfcdb78cae4/assets/icons/location.png
--------------------------------------------------------------------------------
/assets/icons/mastercard.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Priyadarshan2000/React-Native-Food-Ordering-App/779e02f6dfca67d2e526d8fc4d9facfcdb78cae4/assets/icons/mastercard.png
--------------------------------------------------------------------------------
/assets/icons/nearby.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Priyadarshan2000/React-Native-Food-Ordering-App/779e02f6dfca67d2e526d8fc4d9facfcdb78cae4/assets/icons/nearby.png
--------------------------------------------------------------------------------
/assets/icons/noodle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Priyadarshan2000/React-Native-Food-Ordering-App/779e02f6dfca67d2e526d8fc4d9facfcdb78cae4/assets/icons/noodle.png
--------------------------------------------------------------------------------
/assets/icons/pin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Priyadarshan2000/React-Native-Food-Ordering-App/779e02f6dfca67d2e526d8fc4d9facfcdb78cae4/assets/icons/pin.png
--------------------------------------------------------------------------------
/assets/icons/pizza.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Priyadarshan2000/React-Native-Food-Ordering-App/779e02f6dfca67d2e526d8fc4d9facfcdb78cae4/assets/icons/pizza.png
--------------------------------------------------------------------------------
/assets/icons/red-pin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Priyadarshan2000/React-Native-Food-Ordering-App/779e02f6dfca67d2e526d8fc4d9facfcdb78cae4/assets/icons/red-pin.png
--------------------------------------------------------------------------------
/assets/icons/rice-bowl.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Priyadarshan2000/React-Native-Food-Ordering-App/779e02f6dfca67d2e526d8fc4d9facfcdb78cae4/assets/icons/rice-bowl.png
--------------------------------------------------------------------------------
/assets/icons/salad.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Priyadarshan2000/React-Native-Food-Ordering-App/779e02f6dfca67d2e526d8fc4d9facfcdb78cae4/assets/icons/salad.png
--------------------------------------------------------------------------------
/assets/icons/search.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Priyadarshan2000/React-Native-Food-Ordering-App/779e02f6dfca67d2e526d8fc4d9facfcdb78cae4/assets/icons/search.png
--------------------------------------------------------------------------------
/assets/icons/shopping-basket.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Priyadarshan2000/React-Native-Food-Ordering-App/779e02f6dfca67d2e526d8fc4d9facfcdb78cae4/assets/icons/shopping-basket.png
--------------------------------------------------------------------------------
/assets/icons/star.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Priyadarshan2000/React-Native-Food-Ordering-App/779e02f6dfca67d2e526d8fc4d9facfcdb78cae4/assets/icons/star.png
--------------------------------------------------------------------------------
/assets/icons/sushi.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Priyadarshan2000/React-Native-Food-Ordering-App/779e02f6dfca67d2e526d8fc4d9facfcdb78cae4/assets/icons/sushi.png
--------------------------------------------------------------------------------
/assets/icons/user.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Priyadarshan2000/React-Native-Food-Ordering-App/779e02f6dfca67d2e526d8fc4d9facfcdb78cae4/assets/icons/user.png
--------------------------------------------------------------------------------
/assets/images/avatar-1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Priyadarshan2000/React-Native-Food-Ordering-App/779e02f6dfca67d2e526d8fc4d9facfcdb78cae4/assets/images/avatar-1.jpg
--------------------------------------------------------------------------------
/assets/images/avatar-2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Priyadarshan2000/React-Native-Food-Ordering-App/779e02f6dfca67d2e526d8fc4d9facfcdb78cae4/assets/images/avatar-2.jpg
--------------------------------------------------------------------------------
/assets/images/avatar-3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Priyadarshan2000/React-Native-Food-Ordering-App/779e02f6dfca67d2e526d8fc4d9facfcdb78cae4/assets/images/avatar-3.jpg
--------------------------------------------------------------------------------
/assets/images/avatar-4.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Priyadarshan2000/React-Native-Food-Ordering-App/779e02f6dfca67d2e526d8fc4d9facfcdb78cae4/assets/images/avatar-4.jpg
--------------------------------------------------------------------------------
/assets/images/avatar-5.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Priyadarshan2000/React-Native-Food-Ordering-App/779e02f6dfca67d2e526d8fc4d9facfcdb78cae4/assets/images/avatar-5.jpg
--------------------------------------------------------------------------------
/assets/images/baked-fries.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Priyadarshan2000/React-Native-Food-Ordering-App/779e02f6dfca67d2e526d8fc4d9facfcdb78cae4/assets/images/baked-fries.jpg
--------------------------------------------------------------------------------
/assets/images/burger-restaurant-2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Priyadarshan2000/React-Native-Food-Ordering-App/779e02f6dfca67d2e526d8fc4d9facfcdb78cae4/assets/images/burger-restaurant-2.jpg
--------------------------------------------------------------------------------
/assets/images/burger-restaurant.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Priyadarshan2000/React-Native-Food-Ordering-App/779e02f6dfca67d2e526d8fc4d9facfcdb78cae4/assets/images/burger-restaurant.jpg
--------------------------------------------------------------------------------
/assets/images/chicago-hot-dog.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Priyadarshan2000/React-Native-Food-Ordering-App/779e02f6dfca67d2e526d8fc4d9facfcdb78cae4/assets/images/chicago-hot-dog.jpg
--------------------------------------------------------------------------------
/assets/images/crispy-chicken-burger.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Priyadarshan2000/React-Native-Food-Ordering-App/779e02f6dfca67d2e526d8fc4d9facfcdb78cae4/assets/images/crispy-chicken-burger.jpg
--------------------------------------------------------------------------------
/assets/images/fries-restaurant.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Priyadarshan2000/React-Native-Food-Ordering-App/779e02f6dfca67d2e526d8fc4d9facfcdb78cae4/assets/images/fries-restaurant.jpg
--------------------------------------------------------------------------------
/assets/images/hawaiian-pizza.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Priyadarshan2000/React-Native-Food-Ordering-App/779e02f6dfca67d2e526d8fc4d9facfcdb78cae4/assets/images/hawaiian-pizza.jpg
--------------------------------------------------------------------------------
/assets/images/honey-mustard-chicken-burger.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Priyadarshan2000/React-Native-Food-Ordering-App/779e02f6dfca67d2e526d8fc4d9facfcdb78cae4/assets/images/honey-mustard-chicken-burger.jpg
--------------------------------------------------------------------------------
/assets/images/hot-dog-restaurant.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Priyadarshan2000/React-Native-Food-Ordering-App/779e02f6dfca67d2e526d8fc4d9facfcdb78cae4/assets/images/hot-dog-restaurant.jpg
--------------------------------------------------------------------------------
/assets/images/ice-kacang.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Priyadarshan2000/React-Native-Food-Ordering-App/779e02f6dfca67d2e526d8fc4d9facfcdb78cae4/assets/images/ice-kacang.jpg
--------------------------------------------------------------------------------
/assets/images/japanese-restaurant.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Priyadarshan2000/React-Native-Food-Ordering-App/779e02f6dfca67d2e526d8fc4d9facfcdb78cae4/assets/images/japanese-restaurant.jpg
--------------------------------------------------------------------------------
/assets/images/kek-lapis-shop.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Priyadarshan2000/React-Native-Food-Ordering-App/779e02f6dfca67d2e526d8fc4d9facfcdb78cae4/assets/images/kek-lapis-shop.jpg
--------------------------------------------------------------------------------
/assets/images/kek-lapis.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Priyadarshan2000/React-Native-Food-Ordering-App/779e02f6dfca67d2e526d8fc4d9facfcdb78cae4/assets/images/kek-lapis.jpg
--------------------------------------------------------------------------------
/assets/images/kolo-mee.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Priyadarshan2000/React-Native-Food-Ordering-App/779e02f6dfca67d2e526d8fc4d9facfcdb78cae4/assets/images/kolo-mee.jpg
--------------------------------------------------------------------------------
/assets/images/nasi-briyani-mutton.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Priyadarshan2000/React-Native-Food-Ordering-App/779e02f6dfca67d2e526d8fc4d9facfcdb78cae4/assets/images/nasi-briyani-mutton.jpg
--------------------------------------------------------------------------------
/assets/images/nasi-lemak.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Priyadarshan2000/React-Native-Food-Ordering-App/779e02f6dfca67d2e526d8fc4d9facfcdb78cae4/assets/images/nasi-lemak.jpg
--------------------------------------------------------------------------------
/assets/images/noodle-shop.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Priyadarshan2000/React-Native-Food-Ordering-App/779e02f6dfca67d2e526d8fc4d9facfcdb78cae4/assets/images/noodle-shop.jpg
--------------------------------------------------------------------------------
/assets/images/pizza-restaurant.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Priyadarshan2000/React-Native-Food-Ordering-App/779e02f6dfca67d2e526d8fc4d9facfcdb78cae4/assets/images/pizza-restaurant.jpg
--------------------------------------------------------------------------------
/assets/images/pizza.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Priyadarshan2000/React-Native-Food-Ordering-App/779e02f6dfca67d2e526d8fc4d9facfcdb78cae4/assets/images/pizza.jpg
--------------------------------------------------------------------------------
/assets/images/salad.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Priyadarshan2000/React-Native-Food-Ordering-App/779e02f6dfca67d2e526d8fc4d9facfcdb78cae4/assets/images/salad.jpg
--------------------------------------------------------------------------------
/assets/images/sarawak-laksa.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Priyadarshan2000/React-Native-Food-Ordering-App/779e02f6dfca67d2e526d8fc4d9facfcdb78cae4/assets/images/sarawak-laksa.jpg
--------------------------------------------------------------------------------
/assets/images/sushi.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Priyadarshan2000/React-Native-Food-Ordering-App/779e02f6dfca67d2e526d8fc4d9facfcdb78cae4/assets/images/sushi.jpg
--------------------------------------------------------------------------------
/assets/images/teh-c-peng.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Priyadarshan2000/React-Native-Food-Ordering-App/779e02f6dfca67d2e526d8fc4d9facfcdb78cae4/assets/images/teh-c-peng.jpg
--------------------------------------------------------------------------------
/assets/images/tomato-pasta.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Priyadarshan2000/React-Native-Food-Ordering-App/779e02f6dfca67d2e526d8fc4d9facfcdb78cae4/assets/images/tomato-pasta.jpg
--------------------------------------------------------------------------------
/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | presets: ['module:metro-react-native-babel-preset'],
3 | };
4 |
--------------------------------------------------------------------------------
/constants/icons.js:
--------------------------------------------------------------------------------
1 | export const back = require("../assets/icons/back.png");
2 | export const car = require("../assets/icons/car.png");
3 | export const cutlery = require("../assets/icons/cutlery.png");
4 | export const donut = require("../assets/icons/donut.png");
5 | export const drink = require("../assets/icons/drink.png");
6 | export const fire = require("../assets/icons/fire.png");
7 | export const fries = require("../assets/icons/fries.png");
8 | export const hamburger = require("../assets/icons/hamburger.png");
9 | export const hotdog = require("../assets/icons/hotdog.png");
10 | export const like = require("../assets/icons/like.png");
11 | export const list = require("../assets/icons/list.png");
12 | export const location = require("../assets/icons/location.png");
13 | export const master_card = require("../assets/icons/mastercard.png");
14 | export const nearby = require("../assets/icons/nearby.png");
15 | export const noodle = require("../assets/icons/noodle.png");
16 | export const pin = require("../assets/icons/pin.png");
17 | export const pizza = require("../assets/icons/pizza.png");
18 | export const red_pin = require("../assets/icons/red-pin.png");
19 | export const rice_bowl = require("../assets/icons/rice-bowl.png");
20 | export const salad = require("../assets/icons/salad.png");
21 | export const search = require("../assets/icons/search.png");
22 | export const basket = require("../assets/icons/shopping-basket.png");
23 | export const star = require("../assets/icons/star.png");
24 | export const sushi = require("../assets/icons/sushi.png");
25 | export const user = require("../assets/icons/user.png");
26 |
27 | export default {
28 | back,
29 | car,
30 | cutlery,
31 | donut,
32 | drink,
33 | fire,
34 | fries,
35 | hamburger,
36 | hotdog,
37 | like,
38 | list,
39 | location,
40 | master_card,
41 | nearby,
42 | noodle,
43 | pin,
44 | pizza,
45 | red_pin,
46 | rice_bowl,
47 | salad,
48 | search,
49 | basket,
50 | star,
51 | sushi,
52 | user,
53 | }
--------------------------------------------------------------------------------
/constants/images.js:
--------------------------------------------------------------------------------
1 |
2 | const avatar_1 = require("../assets/images/avatar-1.jpg");
3 | const avatar_2 = require("../assets/images/avatar-2.jpg");
4 | const avatar_3 = require("../assets/images/avatar-3.jpg");
5 | const avatar_4 = require("../assets/images/avatar-4.jpg");
6 | const avatar_5 = require("../assets/images/avatar-5.jpg");
7 | const baked_fries = require("../assets/images/baked-fries.jpg");
8 | const burger_restaurant_1 = require("../assets/images/burger-restaurant.jpg");
9 | const burger_restaurant_2 = require("../assets/images/burger-restaurant-2.jpg");
10 | const chicago_hot_dog = require("../assets/images/chicago-hot-dog.jpg");
11 | const crispy_chicken_burger = require("../assets/images/crispy-chicken-burger.jpg");
12 | const fries_restaurant = require("../assets/images/fries-restaurant.jpg");
13 | const hawaiian_pizza = require("../assets/images/hawaiian-pizza.jpg");
14 | const honey_mustard_chicken_burger = require("../assets/images/honey-mustard-chicken-burger.jpg");
15 | const hot_dog_restaurant = require("../assets/images/hot-dog-restaurant.jpg");
16 | const ice_kacang = require("../assets/images/ice-kacang.jpg");
17 | const japanese_restaurant = require("../assets/images/japanese-restaurant.jpg");
18 | const kek_lapis_shop = require("../assets/images/kek-lapis-shop.jpg");
19 | const kek_lapis = require("../assets/images/kek-lapis.jpg");
20 | const kolo_mee = require("../assets/images/kolo-mee.jpg");
21 | const nasi_briyani_mutton = require("../assets/images/nasi-briyani-mutton.jpg");
22 | const nasi_lemak = require("../assets/images/nasi-lemak.jpg");
23 | const noodle_shop = require("../assets/images/noodle-shop.jpg");
24 | const pizza_restaurant = require("../assets/images/pizza-restaurant.jpg");
25 | const pizza = require("../assets/images/pizza.jpg");
26 | const salad = require("../assets/images/salad.jpg");
27 | const sarawak_laksa = require("../assets/images/sarawak-laksa.jpg");
28 | const sushi = require("../assets/images/sushi.jpg");
29 | const teh_c_peng = require("../assets/images/teh-c-peng.jpg");
30 | const tomato_pasta = require("../assets/images/tomato-pasta.jpg");
31 |
32 | export default {
33 | avatar_1,
34 | avatar_2,
35 | avatar_3,
36 | avatar_4,
37 | avatar_5,
38 | baked_fries,
39 | burger_restaurant_1,
40 | burger_restaurant_2,
41 | chicago_hot_dog,
42 | crispy_chicken_burger,
43 |
44 | fries_restaurant,
45 | hawaiian_pizza,
46 | honey_mustard_chicken_burger,
47 | hot_dog_restaurant,
48 | ice_kacang,
49 |
50 | japanese_restaurant,
51 | kek_lapis_shop,
52 | kek_lapis,
53 | kolo_mee,
54 | nasi_briyani_mutton,
55 | nasi_lemak,
56 | noodle_shop,
57 | pizza_restaurant,
58 | pizza,
59 | sarawak_laksa,
60 | sushi,
61 | teh_c_peng,
62 | tomato_pasta,
63 | }
--------------------------------------------------------------------------------
/constants/index.js:
--------------------------------------------------------------------------------
1 | import icons from "./icons";
2 | import images from "./images";
3 | import { COLORS, SIZES, FONTS } from "./theme";
4 | import GOOGLE_API_KEY from "./maps"
5 |
6 | export { icons, images, COLORS, SIZES, FONTS, GOOGLE_API_KEY };
7 |
--------------------------------------------------------------------------------
/constants/maps.js:
--------------------------------------------------------------------------------
1 | const GOOGLE_API_KEY = "AIzaSyD_lMXvGFGsiO2qhvX7Vs49r-sdICRtrAQ"
2 |
3 | export default GOOGLE_API_KEY
--------------------------------------------------------------------------------
/constants/theme.js:
--------------------------------------------------------------------------------
1 | import { Dimensions } from "react-native";
2 | const { width, height } = Dimensions.get("window");
3 |
4 | export const COLORS = {
5 | // base colors
6 | primary: "#FC6D3F", // orange
7 | secondary: "#CDCDD2", // gray
8 |
9 | // colors
10 | black: "#1E1F20",
11 | white: "#FFFFFF",
12 |
13 | lightGray: "#F5F5F6",
14 | lightGray2: "#F6F6F7",
15 | lightGray3: "#EFEFF1",
16 | lightGray4: "#F8F8F9",
17 | transparent: "transparent",
18 | darkgray: '#898C95',
19 | };
20 |
21 | export const SIZES = {
22 | // global sizes
23 | base: 8,
24 | font: 14,
25 | radius: 30,
26 | padding: 10,
27 | padding2: 12,
28 |
29 | // font sizes
30 | largeTitle: 50,
31 | h1: 30,
32 | h2: 22,
33 | h3: 20,
34 | h4: 18,
35 | body1: 30,
36 | body2: 20,
37 | body3: 16,
38 | body4: 14,
39 | body5: 12,
40 |
41 | // app dimensions
42 | width,
43 | height
44 | };
45 |
46 | export const FONTS = {
47 | largeTitle: { fontFamily: "Roboto-regular", fontSize: SIZES.largeTitle, lineHeight: 55 },
48 | h1: { fontFamily: "Roboto-Black", fontSize: SIZES.h1, lineHeight: 36 },
49 | h2: { fontFamily: "Roboto-Bold", fontSize: SIZES.h2, lineHeight: 30 },
50 | h3: { fontFamily: "Roboto-Bold", fontSize: SIZES.h3, lineHeight: 22 },
51 | h4: { fontFamily: "Roboto-Bold", fontSize: SIZES.h4, lineHeight: 22 },
52 | body1: { fontFamily: "Roboto-Regular", fontSize: SIZES.body1, lineHeight: 36 },
53 | body2: { fontFamily: "Roboto-Regular", fontSize: SIZES.body2, lineHeight: 30 },
54 | body3: { fontFamily: "Roboto-Regular", fontSize: SIZES.body3, lineHeight: 22 },
55 | body4: { fontFamily: "Roboto-Regular", fontSize: SIZES.body4, lineHeight: 22 },
56 | body5: { fontFamily: "Roboto-Regular", fontSize: SIZES.body5, lineHeight: 22 },
57 | };
58 |
59 | const appTheme = { COLORS, SIZES, FONTS };
60 |
61 | export default appTheme;
--------------------------------------------------------------------------------
/index.js:
--------------------------------------------------------------------------------
1 | /**
2 | * @format
3 | */
4 |
5 | import {AppRegistry} from 'react-native';
6 | import App from './App';
7 | import {name as appName} from './app.json';
8 |
9 | AppRegistry.registerComponent(appName, () => App);
10 |
--------------------------------------------------------------------------------
/ios/FoodDeliveryApp-tvOS/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 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | APPL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleSignature
20 | ????
21 | CFBundleVersion
22 | 1
23 | LSRequiresIPhoneOS
24 |
25 | NSAppTransportSecurity
26 |
27 | NSExceptionDomains
28 |
29 | localhost
30 |
31 | NSExceptionAllowsInsecureHTTPLoads
32 |
33 |
34 |
35 |
36 | NSLocationWhenInUseUsageDescription
37 |
38 | UILaunchStoryboardName
39 | LaunchScreen
40 | UIRequiredDeviceCapabilities
41 |
42 | armv7
43 |
44 | UISupportedInterfaceOrientations
45 |
46 | UIInterfaceOrientationPortrait
47 | UIInterfaceOrientationLandscapeLeft
48 | UIInterfaceOrientationLandscapeRight
49 |
50 | UIViewControllerBasedStatusBarAppearance
51 |
52 |
53 |
54 |
--------------------------------------------------------------------------------
/ios/FoodDeliveryApp-tvOSTests/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 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | BNDL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleSignature
20 | ????
21 | CFBundleVersion
22 | 1
23 |
24 |
25 |
--------------------------------------------------------------------------------
/ios/FoodDeliveryApp.xcodeproj/xcshareddata/xcschemes/FoodDeliveryApp-tvOS.xcscheme:
--------------------------------------------------------------------------------
1 |
2 |
5 |
8 |
9 |
15 |
21 |
22 |
23 |
24 |
25 |
30 |
31 |
33 |
39 |
40 |
41 |
42 |
43 |
53 |
55 |
61 |
62 |
63 |
64 |
70 |
72 |
78 |
79 |
80 |
81 |
83 |
84 |
87 |
88 |
89 |
--------------------------------------------------------------------------------
/ios/FoodDeliveryApp.xcodeproj/xcshareddata/xcschemes/FoodDeliveryApp.xcscheme:
--------------------------------------------------------------------------------
1 |
2 |
5 |
8 |
9 |
15 |
21 |
22 |
23 |
24 |
25 |
30 |
31 |
33 |
39 |
40 |
41 |
42 |
43 |
53 |
55 |
61 |
62 |
63 |
64 |
70 |
72 |
78 |
79 |
80 |
81 |
83 |
84 |
87 |
88 |
89 |
--------------------------------------------------------------------------------
/ios/FoodDeliveryApp.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/ios/FoodDeliveryApp.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/ios/FoodDeliveryApp/AppDelegate.h:
--------------------------------------------------------------------------------
1 | #import
2 | #import
3 |
4 | @interface AppDelegate : UIResponder
5 |
6 | @property (nonatomic, strong) UIWindow *window;
7 |
8 | @end
9 |
--------------------------------------------------------------------------------
/ios/FoodDeliveryApp/AppDelegate.m:
--------------------------------------------------------------------------------
1 | #import "AppDelegate.h"
2 |
3 | #import
4 | #import
5 | #import
6 |
7 | #ifdef FB_SONARKIT_ENABLED
8 | #import
9 | #import
10 | #import
11 | #import
12 | #import
13 | #import
14 | #import
15 |
16 |
17 | static void InitializeFlipper(UIApplication *application) {
18 | FlipperClient *client = [FlipperClient sharedClient];
19 | SKDescriptorMapper *layoutDescriptorMapper = [[SKDescriptorMapper alloc] initWithDefaults];
20 | [client addPlugin:[[FlipperKitLayoutPlugin alloc] initWithRootNode:application withDescriptorMapper:layoutDescriptorMapper]];
21 | [client addPlugin:[[FKUserDefaultsPlugin alloc] initWithSuiteName:nil]];
22 | [client addPlugin:[FlipperKitReactPlugin new]];
23 | [client addPlugin:[[FlipperKitNetworkPlugin alloc] initWithNetworkAdapter:[SKIOSNetworkAdapter new]]];
24 | [client start];
25 | }
26 | #endif
27 |
28 | @implementation AppDelegate
29 |
30 | - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
31 | {
32 |
33 | [GMSServices provideAPIKey:@"YOUR-API-KEY"]; // add this line using the api key obtained from Google Console
34 |
35 | #ifdef FB_SONARKIT_ENABLED
36 | InitializeFlipper(application);
37 | #endif
38 |
39 | RCTBridge *bridge = [[RCTBridge alloc] initWithDelegate:self launchOptions:launchOptions];
40 | RCTRootView *rootView = [[RCTRootView alloc] initWithBridge:bridge
41 | moduleName:@"FoodDeliveryApp"
42 | initialProperties:nil];
43 |
44 | rootView.backgroundColor = [[UIColor alloc] initWithRed:1.0f green:1.0f blue:1.0f alpha:1];
45 |
46 | self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
47 | UIViewController *rootViewController = [UIViewController new];
48 | rootViewController.view = rootView;
49 | self.window.rootViewController = rootViewController;
50 | [self.window makeKeyAndVisible];
51 | return YES;
52 | }
53 |
54 | - (NSURL *)sourceURLForBridge:(RCTBridge *)bridge
55 | {
56 | #if DEBUG
57 | return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index" fallbackResource:nil];
58 | #else
59 | return [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"];
60 | #endif
61 | }
62 |
63 | @end
64 |
--------------------------------------------------------------------------------
/ios/FoodDeliveryApp/Images.xcassets/AppIcon.appiconset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "iphone",
5 | "scale" : "2x",
6 | "size" : "20x20"
7 | },
8 | {
9 | "idiom" : "iphone",
10 | "scale" : "3x",
11 | "size" : "20x20"
12 | },
13 | {
14 | "idiom" : "iphone",
15 | "scale" : "2x",
16 | "size" : "29x29"
17 | },
18 | {
19 | "idiom" : "iphone",
20 | "scale" : "3x",
21 | "size" : "29x29"
22 | },
23 | {
24 | "idiom" : "iphone",
25 | "scale" : "2x",
26 | "size" : "40x40"
27 | },
28 | {
29 | "idiom" : "iphone",
30 | "scale" : "3x",
31 | "size" : "40x40"
32 | },
33 | {
34 | "idiom" : "iphone",
35 | "scale" : "2x",
36 | "size" : "60x60"
37 | },
38 | {
39 | "idiom" : "iphone",
40 | "scale" : "3x",
41 | "size" : "60x60"
42 | },
43 | {
44 | "idiom" : "ios-marketing",
45 | "scale" : "1x",
46 | "size" : "1024x1024"
47 | }
48 | ],
49 | "info" : {
50 | "author" : "xcode",
51 | "version" : 1
52 | }
53 | }
54 |
--------------------------------------------------------------------------------
/ios/FoodDeliveryApp/Images.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "version" : 1,
4 | "author" : "xcode"
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/ios/FoodDeliveryApp/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleDisplayName
8 | FoodDeliveryApp
9 | CFBundleExecutable
10 | $(EXECUTABLE_NAME)
11 | CFBundleIdentifier
12 | $(PRODUCT_BUNDLE_IDENTIFIER)
13 | CFBundleInfoDictionaryVersion
14 | 6.0
15 | CFBundleName
16 | $(PRODUCT_NAME)
17 | CFBundlePackageType
18 | APPL
19 | CFBundleShortVersionString
20 | 1.0
21 | CFBundleSignature
22 | ????
23 | CFBundleVersion
24 | 1
25 | LSRequiresIPhoneOS
26 |
27 | NSAppTransportSecurity
28 |
29 | NSAllowsArbitraryLoads
30 |
31 | NSExceptionDomains
32 |
33 | localhost
34 |
35 | NSExceptionAllowsInsecureHTTPLoads
36 |
37 |
38 |
39 |
40 | NSLocationWhenInUseUsageDescription
41 |
42 | UIAppFonts
43 |
44 | Roboto-Black.ttf
45 | Roboto-BlackItalic.ttf
46 | Roboto-Bold.ttf
47 | Roboto-BoldItalic.ttf
48 | Roboto-Italic.ttf
49 | Roboto-Light.ttf
50 | Roboto-LightItalic.ttf
51 | Roboto-Medium.ttf
52 | Roboto-MediumItalic.ttf
53 | Roboto-Regular.ttf
54 | Roboto-Thin.ttf
55 | Roboto-ThinItalic.ttf
56 | RobotoCondensed-Bold.ttf
57 | RobotoCondensed-BoldItalic.ttf
58 | RobotoCondensed-Italic.ttf
59 | RobotoCondensed-Light.ttf
60 | RobotoCondensed-LightItalic.ttf
61 | RobotoCondensed-Regular.ttf
62 |
63 | UILaunchStoryboardName
64 | LaunchScreen
65 | UIRequiredDeviceCapabilities
66 |
67 | armv7
68 |
69 | UISupportedInterfaceOrientations
70 |
71 | UIInterfaceOrientationPortrait
72 | UIInterfaceOrientationLandscapeLeft
73 | UIInterfaceOrientationLandscapeRight
74 |
75 | UIViewControllerBasedStatusBarAppearance
76 |
77 |
78 |
79 |
--------------------------------------------------------------------------------
/ios/FoodDeliveryApp/LaunchScreen.storyboard:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
25 |
31 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
--------------------------------------------------------------------------------
/ios/FoodDeliveryApp/main.m:
--------------------------------------------------------------------------------
1 | #import
2 |
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 |
--------------------------------------------------------------------------------
/ios/FoodDeliveryAppTests/FoodDeliveryAppTests.m:
--------------------------------------------------------------------------------
1 | #import
2 | #import
3 |
4 | #import
5 | #import
6 |
7 | #define TIMEOUT_SECONDS 600
8 | #define TEXT_TO_LOOK_FOR @"Welcome to React"
9 |
10 | @interface FoodDeliveryAppTests : XCTestCase
11 |
12 | @end
13 |
14 | @implementation FoodDeliveryAppTests
15 |
16 | - (BOOL)findSubviewInView:(UIView *)view matching:(BOOL(^)(UIView *view))test
17 | {
18 | if (test(view)) {
19 | return YES;
20 | }
21 | for (UIView *subview in [view subviews]) {
22 | if ([self findSubviewInView:subview matching:test]) {
23 | return YES;
24 | }
25 | }
26 | return NO;
27 | }
28 |
29 | - (void)testRendersWelcomeScreen
30 | {
31 | UIViewController *vc = [[[RCTSharedApplication() delegate] window] rootViewController];
32 | NSDate *date = [NSDate dateWithTimeIntervalSinceNow:TIMEOUT_SECONDS];
33 | BOOL foundElement = NO;
34 |
35 | __block NSString *redboxError = nil;
36 | #ifdef DEBUG
37 | RCTSetLogFunction(^(RCTLogLevel level, RCTLogSource source, NSString *fileName, NSNumber *lineNumber, NSString *message) {
38 | if (level >= RCTLogLevelError) {
39 | redboxError = message;
40 | }
41 | });
42 | #endif
43 |
44 | while ([date timeIntervalSinceNow] > 0 && !foundElement && !redboxError) {
45 | [[NSRunLoop mainRunLoop] runMode:NSDefaultRunLoopMode beforeDate:[NSDate dateWithTimeIntervalSinceNow:0.1]];
46 | [[NSRunLoop mainRunLoop] runMode:NSRunLoopCommonModes beforeDate:[NSDate dateWithTimeIntervalSinceNow:0.1]];
47 |
48 | foundElement = [self findSubviewInView:vc.view matching:^BOOL(UIView *view) {
49 | if ([view.accessibilityLabel isEqualToString:TEXT_TO_LOOK_FOR]) {
50 | return YES;
51 | }
52 | return NO;
53 | }];
54 | }
55 |
56 | #ifdef DEBUG
57 | RCTSetLogFunction(RCTDefaultLogFunction);
58 | #endif
59 |
60 | XCTAssertNil(redboxError, @"RedBox error: %@", redboxError);
61 | XCTAssertTrue(foundElement, @"Couldn't find element with text '%@' in %d seconds", TEXT_TO_LOOK_FOR, TIMEOUT_SECONDS);
62 | }
63 |
64 |
65 | @end
66 |
--------------------------------------------------------------------------------
/ios/FoodDeliveryAppTests/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 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | BNDL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleSignature
20 | ????
21 | CFBundleVersion
22 | 1
23 |
24 |
25 |
--------------------------------------------------------------------------------
/ios/Podfile:
--------------------------------------------------------------------------------
1 | require_relative '../node_modules/react-native/scripts/react_native_pods'
2 | require_relative '../node_modules/@react-native-community/cli-platform-ios/native_modules'
3 |
4 | platform :ios, '10.0'
5 |
6 | target 'FoodDeliveryApp' do
7 | # React Native Maps dependencies
8 | rn_maps_path = '../node_modules/react-native-maps'
9 | pod 'react-native-google-maps', :path => rn_maps_path
10 | pod 'GoogleMaps'
11 | pod 'Google-Maps-iOS-Utils'
12 |
13 | config = use_native_modules!
14 |
15 | use_react_native!(:path => config["reactNativePath"])
16 |
17 | target 'FoodDeliveryAppTests' do
18 | inherit! :complete
19 | # Pods for testing
20 | end
21 |
22 | # Enables Flipper.
23 | #
24 | # Note that if you have use_frameworks! enabled, Flipper will not work and
25 | # you should disable these next few lines.
26 | use_flipper!({ 'Flipper-Folly' => '2.5.3', 'Flipper' => '0.87.0', 'Flipper-RSocket' => '1.3.1' })
27 | post_install do |installer|
28 | flipper_post_install(installer)
29 | end
30 | end
31 |
32 | target 'FoodDeliveryApp-tvOS' do
33 | # Pods for FoodDeliveryApp-tvOS
34 |
35 | target 'FoodDeliveryApp-tvOSTests' do
36 | inherit! :search_paths
37 | # Pods for testing
38 | end
39 | end
40 |
--------------------------------------------------------------------------------
/ios/Podfile.lock:
--------------------------------------------------------------------------------
1 | PODS:
2 | - boost-for-react-native (1.63.0)
3 | - CocoaAsyncSocket (7.6.5)
4 | - DoubleConversion (1.1.6)
5 | - FBLazyVector (0.64.2)
6 | - FBReactNativeSpec (0.64.2):
7 | - RCT-Folly (= 2020.01.13.00)
8 | - RCTRequired (= 0.64.2)
9 | - RCTTypeSafety (= 0.64.2)
10 | - React-Core (= 0.64.2)
11 | - React-jsi (= 0.64.2)
12 | - ReactCommon/turbomodule/core (= 0.64.2)
13 | - Flipper (0.87.0):
14 | - Flipper-Folly (~> 2.5)
15 | - Flipper-RSocket (~> 1.3)
16 | - Flipper-DoubleConversion (1.1.7)
17 | - Flipper-Folly (2.5.3):
18 | - boost-for-react-native
19 | - Flipper-DoubleConversion
20 | - Flipper-Glog
21 | - libevent (~> 2.1.12)
22 | - OpenSSL-Universal (= 1.1.180)
23 | - Flipper-Glog (0.3.6)
24 | - Flipper-PeerTalk (0.0.4)
25 | - Flipper-RSocket (1.3.1):
26 | - Flipper-Folly (~> 2.5)
27 | - FlipperKit (0.87.0):
28 | - FlipperKit/Core (= 0.87.0)
29 | - FlipperKit/Core (0.87.0):
30 | - Flipper (~> 0.87.0)
31 | - FlipperKit/CppBridge
32 | - FlipperKit/FBCxxFollyDynamicConvert
33 | - FlipperKit/FBDefines
34 | - FlipperKit/FKPortForwarding
35 | - FlipperKit/CppBridge (0.87.0):
36 | - Flipper (~> 0.87.0)
37 | - FlipperKit/FBCxxFollyDynamicConvert (0.87.0):
38 | - Flipper-Folly (~> 2.5)
39 | - FlipperKit/FBDefines (0.87.0)
40 | - FlipperKit/FKPortForwarding (0.87.0):
41 | - CocoaAsyncSocket (~> 7.6)
42 | - Flipper-PeerTalk (~> 0.0.4)
43 | - FlipperKit/FlipperKitHighlightOverlay (0.87.0)
44 | - FlipperKit/FlipperKitLayoutHelpers (0.87.0):
45 | - FlipperKit/Core
46 | - FlipperKit/FlipperKitHighlightOverlay
47 | - FlipperKit/FlipperKitLayoutTextSearchable
48 | - FlipperKit/FlipperKitLayoutIOSDescriptors (0.87.0):
49 | - FlipperKit/Core
50 | - FlipperKit/FlipperKitHighlightOverlay
51 | - FlipperKit/FlipperKitLayoutHelpers
52 | - YogaKit (~> 1.18)
53 | - FlipperKit/FlipperKitLayoutPlugin (0.87.0):
54 | - FlipperKit/Core
55 | - FlipperKit/FlipperKitHighlightOverlay
56 | - FlipperKit/FlipperKitLayoutHelpers
57 | - FlipperKit/FlipperKitLayoutIOSDescriptors
58 | - FlipperKit/FlipperKitLayoutTextSearchable
59 | - YogaKit (~> 1.18)
60 | - FlipperKit/FlipperKitLayoutTextSearchable (0.87.0)
61 | - FlipperKit/FlipperKitNetworkPlugin (0.87.0):
62 | - FlipperKit/Core
63 | - FlipperKit/FlipperKitReactPlugin (0.87.0):
64 | - FlipperKit/Core
65 | - FlipperKit/FlipperKitUserDefaultsPlugin (0.87.0):
66 | - FlipperKit/Core
67 | - FlipperKit/SKIOSNetworkPlugin (0.87.0):
68 | - FlipperKit/Core
69 | - FlipperKit/FlipperKitNetworkPlugin
70 | - glog (0.3.5)
71 | - Google-Maps-iOS-Utils (2.1.0):
72 | - Google-Maps-iOS-Utils/Clustering (= 2.1.0)
73 | - Google-Maps-iOS-Utils/Geometry (= 2.1.0)
74 | - Google-Maps-iOS-Utils/Heatmap (= 2.1.0)
75 | - Google-Maps-iOS-Utils/QuadTree (= 2.1.0)
76 | - GoogleMaps
77 | - Google-Maps-iOS-Utils/Clustering (2.1.0):
78 | - Google-Maps-iOS-Utils/QuadTree
79 | - GoogleMaps
80 | - Google-Maps-iOS-Utils/Geometry (2.1.0):
81 | - GoogleMaps
82 | - Google-Maps-iOS-Utils/Heatmap (2.1.0):
83 | - Google-Maps-iOS-Utils/QuadTree
84 | - GoogleMaps
85 | - Google-Maps-iOS-Utils/QuadTree (2.1.0):
86 | - GoogleMaps
87 | - GoogleMaps (3.5.0):
88 | - GoogleMaps/Maps (= 3.5.0)
89 | - GoogleMaps/Base (3.5.0)
90 | - GoogleMaps/Maps (3.5.0):
91 | - GoogleMaps/Base
92 | - libevent (2.1.12)
93 | - OpenSSL-Universal (1.1.180)
94 | - RCT-Folly (2020.01.13.00):
95 | - boost-for-react-native
96 | - DoubleConversion
97 | - glog
98 | - RCT-Folly/Default (= 2020.01.13.00)
99 | - RCT-Folly/Default (2020.01.13.00):
100 | - boost-for-react-native
101 | - DoubleConversion
102 | - glog
103 | - RCTRequired (0.64.2)
104 | - RCTTypeSafety (0.64.2):
105 | - FBLazyVector (= 0.64.2)
106 | - RCT-Folly (= 2020.01.13.00)
107 | - RCTRequired (= 0.64.2)
108 | - React-Core (= 0.64.2)
109 | - React (0.64.2):
110 | - React-Core (= 0.64.2)
111 | - React-Core/DevSupport (= 0.64.2)
112 | - React-Core/RCTWebSocket (= 0.64.2)
113 | - React-RCTActionSheet (= 0.64.2)
114 | - React-RCTAnimation (= 0.64.2)
115 | - React-RCTBlob (= 0.64.2)
116 | - React-RCTImage (= 0.64.2)
117 | - React-RCTLinking (= 0.64.2)
118 | - React-RCTNetwork (= 0.64.2)
119 | - React-RCTSettings (= 0.64.2)
120 | - React-RCTText (= 0.64.2)
121 | - React-RCTVibration (= 0.64.2)
122 | - React-callinvoker (0.64.2)
123 | - React-Core (0.64.2):
124 | - glog
125 | - RCT-Folly (= 2020.01.13.00)
126 | - React-Core/Default (= 0.64.2)
127 | - React-cxxreact (= 0.64.2)
128 | - React-jsi (= 0.64.2)
129 | - React-jsiexecutor (= 0.64.2)
130 | - React-perflogger (= 0.64.2)
131 | - Yoga
132 | - React-Core/CoreModulesHeaders (0.64.2):
133 | - glog
134 | - RCT-Folly (= 2020.01.13.00)
135 | - React-Core/Default
136 | - React-cxxreact (= 0.64.2)
137 | - React-jsi (= 0.64.2)
138 | - React-jsiexecutor (= 0.64.2)
139 | - React-perflogger (= 0.64.2)
140 | - Yoga
141 | - React-Core/Default (0.64.2):
142 | - glog
143 | - RCT-Folly (= 2020.01.13.00)
144 | - React-cxxreact (= 0.64.2)
145 | - React-jsi (= 0.64.2)
146 | - React-jsiexecutor (= 0.64.2)
147 | - React-perflogger (= 0.64.2)
148 | - Yoga
149 | - React-Core/DevSupport (0.64.2):
150 | - glog
151 | - RCT-Folly (= 2020.01.13.00)
152 | - React-Core/Default (= 0.64.2)
153 | - React-Core/RCTWebSocket (= 0.64.2)
154 | - React-cxxreact (= 0.64.2)
155 | - React-jsi (= 0.64.2)
156 | - React-jsiexecutor (= 0.64.2)
157 | - React-jsinspector (= 0.64.2)
158 | - React-perflogger (= 0.64.2)
159 | - Yoga
160 | - React-Core/RCTActionSheetHeaders (0.64.2):
161 | - glog
162 | - RCT-Folly (= 2020.01.13.00)
163 | - React-Core/Default
164 | - React-cxxreact (= 0.64.2)
165 | - React-jsi (= 0.64.2)
166 | - React-jsiexecutor (= 0.64.2)
167 | - React-perflogger (= 0.64.2)
168 | - Yoga
169 | - React-Core/RCTAnimationHeaders (0.64.2):
170 | - glog
171 | - RCT-Folly (= 2020.01.13.00)
172 | - React-Core/Default
173 | - React-cxxreact (= 0.64.2)
174 | - React-jsi (= 0.64.2)
175 | - React-jsiexecutor (= 0.64.2)
176 | - React-perflogger (= 0.64.2)
177 | - Yoga
178 | - React-Core/RCTBlobHeaders (0.64.2):
179 | - glog
180 | - RCT-Folly (= 2020.01.13.00)
181 | - React-Core/Default
182 | - React-cxxreact (= 0.64.2)
183 | - React-jsi (= 0.64.2)
184 | - React-jsiexecutor (= 0.64.2)
185 | - React-perflogger (= 0.64.2)
186 | - Yoga
187 | - React-Core/RCTImageHeaders (0.64.2):
188 | - glog
189 | - RCT-Folly (= 2020.01.13.00)
190 | - React-Core/Default
191 | - React-cxxreact (= 0.64.2)
192 | - React-jsi (= 0.64.2)
193 | - React-jsiexecutor (= 0.64.2)
194 | - React-perflogger (= 0.64.2)
195 | - Yoga
196 | - React-Core/RCTLinkingHeaders (0.64.2):
197 | - glog
198 | - RCT-Folly (= 2020.01.13.00)
199 | - React-Core/Default
200 | - React-cxxreact (= 0.64.2)
201 | - React-jsi (= 0.64.2)
202 | - React-jsiexecutor (= 0.64.2)
203 | - React-perflogger (= 0.64.2)
204 | - Yoga
205 | - React-Core/RCTNetworkHeaders (0.64.2):
206 | - glog
207 | - RCT-Folly (= 2020.01.13.00)
208 | - React-Core/Default
209 | - React-cxxreact (= 0.64.2)
210 | - React-jsi (= 0.64.2)
211 | - React-jsiexecutor (= 0.64.2)
212 | - React-perflogger (= 0.64.2)
213 | - Yoga
214 | - React-Core/RCTSettingsHeaders (0.64.2):
215 | - glog
216 | - RCT-Folly (= 2020.01.13.00)
217 | - React-Core/Default
218 | - React-cxxreact (= 0.64.2)
219 | - React-jsi (= 0.64.2)
220 | - React-jsiexecutor (= 0.64.2)
221 | - React-perflogger (= 0.64.2)
222 | - Yoga
223 | - React-Core/RCTTextHeaders (0.64.2):
224 | - glog
225 | - RCT-Folly (= 2020.01.13.00)
226 | - React-Core/Default
227 | - React-cxxreact (= 0.64.2)
228 | - React-jsi (= 0.64.2)
229 | - React-jsiexecutor (= 0.64.2)
230 | - React-perflogger (= 0.64.2)
231 | - Yoga
232 | - React-Core/RCTVibrationHeaders (0.64.2):
233 | - glog
234 | - RCT-Folly (= 2020.01.13.00)
235 | - React-Core/Default
236 | - React-cxxreact (= 0.64.2)
237 | - React-jsi (= 0.64.2)
238 | - React-jsiexecutor (= 0.64.2)
239 | - React-perflogger (= 0.64.2)
240 | - Yoga
241 | - React-Core/RCTWebSocket (0.64.2):
242 | - glog
243 | - RCT-Folly (= 2020.01.13.00)
244 | - React-Core/Default (= 0.64.2)
245 | - React-cxxreact (= 0.64.2)
246 | - React-jsi (= 0.64.2)
247 | - React-jsiexecutor (= 0.64.2)
248 | - React-perflogger (= 0.64.2)
249 | - Yoga
250 | - React-CoreModules (0.64.2):
251 | - FBReactNativeSpec (= 0.64.2)
252 | - RCT-Folly (= 2020.01.13.00)
253 | - RCTTypeSafety (= 0.64.2)
254 | - React-Core/CoreModulesHeaders (= 0.64.2)
255 | - React-jsi (= 0.64.2)
256 | - React-RCTImage (= 0.64.2)
257 | - ReactCommon/turbomodule/core (= 0.64.2)
258 | - React-cxxreact (0.64.2):
259 | - boost-for-react-native (= 1.63.0)
260 | - DoubleConversion
261 | - glog
262 | - RCT-Folly (= 2020.01.13.00)
263 | - React-callinvoker (= 0.64.2)
264 | - React-jsi (= 0.64.2)
265 | - React-jsinspector (= 0.64.2)
266 | - React-perflogger (= 0.64.2)
267 | - React-runtimeexecutor (= 0.64.2)
268 | - React-jsi (0.64.2):
269 | - boost-for-react-native (= 1.63.0)
270 | - DoubleConversion
271 | - glog
272 | - RCT-Folly (= 2020.01.13.00)
273 | - React-jsi/Default (= 0.64.2)
274 | - React-jsi/Default (0.64.2):
275 | - boost-for-react-native (= 1.63.0)
276 | - DoubleConversion
277 | - glog
278 | - RCT-Folly (= 2020.01.13.00)
279 | - React-jsiexecutor (0.64.2):
280 | - DoubleConversion
281 | - glog
282 | - RCT-Folly (= 2020.01.13.00)
283 | - React-cxxreact (= 0.64.2)
284 | - React-jsi (= 0.64.2)
285 | - React-perflogger (= 0.64.2)
286 | - React-jsinspector (0.64.2)
287 | - react-native-google-maps (0.29.0):
288 | - Google-Maps-iOS-Utils (= 2.1.0)
289 | - GoogleMaps (= 3.5.0)
290 | - React-Core
291 | - react-native-maps (0.29.0):
292 | - React-Core
293 | - react-native-safe-area-context (3.2.0):
294 | - React-Core
295 | - React-perflogger (0.64.2)
296 | - React-RCTActionSheet (0.64.2):
297 | - React-Core/RCTActionSheetHeaders (= 0.64.2)
298 | - React-RCTAnimation (0.64.2):
299 | - FBReactNativeSpec (= 0.64.2)
300 | - RCT-Folly (= 2020.01.13.00)
301 | - RCTTypeSafety (= 0.64.2)
302 | - React-Core/RCTAnimationHeaders (= 0.64.2)
303 | - React-jsi (= 0.64.2)
304 | - ReactCommon/turbomodule/core (= 0.64.2)
305 | - React-RCTBlob (0.64.2):
306 | - FBReactNativeSpec (= 0.64.2)
307 | - RCT-Folly (= 2020.01.13.00)
308 | - React-Core/RCTBlobHeaders (= 0.64.2)
309 | - React-Core/RCTWebSocket (= 0.64.2)
310 | - React-jsi (= 0.64.2)
311 | - React-RCTNetwork (= 0.64.2)
312 | - ReactCommon/turbomodule/core (= 0.64.2)
313 | - React-RCTImage (0.64.2):
314 | - FBReactNativeSpec (= 0.64.2)
315 | - RCT-Folly (= 2020.01.13.00)
316 | - RCTTypeSafety (= 0.64.2)
317 | - React-Core/RCTImageHeaders (= 0.64.2)
318 | - React-jsi (= 0.64.2)
319 | - React-RCTNetwork (= 0.64.2)
320 | - ReactCommon/turbomodule/core (= 0.64.2)
321 | - React-RCTLinking (0.64.2):
322 | - FBReactNativeSpec (= 0.64.2)
323 | - React-Core/RCTLinkingHeaders (= 0.64.2)
324 | - React-jsi (= 0.64.2)
325 | - ReactCommon/turbomodule/core (= 0.64.2)
326 | - React-RCTNetwork (0.64.2):
327 | - FBReactNativeSpec (= 0.64.2)
328 | - RCT-Folly (= 2020.01.13.00)
329 | - RCTTypeSafety (= 0.64.2)
330 | - React-Core/RCTNetworkHeaders (= 0.64.2)
331 | - React-jsi (= 0.64.2)
332 | - ReactCommon/turbomodule/core (= 0.64.2)
333 | - React-RCTSettings (0.64.2):
334 | - FBReactNativeSpec (= 0.64.2)
335 | - RCT-Folly (= 2020.01.13.00)
336 | - RCTTypeSafety (= 0.64.2)
337 | - React-Core/RCTSettingsHeaders (= 0.64.2)
338 | - React-jsi (= 0.64.2)
339 | - ReactCommon/turbomodule/core (= 0.64.2)
340 | - React-RCTText (0.64.2):
341 | - React-Core/RCTTextHeaders (= 0.64.2)
342 | - React-RCTVibration (0.64.2):
343 | - FBReactNativeSpec (= 0.64.2)
344 | - RCT-Folly (= 2020.01.13.00)
345 | - React-Core/RCTVibrationHeaders (= 0.64.2)
346 | - React-jsi (= 0.64.2)
347 | - ReactCommon/turbomodule/core (= 0.64.2)
348 | - React-runtimeexecutor (0.64.2):
349 | - React-jsi (= 0.64.2)
350 | - ReactCommon/turbomodule/core (0.64.2):
351 | - DoubleConversion
352 | - glog
353 | - RCT-Folly (= 2020.01.13.00)
354 | - React-callinvoker (= 0.64.2)
355 | - React-Core (= 0.64.2)
356 | - React-cxxreact (= 0.64.2)
357 | - React-jsi (= 0.64.2)
358 | - React-perflogger (= 0.64.2)
359 | - RNCMaskedView (0.1.11):
360 | - React
361 | - RNGestureHandler (1.10.3):
362 | - React-Core
363 | - RNReanimated (2.2.0):
364 | - DoubleConversion
365 | - FBLazyVector
366 | - FBReactNativeSpec
367 | - glog
368 | - RCT-Folly
369 | - RCTRequired
370 | - RCTTypeSafety
371 | - React
372 | - React-callinvoker
373 | - React-Core
374 | - React-Core/DevSupport
375 | - React-Core/RCTWebSocket
376 | - React-CoreModules
377 | - React-cxxreact
378 | - React-jsi
379 | - React-jsiexecutor
380 | - React-jsinspector
381 | - React-RCTActionSheet
382 | - React-RCTAnimation
383 | - React-RCTBlob
384 | - React-RCTImage
385 | - React-RCTLinking
386 | - React-RCTNetwork
387 | - React-RCTSettings
388 | - React-RCTText
389 | - React-RCTVibration
390 | - ReactCommon/turbomodule/core
391 | - Yoga
392 | - RNScreens (2.18.1):
393 | - React-Core
394 | - RNSVG (9.12.0):
395 | - React
396 | - Yoga (1.14.0)
397 | - YogaKit (1.18.1):
398 | - Yoga (~> 1.14)
399 |
400 | DEPENDENCIES:
401 | - DoubleConversion (from `../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec`)
402 | - FBLazyVector (from `../node_modules/react-native/Libraries/FBLazyVector`)
403 | - FBReactNativeSpec (from `../node_modules/react-native/React/FBReactNativeSpec`)
404 | - Flipper (= 0.87.0)
405 | - Flipper-DoubleConversion (= 1.1.7)
406 | - Flipper-Folly (= 2.5.3)
407 | - Flipper-Glog (= 0.3.6)
408 | - Flipper-PeerTalk (~> 0.0.4)
409 | - Flipper-RSocket (= 1.3.1)
410 | - FlipperKit (= 0.87.0)
411 | - FlipperKit/Core (= 0.87.0)
412 | - FlipperKit/CppBridge (= 0.87.0)
413 | - FlipperKit/FBCxxFollyDynamicConvert (= 0.87.0)
414 | - FlipperKit/FBDefines (= 0.87.0)
415 | - FlipperKit/FKPortForwarding (= 0.87.0)
416 | - FlipperKit/FlipperKitHighlightOverlay (= 0.87.0)
417 | - FlipperKit/FlipperKitLayoutPlugin (= 0.87.0)
418 | - FlipperKit/FlipperKitLayoutTextSearchable (= 0.87.0)
419 | - FlipperKit/FlipperKitNetworkPlugin (= 0.87.0)
420 | - FlipperKit/FlipperKitReactPlugin (= 0.87.0)
421 | - FlipperKit/FlipperKitUserDefaultsPlugin (= 0.87.0)
422 | - FlipperKit/SKIOSNetworkPlugin (= 0.87.0)
423 | - glog (from `../node_modules/react-native/third-party-podspecs/glog.podspec`)
424 | - Google-Maps-iOS-Utils
425 | - GoogleMaps
426 | - RCT-Folly (from `../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec`)
427 | - RCTRequired (from `../node_modules/react-native/Libraries/RCTRequired`)
428 | - RCTTypeSafety (from `../node_modules/react-native/Libraries/TypeSafety`)
429 | - React (from `../node_modules/react-native/`)
430 | - React-callinvoker (from `../node_modules/react-native/ReactCommon/callinvoker`)
431 | - React-Core (from `../node_modules/react-native/`)
432 | - React-Core/DevSupport (from `../node_modules/react-native/`)
433 | - React-Core/RCTWebSocket (from `../node_modules/react-native/`)
434 | - React-CoreModules (from `../node_modules/react-native/React/CoreModules`)
435 | - React-cxxreact (from `../node_modules/react-native/ReactCommon/cxxreact`)
436 | - React-jsi (from `../node_modules/react-native/ReactCommon/jsi`)
437 | - React-jsiexecutor (from `../node_modules/react-native/ReactCommon/jsiexecutor`)
438 | - React-jsinspector (from `../node_modules/react-native/ReactCommon/jsinspector`)
439 | - react-native-google-maps (from `../node_modules/react-native-maps`)
440 | - react-native-maps (from `../node_modules/react-native-maps`)
441 | - react-native-safe-area-context (from `../node_modules/react-native-safe-area-context`)
442 | - React-perflogger (from `../node_modules/react-native/ReactCommon/reactperflogger`)
443 | - React-RCTActionSheet (from `../node_modules/react-native/Libraries/ActionSheetIOS`)
444 | - React-RCTAnimation (from `../node_modules/react-native/Libraries/NativeAnimation`)
445 | - React-RCTBlob (from `../node_modules/react-native/Libraries/Blob`)
446 | - React-RCTImage (from `../node_modules/react-native/Libraries/Image`)
447 | - React-RCTLinking (from `../node_modules/react-native/Libraries/LinkingIOS`)
448 | - React-RCTNetwork (from `../node_modules/react-native/Libraries/Network`)
449 | - React-RCTSettings (from `../node_modules/react-native/Libraries/Settings`)
450 | - React-RCTText (from `../node_modules/react-native/Libraries/Text`)
451 | - React-RCTVibration (from `../node_modules/react-native/Libraries/Vibration`)
452 | - React-runtimeexecutor (from `../node_modules/react-native/ReactCommon/runtimeexecutor`)
453 | - ReactCommon/turbomodule/core (from `../node_modules/react-native/ReactCommon`)
454 | - "RNCMaskedView (from `../node_modules/@react-native-community/masked-view`)"
455 | - RNGestureHandler (from `../node_modules/react-native-gesture-handler`)
456 | - RNReanimated (from `../node_modules/react-native-reanimated`)
457 | - RNScreens (from `../node_modules/react-native-screens`)
458 | - RNSVG (from `../node_modules/react-native-svg`)
459 | - Yoga (from `../node_modules/react-native/ReactCommon/yoga`)
460 |
461 | SPEC REPOS:
462 | trunk:
463 | - boost-for-react-native
464 | - CocoaAsyncSocket
465 | - Flipper
466 | - Flipper-DoubleConversion
467 | - Flipper-Folly
468 | - Flipper-Glog
469 | - Flipper-PeerTalk
470 | - Flipper-RSocket
471 | - FlipperKit
472 | - Google-Maps-iOS-Utils
473 | - GoogleMaps
474 | - libevent
475 | - OpenSSL-Universal
476 | - YogaKit
477 |
478 | EXTERNAL SOURCES:
479 | DoubleConversion:
480 | :podspec: "../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec"
481 | FBLazyVector:
482 | :path: "../node_modules/react-native/Libraries/FBLazyVector"
483 | FBReactNativeSpec:
484 | :path: "../node_modules/react-native/React/FBReactNativeSpec"
485 | glog:
486 | :podspec: "../node_modules/react-native/third-party-podspecs/glog.podspec"
487 | RCT-Folly:
488 | :podspec: "../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec"
489 | RCTRequired:
490 | :path: "../node_modules/react-native/Libraries/RCTRequired"
491 | RCTTypeSafety:
492 | :path: "../node_modules/react-native/Libraries/TypeSafety"
493 | React:
494 | :path: "../node_modules/react-native/"
495 | React-callinvoker:
496 | :path: "../node_modules/react-native/ReactCommon/callinvoker"
497 | React-Core:
498 | :path: "../node_modules/react-native/"
499 | React-CoreModules:
500 | :path: "../node_modules/react-native/React/CoreModules"
501 | React-cxxreact:
502 | :path: "../node_modules/react-native/ReactCommon/cxxreact"
503 | React-jsi:
504 | :path: "../node_modules/react-native/ReactCommon/jsi"
505 | React-jsiexecutor:
506 | :path: "../node_modules/react-native/ReactCommon/jsiexecutor"
507 | React-jsinspector:
508 | :path: "../node_modules/react-native/ReactCommon/jsinspector"
509 | react-native-google-maps:
510 | :path: "../node_modules/react-native-maps"
511 | react-native-maps:
512 | :path: "../node_modules/react-native-maps"
513 | react-native-safe-area-context:
514 | :path: "../node_modules/react-native-safe-area-context"
515 | React-perflogger:
516 | :path: "../node_modules/react-native/ReactCommon/reactperflogger"
517 | React-RCTActionSheet:
518 | :path: "../node_modules/react-native/Libraries/ActionSheetIOS"
519 | React-RCTAnimation:
520 | :path: "../node_modules/react-native/Libraries/NativeAnimation"
521 | React-RCTBlob:
522 | :path: "../node_modules/react-native/Libraries/Blob"
523 | React-RCTImage:
524 | :path: "../node_modules/react-native/Libraries/Image"
525 | React-RCTLinking:
526 | :path: "../node_modules/react-native/Libraries/LinkingIOS"
527 | React-RCTNetwork:
528 | :path: "../node_modules/react-native/Libraries/Network"
529 | React-RCTSettings:
530 | :path: "../node_modules/react-native/Libraries/Settings"
531 | React-RCTText:
532 | :path: "../node_modules/react-native/Libraries/Text"
533 | React-RCTVibration:
534 | :path: "../node_modules/react-native/Libraries/Vibration"
535 | React-runtimeexecutor:
536 | :path: "../node_modules/react-native/ReactCommon/runtimeexecutor"
537 | ReactCommon:
538 | :path: "../node_modules/react-native/ReactCommon"
539 | RNCMaskedView:
540 | :path: "../node_modules/@react-native-community/masked-view"
541 | RNGestureHandler:
542 | :path: "../node_modules/react-native-gesture-handler"
543 | RNReanimated:
544 | :path: "../node_modules/react-native-reanimated"
545 | RNScreens:
546 | :path: "../node_modules/react-native-screens"
547 | RNSVG:
548 | :path: "../node_modules/react-native-svg"
549 | Yoga:
550 | :path: "../node_modules/react-native/ReactCommon/yoga"
551 |
552 | SPEC CHECKSUMS:
553 | boost-for-react-native: 39c7adb57c4e60d6c5479dd8623128eb5b3f0f2c
554 | CocoaAsyncSocket: 065fd1e645c7abab64f7a6a2007a48038fdc6a99
555 | DoubleConversion: cf9b38bf0b2d048436d9a82ad2abe1404f11e7de
556 | FBLazyVector: e686045572151edef46010a6f819ade377dfeb4b
557 | FBReactNativeSpec: 74e1c5102a0b6183b8dc7b3e7251ff669cce2cf6
558 | Flipper: 1bd2db48dcc31e4b167b9a33ec1df01c2ded4893
559 | Flipper-DoubleConversion: 38631e41ef4f9b12861c67d17cb5518d06badc41
560 | Flipper-Folly: 755929a4f851b2fb2c347d533a23f191b008554c
561 | Flipper-Glog: 1dfd6abf1e922806c52ceb8701a3599a79a200a6
562 | Flipper-PeerTalk: 116d8f857dc6ef55c7a5a75ea3ceaafe878aadc9
563 | Flipper-RSocket: 127954abe8b162fcaf68d2134d34dc2bd7076154
564 | FlipperKit: 651f50a42eb95c01b3e89a60996dd6aded529eeb
565 | glog: 73c2498ac6884b13ede40eda8228cb1eee9d9d62
566 | Google-Maps-iOS-Utils: c32891ff472eaaa1fca032beedafa1a013af7875
567 | GoogleMaps: 32ca02de09de357a10ac773f2c70f1986751392d
568 | libevent: 4049cae6c81cdb3654a443be001fb9bdceff7913
569 | OpenSSL-Universal: 1aa4f6a6ee7256b83db99ec1ccdaa80d10f9af9b
570 | RCT-Folly: ec7a233ccc97cc556cf7237f0db1ff65b986f27c
571 | RCTRequired: 6d3e854f0e7260a648badd0d44fc364bc9da9728
572 | RCTTypeSafety: c1f31d19349c6b53085766359caac425926fafaa
573 | React: bda6b6d7ae912de97d7a61aa5c160db24aa2ad69
574 | React-callinvoker: 9840ea7e8e88ed73d438edb725574820b29b5baa
575 | React-Core: b5e385da7ce5f16a220fc60fd0749eae2c6120f0
576 | React-CoreModules: 17071a4e2c5239b01585f4aa8070141168ab298f
577 | React-cxxreact: 9be7b6340ed9f7c53e53deca7779f07cd66525ba
578 | React-jsi: 67747b9722f6dab2ffe15b011bcf6b3f2c3f1427
579 | React-jsiexecutor: 80c46bd381fd06e418e0d4f53672dc1d1945c4c3
580 | React-jsinspector: cc614ec18a9ca96fd275100c16d74d62ee11f0ae
581 | react-native-google-maps: 54a19be628292d79d0aaec5277e97f6b17c158dd
582 | react-native-maps: e3dbe21292c4b611209e2ccf1b07db58568f66fc
583 | react-native-safe-area-context: f0906bf8bc9835ac9a9d3f97e8bde2a997d8da79
584 | React-perflogger: 25373e382fed75ce768a443822f07098a15ab737
585 | React-RCTActionSheet: af7796ba49ffe4ca92e7277a5d992d37203f7da5
586 | React-RCTAnimation: 6a2e76ab50c6f25b428d81b76a5a45351c4d77aa
587 | React-RCTBlob: 02a2887023e0eed99391b6445b2e23a2a6f9226d
588 | React-RCTImage: ce5bf8e7438f2286d9b646a05d6ab11f38b0323d
589 | React-RCTLinking: ccd20742de14e020cb5f99d5c7e0bf0383aefbd9
590 | React-RCTNetwork: dfb9d089ab0753e5e5f55fc4b1210858f7245647
591 | React-RCTSettings: b14aef2d83699e48b410fb7c3ba5b66cd3291ae2
592 | React-RCTText: 41a2e952dd9adc5caf6fb68ed46b275194d5da5f
593 | React-RCTVibration: 24600e3b1aaa77126989bc58b6747509a1ba14f3
594 | React-runtimeexecutor: a9904c6d0218fb9f8b19d6dd88607225927668f9
595 | ReactCommon: 149906e01aa51142707a10665185db879898e966
596 | RNCMaskedView: 0e1bc4bfa8365eba5fbbb71e07fbdc0555249489
597 | RNGestureHandler: a479ebd5ed4221a810967000735517df0d2db211
598 | RNReanimated: 9c13c86454bfd54dab7505c1a054470bfecd2563
599 | RNScreens: f7ad633b2e0190b77b6a7aab7f914fad6f198d8d
600 | RNSVG: 75670614bca635d3dd64bc267bc199e539cb4fa9
601 | Yoga: 575c581c63e0d35c9a83f4b46d01d63abc1100ac
602 | YogaKit: f782866e155069a2cca2517aafea43200b01fd5a
603 |
604 | PODFILE CHECKSUM: b742e93f7283de32fbbd4dabcb8bf801a437210d
605 |
606 | COCOAPODS: 1.10.1
607 |
--------------------------------------------------------------------------------
/metro.config.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Metro configuration for React Native
3 | * https://github.com/facebook/react-native
4 | *
5 | * @format
6 | */
7 |
8 | module.exports = {
9 | transformer: {
10 | getTransformOptions: async () => ({
11 | transform: {
12 | experimentalImportSupport: false,
13 | inlineRequires: false,
14 | },
15 | }),
16 | },
17 | };
18 |
--------------------------------------------------------------------------------
/navigation/tabs.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import {
3 | View,
4 | Image,
5 | TouchableOpacity
6 | } from 'react-native';
7 | import { createBottomTabNavigator, BottomTabBar } from "@react-navigation/bottom-tabs"
8 | import Svg, { Path } from 'react-native-svg';
9 | import { isIphoneX } from 'react-native-iphone-x-helper';
10 |
11 | import { Home } from "../screens"
12 |
13 | import { COLORS, icons } from "../constants"
14 |
15 | const Tab = createBottomTabNavigator();
16 |
17 | const TabBarCustomButton = ({ accessibilityState, children, onPress }) => {
18 |
19 | var isSelected = accessibilityState.selected
20 |
21 | if (isSelected) {
22 | return (
23 |
24 |
25 |
26 |
36 |
37 |
38 |
39 |
51 | {children}
52 |
53 |
54 | )
55 | } else {
56 | return (
57 |
66 | {children}
67 |
68 | )
69 | }
70 | }
71 |
72 | const CustomTabBar = (props) => {
73 | if (isIphoneX()) {
74 | return (
75 |
76 |
86 |
89 |
90 | )
91 | } else {
92 | return (
93 |
96 | )
97 | }
98 |
99 | }
100 |
101 | const Tabs = () => {
102 | return (
103 | (
117 |
120 | )}
121 | >
122 | (
127 |
136 | ),
137 | tabBarButton: (props) => (
138 |
141 | )
142 | }}
143 | />
144 |
145 | (
150 |
159 | ),
160 | tabBarButton: (props) => (
161 |
164 | )
165 | }}
166 | />
167 |
168 | (
173 |
182 | ),
183 | tabBarButton: (props) => (
184 |
187 | )
188 | }}
189 | />
190 |
191 | (
196 |
205 | ),
206 | tabBarButton: (props) => (
207 |
210 | )
211 | }}
212 | />
213 |
214 | )
215 | }
216 |
217 | export default Tabs
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "FoodDeliveryApp",
3 | "version": "0.0.1",
4 | "private": true,
5 | "scripts": {
6 | "android": "react-native run-android",
7 | "ios": "react-native run-ios",
8 | "start": "react-native start",
9 | "test": "jest",
10 | "lint": "eslint ."
11 | },
12 | "dependencies": {
13 | "@react-native-community/masked-view": "^0.1.10",
14 | "@react-navigation/bottom-tabs": "^5.11.2",
15 | "@react-navigation/native": "^5.8.10",
16 | "@react-navigation/stack": "^5.12.8",
17 | "react": "16.13.1",
18 | "react-native": "^0.64.2",
19 | "react-native-gesture-handler": "^1.9.0",
20 | "react-native-iphone-x-helper": "^1.3.1",
21 | "react-native-maps": "^0.29.0",
22 | "react-native-maps-directions": "^1.8.0",
23 | "react-native-reanimated": "^2.2.0",
24 | "react-native-safe-area-context": "^3.1.9",
25 | "react-native-screens": "^2.15.0",
26 | "react-native-svg": "^9.12.0"
27 | },
28 | "devDependencies": {
29 | "@babel/core": "7.12.9",
30 | "@babel/runtime": "7.12.5",
31 | "@react-native-community/eslint-config": "1.1.0",
32 | "babel-jest": "25.5.1",
33 | "eslint": "6.8.0",
34 | "jest": "25.5.4",
35 | "metro-react-native-babel-preset": "0.59.0",
36 | "react-test-renderer": "16.13.1"
37 | },
38 | "jest": {
39 | "preset": "react-native"
40 | }
41 | }
42 |
--------------------------------------------------------------------------------
/react-native.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | project: {
3 | ios: {},
4 | android: {}
5 | },
6 | assets: ["./assets/fonts/"]
7 | };
--------------------------------------------------------------------------------
/screens/Home.js:
--------------------------------------------------------------------------------
1 | import React from "react";
2 | import {
3 | SafeAreaView,
4 | View,
5 | Text,
6 | StyleSheet,
7 | TouchableOpacity,
8 | Image,
9 | FlatList
10 | } from "react-native";
11 |
12 | import { icons, images, SIZES, COLORS, FONTS } from '../constants'
13 |
14 | const Home = ({ navigation }) => {
15 |
16 | // Dummy Datas
17 |
18 | const initialCurrentLocation = {
19 | streetName: "Kuching",
20 | gps: {
21 | latitude: 1.5496614931250685,
22 | longitude: 110.36381866919922
23 | }
24 | }
25 |
26 | const categoryData = [
27 | {
28 | id: 1,
29 | name: "Rice",
30 | icon: icons.rice_bowl,
31 | },
32 | {
33 | id: 2,
34 | name: "Noodles",
35 | icon: icons.noodle,
36 | },
37 | {
38 | id: 3,
39 | name: "Hot Dogs",
40 | icon: icons.hotdog,
41 | },
42 | {
43 | id: 4,
44 | name: "Salads",
45 | icon: icons.salad,
46 | },
47 | {
48 | id: 5,
49 | name: "Burgers",
50 | icon: icons.hamburger,
51 | },
52 | {
53 | id: 6,
54 | name: "Pizza",
55 | icon: icons.pizza,
56 | },
57 | {
58 | id: 7,
59 | name: "Snacks",
60 | icon: icons.fries,
61 | },
62 | {
63 | id: 8,
64 | name: "Sushi",
65 | icon: icons.sushi,
66 | },
67 | {
68 | id: 9,
69 | name: "Desserts",
70 | icon: icons.donut,
71 | },
72 | {
73 | id: 10,
74 | name: "Drinks",
75 | icon: icons.drink,
76 | },
77 |
78 | ]
79 |
80 | // price rating
81 | const affordable = 1
82 | const fairPrice = 2
83 | const expensive = 3
84 |
85 | const restaurantData = [
86 | {
87 | id: 1,
88 | name: "ByProgrammers Burger",
89 | rating: 4.8,
90 | categories: [5, 7],
91 | priceRating: affordable,
92 | photo: images.burger_restaurant_1,
93 | duration: "30 - 45 min",
94 | location: {
95 | latitude: 1.5347282806345879,
96 | longitude: 110.35632207358996,
97 | },
98 | courier: {
99 | avatar: images.avatar_1,
100 | name: "Amy"
101 | },
102 | menu: [
103 | {
104 | menuId: 1,
105 | name: "Crispy Chicken Burger",
106 | photo: images.crispy_chicken_burger,
107 | description: "Burger with crispy chicken, cheese and lettuce",
108 | calories: 200,
109 | price: 10
110 | },
111 | {
112 | menuId: 2,
113 | name: "Crispy Chicken Burger with Honey Mustard",
114 | photo: images.honey_mustard_chicken_burger,
115 | description: "Crispy Chicken Burger with Honey Mustard Coleslaw",
116 | calories: 250,
117 | price: 15
118 | },
119 | {
120 | menuId: 3,
121 | name: "Crispy Baked French Fries",
122 | photo: images.baked_fries,
123 | description: "Crispy Baked French Fries",
124 | calories: 194,
125 | price: 8
126 | }
127 | ]
128 | },
129 | {
130 | id: 2,
131 | name: "ByProgrammers Pizza",
132 | rating: 4.8,
133 | categories: [2, 4, 6],
134 | priceRating: expensive,
135 | photo: images.pizza_restaurant,
136 | duration: "15 - 20 min",
137 | location: {
138 | latitude: 1.556306570595712,
139 | longitude: 110.35504616746915,
140 | },
141 | courier: {
142 | avatar: images.avatar_2,
143 | name: "Jackson"
144 | },
145 | menu: [
146 | {
147 | menuId: 4,
148 | name: "Hawaiian Pizza",
149 | photo: images.hawaiian_pizza,
150 | description: "Canadian bacon, homemade pizza crust, pizza sauce",
151 | calories: 250,
152 | price: 15
153 | },
154 | {
155 | menuId: 5,
156 | name: "Tomato & Basil Pizza",
157 | photo: images.pizza,
158 | description: "Fresh tomatoes, aromatic basil pesto and melted bocconcini",
159 | calories: 250,
160 | price: 20
161 | },
162 | {
163 | menuId: 6,
164 | name: "Tomato Pasta",
165 | photo: images.tomato_pasta,
166 | description: "Pasta with fresh tomatoes",
167 | calories: 100,
168 | price: 10
169 | },
170 | {
171 | menuId: 7,
172 | name: "Mediterranean Chopped Salad ",
173 | photo: images.salad,
174 | description: "Finely chopped lettuce, tomatoes, cucumbers",
175 | calories: 100,
176 | price: 10
177 | }
178 | ]
179 | },
180 | {
181 | id: 3,
182 | name: "ByProgrammers Hotdogs",
183 | rating: 4.8,
184 | categories: [3],
185 | priceRating: expensive,
186 | photo: images.hot_dog_restaurant,
187 | duration: "20 - 25 min",
188 | location: {
189 | latitude: 1.5238753474714375,
190 | longitude: 110.34261833833622,
191 | },
192 | courier: {
193 | avatar: images.avatar_3,
194 | name: "James"
195 | },
196 | menu: [
197 | {
198 | menuId: 8,
199 | name: "Chicago Style Hot Dog",
200 | photo: images.chicago_hot_dog,
201 | description: "Fresh tomatoes, all beef hot dogs",
202 | calories: 100,
203 | price: 20
204 | }
205 | ]
206 | },
207 | {
208 | id: 4,
209 | name: "ByProgrammers Sushi",
210 | rating: 4.8,
211 | categories: [8],
212 | priceRating: expensive,
213 | photo: images.japanese_restaurant,
214 | duration: "10 - 15 min",
215 | location: {
216 | latitude: 1.5578068150528928,
217 | longitude: 110.35482523764315,
218 | },
219 | courier: {
220 | avatar: images.avatar_4,
221 | name: "Ahmad"
222 | },
223 | menu: [
224 | {
225 | menuId: 9,
226 | name: "Sushi sets",
227 | photo: images.sushi,
228 | description: "Fresh salmon, sushi rice, fresh juicy avocado",
229 | calories: 100,
230 | price: 50
231 | }
232 | ]
233 | },
234 | {
235 | id: 5,
236 | name: "ByProgrammers Cuisine",
237 | rating: 4.8,
238 | categories: [1, 2],
239 | priceRating: affordable,
240 | photo: images.noodle_shop,
241 | duration: "15 - 20 min",
242 | location: {
243 | latitude: 1.558050496260768,
244 | longitude: 110.34743759630511,
245 | },
246 | courier: {
247 | avatar: images.avatar_4,
248 | name: "Muthu"
249 | },
250 | menu: [
251 | {
252 | menuId: 10,
253 | name: "Kolo Mee",
254 | photo: images.kolo_mee,
255 | description: "Noodles with char siu",
256 | calories: 200,
257 | price: 5
258 | },
259 | {
260 | menuId: 11,
261 | name: "Sarawak Laksa",
262 | photo: images.sarawak_laksa,
263 | description: "Vermicelli noodles, cooked prawns",
264 | calories: 300,
265 | price: 8
266 | },
267 | {
268 | menuId: 12,
269 | name: "Nasi Lemak",
270 | photo: images.nasi_lemak,
271 | description: "A traditional Malay rice dish",
272 | calories: 300,
273 | price: 8
274 | },
275 | {
276 | menuId: 13,
277 | name: "Nasi Briyani with Mutton",
278 | photo: images.nasi_briyani_mutton,
279 | description: "A traditional Indian rice dish with mutton",
280 | calories: 300,
281 | price: 8
282 | },
283 |
284 | ]
285 | },
286 | {
287 |
288 | id: 6,
289 | name: "ByProgrammers Dessets",
290 | rating: 4.9,
291 | categories: [9, 10],
292 | priceRating: affordable,
293 | photo: images.kek_lapis_shop,
294 | duration: "35 - 40 min",
295 | location: {
296 | latitude: 1.5573478487252896,
297 | longitude: 110.35568783282145,
298 | },
299 | courier: {
300 | avatar: images.avatar_1,
301 | name: "Jessie"
302 | },
303 | menu: [
304 | {
305 | menuId: 12,
306 | name: "Teh C Peng",
307 | photo: images.teh_c_peng,
308 | description: "Three Layer Teh C Peng",
309 | calories: 100,
310 | price: 2
311 | },
312 | {
313 | menuId: 13,
314 | name: "ABC Ice Kacang",
315 | photo: images.ice_kacang,
316 | description: "Shaved Ice with red beans",
317 | calories: 100,
318 | price: 3
319 | },
320 | {
321 | menuId: 14,
322 | name: "Kek Lapis",
323 | photo: images.kek_lapis,
324 | description: "Layer cakes",
325 | calories: 300,
326 | price: 20
327 | }
328 | ]
329 |
330 | }
331 |
332 |
333 | ]
334 |
335 | const [categories, setCategories] = React.useState(categoryData)
336 | const [selectedCategory, setSelectedCategory] = React.useState(null)
337 | const [restaurants, setRestaurants] = React.useState(restaurantData)
338 | const [currentLocation, setCurrentLocation] = React.useState(initialCurrentLocation)
339 |
340 |
341 | function onSelectCategory(category) {
342 | //filter restaurant
343 | let restaurantList = restaurantData.filter(a => a.categories.includes(category.id))
344 |
345 | setRestaurants(restaurantList)
346 |
347 | setSelectedCategory(category)
348 | }
349 |
350 | function getCategoryNameById(id) {
351 | let category = categories.filter(a => a.id == id)
352 |
353 | if (category.length > 0)
354 | return category[0].name
355 |
356 | return ""
357 | }
358 |
359 | function renderHeader() {
360 | return (
361 |
362 |
369 |
377 |
378 |
379 |
380 |
390 | {currentLocation.streetName}
391 |
392 |
393 |
394 |
401 |
409 |
410 |
411 | )
412 | }
413 |
414 | function renderMainCategories() {
415 | const renderItem = ({ item }) => {
416 | return (
417 | onSelectCategory(item)}
429 | >
430 |
440 |
448 |
449 |
450 |
457 | {item.name}
458 |
459 |
460 | )
461 | }
462 |
463 | return (
464 |
465 | Main
466 | Categories
467 |
468 | `${item.id}`}
473 | renderItem={renderItem}
474 | contentContainerStyle={{ paddingVertical: SIZES.padding * 2 }}
475 | />
476 |
477 | )
478 | }
479 |
480 | function renderRestaurantList() {
481 | const renderItem = ({ item }) => (
482 | navigation.navigate("Restaurant", {
485 | item,
486 | currentLocation
487 | })}
488 | >
489 | {/* Image */}
490 |
495 |
504 |
505 |
519 | {item.duration}
520 |
521 |
522 |
523 | {/* Restaurant Info */}
524 | {item.name}
525 |
526 |
532 | {/* Rating */}
533 |
542 | {item.rating}
543 |
544 | {/* Categories */}
545 |
551 | {
552 | item.categories.map((categoryId) => {
553 | return (
554 |
558 | {getCategoryNameById(categoryId)}
559 | .
560 |
561 | )
562 | })
563 | }
564 |
565 | {/* Price */}
566 | {
567 | [1, 2, 3].map((priceRating) => (
568 | $
575 | ))
576 | }
577 |
578 |
579 |
580 | )
581 |
582 | return (
583 | `${item.id}`}
586 | renderItem={renderItem}
587 | contentContainerStyle={{
588 | paddingHorizontal: SIZES.padding * 2,
589 | paddingBottom: 30
590 | }}
591 | />
592 | )
593 | }
594 |
595 | return (
596 |
597 | {renderHeader()}
598 | {renderMainCategories()}
599 | {renderRestaurantList()}
600 |
601 | )
602 | }
603 |
604 | const styles = StyleSheet.create({
605 | container: {
606 | flex: 1,
607 | backgroundColor: COLORS.lightGray4
608 | },
609 | shadow: {
610 | shadowColor: "#000",
611 | shadowOffset: {
612 | width: 0,
613 | height: 3,
614 | },
615 | shadowOpacity: 0.1,
616 | shadowRadius: 3,
617 | elevation: 1,
618 | }
619 | })
620 |
621 | export default Home;
--------------------------------------------------------------------------------
/screens/OrderDelivery.js:
--------------------------------------------------------------------------------
1 | import React from "react";
2 | import {
3 | View,
4 | Text,
5 | Image,
6 | TouchableOpacity
7 | } from "react-native";
8 | import MapView, { PROVIDER_GOOGLE, Marker } from 'react-native-maps';
9 | import MapViewDirections from "react-native-maps-directions";
10 |
11 | import { COLORS, FONTS, icons, SIZES, GOOGLE_API_KEY } from "../constants"
12 |
13 | const OrderDelivery = ({ route, navigation }) => {
14 |
15 | const mapView = React.useRef()
16 |
17 | const [restaurant, setRestaurant] = React.useState(null)
18 | const [streetName, setStreetName] = React.useState("")
19 | const [fromLocation, setFromLocation] = React.useState(null)
20 | const [toLocation, setToLocation] = React.useState(null)
21 | const [region, setRegion] = React.useState(null)
22 |
23 | const [duration, setDuration] = React.useState(0)
24 | const [isReady, setIsReady] = React.useState(false)
25 | const [angle, setAngle] = React.useState(0)
26 |
27 | React.useEffect(() => {
28 | let { restaurant, currentLocation } = route.params;
29 |
30 | let fromLoc = currentLocation.gps
31 | let toLoc = restaurant.location
32 | let street = currentLocation.streetName
33 |
34 | let mapRegion = {
35 | latitude: (fromLoc.latitude + toLoc.latitude) / 2,
36 | longitude: (fromLoc.longitude + toLoc.longitude) / 2,
37 | latitudeDelta: Math.abs(fromLoc.latitude - toLoc.latitude) * 2,
38 | longitudeDelta: Math.abs(fromLoc.longitude - toLoc.longitude) * 2
39 | }
40 |
41 | setRestaurant(restaurant)
42 | setStreetName(street)
43 | setFromLocation(fromLoc)
44 | setToLocation(toLoc)
45 | setRegion(mapRegion)
46 |
47 | }, [])
48 |
49 | function calculateAngle(coordinates) {
50 | let startLat = coordinates[0]["latitude"]
51 | let startLng = coordinates[0]["longitude"]
52 | let endLat = coordinates[1]["latitude"]
53 | let endLng = coordinates[1]["longitude"]
54 | let dx = endLat - startLat
55 | let dy = endLng - startLng
56 |
57 | return Math.atan2(dy, dx) * 180 / Math.PI
58 | }
59 |
60 | function zoomIn() {
61 | let newRegion = {
62 | latitude: region.latitude,
63 | longitude: region.longitude,
64 | latitudeDelta: region.latitudeDelta / 2,
65 | longitudeDelta: region.longitudeDelta / 2
66 | }
67 |
68 | setRegion(newRegion)
69 | mapView.current.animateToRegion(newRegion, 200)
70 | }
71 |
72 | function zoomOut() {
73 | let newRegion = {
74 | latitude: region.latitude,
75 | longitude: region.longitude,
76 | latitudeDelta: region.latitudeDelta * 2,
77 | longitudeDelta: region.longitudeDelta * 2
78 | }
79 |
80 | setRegion(newRegion)
81 | mapView.current.animateToRegion(newRegion, 200)
82 | }
83 |
84 | function renderMap() {
85 | const destinationMarker = () => (
86 |
89 |
99 |
109 |
117 |
118 |
119 |
120 | )
121 |
122 | const carIcon = () => (
123 |
129 |
136 |
137 | )
138 |
139 | return (
140 |
141 |
147 | {
155 | setDuration(result.duration)
156 |
157 | if (!isReady) {
158 | // Fit route into maps
159 | mapView.current.fitToCoordinates(result.coordinates, {
160 | edgePadding: {
161 | right: (SIZES.width / 20),
162 | bottom: (SIZES.height / 4),
163 | left: (SIZES.width / 20),
164 | top: (SIZES.height / 8)
165 | }
166 | })
167 |
168 | // Reposition the car
169 | let nextLoc = {
170 | latitude: result.coordinates[0]["latitude"],
171 | longitude: result.coordinates[0]["longitude"]
172 | }
173 |
174 | if (result.coordinates.length >= 2) {
175 | let angle = calculateAngle(result.coordinates)
176 | setAngle(angle)
177 | }
178 |
179 | setFromLocation(nextLoc)
180 | setIsReady(true)
181 | }
182 | }}
183 | />
184 | {destinationMarker()}
185 | {carIcon()}
186 |
187 |
188 | )
189 | }
190 |
191 | function renderDestinationHeader() {
192 | return (
193 |
204 |
215 |
223 |
224 |
225 | {streetName}
226 |
227 |
228 | {Math.ceil(duration)} mins
229 |
230 |
231 | )
232 | }
233 |
234 | function renderDeliveryInfo() {
235 | return (
236 |
246 |
255 |
256 | {/* Avatar */}
257 |
265 |
266 |
267 | {/* Name & Rating */}
268 |
269 | {restaurant?.courier.name}
270 |
271 |
275 | {restaurant?.rating}
276 |
277 |
278 |
279 | {/* Restaurant */}
280 | {restaurant?.name}
281 |
282 |
283 |
284 | {/* Buttons */}
285 |
292 | navigation.navigate("Home")}
303 | >
304 | Call
305 |
306 |
307 | navigation.goBack()}
317 | >
318 | Cancel
319 |
320 |
321 |
322 |
323 |
324 | )
325 | }
326 |
327 | function renderButtons() {
328 | return (
329 |
339 | {/* Zoom In */}
340 | zoomIn()}
350 | >
351 | +
352 |
353 |
354 | {/* Zoom Out */}
355 | zoomOut()}
365 | >
366 | -
367 |
368 |
369 |
370 | )
371 | }
372 |
373 | return (
374 |
375 | {renderMap()}
376 | {renderDestinationHeader()}
377 | {renderDeliveryInfo()}
378 | {renderButtons()}
379 |
380 | )
381 | }
382 |
383 | export default OrderDelivery;
--------------------------------------------------------------------------------
/screens/Restaurant.js:
--------------------------------------------------------------------------------
1 | import React from "react";
2 | import {
3 | StyleSheet,
4 | SafeAreaView,
5 | View,
6 | Text,
7 | TouchableOpacity,
8 | Image,
9 | Animated
10 | } from "react-native";
11 | import { isIphoneX } from 'react-native-iphone-x-helper'
12 |
13 | import { icons, COLORS, SIZES, FONTS } from '../constants'
14 |
15 | const Restaurant = ({ route, navigation }) => {
16 |
17 | const scrollX = new Animated.Value(0);
18 | const [restaurant, setRestaurant] = React.useState(null);
19 | const [currentLocation, setCurrentLocation] = React.useState(null);
20 | const [orderItems, setOrderItems] = React.useState([]);
21 |
22 | React.useEffect(() => {
23 | let { item, currentLocation } = route.params;
24 |
25 | setRestaurant(item)
26 | setCurrentLocation(currentLocation)
27 | })
28 |
29 | function editOrder(action, menuId, price) {
30 | let orderList = orderItems.slice()
31 | let item = orderList.filter(a => a.menuId == menuId)
32 |
33 | if (action == "+") {
34 | if (item.length > 0) {
35 | let newQty = item[0].qty + 1
36 | item[0].qty = newQty
37 | item[0].total = item[0].qty * price
38 | } else {
39 | const newItem = {
40 | menuId: menuId,
41 | qty: 1,
42 | price: price,
43 | total: price
44 | }
45 | orderList.push(newItem)
46 | }
47 |
48 | setOrderItems(orderList)
49 | } else {
50 | if (item.length > 0) {
51 | if (item[0]?.qty > 0) {
52 | let newQty = item[0].qty - 1
53 | item[0].qty = newQty
54 | item[0].total = newQty * price
55 | }
56 | }
57 |
58 | setOrderItems(orderList)
59 | }
60 | }
61 |
62 | function getOrderQty(menuId) {
63 | let orderItem = orderItems.filter(a => a.menuId == menuId)
64 |
65 | if (orderItem.length > 0) {
66 | return orderItem[0].qty
67 | }
68 |
69 | return 0
70 | }
71 |
72 | function getBasketItemCount() {
73 | let itemCount = orderItems.reduce((a, b) => a + (b.qty || 0), 0)
74 |
75 | return itemCount
76 | }
77 |
78 | function sumOrder() {
79 | let total = orderItems.reduce((a, b) => a + (b.total || 0), 0)
80 |
81 | return total.toFixed(2)
82 | }
83 |
84 | function renderHeader() {
85 | return (
86 |
87 | navigation.goBack()}
94 | >
95 |
103 |
104 |
105 | {/* Restaurant Name Section */}
106 |
113 |
123 | {restaurant?.name}
124 |
125 |
126 |
127 |
134 |
142 |
143 |
144 | )
145 | }
146 |
147 | function renderFoodInfo() {
148 | return (
149 |
159 | {
160 | restaurant?.menu.map((item, index) => (
161 |
165 |
166 | {/* Food Image */}
167 |
175 |
176 | {/* Quantity */}
177 |
187 | editOrder("-", item.menuId, item.price)}
197 | >
198 | -
199 |
200 |
201 |
209 | {getOrderQty(item.menuId)}
210 |
211 |
212 | editOrder("+", item.menuId, item.price)}
222 | >
223 | +
224 |
225 |
226 |
227 |
228 | {/* Name & Description */}
229 |
237 | {item.name} - {item.price.toFixed(2)}
238 | {item.description}
239 |
240 |
241 | {/* Calories */}
242 |
248 |
256 |
257 | {item.calories.toFixed(2)} cal
260 |
261 |
262 | ))
263 | }
264 |
265 | )
266 | }
267 |
268 | function renderDots() {
269 |
270 | const dotPosition = Animated.divide(scrollX, SIZES.width)
271 |
272 | return (
273 |
274 |
282 | {restaurant?.menu.map((item, index) => {
283 |
284 | const opacity = dotPosition.interpolate({
285 | inputRange: [index - 1, index, index + 1],
286 | outputRange: [0.3, 1, 0.3],
287 | extrapolate: "clamp"
288 | })
289 |
290 | const dotSize = dotPosition.interpolate({
291 | inputRange: [index - 1, index, index + 1],
292 | outputRange: [SIZES.base * 0.8, 10, SIZES.base * 0.8],
293 | extrapolate: "clamp"
294 | })
295 |
296 | const dotColor = dotPosition.interpolate({
297 | inputRange: [index - 1, index, index + 1],
298 | outputRange: [COLORS.darkgray, COLORS.primary, COLORS.darkgray],
299 | extrapolate: "clamp"
300 | })
301 |
302 | return (
303 |
314 | )
315 | })}
316 |
317 |
318 | )
319 | }
320 |
321 | function renderOrder() {
322 | return (
323 |
324 | {
325 | renderDots()
326 | }
327 |
334 |
344 | {getBasketItemCount()} items in Cart
345 | ${sumOrder()}
346 |
347 |
348 |
356 |
357 |
366 | Location
367 |
368 |
369 |
370 |
379 | 8888
380 |
381 |
382 |
383 | {/* Order Button */}
384 |
391 | navigation.navigate("OrderDelivery", {
400 | restaurant: restaurant,
401 | currentLocation: currentLocation
402 | })}
403 | >
404 | Order
405 |
406 |
407 |
408 |
409 | {isIphoneX() &&
410 |
420 |
421 | }
422 |
423 | )
424 | }
425 |
426 | return (
427 |
428 | {renderHeader()}
429 | {renderFoodInfo()}
430 | {renderOrder()}
431 |
432 | )
433 | }
434 |
435 | const styles = StyleSheet.create({
436 | container: {
437 | flex: 1,
438 | backgroundColor: COLORS.lightGray2
439 | }
440 | })
441 |
442 | export default Restaurant;
--------------------------------------------------------------------------------
/screens/index.js:
--------------------------------------------------------------------------------
1 | import Home from './Home'
2 | import Restaurant from './Restaurant'
3 | import OrderDelivery from './OrderDelivery'
4 |
5 | export {
6 | Home,
7 | Restaurant,
8 | OrderDelivery
9 | }
--------------------------------------------------------------------------------