Showing
42 changed files
with
354 additions
and
386 deletions
1 | -import React, {Component} from 'react' | 1 | +import React, { Component } from 'react'; |
2 | +import { StyleSheet, Text, View } from 'react-native'; | ||
2 | import { createAppContainer } from 'react-navigation'; | 3 | import { createAppContainer } from 'react-navigation'; |
3 | -import { createStackNavigator } from 'react-navigation-stack'; | 4 | +import { createStackNavigator } from 'react-navigation-stack' |
5 | +// import MainScreen from './components/MainScreen'; | ||
4 | import Login from './source/Login'; | 6 | import Login from './source/Login'; |
5 | import MainScreen from './source/MainScreen'; | 7 | import MainScreen from './source/MainScreen'; |
6 | 8 | ||
9 | +// const AppStackNavigator = createStackNavigator({ | ||
10 | +// Main:{ | ||
11 | +// screen: MainScreen // MainScreen 컴포넌트를 네비게이터에 등록 | ||
12 | +// } | ||
13 | +// }); | ||
14 | + | ||
15 | +// export default createAppContainer(AppStackNavigator); | ||
16 | + | ||
7 | const MainNavigator = createStackNavigator({ | 17 | const MainNavigator = createStackNavigator({ |
8 | Login : {screen: Login}, | 18 | Login : {screen: Login}, |
9 | MainScreen : {screen:MainScreen}, | 19 | MainScreen : {screen:MainScreen}, |
... | @@ -13,4 +23,4 @@ const MainNavigator = createStackNavigator({ | ... | @@ -13,4 +23,4 @@ const MainNavigator = createStackNavigator({ |
13 | 23 | ||
14 | const App = createAppContainer(MainNavigator); | 24 | const App = createAppContainer(MainNavigator); |
15 | 25 | ||
16 | -export default App; | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
26 | +export default App; | ... | ... |
... | @@ -35,12 +35,12 @@ android_library( | ... | @@ -35,12 +35,12 @@ android_library( |
35 | 35 | ||
36 | android_build_config( | 36 | android_build_config( |
37 | name = "build_config", | 37 | name = "build_config", |
38 | - package = "com.fwiot", | 38 | + package = "com.testproject", |
39 | ) | 39 | ) |
40 | 40 | ||
41 | android_resource( | 41 | android_resource( |
42 | name = "res", | 42 | name = "res", |
43 | - package = "com.fwiot", | 43 | + package = "com.testproject", |
44 | res = "src/main/res", | 44 | res = "src/main/res", |
45 | ) | 45 | ) |
46 | 46 | ... | ... |
... | @@ -128,7 +128,7 @@ android { | ... | @@ -128,7 +128,7 @@ android { |
128 | } | 128 | } |
129 | 129 | ||
130 | defaultConfig { | 130 | defaultConfig { |
131 | - applicationId "com.fwiot" | 131 | + applicationId "com.testproject" |
132 | minSdkVersion rootProject.ext.minSdkVersion | 132 | minSdkVersion rootProject.ext.minSdkVersion |
133 | targetSdkVersion rootProject.ext.targetSdkVersion | 133 | targetSdkVersion rootProject.ext.targetSdkVersion |
134 | versionCode 1 | 134 | versionCode 1 |
... | @@ -189,11 +189,6 @@ dependencies { | ... | @@ -189,11 +189,6 @@ dependencies { |
189 | } else { | 189 | } else { |
190 | implementation jscFlavor | 190 | implementation jscFlavor |
191 | } | 191 | } |
192 | - | ||
193 | - compile project(':react-native-push-notification') | ||
194 | - compile ('com.google.android.gms:play-services-gcm:8.1.0') { | ||
195 | - force = true; | ||
196 | - } | ||
197 | } | 192 | } |
198 | 193 | ||
199 | // Run this once to be able to run the application with BUCK | 194 | // Run this once to be able to run the application with BUCK | ... | ... |
1 | <manifest xmlns:android="http://schemas.android.com/apk/res/android" | 1 | <manifest xmlns:android="http://schemas.android.com/apk/res/android" |
2 | - package="com.fwiot"> | 2 | + package="com.testproject"> |
3 | 3 | ||
4 | <uses-permission android:name="android.permission.INTERNET" /> | 4 | <uses-permission android:name="android.permission.INTERNET" /> |
5 | - <uses-permission android:name="android.permission.WAKE_LOCK" /> | ||
6 | - <permission | ||
7 | - android:name="${applicationId}.permission.C2D_MESSAGE" | ||
8 | - android:protectionLevel="signature" /> | ||
9 | - <uses-permission android:name="${applicationId}.permission.C2D_MESSAGE" /> | ||
10 | - <uses-permission android:name="android.permission.VIBRATE" /> | ||
11 | - <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/> | ||
12 | 5 | ||
13 | <application | 6 | <application |
14 | android:name=".MainApplication" | 7 | android:name=".MainApplication" |
... | @@ -17,32 +10,6 @@ | ... | @@ -17,32 +10,6 @@ |
17 | android:roundIcon="@mipmap/ic_launcher_round" | 10 | android:roundIcon="@mipmap/ic_launcher_round" |
18 | android:allowBackup="false" | 11 | android:allowBackup="false" |
19 | android:theme="@style/AppTheme"> | 12 | android:theme="@style/AppTheme"> |
20 | - | ||
21 | - <receiver | ||
22 | - android:name="com.google.android.gms.gcm.GcmReceiver" | ||
23 | - android:exported="true" | ||
24 | - android:permission="com.google.android.c2dm.permission.SEND" > | ||
25 | - <intent-filter> | ||
26 | - <action android:name="com.google.android.c2dm.intent.RECEIVE" /> | ||
27 | - <category android:name="${applicationId}" /> | ||
28 | - </intent-filter> | ||
29 | - </receiver> | ||
30 | - | ||
31 | - <receiver android:name="com.dieam.reactnativepushnotification.modules.RNPushNotificationPublisher" /> | ||
32 | - <receiver android:name="com.dieam.reactnativepushnotification.modules.RNPushNotificationBootEventReceiver"> | ||
33 | - <intent-filter> | ||
34 | - <action android:name="android.intent.action.BOOT_COMPLETED" /> | ||
35 | - </intent-filter> | ||
36 | - </receiver> | ||
37 | - <service android:name="com.dieam.reactnativepushnotification.modules.RNPushNotificationRegistrationService"/> | ||
38 | - <service | ||
39 | - android:name="com.dieam.reactnativepushnotification.modules.RNPushNotificationListenerService" | ||
40 | - android:exported="false" > | ||
41 | - <intent-filter> | ||
42 | - <action android:name="com.google.android.c2dm.intent.RECEIVE" /> | ||
43 | - </intent-filter> | ||
44 | - </service> | ||
45 | - | ||
46 | <activity | 13 | <activity |
47 | android:name=".MainActivity" | 14 | android:name=".MainActivity" |
48 | android:label="@string/app_name" | 15 | android:label="@string/app_name" |
... | @@ -54,9 +21,6 @@ | ... | @@ -54,9 +21,6 @@ |
54 | </intent-filter> | 21 | </intent-filter> |
55 | </activity> | 22 | </activity> |
56 | <activity android:name="com.facebook.react.devsupport.DevSettingsActivity" /> | 23 | <activity android:name="com.facebook.react.devsupport.DevSettingsActivity" /> |
57 | - | ||
58 | </application> | 24 | </application> |
59 | 25 | ||
60 | - | ||
61 | - | ||
62 | </manifest> | 26 | </manifest> | ... | ... |
No preview for this file type
1 | -package com.fwiot; | 1 | +package com.testproject; |
2 | 2 | ||
3 | import com.facebook.react.ReactActivity; | 3 | import com.facebook.react.ReactActivity; |
4 | -import com.dieam.reactnativepushnotification.ReactNativePushNotificationPackage; | ||
5 | 4 | ||
6 | -public class MainActivity extends ReactActivity implements ReactApplication { | 5 | +public class MainActivity extends ReactActivity { |
7 | 6 | ||
8 | - private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) { | ||
9 | - @Override | ||
10 | - protected boolean getUseDeveloperSupport() { | ||
11 | - return BuildConfig.DEBUG; | ||
12 | - } | ||
13 | - | ||
14 | - @Override | ||
15 | - protected List<ReactPackage> getPackages() { | ||
16 | - | ||
17 | - return Arrays.<ReactPackage>asList( | ||
18 | - new MainReactPackage(), | ||
19 | - new ReactNativePushNotificationPackage() // <---- Add the Package | ||
20 | - ); | ||
21 | - } | ||
22 | - }; | ||
23 | /** | 7 | /** |
24 | * Returns the name of the main component registered from JavaScript. This is used to schedule | 8 | * Returns the name of the main component registered from JavaScript. This is used to schedule |
25 | * rendering of the component. | 9 | * rendering of the component. |
26 | */ | 10 | */ |
27 | @Override | 11 | @Override |
28 | protected String getMainComponentName() { | 12 | protected String getMainComponentName() { |
29 | - return "FWIoT"; | 13 | + return "TestProject"; |
30 | } | 14 | } |
31 | } | 15 | } | ... | ... |
1 | -rootProject.name = 'FWIoT' | 1 | +rootProject.name = 'TestProject' |
2 | apply from: file("../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesSettingsGradle(settings) | 2 | apply from: file("../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesSettingsGradle(settings) |
3 | include ':app' | 3 | include ':app' |
4 | -include ':react-native-push-notification' | ||
5 | -project(':react-native-push-notification').projectDir = file('../node_modules/react-native-push-notification/android') | ... | ... |
assets/fonts/BMJUA_ttf.ttf
deleted
100644 → 0
No preview for this file type
client_secret.json
deleted
100644 → 0
1 | -{"web":{"client_id":"978869138601-u3euf0c04sbdor68r30m599gilvjn91e.apps.googleusercontent.com","project_id":"reminder-talk","auth_uri":"https://accounts.google.com/o/oauth2/auth","token_uri":"https://oauth2.googleapis.com/token","auth_provider_x509_cert_url":"https://www.googleapis.com/oauth2/v1/certs","client_secret":"N7Uh_oVQZt-almzA4DkM4bm_"}} | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
components/AppTabNavigator/HistoryTab.js
0 → 100644
1 | +import React, { Component } from 'react'; | ||
2 | +import { View, Text, StyleSheet } from 'react-native'; | ||
3 | + | ||
4 | +export default class HomeTab extends Component { | ||
5 | + render() { | ||
6 | + return ( | ||
7 | + <View style={style.container}> | ||
8 | + <Text>HistoryTab</Text> | ||
9 | + </View> | ||
10 | + ); | ||
11 | + } | ||
12 | +} | ||
13 | + | ||
14 | +const style = StyleSheet.create({ | ||
15 | + container: { | ||
16 | + flex: 1, | ||
17 | + alignItems: 'center', | ||
18 | + justifyContent: 'center', | ||
19 | + } | ||
20 | +}); |
components/AppTabNavigator/HomeTab.js
0 → 100644
1 | +import React, { Component } from 'react'; | ||
2 | +import { View, Text, StyleSheet } from 'react-native'; | ||
3 | +import WasteDetail from '../WasteDetail' | ||
4 | + | ||
5 | +export default class HomeTab extends Component { | ||
6 | + render() { | ||
7 | + return ( | ||
8 | + <View style={style.container}> | ||
9 | + <Text>HomeTab</Text> | ||
10 | + <WasteDetail></WasteDetail> | ||
11 | + </View> | ||
12 | + ); | ||
13 | + } | ||
14 | +} | ||
15 | + | ||
16 | +const style = StyleSheet.create({ | ||
17 | + container: { | ||
18 | + flex: 1, | ||
19 | + } | ||
20 | +}); |
components/AppTabNavigator/SettingTab.js
0 → 100644
1 | +import React, { Component } from 'react'; | ||
2 | +import { View, Text, StyleSheet } from 'react-native'; | ||
3 | + | ||
4 | +export default class HomeTab extends Component { | ||
5 | + render() { | ||
6 | + return ( | ||
7 | + <View style={style.container}> | ||
8 | + <Text>SettingTab</Text> | ||
9 | + </View> | ||
10 | + ); | ||
11 | + } | ||
12 | +} | ||
13 | + | ||
14 | +const style = StyleSheet.create({ | ||
15 | + container: { | ||
16 | + flex: 1, | ||
17 | + alignItems: 'center', | ||
18 | + justifyContent: 'center', | ||
19 | + } | ||
20 | +}); |
components/MainScreen.js
0 → 100644
1 | +import React, { Component } from 'react'; | ||
2 | +import { StyleSheet, Platform, View, Text } from 'react-native'; | ||
3 | +import { createAppContainer } from 'react-navigation'; | ||
4 | +import { createMaterialTopTabNavigator } from 'react-navigation-tabs' | ||
5 | +import HomeTab from './AppTabNavigator/HomeTab' | ||
6 | +import HistoryTab from './AppTabNavigator/HistoryTab' | ||
7 | +import SettingTab from './AppTabNavigator/SettingTab' | ||
8 | + | ||
9 | +// 하단 탭 네비게이터 생성 | ||
10 | +const AppTabNavigator = createMaterialTopTabNavigator({ | ||
11 | + Home: { screen: HomeTab }, | ||
12 | + History: { screen: HistoryTab }, | ||
13 | + Setting: { screen: SettingTab } | ||
14 | +},{ | ||
15 | + animationEnabled: true, | ||
16 | + swipeEnabled: true, | ||
17 | + tabBarPosition: "bottom", | ||
18 | + tabBarOptions: { | ||
19 | + style: { | ||
20 | + ...Platform.select({ | ||
21 | + android:{ | ||
22 | + backgroundColor:'white', | ||
23 | + } | ||
24 | + }) | ||
25 | + }, | ||
26 | + iconStyle: { height: 10 }, | ||
27 | + activeTintColor: '#000', | ||
28 | + inactiveTintColor: '#d1cece', | ||
29 | + upperCaseLabel: true, | ||
30 | + showLabel: true, | ||
31 | + showIcon: true, | ||
32 | + } | ||
33 | +}); | ||
34 | + | ||
35 | +const AppTabContainet = createAppContainer(AppTabNavigator); | ||
36 | + | ||
37 | +export default class MainScreen extends Component { | ||
38 | + | ||
39 | + static navigationOptions = { | ||
40 | + title: 'FW IOT' } | ||
41 | + | ||
42 | + render() { | ||
43 | + return <AppTabContainet/>; // AppTabContainet 컴포넌트를 리턴한다. | ||
44 | + } | ||
45 | +} | ||
46 | + | ||
47 | +const styles = StyleSheet.create({ | ||
48 | + container: { | ||
49 | + flex: 1, | ||
50 | + alignItems: 'center', | ||
51 | + justifyContent: 'center', | ||
52 | + }, | ||
53 | +}); |
components/WasteDetail.js
0 → 100644
1 | +import React, { Component } from 'react'; | ||
2 | +import { View, Text, StyleSheet } from 'react-native'; | ||
3 | + | ||
4 | +export default class HomeTab extends Component { | ||
5 | + render() { | ||
6 | + return ( | ||
7 | + <View style={style.container}> | ||
8 | + <Text>총 3.8kg 추가</Text> | ||
9 | + </View> | ||
10 | + ); | ||
11 | + } | ||
12 | +} | ||
13 | + | ||
14 | +const style = StyleSheet.create({ | ||
15 | + container: { | ||
16 | + flex: 1, | ||
17 | + backgroundColor: "rgba(230,230,230,0.5)" | ||
18 | + } | ||
19 | +}); |
1 | platform :ios, '9.0' | 1 | platform :ios, '9.0' |
2 | require_relative '../node_modules/@react-native-community/cli-platform-ios/native_modules' | 2 | require_relative '../node_modules/@react-native-community/cli-platform-ios/native_modules' |
3 | 3 | ||
4 | -target 'FWIoT' do | 4 | +target 'TestProject' do |
5 | - # Pods for FWIoT | 5 | + # Pods for TestProject |
6 | pod 'FBLazyVector', :path => "../node_modules/react-native/Libraries/FBLazyVector" | 6 | pod 'FBLazyVector', :path => "../node_modules/react-native/Libraries/FBLazyVector" |
7 | pod 'FBReactNativeSpec', :path => "../node_modules/react-native/Libraries/FBReactNativeSpec" | 7 | pod 'FBReactNativeSpec', :path => "../node_modules/react-native/Libraries/FBReactNativeSpec" |
8 | pod 'RCTRequired', :path => "../node_modules/react-native/Libraries/RCTRequired" | 8 | pod 'RCTRequired', :path => "../node_modules/react-native/Libraries/RCTRequired" |
... | @@ -34,7 +34,8 @@ target 'FWIoT' do | ... | @@ -34,7 +34,8 @@ target 'FWIoT' do |
34 | pod 'glog', :podspec => '../node_modules/react-native/third-party-podspecs/glog.podspec' | 34 | pod 'glog', :podspec => '../node_modules/react-native/third-party-podspecs/glog.podspec' |
35 | pod 'Folly', :podspec => '../node_modules/react-native/third-party-podspecs/Folly.podspec' | 35 | pod 'Folly', :podspec => '../node_modules/react-native/third-party-podspecs/Folly.podspec' |
36 | 36 | ||
37 | - target 'FWIoTTests' do | 37 | + |
38 | + target 'TestProjectTests' do | ||
38 | inherit! :search_paths | 39 | inherit! :search_paths |
39 | # Pods for testing | 40 | # Pods for testing |
40 | end | 41 | end |
... | @@ -42,10 +43,10 @@ target 'FWIoT' do | ... | @@ -42,10 +43,10 @@ target 'FWIoT' do |
42 | use_native_modules! | 43 | use_native_modules! |
43 | end | 44 | end |
44 | 45 | ||
45 | -target 'FWIoT-tvOS' do | 46 | +target 'TestProject-tvOS' do |
46 | - # Pods for FWIoT-tvOS | 47 | + # Pods for TestProject-tvOS |
47 | 48 | ||
48 | - target 'FWIoT-tvOSTests' do | 49 | + target 'TestProject-tvOSTests' do |
49 | inherit! :search_paths | 50 | inherit! :search_paths |
50 | # Pods for testing | 51 | # Pods for testing |
51 | end | 52 | end | ... | ... |
This diff is collapsed. Click to expand it.
... | @@ -29,9 +29,9 @@ | ... | @@ -29,9 +29,9 @@ |
29 | <BuildableReference | 29 | <BuildableReference |
30 | BuildableIdentifier = "primary" | 30 | BuildableIdentifier = "primary" |
31 | BlueprintIdentifier = "2D02E47A1E0B4A5D006451C7" | 31 | BlueprintIdentifier = "2D02E47A1E0B4A5D006451C7" |
32 | - BuildableName = "FWIoT-tvOS.app" | 32 | + BuildableName = "TestProject-tvOS.app" |
33 | - BlueprintName = "FWIoT-tvOS" | 33 | + BlueprintName = "TestProject-tvOS" |
34 | - ReferencedContainer = "container:FWIoT.xcodeproj"> | 34 | + ReferencedContainer = "container:TestProject.xcodeproj"> |
35 | </BuildableReference> | 35 | </BuildableReference> |
36 | </BuildActionEntry> | 36 | </BuildActionEntry> |
37 | <BuildActionEntry | 37 | <BuildActionEntry |
... | @@ -43,9 +43,9 @@ | ... | @@ -43,9 +43,9 @@ |
43 | <BuildableReference | 43 | <BuildableReference |
44 | BuildableIdentifier = "primary" | 44 | BuildableIdentifier = "primary" |
45 | BlueprintIdentifier = "2D02E48F1E0B4A5D006451C7" | 45 | BlueprintIdentifier = "2D02E48F1E0B4A5D006451C7" |
46 | - BuildableName = "FWIoT-tvOSTests.xctest" | 46 | + BuildableName = "TestProject-tvOSTests.xctest" |
47 | - BlueprintName = "FWIoT-tvOSTests" | 47 | + BlueprintName = "TestProject-tvOSTests" |
48 | - ReferencedContainer = "container:FWIoT.xcodeproj"> | 48 | + ReferencedContainer = "container:TestProject.xcodeproj"> |
49 | </BuildableReference> | 49 | </BuildableReference> |
50 | </BuildActionEntry> | 50 | </BuildActionEntry> |
51 | </BuildActionEntries> | 51 | </BuildActionEntries> |
... | @@ -61,9 +61,9 @@ | ... | @@ -61,9 +61,9 @@ |
61 | <BuildableReference | 61 | <BuildableReference |
62 | BuildableIdentifier = "primary" | 62 | BuildableIdentifier = "primary" |
63 | BlueprintIdentifier = "2D02E48F1E0B4A5D006451C7" | 63 | BlueprintIdentifier = "2D02E48F1E0B4A5D006451C7" |
64 | - BuildableName = "FWIoT-tvOSTests.xctest" | 64 | + BuildableName = "TestProject-tvOSTests.xctest" |
65 | - BlueprintName = "FWIoT-tvOSTests" | 65 | + BlueprintName = "TestProject-tvOSTests" |
66 | - ReferencedContainer = "container:FWIoT.xcodeproj"> | 66 | + ReferencedContainer = "container:TestProject.xcodeproj"> |
67 | </BuildableReference> | 67 | </BuildableReference> |
68 | </TestableReference> | 68 | </TestableReference> |
69 | </Testables> | 69 | </Testables> |
... | @@ -71,9 +71,9 @@ | ... | @@ -71,9 +71,9 @@ |
71 | <BuildableReference | 71 | <BuildableReference |
72 | BuildableIdentifier = "primary" | 72 | BuildableIdentifier = "primary" |
73 | BlueprintIdentifier = "2D02E47A1E0B4A5D006451C7" | 73 | BlueprintIdentifier = "2D02E47A1E0B4A5D006451C7" |
74 | - BuildableName = "FWIoT-tvOS.app" | 74 | + BuildableName = "TestProject-tvOS.app" |
75 | - BlueprintName = "FWIoT-tvOS" | 75 | + BlueprintName = "TestProject-tvOS" |
76 | - ReferencedContainer = "container:FWIoT.xcodeproj"> | 76 | + ReferencedContainer = "container:TestProject.xcodeproj"> |
77 | </BuildableReference> | 77 | </BuildableReference> |
78 | </MacroExpansion> | 78 | </MacroExpansion> |
79 | <AdditionalOptions> | 79 | <AdditionalOptions> |
... | @@ -94,9 +94,9 @@ | ... | @@ -94,9 +94,9 @@ |
94 | <BuildableReference | 94 | <BuildableReference |
95 | BuildableIdentifier = "primary" | 95 | BuildableIdentifier = "primary" |
96 | BlueprintIdentifier = "2D02E47A1E0B4A5D006451C7" | 96 | BlueprintIdentifier = "2D02E47A1E0B4A5D006451C7" |
97 | - BuildableName = "FWIoT-tvOS.app" | 97 | + BuildableName = "TestProject-tvOS.app" |
98 | - BlueprintName = "FWIoT-tvOS" | 98 | + BlueprintName = "TestProject-tvOS" |
99 | - ReferencedContainer = "container:FWIoT.xcodeproj"> | 99 | + ReferencedContainer = "container:TestProject.xcodeproj"> |
100 | </BuildableReference> | 100 | </BuildableReference> |
101 | </BuildableProductRunnable> | 101 | </BuildableProductRunnable> |
102 | <AdditionalOptions> | 102 | <AdditionalOptions> |
... | @@ -113,9 +113,9 @@ | ... | @@ -113,9 +113,9 @@ |
113 | <BuildableReference | 113 | <BuildableReference |
114 | BuildableIdentifier = "primary" | 114 | BuildableIdentifier = "primary" |
115 | BlueprintIdentifier = "2D02E47A1E0B4A5D006451C7" | 115 | BlueprintIdentifier = "2D02E47A1E0B4A5D006451C7" |
116 | - BuildableName = "FWIoT-tvOS.app" | 116 | + BuildableName = "TestProject-tvOS.app" |
117 | - BlueprintName = "FWIoT-tvOS" | 117 | + BlueprintName = "TestProject-tvOS" |
118 | - ReferencedContainer = "container:FWIoT.xcodeproj"> | 118 | + ReferencedContainer = "container:TestProject.xcodeproj"> |
119 | </BuildableReference> | 119 | </BuildableReference> |
120 | </BuildableProductRunnable> | 120 | </BuildableProductRunnable> |
121 | </ProfileAction> | 121 | </ProfileAction> | ... | ... |
... | @@ -29,9 +29,9 @@ | ... | @@ -29,9 +29,9 @@ |
29 | <BuildableReference | 29 | <BuildableReference |
30 | BuildableIdentifier = "primary" | 30 | BuildableIdentifier = "primary" |
31 | BlueprintIdentifier = "13B07F861A680F5B00A75B9A" | 31 | BlueprintIdentifier = "13B07F861A680F5B00A75B9A" |
32 | - BuildableName = "FWIoT.app" | 32 | + BuildableName = "TestProject.app" |
33 | - BlueprintName = "FWIoT" | 33 | + BlueprintName = "TestProject" |
34 | - ReferencedContainer = "container:FWIoT.xcodeproj"> | 34 | + ReferencedContainer = "container:TestProject.xcodeproj"> |
35 | </BuildableReference> | 35 | </BuildableReference> |
36 | </BuildActionEntry> | 36 | </BuildActionEntry> |
37 | <BuildActionEntry | 37 | <BuildActionEntry |
... | @@ -43,9 +43,9 @@ | ... | @@ -43,9 +43,9 @@ |
43 | <BuildableReference | 43 | <BuildableReference |
44 | BuildableIdentifier = "primary" | 44 | BuildableIdentifier = "primary" |
45 | BlueprintIdentifier = "00E356ED1AD99517003FC87E" | 45 | BlueprintIdentifier = "00E356ED1AD99517003FC87E" |
46 | - BuildableName = "FWIoTTests.xctest" | 46 | + BuildableName = "TestProjectTests.xctest" |
47 | - BlueprintName = "FWIoTTests" | 47 | + BlueprintName = "TestProjectTests" |
48 | - ReferencedContainer = "container:FWIoT.xcodeproj"> | 48 | + ReferencedContainer = "container:TestProject.xcodeproj"> |
49 | </BuildableReference> | 49 | </BuildableReference> |
50 | </BuildActionEntry> | 50 | </BuildActionEntry> |
51 | </BuildActionEntries> | 51 | </BuildActionEntries> |
... | @@ -61,9 +61,9 @@ | ... | @@ -61,9 +61,9 @@ |
61 | <BuildableReference | 61 | <BuildableReference |
62 | BuildableIdentifier = "primary" | 62 | BuildableIdentifier = "primary" |
63 | BlueprintIdentifier = "00E356ED1AD99517003FC87E" | 63 | BlueprintIdentifier = "00E356ED1AD99517003FC87E" |
64 | - BuildableName = "FWIoTTests.xctest" | 64 | + BuildableName = "TestProjectTests.xctest" |
65 | - BlueprintName = "FWIoTTests" | 65 | + BlueprintName = "TestProjectTests" |
66 | - ReferencedContainer = "container:FWIoT.xcodeproj"> | 66 | + ReferencedContainer = "container:TestProject.xcodeproj"> |
67 | </BuildableReference> | 67 | </BuildableReference> |
68 | </TestableReference> | 68 | </TestableReference> |
69 | </Testables> | 69 | </Testables> |
... | @@ -71,9 +71,9 @@ | ... | @@ -71,9 +71,9 @@ |
71 | <BuildableReference | 71 | <BuildableReference |
72 | BuildableIdentifier = "primary" | 72 | BuildableIdentifier = "primary" |
73 | BlueprintIdentifier = "13B07F861A680F5B00A75B9A" | 73 | BlueprintIdentifier = "13B07F861A680F5B00A75B9A" |
74 | - BuildableName = "FWIoT.app" | 74 | + BuildableName = "TestProject.app" |
75 | - BlueprintName = "FWIoT" | 75 | + BlueprintName = "TestProject" |
76 | - ReferencedContainer = "container:FWIoT.xcodeproj"> | 76 | + ReferencedContainer = "container:TestProject.xcodeproj"> |
77 | </BuildableReference> | 77 | </BuildableReference> |
78 | </MacroExpansion> | 78 | </MacroExpansion> |
79 | <AdditionalOptions> | 79 | <AdditionalOptions> |
... | @@ -94,9 +94,9 @@ | ... | @@ -94,9 +94,9 @@ |
94 | <BuildableReference | 94 | <BuildableReference |
95 | BuildableIdentifier = "primary" | 95 | BuildableIdentifier = "primary" |
96 | BlueprintIdentifier = "13B07F861A680F5B00A75B9A" | 96 | BlueprintIdentifier = "13B07F861A680F5B00A75B9A" |
97 | - BuildableName = "FWIoT.app" | 97 | + BuildableName = "TestProject.app" |
98 | - BlueprintName = "FWIoT" | 98 | + BlueprintName = "TestProject" |
99 | - ReferencedContainer = "container:FWIoT.xcodeproj"> | 99 | + ReferencedContainer = "container:TestProject.xcodeproj"> |
100 | </BuildableReference> | 100 | </BuildableReference> |
101 | </BuildableProductRunnable> | 101 | </BuildableProductRunnable> |
102 | <AdditionalOptions> | 102 | <AdditionalOptions> |
... | @@ -113,9 +113,9 @@ | ... | @@ -113,9 +113,9 @@ |
113 | <BuildableReference | 113 | <BuildableReference |
114 | BuildableIdentifier = "primary" | 114 | BuildableIdentifier = "primary" |
115 | BlueprintIdentifier = "13B07F861A680F5B00A75B9A" | 115 | BlueprintIdentifier = "13B07F861A680F5B00A75B9A" |
116 | - BuildableName = "FWIoT.app" | 116 | + BuildableName = "TestProject.app" |
117 | - BlueprintName = "FWIoT" | 117 | + BlueprintName = "TestProject" |
118 | - ReferencedContainer = "container:FWIoT.xcodeproj"> | 118 | + ReferencedContainer = "container:TestProject.xcodeproj"> |
119 | </BuildableReference> | 119 | </BuildableReference> |
120 | </BuildableProductRunnable> | 120 | </BuildableProductRunnable> |
121 | </ProfileAction> | 121 | </ProfileAction> | ... | ... |
... | @@ -17,7 +17,7 @@ | ... | @@ -17,7 +17,7 @@ |
17 | { | 17 | { |
18 | RCTBridge *bridge = [[RCTBridge alloc] initWithDelegate:self launchOptions:launchOptions]; | 18 | RCTBridge *bridge = [[RCTBridge alloc] initWithDelegate:self launchOptions:launchOptions]; |
19 | RCTRootView *rootView = [[RCTRootView alloc] initWithBridge:bridge | 19 | RCTRootView *rootView = [[RCTRootView alloc] initWithBridge:bridge |
20 | - moduleName:@"FWIoT" | 20 | + moduleName:@"TestProject" |
21 | initialProperties:nil]; | 21 | initialProperties:nil]; |
22 | 22 | ||
23 | rootView.backgroundColor = [[UIColor alloc] initWithRed:1.0f green:1.0f blue:1.0f alpha:1]; | 23 | rootView.backgroundColor = [[UIColor alloc] initWithRed:1.0f green:1.0f blue:1.0f alpha:1]; | ... | ... |
... | @@ -18,7 +18,7 @@ | ... | @@ -18,7 +18,7 @@ |
18 | <color key="textColor" cocoaTouchSystemColor="darkTextColor"/> | 18 | <color key="textColor" cocoaTouchSystemColor="darkTextColor"/> |
19 | <nil key="highlightedColor"/> | 19 | <nil key="highlightedColor"/> |
20 | </label> | 20 | </label> |
21 | - <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="FWIoT" textAlignment="center" lineBreakMode="middleTruncation" baselineAdjustment="alignBaselines" minimumFontSize="18" translatesAutoresizingMaskIntoConstraints="NO" id="kId-c2-rCX"> | 21 | + <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="TestProject" textAlignment="center" lineBreakMode="middleTruncation" baselineAdjustment="alignBaselines" minimumFontSize="18" translatesAutoresizingMaskIntoConstraints="NO" id="kId-c2-rCX"> |
22 | <rect key="frame" x="20" y="140" width="441" height="43"/> | 22 | <rect key="frame" x="20" y="140" width="441" height="43"/> |
23 | <fontDescription key="fontDescription" type="boldSystem" pointSize="36"/> | 23 | <fontDescription key="fontDescription" type="boldSystem" pointSize="36"/> |
24 | <color key="textColor" cocoaTouchSystemColor="darkTextColor"/> | 24 | <color key="textColor" cocoaTouchSystemColor="darkTextColor"/> | ... | ... |
... | @@ -5,7 +5,7 @@ | ... | @@ -5,7 +5,7 @@ |
5 | <key>CFBundleDevelopmentRegion</key> | 5 | <key>CFBundleDevelopmentRegion</key> |
6 | <string>en</string> | 6 | <string>en</string> |
7 | <key>CFBundleDisplayName</key> | 7 | <key>CFBundleDisplayName</key> |
8 | - <string>FWIoT</string> | 8 | + <string>TestProject</string> |
9 | <key>CFBundleExecutable</key> | 9 | <key>CFBundleExecutable</key> |
10 | <string>$(EXECUTABLE_NAME)</string> | 10 | <string>$(EXECUTABLE_NAME)</string> |
11 | <key>CFBundleIdentifier</key> | 11 | <key>CFBundleIdentifier</key> |
... | @@ -54,8 +54,6 @@ | ... | @@ -54,8 +54,6 @@ |
54 | <key>UIViewControllerBasedStatusBarAppearance</key> | 54 | <key>UIViewControllerBasedStatusBarAppearance</key> |
55 | <false/> | 55 | <false/> |
56 | <key>UIAppFonts</key> | 56 | <key>UIAppFonts</key> |
57 | - <array> | 57 | + <array/> |
58 | - <string>BMJUA_ttf.ttf</string> | ||
59 | - </array> | ||
60 | </dict> | 58 | </dict> |
61 | </plist> | 59 | </plist> | ... | ... |
File moved
... | @@ -14,11 +14,11 @@ | ... | @@ -14,11 +14,11 @@ |
14 | #define TIMEOUT_SECONDS 600 | 14 | #define TIMEOUT_SECONDS 600 |
15 | #define TEXT_TO_LOOK_FOR @"Welcome to React" | 15 | #define TEXT_TO_LOOK_FOR @"Welcome to React" |
16 | 16 | ||
17 | -@interface FWIoTTests : XCTestCase | 17 | +@interface TestProjectTests : XCTestCase |
18 | 18 | ||
19 | @end | 19 | @end |
20 | 20 | ||
21 | -@implementation FWIoTTests | 21 | +@implementation TestProjectTests |
22 | 22 | ||
23 | - (BOOL)findSubviewInView:(UIView *)view matching:(BOOL(^)(UIView *view))test | 23 | - (BOOL)findSubviewInView:(UIView *)view matching:(BOOL(^)(UIView *view))test |
24 | { | 24 | { | ... | ... |
package-lock.json
deleted
100644 → 0
This diff could not be displayed because it is too large.
1 | { | 1 | { |
2 | - "name": "FWIoT", | 2 | + "name": "TestProject", |
3 | "version": "0.0.1", | 3 | "version": "0.0.1", |
4 | "private": true, | 4 | "private": true, |
5 | "scripts": { | 5 | "scripts": { |
... | @@ -11,20 +11,24 @@ | ... | @@ -11,20 +11,24 @@ |
11 | }, | 11 | }, |
12 | "dependencies": { | 12 | "dependencies": { |
13 | "react": "16.9.0", | 13 | "react": "16.9.0", |
14 | - "react-native": "0.61.5", | 14 | + "react-native": "0.61.4", |
15 | - "react-native-gesture-handler": "^1.5.2", | 15 | + "react-native-gesture-handler": "^1.5.0", |
16 | - "react-native-push-notification": "^3.1.9", | 16 | + "react-native-reanimated": "^1.4.0", |
17 | + "react-native-screens": "^2.0.0-alpha.8", | ||
18 | + "react-native-vector-icons": "^6.6.0", | ||
17 | "react-navigation": "^4.0.10", | 19 | "react-navigation": "^4.0.10", |
18 | - "react-navigation-stack": "^1.10.3" | 20 | + "react-navigation-drawer": "^2.3.3", |
21 | + "react-navigation-stack": "^1.10.3", | ||
22 | + "react-navigation-tabs": "^2.5.6" | ||
19 | }, | 23 | }, |
20 | "devDependencies": { | 24 | "devDependencies": { |
21 | - "@babel/core": "^7.6.2", | 25 | + "@babel/core": "^7.7.2", |
22 | - "@babel/runtime": "^7.6.2", | 26 | + "@babel/runtime": "^7.7.2", |
23 | "@react-native-community/eslint-config": "^0.0.5", | 27 | "@react-native-community/eslint-config": "^0.0.5", |
24 | "babel-jest": "^24.9.0", | 28 | "babel-jest": "^24.9.0", |
25 | - "eslint": "^6.5.1", | 29 | + "eslint": "^6.6.0", |
26 | "jest": "^24.9.0", | 30 | "jest": "^24.9.0", |
27 | - "metro-react-native-babel-preset": "^0.56.0", | 31 | + "metro-react-native-babel-preset": "^0.57.0", |
28 | "react-test-renderer": "16.9.0" | 32 | "react-test-renderer": "16.9.0" |
29 | }, | 33 | }, |
30 | "jest": { | 34 | "jest": { | ... | ... |
quickstart.js
deleted
100644 → 0
1 | -var fs = require('fs'); | ||
2 | -var readline = require('readline'); | ||
3 | -var google = require('googleapis'); | ||
4 | -var googleAuth = require('google-auth-library'); | ||
5 | - | ||
6 | -var SCOPES = [ | ||
7 | - 'https://www.googleapis.com/auth/calendar.readonly', // 캘린더 정보의 읽기 권한? 입니다. | ||
8 | - 'https://www.googleapis.com/auth/calendar' // 캘린더 정보의 편집 권한? 입니다. | ||
9 | - ]; | ||
10 | - | ||
11 | -var TOKEN_DIR = (process.env.HOME || process.env.HOMEPATH || | ||
12 | - process.env.USERPROFILE) + '/.credentials/'; | ||
13 | -// 토큰이 저장될 디렉토리 | ||
14 | -var TOKEN_PATH = TOKEN_DIR + 'calendar-nodejs-quickstart.json'; | ||
15 | -// 토큰 파일 명 | ||
16 | - | ||
17 | -fs.readFile('client_secret.json', function processClientSecrets(err, content) { | ||
18 | - // 로컬의 client_secret.json 파일을 읽고 'authorize' 함수 실행 | ||
19 | - if (err) { | ||
20 | - console.log('Error loading client secret file: ' + err); | ||
21 | - return; | ||
22 | - } | ||
23 | - authorize(JSON.parse(content), listEvents); | ||
24 | -}); | ||
25 | - | ||
26 | -function authorize(credentials, callback) { | ||
27 | - var clientSecret = credentials.web.client_secret; | ||
28 | - var clientId = credentials.web.client_id; | ||
29 | - var redirectUrl = credentials.web.auth_provider_x509_cert_url; | ||
30 | - // client_secret.json 파일에서 시크릿키, 클라이언트 아이디, 리다이렉트 URI를 받습니다. | ||
31 | - // 웹 어플리케이션으로 만들었을 때에는 'installed' -> 'web' 으로 수정합니다. | ||
32 | - // ex 'var clientSecret = credentials.web.client_secret;' | ||
33 | - | ||
34 | - var auth = new googleAuth(); | ||
35 | - var oauth2Client = new auth.OAuth2(clientId, clientSecret, redirectUrl); | ||
36 | - | ||
37 | - fs.readFile(TOKEN_PATH, function(err, token) { | ||
38 | - // 앞서 지정한 디렉토리와 파일명으로 토큰 파일을 읽습니다. | ||
39 | - if (err) { | ||
40 | - getNewToken(oauth2Client, callback); // 토큰이 없다면 만듭니다. | ||
41 | - } else { | ||
42 | - oauth2Client.credentials = JSON.parse(token); // 토큰이 있다면 정보를 객체에 담습니다. | ||
43 | - callback(oauth2Client); | ||
44 | - } | ||
45 | - }); | ||
46 | -} | ||
47 | - | ||
48 | -function getNewToken(oauth2Client, callback) { | ||
49 | - var authUrl = oauth2Client.generateAuthUrl({ | ||
50 | - access_type: 'offline', | ||
51 | - scope: SCOPES | ||
52 | - }); | ||
53 | - | ||
54 | - // 브라우저에 'authUrl'의 링크로 접근하여 데이터 접근에 동의한 후 리다이렉트 되는 URL의 | ||
55 | - // 'code=' 다음 부분을 복사합니다. | ||
56 | - console.log('Authorize this app by visiting this url: ', authUrl); | ||
57 | - var rl = readline.createInterface({ | ||
58 | - input: process.stdin, | ||
59 | - output: process.stdout | ||
60 | - }); | ||
61 | - // 복사한 'code=' 다음 부분을 입력합니다. | ||
62 | - // 로컬에서 테스트 할때에는 code= 다음 부분의 값이 URL 인코딩이 되어 있을 수 있으니 | ||
63 | - // URL 디코딩한 후에 입력합니다. | ||
64 | - rl.question('Enter the code from that page here: ', function(code) { | ||
65 | - rl.close(); | ||
66 | - oauth2Client.getToken(code, function(err, token) { | ||
67 | - if (err) { | ||
68 | - console.log('Error while trying to retrieve access token', err); | ||
69 | - return; | ||
70 | - } | ||
71 | - oauth2Client.credentials = token; | ||
72 | - storeToken(token); | ||
73 | - callback(oauth2Client); | ||
74 | - }); | ||
75 | - }); | ||
76 | -} | ||
77 | - | ||
78 | -function storeToken(token) { | ||
79 | - try { | ||
80 | - fs.mkdirSync(TOKEN_DIR); | ||
81 | - } catch (err) { | ||
82 | - if (err.code != 'EEXIST') { | ||
83 | - throw err; | ||
84 | - } | ||
85 | - } | ||
86 | - fs.writeFile(TOKEN_PATH, JSON.stringify(token)); // 토큰을 만듭니다. | ||
87 | - console.log('Token stored to ' + TOKEN_PATH); | ||
88 | -} | ||
89 | - | ||
90 | -function listEvents(auth) { | ||
91 | - // 토큰 인증이 완료되면 최종적으로 실행되는 함수 입니다. | ||
92 | - // 아래의 예제는 구글 캘린더에 등록된 이벤트 10개의 정보를 출력합니다. | ||
93 | - var calendar = google.calendar('v3'); | ||
94 | - | ||
95 | - calendar.events.list({ | ||
96 | - auth: auth, | ||
97 | - calendarId: 'primary', // 이곳에 이벤트를 가져올 캘린더 id를 입력해야 합니다. | ||
98 | - timeMin: (new Date()).toISOString(), | ||
99 | - maxResults: 10, | ||
100 | - singleEvents: true, | ||
101 | - orderBy: 'startTime' | ||
102 | - }, function(err, response) { | ||
103 | - if (err) { | ||
104 | - console.log('The API returned an error: ' + err); | ||
105 | - return; | ||
106 | - } | ||
107 | - var events = response.items; | ||
108 | - if (events.length == 0) { | ||
109 | - console.log('No upcoming events found.'); | ||
110 | - } else { | ||
111 | - console.log('Upcoming 10 events:'); | ||
112 | - for (var i = 0; i < events.length; i++) { | ||
113 | - var event = events[i]; | ||
114 | - var start = event.start.dateTime || event.start.date; | ||
115 | - console.log('%s - %s', start, event.summary); | ||
116 | - } | ||
117 | - } | ||
118 | - }); | ||
119 | - | ||
120 | - | ||
121 | - // 다음은 구글 캘린더에 'CHEOLGUSO' 라는 이름의 캘린더가 있는지 확인하여 | ||
122 | - // 없다면 만들고 있다면 삭제해보겠습니다. | ||
123 | - calendar.calendarList.list({ | ||
124 | - auth : auth | ||
125 | - }, function(err, calendarList){ | ||
126 | - if(err) console.log(err); | ||
127 | - | ||
128 | - var deleteCalendarId; // 캘린더 삭제를 위한 아이디 변수 | ||
129 | - var isCGSCalendar = false; // 'CHEOLGUSO' 캘린더가 존재하는지 확인하기 위한 변수 | ||
130 | - | ||
131 | - // 'CHEOLGUSO' 캘린더가 있는지 확인 | ||
132 | - for(var i=0; i<calendarList.items.length; i++){ | ||
133 | - if(calendarList.items[i].summary === 'CHEOLGUSO'){ | ||
134 | - isCGSCalendar = true; | ||
135 | - deleteCalendarId = calendarList.items[i].id; | ||
136 | - } | ||
137 | - } | ||
138 | - | ||
139 | - if(isCGSCalendar){ | ||
140 | - | ||
141 | - // 'CHEOLGUSO' 캘린더가 있다면 캘린더를 지움 | ||
142 | - calendar.calendars.delete({ | ||
143 | - auth : auth, | ||
144 | - calendarId : deleteCalendarId | ||
145 | - }, function(err, calendars){ | ||
146 | - if(err) console.log(err); | ||
147 | - }); | ||
148 | - | ||
149 | - }else{ | ||
150 | - | ||
151 | - // 'CHEOLGUSO' 캘린더가 없다면 캘린더를 만듬 | ||
152 | - calendar.calendars.insert({ | ||
153 | - auth : auth, | ||
154 | - resource : { | ||
155 | - summary : 'CHEOLGUSO' | ||
156 | - } | ||
157 | - }, function(err, calendars){ | ||
158 | - if(err) console.log(err); | ||
159 | - }); | ||
160 | - | ||
161 | - } | ||
162 | - | ||
163 | - }); | ||
164 | - | ||
165 | - | ||
166 | -} | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
source/AppTabNavigator/HistoryTab.js
0 → 100644
1 | +import React, { Component } from 'react'; | ||
2 | +import { View, Text, StyleSheet } from 'react-native'; | ||
3 | + | ||
4 | +export default class HomeTab extends Component { | ||
5 | + render() { | ||
6 | + return ( | ||
7 | + <View style={style.container}> | ||
8 | + <Text>HistoryTab</Text> | ||
9 | + </View> | ||
10 | + ); | ||
11 | + } | ||
12 | +} | ||
13 | + | ||
14 | +const style = StyleSheet.create({ | ||
15 | + container: { | ||
16 | + flex: 1, | ||
17 | + alignItems: 'center', | ||
18 | + justifyContent: 'center', | ||
19 | + } | ||
20 | +}); |
source/AppTabNavigator/HomeTab.js
0 → 100644
1 | +import React, { Component } from 'react'; | ||
2 | +import { View, Text, StyleSheet } from 'react-native'; | ||
3 | +import WasteDetail from '../WasteDetail' | ||
4 | + | ||
5 | +export default class HomeTab extends Component { | ||
6 | + render() { | ||
7 | + return ( | ||
8 | + <View style={style.container}> | ||
9 | + <Text>HomeTab</Text> | ||
10 | + <WasteDetail></WasteDetail> | ||
11 | + </View> | ||
12 | + ); | ||
13 | + } | ||
14 | +} | ||
15 | + | ||
16 | +const style = StyleSheet.create({ | ||
17 | + container: { | ||
18 | + flex: 1, | ||
19 | + } | ||
20 | +}); |
source/AppTabNavigator/SettingTab.js
0 → 100644
1 | +import React, { Component } from 'react'; | ||
2 | +import { View, Text, StyleSheet } from 'react-native'; | ||
3 | + | ||
4 | +export default class HomeTab extends Component { | ||
5 | + render() { | ||
6 | + return ( | ||
7 | + <View style={style.container}> | ||
8 | + <Text>SettingTab</Text> | ||
9 | + </View> | ||
10 | + ); | ||
11 | + } | ||
12 | +} | ||
13 | + | ||
14 | +const style = StyleSheet.create({ | ||
15 | + container: { | ||
16 | + flex: 1, | ||
17 | + alignItems: 'center', | ||
18 | + justifyContent: 'center', | ||
19 | + } | ||
20 | +}); |
... | @@ -19,7 +19,7 @@ export default class Login extends Component { | ... | @@ -19,7 +19,7 @@ export default class Login extends Component { |
19 | <View style={styles.container}> | 19 | <View style={styles.container}> |
20 | <View style={styles.header}> | 20 | <View style={styles.header}> |
21 | <Text | 21 | <Text |
22 | - style={{textAlign : 'center', fontSize : 50, fontFamily : "BMJUA_ttf", marginTop:50}}>FW IoT</Text> | 22 | + style={{textAlign : 'center', fontSize : 50, marginTop:50}}>FW IoT</Text> |
23 | </View> | 23 | </View> |
24 | <View style={styles.logo}> | 24 | <View style={styles.logo}> |
25 | <Image | 25 | <Image |
... | @@ -30,9 +30,9 @@ export default class Login extends Component { | ... | @@ -30,9 +30,9 @@ export default class Login extends Component { |
30 | <View | 30 | <View |
31 | style={StyleSheet.inputPart}> | 31 | style={StyleSheet.inputPart}> |
32 | <Text | 32 | <Text |
33 | - style={{textAlign:'center',fontSize : 40, marginTop :20, fontFamily : "BMJUA_ttf"}}>Food Waste IoT</Text> | 33 | + style={{textAlign:'center',fontSize : 40, marginTop :20}}>Food Waste IoT</Text> |
34 | <Text | 34 | <Text |
35 | - style={{textAlign:'center',fontSize : 15, marginTop :20, fontFamily : "BMJUA_ttf"}}>기기 등록</Text> | 35 | + style={{textAlign:'center',fontSize : 15, marginTop :20}}>기기 등록</Text> |
36 | <TextInput | 36 | <TextInput |
37 | style={styles.input} | 37 | style={styles.input} |
38 | placeholder="ID" | 38 | placeholder="ID" | ... | ... |
1 | -import React, { Component, Notifications } from 'react'; | 1 | +import React, { Component } from 'react'; |
2 | -import { StyleSheet, Text, View, TextInput, Image, } from 'react-native'; | 2 | +import { StyleSheet, Platform, View, Text } from 'react-native'; |
3 | +import { createAppContainer } from 'react-navigation'; | ||
4 | +import { createMaterialTopTabNavigator } from 'react-navigation-tabs' | ||
5 | +import HomeTab from './AppTabNavigator/HomeTab' | ||
6 | +import HistoryTab from './AppTabNavigator/HistoryTab' | ||
7 | +import SettingTab from './AppTabNavigator/SettingTab' | ||
8 | + | ||
9 | +// 하단 탭 네비게이터 생성 | ||
10 | +const AppTabNavigator = createMaterialTopTabNavigator({ | ||
11 | + Home: { screen: HomeTab }, | ||
12 | + History: { screen: HistoryTab }, | ||
13 | + Setting: { screen: SettingTab } | ||
14 | +},{ | ||
15 | + animationEnabled: true, | ||
16 | + swipeEnabled: true, | ||
17 | + tabBarPosition: "bottom", | ||
18 | + tabBarOptions: { | ||
19 | + style: { | ||
20 | + ...Platform.select({ | ||
21 | + android:{ | ||
22 | + backgroundColor:'white', | ||
23 | + } | ||
24 | + }) | ||
25 | + }, | ||
26 | + iconStyle: { height: 10 }, | ||
27 | + activeTintColor: '#000', | ||
28 | + inactiveTintColor: '#d1cece', | ||
29 | + upperCaseLabel: true, | ||
30 | + showLabel: true, | ||
31 | + showIcon: true, | ||
32 | + } | ||
33 | +}); | ||
3 | 34 | ||
4 | -export default class Login extends Component { | 35 | +const AppTabContainet = createAppContainer(AppTabNavigator); |
5 | 36 | ||
6 | - constructor(props) { | 37 | +export default class MainScreen extends Component { |
7 | - super(props); | ||
8 | - this.state = { | ||
9 | - ID: this.props.navigation.getParam('ID'), | ||
10 | - }; | ||
11 | - } | ||
12 | - static navigationOptions = { | ||
13 | - title: 'MainScreen', | ||
14 | - }; | ||
15 | 38 | ||
16 | - render() { | 39 | + constructor(props) { |
17 | - return ( | 40 | + super(props); |
18 | - <View style={styles.container}> | 41 | + this.state = { |
19 | - <View style={styles.header}> | 42 | + ID: this.props.navigation.getParam('ID'), |
20 | - <Text>{this.state.ID}</Text> | 43 | + }; |
21 | - </View> | 44 | + } |
22 | - </View> | 45 | + |
23 | - ); | 46 | + static navigationOptions = { |
24 | - } | 47 | + title: 'FW IOT' } |
48 | + | ||
49 | + render() { | ||
50 | + return <AppTabContainet/>; // AppTabContainet 컴포넌트를 리턴한다. | ||
51 | + } | ||
25 | } | 52 | } |
26 | 53 | ||
27 | -var PushNotification = require('react-native-push-notification'); | ||
28 | - | ||
29 | -PushNotification.configure({ | ||
30 | - | ||
31 | - // (optional) Called when Token is generated (iOS and Android) | ||
32 | - onRegister: function(token) { | ||
33 | - console.log( 'TOKEN:', token ); | ||
34 | - }, | ||
35 | - | ||
36 | - // (required) Called when a remote or local notification is opened or received | ||
37 | - onNotification: function(notification) { | ||
38 | - console.log( 'NOTIFICATION:', notification ); | ||
39 | - }, | ||
40 | - | ||
41 | - // ANDROID ONLY: GCM Sender ID (optional - not required for local notifications, but is need to receive remote push notifications) | ||
42 | - senderID: "YOUR GCM SENDER ID", | ||
43 | - | ||
44 | - // IOS ONLY (optional): default: all - Permissions to register. | ||
45 | - permissions: { | ||
46 | - alert: true, | ||
47 | - badge: true, | ||
48 | - sound: true | ||
49 | - }, | ||
50 | - | ||
51 | - // Should the initial notification be popped automatically | ||
52 | - // default: true | ||
53 | - popInitialNotification: true, | ||
54 | - | ||
55 | - /** | ||
56 | - * (optional) default: true | ||
57 | - * - Specified if permissions (ios) and token (android and ios) will requested or not, | ||
58 | - * - if not, you must call PushNotificationsHandler.requestPermissions() later | ||
59 | - */ | ||
60 | - requestPermissions: true, | ||
61 | -}); | ||
62 | - | ||
63 | const styles = StyleSheet.create({ | 54 | const styles = StyleSheet.create({ |
64 | - input: { | 55 | + container: { |
65 | - height: 50, | 56 | + flex: 1, |
66 | - width: 250, | 57 | + alignItems: 'center', |
67 | - fontSize: 0, | 58 | + justifyContent: 'center', |
68 | - alignSelf: 'center', | 59 | + }, |
69 | - borderRadius: 1, | ||
70 | - borderStyle: 'dotted', | ||
71 | - borderBottomColor: "#0066cc", | ||
72 | - borderBottomWidth: 2, | ||
73 | - }, | ||
74 | - container: { | ||
75 | - flex: 1, | ||
76 | - backgroundColor: 'white', | ||
77 | - }, | ||
78 | - header: { | ||
79 | - flex: 2, | ||
80 | - backgroundColor: 'white', | ||
81 | - }, | ||
82 | - logo: { | ||
83 | - flex: 4, | ||
84 | - backgroundColor: 'white', | ||
85 | - }, | ||
86 | - inputPart: { | ||
87 | - flex: 4, | ||
88 | - backgroundColor: 'white', | ||
89 | - }, | ||
90 | }); | 60 | }); | ... | ... |
source/WasteDetail.js
0 → 100644
1 | +import React, { Component } from 'react'; | ||
2 | +import { View, Text, StyleSheet } from 'react-native'; | ||
3 | + | ||
4 | +export default class HomeTab extends Component { | ||
5 | + render() { | ||
6 | + return ( | ||
7 | + <View style={style.container}> | ||
8 | + <Text>총 3.8kg 추가</Text> | ||
9 | + </View> | ||
10 | + ); | ||
11 | + } | ||
12 | +} | ||
13 | + | ||
14 | +const style = StyleSheet.create({ | ||
15 | + container: { | ||
16 | + flex: 1, | ||
17 | + backgroundColor: "rgba(230,230,230,0.5)" | ||
18 | + } | ||
19 | +}); |
yarn.lock
0 → 100644
This diff could not be displayed because it is too large.
-
Please register or login to post a comment