소스 검색

base with sample buttons, image and text

andrea.nieves7 1 년 전
부모
커밋
e0e65050dd
26개의 변경된 파일25721개의 추가작업 그리고 1016개의 파일을 삭제
  1. 55
    10
      App.js
  2. 69
    0
      android/app/src/debug/java/com/censusproject/ReactNativeFlipper.java
  3. 83
    0
      android/app/src/main/java/com/censusproject/MainActivity.java
  4. 106
    0
      android/app/src/main/java/com/censusproject/MainApplication.java
  5. 117
    0
      android/app/src/main/java/com/censusproject/newarchitecture/MainApplicationReactNativeHost.java
  6. 36
    0
      android/app/src/main/java/com/censusproject/newarchitecture/components/MainComponentsRegistry.java
  7. 48
    0
      android/app/src/main/java/com/censusproject/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate.java
  8. 1
    1
      app.json
  9. 477
    0
      ios/censusproject.xcodeproj/project.pbxproj
  10. 88
    0
      ios/censusproject.xcodeproj/xcshareddata/xcschemes/censusproject.xcscheme
  11. 9
    0
      ios/censusproject/AppDelegate.h
  12. 166
    0
      ios/censusproject/AppDelegate.mm
  13. 38
    0
      ios/censusproject/Images.xcassets/AppIcon.appiconset/Contents.json
  14. 6
    0
      ios/censusproject/Images.xcassets/Contents.json
  15. 21
    0
      ios/censusproject/Images.xcassets/SplashScreen.imageset/Contents.json
  16. BIN
      ios/censusproject/Images.xcassets/SplashScreen.imageset/splashscreen.png
  17. 21
    0
      ios/censusproject/Images.xcassets/SplashScreenBackground.imageset/Contents.json
  18. BIN
      ios/censusproject/Images.xcassets/SplashScreenBackground.imageset/background.png
  19. 55
    0
      ios/censusproject/Info.plist
  20. 91
    0
      ios/censusproject/SplashScreen.storyboard
  21. 10
    0
      ios/censusproject/Supporting/Expo.plist
  22. 10
    0
      ios/censusproject/main.m
  23. 19300
    0
      package-lock.json
  24. 6
    2
      package.json
  25. BIN
      testimg.gif
  26. 4908
    1003
      yarn.lock

+ 55
- 10
App.js 파일 보기

@@ -1,21 +1,66 @@
1 1
 import { StatusBar } from 'expo-status-bar';
2 2
 import React from 'react';
3
-import { StyleSheet, Text, View } from 'react-native';
3
+import { View, Image, StyleSheet, Text, Button } from 'react-native';
4 4
 
5
-export default function App() {
6
-  return (
7
-    <View style={styles.container}>
8
-      <Text>Open up App.js to start working on your app!</Text>
9
-      <StatusBar style="auto" />
10
-    </View>
11
-  );
5
+
6
+const handlePress = () => false
7
+
8
+export default class App extends React.Component {
9
+
10
+   render() {
11
+      return (
12
+	  <View>
13
+		  <View style = {styles.buttons}>
14
+			  <Button
15
+				 onPress = {handlePress}
16
+				 title = "Button1"
17
+				 color = "blue"
18
+			  />
19
+			  
20
+			  <Button
21
+				 onPress = {handlePress}
22
+				 title = "Button2"
23
+				 color = "black"
24
+			  />
25
+		  </View>
26
+		  <View style = {styles.container}>
27
+		  
28
+		  
29
+			<Text style={styles.intro}>WELCOME!!!!</Text>
30
+		
31
+			<Text style={styles.sub}>オレノウタヲキケ!</Text>
32
+			 
33
+			<Image source={require('./testimg.gif')} />
34
+			
35
+		  </View>
36
+	  </View>
37
+      );
38
+   }
12 39
 }
13 40
 
41
+
14 42
 const styles = StyleSheet.create({
43
+	
44
+  buttons: {
45
+	  flexDirection: 'row',
46
+	  justifyContent: 'center'
47
+  },
15 48
   container: {
16
-    flex: 1,
17
-    backgroundColor: '#fff',
49
+    flexDirection: 'column',
50
+	justifyContent: 'center',
51
+    backgroundColor: '#36413E',
18 52
     alignItems: 'center',
19 53
     justifyContent: 'center',
54
+	marginTop: 100
55
+  },
56
+  intro: {
57
+	  fontWeight: "bold",
58
+      color:"#beb2c8",
59
+	  fontSize: 30,
60
+	 
61
+  },
62
+  sub: {
63
+      color:"#D7D6D6",
64
+	  fontSize: 20,
20 65
   },
21 66
 });

+ 69
- 0
android/app/src/debug/java/com/censusproject/ReactNativeFlipper.java 파일 보기

@@ -0,0 +1,69 @@
1
+/**
2
+ * Copyright (c) Facebook, Inc. and its affiliates.
3
+ *
4
+ * <p>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.censusproject;
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
+      client.addPlugin(new InspectorFlipperPlugin(context, DescriptorMapping.withDefaults()));
32
+      client.addPlugin(new ReactFlipperPlugin());
33
+      client.addPlugin(new DatabasesFlipperPlugin(context));
34
+      client.addPlugin(new SharedPreferencesFlipperPlugin(context));
35
+      client.addPlugin(CrashReporterPlugin.getInstance());
36
+      NetworkFlipperPlugin networkFlipperPlugin = new NetworkFlipperPlugin();
37
+      NetworkingModule.setCustomClientBuilder(
38
+          new NetworkingModule.CustomClientBuilder() {
39
+            @Override
40
+            public void apply(OkHttpClient.Builder builder) {
41
+              builder.addNetworkInterceptor(new FlipperOkhttpInterceptor(networkFlipperPlugin));
42
+            }
43
+          });
44
+      client.addPlugin(networkFlipperPlugin);
45
+      client.start();
46
+      // Fresco Plugin needs to ensure that ImagePipelineFactory is initialized
47
+      // Hence we run if after all native modules have been initialized
48
+      ReactContext reactContext = reactInstanceManager.getCurrentReactContext();
49
+      if (reactContext == null) {
50
+        reactInstanceManager.addReactInstanceEventListener(
51
+            new ReactInstanceManager.ReactInstanceEventListener() {
52
+              @Override
53
+              public void onReactContextInitialized(ReactContext reactContext) {
54
+                reactInstanceManager.removeReactInstanceEventListener(this);
55
+                reactContext.runOnNativeModulesQueueThread(
56
+                    new Runnable() {
57
+                      @Override
58
+                      public void run() {
59
+                        client.addPlugin(new FrescoFlipperPlugin());
60
+                      }
61
+                    });
62
+              }
63
+            });
64
+      } else {
65
+        client.addPlugin(new FrescoFlipperPlugin());
66
+      }
67
+    }
68
+  }
69
+}

+ 83
- 0
android/app/src/main/java/com/censusproject/MainActivity.java 파일 보기

@@ -0,0 +1,83 @@
1
+package com.censusproject;
2
+
3
+import android.os.Build;
4
+import android.os.Bundle;
5
+
6
+import com.facebook.react.ReactActivity;
7
+import com.facebook.react.ReactActivityDelegate;
8
+import com.facebook.react.ReactRootView;
9
+
10
+import expo.modules.ReactActivityDelegateWrapper;
11
+
12
+public class MainActivity extends ReactActivity {
13
+  @Override
14
+  protected void onCreate(Bundle savedInstanceState) {
15
+    // Set the theme to AppTheme BEFORE onCreate to support 
16
+    // coloring the background, status bar, and navigation bar.
17
+    // This is required for expo-splash-screen.
18
+    setTheme(R.style.AppTheme);
19
+    super.onCreate(null);
20
+  }
21
+
22
+  /**
23
+   * Returns the name of the main component registered from JavaScript.
24
+   * This is used to schedule rendering of the component.
25
+   */
26
+  @Override
27
+  protected String getMainComponentName() {
28
+    return "main";
29
+  }
30
+
31
+  /**
32
+   * Returns the instance of the {@link ReactActivityDelegate}. There the RootView is created and
33
+   * you can specify the renderer you wish to use - the new renderer (Fabric) or the old renderer
34
+   * (Paper).
35
+   */
36
+  @Override
37
+  protected ReactActivityDelegate createReactActivityDelegate() {
38
+    return new ReactActivityDelegateWrapper(this, BuildConfig.IS_NEW_ARCHITECTURE_ENABLED,
39
+      new MainActivityDelegate(this, getMainComponentName())
40
+    );
41
+  }
42
+
43
+  /**
44
+   * Align the back button behavior with Android S
45
+   * where moving root activities to background instead of finishing activities.
46
+   * @see <a href="https://developer.android.com/reference/android/app/Activity#onBackPressed()">onBackPressed</a>
47
+   */
48
+  @Override
49
+  public void invokeDefaultOnBackPressed() {
50
+    if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.R) {
51
+      if (!moveTaskToBack(false)) {
52
+        // For non-root activities, use the default implementation to finish them.
53
+        super.invokeDefaultOnBackPressed();
54
+      }
55
+      return;
56
+    }
57
+
58
+    // Use the default back button implementation on Android S
59
+    // because it's doing more than {@link Activity#moveTaskToBack} in fact.
60
+    super.invokeDefaultOnBackPressed();
61
+  }
62
+
63
+  public static class MainActivityDelegate extends ReactActivityDelegate {
64
+    public MainActivityDelegate(ReactActivity activity, String mainComponentName) {
65
+      super(activity, mainComponentName);
66
+    }
67
+
68
+    @Override
69
+    protected ReactRootView createRootView() {
70
+      ReactRootView reactRootView = new ReactRootView(getContext());
71
+      // If you opted-in for the New Architecture, we enable the Fabric Renderer.
72
+      reactRootView.setIsFabric(BuildConfig.IS_NEW_ARCHITECTURE_ENABLED);
73
+      return reactRootView;
74
+    }
75
+
76
+    @Override
77
+    protected boolean isConcurrentRootEnabled() {
78
+      // If you opted-in for the New Architecture, we enable Concurrent Root (i.e. React 18).
79
+      // More on this on https://reactjs.org/blog/2022/03/29/react-v18.html
80
+      return BuildConfig.IS_NEW_ARCHITECTURE_ENABLED;
81
+    }
82
+  }
83
+}

+ 106
- 0
android/app/src/main/java/com/censusproject/MainApplication.java 파일 보기

@@ -0,0 +1,106 @@
1
+package com.censusproject;
2
+
3
+import android.app.Application;
4
+import android.content.Context;
5
+import android.content.res.Configuration;
6
+import androidx.annotation.NonNull;
7
+
8
+import com.facebook.react.PackageList;
9
+import com.facebook.react.ReactApplication;
10
+import com.facebook.react.ReactInstanceManager;
11
+import com.facebook.react.ReactNativeHost;
12
+import com.facebook.react.ReactPackage;
13
+import com.facebook.react.config.ReactFeatureFlags;
14
+import com.facebook.soloader.SoLoader;
15
+import com.censusproject.newarchitecture.MainApplicationReactNativeHost;
16
+
17
+import expo.modules.ApplicationLifecycleDispatcher;
18
+import expo.modules.ReactNativeHostWrapper;
19
+
20
+import java.lang.reflect.InvocationTargetException;
21
+import java.util.List;
22
+
23
+public class MainApplication extends Application implements ReactApplication {
24
+  private final ReactNativeHost mReactNativeHost = new ReactNativeHostWrapper(
25
+    this,
26
+    new ReactNativeHost(this) {
27
+    @Override
28
+    public boolean getUseDeveloperSupport() {
29
+      return BuildConfig.DEBUG;
30
+    }
31
+
32
+    @Override
33
+    protected List<ReactPackage> getPackages() {
34
+      @SuppressWarnings("UnnecessaryLocalVariable")
35
+      List<ReactPackage> packages = new PackageList(this).getPackages();
36
+      // Packages that cannot be autolinked yet can be added manually here, for example:
37
+      // packages.add(new MyReactNativePackage());
38
+      return packages;
39
+    }
40
+
41
+    @Override
42
+    protected String getJSMainModuleName() {
43
+      return "index";
44
+    }
45
+  });
46
+
47
+  private final ReactNativeHost mNewArchitectureNativeHost =
48
+      new ReactNativeHostWrapper(this, new MainApplicationReactNativeHost(this));
49
+
50
+  @Override
51
+  public ReactNativeHost getReactNativeHost() {
52
+    if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) {
53
+      return mNewArchitectureNativeHost;
54
+    } else {
55
+      return mReactNativeHost;
56
+    }
57
+  }
58
+
59
+  @Override
60
+  public void onCreate() {
61
+    super.onCreate();
62
+    // If you opted-in for the New Architecture, we enable the TurboModule system
63
+    ReactFeatureFlags.useTurboModules = BuildConfig.IS_NEW_ARCHITECTURE_ENABLED;
64
+    SoLoader.init(this, /* native exopackage */ false);
65
+
66
+    initializeFlipper(this, getReactNativeHost().getReactInstanceManager());
67
+    ApplicationLifecycleDispatcher.onApplicationCreate(this);
68
+  }
69
+
70
+  @Override
71
+  public void onConfigurationChanged(@NonNull Configuration newConfig) {
72
+    super.onConfigurationChanged(newConfig);
73
+    ApplicationLifecycleDispatcher.onConfigurationChanged(this, newConfig);
74
+  }
75
+
76
+  /**
77
+   * Loads Flipper in React Native templates. Call this in the onCreate method with something like
78
+   * initializeFlipper(this, getReactNativeHost().getReactInstanceManager());
79
+   *
80
+   * @param context
81
+   * @param reactInstanceManager
82
+   */
83
+  private static void initializeFlipper(
84
+      Context context, ReactInstanceManager reactInstanceManager) {
85
+    if (BuildConfig.DEBUG) {
86
+      try {
87
+        /*
88
+         We use reflection here to pick up the class that initializes Flipper,
89
+        since Flipper library is not available in release mode
90
+        */
91
+        Class<?> aClass = Class.forName("com.censusproject.ReactNativeFlipper");
92
+        aClass
93
+            .getMethod("initializeFlipper", Context.class, ReactInstanceManager.class)
94
+            .invoke(null, context, reactInstanceManager);
95
+      } catch (ClassNotFoundException e) {
96
+        e.printStackTrace();
97
+      } catch (NoSuchMethodException e) {
98
+        e.printStackTrace();
99
+      } catch (IllegalAccessException e) {
100
+        e.printStackTrace();
101
+      } catch (InvocationTargetException e) {
102
+        e.printStackTrace();
103
+      }
104
+    }
105
+  }
106
+}

+ 117
- 0
android/app/src/main/java/com/censusproject/newarchitecture/MainApplicationReactNativeHost.java 파일 보기

@@ -0,0 +1,117 @@
1
+package com.censusproject.newarchitecture;
2
+
3
+import android.app.Application;
4
+import androidx.annotation.NonNull;
5
+import com.facebook.react.PackageList;
6
+import com.facebook.react.ReactInstanceManager;
7
+import com.facebook.react.ReactNativeHost;
8
+import com.facebook.react.ReactPackage;
9
+import com.facebook.react.ReactPackageTurboModuleManagerDelegate;
10
+import com.facebook.react.bridge.JSIModulePackage;
11
+import com.facebook.react.bridge.JSIModuleProvider;
12
+import com.facebook.react.bridge.JSIModuleSpec;
13
+import com.facebook.react.bridge.JSIModuleType;
14
+import com.facebook.react.bridge.JavaScriptContextHolder;
15
+import com.facebook.react.bridge.ReactApplicationContext;
16
+import com.facebook.react.bridge.UIManager;
17
+import com.facebook.react.fabric.ComponentFactory;
18
+import com.facebook.react.fabric.CoreComponentsRegistry;
19
+import com.facebook.react.fabric.EmptyReactNativeConfig;
20
+import com.facebook.react.fabric.FabricJSIModuleProvider;
21
+import com.facebook.react.fabric.ReactNativeConfig;
22
+import com.facebook.react.uimanager.ViewManagerRegistry;
23
+import com.censusproject.BuildConfig;
24
+import com.censusproject.newarchitecture.components.MainComponentsRegistry;
25
+import com.censusproject.newarchitecture.modules.MainApplicationTurboModuleManagerDelegate;
26
+import java.util.ArrayList;
27
+import java.util.List;
28
+
29
+/**
30
+ * A {@link ReactNativeHost} that helps you load everything needed for the New Architecture, both
31
+ * TurboModule delegates and the Fabric Renderer.
32
+ *
33
+ * <p>Please note that this class is used ONLY if you opt-in for the New Architecture (see the
34
+ * `newArchEnabled` property). Is ignored otherwise.
35
+ */
36
+public class MainApplicationReactNativeHost extends ReactNativeHost {
37
+  public MainApplicationReactNativeHost(Application application) {
38
+    super(application);
39
+  }
40
+
41
+  @Override
42
+  public boolean getUseDeveloperSupport() {
43
+    return BuildConfig.DEBUG;
44
+  }
45
+
46
+  @Override
47
+  protected List<ReactPackage> getPackages() {
48
+    List<ReactPackage> packages = new PackageList(this).getPackages();
49
+    // Packages that cannot be autolinked yet can be added manually here, for example:
50
+    //     packages.add(new MyReactNativePackage());
51
+    // TurboModules must also be loaded here providing a valid TurboReactPackage implementation:
52
+    //     packages.add(new TurboReactPackage() { ... });
53
+    // If you have custom Fabric Components, their ViewManagers should also be loaded here
54
+    // inside a ReactPackage.
55
+    return packages;
56
+  }
57
+
58
+  @Override
59
+  protected String getJSMainModuleName() {
60
+    return "index";
61
+  }
62
+
63
+  @NonNull
64
+  @Override
65
+  protected ReactPackageTurboModuleManagerDelegate.Builder
66
+      getReactPackageTurboModuleManagerDelegateBuilder() {
67
+    // Here we provide the ReactPackageTurboModuleManagerDelegate Builder. This is necessary
68
+    // for the new architecture and to use TurboModules correctly.
69
+    return new MainApplicationTurboModuleManagerDelegate.Builder();
70
+  }
71
+
72
+  @Override
73
+  protected JSIModulePackage getJSIModulePackage() {
74
+    return new JSIModulePackage() {
75
+      @Override
76
+      public List<JSIModuleSpec> getJSIModules(
77
+          final ReactApplicationContext reactApplicationContext,
78
+          final JavaScriptContextHolder jsContext) {
79
+        final List<JSIModuleSpec> specs = new ArrayList<>();
80
+
81
+        // Here we provide a new JSIModuleSpec that will be responsible of providing the
82
+        // custom Fabric Components.
83
+        specs.add(
84
+            new JSIModuleSpec() {
85
+              @Override
86
+              public JSIModuleType getJSIModuleType() {
87
+                return JSIModuleType.UIManager;
88
+              }
89
+
90
+              @Override
91
+              public JSIModuleProvider<UIManager> getJSIModuleProvider() {
92
+                final ComponentFactory componentFactory = new ComponentFactory();
93
+                CoreComponentsRegistry.register(componentFactory);
94
+
95
+                // Here we register a Components Registry.
96
+                // The one that is generated with the template contains no components
97
+                // and just provides you the one from React Native core.
98
+                MainComponentsRegistry.register(componentFactory);
99
+
100
+                final ReactInstanceManager reactInstanceManager = getReactInstanceManager();
101
+
102
+                ViewManagerRegistry viewManagerRegistry =
103
+                    new ViewManagerRegistry(
104
+                        reactInstanceManager.getOrCreateViewManagers(reactApplicationContext));
105
+
106
+                return new FabricJSIModuleProvider(
107
+                    reactApplicationContext,
108
+                    componentFactory,
109
+                    ReactNativeConfig.DEFAULT_CONFIG,
110
+                    viewManagerRegistry);
111
+              }
112
+            });
113
+        return specs;
114
+      }
115
+    };
116
+  }
117
+}

+ 36
- 0
android/app/src/main/java/com/censusproject/newarchitecture/components/MainComponentsRegistry.java 파일 보기

@@ -0,0 +1,36 @@
1
+package com.censusproject.newarchitecture.components;
2
+
3
+import com.facebook.jni.HybridData;
4
+import com.facebook.proguard.annotations.DoNotStrip;
5
+import com.facebook.react.fabric.ComponentFactory;
6
+import com.facebook.soloader.SoLoader;
7
+
8
+/**
9
+ * Class responsible to load the custom Fabric Components. This class has native methods and needs a
10
+ * corresponding C++ implementation/header file to work correctly (already placed inside the jni/
11
+ * folder for you).
12
+ *
13
+ * <p>Please note that this class is used ONLY if you opt-in for the New Architecture (see the
14
+ * `newArchEnabled` property). Is ignored otherwise.
15
+ */
16
+@DoNotStrip
17
+public class MainComponentsRegistry {
18
+  static {
19
+    SoLoader.loadLibrary("fabricjni");
20
+  }
21
+
22
+  @DoNotStrip private final HybridData mHybridData;
23
+
24
+  @DoNotStrip
25
+  private native HybridData initHybrid(ComponentFactory componentFactory);
26
+
27
+  @DoNotStrip
28
+  private MainComponentsRegistry(ComponentFactory componentFactory) {
29
+    mHybridData = initHybrid(componentFactory);
30
+  }
31
+
32
+  @DoNotStrip
33
+  public static MainComponentsRegistry register(ComponentFactory componentFactory) {
34
+    return new MainComponentsRegistry(componentFactory);
35
+  }
36
+}

+ 48
- 0
android/app/src/main/java/com/censusproject/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate.java 파일 보기

@@ -0,0 +1,48 @@
1
+package com.censusproject.newarchitecture.modules;
2
+
3
+import com.facebook.jni.HybridData;
4
+import com.facebook.react.ReactPackage;
5
+import com.facebook.react.ReactPackageTurboModuleManagerDelegate;
6
+import com.facebook.react.bridge.ReactApplicationContext;
7
+import com.facebook.soloader.SoLoader;
8
+import java.util.List;
9
+
10
+/**
11
+ * Class responsible to load the TurboModules. This class has native methods and needs a
12
+ * corresponding C++ implementation/header file to work correctly (already placed inside the jni/
13
+ * folder for you).
14
+ *
15
+ * <p>Please note that this class is used ONLY if you opt-in for the New Architecture (see the
16
+ * `newArchEnabled` property). Is ignored otherwise.
17
+ */
18
+public class MainApplicationTurboModuleManagerDelegate
19
+    extends ReactPackageTurboModuleManagerDelegate {
20
+
21
+  private static volatile boolean sIsSoLibraryLoaded;
22
+
23
+  protected MainApplicationTurboModuleManagerDelegate(
24
+      ReactApplicationContext reactApplicationContext, List<ReactPackage> packages) {
25
+    super(reactApplicationContext, packages);
26
+  }
27
+
28
+  protected native HybridData initHybrid();
29
+
30
+  native boolean canCreateTurboModule(String moduleName);
31
+
32
+  public static class Builder extends ReactPackageTurboModuleManagerDelegate.Builder {
33
+    protected MainApplicationTurboModuleManagerDelegate build(
34
+        ReactApplicationContext context, List<ReactPackage> packages) {
35
+      return new MainApplicationTurboModuleManagerDelegate(context, packages);
36
+    }
37
+  }
38
+
39
+  @Override
40
+  protected synchronized void maybeLoadOtherSoLibraries() {
41
+    if (!sIsSoLibraryLoaded) {
42
+      // If you change the name of your application .so file in the Android.mk file,
43
+      // make sure you update the name here as well.
44
+      SoLoader.loadLibrary("censusproject_appmodules");
45
+      sIsSoLibraryLoaded = true;
46
+    }
47
+  }
48
+}

+ 1
- 1
app.json 파일 보기

@@ -2,7 +2,7 @@
2 2
   "expo": {
3 3
     "name": "Test",
4 4
     "slug": "Test",
5
-    "version": "1.0.0",
5
+    "version": "47.0.0",
6 6
     "assetBundlePatterns": [
7 7
       "**/*"
8 8
     ]

+ 477
- 0
ios/censusproject.xcodeproj/project.pbxproj 파일 보기

@@ -0,0 +1,477 @@
1
+// !$*UTF8*$!
2
+{
3
+	archiveVersion = 1;
4
+	classes = {
5
+	};
6
+	objectVersion = 46;
7
+	objects = {
8
+
9
+/* Begin PBXBuildFile section */
10
+		13B07FBC1A68108700A75B9A /* AppDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.mm */; };
11
+		13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; };
12
+		13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; };
13
+		3E461D99554A48A4959DE609 /* SplashScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = AA286B85B6C04FC6940260E9 /* SplashScreen.storyboard */; };
14
+		96905EF65AED1B983A6B3ABC /* libPods-censusproject.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 58EEBF8E8E6FB1BC6CAF49B5 /* libPods-censusproject.a */; };
15
+		B18059E884C0ABDD17F3DC3D /* ExpoModulesProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = FAC715A2D49A985799AEE119 /* ExpoModulesProvider.swift */; };
16
+		BB2F792D24A3F905000567C9 /* Expo.plist in Resources */ = {isa = PBXBuildFile; fileRef = BB2F792C24A3F905000567C9 /* Expo.plist */; };
17
+/* End PBXBuildFile section */
18
+
19
+/* Begin PBXFileReference section */
20
+		008F07F21AC5B25A0029DE68 /* main.jsbundle */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = main.jsbundle; sourceTree = "<group>"; };
21
+		13B07F961A680F5B00A75B9A /* censusproject.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = censusproject.app; sourceTree = BUILT_PRODUCTS_DIR; };
22
+		13B07FAF1A68108700A75B9A /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = censusproject/AppDelegate.h; sourceTree = "<group>"; };
23
+		13B07FB01A68108700A75B9A /* AppDelegate.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = AppDelegate.mm; path = censusproject/AppDelegate.mm; sourceTree = "<group>"; };
24
+		13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = censusproject/Images.xcassets; sourceTree = "<group>"; };
25
+		13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = censusproject/Info.plist; sourceTree = "<group>"; };
26
+		13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = censusproject/main.m; sourceTree = "<group>"; };
27
+		58EEBF8E8E6FB1BC6CAF49B5 /* libPods-censusproject.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-censusproject.a"; sourceTree = BUILT_PRODUCTS_DIR; };
28
+		6C2E3173556A471DD304B334 /* Pods-censusproject.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-censusproject.debug.xcconfig"; path = "Target Support Files/Pods-censusproject/Pods-censusproject.debug.xcconfig"; sourceTree = "<group>"; };
29
+		7A4D352CD337FB3A3BF06240 /* Pods-censusproject.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-censusproject.release.xcconfig"; path = "Target Support Files/Pods-censusproject/Pods-censusproject.release.xcconfig"; sourceTree = "<group>"; };
30
+		AA286B85B6C04FC6940260E9 /* SplashScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = SplashScreen.storyboard; path = censusproject/SplashScreen.storyboard; sourceTree = "<group>"; };
31
+		BB2F792C24A3F905000567C9 /* Expo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Expo.plist; sourceTree = "<group>"; };
32
+		ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; };
33
+		FAC715A2D49A985799AEE119 /* ExpoModulesProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ExpoModulesProvider.swift; path = "Pods/Target Support Files/Pods-censusproject/ExpoModulesProvider.swift"; sourceTree = "<group>"; };
34
+/* End PBXFileReference section */
35
+
36
+/* Begin PBXFrameworksBuildPhase section */
37
+		13B07F8C1A680F5B00A75B9A /* Frameworks */ = {
38
+			isa = PBXFrameworksBuildPhase;
39
+			buildActionMask = 2147483647;
40
+			files = (
41
+				96905EF65AED1B983A6B3ABC /* libPods-censusproject.a in Frameworks */,
42
+			);
43
+			runOnlyForDeploymentPostprocessing = 0;
44
+		};
45
+/* End PBXFrameworksBuildPhase section */
46
+
47
+/* Begin PBXGroup section */
48
+		13B07FAE1A68108700A75B9A /* censusproject */ = {
49
+			isa = PBXGroup;
50
+			children = (
51
+				BB2F792B24A3F905000567C9 /* Supporting */,
52
+				008F07F21AC5B25A0029DE68 /* main.jsbundle */,
53
+				13B07FAF1A68108700A75B9A /* AppDelegate.h */,
54
+				13B07FB01A68108700A75B9A /* AppDelegate.mm */,
55
+				13B07FB51A68108700A75B9A /* Images.xcassets */,
56
+				13B07FB61A68108700A75B9A /* Info.plist */,
57
+				13B07FB71A68108700A75B9A /* main.m */,
58
+				AA286B85B6C04FC6940260E9 /* SplashScreen.storyboard */,
59
+			);
60
+			name = censusproject;
61
+			sourceTree = "<group>";
62
+		};
63
+		2D16E6871FA4F8E400B85C8A /* Frameworks */ = {
64
+			isa = PBXGroup;
65
+			children = (
66
+				ED297162215061F000B7C4FE /* JavaScriptCore.framework */,
67
+				58EEBF8E8E6FB1BC6CAF49B5 /* libPods-censusproject.a */,
68
+			);
69
+			name = Frameworks;
70
+			sourceTree = "<group>";
71
+		};
72
+		832341AE1AAA6A7D00B99B32 /* Libraries */ = {
73
+			isa = PBXGroup;
74
+			children = (
75
+			);
76
+			name = Libraries;
77
+			sourceTree = "<group>";
78
+		};
79
+		83CBB9F61A601CBA00E9B192 = {
80
+			isa = PBXGroup;
81
+			children = (
82
+				13B07FAE1A68108700A75B9A /* censusproject */,
83
+				832341AE1AAA6A7D00B99B32 /* Libraries */,
84
+				83CBBA001A601CBA00E9B192 /* Products */,
85
+				2D16E6871FA4F8E400B85C8A /* Frameworks */,
86
+				D65327D7A22EEC0BE12398D9 /* Pods */,
87
+				D7E4C46ADA2E9064B798F356 /* ExpoModulesProviders */,
88
+			);
89
+			indentWidth = 2;
90
+			sourceTree = "<group>";
91
+			tabWidth = 2;
92
+			usesTabs = 0;
93
+		};
94
+		83CBBA001A601CBA00E9B192 /* Products */ = {
95
+			isa = PBXGroup;
96
+			children = (
97
+				13B07F961A680F5B00A75B9A /* censusproject.app */,
98
+			);
99
+			name = Products;
100
+			sourceTree = "<group>";
101
+		};
102
+		92DBD88DE9BF7D494EA9DA96 /* censusproject */ = {
103
+			isa = PBXGroup;
104
+			children = (
105
+				FAC715A2D49A985799AEE119 /* ExpoModulesProvider.swift */,
106
+			);
107
+			name = censusproject;
108
+			sourceTree = "<group>";
109
+		};
110
+		BB2F792B24A3F905000567C9 /* Supporting */ = {
111
+			isa = PBXGroup;
112
+			children = (
113
+				BB2F792C24A3F905000567C9 /* Expo.plist */,
114
+			);
115
+			name = Supporting;
116
+			path = censusproject/Supporting;
117
+			sourceTree = "<group>";
118
+		};
119
+		D65327D7A22EEC0BE12398D9 /* Pods */ = {
120
+			isa = PBXGroup;
121
+			children = (
122
+				6C2E3173556A471DD304B334 /* Pods-censusproject.debug.xcconfig */,
123
+				7A4D352CD337FB3A3BF06240 /* Pods-censusproject.release.xcconfig */,
124
+			);
125
+			path = Pods;
126
+			sourceTree = "<group>";
127
+		};
128
+		D7E4C46ADA2E9064B798F356 /* ExpoModulesProviders */ = {
129
+			isa = PBXGroup;
130
+			children = (
131
+				92DBD88DE9BF7D494EA9DA96 /* censusproject */,
132
+			);
133
+			name = ExpoModulesProviders;
134
+			sourceTree = "<group>";
135
+		};
136
+/* End PBXGroup section */
137
+
138
+/* Begin PBXNativeTarget section */
139
+		13B07F861A680F5B00A75B9A /* censusproject */ = {
140
+			isa = PBXNativeTarget;
141
+			buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "censusproject" */;
142
+			buildPhases = (
143
+				08A4A3CD28434E44B6B9DE2E /* [CP] Check Pods Manifest.lock */,
144
+				FD10A7F022414F080027D42C /* Start Packager */,
145
+				13B07F871A680F5B00A75B9A /* Sources */,
146
+				13B07F8C1A680F5B00A75B9A /* Frameworks */,
147
+				13B07F8E1A680F5B00A75B9A /* Resources */,
148
+				00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */,
149
+				800E24972A6A228C8D4807E9 /* [CP] Copy Pods Resources */,
150
+			);
151
+			buildRules = (
152
+			);
153
+			dependencies = (
154
+			);
155
+			name = censusproject;
156
+			productName = censusproject;
157
+			productReference = 13B07F961A680F5B00A75B9A /* censusproject.app */;
158
+			productType = "com.apple.product-type.application";
159
+		};
160
+/* End PBXNativeTarget section */
161
+
162
+/* Begin PBXProject section */
163
+		83CBB9F71A601CBA00E9B192 /* Project object */ = {
164
+			isa = PBXProject;
165
+			attributes = {
166
+				LastUpgradeCheck = 1130;
167
+				TargetAttributes = {
168
+					13B07F861A680F5B00A75B9A = {
169
+						LastSwiftMigration = 1250;
170
+					};
171
+				};
172
+			};
173
+			buildConfigurationList = 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "censusproject" */;
174
+			compatibilityVersion = "Xcode 3.2";
175
+			developmentRegion = en;
176
+			hasScannedForEncodings = 0;
177
+			knownRegions = (
178
+				en,
179
+				Base,
180
+			);
181
+			mainGroup = 83CBB9F61A601CBA00E9B192;
182
+			productRefGroup = 83CBBA001A601CBA00E9B192 /* Products */;
183
+			projectDirPath = "";
184
+			projectRoot = "";
185
+			targets = (
186
+				13B07F861A680F5B00A75B9A /* censusproject */,
187
+			);
188
+		};
189
+/* End PBXProject section */
190
+
191
+/* Begin PBXResourcesBuildPhase section */
192
+		13B07F8E1A680F5B00A75B9A /* Resources */ = {
193
+			isa = PBXResourcesBuildPhase;
194
+			buildActionMask = 2147483647;
195
+			files = (
196
+				BB2F792D24A3F905000567C9 /* Expo.plist in Resources */,
197
+				13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */,
198
+				3E461D99554A48A4959DE609 /* SplashScreen.storyboard in Resources */,
199
+			);
200
+			runOnlyForDeploymentPostprocessing = 0;
201
+		};
202
+/* End PBXResourcesBuildPhase section */
203
+
204
+/* Begin PBXShellScriptBuildPhase section */
205
+		00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */ = {
206
+			isa = PBXShellScriptBuildPhase;
207
+			buildActionMask = 2147483647;
208
+			files = (
209
+			);
210
+			inputPaths = (
211
+			);
212
+			name = "Bundle React Native code and images";
213
+			outputPaths = (
214
+			);
215
+			runOnlyForDeploymentPostprocessing = 0;
216
+			shellPath = /bin/sh;
217
+			shellScript = "if [[ -f \"$PODS_ROOT/../.xcode.env\" ]]; then\n  source \"$PODS_ROOT/../.xcode.env\"\nfi\nif [[ -f \"$PODS_ROOT/../.xcode.env.local\" ]]; then\n  source \"$PODS_ROOT/../.xcode.env.local\"\nfi\n\n# The project root by default is one level up from the ios directory\nexport PROJECT_ROOT=\"$PROJECT_DIR\"/..\n\nif [[ \"$CONFIGURATION\" = *Debug* ]]; then\n  export SKIP_BUNDLING=1\nfi\nif [[ -z \"$ENTRY_FILE\" ]]; then\n  # Set the entry JS file using the bundler's entry resolution.\n  export ENTRY_FILE=\"$(\"$NODE_BINARY\" -e \"require('expo/scripts/resolveAppEntry')\" $PROJECT_ROOT ios relative | tail -n 1)\"\nfi\n\n`\"$NODE_BINARY\" --print \"require('path').dirname(require.resolve('react-native/package.json')) + '/scripts/react-native-xcode.sh'\"`\n\n";
218
+		};
219
+		08A4A3CD28434E44B6B9DE2E /* [CP] Check Pods Manifest.lock */ = {
220
+			isa = PBXShellScriptBuildPhase;
221
+			buildActionMask = 2147483647;
222
+			files = (
223
+			);
224
+			inputFileListPaths = (
225
+			);
226
+			inputPaths = (
227
+				"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
228
+				"${PODS_ROOT}/Manifest.lock",
229
+			);
230
+			name = "[CP] Check Pods Manifest.lock";
231
+			outputFileListPaths = (
232
+			);
233
+			outputPaths = (
234
+				"$(DERIVED_FILE_DIR)/Pods-censusproject-checkManifestLockResult.txt",
235
+			);
236
+			runOnlyForDeploymentPostprocessing = 0;
237
+			shellPath = /bin/sh;
238
+			shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n    # print error to STDERR\n    echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n    exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
239
+			showEnvVarsInLog = 0;
240
+		};
241
+		800E24972A6A228C8D4807E9 /* [CP] Copy Pods Resources */ = {
242
+			isa = PBXShellScriptBuildPhase;
243
+			buildActionMask = 2147483647;
244
+			files = (
245
+			);
246
+			inputPaths = (
247
+				"${PODS_ROOT}/Target Support Files/Pods-censusproject/Pods-censusproject-resources.sh",
248
+				"${PODS_CONFIGURATION_BUILD_DIR}/EXConstants/EXConstants.bundle",
249
+				"${PODS_CONFIGURATION_BUILD_DIR}/EXUpdates/EXUpdates.bundle",
250
+				"${PODS_CONFIGURATION_BUILD_DIR}/React-Core/AccessibilityResources.bundle",
251
+			);
252
+			name = "[CP] Copy Pods Resources";
253
+			outputPaths = (
254
+				"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/EXConstants.bundle",
255
+				"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/EXUpdates.bundle",
256
+				"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/AccessibilityResources.bundle",
257
+			);
258
+			runOnlyForDeploymentPostprocessing = 0;
259
+			shellPath = /bin/sh;
260
+			shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-censusproject/Pods-censusproject-resources.sh\"\n";
261
+			showEnvVarsInLog = 0;
262
+		};
263
+		FD10A7F022414F080027D42C /* Start Packager */ = {
264
+			isa = PBXShellScriptBuildPhase;
265
+			buildActionMask = 2147483647;
266
+			files = (
267
+			);
268
+			inputFileListPaths = (
269
+			);
270
+			inputPaths = (
271
+			);
272
+			name = "Start Packager";
273
+			outputFileListPaths = (
274
+			);
275
+			outputPaths = (
276
+			);
277
+			runOnlyForDeploymentPostprocessing = 0;
278
+			shellPath = /bin/sh;
279
+			shellScript = "if [[ -f \"$PODS_ROOT/../.xcode.env\" ]]; then\n  source \"$PODS_ROOT/../.xcode.env\"\nfi\nif [[ -f \"$PODS_ROOT/../.xcode.env.local\" ]]; then\n  source \"$PODS_ROOT/../.xcode.env.local\"\nfi\n\nexport RCT_METRO_PORT=\"${RCT_METRO_PORT:=8081}\"\necho \"export RCT_METRO_PORT=${RCT_METRO_PORT}\" > `$NODE_BINARY --print \"require('path').dirname(require.resolve('react-native/package.json')) + '/scripts/.packager.env'\"`\nif [ -z \"${RCT_NO_LAUNCH_PACKAGER+xxx}\" ] ; then\n  if nc -w 5 -z localhost ${RCT_METRO_PORT} ; then\n    if ! curl -s \"http://localhost:${RCT_METRO_PORT}/status\" | grep -q \"packager-status:running\" ; then\n      echo \"Port ${RCT_METRO_PORT} already in use, packager is either not running or not running correctly\"\n      exit 2\n    fi\n  else\n    open `$NODE_BINARY --print \"require('path').dirname(require.resolve('react-native/package.json')) + '/scripts/launchPackager.command'\"` || echo \"Can't start packager automatically\"\n  fi\nfi\n";
280
+			showEnvVarsInLog = 0;
281
+		};
282
+/* End PBXShellScriptBuildPhase section */
283
+
284
+/* Begin PBXSourcesBuildPhase section */
285
+		13B07F871A680F5B00A75B9A /* Sources */ = {
286
+			isa = PBXSourcesBuildPhase;
287
+			buildActionMask = 2147483647;
288
+			files = (
289
+				13B07FBC1A68108700A75B9A /* AppDelegate.mm in Sources */,
290
+				13B07FC11A68108700A75B9A /* main.m in Sources */,
291
+				B18059E884C0ABDD17F3DC3D /* ExpoModulesProvider.swift in Sources */,
292
+			);
293
+			runOnlyForDeploymentPostprocessing = 0;
294
+		};
295
+/* End PBXSourcesBuildPhase section */
296
+
297
+/* Begin XCBuildConfiguration section */
298
+		13B07F941A680F5B00A75B9A /* Debug */ = {
299
+			isa = XCBuildConfiguration;
300
+			baseConfigurationReference = 6C2E3173556A471DD304B334 /* Pods-censusproject.debug.xcconfig */;
301
+			buildSettings = {
302
+				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
303
+				CLANG_ENABLE_MODULES = YES;
304
+				CURRENT_PROJECT_VERSION = 1;
305
+				ENABLE_BITCODE = NO;
306
+				GCC_PREPROCESSOR_DEFINITIONS = (
307
+					"$(inherited)",
308
+					"FB_SONARKIT_ENABLED=1",
309
+				);
310
+				INFOPLIST_FILE = censusproject/Info.plist;
311
+				IPHONEOS_DEPLOYMENT_TARGET = 13.0;
312
+				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
313
+				OTHER_LDFLAGS = (
314
+					"$(inherited)",
315
+					"-ObjC",
316
+					"-lc++",
317
+				);
318
+				PRODUCT_BUNDLE_IDENTIFIER = org.name.censusproject;
319
+				PRODUCT_NAME = censusproject;
320
+				SWIFT_OPTIMIZATION_LEVEL = "-Onone";
321
+				SWIFT_VERSION = 5.0;
322
+				VERSIONING_SYSTEM = "apple-generic";
323
+			};
324
+			name = Debug;
325
+		};
326
+		13B07F951A680F5B00A75B9A /* Release */ = {
327
+			isa = XCBuildConfiguration;
328
+			baseConfigurationReference = 7A4D352CD337FB3A3BF06240 /* Pods-censusproject.release.xcconfig */;
329
+			buildSettings = {
330
+				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
331
+				CLANG_ENABLE_MODULES = YES;
332
+				CURRENT_PROJECT_VERSION = 1;
333
+				INFOPLIST_FILE = censusproject/Info.plist;
334
+				IPHONEOS_DEPLOYMENT_TARGET = 13.0;
335
+				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
336
+				OTHER_LDFLAGS = (
337
+					"$(inherited)",
338
+					"-ObjC",
339
+					"-lc++",
340
+				);
341
+				PRODUCT_BUNDLE_IDENTIFIER = org.name.censusproject;
342
+				PRODUCT_NAME = censusproject;
343
+				SWIFT_VERSION = 5.0;
344
+				VERSIONING_SYSTEM = "apple-generic";
345
+			};
346
+			name = Release;
347
+		};
348
+		83CBBA201A601CBA00E9B192 /* Debug */ = {
349
+			isa = XCBuildConfiguration;
350
+			buildSettings = {
351
+				ALWAYS_SEARCH_USER_PATHS = NO;
352
+				CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
353
+				CLANG_CXX_LANGUAGE_STANDARD = "c++17";
354
+				CLANG_CXX_LIBRARY = "libc++";
355
+				CLANG_ENABLE_MODULES = YES;
356
+				CLANG_ENABLE_OBJC_ARC = YES;
357
+				CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
358
+				CLANG_WARN_BOOL_CONVERSION = YES;
359
+				CLANG_WARN_COMMA = YES;
360
+				CLANG_WARN_CONSTANT_CONVERSION = YES;
361
+				CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
362
+				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
363
+				CLANG_WARN_EMPTY_BODY = YES;
364
+				CLANG_WARN_ENUM_CONVERSION = YES;
365
+				CLANG_WARN_INFINITE_RECURSION = YES;
366
+				CLANG_WARN_INT_CONVERSION = YES;
367
+				CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
368
+				CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
369
+				CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
370
+				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
371
+				CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
372
+				CLANG_WARN_STRICT_PROTOTYPES = YES;
373
+				CLANG_WARN_SUSPICIOUS_MOVE = YES;
374
+				CLANG_WARN_UNREACHABLE_CODE = YES;
375
+				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
376
+				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
377
+				COPY_PHASE_STRIP = NO;
378
+				ENABLE_STRICT_OBJC_MSGSEND = YES;
379
+				ENABLE_TESTABILITY = YES;
380
+				GCC_C_LANGUAGE_STANDARD = gnu99;
381
+				GCC_DYNAMIC_NO_PIC = NO;
382
+				GCC_NO_COMMON_BLOCKS = YES;
383
+				GCC_OPTIMIZATION_LEVEL = 0;
384
+				GCC_PREPROCESSOR_DEFINITIONS = (
385
+					"DEBUG=1",
386
+					"$(inherited)",
387
+				);
388
+				GCC_SYMBOLS_PRIVATE_EXTERN = NO;
389
+				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
390
+				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
391
+				GCC_WARN_UNDECLARED_SELECTOR = YES;
392
+				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
393
+				GCC_WARN_UNUSED_FUNCTION = YES;
394
+				GCC_WARN_UNUSED_VARIABLE = YES;
395
+				IPHONEOS_DEPLOYMENT_TARGET = 13.0;
396
+				LD_RUNPATH_SEARCH_PATHS = "/usr/lib/swift $(inherited)";
397
+				LIBRARY_SEARCH_PATHS = "\"$(inherited)\"";
398
+				MTL_ENABLE_DEBUG_INFO = YES;
399
+				ONLY_ACTIVE_ARCH = YES;
400
+				SDKROOT = iphoneos;
401
+			};
402
+			name = Debug;
403
+		};
404
+		83CBBA211A601CBA00E9B192 /* Release */ = {
405
+			isa = XCBuildConfiguration;
406
+			buildSettings = {
407
+				ALWAYS_SEARCH_USER_PATHS = NO;
408
+				CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
409
+				CLANG_CXX_LANGUAGE_STANDARD = "c++17";
410
+				CLANG_CXX_LIBRARY = "libc++";
411
+				CLANG_ENABLE_MODULES = YES;
412
+				CLANG_ENABLE_OBJC_ARC = YES;
413
+				CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
414
+				CLANG_WARN_BOOL_CONVERSION = YES;
415
+				CLANG_WARN_COMMA = YES;
416
+				CLANG_WARN_CONSTANT_CONVERSION = YES;
417
+				CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
418
+				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
419
+				CLANG_WARN_EMPTY_BODY = YES;
420
+				CLANG_WARN_ENUM_CONVERSION = YES;
421
+				CLANG_WARN_INFINITE_RECURSION = YES;
422
+				CLANG_WARN_INT_CONVERSION = YES;
423
+				CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
424
+				CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
425
+				CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
426
+				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
427
+				CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
428
+				CLANG_WARN_STRICT_PROTOTYPES = YES;
429
+				CLANG_WARN_SUSPICIOUS_MOVE = YES;
430
+				CLANG_WARN_UNREACHABLE_CODE = YES;
431
+				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
432
+				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
433
+				COPY_PHASE_STRIP = YES;
434
+				ENABLE_NS_ASSERTIONS = NO;
435
+				ENABLE_STRICT_OBJC_MSGSEND = YES;
436
+				GCC_C_LANGUAGE_STANDARD = gnu99;
437
+				GCC_NO_COMMON_BLOCKS = YES;
438
+				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
439
+				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
440
+				GCC_WARN_UNDECLARED_SELECTOR = YES;
441
+				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
442
+				GCC_WARN_UNUSED_FUNCTION = YES;
443
+				GCC_WARN_UNUSED_VARIABLE = YES;
444
+				IPHONEOS_DEPLOYMENT_TARGET = 13.0;
445
+				LD_RUNPATH_SEARCH_PATHS = "/usr/lib/swift $(inherited)";
446
+				LIBRARY_SEARCH_PATHS = "\"$(inherited)\"";
447
+				MTL_ENABLE_DEBUG_INFO = NO;
448
+				SDKROOT = iphoneos;
449
+				VALIDATE_PRODUCT = YES;
450
+			};
451
+			name = Release;
452
+		};
453
+/* End XCBuildConfiguration section */
454
+
455
+/* Begin XCConfigurationList section */
456
+		13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "censusproject" */ = {
457
+			isa = XCConfigurationList;
458
+			buildConfigurations = (
459
+				13B07F941A680F5B00A75B9A /* Debug */,
460
+				13B07F951A680F5B00A75B9A /* Release */,
461
+			);
462
+			defaultConfigurationIsVisible = 0;
463
+			defaultConfigurationName = Release;
464
+		};
465
+		83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "censusproject" */ = {
466
+			isa = XCConfigurationList;
467
+			buildConfigurations = (
468
+				83CBBA201A601CBA00E9B192 /* Debug */,
469
+				83CBBA211A601CBA00E9B192 /* Release */,
470
+			);
471
+			defaultConfigurationIsVisible = 0;
472
+			defaultConfigurationName = Release;
473
+		};
474
+/* End XCConfigurationList section */
475
+	};
476
+	rootObject = 83CBB9F71A601CBA00E9B192 /* Project object */;
477
+}

+ 88
- 0
ios/censusproject.xcodeproj/xcshareddata/xcschemes/censusproject.xcscheme 파일 보기

@@ -0,0 +1,88 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<Scheme
3
+   LastUpgradeVersion = "1130"
4
+   version = "1.3">
5
+   <BuildAction
6
+      parallelizeBuildables = "YES"
7
+      buildImplicitDependencies = "YES">
8
+      <BuildActionEntries>
9
+         <BuildActionEntry
10
+            buildForTesting = "YES"
11
+            buildForRunning = "YES"
12
+            buildForProfiling = "YES"
13
+            buildForArchiving = "YES"
14
+            buildForAnalyzing = "YES">
15
+            <BuildableReference
16
+               BuildableIdentifier = "primary"
17
+               BlueprintIdentifier = "13B07F861A680F5B00A75B9A"
18
+               BuildableName = "censusproject.app"
19
+               BlueprintName = "censusproject"
20
+               ReferencedContainer = "container:censusproject.xcodeproj">
21
+            </BuildableReference>
22
+         </BuildActionEntry>
23
+      </BuildActionEntries>
24
+   </BuildAction>
25
+   <TestAction
26
+      buildConfiguration = "Debug"
27
+      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
28
+      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
29
+      shouldUseLaunchSchemeArgsEnv = "YES">
30
+      <Testables>
31
+         <TestableReference
32
+            skipped = "NO">
33
+            <BuildableReference
34
+               BuildableIdentifier = "primary"
35
+               BlueprintIdentifier = "00E356ED1AD99517003FC87E"
36
+               BuildableName = "censusprojectTests.xctest"
37
+               BlueprintName = "censusprojectTests"
38
+               ReferencedContainer = "container:censusproject.xcodeproj">
39
+            </BuildableReference>
40
+         </TestableReference>
41
+      </Testables>
42
+   </TestAction>
43
+   <LaunchAction
44
+      buildConfiguration = "Debug"
45
+      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
46
+      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
47
+      launchStyle = "0"
48
+      useCustomWorkingDirectory = "NO"
49
+      ignoresPersistentStateOnLaunch = "NO"
50
+      debugDocumentVersioning = "YES"
51
+      debugServiceExtension = "internal"
52
+      allowLocationSimulation = "YES">
53
+      <BuildableProductRunnable
54
+         runnableDebuggingMode = "0">
55
+         <BuildableReference
56
+            BuildableIdentifier = "primary"
57
+            BlueprintIdentifier = "13B07F861A680F5B00A75B9A"
58
+            BuildableName = "censusproject.app"
59
+            BlueprintName = "censusproject"
60
+            ReferencedContainer = "container:censusproject.xcodeproj">
61
+         </BuildableReference>
62
+      </BuildableProductRunnable>
63
+   </LaunchAction>
64
+   <ProfileAction
65
+      buildConfiguration = "Release"
66
+      shouldUseLaunchSchemeArgsEnv = "YES"
67
+      savedToolIdentifier = ""
68
+      useCustomWorkingDirectory = "NO"
69
+      debugDocumentVersioning = "YES">
70
+      <BuildableProductRunnable
71
+         runnableDebuggingMode = "0">
72
+         <BuildableReference
73
+            BuildableIdentifier = "primary"
74
+            BlueprintIdentifier = "13B07F861A680F5B00A75B9A"
75
+            BuildableName = "censusproject.app"
76
+            BlueprintName = "censusproject"
77
+            ReferencedContainer = "container:censusproject.xcodeproj">
78
+         </BuildableReference>
79
+      </BuildableProductRunnable>
80
+   </ProfileAction>
81
+   <AnalyzeAction
82
+      buildConfiguration = "Debug">
83
+   </AnalyzeAction>
84
+   <ArchiveAction
85
+      buildConfiguration = "Release"
86
+      revealArchiveInOrganizer = "YES">
87
+   </ArchiveAction>
88
+</Scheme>

+ 9
- 0
ios/censusproject/AppDelegate.h 파일 보기

@@ -0,0 +1,9 @@
1
+#import <Foundation/Foundation.h>
2
+#import <React/RCTBridgeDelegate.h>
3
+#import <UIKit/UIKit.h>
4
+
5
+#import <Expo/Expo.h>
6
+
7
+@interface AppDelegate : EXAppDelegateWrapper <RCTBridgeDelegate>
8
+
9
+@end

+ 166
- 0
ios/censusproject/AppDelegate.mm 파일 보기

@@ -0,0 +1,166 @@
1
+#import "AppDelegate.h"
2
+
3
+#import <React/RCTBridge.h>
4
+#import <React/RCTBundleURLProvider.h>
5
+#import <React/RCTRootView.h>
6
+#import <React/RCTLinkingManager.h>
7
+#import <React/RCTConvert.h>
8
+
9
+#import <React/RCTAppSetupUtils.h>
10
+
11
+#if RCT_NEW_ARCH_ENABLED
12
+#import <React/CoreModulesPlugins.h>
13
+#import <React/RCTCxxBridgeDelegate.h>
14
+#import <React/RCTFabricSurfaceHostingProxyRootView.h>
15
+#import <React/RCTSurfacePresenter.h>
16
+#import <React/RCTSurfacePresenterBridgeAdapter.h>
17
+#import <ReactCommon/RCTTurboModuleManager.h>
18
+
19
+#import <react/config/ReactNativeConfig.h>
20
+
21
+static NSString *const kRNConcurrentRoot = @"concurrentRoot";
22
+
23
+@interface AppDelegate () <RCTCxxBridgeDelegate, RCTTurboModuleManagerDelegate> {
24
+  RCTTurboModuleManager *_turboModuleManager;
25
+  RCTSurfacePresenterBridgeAdapter *_bridgeAdapter;
26
+  std::shared_ptr<const facebook::react::ReactNativeConfig> _reactNativeConfig;
27
+  facebook::react::ContextContainer::Shared _contextContainer;
28
+}
29
+@end
30
+#endif
31
+
32
+@implementation AppDelegate
33
+
34
+- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
35
+{
36
+  RCTAppSetupPrepareApp(application);
37
+
38
+  RCTBridge *bridge = [self.reactDelegate createBridgeWithDelegate:self launchOptions:launchOptions];
39
+
40
+#if RCT_NEW_ARCH_ENABLED
41
+  _contextContainer = std::make_shared<facebook::react::ContextContainer const>();
42
+  _reactNativeConfig = std::make_shared<facebook::react::EmptyReactNativeConfig const>();
43
+  _contextContainer->insert("ReactNativeConfig", _reactNativeConfig);
44
+  _bridgeAdapter = [[RCTSurfacePresenterBridgeAdapter alloc] initWithBridge:bridge contextContainer:_contextContainer];
45
+  bridge.surfacePresenter = _bridgeAdapter.surfacePresenter;
46
+#endif
47
+
48
+  NSDictionary *initProps = [self prepareInitialProps];
49
+  UIView *rootView = [self.reactDelegate createRootViewWithBridge:bridge moduleName:@"main" initialProperties:initProps];
50
+
51
+  rootView.backgroundColor = [UIColor whiteColor];
52
+  self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
53
+  UIViewController *rootViewController = [self.reactDelegate createRootViewController];
54
+  rootViewController.view = rootView;
55
+  self.window.rootViewController = rootViewController;
56
+  [self.window makeKeyAndVisible];
57
+
58
+  [super application:application didFinishLaunchingWithOptions:launchOptions];
59
+
60
+  return YES;
61
+}
62
+
63
+- (NSArray<id<RCTBridgeModule>> *)extraModulesForBridge:(RCTBridge *)bridge
64
+{
65
+  // If you'd like to export some custom RCTBridgeModules, add them here!
66
+  return @[];
67
+}
68
+
69
+/// This method controls whether the `concurrentRoot`feature of React18 is turned on or off.
70
+///
71
+/// @see: https://reactjs.org/blog/2022/03/29/react-v18.html
72
+/// @note: This requires to be rendering on Fabric (i.e. on the New Architecture).
73
+/// @return: `true` if the `concurrentRoot` feture is enabled. Otherwise, it returns `false`.
74
+- (BOOL)concurrentRootEnabled
75
+{
76
+  // Switch this bool to turn on and off the concurrent root
77
+  return true;
78
+}
79
+
80
+- (NSDictionary *)prepareInitialProps
81
+{
82
+  NSMutableDictionary *initProps = [NSMutableDictionary new];
83
+#if RCT_NEW_ARCH_ENABLED
84
+  initProps[kRNConcurrentRoot] = @([self concurrentRootEnabled]);
85
+#endif
86
+  return initProps;
87
+}
88
+
89
+- (NSURL *)sourceURLForBridge:(RCTBridge *)bridge
90
+{
91
+#if DEBUG
92
+  return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index"];
93
+#else
94
+  return [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"];
95
+#endif
96
+}
97
+
98
+// Linking API
99
+- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options {
100
+  return [super application:application openURL:url options:options] || [RCTLinkingManager application:application openURL:url options:options];
101
+}
102
+
103
+// Universal Links
104
+- (BOOL)application:(UIApplication *)application continueUserActivity:(nonnull NSUserActivity *)userActivity restorationHandler:(nonnull void (^)(NSArray<id<UIUserActivityRestoring>> * _Nullable))restorationHandler {
105
+  BOOL result = [RCTLinkingManager application:application continueUserActivity:userActivity restorationHandler:restorationHandler];
106
+  return [super application:application continueUserActivity:userActivity restorationHandler:restorationHandler] || result;
107
+}
108
+
109
+// Explicitly define remote notification delegates to ensure compatibility with some third-party libraries
110
+- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken
111
+{
112
+  return [super application:application didRegisterForRemoteNotificationsWithDeviceToken:deviceToken];
113
+}
114
+
115
+// Explicitly define remote notification delegates to ensure compatibility with some third-party libraries
116
+- (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error
117
+{
118
+  return [super application:application didFailToRegisterForRemoteNotificationsWithError:error];
119
+}
120
+
121
+// Explicitly define remote notification delegates to ensure compatibility with some third-party libraries
122
+- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler
123
+{
124
+  return [super application:application didReceiveRemoteNotification:userInfo fetchCompletionHandler:completionHandler];
125
+}
126
+
127
+#if RCT_NEW_ARCH_ENABLED
128
+
129
+#pragma mark - RCTCxxBridgeDelegate
130
+
131
+- (std::unique_ptr<facebook::react::JSExecutorFactory>)jsExecutorFactoryForBridge:(RCTBridge *)bridge
132
+{
133
+  _turboModuleManager = [[RCTTurboModuleManager alloc] initWithBridge:bridge
134
+                                                             delegate:self
135
+                                                            jsInvoker:bridge.jsCallInvoker];
136
+  return RCTAppSetupDefaultJsExecutorFactory(bridge, _turboModuleManager);
137
+}
138
+
139
+#pragma mark RCTTurboModuleManagerDelegate
140
+
141
+- (Class)getModuleClassFromName:(const char *)name
142
+{
143
+  return RCTCoreModulesClassProvider(name);
144
+}
145
+
146
+- (std::shared_ptr<facebook::react::TurboModule>)getTurboModule:(const std::string &)name
147
+                                                      jsInvoker:(std::shared_ptr<facebook::react::CallInvoker>)jsInvoker
148
+{
149
+  return nullptr;
150
+}
151
+
152
+- (std::shared_ptr<facebook::react::TurboModule>)getTurboModule:(const std::string &)name
153
+                                                     initParams:
154
+                                                         (const facebook::react::ObjCTurboModule::InitParams &)params
155
+{
156
+  return nullptr;
157
+}
158
+
159
+- (id<RCTTurboModule>)getModuleInstanceFromClass:(Class)moduleClass
160
+{
161
+  return RCTAppSetupDefaultModuleFromClass(moduleClass);
162
+}
163
+
164
+#endif
165
+
166
+@end

+ 38
- 0
ios/censusproject/Images.xcassets/AppIcon.appiconset/Contents.json 파일 보기

@@ -0,0 +1,38 @@
1
+{
2
+  "images" : [
3
+    {
4
+      "idiom" : "iphone",
5
+      "size" : "29x29",
6
+      "scale" : "2x"
7
+    },
8
+    {
9
+      "idiom" : "iphone",
10
+      "size" : "29x29",
11
+      "scale" : "3x"
12
+    },
13
+    {
14
+      "idiom" : "iphone",
15
+      "size" : "40x40",
16
+      "scale" : "2x"
17
+    },
18
+    {
19
+      "idiom" : "iphone",
20
+      "size" : "40x40",
21
+      "scale" : "3x"
22
+    },
23
+    {
24
+      "idiom" : "iphone",
25
+      "size" : "60x60",
26
+      "scale" : "2x"
27
+    },
28
+    {
29
+      "idiom" : "iphone",
30
+      "size" : "60x60",
31
+      "scale" : "3x"
32
+    }
33
+  ],
34
+  "info" : {
35
+    "version" : 1,
36
+    "author" : "expo"
37
+  }
38
+}

+ 6
- 0
ios/censusproject/Images.xcassets/Contents.json 파일 보기

@@ -0,0 +1,6 @@
1
+{
2
+  "info" : {
3
+    "version" : 1,
4
+    "author" : "expo"
5
+  }
6
+}

+ 21
- 0
ios/censusproject/Images.xcassets/SplashScreen.imageset/Contents.json 파일 보기

@@ -0,0 +1,21 @@
1
+{
2
+  "images": [
3
+    {
4
+      "idiom": "universal",
5
+      "filename": "splashscreen.png",
6
+      "scale": "1x"
7
+    },
8
+    {
9
+      "idiom": "universal",
10
+      "scale": "2x"
11
+    },
12
+    {
13
+      "idiom": "universal",
14
+      "scale": "3x"
15
+    }
16
+  ],
17
+  "info": {
18
+    "version": 1,
19
+    "author": "expo"
20
+  }
21
+}

BIN
ios/censusproject/Images.xcassets/SplashScreen.imageset/splashscreen.png 파일 보기


+ 21
- 0
ios/censusproject/Images.xcassets/SplashScreenBackground.imageset/Contents.json 파일 보기

@@ -0,0 +1,21 @@
1
+{
2
+  "images": [
3
+    {
4
+      "idiom": "universal",
5
+      "filename": "background.png",
6
+      "scale": "1x"
7
+    },
8
+    {
9
+      "idiom": "universal",
10
+      "scale": "2x"
11
+    },
12
+    {
13
+      "idiom": "universal",
14
+      "scale": "3x"
15
+    }
16
+  ],
17
+  "info": {
18
+    "version": 1,
19
+    "author": "expo"
20
+  }
21
+}

BIN
ios/censusproject/Images.xcassets/SplashScreenBackground.imageset/background.png 파일 보기


+ 55
- 0
ios/censusproject/Info.plist 파일 보기

@@ -0,0 +1,55 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
+<plist version="1.0">
4
+<dict>
5
+	<key>CFBundleDevelopmentRegion</key>
6
+	<string>$(DEVELOPMENT_LANGUAGE)</string>
7
+	<key>CFBundleExecutable</key>
8
+	<string>$(EXECUTABLE_NAME)</string>
9
+	<key>CFBundleIdentifier</key>
10
+	<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
11
+	<key>CFBundleInfoDictionaryVersion</key>
12
+	<string>6.0</string>
13
+	<key>CFBundleName</key>
14
+	<string>$(PRODUCT_NAME)</string>
15
+	<key>CFBundlePackageType</key>
16
+	<string>$(PRODUCT_BUNDLE_PACKAGE_TYPE)</string>
17
+	<key>CFBundleSignature</key>
18
+	<string>????</string>
19
+	<key>CFBundleShortVersionString</key>
20
+	<string>1.0</string>
21
+	<key>CFBundleVersion</key>
22
+	<string>1</string>
23
+	<key>LSRequiresIPhoneOS</key>
24
+	<true/>
25
+	<key>NSAppTransportSecurity</key>
26
+	<dict>
27
+		<key>NSAllowsArbitraryLoads</key>
28
+		<true/>
29
+		<key>NSExceptionDomains</key>
30
+		<dict>
31
+			<key>localhost</key>
32
+			<dict>
33
+				<key>NSExceptionAllowsInsecureHTTPLoads</key>
34
+				<true/>
35
+			</dict>
36
+		</dict>
37
+	</dict>
38
+	<key>UILaunchStoryboardName</key>
39
+	<string>SplashScreen</string>
40
+	<key>UIRequiredDeviceCapabilities</key>
41
+	<array>
42
+		<string>armv7</string>
43
+	</array>
44
+	<key>UISupportedInterfaceOrientations</key>
45
+	<array>
46
+		<string>UIInterfaceOrientationPortrait</string>
47
+		<string>UIInterfaceOrientationLandscapeLeft</string>
48
+		<string>UIInterfaceOrientationLandscapeRight</string>
49
+	</array>
50
+	<key>UIViewControllerBasedStatusBarAppearance</key>
51
+	<false/>
52
+  <key>UIStatusBarStyle</key>
53
+  <string>UIStatusBarStyleDefault</string>
54
+</dict>
55
+</plist>

+ 91
- 0
ios/censusproject/SplashScreen.storyboard 파일 보기

@@ -0,0 +1,91 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<document
3
+  type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB"
4
+  version="3.0"
5
+  toolsVersion="16096"
6
+  targetRuntime="iOS.CocoaTouch"
7
+  propertyAccessControl="none"
8
+  useAutolayout="YES"
9
+  launchScreen="YES"
10
+  useTraitCollections="YES"
11
+  useSafeAreas="YES"
12
+  colorMatched="YES"
13
+  initialViewController="EXPO-VIEWCONTROLLER-1"
14
+>
15
+  <device id="retina5_5" orientation="portrait" appearance="light"/>
16
+  <dependencies>
17
+    <deployment identifier="iOS"/>
18
+    <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="16087"/>
19
+    <capability name="Safe area layout guides" minToolsVersion="9.0"/>
20
+    <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
21
+  </dependencies>
22
+  <scenes>
23
+    <!--View Controller-->
24
+    <scene sceneID="EXPO-SCENE-1">
25
+      <objects>
26
+        <viewController
27
+          storyboardIdentifier="SplashScreenViewController"
28
+          id="EXPO-VIEWCONTROLLER-1"
29
+          sceneMemberID="viewController"
30
+        >
31
+          <view
32
+            key="view"
33
+            userInteractionEnabled="NO"
34
+            contentMode="scaleToFill"
35
+            insetsLayoutMarginsFromSafeArea="NO"
36
+            id="EXPO-ContainerView"
37
+            userLabel="ContainerView"
38
+          >
39
+            <rect key="frame" x="0.0" y="0.0" width="414" height="736"/>
40
+            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
41
+            <subviews>
42
+              <imageView
43
+                userInteractionEnabled="NO"
44
+                contentMode="scaleAspectFill"
45
+                horizontalHuggingPriority="251"
46
+                verticalHuggingPriority="251"
47
+                insetsLayoutMarginsFromSafeArea="NO"
48
+                image="SplashScreenBackground"
49
+                translatesAutoresizingMaskIntoConstraints="NO"
50
+                id="EXPO-SplashScreenBackground"
51
+                userLabel="SplashScreenBackground"
52
+              >
53
+                <rect key="frame" x="0.0" y="0.0" width="414" height="736"/>
54
+              </imageView>
55
+              <imageView
56
+                clipsSubviews="YES"
57
+                userInteractionEnabled="NO"
58
+                contentMode="scaleAspectFit"
59
+                horizontalHuggingPriority="251"
60
+                verticalHuggingPriority="251"
61
+                translatesAutoresizingMaskIntoConstraints="NO"
62
+                image="SplashScreen"
63
+                id="EXPO-SplashScreen"
64
+                userLabel="SplashScreen"
65
+              >
66
+                <rect key="frame" x="0.0" y="0.0" width="414" height="736"/>
67
+              </imageView>
68
+            </subviews>
69
+            <constraints>
70
+              <constraint firstItem="EXPO-SplashScreenBackground" firstAttribute="top" secondItem="EXPO-ContainerView" secondAttribute="top" id="1gX-mQ-vu6"/>
71
+              <constraint firstItem="EXPO-SplashScreenBackground" firstAttribute="leading" secondItem="EXPO-ContainerView" secondAttribute="leading" id="6tX-OG-Sck"/>
72
+              <constraint firstItem="EXPO-SplashScreenBackground" firstAttribute="trailing" secondItem="EXPO-ContainerView" secondAttribute="trailing" id="ABX-8g-7v4"/>
73
+              <constraint firstItem="EXPO-SplashScreenBackground" firstAttribute="bottom" secondItem="EXPO-ContainerView" secondAttribute="bottom" id="jkI-2V-eW5"/>
74
+              <constraint firstItem="EXPO-SplashScreen" firstAttribute="top" secondItem="EXPO-ContainerView" secondAttribute="top" id="2VS-Uz-0LU"/>
75
+              <constraint firstItem="EXPO-SplashScreen" firstAttribute="leading" secondItem="EXPO-ContainerView" secondAttribute="leading" id="LhH-Ei-DKo"/>
76
+              <constraint firstItem="EXPO-SplashScreen" firstAttribute="trailing" secondItem="EXPO-ContainerView" secondAttribute="trailing" id="I6l-TP-6fn"/>
77
+              <constraint firstItem="EXPO-SplashScreen" firstAttribute="bottom" secondItem="EXPO-ContainerView" secondAttribute="bottom" id="nbp-HC-eaG"/>
78
+            </constraints>
79
+            <viewLayoutGuide key="safeArea" id="Rmq-lb-GrQ"/>
80
+          </view>
81
+        </viewController>
82
+        <placeholder placeholderIdentifier="IBFirstResponder" id="EXPO-PLACEHOLDER-1" userLabel="First Responder" sceneMemberID="firstResponder"/>
83
+      </objects>
84
+      <point key="canvasLocation" x="140.625" y="129.4921875"/>
85
+    </scene>
86
+  </scenes>
87
+  <resources>
88
+    <image name="SplashScreen" width="414" height="736"/>
89
+    <image name="SplashScreenBackground" width="1" height="1"/>
90
+  </resources>
91
+</document>

+ 10
- 0
ios/censusproject/Supporting/Expo.plist 파일 보기

@@ -0,0 +1,10 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
+<plist version="1.0">
4
+<dict>
5
+        <key>EXUpdatesSDKVersion</key>
6
+        <string>YOUR-APP-SDK-VERSION-HERE</string>
7
+        <key>EXUpdatesURL</key>
8
+        <string>YOUR-APP-URL-HERE</string>
9
+</dict>
10
+</plist>

+ 10
- 0
ios/censusproject/main.m 파일 보기

@@ -0,0 +1,10 @@
1
+#import <UIKit/UIKit.h>
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
+

+ 19300
- 0
package-lock.json
파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
파일 보기


+ 6
- 2
package.json 파일 보기

@@ -9,14 +9,18 @@
9 9
     "web": "expo start --web"
10 10
   },
11 11
   "dependencies": {
12
+    "@expo/webpack-config": "^0.17.2",
12 13
     "expo": "~47.0.6",
14
+    "expo-font": "~11.0.1",
13 15
     "expo-splash-screen": "~0.17.5",
14 16
     "expo-status-bar": "~1.4.2",
15 17
     "react": "18.1.0",
16
-    "react-native": "0.70.5"
18
+    "react-dom": "18.1.0",
19
+    "react-native": "0.70.5",
20
+    "react-native-web": "~0.18.9"
17 21
   },
18 22
   "devDependencies": {
19
-    "@babel/core": "^7.12.9"
23
+    "@babel/core": "^7.19.3"
20 24
   },
21 25
   "private": true
22 26
 }

BIN
testimg.gif 파일 보기


+ 4908
- 1003
yarn.lock
파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
파일 보기