Skip to content

Commit 7462443

Browse files
tomkisclaude
andcommitted
feat: hello world watchOS companion app
eject ios/, add LiftCoachWatch SwiftUI target embedded in main app Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent cb5961d commit 7462443

32 files changed

Lines changed: 3680 additions & 2 deletions

File tree

.gitignore

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,13 @@ web-build/
1414
.DS_Store
1515

1616

17-
ios/
17+
ios/Pods/
18+
ios/build/
19+
ios/DerivedData/
20+
ios/xcuserdata/
21+
ios/**/*.xcuserstate
22+
ios/**/xcuserdata/
23+
ios/.xcode.env.local
1824
android/
1925
.env
2026

ios/.xcode.env

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
# This `.xcode.env` file is versioned and is used to source the environment
2+
# used when running script phases inside Xcode.
3+
# To customize your local environment, you can create an `.xcode.env.local`
4+
# file that is not versioned.
5+
6+
# NODE_BINARY variable contains the PATH to the node executable.
7+
#
8+
# Customize the NODE_BINARY variable here.
9+
# For example, to use nvm with brew, add the following line
10+
# . "$(brew --prefix nvm)/nvm.sh" --no-use
11+
export NODE_BINARY=$(command -v node)

ios/DEVLiftCoach.xcodeproj/project.pbxproj

Lines changed: 717 additions & 0 deletions
Large diffs are not rendered by default.

ios/DEVLiftCoach.xcodeproj/project.xcworkspace/contents.xcworkspacedata

Lines changed: 7 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
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>IDEDidComputeMac32BitWarning</key>
6+
<true/>
7+
</dict>
8+
</plist>
Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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 = "DEVLiftCoach.app"
19+
BlueprintName = "DEVLiftCoach"
20+
ReferencedContainer = "container:DEVLiftCoach.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 = "DEVLiftCoachTests.xctest"
37+
BlueprintName = "DEVLiftCoachTests"
38+
ReferencedContainer = "container:DEVLiftCoach.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 = "DEVLiftCoach.app"
59+
BlueprintName = "DEVLiftCoach"
60+
ReferencedContainer = "container:DEVLiftCoach.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 = "DEVLiftCoach.app"
76+
BlueprintName = "DEVLiftCoach"
77+
ReferencedContainer = "container:DEVLiftCoach.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>

ios/DEVLiftCoach.xcworkspace/contents.xcworkspacedata

Lines changed: 10 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

ios/DEVLiftCoach/AppDelegate.swift

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
import Expo
2+
import React
3+
import ReactAppDependencyProvider
4+
5+
@UIApplicationMain
6+
public class AppDelegate: ExpoAppDelegate {
7+
var window: UIWindow?
8+
9+
var reactNativeDelegate: ExpoReactNativeFactoryDelegate?
10+
var reactNativeFactory: RCTReactNativeFactory?
11+
12+
public override func application(
13+
_ application: UIApplication,
14+
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? = nil
15+
) -> Bool {
16+
let delegate = ReactNativeDelegate()
17+
let factory = ExpoReactNativeFactory(delegate: delegate)
18+
delegate.dependencyProvider = RCTAppDependencyProvider()
19+
20+
reactNativeDelegate = delegate
21+
reactNativeFactory = factory
22+
bindReactNativeFactory(factory)
23+
24+
#if os(iOS) || os(tvOS)
25+
window = UIWindow(frame: UIScreen.main.bounds)
26+
factory.startReactNative(
27+
withModuleName: "main",
28+
in: window,
29+
launchOptions: launchOptions)
30+
#endif
31+
32+
return super.application(application, didFinishLaunchingWithOptions: launchOptions)
33+
}
34+
35+
// Linking API
36+
public override func application(
37+
_ app: UIApplication,
38+
open url: URL,
39+
options: [UIApplication.OpenURLOptionsKey: Any] = [:]
40+
) -> Bool {
41+
return super.application(app, open: url, options: options) || RCTLinkingManager.application(app, open: url, options: options)
42+
}
43+
44+
// Universal Links
45+
public override func application(
46+
_ application: UIApplication,
47+
continue userActivity: NSUserActivity,
48+
restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void
49+
) -> Bool {
50+
let result = RCTLinkingManager.application(application, continue: userActivity, restorationHandler: restorationHandler)
51+
return super.application(application, continue: userActivity, restorationHandler: restorationHandler) || result
52+
}
53+
}
54+
55+
class ReactNativeDelegate: ExpoReactNativeFactoryDelegate {
56+
// Extension point for config-plugins
57+
58+
override func sourceURL(for bridge: RCTBridge) -> URL? {
59+
// needed to return the correct URL for expo-dev-client.
60+
bridge.bundleURL ?? bundleURL()
61+
}
62+
63+
override func bundleURL() -> URL? {
64+
#if DEBUG
65+
return RCTBundleURLProvider.sharedSettings().jsBundleURL(forBundleRoot: ".expo/.virtual-metro-entry")
66+
#else
67+
return Bundle.main.url(forResource: "main", withExtension: "jsbundle")
68+
#endif
69+
}
70+
}
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
//
2+
// Use this file to import your target's public headers that you would like to expose to Swift.
3+
//
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
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+
</plist>

0 commit comments

Comments
 (0)