summaryrefslogtreecommitdiff
path: root/ios/client
diff options
context:
space:
mode:
authorpolwex <polwex@sortug.com>2025-07-16 14:54:44 +0700
committerpolwex <polwex@sortug.com>2025-07-16 14:54:44 +0700
commitaadfe206f3233032d8742a17c1f21d4750946a41 (patch)
treea63a95381ff99af1226ef096ce94cc32d8153ca5 /ios/client
parent1c81a70b0349a7f7577d0124b4b67ab5ea01e68d (diff)
aaaarggh!!!
Diffstat (limited to 'ios/client')
-rw-r--r--ios/client/AppDelegate.swift70
-rw-r--r--ios/client/Images.xcassets/AppIcon.appiconset/App-Icon-1024x1024@1x.pngbin0 -> 59468 bytes
-rw-r--r--ios/client/Images.xcassets/AppIcon.appiconset/Contents.json14
-rw-r--r--ios/client/Images.xcassets/Contents.json6
-rw-r--r--ios/client/Images.xcassets/SplashScreenBackground.colorset/Contents.json20
-rw-r--r--ios/client/Images.xcassets/SplashScreenLogo.imageset/Contents.json23
-rw-r--r--ios/client/Images.xcassets/SplashScreenLogo.imageset/image.pngbin0 -> 14711 bytes
-rw-r--r--ios/client/Images.xcassets/SplashScreenLogo.imageset/image@2x.pngbin0 -> 32766 bytes
-rw-r--r--ios/client/Images.xcassets/SplashScreenLogo.imageset/image@3x.pngbin0 -> 52602 bytes
-rw-r--r--ios/client/Info.plist79
-rw-r--r--ios/client/SplashScreen.storyboard42
-rw-r--r--ios/client/Supporting/Expo.plist12
-rw-r--r--ios/client/client-Bridging-Header.h3
-rw-r--r--ios/client/client.entitlements5
14 files changed, 274 insertions, 0 deletions
diff --git a/ios/client/AppDelegate.swift b/ios/client/AppDelegate.swift
new file mode 100644
index 0000000..a7887e1
--- /dev/null
+++ b/ios/client/AppDelegate.swift
@@ -0,0 +1,70 @@
+import Expo
+import React
+import ReactAppDependencyProvider
+
+@UIApplicationMain
+public class AppDelegate: ExpoAppDelegate {
+ var window: UIWindow?
+
+ var reactNativeDelegate: ExpoReactNativeFactoryDelegate?
+ var reactNativeFactory: RCTReactNativeFactory?
+
+ public override func application(
+ _ application: UIApplication,
+ didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? = nil
+ ) -> Bool {
+ let delegate = ReactNativeDelegate()
+ let factory = ExpoReactNativeFactory(delegate: delegate)
+ delegate.dependencyProvider = RCTAppDependencyProvider()
+
+ reactNativeDelegate = delegate
+ reactNativeFactory = factory
+ bindReactNativeFactory(factory)
+
+#if os(iOS) || os(tvOS)
+ window = UIWindow(frame: UIScreen.main.bounds)
+ factory.startReactNative(
+ withModuleName: "main",
+ in: window,
+ launchOptions: launchOptions)
+#endif
+
+ return super.application(application, didFinishLaunchingWithOptions: launchOptions)
+ }
+
+ // Linking API
+ public override func application(
+ _ app: UIApplication,
+ open url: URL,
+ options: [UIApplication.OpenURLOptionsKey: Any] = [:]
+ ) -> Bool {
+ return super.application(app, open: url, options: options) || RCTLinkingManager.application(app, open: url, options: options)
+ }
+
+ // Universal Links
+ public override func application(
+ _ application: UIApplication,
+ continue userActivity: NSUserActivity,
+ restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void
+ ) -> Bool {
+ let result = RCTLinkingManager.application(application, continue: userActivity, restorationHandler: restorationHandler)
+ return super.application(application, continue: userActivity, restorationHandler: restorationHandler) || result
+ }
+}
+
+class ReactNativeDelegate: ExpoReactNativeFactoryDelegate {
+ // Extension point for config-plugins
+
+ override func sourceURL(for bridge: RCTBridge) -> URL? {
+ // needed to return the correct URL for expo-dev-client.
+ bridge.bundleURL ?? bundleURL()
+ }
+
+ override func bundleURL() -> URL? {
+#if DEBUG
+ return RCTBundleURLProvider.sharedSettings().jsBundleURL(forBundleRoot: ".expo/.virtual-metro-entry")
+#else
+ return Bundle.main.url(forResource: "main", withExtension: "jsbundle")
+#endif
+ }
+}
diff --git a/ios/client/Images.xcassets/AppIcon.appiconset/App-Icon-1024x1024@1x.png b/ios/client/Images.xcassets/AppIcon.appiconset/App-Icon-1024x1024@1x.png
new file mode 100644
index 0000000..2732229
--- /dev/null
+++ b/ios/client/Images.xcassets/AppIcon.appiconset/App-Icon-1024x1024@1x.png
Binary files differ
diff --git a/ios/client/Images.xcassets/AppIcon.appiconset/Contents.json b/ios/client/Images.xcassets/AppIcon.appiconset/Contents.json
new file mode 100644
index 0000000..90d8d4c
--- /dev/null
+++ b/ios/client/Images.xcassets/AppIcon.appiconset/Contents.json
@@ -0,0 +1,14 @@
+{
+ "images": [
+ {
+ "filename": "App-Icon-1024x1024@1x.png",
+ "idiom": "universal",
+ "platform": "ios",
+ "size": "1024x1024"
+ }
+ ],
+ "info": {
+ "version": 1,
+ "author": "expo"
+ }
+} \ No newline at end of file
diff --git a/ios/client/Images.xcassets/Contents.json b/ios/client/Images.xcassets/Contents.json
new file mode 100644
index 0000000..ed285c2
--- /dev/null
+++ b/ios/client/Images.xcassets/Contents.json
@@ -0,0 +1,6 @@
+{
+ "info" : {
+ "version" : 1,
+ "author" : "expo"
+ }
+}
diff --git a/ios/client/Images.xcassets/SplashScreenBackground.colorset/Contents.json b/ios/client/Images.xcassets/SplashScreenBackground.colorset/Contents.json
new file mode 100644
index 0000000..15f02ab
--- /dev/null
+++ b/ios/client/Images.xcassets/SplashScreenBackground.colorset/Contents.json
@@ -0,0 +1,20 @@
+{
+ "colors": [
+ {
+ "color": {
+ "components": {
+ "alpha": "1.000",
+ "blue": "1.00000000000000",
+ "green": "1.00000000000000",
+ "red": "1.00000000000000"
+ },
+ "color-space": "srgb"
+ },
+ "idiom": "universal"
+ }
+ ],
+ "info": {
+ "version": 1,
+ "author": "expo"
+ }
+} \ No newline at end of file
diff --git a/ios/client/Images.xcassets/SplashScreenLogo.imageset/Contents.json b/ios/client/Images.xcassets/SplashScreenLogo.imageset/Contents.json
new file mode 100644
index 0000000..f65c008
--- /dev/null
+++ b/ios/client/Images.xcassets/SplashScreenLogo.imageset/Contents.json
@@ -0,0 +1,23 @@
+{
+ "images": [
+ {
+ "idiom": "universal",
+ "filename": "image.png",
+ "scale": "1x"
+ },
+ {
+ "idiom": "universal",
+ "filename": "image@2x.png",
+ "scale": "2x"
+ },
+ {
+ "idiom": "universal",
+ "filename": "image@3x.png",
+ "scale": "3x"
+ }
+ ],
+ "info": {
+ "version": 1,
+ "author": "expo"
+ }
+} \ No newline at end of file
diff --git a/ios/client/Images.xcassets/SplashScreenLogo.imageset/image.png b/ios/client/Images.xcassets/SplashScreenLogo.imageset/image.png
new file mode 100644
index 0000000..635530a
--- /dev/null
+++ b/ios/client/Images.xcassets/SplashScreenLogo.imageset/image.png
Binary files differ
diff --git a/ios/client/Images.xcassets/SplashScreenLogo.imageset/image@2x.png b/ios/client/Images.xcassets/SplashScreenLogo.imageset/image@2x.png
new file mode 100644
index 0000000..d4e41ea
--- /dev/null
+++ b/ios/client/Images.xcassets/SplashScreenLogo.imageset/image@2x.png
Binary files differ
diff --git a/ios/client/Images.xcassets/SplashScreenLogo.imageset/image@3x.png b/ios/client/Images.xcassets/SplashScreenLogo.imageset/image@3x.png
new file mode 100644
index 0000000..67ee127
--- /dev/null
+++ b/ios/client/Images.xcassets/SplashScreenLogo.imageset/image@3x.png
Binary files differ
diff --git a/ios/client/Info.plist b/ios/client/Info.plist
new file mode 100644
index 0000000..e4d4c1b
--- /dev/null
+++ b/ios/client/Info.plist
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+ <dict>
+ <key>CADisableMinimumFrameDurationOnPhone</key>
+ <true/>
+ <key>CFBundleDevelopmentRegion</key>
+ <string>$(DEVELOPMENT_LANGUAGE)</string>
+ <key>CFBundleDisplayName</key>
+ <string>client</string>
+ <key>CFBundleExecutable</key>
+ <string>$(EXECUTABLE_NAME)</string>
+ <key>CFBundleIdentifier</key>
+ <string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
+ <key>CFBundleInfoDictionaryVersion</key>
+ <string>6.0</string>
+ <key>CFBundleName</key>
+ <string>$(PRODUCT_NAME)</string>
+ <key>CFBundlePackageType</key>
+ <string>$(PRODUCT_BUNDLE_PACKAGE_TYPE)</string>
+ <key>CFBundleShortVersionString</key>
+ <string>1.0.0</string>
+ <key>CFBundleSignature</key>
+ <string>????</string>
+ <key>CFBundleURLTypes</key>
+ <array>
+ <dict>
+ <key>CFBundleURLSchemes</key>
+ <array>
+ <string>client</string>
+ <string>com.tugsor.client</string>
+ </array>
+ </dict>
+ </array>
+ <key>CFBundleVersion</key>
+ <string>1</string>
+ <key>LSMinimumSystemVersion</key>
+ <string>12.0</string>
+ <key>LSRequiresIPhoneOS</key>
+ <true/>
+ <key>NSAppTransportSecurity</key>
+ <dict>
+ <key>NSAllowsArbitraryLoads</key>
+ <false/>
+ <key>NSAllowsLocalNetworking</key>
+ <true/>
+ </dict>
+ <key>NSUserActivityTypes</key>
+ <array>
+ <string>$(PRODUCT_BUNDLE_IDENTIFIER).expo.index_route</string>
+ </array>
+ <key>UILaunchStoryboardName</key>
+ <string>SplashScreen</string>
+ <key>UIRequiredDeviceCapabilities</key>
+ <array>
+ <string>arm64</string>
+ </array>
+ <key>UIRequiresFullScreen</key>
+ <false/>
+ <key>UIStatusBarStyle</key>
+ <string>UIStatusBarStyleDefault</string>
+ <key>UISupportedInterfaceOrientations</key>
+ <array>
+ <string>UIInterfaceOrientationPortrait</string>
+ <string>UIInterfaceOrientationPortraitUpsideDown</string>
+ </array>
+ <key>UISupportedInterfaceOrientations~ipad</key>
+ <array>
+ <string>UIInterfaceOrientationPortrait</string>
+ <string>UIInterfaceOrientationPortraitUpsideDown</string>
+ <string>UIInterfaceOrientationLandscapeLeft</string>
+ <string>UIInterfaceOrientationLandscapeRight</string>
+ </array>
+ <key>UIUserInterfaceStyle</key>
+ <string>Automatic</string>
+ <key>UIViewControllerBasedStatusBarAppearance</key>
+ <false/>
+ </dict>
+</plist> \ No newline at end of file
diff --git a/ios/client/SplashScreen.storyboard b/ios/client/SplashScreen.storyboard
new file mode 100644
index 0000000..158767f
--- /dev/null
+++ b/ios/client/SplashScreen.storyboard
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="32700.99.1234" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="EXPO-VIEWCONTROLLER-1">
+ <device id="retina6_12" orientation="portrait" appearance="light"/>
+ <dependencies>
+ <deployment identifier="iOS"/>
+ <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22685"/>
+ <capability name="Named colors" minToolsVersion="9.0"/>
+ <capability name="Safe area layout guides" minToolsVersion="9.0"/>
+ <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
+ </dependencies>
+ <scenes>
+ <scene sceneID="EXPO-SCENE-1">
+ <objects>
+ <viewController storyboardIdentifier="SplashScreenViewController" id="EXPO-VIEWCONTROLLER-1" sceneMemberID="viewController">
+ <view key="view" userInteractionEnabled="NO" contentMode="scaleToFill" insetsLayoutMarginsFromSafeArea="NO" id="EXPO-ContainerView" userLabel="ContainerView">
+ <rect key="frame" x="0.0" y="0.0" width="393" height="852"/>
+ <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+ <subviews>
+ <imageView id="EXPO-SplashScreen" userLabel="SplashScreenLogo" image="SplashScreenLogo" contentMode="scaleAspectFit" clipsSubviews="true" userInteractionEnabled="false" translatesAutoresizingMaskIntoConstraints="false">
+ <rect key="frame" x="96.5" y="326" width="200" height="200"/>
+ </imageView>
+ </subviews>
+ <viewLayoutGuide key="safeArea" id="Rmq-lb-GrQ"/>
+ <constraints>
+ <constraint firstItem="EXPO-SplashScreen" firstAttribute="centerX" secondItem="EXPO-ContainerView" secondAttribute="centerX" id="cad2ab56f97c5429bf29decf850647a4216861d4"/>
+ <constraint firstItem="EXPO-SplashScreen" firstAttribute="centerY" secondItem="EXPO-ContainerView" secondAttribute="centerY" id="1a145271b085b6ce89b1405a310f5b1bb7656595"/>
+ </constraints>
+ <color key="backgroundColor" name="SplashScreenBackground"/>
+ </view>
+ </viewController>
+ <placeholder placeholderIdentifier="IBFirstResponder" id="EXPO-PLACEHOLDER-1" userLabel="First Responder" sceneMemberID="firstResponder"/>
+ </objects>
+ <point key="canvasLocation" x="0.0" y="0.0"/>
+ </scene>
+ </scenes>
+ <resources>
+ <image name="SplashScreenLogo" width="200" height="200"/>
+ <namedColor name="SplashScreenBackground">
+ <color alpha="1.000" blue="1.00000000000000" green="1.00000000000000" red="1.00000000000000" customColorSpace="sRGB" colorSpace="custom"/>
+ </namedColor>
+ </resources>
+</document> \ No newline at end of file
diff --git a/ios/client/Supporting/Expo.plist b/ios/client/Supporting/Expo.plist
new file mode 100644
index 0000000..750be02
--- /dev/null
+++ b/ios/client/Supporting/Expo.plist
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+ <dict>
+ <key>EXUpdatesCheckOnLaunch</key>
+ <string>ALWAYS</string>
+ <key>EXUpdatesEnabled</key>
+ <false/>
+ <key>EXUpdatesLaunchWaitMs</key>
+ <integer>0</integer>
+ </dict>
+</plist> \ No newline at end of file
diff --git a/ios/client/client-Bridging-Header.h b/ios/client/client-Bridging-Header.h
new file mode 100644
index 0000000..8361941
--- /dev/null
+++ b/ios/client/client-Bridging-Header.h
@@ -0,0 +1,3 @@
+//
+// Use this file to import your target's public headers that you would like to expose to Swift.
+//
diff --git a/ios/client/client.entitlements b/ios/client/client.entitlements
new file mode 100644
index 0000000..f683276
--- /dev/null
+++ b/ios/client/client.entitlements
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+ <dict/>
+</plist> \ No newline at end of file