From 31ac83f4eae53221ed9ce4c6ab92362b20a17191 Mon Sep 17 00:00:00 2001 From: Henry Addo Date: Fri, 20 Dec 2024 11:09:12 -0800 Subject: [PATCH 1/6] Enable iOS target --- data-table-material3/build.gradle.kts | 5 +++++ data-table/build.gradle.kts | 4 ++++ 2 files changed, 9 insertions(+) diff --git a/data-table-material3/build.gradle.kts b/data-table-material3/build.gradle.kts index 2915665..925a139 100644 --- a/data-table-material3/build.gradle.kts +++ b/data-table-material3/build.gradle.kts @@ -10,6 +10,7 @@ group = "com.seanproctor" version = extra["datatable.version"] as String kotlin { + applyDefaultHierarchyTemplate() androidTarget { publishLibraryVariants("release") } @@ -18,6 +19,10 @@ kotlin { browser() } + iosX64() + iosArm64() + iosSimulatorArm64() + sourceSets { val commonMain by getting { dependencies { diff --git a/data-table/build.gradle.kts b/data-table/build.gradle.kts index 25b689e..79c511e 100644 --- a/data-table/build.gradle.kts +++ b/data-table/build.gradle.kts @@ -10,6 +10,7 @@ group = "com.seanproctor" version = extra["datatable.version"] as String kotlin { + applyDefaultHierarchyTemplate() androidTarget { publishLibraryVariants("release") } @@ -17,6 +18,9 @@ kotlin { js { browser() } + iosX64() + iosArm64() + iosSimulatorArm64() sourceSets { val commonMain by getting { From 4f71facf8cbf8521b269a1873a2152b98d61b70d Mon Sep 17 00:00:00 2001 From: Henry Addo Date: Fri, 20 Dec 2024 11:27:16 -0800 Subject: [PATCH 2/6] Add iOS target for demo-common module --- demo-common/build.gradle.kts | 4 ++++ .../com/seanproctor/datatable/demo/Scrollbar.ios.kt | 11 +++++++++++ 2 files changed, 15 insertions(+) create mode 100644 demo-common/src/iosMain/kotlin/com/seanproctor/datatable/demo/Scrollbar.ios.kt diff --git a/demo-common/build.gradle.kts b/demo-common/build.gradle.kts index 739c8f4..288abcf 100644 --- a/demo-common/build.gradle.kts +++ b/demo-common/build.gradle.kts @@ -6,11 +6,15 @@ plugins { } kotlin { + applyDefaultHierarchyTemplate() androidTarget() jvm() js { browser() } + iosX64() + iosArm64() + iosSimulatorArm64() sourceSets { val commonMain by getting { dependencies { diff --git a/demo-common/src/iosMain/kotlin/com/seanproctor/datatable/demo/Scrollbar.ios.kt b/demo-common/src/iosMain/kotlin/com/seanproctor/datatable/demo/Scrollbar.ios.kt new file mode 100644 index 0000000..38f9249 --- /dev/null +++ b/demo-common/src/iosMain/kotlin/com/seanproctor/datatable/demo/Scrollbar.ios.kt @@ -0,0 +1,11 @@ +package com.seanproctor.datatable.demo + +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import com.seanproctor.datatable.DataTableScrollState + +@Composable +actual fun VerticalScrollbar(scrollState: DataTableScrollState, modifier: Modifier) {} + +@Composable +actual fun HorizontalScrollbar(scrollState: DataTableScrollState, modifier: Modifier) {} \ No newline at end of file From 7b87f2e356aa62c39288a0d9df497ff23eee04a3 Mon Sep 17 00:00:00 2001 From: Henry Addo Date: Fri, 20 Dec 2024 12:24:02 -0800 Subject: [PATCH 3/6] Add iOS demo app to show that the app works with the iOS target --- .gitignore | 6 + ios/app/Configuration/Config.xcconfig | 3 + ios/app/iosApp.xcodeproj/project.pbxproj | 393 ++++++++++++++++++ .../UserInterfaceState.xcuserstate | Bin 0 -> 15994 bytes .../xcschemes/xcschememanagement.plist | 14 + .../AccentColor.colorset/Contents.json | 11 + .../AppIcon.appiconset/Contents.json | 14 + .../AppIcon.appiconset/app-icon-1024.png | Bin 0 -> 67285 bytes ios/app/iosApp/Assets.xcassets/Contents.json | 6 + ios/app/iosApp/ContentView.swift | 21 + ios/app/iosApp/Info.plist | 50 +++ .../Preview Assets.xcassets/Contents.json | 6 + ios/app/iosApp/iOSApp.swift | 10 + settings.gradle.kts | 2 +- 14 files changed, 535 insertions(+), 1 deletion(-) create mode 100644 ios/app/Configuration/Config.xcconfig create mode 100644 ios/app/iosApp.xcodeproj/project.pbxproj create mode 100644 ios/app/iosApp.xcodeproj/project.xcworkspace/xcuserdata/eyedol.xcuserdatad/UserInterfaceState.xcuserstate create mode 100644 ios/app/iosApp.xcodeproj/xcuserdata/eyedol.xcuserdatad/xcschemes/xcschememanagement.plist create mode 100644 ios/app/iosApp/Assets.xcassets/AccentColor.colorset/Contents.json create mode 100644 ios/app/iosApp/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 ios/app/iosApp/Assets.xcassets/AppIcon.appiconset/app-icon-1024.png create mode 100644 ios/app/iosApp/Assets.xcassets/Contents.json create mode 100644 ios/app/iosApp/ContentView.swift create mode 100644 ios/app/iosApp/Info.plist create mode 100644 ios/app/iosApp/Preview Content/Preview Assets.xcassets/Contents.json create mode 100644 ios/app/iosApp/iOSApp.swift diff --git a/.gitignore b/.gitignore index 1f44f3b..8279db6 100644 --- a/.gitignore +++ b/.gitignore @@ -85,3 +85,9 @@ app/release/* **/bin/ **/moko-resources-generated.js **/.kotlin/* + +.fleet + +# General +.DS_Store +.externalNativeBuild \ No newline at end of file diff --git a/ios/app/Configuration/Config.xcconfig b/ios/app/Configuration/Config.xcconfig new file mode 100644 index 0000000..745884b --- /dev/null +++ b/ios/app/Configuration/Config.xcconfig @@ -0,0 +1,3 @@ +TEAM_ID= +BUNDLE_ID=com.seanproctor.datatable.demo.ios.ComposeDataTable +APP_NAME=Compose Data Table \ No newline at end of file diff --git a/ios/app/iosApp.xcodeproj/project.pbxproj b/ios/app/iosApp.xcodeproj/project.pbxproj new file mode 100644 index 0000000..5efabc0 --- /dev/null +++ b/ios/app/iosApp.xcodeproj/project.pbxproj @@ -0,0 +1,393 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 56; + objects = { + +/* Begin PBXBuildFile section */ + 058557BB273AAA24004C7B11 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 058557BA273AAA24004C7B11 /* Assets.xcassets */; }; + 058557D9273AAEEB004C7B11 /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 058557D8273AAEEB004C7B11 /* Preview Assets.xcassets */; }; + 2152FB042600AC8F00CF470E /* iOSApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2152FB032600AC8F00CF470E /* iOSApp.swift */; }; + 7555FF83242A565900829871 /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7555FF82242A565900829871 /* ContentView.swift */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 058557BA273AAA24004C7B11 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 058557D8273AAEEB004C7B11 /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = ""; }; + 2152FB032600AC8F00CF470E /* iOSApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = iOSApp.swift; sourceTree = ""; }; + 7555FF7B242A565900829871 /* Compose Data Table.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Compose Data Table.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + 7555FF82242A565900829871 /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = ""; }; + 7555FF8C242A565B00829871 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + AB3632DC29227652001CCB65 /* Config.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Config.xcconfig; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + B92378962B6B1156000C7307 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 058557D7273AAEEB004C7B11 /* Preview Content */ = { + isa = PBXGroup; + children = ( + 058557D8273AAEEB004C7B11 /* Preview Assets.xcassets */, + ); + path = "Preview Content"; + sourceTree = ""; + }; + 42799AB246E5F90AF97AA0EF /* Frameworks */ = { + isa = PBXGroup; + children = ( + ); + name = Frameworks; + sourceTree = ""; + }; + 7555FF72242A565900829871 = { + isa = PBXGroup; + children = ( + AB1DB47929225F7C00F7AF9C /* Configuration */, + 7555FF7D242A565900829871 /* iosApp */, + 7555FF7C242A565900829871 /* Products */, + 42799AB246E5F90AF97AA0EF /* Frameworks */, + ); + sourceTree = ""; + }; + 7555FF7C242A565900829871 /* Products */ = { + isa = PBXGroup; + children = ( + 7555FF7B242A565900829871 /* Compose Data Table.app */, + ); + name = Products; + sourceTree = ""; + }; + 7555FF7D242A565900829871 /* iosApp */ = { + isa = PBXGroup; + children = ( + 058557BA273AAA24004C7B11 /* Assets.xcassets */, + 7555FF82242A565900829871 /* ContentView.swift */, + 7555FF8C242A565B00829871 /* Info.plist */, + 2152FB032600AC8F00CF470E /* iOSApp.swift */, + 058557D7273AAEEB004C7B11 /* Preview Content */, + ); + path = iosApp; + sourceTree = ""; + }; + AB1DB47929225F7C00F7AF9C /* Configuration */ = { + isa = PBXGroup; + children = ( + AB3632DC29227652001CCB65 /* Config.xcconfig */, + ); + path = Configuration; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 7555FF7A242A565900829871 /* iosApp */ = { + isa = PBXNativeTarget; + buildConfigurationList = 7555FFA5242A565B00829871 /* Build configuration list for PBXNativeTarget "iosApp" */; + buildPhases = ( + F36B1CEB2AD83DDC00CB74D5 /* Compile Kotlin Framework */, + 7555FF77242A565900829871 /* Sources */, + B92378962B6B1156000C7307 /* Frameworks */, + 7555FF79242A565900829871 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = iosApp; + packageProductDependencies = ( + ); + productName = iosApp; + productReference = 7555FF7B242A565900829871 /* Compose Data Table.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 7555FF73242A565900829871 /* Project object */ = { + isa = PBXProject; + attributes = { + BuildIndependentTargetsInParallel = YES; + LastSwiftUpdateCheck = 1130; + LastUpgradeCheck = 1540; + ORGANIZATIONNAME = orgName; + TargetAttributes = { + 7555FF7A242A565900829871 = { + CreatedOnToolsVersion = 11.3.1; + }; + }; + }; + buildConfigurationList = 7555FF76242A565900829871 /* Build configuration list for PBXProject "iosApp" */; + compatibilityVersion = "Xcode 14.0"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 7555FF72242A565900829871; + packageReferences = ( + ); + productRefGroup = 7555FF7C242A565900829871 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 7555FF7A242A565900829871 /* iosApp */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 7555FF79242A565900829871 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 058557D9273AAEEB004C7B11 /* Preview Assets.xcassets in Resources */, + 058557BB273AAA24004C7B11 /* Assets.xcassets in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + F36B1CEB2AD83DDC00CB74D5 /* Compile Kotlin Framework */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + ); + name = "Compile Kotlin Framework"; + outputFileListPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "if [ \"YES\" = \"$OVERRIDE_KOTLIN_BUILD_IDE_SUPPORTED\" ]; then\n echo \"Skipping Gradle build task invocation due to OVERRIDE_KOTLIN_BUILD_IDE_SUPPORTED environment variable set to \\\"YES\\\"\"\n exit 0\nfi\ncd \"$SRCROOT/..\"\n./gradlew :composeApp:embedAndSignAppleFrameworkForXcode\n"; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 7555FF77242A565900829871 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 2152FB042600AC8F00CF470E /* iOSApp.swift in Sources */, + 7555FF83242A565900829871 /* ContentView.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + 7555FFA3242A565B00829871 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = AB3632DC29227652001CCB65 /* Config.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 15.3; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + }; + name = Debug; + }; + 7555FFA4242A565B00829871 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = AB3632DC29227652001CCB65 /* Config.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 15.3; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 7555FFA6242A565B00829871 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_ASSET_PATHS = "\"iosApp/Preview Content\""; + DEVELOPMENT_TEAM = "${TEAM_ID}"; + ENABLE_PREVIEWS = YES; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(SRCROOT)/../shared/build/xcode-frameworks/$(CONFIGURATION)/$(SDK_NAME)\n$(SRCROOT)/../composeApp/build/xcode-frameworks/$(CONFIGURATION)/$(SDK_NAME)", + ); + INFOPLIST_FILE = iosApp/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 15.3; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = "${BUNDLE_ID}${TEAM_ID}"; + PRODUCT_NAME = "${APP_NAME}"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 7555FFA7242A565B00829871 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_ASSET_PATHS = "\"iosApp/Preview Content\""; + DEVELOPMENT_TEAM = "${TEAM_ID}"; + ENABLE_PREVIEWS = YES; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(SRCROOT)/../shared/build/xcode-frameworks/$(CONFIGURATION)/$(SDK_NAME)\n$(SRCROOT)/../composeApp/build/xcode-frameworks/$(CONFIGURATION)/$(SDK_NAME)", + ); + INFOPLIST_FILE = iosApp/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 15.3; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = "${BUNDLE_ID}${TEAM_ID}"; + PRODUCT_NAME = "${APP_NAME}"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 7555FF76242A565900829871 /* Build configuration list for PBXProject "iosApp" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 7555FFA3242A565B00829871 /* Debug */, + 7555FFA4242A565B00829871 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 7555FFA5242A565B00829871 /* Build configuration list for PBXNativeTarget "iosApp" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 7555FFA6242A565B00829871 /* Debug */, + 7555FFA7242A565B00829871 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 7555FF73242A565900829871 /* Project object */; +} \ No newline at end of file diff --git a/ios/app/iosApp.xcodeproj/project.xcworkspace/xcuserdata/eyedol.xcuserdatad/UserInterfaceState.xcuserstate b/ios/app/iosApp.xcodeproj/project.xcworkspace/xcuserdata/eyedol.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..f999a953b48b0c34c43ca133526e4e99c0d065a6 GIT binary patch literal 15994 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 F{~toBq-y{G literal 0 HcmV?d00001 diff --git a/ios/app/iosApp.xcodeproj/xcuserdata/eyedol.xcuserdatad/xcschemes/xcschememanagement.plist b/ios/app/iosApp.xcodeproj/xcuserdata/eyedol.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 0000000..56b5955 --- /dev/null +++ b/ios/app/iosApp.xcodeproj/xcuserdata/eyedol.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,14 @@ + + + + + SchemeUserState + + iosApp.xcscheme_^#shared#^_ + + orderHint + 0 + + + + diff --git a/ios/app/iosApp/Assets.xcassets/AccentColor.colorset/Contents.json b/ios/app/iosApp/Assets.xcassets/AccentColor.colorset/Contents.json new file mode 100644 index 0000000..ee7e3ca --- /dev/null +++ b/ios/app/iosApp/Assets.xcassets/AccentColor.colorset/Contents.json @@ -0,0 +1,11 @@ +{ + "colors" : [ + { + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} \ No newline at end of file diff --git a/ios/app/iosApp/Assets.xcassets/AppIcon.appiconset/Contents.json b/ios/app/iosApp/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..8edf56e --- /dev/null +++ b/ios/app/iosApp/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,14 @@ +{ + "images" : [ + { + "filename" : "app-icon-1024.png", + "idiom" : "universal", + "platform" : "ios", + "size" : "1024x1024" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/ios/app/iosApp/Assets.xcassets/AppIcon.appiconset/app-icon-1024.png b/ios/app/iosApp/Assets.xcassets/AppIcon.appiconset/app-icon-1024.png new file mode 100644 index 0000000000000000000000000000000000000000..53fc536fb9ac5c1dbb27c7e1da13db3760070a11 GIT binary patch literal 67285 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 BXNCX( literal 0 HcmV?d00001 diff --git a/ios/app/iosApp/Assets.xcassets/Contents.json b/ios/app/iosApp/Assets.xcassets/Contents.json new file mode 100644 index 0000000..4aa7c53 --- /dev/null +++ b/ios/app/iosApp/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} \ No newline at end of file diff --git a/ios/app/iosApp/ContentView.swift b/ios/app/iosApp/ContentView.swift new file mode 100644 index 0000000..3cd5c32 --- /dev/null +++ b/ios/app/iosApp/ContentView.swift @@ -0,0 +1,21 @@ +import UIKit +import SwiftUI +import ComposeApp + +struct ComposeView: UIViewControllerRepresentable { + func makeUIViewController(context: Context) -> UIViewController { + MainViewControllerKt.MainViewController() + } + + func updateUIViewController(_ uiViewController: UIViewController, context: Context) {} +} + +struct ContentView: View { + var body: some View { + ComposeView() + .ignoresSafeArea(.keyboard) // Compose has own keyboard handler + } +} + + + diff --git a/ios/app/iosApp/Info.plist b/ios/app/iosApp/Info.plist new file mode 100644 index 0000000..412e378 --- /dev/null +++ b/ios/app/iosApp/Info.plist @@ -0,0 +1,50 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + $(PRODUCT_BUNDLE_PACKAGE_TYPE) + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + LSRequiresIPhoneOS + + CADisableMinimumFrameDurationOnPhone + + UIApplicationSceneManifest + + UIApplicationSupportsMultipleScenes + + + UILaunchScreen + + UIRequiredDeviceCapabilities + + armv7 + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + + diff --git a/ios/app/iosApp/Preview Content/Preview Assets.xcassets/Contents.json b/ios/app/iosApp/Preview Content/Preview Assets.xcassets/Contents.json new file mode 100644 index 0000000..4aa7c53 --- /dev/null +++ b/ios/app/iosApp/Preview Content/Preview Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} \ No newline at end of file diff --git a/ios/app/iosApp/iOSApp.swift b/ios/app/iosApp/iOSApp.swift new file mode 100644 index 0000000..d83dca6 --- /dev/null +++ b/ios/app/iosApp/iOSApp.swift @@ -0,0 +1,10 @@ +import SwiftUI + +@main +struct iOSApp: App { + var body: some Scene { + WindowGroup { + ContentView() + } + } +} \ No newline at end of file diff --git a/settings.gradle.kts b/settings.gradle.kts index 30506bb..7f0a671 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -15,7 +15,7 @@ plugins { rootProject.name = "compose-data-table" -include(":android", ":desktop", ":demo-common", ":data-table", ":data-table-material3") +include(":android", ":desktop", ":ios", ":demo-common", ":data-table", ":data-table-material3") refreshVersions { file("build/tmp/refreshVersions").mkdirs() From 1127485a4bab3c870b62c047d48b8f1f06d054e6 Mon Sep 17 00:00:00 2001 From: Henry Addo Date: Fri, 20 Dec 2024 15:21:53 -0800 Subject: [PATCH 4/6] Setup iOS demo app to run --- ios/app/iosApp.xcodeproj/project.pbxproj | 4 ++-- .../UserInterfaceState.xcuserstate | Bin 15994 -> 32190 bytes ios/app/iosApp/ContentView.swift | 4 ++-- settings.gradle.kts | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/ios/app/iosApp.xcodeproj/project.pbxproj b/ios/app/iosApp.xcodeproj/project.pbxproj index 5efabc0..685a5c3 100644 --- a/ios/app/iosApp.xcodeproj/project.pbxproj +++ b/ios/app/iosApp.xcodeproj/project.pbxproj @@ -175,7 +175,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "if [ \"YES\" = \"$OVERRIDE_KOTLIN_BUILD_IDE_SUPPORTED\" ]; then\n echo \"Skipping Gradle build task invocation due to OVERRIDE_KOTLIN_BUILD_IDE_SUPPORTED environment variable set to \\\"YES\\\"\"\n exit 0\nfi\ncd \"$SRCROOT/..\"\n./gradlew :composeApp:embedAndSignAppleFrameworkForXcode\n"; + shellScript = "if [ \"YES\" = \"$OVERRIDE_KOTLIN_BUILD_IDE_SUPPORTED\" ]; then\n echo \"Skipping Gradle build task invocation due to OVERRIDE_KOTLIN_BUILD_IDE_SUPPORTED environment variable set to \\\"YES\\\"\"\n exit 0\nfi\ncd \"$SRCROOT/../..\"\n./gradlew :ios:framework:embedAndSignAppleFrameworkForXcode\n"; }; /* End PBXShellScriptBuildPhase section */ @@ -390,4 +390,4 @@ /* End XCConfigurationList section */ }; rootObject = 7555FF73242A565900829871 /* Project object */; -} \ No newline at end of file +} diff --git a/ios/app/iosApp.xcodeproj/project.xcworkspace/xcuserdata/eyedol.xcuserdatad/UserInterfaceState.xcuserstate b/ios/app/iosApp.xcodeproj/project.xcworkspace/xcuserdata/eyedol.xcuserdatad/UserInterfaceState.xcuserstate index f999a953b48b0c34c43ca133526e4e99c0d065a6..2a6654f3faa25490b44e69019d0b4f8f4ddaf3f0 100644 GIT binary patch literal 32190 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�aL6F^ej_nyI#!8$~QK4gUiE` z5(76)Omh^I{;t|uOj`si^^C6J?Z;iKeQ|E48tUZ0Nz339uGP3eZ`SI-L_WN^7=m&2 zwSbm5yy-QUUDnfRlHL^`-ag`5L&H02* z`1yXWk4WIo0rEiD7=8g>lYvnOz2J4?r@>rC1$-2*V}Z6AV#0cKkYheq&d9f}^f&Ip z)h6kONiG9=ij%y=n^jY8P!9E_+F%<}mcSGcfgq*%*swM>1ADd^CE!;r@6p)U!~Sd> zY#asrnt)#)*q@EFjoVeGws9vCY&-?LS)6(cZ?1+Dlj$2I+$jfd3h_%L=o9eGI=|AF!29V4 zo=i9RR-G~MT{;0wATyC^1V_g0U}3)-z8B|yFo&-IQ}{~eF=iFh$E;@7GV8!*x)Z(= zXAiTF+0Pt+@5T9mISR(gWNV=j@mTpl~J#ax@>D}Yj5jl>tw65ooQ>b z?XjJ0yV>?#+ugQ%ZQrvCvuZ z>{IM>?epym?Mv*-?91&N?Pu6`+RwB%+4tDbw!g`KvHi{VOYN80-)?`W{Z{+44&Dya z983;(I6Um|l*2O)&pEu{@RGyJ4zD_Fc6i<44TpmchaHYMeCTk@;bVtS9X@wB;c(L7 zYeyT$K*u~sgX8^<&p7UO{8{0ka8&px#wdIhN=2w*vLahirf5)T6^#m=Vy2>7VN&!c zZd3@0MT#YgRf_eBO^VkQZzqYFnDk1idp9$hhd;ppc^9~^yr z^f#j~jK1W?xY@foyLr2XxJ`7Mv6#2kjDoeM?L=ZboUJO9Pb(C8Q~e_ndq79 znc|u1ImNTv^AXQ2o;y4bdVb}3%JZD(B`<}SvzMP&px0Qh5U((=2(Kuw7_W4%Jg)+; z8ZV8P)~m^@#jDk;-K)cEf!8vxd%W)RTJH6r*JEC*y!yOWd#&|)!E2M(D_)zuUiW&# z>$ulRudlpLdHv$`o7W#+7ricf6W%u7cHR!&3hyBAMDKL(Oz&*(9PeE3Jnt&+cJCX# zdGDLN7kl5~z1;gD??=2>dq3~}s`s1TySzW}KIZ+k_YXdtkE2hBPpVIzPoYn-Pnl1- zPoHu^m6^OnyJpPfFt zeD?V4^V#onz~_+92R=uAKJqy~X7re(F|}hBj#)Ei*O+g7S>Hh4FyBbuXx~`hNxs>> zQ+=oT=KB`<7W0Bl`~431eeUF@A~iY-{-&I|3m*T{J-@7%Kw!AY5#Bi zfA_!S|5pGCU;?;+Q2}-V5drxD)d39wjRCp?d=MGL1aU#OLH0q8L2f~QLBT z#@ddxA3JUAEo0vqyMOG5V~>sfa_rf$-;ez*mfnmt>fqYo`rwA(reH&`F}OXrGk9k34Z-&XZw%fM{9*79AykM%h$>`aNI{4u zWL3!8kS!r^g}fJXG~~mOVLrQ>JaJ_>JmC3G$*t%bb06_ zp{qmJhCUOzDfHFQEun9OZVP=c^n=h3Lyw1k8v0e}H=*B#ejj>noaeZlai(!MjJt8% zZR748w|v}+agU7a8@FcMx^YjAdurUKaj%biC;Wr(qv0pRe+>U6{I~Ew!!Jb;5oClS z!X?5j!ZX4r!Y?8qA}}I1q9bBO#P*0i5&I&JM0^(UMI;sJ6d4d16d4jZJ~BKqDl#@Q zAu>5KFR~!AD6%xNJhC#fCbBMadSpZ7-I41eUyl4e%0DV2N)t6NYGu^=s4Y=%L~W1S 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 A0RR91 diff --git a/ios/app/iosApp/ContentView.swift b/ios/app/iosApp/ContentView.swift index 3cd5c32..a17eb5c 100644 --- a/ios/app/iosApp/ContentView.swift +++ b/ios/app/iosApp/ContentView.swift @@ -1,10 +1,10 @@ import UIKit import SwiftUI -import ComposeApp +import ComposeDataTableKt struct ComposeView: UIViewControllerRepresentable { func makeUIViewController(context: Context) -> UIViewController { - MainViewControllerKt.MainViewController() + MainViewControllerKt.mainViewController() } func updateUIViewController(_ uiViewController: UIViewController, context: Context) {} diff --git a/settings.gradle.kts b/settings.gradle.kts index 7f0a671..43d1523 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -15,7 +15,7 @@ plugins { rootProject.name = "compose-data-table" -include(":android", ":desktop", ":ios", ":demo-common", ":data-table", ":data-table-material3") +include(":android", ":desktop", ":ios:framework", ":demo-common", ":data-table", ":data-table-material3") refreshVersions { file("build/tmp/refreshVersions").mkdirs() From cb3f5b817dbcceaca6d1470a50f1692c14bb3b7b Mon Sep 17 00:00:00 2001 From: Henry Addo Date: Fri, 20 Dec 2024 15:35:36 -0800 Subject: [PATCH 5/6] Add missing files to track with git --- ios/framework/build.gradle.kts | 27 +++++++++++++++++++ .../src/iosMain/kotlin/MainViewController.kt | 9 +++++++ 2 files changed, 36 insertions(+) create mode 100644 ios/framework/build.gradle.kts create mode 100644 ios/framework/src/iosMain/kotlin/MainViewController.kt diff --git a/ios/framework/build.gradle.kts b/ios/framework/build.gradle.kts new file mode 100644 index 0000000..97ffe69 --- /dev/null +++ b/ios/framework/build.gradle.kts @@ -0,0 +1,27 @@ + +plugins { + alias(libs.plugins.kotlin.multiplatform) + alias(libs.plugins.compose) + alias(libs.plugins.compose.compiler) +} + +kotlin { + sourceSets { + commonMain { + dependencies { + implementation(project(":demo-common")) + } + } + + listOf( + iosX64(), + iosArm64(), + iosSimulatorArm64() + ).forEach { iosTarget -> + iosTarget.binaries.framework { + baseName = "ComposeDataTableKt" + isStatic = true + } + } + } +} diff --git a/ios/framework/src/iosMain/kotlin/MainViewController.kt b/ios/framework/src/iosMain/kotlin/MainViewController.kt new file mode 100644 index 0000000..e857ec6 --- /dev/null +++ b/ios/framework/src/iosMain/kotlin/MainViewController.kt @@ -0,0 +1,9 @@ + +import androidx.compose.ui.window.ComposeUIViewController +import com.seanproctor.datatable.demo.App +import platform.UIKit.UIViewController + +@Suppress("standard:function-naming") +fun mainViewController(): UIViewController = ComposeUIViewController { + App { println("Row clicked: $it") } +} From 9af5b5df0bcd06cc5720497394d767a83cb011a2 Mon Sep 17 00:00:00 2001 From: Henry Addo Date: Fri, 20 Dec 2024 15:52:55 -0800 Subject: [PATCH 6/6] Add github action for building and publishing artifacts --- .github/workflows/build.yml | 65 +++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 .github/workflows/build.yml diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..d73ce7a --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,65 @@ +name: Build + +on: + # Only run on push to main branch + push: + branches: + - main + # Always run on PRs + pull_request: + +jobs: + build: + name: Build and Test + runs-on: 'macos-latest' + timeout-minutes: 60 + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Gradle Wrapper Validation + uses: gradle/actions/wrapper-validation@v4 + + - name: Install JDK 11 + uses: actions/setup-java@v4 + with: + distribution: 'zulu' + java-version: 11 + + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v4 + + - name: Build with Gradle + run: ./gradlew build + + publish: + if: github.repository == 'sproctor/compose-data-table' && github.ref == 'refs/heads/main' && github.event_name != 'pull_request' + needs: [build] + runs-on: macos-latest + timeout-minutes: 60 + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Gradle Wrapper Validation + uses: gradle/actions/wrapper-validation@v4 + + - name: Install JDK 11 + uses: actions/setup-java@v4 + with: + distribution: 'zulu' + java-version: 11 + + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v4 + + - name: Publish release + run: ./gradlew publish --no-configuration-cache + if: success() + env: + ORG_GRADLE_PROJECT_mavenCentralUsername: ${{ secrets.MAVEN_CENTRAL_USERNAME }} + ORG_GRADLE_PROJECT_mavenCentralPassword: ${{ secrets.MAVEN_CENTRAL_PASSWORD }} + ORG_GRADLE_PROJECT_signingInMemoryKey: ${{ secrets.GPG_KEY }} + ORG_GRADLE_PROJECT_signingInMemoryKeyId: ${{ secrets.GPG_KEY_ID }} + ORG_GRADLE_PROJECT_signingInMemoryKeyPassword: ${{ secrets.GPG_KEY_PASSWORD }} \ No newline at end of file