Skip to content

Commit 8be68b1

Browse files
Move FeatureFlags into a local package
1 parent db0df5d commit 8be68b1

File tree

8 files changed

+51
-17
lines changed

8 files changed

+51
-17
lines changed

Alidade.xcworkspace/contents.xcworkspacedata

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

FeatureFlags/.gitignore

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
.DS_Store
2+
/.build
3+
/Packages
4+
xcuserdata/
5+
DerivedData/
6+
.swiftpm/configuration/registries.json
7+
.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata
8+
.netrc

FeatureFlags/Package.swift

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
// swift-tools-version: 6.0
2+
// The swift-tools-version declares the minimum version of Swift required to build this package.
3+
4+
import PackageDescription
5+
6+
let package = Package(
7+
name: "FeatureFlags",
8+
products: [
9+
// Products define the executables and libraries a package produces, making them visible to other packages.
10+
.library(
11+
name: "FeatureFlags",
12+
targets: ["FeatureFlags"]
13+
),
14+
],
15+
targets: [
16+
// Targets are the basic building blocks of a package, defining a module or a test suite.
17+
// Targets can depend on other targets in this package and products from dependencies.
18+
.target(
19+
name: "FeatureFlags"
20+
),
21+
.testTarget(
22+
name: "FeatureFlagsTests",
23+
dependencies: ["FeatureFlags"]
24+
),
25+
]
26+
)

MCMaps/Shared/Feature Flags/FeatureFlagPropertyWrapper.swift renamed to FeatureFlags/Sources/FeatureFlags/FeatureFlagPropertyWrapper.swift

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,22 +9,22 @@ import SwiftUI
99

1010
/// A property wrapper used to retrieve and store feature flag values in user defaults.
1111
@propertyWrapper
12-
struct FeatureFlagged {
12+
public struct FeatureFlagged {
1313
/// The feature flag being read from or written to.
14-
var flag: FeatureFlag
14+
public var flag: FeatureFlag
1515

1616
/// The user defaults storage to interact with. Defaults to the standard user defaults.
17-
var store: UserDefaults = .standard
17+
public var store: UserDefaults = .standard
1818

19-
var wrappedValue: Bool {
19+
public var wrappedValue: Bool {
2020
get { store.bool(forFeatureFlag: flag) }
2121
set { store.setValue(newValue, forFeatureFlag: flag) }
2222
}
2323

2424
/// Create a feature flagged value.
2525
/// - Parameter flag: The flag to read from and/or write to.
2626
/// - Parameter store: The user defaults storage to interact with. Defaults to the standard user defaults.
27-
init(_ flag: FeatureFlag, store: UserDefaults = .standard) {
27+
public init(_ flag: FeatureFlag, store: UserDefaults = .standard) {
2828
self.flag = flag
2929
self.store = store
3030
}

MCMaps/Shared/Feature Flags/FeatureFlags.swift renamed to FeatureFlags/Sources/FeatureFlags/FeatureFlags.swift

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,15 +20,14 @@ import Foundation
2020
/// @FeatureFlagged(.redWindow) private var useRedWindowDesign
2121
/// }
2222
/// ```
23-
enum FeatureFlag {
24-
}
23+
public enum FeatureFlag {}
2524

2625
extension FeatureFlag {
2726
/// The name of the key as stored in User Defaults.
2827
///
2928
/// This should also correspond to the key used in the app's Settings bundle, whenever applicable.
3029
var keyName: String {
31-
""
30+
"noflag"
3231
}
3332

3433
/// Whether the flag is enabled by default.
@@ -37,7 +36,7 @@ extension FeatureFlag {
3736
}
3837
}
3938

40-
extension UserDefaults {
39+
public extension UserDefaults {
4140
/// Retrieve the flag value for a specified feature flag, or the default value if it isn't already set.
4241
/// - Parameter flag: The flag to retrieve the value of.
4342
func bool(forFeatureFlag flag: FeatureFlag) -> Bool {

MCMapsTests/FeatureFlagTests.swift renamed to FeatureFlags/Tests/FeatureFlagsTests/FeatureFlagsTests.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
import Foundation
99
import Testing
1010

11-
@testable import Alidade
11+
@testable import FeatureFlags
1212

1313
struct FeatureFlagTests {
1414
@Test(.disabled("No new feature flags"))

MCMaps.xcodeproj/xcuserdata/marquis.xcuserdatad/xcschemes/xcschememanagement.plist

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,17 +7,17 @@
77
<key>Alidade (Debugging).xcscheme_^#shared#^_</key>
88
<dict>
99
<key>orderHint</key>
10-
<integer>1</integer>
10+
<integer>2</integer>
1111
</dict>
1212
<key>Alidade (Red Window).xcscheme_^#shared#^_</key>
1313
<dict>
1414
<key>orderHint</key>
15-
<integer>2</integer>
15+
<integer>3</integer>
1616
</dict>
1717
<key>Alidade (Red Window, Debugging).xcscheme</key>
1818
<dict>
1919
<key>orderHint</key>
20-
<integer>3</integer>
20+
<integer>4</integer>
2121
</dict>
2222
<key>Alidade.xcscheme_^#shared#^_</key>
2323
<dict>
@@ -27,12 +27,12 @@
2727
<key>Sanity Tests (Red Window).xcscheme_^#shared#^_</key>
2828
<dict>
2929
<key>orderHint</key>
30-
<integer>6</integer>
30+
<integer>7</integer>
3131
</dict>
3232
<key>Sanity Tests.xcscheme_^#shared#^_</key>
3333
<dict>
3434
<key>orderHint</key>
35-
<integer>5</integer>
35+
<integer>6</integer>
3636
</dict>
3737
</dict>
3838
<key>SuppressBuildableAutocreation</key>

MCMaps/Red Window/Views/Search/RedWindowSearchView.swift

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -149,8 +149,6 @@ struct RedWindowSearchView: View {
149149
}
150150

151151
private func biomesAndStructures(result: CartographySearchService.SearchResult) -> some View {
152-
let currentLoc = redWindowEnvironment.mapCenterCoordinate
153-
154152
return Section {
155153
ForEach(result.biomes) { biome in
156154
RedWindowSearchLandmarkResultCell(

0 commit comments

Comments
 (0)