diff --git a/Shared/Config/xcconfig/Project-Shared.xcconfig b/Shared/Config/xcconfig/Project-Shared.xcconfig
index bf14418..84d9035 100644
--- a/Shared/Config/xcconfig/Project-Shared.xcconfig
+++ b/Shared/Config/xcconfig/Project-Shared.xcconfig
@@ -5,7 +5,7 @@
// https://buildsettingextractor.com
//
-MARKETING_VERSION = 3.0.0
+MARKETING_VERSION = 3.1.0
ALWAYS_SEARCH_USER_PATHS = NO
CLANG_ANALYZER_NONNULL = YES
@@ -46,6 +46,6 @@ 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.4
+IPHONEOS_DEPLOYMENT_TARGET = 17.0
MTL_FAST_MATH = YES
SDKROOT = iphoneos
diff --git a/Shared/Config/xcconfig/SwiftIslandApp/SwiftIslandApp-Shared.xcconfig b/Shared/Config/xcconfig/SwiftIslandApp/SwiftIslandApp-Shared.xcconfig
index 356871f..3252ab1 100644
--- a/Shared/Config/xcconfig/SwiftIslandApp/SwiftIslandApp-Shared.xcconfig
+++ b/Shared/Config/xcconfig/SwiftIslandApp/SwiftIslandApp-Shared.xcconfig
@@ -25,7 +25,7 @@ INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES
INFOPLIST_KEY_UILaunchScreen_Generation = YES
INFOPLIST_KEY_UISupportedInterfaceOrientations = UIInterfaceOrientationPortrait
INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown
-IPHONEOS_DEPLOYMENT_TARGET = 16.4
+IPHONEOS_DEPLOYMENT_TARGET = 17.0
LD_RUNPATH_SEARCH_PATHS = $(inherited) @executable_path/Frameworks
PRODUCT_BUNDLE_IDENTIFIER = nl.swiftisland.app
PRODUCT_NAME = Swift Island
diff --git a/Shared/Config/xcconfig/SwiftIslandAppTests/SwiftIslandAppTests-Shared.xcconfig b/Shared/Config/xcconfig/SwiftIslandAppTests/SwiftIslandAppTests-Shared.xcconfig
index a4da407..8c003db 100644
--- a/Shared/Config/xcconfig/SwiftIslandAppTests/SwiftIslandAppTests-Shared.xcconfig
+++ b/Shared/Config/xcconfig/SwiftIslandAppTests/SwiftIslandAppTests-Shared.xcconfig
@@ -11,7 +11,7 @@ CODE_SIGN_STYLE = Automatic
CURRENT_PROJECT_VERSION = 1
DEVELOPMENT_TEAM = V38QRBT6X5
GENERATE_INFOPLIST_FILE = YES
-IPHONEOS_DEPLOYMENT_TARGET = 16.4
+IPHONEOS_DEPLOYMENT_TARGET = 17.0
PRODUCT_BUNDLE_IDENTIFIER = se.apptrix.SwiftIslandTests
PRODUCT_NAME = $(TARGET_NAME)
SWIFT_EMIT_LOC_STRINGS = NO
diff --git a/SwiftIslandApp.xcodeproj/project.pbxproj b/SwiftIslandApp.xcodeproj/project.pbxproj
index fd86d0e..dcf393b 100644
--- a/SwiftIslandApp.xcodeproj/project.pbxproj
+++ b/SwiftIslandApp.xcodeproj/project.pbxproj
@@ -1115,7 +1115,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
- IPHONEOS_DEPLOYMENT_TARGET = 16.4;
+ IPHONEOS_DEPLOYMENT_TARGET = 17.0;
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
MTL_FAST_MATH = YES;
ONLY_ACTIVE_ARCH = YES;
@@ -1172,7 +1172,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
- IPHONEOS_DEPLOYMENT_TARGET = 16.4;
+ IPHONEOS_DEPLOYMENT_TARGET = 17.0;
MTL_ENABLE_DEBUG_INFO = NO;
MTL_FAST_MATH = YES;
SDKROOT = iphoneos;
@@ -1207,7 +1207,7 @@
INFOPLIST_KEY_UILaunchScreen_Generation = YES;
INFOPLIST_KEY_UISupportedInterfaceOrientations = UIInterfaceOrientationPortrait;
INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown";
- IPHONEOS_DEPLOYMENT_TARGET = 16.4;
+ IPHONEOS_DEPLOYMENT_TARGET = 17.0;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
@@ -1250,7 +1250,7 @@
INFOPLIST_KEY_UILaunchScreen_Generation = YES;
INFOPLIST_KEY_UISupportedInterfaceOrientations = UIInterfaceOrientationPortrait;
INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown";
- IPHONEOS_DEPLOYMENT_TARGET = 16.4;
+ IPHONEOS_DEPLOYMENT_TARGET = 17.0;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
@@ -1278,7 +1278,7 @@
CURRENT_PROJECT_VERSION = 1;
DEVELOPMENT_TEAM = V38QRBT6X5;
GENERATE_INFOPLIST_FILE = YES;
- IPHONEOS_DEPLOYMENT_TARGET = 16.4;
+ IPHONEOS_DEPLOYMENT_TARGET = 17.0;
MARKETING_VERSION = "${MARKETING_VERSION}";
PRODUCT_BUNDLE_IDENTIFIER = se.apptrix.SwiftIslandTests;
PRODUCT_NAME = "$(TARGET_NAME)";
@@ -1299,7 +1299,7 @@
CURRENT_PROJECT_VERSION = 1;
DEVELOPMENT_TEAM = V38QRBT6X5;
GENERATE_INFOPLIST_FILE = YES;
- IPHONEOS_DEPLOYMENT_TARGET = 16.4;
+ IPHONEOS_DEPLOYMENT_TARGET = 17.0;
MARKETING_VERSION = "${MARKETING_VERSION}";
PRODUCT_BUNDLE_IDENTIFIER = se.apptrix.SwiftIslandTests;
PRODUCT_NAME = "$(TARGET_NAME)";
diff --git a/SwiftIslandApp.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/SwiftIslandApp.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved
index 1ce9294..6be020f 100644
--- a/SwiftIslandApp.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved
+++ b/SwiftIslandApp.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved
@@ -23,8 +23,8 @@
"kind" : "remoteSourceControl",
"location" : "https://github.com/google/app-check.git",
"state" : {
- "revision" : "076b241a625e25eac22f8849be256dfb960fcdfe",
- "version" : "10.19.1"
+ "revision" : "3b62f154d00019ae29a71e9738800bb6f18b236d",
+ "version" : "10.19.2"
}
},
{
@@ -59,8 +59,8 @@
"kind" : "remoteSourceControl",
"location" : "https://github.com/firebase/firebase-ios-sdk.git",
"state" : {
- "revision" : "9d17b500cd98d9a7009751ad62f802e152e97021",
- "version" : "10.26.0"
+ "revision" : "eca84fd638116dd6adb633b5a3f31cc7befcbb7d",
+ "version" : "10.29.0"
}
},
{
@@ -68,8 +68,8 @@
"kind" : "remoteSourceControl",
"location" : "https://github.com/google/GoogleAppMeasurement.git",
"state" : {
- "revision" : "16244d177c4e989f87b25e9db1012b382cfedc55",
- "version" : "10.25.0"
+ "revision" : "fe727587518729046fc1465625b9afd80b5ab361",
+ "version" : "10.28.0"
}
},
{
@@ -104,8 +104,8 @@
"kind" : "remoteSourceControl",
"location" : "https://github.com/google/gtm-session-fetcher.git",
"state" : {
- "revision" : "0382ca27f22fb3494cf657d8dc356dc282cd1193",
- "version" : "3.4.1"
+ "revision" : "a2ab612cb980066ee56d90d60d8462992c07f24b",
+ "version" : "3.5.0"
}
},
{
@@ -158,8 +158,8 @@
"kind" : "remoteSourceControl",
"location" : "https://github.com/apple/swift-argument-parser.git",
"state" : {
- "revision" : "0fbc8848e389af3bb55c182bc19ca9d5dc2f255b",
- "version" : "1.4.0"
+ "revision" : "41982a3656a71c768319979febd796c6fd111d5c",
+ "version" : "1.5.0"
}
},
{
@@ -167,8 +167,8 @@
"kind" : "remoteSourceControl",
"location" : "https://github.com/apple/swift-protobuf.git",
"state" : {
- "revision" : "9f0c76544701845ad98716f3f6a774a892152bcb",
- "version" : "1.26.0"
+ "revision" : "d57a5aecf24a25b32ec4a74be2f5d0a995a47c4b",
+ "version" : "1.27.0"
}
},
{
@@ -212,8 +212,8 @@
"kind" : "remoteSourceControl",
"location" : "https://github.com/jpsim/Yams.git",
"state" : {
- "revision" : "9234124cff5e22e178988c18d8b95a8ae8007f76",
- "version" : "5.1.2"
+ "revision" : "3036ba9d69cf1fd04d433527bc339dc0dc75433d",
+ "version" : "5.1.3"
}
}
],
diff --git a/SwiftIslandApp/Assets.xcassets/Conference/Mentors/AndreyVolodin.imageset/IMG_0353.jpg b/SwiftIslandApp/Assets.xcassets/Conference/Mentors/AndreyVolodin.imageset/IMG_0353.jpg
deleted file mode 100644
index 66b244e..0000000
Binary files a/SwiftIslandApp/Assets.xcassets/Conference/Mentors/AndreyVolodin.imageset/IMG_0353.jpg and /dev/null differ
diff --git a/SwiftIslandApp/Assets.xcassets/Conference/Mentors/JordiBruin.imageset/1685451387216.jpg b/SwiftIslandApp/Assets.xcassets/Conference/Mentors/JordiBruin.imageset/1685451387216.jpg
deleted file mode 100644
index 52047e7..0000000
Binary files a/SwiftIslandApp/Assets.xcassets/Conference/Mentors/JordiBruin.imageset/1685451387216.jpg and /dev/null differ
diff --git a/SwiftIslandApp/Assets.xcassets/Conference/Mentors/MaximCramer.imageset/maxim_.jpg b/SwiftIslandApp/Assets.xcassets/Conference/Mentors/MaximCramer.imageset/maxim_.jpg
deleted file mode 100644
index 62654ac..0000000
Binary files a/SwiftIslandApp/Assets.xcassets/Conference/Mentors/MaximCramer.imageset/maxim_.jpg and /dev/null differ
diff --git a/SwiftIslandApp/Assets.xcassets/Conference/Mentors/NataliyaMarmelstein.imageset/image1.jpg b/SwiftIslandApp/Assets.xcassets/Conference/Mentors/NataliyaMarmelstein.imageset/image1.jpg
deleted file mode 100644
index a2bff27..0000000
Binary files a/SwiftIslandApp/Assets.xcassets/Conference/Mentors/NataliyaMarmelstein.imageset/image1.jpg and /dev/null differ
diff --git a/SwiftIslandApp/Assets.xcassets/Conference/Mentors/SofiaLarsson.imageset/Contents.json b/SwiftIslandApp/Assets.xcassets/Conference/Mentors/SofiaLarsson.imageset/Contents.json
deleted file mode 100644
index fe899b2..0000000
--- a/SwiftIslandApp/Assets.xcassets/Conference/Mentors/SofiaLarsson.imageset/Contents.json
+++ /dev/null
@@ -1,12 +0,0 @@
-{
- "images" : [
- {
- "filename" : "Social Profile Image.jpg",
- "idiom" : "universal"
- }
- ],
- "info" : {
- "author" : "xcode",
- "version" : 1
- }
-}
diff --git a/SwiftIslandApp/Assets.xcassets/Conference/Mentors/SofiaLarsson.imageset/Social Profile Image.jpg b/SwiftIslandApp/Assets.xcassets/Conference/Mentors/SofiaLarsson.imageset/Social Profile Image.jpg
deleted file mode 100644
index 978b778..0000000
Binary files a/SwiftIslandApp/Assets.xcassets/Conference/Mentors/SofiaLarsson.imageset/Social Profile Image.jpg and /dev/null differ
diff --git "a/SwiftIslandApp/Assets.xcassets/Conference/Mentors/Sof\303\255aSwidarowicz.imageset/Contents.json" "b/SwiftIslandApp/Assets.xcassets/Conference/Mentors/Sof\303\255aSwidarowicz.imageset/Contents.json"
deleted file mode 100644
index ac48a0e..0000000
--- "a/SwiftIslandApp/Assets.xcassets/Conference/Mentors/Sof\303\255aSwidarowicz.imageset/Contents.json"
+++ /dev/null
@@ -1,12 +0,0 @@
-{
- "images" : [
- {
- "filename" : "sofia-sw-1.jpg",
- "idiom" : "universal"
- }
- ],
- "info" : {
- "author" : "xcode",
- "version" : 1
- }
-}
diff --git "a/SwiftIslandApp/Assets.xcassets/Conference/Mentors/Sof\303\255aSwidarowicz.imageset/sofia-sw-1.jpg" "b/SwiftIslandApp/Assets.xcassets/Conference/Mentors/Sof\303\255aSwidarowicz.imageset/sofia-sw-1.jpg"
deleted file mode 100644
index f1cb26e..0000000
Binary files "a/SwiftIslandApp/Assets.xcassets/Conference/Mentors/Sof\303\255aSwidarowicz.imageset/sofia-sw-1.jpg" and /dev/null differ
diff --git a/SwiftIslandApp/Assets.xcassets/Conference/Mentors/TomLokhorst.imageset/Tom-1.jpg b/SwiftIslandApp/Assets.xcassets/Conference/Mentors/TomLokhorst.imageset/Tom-1.jpg
deleted file mode 100644
index d38f6c3..0000000
Binary files a/SwiftIslandApp/Assets.xcassets/Conference/Mentors/TomLokhorst.imageset/Tom-1.jpg and /dev/null differ
diff --git a/SwiftIslandApp/Assets.xcassets/Conference/Mentors/VincentPradeilles.imageset/Contents.json b/SwiftIslandApp/Assets.xcassets/Conference/Mentors/VincentPradeilles.imageset/Contents.json
deleted file mode 100644
index ea4fc1c..0000000
--- a/SwiftIslandApp/Assets.xcassets/Conference/Mentors/VincentPradeilles.imageset/Contents.json
+++ /dev/null
@@ -1,12 +0,0 @@
-{
- "images" : [
- {
- "filename" : "output copie.jpg",
- "idiom" : "universal"
- }
- ],
- "info" : {
- "author" : "xcode",
- "version" : 1
- }
-}
diff --git a/SwiftIslandApp/Assets.xcassets/Conference/Mentors/VincentPradeilles.imageset/output copie.jpg b/SwiftIslandApp/Assets.xcassets/Conference/Mentors/VincentPradeilles.imageset/output copie.jpg
deleted file mode 100644
index 211f7ac..0000000
Binary files a/SwiftIslandApp/Assets.xcassets/Conference/Mentors/VincentPradeilles.imageset/output copie.jpg and /dev/null differ
diff --git a/SwiftIslandApp/Assets.xcassets/Conference/Mentors/speaker-audrey-2024.imageset/Contents.json b/SwiftIslandApp/Assets.xcassets/Conference/Mentors/speaker-audrey-2024.imageset/Contents.json
new file mode 100644
index 0000000..0b33bd5
--- /dev/null
+++ b/SwiftIslandApp/Assets.xcassets/Conference/Mentors/speaker-audrey-2024.imageset/Contents.json
@@ -0,0 +1,12 @@
+{
+ "images" : [
+ {
+ "filename" : "speaker-audrey-2024.jpg",
+ "idiom" : "universal"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/SwiftIslandApp/Assets.xcassets/Conference/Mentors/speaker-audrey-2024.imageset/speaker-audrey-2024.jpg b/SwiftIslandApp/Assets.xcassets/Conference/Mentors/speaker-audrey-2024.imageset/speaker-audrey-2024.jpg
new file mode 100644
index 0000000..12ec0de
Binary files /dev/null and b/SwiftIslandApp/Assets.xcassets/Conference/Mentors/speaker-audrey-2024.imageset/speaker-audrey-2024.jpg differ
diff --git a/SwiftIslandApp/Assets.xcassets/Conference/Mentors/speaker-aviel-2024.imageset/Contents.json b/SwiftIslandApp/Assets.xcassets/Conference/Mentors/speaker-aviel-2024.imageset/Contents.json
new file mode 100644
index 0000000..9e09e57
--- /dev/null
+++ b/SwiftIslandApp/Assets.xcassets/Conference/Mentors/speaker-aviel-2024.imageset/Contents.json
@@ -0,0 +1,12 @@
+{
+ "images" : [
+ {
+ "filename" : "speaker-aviel-2024.jpeg",
+ "idiom" : "universal"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/SwiftIslandApp/Assets.xcassets/Conference/Mentors/speaker-aviel-2024.imageset/speaker-aviel-2024.jpeg b/SwiftIslandApp/Assets.xcassets/Conference/Mentors/speaker-aviel-2024.imageset/speaker-aviel-2024.jpeg
new file mode 100644
index 0000000..1f22c6e
Binary files /dev/null and b/SwiftIslandApp/Assets.xcassets/Conference/Mentors/speaker-aviel-2024.imageset/speaker-aviel-2024.jpeg differ
diff --git a/SwiftIslandApp/Assets.xcassets/Conference/Mentors/speaker-francine-2024.imageset/Contents.json b/SwiftIslandApp/Assets.xcassets/Conference/Mentors/speaker-francine-2024.imageset/Contents.json
new file mode 100644
index 0000000..665b160
--- /dev/null
+++ b/SwiftIslandApp/Assets.xcassets/Conference/Mentors/speaker-francine-2024.imageset/Contents.json
@@ -0,0 +1,12 @@
+{
+ "images" : [
+ {
+ "filename" : "speaker-francine-2024.jpg",
+ "idiom" : "universal"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/SwiftIslandApp/Assets.xcassets/Conference/Mentors/speaker-francine-2024.imageset/speaker-francine-2024.jpg b/SwiftIslandApp/Assets.xcassets/Conference/Mentors/speaker-francine-2024.imageset/speaker-francine-2024.jpg
new file mode 100644
index 0000000..fe88cb4
Binary files /dev/null and b/SwiftIslandApp/Assets.xcassets/Conference/Mentors/speaker-francine-2024.imageset/speaker-francine-2024.jpg differ
diff --git a/SwiftIslandApp/Assets.xcassets/Conference/Mentors/speaker-jolanda-2024.imageset/Contents.json b/SwiftIslandApp/Assets.xcassets/Conference/Mentors/speaker-jolanda-2024.imageset/Contents.json
new file mode 100644
index 0000000..234d3ce
--- /dev/null
+++ b/SwiftIslandApp/Assets.xcassets/Conference/Mentors/speaker-jolanda-2024.imageset/Contents.json
@@ -0,0 +1,12 @@
+{
+ "images" : [
+ {
+ "filename" : "speaker-jolanda-2024.jpg",
+ "idiom" : "universal"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/SwiftIslandApp/Assets.xcassets/Conference/Mentors/speaker-jolanda-2024.imageset/speaker-jolanda-2024.jpg b/SwiftIslandApp/Assets.xcassets/Conference/Mentors/speaker-jolanda-2024.imageset/speaker-jolanda-2024.jpg
new file mode 100644
index 0000000..2d83419
Binary files /dev/null and b/SwiftIslandApp/Assets.xcassets/Conference/Mentors/speaker-jolanda-2024.imageset/speaker-jolanda-2024.jpg differ
diff --git a/SwiftIslandApp/Assets.xcassets/Conference/Mentors/NataliyaMarmelstein.imageset/Contents.json b/SwiftIslandApp/Assets.xcassets/Conference/Mentors/speaker-malin-2024.imageset/Contents.json
similarity index 73%
rename from SwiftIslandApp/Assets.xcassets/Conference/Mentors/NataliyaMarmelstein.imageset/Contents.json
rename to SwiftIslandApp/Assets.xcassets/Conference/Mentors/speaker-malin-2024.imageset/Contents.json
index e15bb67..bc97324 100644
--- a/SwiftIslandApp/Assets.xcassets/Conference/Mentors/NataliyaMarmelstein.imageset/Contents.json
+++ b/SwiftIslandApp/Assets.xcassets/Conference/Mentors/speaker-malin-2024.imageset/Contents.json
@@ -1,7 +1,7 @@
{
"images" : [
{
- "filename" : "image1.jpg",
+ "filename" : "speaker-malin-2024.jpg",
"idiom" : "universal"
}
],
diff --git a/SwiftIslandApp/Assets.xcassets/Conference/Mentors/speaker-malin-2024.imageset/speaker-malin-2024.jpg b/SwiftIslandApp/Assets.xcassets/Conference/Mentors/speaker-malin-2024.imageset/speaker-malin-2024.jpg
new file mode 100644
index 0000000..7149a06
Binary files /dev/null and b/SwiftIslandApp/Assets.xcassets/Conference/Mentors/speaker-malin-2024.imageset/speaker-malin-2024.jpg differ
diff --git a/SwiftIslandApp/Assets.xcassets/Conference/Mentors/AndreyVolodin.imageset/Contents.json b/SwiftIslandApp/Assets.xcassets/Conference/Mentors/speaker-manu-2024.imageset/Contents.json
similarity index 73%
rename from SwiftIslandApp/Assets.xcassets/Conference/Mentors/AndreyVolodin.imageset/Contents.json
rename to SwiftIslandApp/Assets.xcassets/Conference/Mentors/speaker-manu-2024.imageset/Contents.json
index b0b1e9c..fa03376 100644
--- a/SwiftIslandApp/Assets.xcassets/Conference/Mentors/AndreyVolodin.imageset/Contents.json
+++ b/SwiftIslandApp/Assets.xcassets/Conference/Mentors/speaker-manu-2024.imageset/Contents.json
@@ -1,7 +1,7 @@
{
"images" : [
{
- "filename" : "IMG_0353.jpg",
+ "filename" : "speaker-manu-2024.png",
"idiom" : "universal"
}
],
diff --git a/SwiftIslandApp/Assets.xcassets/Conference/Mentors/speaker-manu-2024.imageset/speaker-manu-2024.png b/SwiftIslandApp/Assets.xcassets/Conference/Mentors/speaker-manu-2024.imageset/speaker-manu-2024.png
new file mode 100644
index 0000000..b577da5
Binary files /dev/null and b/SwiftIslandApp/Assets.xcassets/Conference/Mentors/speaker-manu-2024.imageset/speaker-manu-2024.png differ
diff --git a/SwiftIslandApp/Assets.xcassets/Conference/Mentors/speaker-mikaela-2024.imageset/Contents.json b/SwiftIslandApp/Assets.xcassets/Conference/Mentors/speaker-mikaela-2024.imageset/Contents.json
new file mode 100644
index 0000000..da9f444
--- /dev/null
+++ b/SwiftIslandApp/Assets.xcassets/Conference/Mentors/speaker-mikaela-2024.imageset/Contents.json
@@ -0,0 +1,12 @@
+{
+ "images" : [
+ {
+ "filename" : "speaker-mikaela-2024.jpg",
+ "idiom" : "universal"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/SwiftIslandApp/Assets.xcassets/Conference/Mentors/speaker-mikaela-2024.imageset/speaker-mikaela-2024.jpg b/SwiftIslandApp/Assets.xcassets/Conference/Mentors/speaker-mikaela-2024.imageset/speaker-mikaela-2024.jpg
new file mode 100644
index 0000000..30837b0
Binary files /dev/null and b/SwiftIslandApp/Assets.xcassets/Conference/Mentors/speaker-mikaela-2024.imageset/speaker-mikaela-2024.jpg differ
diff --git a/SwiftIslandApp/Assets.xcassets/Conference/Mentors/JordiBruin.imageset/Contents.json b/SwiftIslandApp/Assets.xcassets/Conference/Mentors/speaker-nizar-2024.imageset/Contents.json
similarity index 73%
rename from SwiftIslandApp/Assets.xcassets/Conference/Mentors/JordiBruin.imageset/Contents.json
rename to SwiftIslandApp/Assets.xcassets/Conference/Mentors/speaker-nizar-2024.imageset/Contents.json
index 4fd3954..e2c4085 100644
--- a/SwiftIslandApp/Assets.xcassets/Conference/Mentors/JordiBruin.imageset/Contents.json
+++ b/SwiftIslandApp/Assets.xcassets/Conference/Mentors/speaker-nizar-2024.imageset/Contents.json
@@ -1,7 +1,7 @@
{
"images" : [
{
- "filename" : "1685451387216.jpg",
+ "filename" : "speaker-nizar-2024.jpg",
"idiom" : "universal"
}
],
diff --git a/SwiftIslandApp/Assets.xcassets/Conference/Mentors/speaker-nizar-2024.imageset/speaker-nizar-2024.jpg b/SwiftIslandApp/Assets.xcassets/Conference/Mentors/speaker-nizar-2024.imageset/speaker-nizar-2024.jpg
new file mode 100644
index 0000000..4ce4b63
Binary files /dev/null and b/SwiftIslandApp/Assets.xcassets/Conference/Mentors/speaker-nizar-2024.imageset/speaker-nizar-2024.jpg differ
diff --git a/SwiftIslandApp/Assets.xcassets/Conference/Mentors/MaximCramer.imageset/Contents.json b/SwiftIslandApp/Assets.xcassets/Conference/Mentors/speaker-paul-2024.imageset/Contents.json
similarity index 73%
rename from SwiftIslandApp/Assets.xcassets/Conference/Mentors/MaximCramer.imageset/Contents.json
rename to SwiftIslandApp/Assets.xcassets/Conference/Mentors/speaker-paul-2024.imageset/Contents.json
index 9cb6c4f..4177213 100644
--- a/SwiftIslandApp/Assets.xcassets/Conference/Mentors/MaximCramer.imageset/Contents.json
+++ b/SwiftIslandApp/Assets.xcassets/Conference/Mentors/speaker-paul-2024.imageset/Contents.json
@@ -1,7 +1,7 @@
{
"images" : [
{
- "filename" : "maxim_.jpg",
+ "filename" : "speaker-paul-2024.jpg",
"idiom" : "universal"
}
],
diff --git a/SwiftIslandApp/Assets.xcassets/Conference/Mentors/speaker-paul-2024.imageset/speaker-paul-2024.jpg b/SwiftIslandApp/Assets.xcassets/Conference/Mentors/speaker-paul-2024.imageset/speaker-paul-2024.jpg
new file mode 100644
index 0000000..a517f90
Binary files /dev/null and b/SwiftIslandApp/Assets.xcassets/Conference/Mentors/speaker-paul-2024.imageset/speaker-paul-2024.jpg differ
diff --git a/SwiftIslandApp/Assets.xcassets/Conference/Mentors/speaker-zeyad-2024.imageset/Contents.json b/SwiftIslandApp/Assets.xcassets/Conference/Mentors/speaker-zeyad-2024.imageset/Contents.json
new file mode 100644
index 0000000..f7e022e
--- /dev/null
+++ b/SwiftIslandApp/Assets.xcassets/Conference/Mentors/speaker-zeyad-2024.imageset/Contents.json
@@ -0,0 +1,12 @@
+{
+ "images" : [
+ {
+ "filename" : "speaker-zeyad-2024.jpg",
+ "idiom" : "universal"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/SwiftIslandApp/Assets.xcassets/Conference/Mentors/speaker-zeyad-2024.imageset/speaker-zeyad-2024.jpg b/SwiftIslandApp/Assets.xcassets/Conference/Mentors/speaker-zeyad-2024.imageset/speaker-zeyad-2024.jpg
new file mode 100644
index 0000000..9d6d912
Binary files /dev/null and b/SwiftIslandApp/Assets.xcassets/Conference/Mentors/speaker-zeyad-2024.imageset/speaker-zeyad-2024.jpg differ
diff --git a/SwiftIslandApp/Assets.xcassets/Social/Contents.json b/SwiftIslandApp/Assets.xcassets/Social/Contents.json
new file mode 100644
index 0000000..73c0059
--- /dev/null
+++ b/SwiftIslandApp/Assets.xcassets/Social/Contents.json
@@ -0,0 +1,6 @@
+{
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/SwiftIslandApp/Assets.xcassets/Social/X.symbolset/Contents.json b/SwiftIslandApp/Assets.xcassets/Social/X.symbolset/Contents.json
new file mode 100644
index 0000000..69c0499
--- /dev/null
+++ b/SwiftIslandApp/Assets.xcassets/Social/X.symbolset/Contents.json
@@ -0,0 +1,12 @@
+{
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ },
+ "symbols" : [
+ {
+ "filename" : "X Social Network.svg",
+ "idiom" : "universal"
+ }
+ ]
+}
diff --git a/SwiftIslandApp/Assets.xcassets/Social/X.symbolset/X Social Network.svg b/SwiftIslandApp/Assets.xcassets/Social/X.symbolset/X Social Network.svg
new file mode 100644
index 0000000..79d4422
--- /dev/null
+++ b/SwiftIslandApp/Assets.xcassets/Social/X.symbolset/X Social Network.svg
@@ -0,0 +1,90 @@
+
+
+
diff --git a/SwiftIslandApp/Assets.xcassets/Conference/Mentors/TomLokhorst.imageset/Contents.json b/SwiftIslandApp/Assets.xcassets/Social/linkedin.symbolset/Contents.json
similarity index 62%
rename from SwiftIslandApp/Assets.xcassets/Conference/Mentors/TomLokhorst.imageset/Contents.json
rename to SwiftIslandApp/Assets.xcassets/Social/linkedin.symbolset/Contents.json
index a081c15..ef8dc17 100644
--- a/SwiftIslandApp/Assets.xcassets/Conference/Mentors/TomLokhorst.imageset/Contents.json
+++ b/SwiftIslandApp/Assets.xcassets/Social/linkedin.symbolset/Contents.json
@@ -1,12 +1,12 @@
{
- "images" : [
- {
- "filename" : "Tom-1.jpg",
- "idiom" : "universal"
- }
- ],
"info" : {
"author" : "xcode",
"version" : 1
- }
+ },
+ "symbols" : [
+ {
+ "filename" : "linkedin.svg",
+ "idiom" : "universal"
+ }
+ ]
}
diff --git a/SwiftIslandApp/Assets.xcassets/Social/linkedin.symbolset/linkedin.svg b/SwiftIslandApp/Assets.xcassets/Social/linkedin.symbolset/linkedin.svg
new file mode 100644
index 0000000..860c395
--- /dev/null
+++ b/SwiftIslandApp/Assets.xcassets/Social/linkedin.symbolset/linkedin.svg
@@ -0,0 +1,108 @@
+
+
+
+
diff --git a/SwiftIslandApp/Assets.xcassets/Social/mastodon.symbolset/Contents.json b/SwiftIslandApp/Assets.xcassets/Social/mastodon.symbolset/Contents.json
new file mode 100644
index 0000000..d674f08
--- /dev/null
+++ b/SwiftIslandApp/Assets.xcassets/Social/mastodon.symbolset/Contents.json
@@ -0,0 +1,12 @@
+{
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ },
+ "symbols" : [
+ {
+ "filename" : "mastodon.clean.fill.svg",
+ "idiom" : "universal"
+ }
+ ]
+}
diff --git a/SwiftIslandApp/Assets.xcassets/Social/mastodon.symbolset/mastodon.clean.fill.svg b/SwiftIslandApp/Assets.xcassets/Social/mastodon.symbolset/mastodon.clean.fill.svg
new file mode 100644
index 0000000..0f214e4
--- /dev/null
+++ b/SwiftIslandApp/Assets.xcassets/Social/mastodon.symbolset/mastodon.clean.fill.svg
@@ -0,0 +1,200 @@
+
+
+
+
diff --git a/SwiftIslandApp/Pages/Conference/Boxes/ConferenceBoxWeather.swift b/SwiftIslandApp/Pages/Conference/Boxes/ConferenceBoxWeather.swift
index 3417239..8ec2f75 100644
--- a/SwiftIslandApp/Pages/Conference/Boxes/ConferenceBoxWeather.swift
+++ b/SwiftIslandApp/Pages/Conference/Boxes/ConferenceBoxWeather.swift
@@ -15,6 +15,10 @@ struct ConferenceBoxWeather: View {
private let measureFormatter: MeasurementFormatter = {
let formatter = MeasurementFormatter()
formatter.unitStyle = .medium
+
+ let numberFormatter = NumberFormatter()
+ numberFormatter.generatesDecimalNumbers = false
+ formatter.numberFormatter = numberFormatter
return formatter
}()
diff --git a/SwiftIslandApp/Pages/Conference/ConferencePageContentView.swift b/SwiftIslandApp/Pages/Conference/ConferencePageContentView.swift
index 91c87e8..0d6205e 100644
--- a/SwiftIslandApp/Pages/Conference/ConferencePageContentView.swift
+++ b/SwiftIslandApp/Pages/Conference/ConferencePageContentView.swift
@@ -29,12 +29,12 @@ struct ConferencePageContentView: View {
ConferenceBoxTicket()
.padding(.vertical, 6)
-// ConferenceBoxMentors(
-// namespace: namespace,
-// geo: geo,
-// isShowingMentor: $isShowingMentor,
-// mayShowMentorNextMentor: $mayShowMentorNextMentor,
-// selectedMentor: $selectedMentor)
+ ConferenceBoxMentors(
+ namespace: namespace,
+ geo: geo,
+ isShowingMentor: $isShowingMentor,
+ mayShowMentorNextMentor: $mayShowMentorNextMentor,
+ selectedMentor: $selectedMentor)
ConferenceBoxWeather()
@@ -52,12 +52,12 @@ struct ConferencePageContentView: View {
ProgressView()
}
-// ConferenceBoxMentors(
-// namespace: namespace,
-// geo: geo,
-// isShowingMentor: $isShowingMentor,
-// mayShowMentorNextMentor: $mayShowMentorNextMentor,
-// selectedMentor: $selectedMentor)
+ ConferenceBoxMentors(
+ namespace: namespace,
+ geo: geo,
+ isShowingMentor: $isShowingMentor,
+ mayShowMentorNextMentor: $mayShowMentorNextMentor,
+ selectedMentor: $selectedMentor)
ConferenceBoxWeather()
}
diff --git a/SwiftIslandApp/Pages/Conference/Mentors/MentorView.swift b/SwiftIslandApp/Pages/Conference/Mentors/MentorView.swift
index 567db19..1492195 100644
--- a/SwiftIslandApp/Pages/Conference/Mentors/MentorView.swift
+++ b/SwiftIslandApp/Pages/Conference/Mentors/MentorView.swift
@@ -32,7 +32,7 @@ struct MentorView: View {
.border(Color(.sRGB, red: 150 / 255, green: 150 / 255, blue: 150 / 255, opacity: 0.1), width: isShowContent ? 0 : 1)
.cornerRadius(15)
.overlay(
- MentorExcerptView(namespace: namespace, headline: "\(mentor.name)", isShowContent: $isShowContent)
+ MentorExcerptView(namespace: namespace, mentor: mentor, isShowContent: $isShowContent)
.cornerRadius(isShowContent ? 0 : 15)
.offset(CGSize(width: 0, height: !isShowContent ? 10 : 0))
.matchedGeometryEffect(id: "\(mentor.id)-mentorExcerptView", in: namespace)
@@ -84,26 +84,42 @@ struct MentorView: View {
}
}
-struct MentorView_Previews: PreviewProvider {
- @Namespace static var namespace
+extension URL: Identifiable {
+ public var id: String {
+ absoluteString
+ }
+}
- static var previews: some View {
- let mentor = Mentor.forPreview()
+#Preview("No content") {
+ @Namespace var namespace
+ let mentor = Mentor.forPreview()
- Group {
- MentorView(namespace: namespace, mentor: mentor, isShowContent: .constant(false))
- .previewDisplayName("No content")
- MentorView(namespace: namespace, mentor: mentor, isShowContent: .constant(true))
- .coordinateSpace(name: "Show content")
- }
+ return MentorView(namespace: namespace, mentor: mentor, isShowContent: .constant(false))
+ .previewDisplayName("No content")
+
+ return Group {
+
+ MentorView(namespace: namespace, mentor: mentor, isShowContent: .constant(true))
+ .coordinateSpace(name: "Show content")
+ .ignoresSafeArea()
}
}
+#Preview("Show content") {
+ @Namespace var namespace
+ let mentor = Mentor.forPreview()
+
+ return MentorView(namespace: namespace, mentor: mentor, isShowContent: .constant(true))
+ .coordinateSpace(name: "Show content")
+ .ignoresSafeArea()
+}
+
struct MentorExcerptView: View {
var namespace: Namespace.ID
- let headline: String
+ let mentor: Mentor
@Binding var isShowContent: Bool
+ @State private var showUrl: URL?
var body: some View {
VStack(alignment: .leading) {
@@ -114,23 +130,66 @@ struct MentorExcerptView: View {
.background(isShowContent ? Color.background : .clear)
.overlay(
HStack {
- VStack(alignment: .leading) {
- Text(headline)
- .font(.title2)
- .fontWeight(isShowContent ? .bold : .light)
- .foregroundColor(.primary)
- .minimumScaleFactor(0.1)
- .lineLimit(2)
- .padding(.bottom, isShowContent ? 5 : 0)
- .matchedGeometryEffect(id: "\(headline)-headline", in: namespace)
- }
- .padding(.horizontal)
- .padding(.bottom)
-
+ Text(mentor.name)
+ .font(.title2)
+ .fontWeight(isShowContent ? .bold : .light)
+ .foregroundColor(.primary)
+ .minimumScaleFactor(0.1)
+ .lineLimit(2)
+ .padding(.bottom, isShowContent ? 5 : 0)
Spacer()
+ HStack {
+ if isShowContent {
+ Spacer()
+ if let web = mentor.webUrl {
+ Button(action: {
+ showUrl = web
+ }, label: {
+ Image("web")
+ })
+ .buttonStyle(.plain)
+ .padding(0)
+ .foregroundColor(.red)
+ }
+ if let mastodon = mentor.mastodonUrl {
+ Button(action: {
+ showUrl = mastodon
+ }, label: {
+ Image("mastodon")
+ })
+ .buttonStyle(.plain)
+ }
+ if let linkedin = mentor.linkedInUrl {
+ Button(action: {
+ showUrl = linkedin
+ }, label: {
+ Image("linkedin")
+ })
+ .buttonStyle(.plain)
+ }
+ if let twitter = mentor.twitterUrl {
+ Button(action: {
+ showUrl = twitter
+ }, label: {
+ Image("x")
+ })
+ .buttonStyle(.plain)
+ .padding(0)
+ }
+ }
+ }
+ .foregroundColor(.primary)
}
- )
+ .matchedGeometryEffect(id: "\(mentor.name)-headline", in: namespace)
+ .padding(.horizontal)
+ )
}
.foregroundColor(.clear)
+ .sheet(item: $showUrl) {
+ showUrl = nil
+ } content: { url in
+ SafariWebView(url: url)
+ .ignoresSafeArea()
+ }
}
}
diff --git a/SwiftIslandApp/Pages/Practical/Tickets/TicketAddButton.swift b/SwiftIslandApp/Pages/Practical/Tickets/TicketAddButton.swift
index 2e69def..fd3d82e 100644
--- a/SwiftIslandApp/Pages/Practical/Tickets/TicketAddButton.swift
+++ b/SwiftIslandApp/Pages/Practical/Tickets/TicketAddButton.swift
@@ -29,6 +29,9 @@ struct TicketAddButton: View {
return
}
var path = url.pathComponents
+ if (path.last == "settings") {
+ let _ = path.popLast()
+ }
let slug = path.popLast()
guard let slug = slug, path.last == "tickets" else {
presentFailedPasteAlert = true
diff --git a/SwiftIslandDataLogic/Package.swift b/SwiftIslandDataLogic/Package.swift
index b643129..30d2e65 100644
--- a/SwiftIslandDataLogic/Package.swift
+++ b/SwiftIslandDataLogic/Package.swift
@@ -1,11 +1,11 @@
-// swift-tools-version: 5.7.1
+// swift-tools-version: 5.9
// The swift-tools-version declares the minimum version of Swift required to build this package.
import PackageDescription
let package = Package(
name: "SwiftIslandDataLogic",
- platforms: [.iOS(.v16)],
+ platforms: [.iOS(.v17)],
products: [
.library(
name: "SwiftIslandDataLogic",
diff --git a/SwiftIslandDataLogic/Sources/SwiftIslandDataLogic/Entities/Mentor.swift b/SwiftIslandDataLogic/Sources/SwiftIslandDataLogic/Entities/Mentor.swift
index 75ea5d5..cba185e 100644
--- a/SwiftIslandDataLogic/Sources/SwiftIslandDataLogic/Entities/Mentor.swift
+++ b/SwiftIslandDataLogic/Sources/SwiftIslandDataLogic/Entities/Mentor.swift
@@ -9,10 +9,31 @@ public struct Mentor: Response {
public let description: String
public let imageName: String
public let name: String
- public let twitter: URL?
- public let web: URL?
- public let linkedIn: URL?
+ public let twitter: String?
+ public let web: String?
+ public let linkedIn: String?
+ public let mastodon: String?
public let order: Int
+
+ public var twitterUrl: URL? {
+ guard let twitter else { return nil }
+ return URL(string: "https://twitter.com/\(twitter)")
+ }
+
+ public var webUrl: URL? {
+ guard let web else { return nil }
+ return URL(string: web)
+ }
+
+ public var linkedInUrl: URL? {
+ guard let linkedIn else { return nil }
+ return URL(string: "https://linkedin.com/in/\(linkedIn)")
+ }
+
+ public var mastodonUrl: URL? {
+ guard let mastodon else { return nil }
+ return URL(string: mastodon)
+ }
}
extension Mentor: Identifiable {
@@ -21,12 +42,13 @@ extension Mentor: Identifiable {
extension Mentor {
public static func forPreview(description: String = "Lorem ipsum dolor sit amet, **consectetur adipiscing elit**. _Proin vitae cursus_ lectus. Mauris feugiat ipsum sed vulputate gravida. Nunc a risus ac odio consequat ornare nec sit amet arcu. In laoreet elit egestas sem ornare, at maximus sem maximus. Nulla molestie suscipit mollis. Cras gravida pellentesque mattis. Etiam at nisl lorem. Nullam viverra non arcu eget elementum. Nullam a velit laoreet, luctus risus at, dapibus dolor. Aliquam nec euismod augue, id lacinia nulla.",
- imageName: String = ["JordiBruin", "AndreyVolodin", "MaximCramer"].randomElement()!,
- name: String = "John Appleseed",
- twitter: URL? = nil,
- web: URL? = nil,
- linkedIn: URL? = nil,
- order: Int = 0) -> Mentor {
+ imageName: String = ["speaker-paul-2024", "speaker-manu-2024", "speaker-malin-2024"].randomElement()!,
+ name: String = "John Appleseed",
+ twitter: String? = ["ppeelen", "x"].randomElement(),
+ web: String? = "https://www.swiftisland.nl",
+ linkedIn: String? = "ppeelen",
+ mastodon: String? = nil,
+ order: Int = 0) -> Mentor {
Mentor(
description: description,
imageName: imageName,
@@ -34,6 +56,7 @@ extension Mentor {
twitter: twitter,
web: web,
linkedIn: linkedIn,
+ mastodon: mastodon,
order: order
)
}