diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 6ba25de..6917711 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -10,12 +10,22 @@ env: DEVELOPER_DIR: /Applications/Xcode_26.0.1.app/Contents/Developer jobs: - build: + build-swiftleeds: name: Build SwiftLeeds (DEBUG) runs-on: macos-latest steps: - name: Checkout iOS Repository uses: actions/checkout@v2 - - - name: Build iOS Project via Fastlane - run: fastlane build_debug + + - name: Build SwiftLeeds via Fastlane + run: fastlane build_swiftleeds + + build-kotlinleeds: + name: Build KotlinLeeds (DEBUG) + runs-on: macos-latest + steps: + - name: Checkout iOS Repository + uses: actions/checkout@v2 + + - name: Build KotlinLeeds via Fastlane + run: fastlane build_kotlinleeds diff --git a/Configuration/KotlinLeeds.xcconfig b/Configuration/KotlinLeeds.xcconfig new file mode 100644 index 0000000..9269d24 --- /dev/null +++ b/Configuration/KotlinLeeds.xcconfig @@ -0,0 +1,12 @@ +// KotlinLeeds Configuration + +PRODUCT_BUNDLE_IDENTIFIER = uk.co.kotlinleeds.KotlinLeeds +PRODUCT_NAME = KotlinLeeds +APP_DISPLAY_NAME = KotlinLeeds +API_HOST = kotlinleeds.co.uk +CONTACT_EMAIL = info@kotlinleeds.co.uk +APP_GROUP_IDENTIFIER = group.uk.co.kotlinleeds +CODE_SIGN_ENTITLEMENTS = SwiftLeeds/KotlinLeeds.entitlements +ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon +EXCLUDED_SOURCE_FILE_NAMES = SwiftLeedsAssets.xcassets SwiftLeedsColors.xcassets +WIDGET_KIND_NAME = KotlinLeedsWidget diff --git a/Configuration/SwiftLeeds.xcconfig b/Configuration/SwiftLeeds.xcconfig new file mode 100644 index 0000000..9cf9a92 --- /dev/null +++ b/Configuration/SwiftLeeds.xcconfig @@ -0,0 +1,12 @@ +// SwiftLeeds Configuration + +PRODUCT_BUNDLE_IDENTIFIER = uk.co.swiftleeds.SwiftLeeds +PRODUCT_NAME = SwiftLeeds +APP_DISPLAY_NAME = SwiftLeeds +API_HOST = swiftleeds.co.uk +CONTACT_EMAIL = info@swiftleeds.co.uk +APP_GROUP_IDENTIFIER = group.uk.co.swiftleeds +CODE_SIGN_ENTITLEMENTS = SwiftLeeds/SwiftLeeds.entitlements +ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon +EXCLUDED_SOURCE_FILE_NAMES = KotlinLeedsAssets.xcassets KotlinLeedsColors.xcassets +WIDGET_KIND_NAME = SwiftLeedsWidget diff --git a/KotlinLeedsWidgetExtension.entitlements b/KotlinLeedsWidgetExtension.entitlements new file mode 100644 index 0000000..a945437 --- /dev/null +++ b/KotlinLeedsWidgetExtension.entitlements @@ -0,0 +1,10 @@ + + + + + com.apple.security.application-groups + + group.uk.co.kotlinleeds + + + diff --git a/SwiftLeeds.xcodeproj/project.pbxproj b/SwiftLeeds.xcodeproj/project.pbxproj index d79e636..924de03 100644 --- a/SwiftLeeds.xcodeproj/project.pbxproj +++ b/SwiftLeeds.xcodeproj/project.pbxproj @@ -12,7 +12,6 @@ 0B4B1A512A48FB6400ED7EA9 /* SponsorsViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0B4B1A4C2A486EA800ED7EA9 /* SponsorsViewModel.swift */; }; 0B4CB3C828EAF19100246E62 /* SwiftLeedsAppClipApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0B4CB3C728EAF19100246E62 /* SwiftLeedsAppClipApp.swift */; }; 0B4CB3CA28EAF19100246E62 /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0B4CB3C928EAF19100246E62 /* ContentView.swift */; }; - 0B4CB3CC28EAF19100246E62 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 0B4CB3CB28EAF19100246E62 /* Assets.xcassets */; }; 0B4CB3CF28EAF19100246E62 /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 0B4CB3CE28EAF19100246E62 /* Preview Assets.xcassets */; }; 0B4CB3D428EAF19100246E62 /* SwiftLeedsAppClip.app in Embed App Clips */ = {isa = PBXBuildFile; fileRef = 0B4CB3C528EAF19000246E62 /* SwiftLeedsAppClip.app */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; 0B4CB3DD28EAF57900246E62 /* MyConferenceView.swift in Sources */ = {isa = PBXBuildFile; fileRef = AECB295827417F9D00CDC983 /* MyConferenceView.swift */; }; @@ -33,8 +32,7 @@ 0B4CB3F328EAF61B00246E62 /* CommonTileButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = FA57DE432875B06500911F03 /* CommonTileButton.swift */; }; 0B4CB3F428EAF62100246E62 /* CommonTileView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FA57DE442875B06500911F03 /* CommonTileView.swift */; }; 0B4CB3FC28EAF7C500246E62 /* CachedAsyncImage in Frameworks */ = {isa = PBXBuildFile; productRef = 0B4CB3FB28EAF7C500246E62 /* CachedAsyncImage */; }; - 0B4CB3FD28EAF7FE00246E62 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = AECB295A27417F9E00CDC983 /* Assets.xcassets */; }; - 0B4CB3FE28EAF80200246E62 /* Colors.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = AECB29872741ACE000CDC983 /* Colors.xcassets */; }; + 0B4CB3FD28EAF7FE00246E62 /* BuildFile in Resources */ = {isa = PBXBuildFile; }; 0B59B5652E70E5D400820C3C /* TeamMember.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0B59B5642E70E5D400820C3C /* TeamMember.swift */; }; 0B59B5662E70E5D400820C3C /* TeamMember.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0B59B5642E70E5D400820C3C /* TeamMember.swift */; }; 0B59B5672E70E5D400820C3C /* TeamMember.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0B59B5642E70E5D400820C3C /* TeamMember.swift */; }; @@ -48,10 +46,18 @@ 0B910A352A48FEC100648B32 /* SponsorTileView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FA57DE4E2875B09900911F03 /* SponsorTileView.swift */; }; 0B910A372A49D07700648B32 /* Sponsor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0B910A362A49D07700648B32 /* Sponsor.swift */; }; 0B910A382A49D09300648B32 /* Sponsor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0B910A362A49D07700648B32 /* Sponsor.swift */; }; + 13707030C1082B933C28151D /* SwiftLeedsAssets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 4301D0D3F1C8979276E77084 /* SwiftLeedsAssets.xcassets */; }; + 1ED8FD9CBE313B23E73E8132 /* KotlinLeedsColors.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 0B3FFD994DBE3F62216150F8 /* KotlinLeedsColors.xcassets */; }; 2A3831122884A96600030002 /* FancyHeaderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2A3831112884A96600030002 /* FancyHeaderView.swift */; }; 39345FDA288F17EE0031BCFF /* BottomSheetView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 39345FD9288F17EE0031BCFF /* BottomSheetView.swift */; }; 394653AB288BB7C800212E1C /* SpeakerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 394653AA288BB7C800212E1C /* SpeakerView.swift */; }; 39ED0034288F113500AB337A /* LocalCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 39ED0033288F113500AB337A /* LocalCell.swift */; }; + 416468542E4365477789D792 /* SwiftLeedsColors.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 893A122D593379F84605F70C /* SwiftLeedsColors.xcassets */; }; + 4381E5366C2266F0DBECFDC6 /* KotlinLeedsAssets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 40AEBC0F9109732F54C608A9 /* KotlinLeedsAssets.xcassets */; }; + 536B0D6E662499195E36CA15 /* SwiftLeedsColors.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 893A122D593379F84605F70C /* SwiftLeedsColors.xcassets */; }; + 6689C3857E75808C8395B496 /* SwiftLeedsAssets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = EEFB1E37D5A542A1798C92D5 /* SwiftLeedsAssets.xcassets */; }; + 6C97E4AC99FE94C690FB23B4 /* KotlinLeedsAssets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 40AEBC0F9109732F54C608A9 /* KotlinLeedsAssets.xcassets */; }; + 6E14A8EC04159C7E092C87D4 /* SwiftLeedsColors.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 893A122D593379F84605F70C /* SwiftLeedsColors.xcassets */; }; 740162DA2A7053A000C2D1B3 /* AppState.swift in Sources */ = {isa = PBXBuildFile; fileRef = 740162D92A7053A000C2D1B3 /* AppState.swift */; }; 740162DB2A7053A000C2D1B3 /* AppState.swift in Sources */ = {isa = PBXBuildFile; fileRef = 740162D92A7053A000C2D1B3 /* AppState.swift */; }; 7406572928E240720087F44F /* WidgetConstants.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7406572828E240720087F44F /* WidgetConstants.swift */; }; @@ -60,10 +66,9 @@ 74A09FDF28C6778C00E03F39 /* WidgetKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 74A09FDE28C6778C00E03F39 /* WidgetKit.framework */; }; 74A09FE128C6778C00E03F39 /* SwiftUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 74A09FE028C6778C00E03F39 /* SwiftUI.framework */; }; 74A09FE428C6778C00E03F39 /* SwiftLeedsWidget.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74A09FE328C6778C00E03F39 /* SwiftLeedsWidget.swift */; }; - 74A09FE628C6779300E03F39 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 74A09FE528C6779300E03F39 /* Assets.xcassets */; }; 74A09FEA28C6779300E03F39 /* SwiftLeedsWidgetExtension.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = 74A09FDD28C6778C00E03F39 /* SwiftLeedsWidgetExtension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; - 74A09FF028C688E700E03F39 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = AECB295A27417F9E00CDC983 /* Assets.xcassets */; }; - 74A09FF128C688E700E03F39 /* Colors.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = AECB29872741ACE000CDC983 /* Colors.xcassets */; }; + 74A09FF028C688E700E03F39 /* BuildFile in Resources */ = {isa = PBXBuildFile; }; + 74A09FF128C688E700E03F39 /* BuildFile in Resources */ = {isa = PBXBuildFile; }; 74B14FB028CE21D7004C0A40 /* TimeineProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74B14FAF28CE21D7004C0A40 /* TimeineProvider.swift */; }; 74B14FB228CE2221004C0A40 /* SwiftLeedsWidgetEntry.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74B14FB128CE2221004C0A40 /* SwiftLeedsWidgetEntry.swift */; }; 74B14FB428CE2245004C0A40 /* SwiftLeedsWidgetEntryView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74B14FB328CE2245004C0A40 /* SwiftLeedsWidgetEntryView.swift */; }; @@ -77,6 +82,8 @@ 74F5EF872A49CE9D008D9413 /* SidebarMainView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74F5EF862A49CE9D008D9413 /* SidebarMainView.swift */; }; 74F5EF892A49CECB008D9413 /* SidebarView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74F5EF882A49CECB008D9413 /* SidebarView.swift */; }; 74F5EF8C2A4B4352008D9413 /* ReadabilityModifier in Frameworks */ = {isa = PBXBuildFile; productRef = 74F5EF8B2A4B4352008D9413 /* ReadabilityModifier */; }; + 7640E1784CFF7D166DA3E292 /* SwiftLeedsAssets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = EEFB1E37D5A542A1798C92D5 /* SwiftLeedsAssets.xcassets */; }; + 79E3CB724EF853948BC7D906 /* ConferenceConfig.swift in Sources */ = {isa = PBXBuildFile; fileRef = 67624B7470D6BA62D4912236 /* ConferenceConfig.swift */; }; 7B31C8E52ED08DD100FEEDF7 /* Networking in Frameworks */ = {isa = PBXBuildFile; productRef = 7B31C8E42ED08DD100FEEDF7 /* Networking */; }; 7B31C8E72ED08EE800FEEDF7 /* Networking in Frameworks */ = {isa = PBXBuildFile; productRef = 7B31C8E62ED08EE800FEEDF7 /* Networking */; }; 7B31C8E92ED08EEE00FEEDF7 /* Networking in Frameworks */ = {isa = PBXBuildFile; productRef = 7B31C8E82ED08EEE00FEEDF7 /* Networking */; }; @@ -90,6 +97,10 @@ 7B8C3ECF2EE4A9F70089C6CF /* SharedAssets in Frameworks */ = {isa = PBXBuildFile; productRef = 7B8C3ECE2EE4A9F70089C6CF /* SharedAssets */; }; 7BE081522EE5BDA8004BCD1F /* SharedAssets in Frameworks */ = {isa = PBXBuildFile; productRef = 7BE081512EE5BDA8004BCD1F /* SharedAssets */; }; 7BE081542EE5BF13004BCD1F /* SharedAssets in Frameworks */ = {isa = PBXBuildFile; productRef = 7BE081532EE5BF13004BCD1F /* SharedAssets */; }; + 7DD216398B20B302618BCB90 /* SwiftLeedsAssets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 3275AD6541323F056786E508 /* SwiftLeedsAssets.xcassets */; }; + 802D63D966D0A9337F66041C /* KotlinLeedsAssets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 75075F01455C8AD72C71783C /* KotlinLeedsAssets.xcassets */; }; + 920187EBD71395160F1059C1 /* KotlinLeedsColors.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 0B3FFD994DBE3F62216150F8 /* KotlinLeedsColors.xcassets */; }; + A18F779A7E6FC79F59311319 /* KotlinLeedsColors.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 0B3FFD994DBE3F62216150F8 /* KotlinLeedsColors.xcassets */; }; AE1C8010289E9F3800996659 /* String.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE1C800F289E9F3800996659 /* String.swift */; }; AE1C801428A7BCD000996659 /* Settings.bundle in Resources */ = {isa = PBXBuildFile; fileRef = AE1C801328A7BCD000996659 /* Settings.bundle */; }; AE5EFD73289DC1D000464FE1 /* CachedAsyncImage in Frameworks */ = {isa = PBXBuildFile; productRef = AE5EFD72289DC1D000464FE1 /* CachedAsyncImage */; }; @@ -104,11 +115,9 @@ AEB06BD128CF8D2100E51967 /* WebView.swift in Sources */ = {isa = PBXBuildFile; fileRef = AEB06BD028CF8D2100E51967 /* WebView.swift */; }; AECB295727417F9D00CDC983 /* SwiftLeedsApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = AECB295627417F9D00CDC983 /* SwiftLeedsApp.swift */; }; AECB295927417F9D00CDC983 /* MyConferenceView.swift in Sources */ = {isa = PBXBuildFile; fileRef = AECB295827417F9D00CDC983 /* MyConferenceView.swift */; }; - AECB295B27417F9E00CDC983 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = AECB295A27417F9E00CDC983 /* Assets.xcassets */; }; AECB296827417F9E00CDC983 /* SwiftLeedsTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = AECB296727417F9E00CDC983 /* SwiftLeedsTests.swift */; }; AECB297227417F9E00CDC983 /* SwiftLeedsUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = AECB297127417F9E00CDC983 /* SwiftLeedsUITests.swift */; }; AECB297427417F9E00CDC983 /* SwiftLeedsUITestsLaunchTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = AECB297327417F9E00CDC983 /* SwiftLeedsUITestsLaunchTests.swift */; }; - AECB29882741ACE000CDC983 /* Colors.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = AECB29872741ACE000CDC983 /* Colors.xcassets */; }; AED26F7028675DA000E06064 /* AnnouncementCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = AED26F6F28675DA000E06064 /* AnnouncementCell.swift */; }; AED26F74286764F000E06064 /* TalkCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = AED26F73286764F000E06064 /* TalkCell.swift */; }; AED26F7828676A9900E06064 /* AboutView.swift in Sources */ = {isa = PBXBuildFile; fileRef = AED26F7728676A9900E06064 /* AboutView.swift */; }; @@ -116,8 +125,13 @@ AEDC0DAE286759630078A153 /* Tabs.swift in Sources */ = {isa = PBXBuildFile; fileRef = AEDC0DAD286759630078A153 /* Tabs.swift */; }; AEDC22532898281300746247 /* MyConferenceViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = AEDC22522898281300746247 /* MyConferenceViewModel.swift */; }; AEDC22552898288F00746247 /* Schedule.swift in Sources */ = {isa = PBXBuildFile; fileRef = AEDC22542898288F00746247 /* Schedule.swift */; }; + B2A3D0194187CEC82CCD3F5D /* ConferenceConfig.swift in Sources */ = {isa = PBXBuildFile; fileRef = 67624B7470D6BA62D4912236 /* ConferenceConfig.swift */; }; + B7E34B6C6CE38F48068FB98A /* SwiftLeedsAssets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = EEFB1E37D5A542A1798C92D5 /* SwiftLeedsAssets.xcassets */; }; + C88307224ADAA4C64A455D74 /* KotlinLeedsAssets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 40AEBC0F9109732F54C608A9 /* KotlinLeedsAssets.xcassets */; }; + D87582F568B0EFB6371B734B /* ConferenceConfig.swift in Sources */ = {isa = PBXBuildFile; fileRef = 67624B7470D6BA62D4912236 /* ConferenceConfig.swift */; }; E3569AEF2E5A1D0200BC9556 /* ShimmerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = E3569AED2E5A1D0200BC9556 /* ShimmerView.swift */; }; E3569B062E5B903800BC9556 /* ShimmerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = E3569AED2E5A1D0200BC9556 /* ShimmerView.swift */; }; + EF223850DCFBB4DF1213DE38 /* KotlinLeedsAssets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = ED1AFB8A37EDA9676DB1C998 /* KotlinLeedsAssets.xcassets */; }; FA1F7EF7287CB71600E12F8C /* HeaderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FA1F7EF6287CB71600E12F8C /* HeaderView.swift */; }; FA534D8228A1909300A3BFBB /* Local.swift in Sources */ = {isa = PBXBuildFile; fileRef = FA534D8128A1909300A3BFBB /* Local.swift */; }; FA534D8828A1939500A3BFBB /* LocalViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = FA534D8728A1939500A3BFBB /* LocalViewModel.swift */; }; @@ -184,12 +198,12 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ + 0B3FFD994DBE3F62216150F8 /* KotlinLeedsColors.xcassets */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = folder.assetcatalog; path = KotlinLeedsColors.xcassets; sourceTree = ""; }; 0B4B1A4A2A4858F600ED7EA9 /* SponsorsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SponsorsView.swift; sourceTree = ""; }; 0B4B1A4C2A486EA800ED7EA9 /* SponsorsViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SponsorsViewModel.swift; sourceTree = ""; }; 0B4CB3C528EAF19000246E62 /* SwiftLeedsAppClip.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = SwiftLeedsAppClip.app; sourceTree = BUILT_PRODUCTS_DIR; }; 0B4CB3C728EAF19100246E62 /* SwiftLeedsAppClipApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SwiftLeedsAppClipApp.swift; sourceTree = ""; }; 0B4CB3C928EAF19100246E62 /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = ""; }; - 0B4CB3CB28EAF19100246E62 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 0B4CB3CE28EAF19100246E62 /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = ""; }; 0B4CB3D028EAF19100246E62 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 0B4CB3D128EAF19100246E62 /* SwiftLeedsAppClip.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = SwiftLeedsAppClip.entitlements; sourceTree = ""; }; @@ -200,17 +214,23 @@ 0B59B56D2E70EA4F00820C3C /* AboutViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AboutViewModel.swift; sourceTree = ""; }; 0B59B5702E70EA6600820C3C /* About.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = About.swift; sourceTree = ""; }; 0B910A362A49D07700648B32 /* Sponsor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Sponsor.swift; sourceTree = ""; }; + 0BB52A782A5FDC2614FF7243 /* KotlinLeedsAppClip.entitlements */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.entitlements; path = KotlinLeedsAppClip.entitlements; sourceTree = ""; }; + 1AA9B4909D551477D0C04106 /* KotlinLeeds.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = KotlinLeeds.xcconfig; sourceTree = ""; }; 2A3831112884A96600030002 /* FancyHeaderView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FancyHeaderView.swift; sourceTree = ""; }; + 3275AD6541323F056786E508 /* SwiftLeedsAssets.xcassets */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = folder.assetcatalog; path = SwiftLeedsAssets.xcassets; sourceTree = ""; }; 39345FD9288F17EE0031BCFF /* BottomSheetView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BottomSheetView.swift; sourceTree = ""; }; 394653AA288BB7C800212E1C /* SpeakerView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SpeakerView.swift; sourceTree = ""; }; 39ED0033288F113500AB337A /* LocalCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LocalCell.swift; sourceTree = ""; }; + 40AEBC0F9109732F54C608A9 /* KotlinLeedsAssets.xcassets */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = folder.assetcatalog; path = KotlinLeedsAssets.xcassets; sourceTree = ""; }; + 4301D0D3F1C8979276E77084 /* SwiftLeedsAssets.xcassets */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = folder.assetcatalog; path = SwiftLeedsAssets.xcassets; sourceTree = ""; }; + 5F9FC40FEADC49E608696F7A /* SwiftLeeds.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SwiftLeeds.xcconfig; sourceTree = ""; }; + 67624B7470D6BA62D4912236 /* ConferenceConfig.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConferenceConfig.swift; sourceTree = ""; }; 740162D92A7053A000C2D1B3 /* AppState.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppState.swift; sourceTree = ""; }; 7406572828E240720087F44F /* WidgetConstants.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WidgetConstants.swift; sourceTree = ""; }; 74A09FDD28C6778C00E03F39 /* SwiftLeedsWidgetExtension.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = SwiftLeedsWidgetExtension.appex; sourceTree = BUILT_PRODUCTS_DIR; }; 74A09FDE28C6778C00E03F39 /* WidgetKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WidgetKit.framework; path = System/Library/Frameworks/WidgetKit.framework; sourceTree = SDKROOT; }; 74A09FE028C6778C00E03F39 /* SwiftUI.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SwiftUI.framework; path = System/Library/Frameworks/SwiftUI.framework; sourceTree = SDKROOT; }; 74A09FE328C6778C00E03F39 /* SwiftLeedsWidget.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SwiftLeedsWidget.swift; sourceTree = ""; }; - 74A09FE528C6779300E03F39 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 74A09FE728C6779300E03F39 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 74B14FAD28CB22B4004C0A40 /* SwiftLeedsWidgetExtension.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = SwiftLeedsWidgetExtension.entitlements; sourceTree = ""; }; 74B14FAF28CE21D7004C0A40 /* TimeineProvider.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TimeineProvider.swift; sourceTree = ""; }; @@ -221,8 +241,11 @@ 74F5EF842A49CE6A008D9413 /* TabsMainView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TabsMainView.swift; sourceTree = ""; }; 74F5EF862A49CE9D008D9413 /* SidebarMainView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SidebarMainView.swift; sourceTree = ""; }; 74F5EF882A49CECB008D9413 /* SidebarView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SidebarView.swift; sourceTree = ""; }; + 75075F01455C8AD72C71783C /* KotlinLeedsAssets.xcassets */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = folder.assetcatalog; path = KotlinLeedsAssets.xcassets; sourceTree = ""; }; + 7804F8767E529D8F3A0D8BE4 /* KotlinLeeds.entitlements */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.entitlements; path = KotlinLeeds.entitlements; sourceTree = ""; }; 7B6278A12EEDDE1B00DE1473 /* SectionHeader.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SectionHeader.swift; sourceTree = ""; }; 7B8108412E5CA00E00CCB2F5 /* SwiftLeedsPackage */ = {isa = PBXFileReference; lastKnownFileType = wrapper; path = SwiftLeedsPackage; sourceTree = ""; }; + 893A122D593379F84605F70C /* SwiftLeedsColors.xcassets */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = folder.assetcatalog; path = SwiftLeedsColors.xcassets; sourceTree = ""; }; AE1C800F289E9F3800996659 /* String.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = String.swift; sourceTree = ""; }; AE1C801328A7BCD000996659 /* Settings.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; path = Settings.bundle; sourceTree = ""; }; AE5EFD74289E7CBF00464FE1 /* ActivityView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ActivityView.swift; sourceTree = ""; }; @@ -237,14 +260,12 @@ AECB295327417F9D00CDC983 /* SwiftLeeds.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = SwiftLeeds.app; sourceTree = BUILT_PRODUCTS_DIR; }; AECB295627417F9D00CDC983 /* SwiftLeedsApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SwiftLeedsApp.swift; sourceTree = ""; }; AECB295827417F9D00CDC983 /* MyConferenceView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MyConferenceView.swift; sourceTree = ""; }; - AECB295A27417F9E00CDC983 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; AECB296327417F9E00CDC983 /* SwiftLeedsTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = SwiftLeedsTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; AECB296727417F9E00CDC983 /* SwiftLeedsTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SwiftLeedsTests.swift; sourceTree = ""; }; AECB296D27417F9E00CDC983 /* SwiftLeedsUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = SwiftLeedsUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; AECB297127417F9E00CDC983 /* SwiftLeedsUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SwiftLeedsUITests.swift; sourceTree = ""; }; AECB297327417F9E00CDC983 /* SwiftLeedsUITestsLaunchTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SwiftLeedsUITestsLaunchTests.swift; sourceTree = ""; }; AECB29832741ABFD00CDC983 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - AECB29872741ACE000CDC983 /* Colors.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Colors.xcassets; sourceTree = ""; }; AED26F6F28675DA000E06064 /* AnnouncementCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AnnouncementCell.swift; sourceTree = ""; }; AED26F73286764F000E06064 /* TalkCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TalkCell.swift; sourceTree = ""; }; AED26F7728676A9900E06064 /* AboutView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AboutView.swift; sourceTree = ""; }; @@ -252,7 +273,10 @@ AEDC0DAD286759630078A153 /* Tabs.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Tabs.swift; sourceTree = ""; }; AEDC22522898281300746247 /* MyConferenceViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MyConferenceViewModel.swift; sourceTree = ""; }; AEDC22542898288F00746247 /* Schedule.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Schedule.swift; sourceTree = ""; }; + C1725A0182E1989D761551B2 /* KotlinLeedsWidgetExtension.entitlements */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.entitlements; path = KotlinLeedsWidgetExtension.entitlements; sourceTree = ""; }; E3569AED2E5A1D0200BC9556 /* ShimmerView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShimmerView.swift; sourceTree = ""; }; + ED1AFB8A37EDA9676DB1C998 /* KotlinLeedsAssets.xcassets */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = folder.assetcatalog; path = KotlinLeedsAssets.xcassets; sourceTree = ""; }; + EEFB1E37D5A542A1798C92D5 /* SwiftLeedsAssets.xcassets */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = folder.assetcatalog; path = SwiftLeedsAssets.xcassets; sourceTree = ""; }; FA1F7EF6287CB71600E12F8C /* HeaderView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HeaderView.swift; sourceTree = ""; }; FA534D8128A1909300A3BFBB /* Local.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Local.swift; sourceTree = ""; }; FA534D8728A1939500A3BFBB /* LocalViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LocalViewModel.swift; sourceTree = ""; }; @@ -334,10 +358,12 @@ children = ( 0B4CB3C728EAF19100246E62 /* SwiftLeedsAppClipApp.swift */, 0B4CB3C928EAF19100246E62 /* ContentView.swift */, - 0B4CB3CB28EAF19100246E62 /* Assets.xcassets */, 0B4CB3D028EAF19100246E62 /* Info.plist */, 0B4CB3D128EAF19100246E62 /* SwiftLeedsAppClip.entitlements */, + 0BB52A782A5FDC2614FF7243 /* KotlinLeedsAppClip.entitlements */, 0B4CB3CD28EAF19100246E62 /* Preview Content */, + 4301D0D3F1C8979276E77084 /* SwiftLeedsAssets.xcassets */, + 75075F01455C8AD72C71783C /* KotlinLeedsAssets.xcassets */, ); path = SwiftLeedsAppClip; sourceTree = ""; @@ -358,8 +384,9 @@ 74E62F7128CA98EA004422F9 /* SwiftLeedsSmallWidgetView.swift */, 74B14FB328CE2245004C0A40 /* SwiftLeedsWidgetEntryView.swift */, 74A09FE328C6778C00E03F39 /* SwiftLeedsWidget.swift */, - 74A09FE528C6779300E03F39 /* Assets.xcassets */, 74A09FE728C6779300E03F39 /* Info.plist */, + 3275AD6541323F056786E508 /* SwiftLeedsAssets.xcassets */, + ED1AFB8A37EDA9676DB1C998 /* KotlinLeedsAssets.xcassets */, ); path = SwiftLeedsWidget; sourceTree = ""; @@ -374,6 +401,15 @@ path = WidgetSetup; sourceTree = ""; }; + 7D158F62E4F9CC9BE188EB59 /* Configuration */ = { + isa = PBXGroup; + children = ( + 5F9FC40FEADC49E608696F7A /* SwiftLeeds.xcconfig */, + 1AA9B4909D551477D0C04106 /* KotlinLeeds.xcconfig */, + ); + path = Configuration; + sourceTree = ""; + }; AE8C1B2928C4B38400AF7318 /* Push */ = { isa = PBXGroup; children = ( @@ -388,6 +424,7 @@ children = ( 7B8108412E5CA00E00CCB2F5 /* SwiftLeedsPackage */, 74B14FAD28CB22B4004C0A40 /* SwiftLeedsWidgetExtension.entitlements */, + C1725A0182E1989D761551B2 /* KotlinLeedsWidgetExtension.entitlements */, AECB295527417F9D00CDC983 /* SwiftLeeds */, AE1C801328A7BCD000996659 /* Settings.bundle */, AECB296627417F9E00CDC983 /* SwiftLeedsTests */, @@ -396,6 +433,7 @@ 0B4CB3C628EAF19100246E62 /* SwiftLeedsAppClip */, AECB295427417F9D00CDC983 /* Products */, FAF74EDA288B44BE00A0926C /* Frameworks */, + 7D158F62E4F9CC9BE188EB59 /* Configuration */, ); sourceTree = ""; }; @@ -421,6 +459,7 @@ AECB29842741AC2500CDC983 /* Resources */, AE8C1B2C28C4B8D800AF7318 /* SwiftLeeds.entitlements */, AECB29852741AC4B00CDC983 /* Views */, + 7804F8767E529D8F3A0D8BE4 /* KotlinLeeds.entitlements */, ); path = SwiftLeeds; sourceTree = ""; @@ -453,8 +492,10 @@ AECB29842741AC2500CDC983 /* Resources */ = { isa = PBXGroup; children = ( - AECB295A27417F9E00CDC983 /* Assets.xcassets */, - AECB29872741ACE000CDC983 /* Colors.xcassets */, + EEFB1E37D5A542A1798C92D5 /* SwiftLeedsAssets.xcassets */, + 893A122D593379F84605F70C /* SwiftLeedsColors.xcassets */, + 40AEBC0F9109732F54C608A9 /* KotlinLeedsAssets.xcassets */, + 0B3FFD994DBE3F62216150F8 /* KotlinLeedsColors.xcassets */, ); path = Resources; sourceTree = ""; @@ -478,6 +519,7 @@ AECB29832741ABFD00CDC983 /* Info.plist */, AECB295627417F9D00CDC983 /* SwiftLeedsApp.swift */, 740162D92A7053A000C2D1B3 /* AppState.swift */, + 67624B7470D6BA62D4912236 /* ConferenceConfig.swift */, ); path = App; sourceTree = ""; @@ -748,9 +790,17 @@ buildActionMask = 2147483647; files = ( 0B4CB3CF28EAF19100246E62 /* Preview Assets.xcassets in Resources */, - 0B4CB3FE28EAF80200246E62 /* Colors.xcassets in Resources */, - 0B4CB3FD28EAF7FE00246E62 /* Assets.xcassets in Resources */, - 0B4CB3CC28EAF19100246E62 /* Assets.xcassets in Resources */, + 0B4CB3FD28EAF7FE00246E62 /* BuildFile in Resources */, + 7640E1784CFF7D166DA3E292 /* SwiftLeedsAssets.xcassets in Resources */, + 536B0D6E662499195E36CA15 /* SwiftLeedsColors.xcassets in Resources */, + 4381E5366C2266F0DBECFDC6 /* KotlinLeedsAssets.xcassets in Resources */, + 920187EBD71395160F1059C1 /* KotlinLeedsColors.xcassets in Resources */, + 6689C3857E75808C8395B496 /* SwiftLeedsAssets.xcassets in Resources */, + 416468542E4365477789D792 /* SwiftLeedsColors.xcassets in Resources */, + 6C97E4AC99FE94C690FB23B4 /* KotlinLeedsAssets.xcassets in Resources */, + A18F779A7E6FC79F59311319 /* KotlinLeedsColors.xcassets in Resources */, + 13707030C1082B933C28151D /* SwiftLeedsAssets.xcassets in Resources */, + 802D63D966D0A9337F66041C /* KotlinLeedsAssets.xcassets in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -758,9 +808,10 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - 74A09FF128C688E700E03F39 /* Colors.xcassets in Resources */, - 74A09FF028C688E700E03F39 /* Assets.xcassets in Resources */, - 74A09FE628C6779300E03F39 /* Assets.xcassets in Resources */, + 74A09FF128C688E700E03F39 /* BuildFile in Resources */, + 74A09FF028C688E700E03F39 /* BuildFile in Resources */, + 7DD216398B20B302618BCB90 /* SwiftLeedsAssets.xcassets in Resources */, + EF223850DCFBB4DF1213DE38 /* KotlinLeedsAssets.xcassets in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -769,9 +820,11 @@ buildActionMask = 2147483647; files = ( AE1C801428A7BCD000996659 /* Settings.bundle in Resources */, - AECB29882741ACE000CDC983 /* Colors.xcassets in Resources */, 0B59B56E2E70EA4F00820C3C /* about.json in Resources */, - AECB295B27417F9E00CDC983 /* Assets.xcassets in Resources */, + B7E34B6C6CE38F48068FB98A /* SwiftLeedsAssets.xcassets in Resources */, + 6E14A8EC04159C7E092C87D4 /* SwiftLeedsColors.xcassets in Resources */, + C88307224ADAA4C64A455D74 /* KotlinLeedsAssets.xcassets in Resources */, + 1ED8FD9CBE313B23E73E8132 /* KotlinLeedsColors.xcassets in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -824,6 +877,7 @@ 0B4CB3F428EAF62100246E62 /* CommonTileView.swift in Sources */, 0B4CB3C828EAF19100246E62 /* SwiftLeedsAppClipApp.swift in Sources */, 0B4CB3F328EAF61B00246E62 /* CommonTileButton.swift in Sources */, + 79E3CB724EF853948BC7D906 /* ConferenceConfig.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -844,6 +898,7 @@ 74B14FB228CE2221004C0A40 /* SwiftLeedsWidgetEntry.swift in Sources */, 74B14FB428CE2245004C0A40 /* SwiftLeedsWidgetEntryView.swift in Sources */, 0B59B5732E70EA6600820C3C /* About.swift in Sources */, + D87582F568B0EFB6371B734B /* ConferenceConfig.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -894,6 +949,7 @@ 39345FDA288F17EE0031BCFF /* BottomSheetView.swift in Sources */, 740162DA2A7053A000C2D1B3 /* AppState.swift in Sources */, 74F5EF872A49CE9D008D9413 /* SidebarMainView.swift in Sources */, + B2A3D0194187CEC82CCD3F5D /* ConferenceConfig.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -942,9 +998,9 @@ /* Begin XCBuildConfiguration section */ 0B4CB3D628EAF19100246E62 /* Debug */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 5F9FC40FEADC49E608696F7A /* SwiftLeeds.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_ALTERNATE_APPICON_NAMES = "AppIcon-Space AppIcon-Olympics"; - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; CODE_SIGN_ENTITLEMENTS = SwiftLeedsAppClip/SwiftLeedsAppClip.entitlements; @@ -980,9 +1036,9 @@ }; 0B4CB3D728EAF19100246E62 /* Release */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 5F9FC40FEADC49E608696F7A /* SwiftLeeds.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_ALTERNATE_APPICON_NAMES = "AppIcon-Space AppIcon-Olympics"; - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; CODE_SIGN_ENTITLEMENTS = SwiftLeedsAppClip/SwiftLeedsAppClip.entitlements; @@ -1016,8 +1072,63 @@ }; name = Release; }; + 2014F1FBBBA61BB8B879C841 /* Debug-KotlinLeeds */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 1AA9B4909D551477D0C04106 /* KotlinLeeds.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + ASSETCATALOG_COMPILER_WIDGET_BACKGROUND_COLOR_NAME = WidgetBackground; + CODE_SIGN_ENTITLEMENTS = KotlinLeedsWidgetExtension.entitlements; + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 0; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_FILE = SwiftLeedsWidget/Info.plist; + INFOPLIST_KEY_CFBundleDisplayName = KotlinLeedsWidget; + INFOPLIST_KEY_NSHumanReadableCopyright = ""; + IPHONEOS_DEPLOYMENT_TARGET = 16.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@executable_path/../../Frameworks", + ); + MARKETING_VERSION = 1.5.0; + PRODUCT_BUNDLE_IDENTIFIER = uk.co.kotlinleeds.KotlinLeeds.KotlinLeedsWidget; + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = "Debug-KotlinLeeds"; + }; + 655E3983F369B83929052804 /* Release-KotlinLeeds */ = { + isa = XCBuildConfiguration; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 15.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = uk.co.kotlinleeds.KotlinLeedsTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_EMIT_LOC_STRINGS = NO; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/SwiftLeeds.app/SwiftLeeds"; + }; + name = "Release-KotlinLeeds"; + }; 74A09FEC28C6779300E03F39 /* Debug */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 5F9FC40FEADC49E608696F7A /* SwiftLeeds.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; ASSETCATALOG_COMPILER_WIDGET_BACKGROUND_COLOR_NAME = WidgetBackground; @@ -1048,6 +1159,7 @@ }; 74A09FED28C6779300E03F39 /* Release */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 5F9FC40FEADC49E608696F7A /* SwiftLeeds.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; ASSETCATALOG_COMPILER_WIDGET_BACKGROUND_COLOR_NAME = WidgetBackground; @@ -1076,8 +1188,159 @@ }; name = Release; }; + 85E3F86534CB7D5739F96A1C /* Release-KotlinLeeds */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 1AA9B4909D551477D0C04106 /* KotlinLeeds.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_ALTERNATE_APPICON_NAMES = "AppIcon-Space AppIcon-Olympics"; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 0; + ENABLE_PREVIEWS = YES; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_FILE = SwiftLeeds/App/Info.plist; + INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.developer-tools"; + INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES; + INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; + INFOPLIST_KEY_UIRequiresFullScreen = YES; + INFOPLIST_KEY_UISupportedInterfaceOrientations = UIInterfaceOrientationPortrait; + INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown"; + IPHONEOS_DEPLOYMENT_TARGET = 16.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + MARKETING_VERSION = 1.5.0; + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = "Release-KotlinLeeds"; + }; + 906642F1D5557A45A0D9FB1A /* Debug-KotlinLeeds */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 1AA9B4909D551477D0C04106 /* KotlinLeeds.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_ALTERNATE_APPICON_NAMES = "AppIcon-Space AppIcon-Olympics"; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CODE_SIGN_ENTITLEMENTS = SwiftLeedsAppClip/KotlinLeedsAppClip.entitlements; + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 0; + DEVELOPMENT_ASSET_PATHS = "\"SwiftLeedsAppClip/Preview Content\""; + ENABLE_PREVIEWS = YES; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_FILE = SwiftLeedsAppClip/Info.plist; + INFOPLIST_KEY_CFBundleDisplayName = KotlinLeeds; + INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.developer-tools"; + INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES; + INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; + INFOPLIST_KEY_UILaunchScreen_Generation = YES; + INFOPLIST_KEY_UIRequiresFullScreen = YES; + INFOPLIST_KEY_UISupportedInterfaceOrientations = UIInterfaceOrientationPortrait; + INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown"; + IPHONEOS_DEPLOYMENT_TARGET = 16.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + MARKETING_VERSION = 1.5.0; + PRODUCT_BUNDLE_IDENTIFIER = uk.co.kotlinleeds.KotlinLeeds.Clip; + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = "Debug-KotlinLeeds"; + }; + 9E7FC0DEE0511AE09933E16D /* Release-KotlinLeeds */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = uk.co.kotlinleeds.KotlinLeedsUITests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_EMIT_LOC_STRINGS = NO; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + TEST_TARGET_NAME = SwiftLeeds; + }; + name = "Release-KotlinLeeds"; + }; + A38060880D523A66B65603E3 /* Release-KotlinLeeds */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 1AA9B4909D551477D0C04106 /* KotlinLeeds.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++17"; + 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"; + DEVELOPMENT_TEAM = K33K6V7FBA; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_USER_SCRIPT_SANDBOXING = YES; + 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 = 16.0; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = iphoneos; + STRING_CATALOG_GENERATE_SYMBOLS = YES; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + VALIDATE_PRODUCT = YES; + }; + name = "Release-KotlinLeeds"; + }; AECB297527417F9E00CDC983 /* Debug */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 5F9FC40FEADC49E608696F7A /* SwiftLeeds.xcconfig */; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_NONNULL = YES; @@ -1142,6 +1405,7 @@ }; AECB297627417F9E00CDC983 /* Release */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 5F9FC40FEADC49E608696F7A /* SwiftLeeds.xcconfig */; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_NONNULL = YES; @@ -1200,11 +1464,10 @@ }; AECB297827417F9E00CDC983 /* Debug */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 5F9FC40FEADC49E608696F7A /* SwiftLeeds.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_ALTERNATE_APPICON_NAMES = "AppIcon-Space AppIcon-Olympics"; - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; - CODE_SIGN_ENTITLEMENTS = SwiftLeeds/SwiftLeeds.entitlements; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = 0; @@ -1223,7 +1486,6 @@ "@executable_path/Frameworks", ); MARKETING_VERSION = 1.5.0; - PRODUCT_BUNDLE_IDENTIFIER = uk.co.swiftleeds.SwiftLeeds; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; SWIFT_EMIT_LOC_STRINGS = YES; @@ -1234,11 +1496,10 @@ }; AECB297927417F9E00CDC983 /* Release */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 5F9FC40FEADC49E608696F7A /* SwiftLeeds.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_ALTERNATE_APPICON_NAMES = "AppIcon-Space AppIcon-Olympics"; - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; - CODE_SIGN_ENTITLEMENTS = SwiftLeeds/SwiftLeeds.entitlements; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = 0; @@ -1257,7 +1518,6 @@ "@executable_path/Frameworks", ); MARKETING_VERSION = 1.5.0; - PRODUCT_BUNDLE_IDENTIFIER = uk.co.swiftleeds.SwiftLeeds; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; SWIFT_EMIT_LOC_STRINGS = YES; @@ -1354,6 +1614,216 @@ }; name = Release; }; + B0A72D7F43CF6E1426D3DEF4 /* Release-KotlinLeeds */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 1AA9B4909D551477D0C04106 /* KotlinLeeds.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_ALTERNATE_APPICON_NAMES = "AppIcon-Space AppIcon-Olympics"; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CODE_SIGN_ENTITLEMENTS = SwiftLeedsAppClip/KotlinLeedsAppClip.entitlements; + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 0; + DEVELOPMENT_ASSET_PATHS = "\"SwiftLeedsAppClip/Preview Content\""; + ENABLE_PREVIEWS = YES; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_FILE = SwiftLeedsAppClip/Info.plist; + INFOPLIST_KEY_CFBundleDisplayName = KotlinLeeds; + INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.developer-tools"; + INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES; + INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; + INFOPLIST_KEY_UILaunchScreen_Generation = YES; + INFOPLIST_KEY_UIRequiresFullScreen = YES; + INFOPLIST_KEY_UISupportedInterfaceOrientations = UIInterfaceOrientationPortrait; + INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown"; + IPHONEOS_DEPLOYMENT_TARGET = 16.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + MARKETING_VERSION = 1.5.0; + PRODUCT_BUNDLE_IDENTIFIER = uk.co.kotlinleeds.KotlinLeeds.Clip; + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = "Release-KotlinLeeds"; + }; + CA02A67F16FAEB1F469D90E7 /* Debug-KotlinLeeds */ = { + isa = XCBuildConfiguration; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 15.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = uk.co.kotlinleeds.KotlinLeedsTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_EMIT_LOC_STRINGS = NO; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/SwiftLeeds.app/SwiftLeeds"; + }; + name = "Debug-KotlinLeeds"; + }; + CD001671DE923FBC5EEFDBF7 /* Debug-KotlinLeeds */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = uk.co.kotlinleeds.KotlinLeedsUITests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_EMIT_LOC_STRINGS = NO; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + TEST_TARGET_NAME = SwiftLeeds; + }; + name = "Debug-KotlinLeeds"; + }; + D5C3DEA64235AB9468B871B4 /* Release-KotlinLeeds */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 1AA9B4909D551477D0C04106 /* KotlinLeeds.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + ASSETCATALOG_COMPILER_WIDGET_BACKGROUND_COLOR_NAME = WidgetBackground; + CODE_SIGN_ENTITLEMENTS = KotlinLeedsWidgetExtension.entitlements; + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 0; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_FILE = SwiftLeedsWidget/Info.plist; + INFOPLIST_KEY_CFBundleDisplayName = KotlinLeedsWidget; + INFOPLIST_KEY_NSHumanReadableCopyright = ""; + IPHONEOS_DEPLOYMENT_TARGET = 16.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@executable_path/../../Frameworks", + ); + MARKETING_VERSION = 1.5.0; + PRODUCT_BUNDLE_IDENTIFIER = uk.co.kotlinleeds.KotlinLeeds.KotlinLeedsWidget; + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = "Release-KotlinLeeds"; + }; + F407709FF578F921B9E6D438 /* Debug-KotlinLeeds */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 1AA9B4909D551477D0C04106 /* KotlinLeeds.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++17"; + 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; + DEVELOPMENT_TEAM = K33K6V7FBA; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + ENABLE_USER_SCRIPT_SANDBOXING = YES; + 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 = 16.0; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + STRING_CATALOG_GENERATE_SYMBOLS = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + }; + name = "Debug-KotlinLeeds"; + }; + F4CFF55E07C8EE1E8EFFD505 /* Debug-KotlinLeeds */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 1AA9B4909D551477D0C04106 /* KotlinLeeds.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_ALTERNATE_APPICON_NAMES = "AppIcon-Space AppIcon-Olympics"; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 0; + ENABLE_PREVIEWS = YES; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_FILE = SwiftLeeds/App/Info.plist; + INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.developer-tools"; + INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES; + INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; + INFOPLIST_KEY_UIRequiresFullScreen = YES; + INFOPLIST_KEY_UISupportedInterfaceOrientations = UIInterfaceOrientationPortrait; + INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown"; + IPHONEOS_DEPLOYMENT_TARGET = 16.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + MARKETING_VERSION = 1.5.0; + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = "Debug-KotlinLeeds"; + }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ @@ -1362,6 +1832,8 @@ buildConfigurations = ( 0B4CB3D628EAF19100246E62 /* Debug */, 0B4CB3D728EAF19100246E62 /* Release */, + 906642F1D5557A45A0D9FB1A /* Debug-KotlinLeeds */, + B0A72D7F43CF6E1426D3DEF4 /* Release-KotlinLeeds */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; @@ -1371,6 +1843,8 @@ buildConfigurations = ( 74A09FEC28C6779300E03F39 /* Debug */, 74A09FED28C6779300E03F39 /* Release */, + 2014F1FBBBA61BB8B879C841 /* Debug-KotlinLeeds */, + D5C3DEA64235AB9468B871B4 /* Release-KotlinLeeds */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; @@ -1380,6 +1854,8 @@ buildConfigurations = ( AECB297527417F9E00CDC983 /* Debug */, AECB297627417F9E00CDC983 /* Release */, + F407709FF578F921B9E6D438 /* Debug-KotlinLeeds */, + A38060880D523A66B65603E3 /* Release-KotlinLeeds */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; @@ -1389,6 +1865,8 @@ buildConfigurations = ( AECB297827417F9E00CDC983 /* Debug */, AECB297927417F9E00CDC983 /* Release */, + F4CFF55E07C8EE1E8EFFD505 /* Debug-KotlinLeeds */, + 85E3F86534CB7D5739F96A1C /* Release-KotlinLeeds */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; @@ -1398,6 +1876,8 @@ buildConfigurations = ( AECB297B27417F9E00CDC983 /* Debug */, AECB297C27417F9E00CDC983 /* Release */, + CA02A67F16FAEB1F469D90E7 /* Debug-KotlinLeeds */, + 655E3983F369B83929052804 /* Release-KotlinLeeds */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; @@ -1407,6 +1887,8 @@ buildConfigurations = ( AECB297E27417F9E00CDC983 /* Debug */, AECB297F27417F9E00CDC983 /* Release */, + CD001671DE923FBC5EEFDBF7 /* Debug-KotlinLeeds */, + 9E7FC0DEE0511AE09933E16D /* Release-KotlinLeeds */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; diff --git a/SwiftLeeds.xcodeproj/xcshareddata/xcschemes/KotlinLeeds.xcscheme b/SwiftLeeds.xcodeproj/xcshareddata/xcschemes/KotlinLeeds.xcscheme new file mode 100644 index 0000000..4791468 --- /dev/null +++ b/SwiftLeeds.xcodeproj/xcshareddata/xcschemes/KotlinLeeds.xcscheme @@ -0,0 +1,98 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SwiftLeeds/App/ConferenceConfig.swift b/SwiftLeeds/App/ConferenceConfig.swift new file mode 100644 index 0000000..080bad4 --- /dev/null +++ b/SwiftLeeds/App/ConferenceConfig.swift @@ -0,0 +1,16 @@ +import Foundation + +enum ConferenceConfig { + private static func value(for key: String) -> String { + guard let value = Bundle.main.object(forInfoDictionaryKey: key) as? String, !value.isEmpty else { + fatalError("Missing Info.plist key: \(key)") + } + return value + } + + static let apiHost: String = value(for: "APIHost") + static let pushURL: String = "https://www.\(apiHost)/push" + static let contactEmail: String = value(for: "ContactEmail") + static let appGroupIdentifier: String = value(for: "AppGroupIdentifier") + static let conferenceName: String = value(for: "CFBundleDisplayName") +} diff --git a/SwiftLeeds/App/Info.plist b/SwiftLeeds/App/Info.plist index 8ca6b49..33e36f4 100644 --- a/SwiftLeeds/App/Info.plist +++ b/SwiftLeeds/App/Info.plist @@ -2,6 +2,14 @@ + CFBundleDisplayName + $(APP_DISPLAY_NAME) + APIHost + $(API_HOST) + ContactEmail + $(CONTACT_EMAIL) + AppGroupIdentifier + $(APP_GROUP_IDENTIFIER) UILaunchScreen UIColorName diff --git a/SwiftLeeds/App/SwiftLeedsApp.swift b/SwiftLeeds/App/SwiftLeedsApp.swift index 42d50e7..e552e4f 100644 --- a/SwiftLeeds/App/SwiftLeedsApp.swift +++ b/SwiftLeeds/App/SwiftLeedsApp.swift @@ -4,7 +4,7 @@ import SwiftUI @main struct SwiftLeedsApp: App { @UIApplicationDelegateAdaptor(AppDelegate.self) private var appDelegate - + @StateObject private var appState = AppState() @StateObject private var themeManager = ThemeManager.shared @@ -20,7 +20,7 @@ struct SwiftLeedsApp: App { // MARK: - AppDelegate final class AppDelegate: NSObject, UIApplicationDelegate { - static let pushURL: String = "https://www.swiftleeds.co.uk/push" + static var pushURL: String { ConferenceConfig.pushURL } func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool { URLCache.shared.diskCapacity = 100_000_000 diff --git a/SwiftLeeds/Data/Model/Sponsor.swift b/SwiftLeeds/Data/Model/Sponsor.swift index d95ab95..690abee 100644 --- a/SwiftLeeds/Data/Model/Sponsor.swift +++ b/SwiftLeeds/Data/Model/Sponsor.swift @@ -29,5 +29,5 @@ struct Job: Decodable, Hashable, Identifiable { let location: String let url: String - static let sample = Job(id: UUID(), title: "Senior iOS Engineer", details: "Bringing all your Swift skills to the fore", location: "Leeds", url: "https://www.swiftleeds.co.uk") + static let sample = Job(id: UUID(), title: "Senior iOS Engineer", details: "Bringing all your Swift skills to the fore", location: "Leeds", url: "https://example.com") } diff --git a/SwiftLeeds/Data/Model/TeamMember.swift b/SwiftLeeds/Data/Model/TeamMember.swift index e5b3016..63945a1 100644 --- a/SwiftLeeds/Data/Model/TeamMember.swift +++ b/SwiftLeeds/Data/Model/TeamMember.swift @@ -32,8 +32,8 @@ struct TeamMember: Codable, Identifiable { twitterURL = try container.decodeIfPresent(String.self, forKey: .twitterURL) slackURL = try container.decodeIfPresent(String.self, forKey: .slackURL) - if let imageURL = try container.decodeIfPresent(String.self, forKey: .photoURL) { - photoURL = imageURL.hasPrefix("/") ? "https://swiftleeds.co.uk\(imageURL)" : imageURL + if let imageURL = try? container.decodeIfPresent(String.self, forKey: .photoURL) { + photoURL = imageURL.hasPrefix("/") ? "https://\(ConferenceConfig.apiHost)\(imageURL)" : imageURL } else { photoURL = nil } diff --git a/SwiftLeeds/KotlinLeeds.entitlements b/SwiftLeeds/KotlinLeeds.entitlements new file mode 100644 index 0000000..48696b8 --- /dev/null +++ b/SwiftLeeds/KotlinLeeds.entitlements @@ -0,0 +1,17 @@ + + + + + aps-environment + development + com.apple.developer.associated-domains + + appclips:kotlinleeds.co.uk + applinks:kotlinleeds.co.uk + + com.apple.security.application-groups + + group.uk.co.kotlinleeds + + + diff --git a/SwiftLeeds/Resources/Assets.xcassets/AppIcon-Olympics.appiconset/1024.png b/SwiftLeeds/Resources/KotlinLeedsAssets.xcassets/AppIcon-Olympics.appiconset/1024.png similarity index 100% rename from SwiftLeeds/Resources/Assets.xcassets/AppIcon-Olympics.appiconset/1024.png rename to SwiftLeeds/Resources/KotlinLeedsAssets.xcassets/AppIcon-Olympics.appiconset/1024.png diff --git a/SwiftLeeds/Resources/Assets.xcassets/AppIcon-Olympics.appiconset/Contents.json b/SwiftLeeds/Resources/KotlinLeedsAssets.xcassets/AppIcon-Olympics.appiconset/Contents.json similarity index 100% rename from SwiftLeeds/Resources/Assets.xcassets/AppIcon-Olympics.appiconset/Contents.json rename to SwiftLeeds/Resources/KotlinLeedsAssets.xcassets/AppIcon-Olympics.appiconset/Contents.json diff --git a/SwiftLeeds/Resources/Assets.xcassets/AppIcon-Space.appiconset/1024 1.png b/SwiftLeeds/Resources/KotlinLeedsAssets.xcassets/AppIcon-Space.appiconset/1024 1.png similarity index 100% rename from SwiftLeeds/Resources/Assets.xcassets/AppIcon-Space.appiconset/1024 1.png rename to SwiftLeeds/Resources/KotlinLeedsAssets.xcassets/AppIcon-Space.appiconset/1024 1.png diff --git a/SwiftLeeds/Resources/Assets.xcassets/AppIcon-Space.appiconset/Contents.json b/SwiftLeeds/Resources/KotlinLeedsAssets.xcassets/AppIcon-Space.appiconset/Contents.json similarity index 100% rename from SwiftLeeds/Resources/Assets.xcassets/AppIcon-Space.appiconset/Contents.json rename to SwiftLeeds/Resources/KotlinLeedsAssets.xcassets/AppIcon-Space.appiconset/Contents.json diff --git a/SwiftLeeds/Resources/Assets.xcassets/AppIcon.appiconset/AppIcon.png b/SwiftLeeds/Resources/KotlinLeedsAssets.xcassets/AppIcon.appiconset/AppIcon.png similarity index 100% rename from SwiftLeeds/Resources/Assets.xcassets/AppIcon.appiconset/AppIcon.png rename to SwiftLeeds/Resources/KotlinLeedsAssets.xcassets/AppIcon.appiconset/AppIcon.png diff --git a/SwiftLeeds/Resources/Assets.xcassets/AppIcon.appiconset/Contents.json b/SwiftLeeds/Resources/KotlinLeedsAssets.xcassets/AppIcon.appiconset/Contents.json similarity index 100% rename from SwiftLeeds/Resources/Assets.xcassets/AppIcon.appiconset/Contents.json rename to SwiftLeeds/Resources/KotlinLeedsAssets.xcassets/AppIcon.appiconset/Contents.json diff --git a/SwiftLeeds/Resources/Assets.xcassets/AppIconPreview-2024.imageset/AppIcon 1.png b/SwiftLeeds/Resources/KotlinLeedsAssets.xcassets/AppIconPreview-2024.imageset/AppIcon 1.png similarity index 100% rename from SwiftLeeds/Resources/Assets.xcassets/AppIconPreview-2024.imageset/AppIcon 1.png rename to SwiftLeeds/Resources/KotlinLeedsAssets.xcassets/AppIconPreview-2024.imageset/AppIcon 1.png diff --git a/SwiftLeeds/Resources/Assets.xcassets/AppIconPreview-2024.imageset/Contents.json b/SwiftLeeds/Resources/KotlinLeedsAssets.xcassets/AppIconPreview-2024.imageset/Contents.json similarity index 100% rename from SwiftLeeds/Resources/Assets.xcassets/AppIconPreview-2024.imageset/Contents.json rename to SwiftLeeds/Resources/KotlinLeedsAssets.xcassets/AppIconPreview-2024.imageset/Contents.json diff --git a/SwiftLeeds/Resources/Assets.xcassets/AppIconPreview-Olympics.imageset/Contents.json b/SwiftLeeds/Resources/KotlinLeedsAssets.xcassets/AppIconPreview-Olympics.imageset/Contents.json similarity index 100% rename from SwiftLeeds/Resources/Assets.xcassets/AppIconPreview-Olympics.imageset/Contents.json rename to SwiftLeeds/Resources/KotlinLeedsAssets.xcassets/AppIconPreview-Olympics.imageset/Contents.json diff --git a/SwiftLeeds/Resources/Assets.xcassets/AppIconPreview-Olympics.imageset/Frame 110.png b/SwiftLeeds/Resources/KotlinLeedsAssets.xcassets/AppIconPreview-Olympics.imageset/Frame 110.png similarity index 100% rename from SwiftLeeds/Resources/Assets.xcassets/AppIconPreview-Olympics.imageset/Frame 110.png rename to SwiftLeeds/Resources/KotlinLeedsAssets.xcassets/AppIconPreview-Olympics.imageset/Frame 110.png diff --git a/SwiftLeeds/Resources/Assets.xcassets/AppIconPreview-Space.imageset/Contents.json b/SwiftLeeds/Resources/KotlinLeedsAssets.xcassets/AppIconPreview-Space.imageset/Contents.json similarity index 100% rename from SwiftLeeds/Resources/Assets.xcassets/AppIconPreview-Space.imageset/Contents.json rename to SwiftLeeds/Resources/KotlinLeedsAssets.xcassets/AppIconPreview-Space.imageset/Contents.json diff --git a/SwiftLeeds/Resources/Assets.xcassets/AppIconPreview-Space.imageset/Frame 139.png b/SwiftLeeds/Resources/KotlinLeedsAssets.xcassets/AppIconPreview-Space.imageset/Frame 139.png similarity index 100% rename from SwiftLeeds/Resources/Assets.xcassets/AppIconPreview-Space.imageset/Frame 139.png rename to SwiftLeeds/Resources/KotlinLeedsAssets.xcassets/AppIconPreview-Space.imageset/Frame 139.png diff --git a/SwiftLeeds/Resources/Assets.xcassets/CarriageworksTheatre.imageset/CarriageworksTheatre.jpg b/SwiftLeeds/Resources/KotlinLeedsAssets.xcassets/CarriageworksTheatre.imageset/CarriageworksTheatre.jpg similarity index 100% rename from SwiftLeeds/Resources/Assets.xcassets/CarriageworksTheatre.imageset/CarriageworksTheatre.jpg rename to SwiftLeeds/Resources/KotlinLeedsAssets.xcassets/CarriageworksTheatre.imageset/CarriageworksTheatre.jpg diff --git a/SwiftLeeds/Resources/Assets.xcassets/CarriageworksTheatre.imageset/Contents.json b/SwiftLeeds/Resources/KotlinLeedsAssets.xcassets/CarriageworksTheatre.imageset/Contents.json similarity index 100% rename from SwiftLeeds/Resources/Assets.xcassets/CarriageworksTheatre.imageset/Contents.json rename to SwiftLeeds/Resources/KotlinLeedsAssets.xcassets/CarriageworksTheatre.imageset/Contents.json diff --git a/SwiftLeeds/Resources/Assets.xcassets/Clock.imageset/Clock.pdf b/SwiftLeeds/Resources/KotlinLeedsAssets.xcassets/Clock.imageset/Clock.pdf similarity index 100% rename from SwiftLeeds/Resources/Assets.xcassets/Clock.imageset/Clock.pdf rename to SwiftLeeds/Resources/KotlinLeedsAssets.xcassets/Clock.imageset/Clock.pdf diff --git a/SwiftLeeds/Resources/Assets.xcassets/Clock.imageset/Contents.json b/SwiftLeeds/Resources/KotlinLeedsAssets.xcassets/Clock.imageset/Contents.json similarity index 100% rename from SwiftLeeds/Resources/Assets.xcassets/Clock.imageset/Contents.json rename to SwiftLeeds/Resources/KotlinLeedsAssets.xcassets/Clock.imageset/Contents.json diff --git a/SwiftLeeds/Resources/Assets.xcassets/Contents.json b/SwiftLeeds/Resources/KotlinLeedsAssets.xcassets/Contents.json similarity index 100% rename from SwiftLeeds/Resources/Assets.xcassets/Contents.json rename to SwiftLeeds/Resources/KotlinLeedsAssets.xcassets/Contents.json diff --git a/SwiftLeeds/Resources/Assets.xcassets/Icon.imageset/Contents.json b/SwiftLeeds/Resources/KotlinLeedsAssets.xcassets/Icon.imageset/Contents.json similarity index 100% rename from SwiftLeeds/Resources/Assets.xcassets/Icon.imageset/Contents.json rename to SwiftLeeds/Resources/KotlinLeedsAssets.xcassets/Icon.imageset/Contents.json diff --git a/SwiftLeeds/Resources/Assets.xcassets/Icon.imageset/Icon-Dark.pdf b/SwiftLeeds/Resources/KotlinLeedsAssets.xcassets/Icon.imageset/Icon-Dark.pdf similarity index 100% rename from SwiftLeeds/Resources/Assets.xcassets/Icon.imageset/Icon-Dark.pdf rename to SwiftLeeds/Resources/KotlinLeedsAssets.xcassets/Icon.imageset/Icon-Dark.pdf diff --git a/SwiftLeeds/Resources/Assets.xcassets/Icon.imageset/Icon.pdf b/SwiftLeeds/Resources/KotlinLeedsAssets.xcassets/Icon.imageset/Icon.pdf similarity index 100% rename from SwiftLeeds/Resources/Assets.xcassets/Icon.imageset/Icon.pdf rename to SwiftLeeds/Resources/KotlinLeedsAssets.xcassets/Icon.imageset/Icon.pdf diff --git a/SwiftLeeds/Resources/Assets.xcassets/LaunchImage.imageset/Contents.json b/SwiftLeeds/Resources/KotlinLeedsAssets.xcassets/LaunchImage.imageset/Contents.json similarity index 100% rename from SwiftLeeds/Resources/Assets.xcassets/LaunchImage.imageset/Contents.json rename to SwiftLeeds/Resources/KotlinLeedsAssets.xcassets/LaunchImage.imageset/Contents.json diff --git a/SwiftLeeds/Resources/Assets.xcassets/LaunchImage.imageset/LaunchScreen-Dark.png b/SwiftLeeds/Resources/KotlinLeedsAssets.xcassets/LaunchImage.imageset/LaunchScreen-Dark.png similarity index 100% rename from SwiftLeeds/Resources/Assets.xcassets/LaunchImage.imageset/LaunchScreen-Dark.png rename to SwiftLeeds/Resources/KotlinLeedsAssets.xcassets/LaunchImage.imageset/LaunchScreen-Dark.png diff --git a/SwiftLeeds/Resources/Assets.xcassets/LaunchImage.imageset/LaunchScreen-Dark@2x.png b/SwiftLeeds/Resources/KotlinLeedsAssets.xcassets/LaunchImage.imageset/LaunchScreen-Dark@2x.png similarity index 100% rename from SwiftLeeds/Resources/Assets.xcassets/LaunchImage.imageset/LaunchScreen-Dark@2x.png rename to SwiftLeeds/Resources/KotlinLeedsAssets.xcassets/LaunchImage.imageset/LaunchScreen-Dark@2x.png diff --git a/SwiftLeeds/Resources/Assets.xcassets/LaunchImage.imageset/LaunchScreen-Dark@3x.png b/SwiftLeeds/Resources/KotlinLeedsAssets.xcassets/LaunchImage.imageset/LaunchScreen-Dark@3x.png similarity index 100% rename from SwiftLeeds/Resources/Assets.xcassets/LaunchImage.imageset/LaunchScreen-Dark@3x.png rename to SwiftLeeds/Resources/KotlinLeedsAssets.xcassets/LaunchImage.imageset/LaunchScreen-Dark@3x.png diff --git a/SwiftLeeds/Resources/Assets.xcassets/LaunchImage.imageset/LaunchScreen.png b/SwiftLeeds/Resources/KotlinLeedsAssets.xcassets/LaunchImage.imageset/LaunchScreen.png similarity index 100% rename from SwiftLeeds/Resources/Assets.xcassets/LaunchImage.imageset/LaunchScreen.png rename to SwiftLeeds/Resources/KotlinLeedsAssets.xcassets/LaunchImage.imageset/LaunchScreen.png diff --git a/SwiftLeeds/Resources/Assets.xcassets/LaunchImage.imageset/LaunchScreen@2x.png b/SwiftLeeds/Resources/KotlinLeedsAssets.xcassets/LaunchImage.imageset/LaunchScreen@2x.png similarity index 100% rename from SwiftLeeds/Resources/Assets.xcassets/LaunchImage.imageset/LaunchScreen@2x.png rename to SwiftLeeds/Resources/KotlinLeedsAssets.xcassets/LaunchImage.imageset/LaunchScreen@2x.png diff --git a/SwiftLeeds/Resources/Assets.xcassets/LaunchImage.imageset/LaunchScreen@3x.png b/SwiftLeeds/Resources/KotlinLeedsAssets.xcassets/LaunchImage.imageset/LaunchScreen@3x.png similarity index 100% rename from SwiftLeeds/Resources/Assets.xcassets/LaunchImage.imageset/LaunchScreen@3x.png rename to SwiftLeeds/Resources/KotlinLeedsAssets.xcassets/LaunchImage.imageset/LaunchScreen@3x.png diff --git a/SwiftLeeds/Resources/Assets.xcassets/LeedsPlayhouse.imageset/Contents.json b/SwiftLeeds/Resources/KotlinLeedsAssets.xcassets/LeedsPlayhouse.imageset/Contents.json similarity index 100% rename from SwiftLeeds/Resources/Assets.xcassets/LeedsPlayhouse.imageset/Contents.json rename to SwiftLeeds/Resources/KotlinLeedsAssets.xcassets/LeedsPlayhouse.imageset/Contents.json diff --git a/SwiftLeeds/Resources/Assets.xcassets/LeedsPlayhouse.imageset/LeedsPlayhouse.jpeg b/SwiftLeeds/Resources/KotlinLeedsAssets.xcassets/LeedsPlayhouse.imageset/LeedsPlayhouse.jpeg similarity index 100% rename from SwiftLeeds/Resources/Assets.xcassets/LeedsPlayhouse.imageset/LeedsPlayhouse.jpeg rename to SwiftLeeds/Resources/KotlinLeedsAssets.xcassets/LeedsPlayhouse.imageset/LeedsPlayhouse.jpeg diff --git a/SwiftLeeds/Resources/Assets.xcassets/wineglass.fill.symbolset/Contents.json b/SwiftLeeds/Resources/KotlinLeedsAssets.xcassets/wineglass.fill.symbolset/Contents.json similarity index 100% rename from SwiftLeeds/Resources/Assets.xcassets/wineglass.fill.symbolset/Contents.json rename to SwiftLeeds/Resources/KotlinLeedsAssets.xcassets/wineglass.fill.symbolset/Contents.json diff --git a/SwiftLeeds/Resources/Assets.xcassets/wineglass.fill.symbolset/wineglass.fill.svg b/SwiftLeeds/Resources/KotlinLeedsAssets.xcassets/wineglass.fill.symbolset/wineglass.fill.svg similarity index 100% rename from SwiftLeeds/Resources/Assets.xcassets/wineglass.fill.symbolset/wineglass.fill.svg rename to SwiftLeeds/Resources/KotlinLeedsAssets.xcassets/wineglass.fill.symbolset/wineglass.fill.svg diff --git a/SwiftLeeds/Resources/Colors.xcassets/AccentColor.colorset/Contents.json b/SwiftLeeds/Resources/KotlinLeedsColors.xcassets/AccentColor.colorset/Contents.json similarity index 100% rename from SwiftLeeds/Resources/Colors.xcassets/AccentColor.colorset/Contents.json rename to SwiftLeeds/Resources/KotlinLeedsColors.xcassets/AccentColor.colorset/Contents.json diff --git a/SwiftLeeds/Resources/Colors.xcassets/Background.colorset/Contents.json b/SwiftLeeds/Resources/KotlinLeedsColors.xcassets/Background.colorset/Contents.json similarity index 100% rename from SwiftLeeds/Resources/Colors.xcassets/Background.colorset/Contents.json rename to SwiftLeeds/Resources/KotlinLeedsColors.xcassets/Background.colorset/Contents.json diff --git a/SwiftLeeds/Resources/Colors.xcassets/CellBackground.colorset/Contents.json b/SwiftLeeds/Resources/KotlinLeedsColors.xcassets/CellBackground.colorset/Contents.json similarity index 100% rename from SwiftLeeds/Resources/Colors.xcassets/CellBackground.colorset/Contents.json rename to SwiftLeeds/Resources/KotlinLeedsColors.xcassets/CellBackground.colorset/Contents.json diff --git a/SwiftLeeds/Resources/Colors.xcassets/CellBorder.colorset/Contents.json b/SwiftLeeds/Resources/KotlinLeedsColors.xcassets/CellBorder.colorset/Contents.json similarity index 100% rename from SwiftLeeds/Resources/Colors.xcassets/CellBorder.colorset/Contents.json rename to SwiftLeeds/Resources/KotlinLeedsColors.xcassets/CellBorder.colorset/Contents.json diff --git a/SwiftLeeds/Resources/Colors.xcassets/CellForeground.colorset/Contents.json b/SwiftLeeds/Resources/KotlinLeedsColors.xcassets/CellForeground.colorset/Contents.json similarity index 100% rename from SwiftLeeds/Resources/Colors.xcassets/CellForeground.colorset/Contents.json rename to SwiftLeeds/Resources/KotlinLeedsColors.xcassets/CellForeground.colorset/Contents.json diff --git a/SwiftLeeds/Resources/Colors.xcassets/Contents.json b/SwiftLeeds/Resources/KotlinLeedsColors.xcassets/Contents.json similarity index 100% rename from SwiftLeeds/Resources/Colors.xcassets/Contents.json rename to SwiftLeeds/Resources/KotlinLeedsColors.xcassets/Contents.json diff --git a/SwiftLeeds/Resources/Colors.xcassets/Gradients/BuyTicketGradientEnd.colorset/Contents.json b/SwiftLeeds/Resources/KotlinLeedsColors.xcassets/Gradients/BuyTicketGradientEnd.colorset/Contents.json similarity index 100% rename from SwiftLeeds/Resources/Colors.xcassets/Gradients/BuyTicketGradientEnd.colorset/Contents.json rename to SwiftLeeds/Resources/KotlinLeedsColors.xcassets/Gradients/BuyTicketGradientEnd.colorset/Contents.json diff --git a/SwiftLeeds/Resources/Colors.xcassets/Gradients/BuyTicketGradientStart.colorset/Contents.json b/SwiftLeeds/Resources/KotlinLeedsColors.xcassets/Gradients/BuyTicketGradientStart.colorset/Contents.json similarity index 100% rename from SwiftLeeds/Resources/Colors.xcassets/Gradients/BuyTicketGradientStart.colorset/Contents.json rename to SwiftLeeds/Resources/KotlinLeedsColors.xcassets/Gradients/BuyTicketGradientStart.colorset/Contents.json diff --git a/SwiftLeeds/Resources/Colors.xcassets/Gradients/Contents.json b/SwiftLeeds/Resources/KotlinLeedsColors.xcassets/Gradients/Contents.json similarity index 100% rename from SwiftLeeds/Resources/Colors.xcassets/Gradients/Contents.json rename to SwiftLeeds/Resources/KotlinLeedsColors.xcassets/Gradients/Contents.json diff --git a/SwiftLeeds/Resources/Colors.xcassets/LaunchScreenBackground.colorset/Contents.json b/SwiftLeeds/Resources/KotlinLeedsColors.xcassets/LaunchScreenBackground.colorset/Contents.json similarity index 100% rename from SwiftLeeds/Resources/Colors.xcassets/LaunchScreenBackground.colorset/Contents.json rename to SwiftLeeds/Resources/KotlinLeedsColors.xcassets/LaunchScreenBackground.colorset/Contents.json diff --git a/SwiftLeeds/Resources/Colors.xcassets/ListBackground.colorset/Contents.json b/SwiftLeeds/Resources/KotlinLeedsColors.xcassets/ListBackground.colorset/Contents.json similarity index 100% rename from SwiftLeeds/Resources/Colors.xcassets/ListBackground.colorset/Contents.json rename to SwiftLeeds/Resources/KotlinLeedsColors.xcassets/ListBackground.colorset/Contents.json diff --git a/SwiftLeeds/Resources/Colors.xcassets/TabBarBackground.colorset/Contents.json b/SwiftLeeds/Resources/KotlinLeedsColors.xcassets/TabBarBackground.colorset/Contents.json similarity index 100% rename from SwiftLeeds/Resources/Colors.xcassets/TabBarBackground.colorset/Contents.json rename to SwiftLeeds/Resources/KotlinLeedsColors.xcassets/TabBarBackground.colorset/Contents.json diff --git a/SwiftLeeds/Resources/SwiftLeedsAssets.xcassets/AppIcon-Olympics.appiconset/1024.png b/SwiftLeeds/Resources/SwiftLeedsAssets.xcassets/AppIcon-Olympics.appiconset/1024.png new file mode 100644 index 0000000..06790e5 Binary files /dev/null and b/SwiftLeeds/Resources/SwiftLeedsAssets.xcassets/AppIcon-Olympics.appiconset/1024.png differ diff --git a/SwiftLeeds/Resources/SwiftLeedsAssets.xcassets/AppIcon-Olympics.appiconset/Contents.json b/SwiftLeeds/Resources/SwiftLeedsAssets.xcassets/AppIcon-Olympics.appiconset/Contents.json new file mode 100644 index 0000000..cff1680 --- /dev/null +++ b/SwiftLeeds/Resources/SwiftLeedsAssets.xcassets/AppIcon-Olympics.appiconset/Contents.json @@ -0,0 +1,14 @@ +{ + "images" : [ + { + "filename" : "1024.png", + "idiom" : "universal", + "platform" : "ios", + "size" : "1024x1024" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/SwiftLeeds/Resources/SwiftLeedsAssets.xcassets/AppIcon-Space.appiconset/1024 1.png b/SwiftLeeds/Resources/SwiftLeedsAssets.xcassets/AppIcon-Space.appiconset/1024 1.png new file mode 100644 index 0000000..98ce66a Binary files /dev/null and b/SwiftLeeds/Resources/SwiftLeedsAssets.xcassets/AppIcon-Space.appiconset/1024 1.png differ diff --git a/SwiftLeeds/Resources/SwiftLeedsAssets.xcassets/AppIcon-Space.appiconset/Contents.json b/SwiftLeeds/Resources/SwiftLeedsAssets.xcassets/AppIcon-Space.appiconset/Contents.json new file mode 100644 index 0000000..a85e5aa --- /dev/null +++ b/SwiftLeeds/Resources/SwiftLeedsAssets.xcassets/AppIcon-Space.appiconset/Contents.json @@ -0,0 +1,14 @@ +{ + "images" : [ + { + "filename" : "1024 1.png", + "idiom" : "universal", + "platform" : "ios", + "size" : "1024x1024" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/SwiftLeedsWidget/Assets.xcassets/AppIcon.appiconset/AppIcon.png b/SwiftLeeds/Resources/SwiftLeedsAssets.xcassets/AppIcon.appiconset/AppIcon.png similarity index 100% rename from SwiftLeedsWidget/Assets.xcassets/AppIcon.appiconset/AppIcon.png rename to SwiftLeeds/Resources/SwiftLeedsAssets.xcassets/AppIcon.appiconset/AppIcon.png diff --git a/SwiftLeedsWidget/Assets.xcassets/AppIcon.appiconset/Contents.json b/SwiftLeeds/Resources/SwiftLeedsAssets.xcassets/AppIcon.appiconset/Contents.json similarity index 100% rename from SwiftLeedsWidget/Assets.xcassets/AppIcon.appiconset/Contents.json rename to SwiftLeeds/Resources/SwiftLeedsAssets.xcassets/AppIcon.appiconset/Contents.json diff --git a/SwiftLeeds/Resources/SwiftLeedsAssets.xcassets/AppIconPreview-2024.imageset/AppIcon 1.png b/SwiftLeeds/Resources/SwiftLeedsAssets.xcassets/AppIconPreview-2024.imageset/AppIcon 1.png new file mode 100644 index 0000000..55700fc Binary files /dev/null and b/SwiftLeeds/Resources/SwiftLeedsAssets.xcassets/AppIconPreview-2024.imageset/AppIcon 1.png differ diff --git a/SwiftLeeds/Resources/SwiftLeedsAssets.xcassets/AppIconPreview-2024.imageset/Contents.json b/SwiftLeeds/Resources/SwiftLeedsAssets.xcassets/AppIconPreview-2024.imageset/Contents.json new file mode 100644 index 0000000..345310e --- /dev/null +++ b/SwiftLeeds/Resources/SwiftLeedsAssets.xcassets/AppIconPreview-2024.imageset/Contents.json @@ -0,0 +1,12 @@ +{ + "images" : [ + { + "filename" : "AppIcon 1.png", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/SwiftLeeds/Resources/SwiftLeedsAssets.xcassets/AppIconPreview-Olympics.imageset/Contents.json b/SwiftLeeds/Resources/SwiftLeedsAssets.xcassets/AppIconPreview-Olympics.imageset/Contents.json new file mode 100644 index 0000000..8c67536 --- /dev/null +++ b/SwiftLeeds/Resources/SwiftLeedsAssets.xcassets/AppIconPreview-Olympics.imageset/Contents.json @@ -0,0 +1,12 @@ +{ + "images" : [ + { + "filename" : "Frame 110.png", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/SwiftLeeds/Resources/SwiftLeedsAssets.xcassets/AppIconPreview-Olympics.imageset/Frame 110.png b/SwiftLeeds/Resources/SwiftLeedsAssets.xcassets/AppIconPreview-Olympics.imageset/Frame 110.png new file mode 100644 index 0000000..b5646c3 Binary files /dev/null and b/SwiftLeeds/Resources/SwiftLeedsAssets.xcassets/AppIconPreview-Olympics.imageset/Frame 110.png differ diff --git a/SwiftLeeds/Resources/SwiftLeedsAssets.xcassets/AppIconPreview-Space.imageset/Contents.json b/SwiftLeeds/Resources/SwiftLeedsAssets.xcassets/AppIconPreview-Space.imageset/Contents.json new file mode 100644 index 0000000..c8b656c --- /dev/null +++ b/SwiftLeeds/Resources/SwiftLeedsAssets.xcassets/AppIconPreview-Space.imageset/Contents.json @@ -0,0 +1,12 @@ +{ + "images" : [ + { + "filename" : "Frame 139.png", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/SwiftLeeds/Resources/SwiftLeedsAssets.xcassets/AppIconPreview-Space.imageset/Frame 139.png b/SwiftLeeds/Resources/SwiftLeedsAssets.xcassets/AppIconPreview-Space.imageset/Frame 139.png new file mode 100644 index 0000000..c636a87 Binary files /dev/null and b/SwiftLeeds/Resources/SwiftLeedsAssets.xcassets/AppIconPreview-Space.imageset/Frame 139.png differ diff --git a/SwiftLeeds/Resources/SwiftLeedsAssets.xcassets/CarriageworksTheatre.imageset/CarriageworksTheatre.jpg b/SwiftLeeds/Resources/SwiftLeedsAssets.xcassets/CarriageworksTheatre.imageset/CarriageworksTheatre.jpg new file mode 100644 index 0000000..3fe2e33 Binary files /dev/null and b/SwiftLeeds/Resources/SwiftLeedsAssets.xcassets/CarriageworksTheatre.imageset/CarriageworksTheatre.jpg differ diff --git a/SwiftLeeds/Resources/SwiftLeedsAssets.xcassets/CarriageworksTheatre.imageset/Contents.json b/SwiftLeeds/Resources/SwiftLeedsAssets.xcassets/CarriageworksTheatre.imageset/Contents.json new file mode 100644 index 0000000..14428b2 --- /dev/null +++ b/SwiftLeeds/Resources/SwiftLeedsAssets.xcassets/CarriageworksTheatre.imageset/Contents.json @@ -0,0 +1,12 @@ +{ + "images" : [ + { + "filename" : "CarriageworksTheatre.jpg", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/SwiftLeeds/Resources/SwiftLeedsAssets.xcassets/Clock.imageset/Clock.pdf b/SwiftLeeds/Resources/SwiftLeedsAssets.xcassets/Clock.imageset/Clock.pdf new file mode 100644 index 0000000..50298ce Binary files /dev/null and b/SwiftLeeds/Resources/SwiftLeedsAssets.xcassets/Clock.imageset/Clock.pdf differ diff --git a/SwiftLeeds/Resources/SwiftLeedsAssets.xcassets/Clock.imageset/Contents.json b/SwiftLeeds/Resources/SwiftLeedsAssets.xcassets/Clock.imageset/Contents.json new file mode 100644 index 0000000..d18ee86 --- /dev/null +++ b/SwiftLeeds/Resources/SwiftLeedsAssets.xcassets/Clock.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images" : [ + { + "filename" : "Clock.pdf", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "preserves-vector-representation" : true + } +} diff --git a/SwiftLeedsAppClip/Assets.xcassets/Contents.json b/SwiftLeeds/Resources/SwiftLeedsAssets.xcassets/Contents.json similarity index 100% rename from SwiftLeedsAppClip/Assets.xcassets/Contents.json rename to SwiftLeeds/Resources/SwiftLeedsAssets.xcassets/Contents.json diff --git a/SwiftLeeds/Resources/SwiftLeedsAssets.xcassets/Icon.imageset/Contents.json b/SwiftLeeds/Resources/SwiftLeedsAssets.xcassets/Icon.imageset/Contents.json new file mode 100644 index 0000000..8767c87 --- /dev/null +++ b/SwiftLeeds/Resources/SwiftLeedsAssets.xcassets/Icon.imageset/Contents.json @@ -0,0 +1,25 @@ +{ + "images" : [ + { + "filename" : "Icon.pdf", + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "filename" : "Icon-Dark.pdf", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "preserves-vector-representation" : true + } +} diff --git a/SwiftLeeds/Resources/SwiftLeedsAssets.xcassets/Icon.imageset/Icon-Dark.pdf b/SwiftLeeds/Resources/SwiftLeedsAssets.xcassets/Icon.imageset/Icon-Dark.pdf new file mode 100644 index 0000000..987e390 Binary files /dev/null and b/SwiftLeeds/Resources/SwiftLeedsAssets.xcassets/Icon.imageset/Icon-Dark.pdf differ diff --git a/SwiftLeeds/Resources/SwiftLeedsAssets.xcassets/Icon.imageset/Icon.pdf b/SwiftLeeds/Resources/SwiftLeedsAssets.xcassets/Icon.imageset/Icon.pdf new file mode 100644 index 0000000..0a9aa2c Binary files /dev/null and b/SwiftLeeds/Resources/SwiftLeedsAssets.xcassets/Icon.imageset/Icon.pdf differ diff --git a/SwiftLeeds/Resources/Assets.xcassets/SwiftLeedsIcon.imageset/Contents.json b/SwiftLeeds/Resources/SwiftLeedsAssets.xcassets/Icon.imageset/SwiftLeedsIcon.imageset/Contents.json similarity index 100% rename from SwiftLeeds/Resources/Assets.xcassets/SwiftLeedsIcon.imageset/Contents.json rename to SwiftLeeds/Resources/SwiftLeedsAssets.xcassets/Icon.imageset/SwiftLeedsIcon.imageset/Contents.json diff --git a/SwiftLeeds/Resources/Assets.xcassets/SwiftLeedsIcon.imageset/SwiftLeedsIcon.pdf b/SwiftLeeds/Resources/SwiftLeedsAssets.xcassets/Icon.imageset/SwiftLeedsIcon.imageset/SwiftLeedsIcon.pdf similarity index 100% rename from SwiftLeeds/Resources/Assets.xcassets/SwiftLeedsIcon.imageset/SwiftLeedsIcon.pdf rename to SwiftLeeds/Resources/SwiftLeedsAssets.xcassets/Icon.imageset/SwiftLeedsIcon.imageset/SwiftLeedsIcon.pdf diff --git a/SwiftLeeds/Resources/SwiftLeedsAssets.xcassets/LaunchImage.imageset/Contents.json b/SwiftLeeds/Resources/SwiftLeedsAssets.xcassets/LaunchImage.imageset/Contents.json new file mode 100644 index 0000000..9f6bb5a --- /dev/null +++ b/SwiftLeeds/Resources/SwiftLeedsAssets.xcassets/LaunchImage.imageset/Contents.json @@ -0,0 +1,56 @@ +{ + "images" : [ + { + "filename" : "LaunchScreen.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "filename" : "LaunchScreen-Dark.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "LaunchScreen@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "filename" : "LaunchScreen-Dark@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "LaunchScreen@3x.png", + "idiom" : "universal", + "scale" : "3x" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "filename" : "LaunchScreen-Dark@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/SwiftLeeds/Resources/SwiftLeedsAssets.xcassets/LaunchImage.imageset/LaunchScreen-Dark.png b/SwiftLeeds/Resources/SwiftLeedsAssets.xcassets/LaunchImage.imageset/LaunchScreen-Dark.png new file mode 100644 index 0000000..db41179 Binary files /dev/null and b/SwiftLeeds/Resources/SwiftLeedsAssets.xcassets/LaunchImage.imageset/LaunchScreen-Dark.png differ diff --git a/SwiftLeeds/Resources/SwiftLeedsAssets.xcassets/LaunchImage.imageset/LaunchScreen-Dark@2x.png b/SwiftLeeds/Resources/SwiftLeedsAssets.xcassets/LaunchImage.imageset/LaunchScreen-Dark@2x.png new file mode 100644 index 0000000..5ae4cd0 Binary files /dev/null and b/SwiftLeeds/Resources/SwiftLeedsAssets.xcassets/LaunchImage.imageset/LaunchScreen-Dark@2x.png differ diff --git a/SwiftLeeds/Resources/SwiftLeedsAssets.xcassets/LaunchImage.imageset/LaunchScreen-Dark@3x.png b/SwiftLeeds/Resources/SwiftLeedsAssets.xcassets/LaunchImage.imageset/LaunchScreen-Dark@3x.png new file mode 100644 index 0000000..eb72942 Binary files /dev/null and b/SwiftLeeds/Resources/SwiftLeedsAssets.xcassets/LaunchImage.imageset/LaunchScreen-Dark@3x.png differ diff --git a/SwiftLeeds/Resources/SwiftLeedsAssets.xcassets/LaunchImage.imageset/LaunchScreen.png b/SwiftLeeds/Resources/SwiftLeedsAssets.xcassets/LaunchImage.imageset/LaunchScreen.png new file mode 100644 index 0000000..537a79c Binary files /dev/null and b/SwiftLeeds/Resources/SwiftLeedsAssets.xcassets/LaunchImage.imageset/LaunchScreen.png differ diff --git a/SwiftLeeds/Resources/SwiftLeedsAssets.xcassets/LaunchImage.imageset/LaunchScreen@2x.png b/SwiftLeeds/Resources/SwiftLeedsAssets.xcassets/LaunchImage.imageset/LaunchScreen@2x.png new file mode 100644 index 0000000..03515a5 Binary files /dev/null and b/SwiftLeeds/Resources/SwiftLeedsAssets.xcassets/LaunchImage.imageset/LaunchScreen@2x.png differ diff --git a/SwiftLeeds/Resources/SwiftLeedsAssets.xcassets/LaunchImage.imageset/LaunchScreen@3x.png b/SwiftLeeds/Resources/SwiftLeedsAssets.xcassets/LaunchImage.imageset/LaunchScreen@3x.png new file mode 100644 index 0000000..13c9e03 Binary files /dev/null and b/SwiftLeeds/Resources/SwiftLeedsAssets.xcassets/LaunchImage.imageset/LaunchScreen@3x.png differ diff --git a/SwiftLeeds/Resources/SwiftLeedsAssets.xcassets/LeedsPlayhouse.imageset/Contents.json b/SwiftLeeds/Resources/SwiftLeedsAssets.xcassets/LeedsPlayhouse.imageset/Contents.json new file mode 100644 index 0000000..b38ca61 --- /dev/null +++ b/SwiftLeeds/Resources/SwiftLeedsAssets.xcassets/LeedsPlayhouse.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images" : [ + { + "filename" : "LeedsPlayhouse.jpeg", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "template-rendering-intent" : "original" + } +} diff --git a/SwiftLeeds/Resources/SwiftLeedsAssets.xcassets/LeedsPlayhouse.imageset/LeedsPlayhouse.jpeg b/SwiftLeeds/Resources/SwiftLeedsAssets.xcassets/LeedsPlayhouse.imageset/LeedsPlayhouse.jpeg new file mode 100644 index 0000000..3d79330 Binary files /dev/null and b/SwiftLeeds/Resources/SwiftLeedsAssets.xcassets/LeedsPlayhouse.imageset/LeedsPlayhouse.jpeg differ diff --git a/SwiftLeeds/Resources/SwiftLeedsAssets.xcassets/wineglass.fill.symbolset/Contents.json b/SwiftLeeds/Resources/SwiftLeedsAssets.xcassets/wineglass.fill.symbolset/Contents.json new file mode 100644 index 0000000..5a196f2 --- /dev/null +++ b/SwiftLeeds/Resources/SwiftLeedsAssets.xcassets/wineglass.fill.symbolset/Contents.json @@ -0,0 +1,12 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + }, + "symbols" : [ + { + "filename" : "wineglass.fill.svg", + "idiom" : "universal" + } + ] +} diff --git a/SwiftLeeds/Resources/SwiftLeedsAssets.xcassets/wineglass.fill.symbolset/wineglass.fill.svg b/SwiftLeeds/Resources/SwiftLeedsAssets.xcassets/wineglass.fill.symbolset/wineglass.fill.svg new file mode 100644 index 0000000..84c5d2f --- /dev/null +++ b/SwiftLeeds/Resources/SwiftLeedsAssets.xcassets/wineglass.fill.symbolset/wineglass.fill.svg @@ -0,0 +1,93 @@ + + + + + + + + + Weight/Scale Variations + Ultralight + Thin + Light + Regular + Medium + Semibold + Bold + Heavy + Black + + + + + + + + + + + Design Variations + Symbols are supported in up to nine weights and three scales. + For optimal layout with text and other symbols, vertically align + symbols with the adjacent text. + + + + + + Margins + Leading and trailing margins on the left and right side of each symbol + can be adjusted by modifying the x-location of the margin guidelines. + Modifications are automatically applied proportionally to all + scales and weights. + + + + Exporting + Symbols should be outlined when exporting to ensure the + design is preserved when submitting to Xcode. + Template v.3.0 + Requires Xcode 13 or greater + Generated from wineglass.fill + Typeset at 100 points + Small + Medium + Large + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SwiftLeeds/Resources/SwiftLeedsColors.xcassets/AccentColor.colorset/Contents.json b/SwiftLeeds/Resources/SwiftLeedsColors.xcassets/AccentColor.colorset/Contents.json new file mode 100644 index 0000000..2f2558c --- /dev/null +++ b/SwiftLeeds/Resources/SwiftLeedsColors.xcassets/AccentColor.colorset/Contents.json @@ -0,0 +1,33 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0x30", + "green" : "0x3B", + "red" : "0xFF" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "platform" : "universal", + "reference" : "systemRedColor" + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/SwiftLeeds/Resources/SwiftLeedsColors.xcassets/Background.colorset/Contents.json b/SwiftLeeds/Resources/SwiftLeedsColors.xcassets/Background.colorset/Contents.json new file mode 100644 index 0000000..ffe396e --- /dev/null +++ b/SwiftLeeds/Resources/SwiftLeedsColors.xcassets/Background.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0xED", + "green" : "0xED", + "red" : "0xED" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0x1E", + "green" : "0x1D", + "red" : "0x1C" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/SwiftLeeds/Resources/SwiftLeedsColors.xcassets/CellBackground.colorset/Contents.json b/SwiftLeeds/Resources/SwiftLeedsColors.xcassets/CellBackground.colorset/Contents.json new file mode 100644 index 0000000..0a5f36b --- /dev/null +++ b/SwiftLeeds/Resources/SwiftLeedsColors.xcassets/CellBackground.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0xFF", + "green" : "0xFF", + "red" : "0xFF" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0x3A", + "green" : "0x3A", + "red" : "0x3A" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/SwiftLeeds/Resources/SwiftLeedsColors.xcassets/CellBorder.colorset/Contents.json b/SwiftLeeds/Resources/SwiftLeedsColors.xcassets/CellBorder.colorset/Contents.json new file mode 100644 index 0000000..2172cd9 --- /dev/null +++ b/SwiftLeeds/Resources/SwiftLeedsColors.xcassets/CellBorder.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0xD4", + "green" : "0xD4", + "red" : "0xD4" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0xFF", + "green" : "0xFF", + "red" : "0xFF" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/SwiftLeeds/Resources/SwiftLeedsColors.xcassets/CellForeground.colorset/Contents.json b/SwiftLeeds/Resources/SwiftLeedsColors.xcassets/CellForeground.colorset/Contents.json new file mode 100644 index 0000000..8fe3a46 --- /dev/null +++ b/SwiftLeeds/Resources/SwiftLeedsColors.xcassets/CellForeground.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0x4A", + "green" : "0x4A", + "red" : "0x4A" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0xFF", + "green" : "0xFF", + "red" : "0xFF" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/SwiftLeedsWidget/Assets.xcassets/Contents.json b/SwiftLeeds/Resources/SwiftLeedsColors.xcassets/Contents.json similarity index 100% rename from SwiftLeedsWidget/Assets.xcassets/Contents.json rename to SwiftLeeds/Resources/SwiftLeedsColors.xcassets/Contents.json diff --git a/SwiftLeeds/Resources/SwiftLeedsColors.xcassets/Gradients/BuyTicketGradientEnd.colorset/Contents.json b/SwiftLeeds/Resources/SwiftLeedsColors.xcassets/Gradients/BuyTicketGradientEnd.colorset/Contents.json new file mode 100644 index 0000000..3f5936a --- /dev/null +++ b/SwiftLeeds/Resources/SwiftLeedsColors.xcassets/Gradients/BuyTicketGradientEnd.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0x9A", + "green" : "0x9A", + "red" : "0x9A" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0x7F", + "green" : "0x7F", + "red" : "0x7F" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/SwiftLeeds/Resources/SwiftLeedsColors.xcassets/Gradients/BuyTicketGradientStart.colorset/Contents.json b/SwiftLeeds/Resources/SwiftLeedsColors.xcassets/Gradients/BuyTicketGradientStart.colorset/Contents.json new file mode 100644 index 0000000..ab99192 --- /dev/null +++ b/SwiftLeeds/Resources/SwiftLeedsColors.xcassets/Gradients/BuyTicketGradientStart.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0x5E", + "green" : "0x5E", + "red" : "0x5E" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0x5E", + "green" : "0x5E", + "red" : "0x5E" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/SwiftLeeds/Resources/SwiftLeedsColors.xcassets/Gradients/Contents.json b/SwiftLeeds/Resources/SwiftLeedsColors.xcassets/Gradients/Contents.json new file mode 100644 index 0000000..73c0059 --- /dev/null +++ b/SwiftLeeds/Resources/SwiftLeedsColors.xcassets/Gradients/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/SwiftLeeds/Resources/SwiftLeedsColors.xcassets/LaunchScreenBackground.colorset/Contents.json b/SwiftLeeds/Resources/SwiftLeedsColors.xcassets/LaunchScreenBackground.colorset/Contents.json new file mode 100644 index 0000000..a189b85 --- /dev/null +++ b/SwiftLeeds/Resources/SwiftLeedsColors.xcassets/LaunchScreenBackground.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "1.000", + "green" : "1.000", + "red" : "1.000" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0x3A", + "green" : "0x3A", + "red" : "0x3A" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/SwiftLeeds/Resources/SwiftLeedsColors.xcassets/ListBackground.colorset/Contents.json b/SwiftLeeds/Resources/SwiftLeedsColors.xcassets/ListBackground.colorset/Contents.json new file mode 100644 index 0000000..5a2c0c9 --- /dev/null +++ b/SwiftLeeds/Resources/SwiftLeedsColors.xcassets/ListBackground.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0xFF", + "green" : "0xFF", + "red" : "0xFF" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0x1E", + "green" : "0x1D", + "red" : "0x1C" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/SwiftLeeds/Resources/SwiftLeedsColors.xcassets/TabBarBackground.colorset/Contents.json b/SwiftLeeds/Resources/SwiftLeedsColors.xcassets/TabBarBackground.colorset/Contents.json new file mode 100644 index 0000000..d3c246b --- /dev/null +++ b/SwiftLeeds/Resources/SwiftLeedsColors.xcassets/TabBarBackground.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0xF9", + "green" : "0xF9", + "red" : "0xF9" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0x39", + "green" : "0x39", + "red" : "0x39" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/SwiftLeeds/Views/About/AboutViewModel.swift b/SwiftLeeds/Views/About/AboutViewModel.swift index 8faeac7..1a1d0e8 100644 --- a/SwiftLeeds/Views/About/AboutViewModel.swift +++ b/SwiftLeeds/Views/About/AboutViewModel.swift @@ -10,13 +10,13 @@ class AboutViewModel: ObservableObject { @Published var errorMessage: String? var venueURL: URL? { - guard let urlString = aboutContent?.urls.venue else { return nil } - return URL(string: urlString) + guard let path = aboutContent?.urls.venue else { return nil } + return URL(string: "https://\(ConferenceConfig.apiHost)\(path)") } - + var codeOfConductURL: URL? { - guard let urlString = aboutContent?.urls.codeOfConduct else { return nil } - return URL(string: urlString) + guard let path = aboutContent?.urls.codeOfConduct else { return nil } + return URL(string: "https://\(ConferenceConfig.apiHost)\(path)") } var reportAProblemLink: String { diff --git a/SwiftLeeds/Views/About/TeamMemberView.swift b/SwiftLeeds/Views/About/TeamMemberView.swift index 4b5115d..13ad534 100644 --- a/SwiftLeeds/Views/About/TeamMemberView.swift +++ b/SwiftLeeds/Views/About/TeamMemberView.swift @@ -114,7 +114,7 @@ struct TeamMemberView_Previews: PreviewProvider { linkedInURL: "https://www.linkedin.com/in/swiftlyrush/", twitterURL: "https://twitter.com/Adam9Rush", slackURL: "https://swiftleedsworkspace.slack.com/archives/D02ELG76VC0", - photoURL: "https://swiftleeds.co.uk/img/team/rush.jpg" + photoURL: "https://\(ConferenceConfig.apiHost)/img/team/rush.jpg" )) .previewDisplayName("With Role & All Links") @@ -125,7 +125,7 @@ struct TeamMemberView_Previews: PreviewProvider { linkedInURL: "https://www.linkedin.com/in/adam-oxley-41183a82/", twitterURL: "https://twitter.com/admoxly", slackURL: "https://swiftleedsworkspace.slack.com/team/U02DRL7KUCS", - photoURL: "https://swiftleeds.co.uk/img/team/oxley.jpg" + photoURL: "https://\(ConferenceConfig.apiHost)/img/team/oxley.jpg" )) .previewDisplayName("No Role") @@ -148,7 +148,7 @@ struct TeamMemberView_Previews: PreviewProvider { linkedInURL: "https://www.linkedin.com/in/jamessherlockdeveloper/", twitterURL: "https://twitter.com/JamesSherlouk", slackURL: "https://swiftleedsworkspace.slack.com/archives/D05RK6AAV29", - photoURL: "https://swiftleeds.co.uk/img/team/sherlock.jpg" + photoURL: "https://\(ConferenceConfig.apiHost)/img/team/sherlock.jpg" )) TeamMemberView(member: TeamMember( @@ -157,7 +157,7 @@ struct TeamMemberView_Previews: PreviewProvider { linkedInURL: "https://www.linkedin.com/in/joe-williams-1676b871/", twitterURL: "https://twitter.com/joedub_dev", slackURL: "https://swiftleedsworkspace.slack.com/archives/C05N7JZE2NP", - photoURL: "https://swiftleeds.co.uk/img/team/joe.jpg" + photoURL: "https://\(ConferenceConfig.apiHost)/img/team/joe.jpg" )) } .padding() diff --git a/SwiftLeeds/Views/About/about.json b/SwiftLeeds/Views/About/about.json index f5d8c80..91a6c62 100644 --- a/SwiftLeeds/Views/About/about.json +++ b/SwiftLeeds/Views/About/about.json @@ -1,7 +1,7 @@ { "urls": { - "venue": "https://swiftleeds.co.uk/#venue", - "codeOfConduct": "https://swiftleeds.co.uk/conduct", + "venue": "/#venue", + "codeOfConduct": "/conduct", "reportAProblem": "https://forms.gle/PJie9aRNAtzQUdUu9", "slack": "https://join.slack.com/t/swiftleedsworkspace/shared_invite/zt-3dex3vb3k-JNYQ~ollX6R619D_tZVfXQ", "youtube": "https://www.youtube.com/@swiftleeds" diff --git a/SwiftLeeds/Views/My Conference/MyConferenceViewModel.swift b/SwiftLeeds/Views/My Conference/MyConferenceViewModel.swift index 7bb14b9..c8d0e7d 100644 --- a/SwiftLeeds/Views/My Conference/MyConferenceViewModel.swift +++ b/SwiftLeeds/Views/My Conference/MyConferenceViewModel.swift @@ -21,7 +21,7 @@ class MyConferenceViewModel: ObservableObject { do { let data = try PropertyListEncoder().encode(schedule) - UserDefaults(suiteName: "group.uk.co.swiftleeds")?.setValue(data, forKey: "Schedule") + UserDefaults(suiteName: ConferenceConfig.appGroupIdentifier)?.setValue(data, forKey: "Schedule") } catch { throw(error) } diff --git a/SwiftLeedsAppClip/Info.plist b/SwiftLeedsAppClip/Info.plist index 074a6d1..376e487 100644 --- a/SwiftLeedsAppClip/Info.plist +++ b/SwiftLeedsAppClip/Info.plist @@ -2,6 +2,12 @@ + APIHost + $(API_HOST) + ContactEmail + $(CONTACT_EMAIL) + AppGroupIdentifier + $(APP_GROUP_IDENTIFIER) NSAppClip NSAppClipRequestEphemeralUserNotification diff --git a/SwiftLeedsAppClip/KotlinLeedsAppClip.entitlements b/SwiftLeedsAppClip/KotlinLeedsAppClip.entitlements new file mode 100644 index 0000000..94eb7fd --- /dev/null +++ b/SwiftLeedsAppClip/KotlinLeedsAppClip.entitlements @@ -0,0 +1,14 @@ + + + + + com.apple.developer.associated-domains + + appclips:kotlinleeds.co.uk + + com.apple.developer.parent-application-identifiers + + $(AppIdentifierPrefix)uk.co.kotlinleeds.KotlinLeeds + + + diff --git a/SwiftLeedsAppClip/Assets.xcassets/AccentColor.colorset/Contents.json b/SwiftLeedsAppClip/KotlinLeedsAssets.xcassets/AccentColor.colorset/Contents.json similarity index 100% rename from SwiftLeedsAppClip/Assets.xcassets/AccentColor.colorset/Contents.json rename to SwiftLeedsAppClip/KotlinLeedsAssets.xcassets/AccentColor.colorset/Contents.json diff --git a/SwiftLeedsAppClip/Assets.xcassets/AppIcon.appiconset/Contents.json b/SwiftLeedsAppClip/KotlinLeedsAssets.xcassets/AppIcon.appiconset/Contents.json similarity index 100% rename from SwiftLeedsAppClip/Assets.xcassets/AppIcon.appiconset/Contents.json rename to SwiftLeedsAppClip/KotlinLeedsAssets.xcassets/AppIcon.appiconset/Contents.json diff --git a/SwiftLeedsAppClip/KotlinLeedsAssets.xcassets/Contents.json b/SwiftLeedsAppClip/KotlinLeedsAssets.xcassets/Contents.json new file mode 100644 index 0000000..73c0059 --- /dev/null +++ b/SwiftLeedsAppClip/KotlinLeedsAssets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/SwiftLeedsWidget/Assets.xcassets/AccentColor.colorset/Contents.json b/SwiftLeedsAppClip/SwiftLeedsAssets.xcassets/AccentColor.colorset/Contents.json similarity index 100% rename from SwiftLeedsWidget/Assets.xcassets/AccentColor.colorset/Contents.json rename to SwiftLeedsAppClip/SwiftLeedsAssets.xcassets/AccentColor.colorset/Contents.json diff --git a/SwiftLeedsAppClip/SwiftLeedsAssets.xcassets/AppIcon.appiconset/Contents.json b/SwiftLeedsAppClip/SwiftLeedsAssets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..13613e3 --- /dev/null +++ b/SwiftLeedsAppClip/SwiftLeedsAssets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,13 @@ +{ + "images" : [ + { + "idiom" : "universal", + "platform" : "ios", + "size" : "1024x1024" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/SwiftLeedsAppClip/SwiftLeedsAssets.xcassets/Contents.json b/SwiftLeedsAppClip/SwiftLeedsAssets.xcassets/Contents.json new file mode 100644 index 0000000..73c0059 --- /dev/null +++ b/SwiftLeedsAppClip/SwiftLeedsAssets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/SwiftLeedsPackage/Sources/Networking/Requests.swift b/SwiftLeedsPackage/Sources/Networking/Requests.swift index d1c5c2c..a8cd248 100644 --- a/SwiftLeedsPackage/Sources/Networking/Requests.swift +++ b/SwiftLeedsPackage/Sources/Networking/Requests.swift @@ -1,7 +1,13 @@ import Foundation public enum Requests { - public static let host = "swiftleeds.co.uk" + public static var host: String { + guard let host = Bundle.main.object(forInfoDictionaryKey: "APIHost") as? String, !host.isEmpty else { + assertionFailure("Missing Info.plist key: APIHost") + return "" + } + return host + } public static let apiVersion1 = "/api/v1" public static let apiVersion2 = "/api/v2" diff --git a/SwiftLeedsPackage/Sources/Settings/SettingsViewModel.swift b/SwiftLeedsPackage/Sources/Settings/SettingsViewModel.swift index dcc680f..832ea23 100644 --- a/SwiftLeedsPackage/Sources/Settings/SettingsViewModel.swift +++ b/SwiftLeedsPackage/Sources/Settings/SettingsViewModel.swift @@ -10,10 +10,26 @@ final class SettingsViewModel: ObservableObject { Bundle.main.infoDictionary?["CFBundleShortVersionString"] as? String ?? "1.0" } + private var contactEmail: String { + guard let email = Bundle.main.object(forInfoDictionaryKey: "ContactEmail") as? String, !email.isEmpty else { + assertionFailure("Missing Info.plist key: ContactEmail") + return "" + } + return email + } + + private var codeOfConductHost: String { + guard let host = Bundle.main.object(forInfoDictionaryKey: "APIHost") as? String, !host.isEmpty else { + assertionFailure("Missing Info.plist key: APIHost") + return "" + } + return host + } + init() { loadCurrentIcon() } - + func changeAppIcon(to iconOption: AppIconOption) { guard UIApplication.shared.supportsAlternateIcons else { showingIconError = true @@ -33,13 +49,13 @@ final class SettingsViewModel: ObservableObject { } func openContactUs() { - if let url = URL(string: "mailto:info@swiftleeds.co.uk") { + if let url = URL(string: "mailto:\(contactEmail)") { UIApplication.shared.open(url) } } - + func openCodeOfConduct() { - if let url = URL(string: "https://swiftleeds.co.uk/conduct") { + if let url = URL(string: "https://\(codeOfConductHost)/conduct") { UIApplication.shared.open(url) } } diff --git a/SwiftLeedsWidget/Info.plist b/SwiftLeedsWidget/Info.plist index 0f118fb..236d9c9 100644 --- a/SwiftLeedsWidget/Info.plist +++ b/SwiftLeedsWidget/Info.plist @@ -2,6 +2,16 @@ + CFBundleDisplayName + $(APP_DISPLAY_NAME) + WidgetKindName + $(WIDGET_KIND_NAME) + APIHost + $(API_HOST) + ContactEmail + $(CONTACT_EMAIL) + AppGroupIdentifier + $(APP_GROUP_IDENTIFIER) NSExtension NSExtensionPointIdentifier diff --git a/SwiftLeedsWidget/Assets.xcassets/WidgetBackground.colorset/Contents.json b/SwiftLeedsWidget/KotlinLeedsAssets.xcassets/AccentColor.colorset/Contents.json similarity index 100% rename from SwiftLeedsWidget/Assets.xcassets/WidgetBackground.colorset/Contents.json rename to SwiftLeedsWidget/KotlinLeedsAssets.xcassets/AccentColor.colorset/Contents.json diff --git a/SwiftLeedsWidget/KotlinLeedsAssets.xcassets/AppIcon.appiconset/AppIcon.png b/SwiftLeedsWidget/KotlinLeedsAssets.xcassets/AppIcon.appiconset/AppIcon.png new file mode 100644 index 0000000..8e728b9 Binary files /dev/null and b/SwiftLeedsWidget/KotlinLeedsAssets.xcassets/AppIcon.appiconset/AppIcon.png differ diff --git a/SwiftLeedsWidget/KotlinLeedsAssets.xcassets/AppIcon.appiconset/Contents.json b/SwiftLeedsWidget/KotlinLeedsAssets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..cefcc87 --- /dev/null +++ b/SwiftLeedsWidget/KotlinLeedsAssets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,14 @@ +{ + "images" : [ + { + "filename" : "AppIcon.png", + "idiom" : "universal", + "platform" : "ios", + "size" : "1024x1024" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/SwiftLeedsWidget/KotlinLeedsAssets.xcassets/Contents.json b/SwiftLeedsWidget/KotlinLeedsAssets.xcassets/Contents.json new file mode 100644 index 0000000..73c0059 --- /dev/null +++ b/SwiftLeedsWidget/KotlinLeedsAssets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/SwiftLeedsWidget/KotlinLeedsAssets.xcassets/WidgetBackground.colorset/Contents.json b/SwiftLeedsWidget/KotlinLeedsAssets.xcassets/WidgetBackground.colorset/Contents.json new file mode 100644 index 0000000..eb87897 --- /dev/null +++ b/SwiftLeedsWidget/KotlinLeedsAssets.xcassets/WidgetBackground.colorset/Contents.json @@ -0,0 +1,11 @@ +{ + "colors" : [ + { + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/SwiftLeedsWidget/SwiftLeedsAssets.xcassets/AccentColor.colorset/Contents.json b/SwiftLeedsWidget/SwiftLeedsAssets.xcassets/AccentColor.colorset/Contents.json new file mode 100644 index 0000000..eb87897 --- /dev/null +++ b/SwiftLeedsWidget/SwiftLeedsAssets.xcassets/AccentColor.colorset/Contents.json @@ -0,0 +1,11 @@ +{ + "colors" : [ + { + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/SwiftLeedsWidget/SwiftLeedsAssets.xcassets/AppIcon.appiconset/AppIcon.png b/SwiftLeedsWidget/SwiftLeedsAssets.xcassets/AppIcon.appiconset/AppIcon.png new file mode 100644 index 0000000..8e728b9 Binary files /dev/null and b/SwiftLeedsWidget/SwiftLeedsAssets.xcassets/AppIcon.appiconset/AppIcon.png differ diff --git a/SwiftLeedsWidget/SwiftLeedsAssets.xcassets/AppIcon.appiconset/Contents.json b/SwiftLeedsWidget/SwiftLeedsAssets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..cefcc87 --- /dev/null +++ b/SwiftLeedsWidget/SwiftLeedsAssets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,14 @@ +{ + "images" : [ + { + "filename" : "AppIcon.png", + "idiom" : "universal", + "platform" : "ios", + "size" : "1024x1024" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/SwiftLeedsWidget/SwiftLeedsAssets.xcassets/Contents.json b/SwiftLeedsWidget/SwiftLeedsAssets.xcassets/Contents.json new file mode 100644 index 0000000..73c0059 --- /dev/null +++ b/SwiftLeedsWidget/SwiftLeedsAssets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/SwiftLeedsWidget/SwiftLeedsAssets.xcassets/WidgetBackground.colorset/Contents.json b/SwiftLeedsWidget/SwiftLeedsAssets.xcassets/WidgetBackground.colorset/Contents.json new file mode 100644 index 0000000..eb87897 --- /dev/null +++ b/SwiftLeedsWidget/SwiftLeedsAssets.xcassets/WidgetBackground.colorset/Contents.json @@ -0,0 +1,11 @@ +{ + "colors" : [ + { + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/SwiftLeedsWidget/SwiftLeedsWidget.swift b/SwiftLeedsWidget/SwiftLeedsWidget.swift index fa1e108..eb9fdad 100644 --- a/SwiftLeedsWidget/SwiftLeedsWidget.swift +++ b/SwiftLeedsWidget/SwiftLeedsWidget.swift @@ -3,13 +3,13 @@ import SwiftUI @main struct SwiftLeedsWidget: Widget { - let kind: String = "SwiftLeedsWidget" + let kind: String = Bundle.main.object(forInfoDictionaryKey: "WidgetKindName") as? String ?? "Widget" var body: some WidgetConfiguration { StaticConfiguration(kind: kind, provider: Provider()) { entry in SwiftLeedsWidgetEntryView(entry: entry) } - .configurationDisplayName("SwiftLeeds What's up next?") + .configurationDisplayName("\(ConferenceConfig.conferenceName) What's up next?") .description("This widget to know what is the next talk on our stage.") .supportedFamilies([.systemSmall, .systemMedium]) } diff --git a/fastlane/Fastfile b/fastlane/Fastfile index 0a558c8..d36a3da 100644 --- a/fastlane/Fastfile +++ b/fastlane/Fastfile @@ -1,24 +1,26 @@ default_platform(:ios) platform :ios do - desc "Build SwiftLeeds scheme" + desc "Build a scheme with a given configuration" lane :build do |options| build_app( project: "SwiftLeeds.xcodeproj", configuration: options[:configuration], - scheme: "SwiftLeeds", + scheme: options[:scheme] || "SwiftLeeds", clean: true, skip_archive: true, skip_codesigning: true, xcargs: "-skipPackagePluginValidation" ) end - + desc "Build SwiftLeeds scheme with Debug Configuration" - lane :build_debug do - build( - configuration: 'Debug', - xcargs: "-skipPackagePluginValidation" - ) + lane :build_swiftleeds do + build(scheme: "SwiftLeeds", configuration: "Debug") + end + + desc "Build KotlinLeeds scheme with Debug Configuration" + lane :build_kotlinleeds do + build(scheme: "KotlinLeeds", configuration: "Debug-KotlinLeeds") end end