Initial commit

This commit is contained in:
15lu.akari
2025-08-24 14:44:50 +03:00
parent dca1ae410b
commit 5a583d9415
50 changed files with 2019 additions and 17 deletions

View File

@ -14,6 +14,33 @@
628A47742E5A91DA0099CAA0 /* WhiteNightsTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 628A47732E5A91DA0099CAA0 /* WhiteNightsTests.swift */; };
628A477E2E5A91DA0099CAA0 /* WhiteNightsUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 628A477D2E5A91DA0099CAA0 /* WhiteNightsUITests.swift */; };
628A47802E5A91DA0099CAA0 /* WhiteNightsUITestsLaunchTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 628A477F2E5A91DA0099CAA0 /* WhiteNightsUITestsLaunchTests.swift */; };
628A478D2E5A922A0099CAA0 /* WeatherView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 628A478C2E5A922A0099CAA0 /* WeatherView.swift */; };
628A47902E5A92560099CAA0 /* RouteView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 628A478F2E5A92560099CAA0 /* RouteView.swift */; };
628A47922E5A926A0099CAA0 /* SightView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 628A47912E5A926A0099CAA0 /* SightView.swift */; };
628A47962E5A92CF0099CAA0 /* Color+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 628A47952E5A92CF0099CAA0 /* Color+Extensions.swift */; };
628A47982E5A92FC0099CAA0 /* View+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 628A47972E5A92FC0099CAA0 /* View+Extensions.swift */; };
628A479B2E5A935E0099CAA0 /* WeaherModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 628A479A2E5A935E0099CAA0 /* WeaherModel.swift */; };
628A479D2E5A94D30099CAA0 /* SightModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 628A479C2E5A94D30099CAA0 /* SightModel.swift */; };
628A479F2E5A94EB0099CAA0 /* Article.swift in Sources */ = {isa = PBXBuildFile; fileRef = 628A479E2E5A94EB0099CAA0 /* Article.swift */; };
628A47A12E5A94FA0099CAA0 /* ArticleMedia.swift in Sources */ = {isa = PBXBuildFile; fileRef = 628A47A02E5A94FA0099CAA0 /* ArticleMedia.swift */; };
628A47A32E5A951B0099CAA0 /* SightViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 628A47A22E5A951B0099CAA0 /* SightViewModel.swift */; };
628A47A52E5A957A0099CAA0 /* MarqueeText.swift in Sources */ = {isa = PBXBuildFile; fileRef = 628A47A42E5A957A0099CAA0 /* MarqueeText.swift */; };
628A47A72E5A95F60099CAA0 /* Station.swift in Sources */ = {isa = PBXBuildFile; fileRef = 628A47A62E5A95F60099CAA0 /* Station.swift */; };
628A47A92E5A961D0099CAA0 /* View+CornerRadius.swift in Sources */ = {isa = PBXBuildFile; fileRef = 628A47A82E5A961D0099CAA0 /* View+CornerRadius.swift */; };
628A47AB2E5A96480099CAA0 /* AppState.swift in Sources */ = {isa = PBXBuildFile; fileRef = 628A47AA2E5A96480099CAA0 /* AppState.swift */; };
628A47AD2E5A965D0099CAA0 /* BottomMenu.swift in Sources */ = {isa = PBXBuildFile; fileRef = 628A47AC2E5A965D0099CAA0 /* BottomMenu.swift */; };
628A47B02E5A96AC0099CAA0 /* SDWebImageSVGCoder in Frameworks */ = {isa = PBXBuildFile; productRef = 628A47AF2E5A96AC0099CAA0 /* SDWebImageSVGCoder */; };
628A47B32E5A96B80099CAA0 /* SDWebImageSwiftUI in Frameworks */ = {isa = PBXBuildFile; productRef = 628A47B22E5A96B80099CAA0 /* SDWebImageSwiftUI */; };
628A47B62E5A96D00099CAA0 /* SVGKit in Frameworks */ = {isa = PBXBuildFile; productRef = 628A47B52E5A96D00099CAA0 /* SVGKit */; };
628A47B82E5A96D00099CAA0 /* SVGKitSwift in Frameworks */ = {isa = PBXBuildFile; productRef = 628A47B72E5A96D00099CAA0 /* SVGKitSwift */; };
628A47BB2E5A96E80099CAA0 /* Nuke in Frameworks */ = {isa = PBXBuildFile; productRef = 628A47BA2E5A96E80099CAA0 /* Nuke */; };
628A47BD2E5A96E80099CAA0 /* NukeExtensions in Frameworks */ = {isa = PBXBuildFile; productRef = 628A47BC2E5A96E80099CAA0 /* NukeExtensions */; };
628A47BF2E5A96E80099CAA0 /* NukeUI in Frameworks */ = {isa = PBXBuildFile; productRef = 628A47BE2E5A96E80099CAA0 /* NukeUI */; };
628A47C12E5A96E80099CAA0 /* NukeVideo in Frameworks */ = {isa = PBXBuildFile; productRef = 628A47C02E5A96E80099CAA0 /* NukeVideo */; };
628A47C32E5A98980099CAA0 /* Route.swift in Sources */ = {isa = PBXBuildFile; fileRef = 628A47C22E5A98980099CAA0 /* Route.swift */; };
628A47C72E5A99A20099CAA0 /* VisualEffectBlur.swift in Sources */ = {isa = PBXBuildFile; fileRef = 628A47C62E5A99A20099CAA0 /* VisualEffectBlur.swift */; };
628A47C92E5A9A970099CAA0 /* StopModels.swift in Sources */ = {isa = PBXBuildFile; fileRef = 628A47C82E5A9A970099CAA0 /* StopModels.swift */; };
628A47CB2E5A9BD60099CAA0 /* RouteSelectionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 628A47CA2E5A9BD60099CAA0 /* RouteSelectionView.swift */; };
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
@ -45,6 +72,25 @@
628A47792E5A91DA0099CAA0 /* WhiteNightsUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = WhiteNightsUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
628A477D2E5A91DA0099CAA0 /* WhiteNightsUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WhiteNightsUITests.swift; sourceTree = "<group>"; };
628A477F2E5A91DA0099CAA0 /* WhiteNightsUITestsLaunchTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WhiteNightsUITestsLaunchTests.swift; sourceTree = "<group>"; };
628A478C2E5A922A0099CAA0 /* WeatherView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WeatherView.swift; sourceTree = "<group>"; };
628A478F2E5A92560099CAA0 /* RouteView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RouteView.swift; sourceTree = "<group>"; };
628A47912E5A926A0099CAA0 /* SightView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SightView.swift; sourceTree = "<group>"; };
628A47952E5A92CF0099CAA0 /* Color+Extensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Color+Extensions.swift"; sourceTree = "<group>"; };
628A47972E5A92FC0099CAA0 /* View+Extensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "View+Extensions.swift"; sourceTree = "<group>"; };
628A479A2E5A935E0099CAA0 /* WeaherModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WeaherModel.swift; sourceTree = "<group>"; };
628A479C2E5A94D30099CAA0 /* SightModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SightModel.swift; sourceTree = "<group>"; };
628A479E2E5A94EB0099CAA0 /* Article.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Article.swift; sourceTree = "<group>"; };
628A47A02E5A94FA0099CAA0 /* ArticleMedia.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ArticleMedia.swift; sourceTree = "<group>"; };
628A47A22E5A951B0099CAA0 /* SightViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SightViewModel.swift; sourceTree = "<group>"; };
628A47A42E5A957A0099CAA0 /* MarqueeText.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MarqueeText.swift; sourceTree = "<group>"; };
628A47A62E5A95F60099CAA0 /* Station.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Station.swift; sourceTree = "<group>"; };
628A47A82E5A961D0099CAA0 /* View+CornerRadius.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "View+CornerRadius.swift"; sourceTree = "<group>"; };
628A47AA2E5A96480099CAA0 /* AppState.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppState.swift; sourceTree = "<group>"; };
628A47AC2E5A965D0099CAA0 /* BottomMenu.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BottomMenu.swift; sourceTree = "<group>"; };
628A47C22E5A98980099CAA0 /* Route.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Route.swift; sourceTree = "<group>"; };
628A47C62E5A99A20099CAA0 /* VisualEffectBlur.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VisualEffectBlur.swift; sourceTree = "<group>"; };
628A47C82E5A9A970099CAA0 /* StopModels.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StopModels.swift; sourceTree = "<group>"; };
628A47CA2E5A9BD60099CAA0 /* RouteSelectionView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RouteSelectionView.swift; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
@ -52,6 +98,14 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
628A47B82E5A96D00099CAA0 /* SVGKitSwift in Frameworks */,
628A47BF2E5A96E80099CAA0 /* NukeUI in Frameworks */,
628A47B62E5A96D00099CAA0 /* SVGKit in Frameworks */,
628A47C12E5A96E80099CAA0 /* NukeVideo in Frameworks */,
628A47B32E5A96B80099CAA0 /* SDWebImageSwiftUI in Frameworks */,
628A47B02E5A96AC0099CAA0 /* SDWebImageSVGCoder in Frameworks */,
628A47BB2E5A96E80099CAA0 /* Nuke in Frameworks */,
628A47BD2E5A96E80099CAA0 /* NukeExtensions in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@ -95,11 +149,15 @@
628A47602E5A91D80099CAA0 /* WhiteNights */ = {
isa = PBXGroup;
children = (
628A47992E5A934A0099CAA0 /* Models */,
628A47942E5A92BE0099CAA0 /* Utils */,
628A478E2E5A923E0099CAA0 /* Widgets */,
628A47612E5A91D80099CAA0 /* WhiteNightsApp.swift */,
628A47632E5A91D80099CAA0 /* ContentView.swift */,
628A47652E5A91DA0099CAA0 /* Assets.xcassets */,
628A47672E5A91DA0099CAA0 /* WhiteNights.entitlements */,
628A47682E5A91DA0099CAA0 /* Preview Content */,
628A47AA2E5A96480099CAA0 /* AppState.swift */,
);
path = WhiteNights;
sourceTree = "<group>";
@ -129,6 +187,45 @@
path = WhiteNightsUITests;
sourceTree = "<group>";
};
628A478E2E5A923E0099CAA0 /* Widgets */ = {
isa = PBXGroup;
children = (
628A478C2E5A922A0099CAA0 /* WeatherView.swift */,
628A478F2E5A92560099CAA0 /* RouteView.swift */,
628A47912E5A926A0099CAA0 /* SightView.swift */,
628A47A22E5A951B0099CAA0 /* SightViewModel.swift */,
628A47AC2E5A965D0099CAA0 /* BottomMenu.swift */,
628A47C62E5A99A20099CAA0 /* VisualEffectBlur.swift */,
628A47CA2E5A9BD60099CAA0 /* RouteSelectionView.swift */,
);
path = Widgets;
sourceTree = "<group>";
};
628A47942E5A92BE0099CAA0 /* Utils */ = {
isa = PBXGroup;
children = (
628A47952E5A92CF0099CAA0 /* Color+Extensions.swift */,
628A47972E5A92FC0099CAA0 /* View+Extensions.swift */,
628A47A42E5A957A0099CAA0 /* MarqueeText.swift */,
628A47A82E5A961D0099CAA0 /* View+CornerRadius.swift */,
);
path = Utils;
sourceTree = "<group>";
};
628A47992E5A934A0099CAA0 /* Models */ = {
isa = PBXGroup;
children = (
628A479A2E5A935E0099CAA0 /* WeaherModel.swift */,
628A479C2E5A94D30099CAA0 /* SightModel.swift */,
628A479E2E5A94EB0099CAA0 /* Article.swift */,
628A47A02E5A94FA0099CAA0 /* ArticleMedia.swift */,
628A47A62E5A95F60099CAA0 /* Station.swift */,
628A47C22E5A98980099CAA0 /* Route.swift */,
628A47C82E5A9A970099CAA0 /* StopModels.swift */,
);
path = Models;
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
@ -145,6 +242,16 @@
dependencies = (
);
name = WhiteNights;
packageProductDependencies = (
628A47AF2E5A96AC0099CAA0 /* SDWebImageSVGCoder */,
628A47B22E5A96B80099CAA0 /* SDWebImageSwiftUI */,
628A47B52E5A96D00099CAA0 /* SVGKit */,
628A47B72E5A96D00099CAA0 /* SVGKitSwift */,
628A47BA2E5A96E80099CAA0 /* Nuke */,
628A47BC2E5A96E80099CAA0 /* NukeExtensions */,
628A47BE2E5A96E80099CAA0 /* NukeUI */,
628A47C02E5A96E80099CAA0 /* NukeVideo */,
);
productName = WhiteNights;
productReference = 628A475E2E5A91D80099CAA0 /* WhiteNights.app */;
productType = "com.apple.product-type.application";
@ -217,6 +324,12 @@
Base,
);
mainGroup = 628A47552E5A91D80099CAA0;
packageReferences = (
628A47AE2E5A96AC0099CAA0 /* XCRemoteSwiftPackageReference "SDWebImageSVGCoder" */,
628A47B12E5A96B80099CAA0 /* XCRemoteSwiftPackageReference "SDWebImageSwiftUI" */,
628A47B42E5A96D00099CAA0 /* XCRemoteSwiftPackageReference "SVGKit" */,
628A47B92E5A96E80099CAA0 /* XCRemoteSwiftPackageReference "Nuke" */,
);
productRefGroup = 628A475F2E5A91D80099CAA0 /* Products */;
projectDirPath = "";
projectRoot = "";
@ -259,8 +372,27 @@
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
628A47902E5A92560099CAA0 /* RouteView.swift in Sources */,
628A479B2E5A935E0099CAA0 /* WeaherModel.swift in Sources */,
628A479D2E5A94D30099CAA0 /* SightModel.swift in Sources */,
628A478D2E5A922A0099CAA0 /* WeatherView.swift in Sources */,
628A47C72E5A99A20099CAA0 /* VisualEffectBlur.swift in Sources */,
628A479F2E5A94EB0099CAA0 /* Article.swift in Sources */,
628A47922E5A926A0099CAA0 /* SightView.swift in Sources */,
628A47A72E5A95F60099CAA0 /* Station.swift in Sources */,
628A47A32E5A951B0099CAA0 /* SightViewModel.swift in Sources */,
628A47C92E5A9A970099CAA0 /* StopModels.swift in Sources */,
628A47982E5A92FC0099CAA0 /* View+Extensions.swift in Sources */,
628A47C32E5A98980099CAA0 /* Route.swift in Sources */,
628A47A92E5A961D0099CAA0 /* View+CornerRadius.swift in Sources */,
628A47CB2E5A9BD60099CAA0 /* RouteSelectionView.swift in Sources */,
628A47642E5A91D80099CAA0 /* ContentView.swift in Sources */,
628A47AB2E5A96480099CAA0 /* AppState.swift in Sources */,
628A47622E5A91D80099CAA0 /* WhiteNightsApp.swift in Sources */,
628A47AD2E5A965D0099CAA0 /* BottomMenu.swift in Sources */,
628A47962E5A92CF0099CAA0 /* Color+Extensions.swift in Sources */,
628A47A12E5A94FA0099CAA0 /* ArticleMedia.swift in Sources */,
628A47A52E5A957A0099CAA0 /* MarqueeText.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@ -617,6 +749,84 @@
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */
/* Begin XCRemoteSwiftPackageReference section */
628A47AE2E5A96AC0099CAA0 /* XCRemoteSwiftPackageReference "SDWebImageSVGCoder" */ = {
isa = XCRemoteSwiftPackageReference;
repositoryURL = "https://github.com/SDWebImage/SDWebImageSVGCoder.git";
requirement = {
kind = upToNextMajorVersion;
minimumVersion = 1.8.0;
};
};
628A47B12E5A96B80099CAA0 /* XCRemoteSwiftPackageReference "SDWebImageSwiftUI" */ = {
isa = XCRemoteSwiftPackageReference;
repositoryURL = "https://github.com/SDWebImage/SDWebImageSwiftUI.git";
requirement = {
kind = upToNextMajorVersion;
minimumVersion = 3.1.3;
};
};
628A47B42E5A96D00099CAA0 /* XCRemoteSwiftPackageReference "SVGKit" */ = {
isa = XCRemoteSwiftPackageReference;
repositoryURL = "https://github.com/SVGKit/SVGKit.git";
requirement = {
kind = upToNextMajorVersion;
minimumVersion = 3.0.0;
};
};
628A47B92E5A96E80099CAA0 /* XCRemoteSwiftPackageReference "Nuke" */ = {
isa = XCRemoteSwiftPackageReference;
repositoryURL = "https://github.com/kean/Nuke.git";
requirement = {
kind = upToNextMajorVersion;
minimumVersion = 12.8.0;
};
};
/* End XCRemoteSwiftPackageReference section */
/* Begin XCSwiftPackageProductDependency section */
628A47AF2E5A96AC0099CAA0 /* SDWebImageSVGCoder */ = {
isa = XCSwiftPackageProductDependency;
package = 628A47AE2E5A96AC0099CAA0 /* XCRemoteSwiftPackageReference "SDWebImageSVGCoder" */;
productName = SDWebImageSVGCoder;
};
628A47B22E5A96B80099CAA0 /* SDWebImageSwiftUI */ = {
isa = XCSwiftPackageProductDependency;
package = 628A47B12E5A96B80099CAA0 /* XCRemoteSwiftPackageReference "SDWebImageSwiftUI" */;
productName = SDWebImageSwiftUI;
};
628A47B52E5A96D00099CAA0 /* SVGKit */ = {
isa = XCSwiftPackageProductDependency;
package = 628A47B42E5A96D00099CAA0 /* XCRemoteSwiftPackageReference "SVGKit" */;
productName = SVGKit;
};
628A47B72E5A96D00099CAA0 /* SVGKitSwift */ = {
isa = XCSwiftPackageProductDependency;
package = 628A47B42E5A96D00099CAA0 /* XCRemoteSwiftPackageReference "SVGKit" */;
productName = SVGKitSwift;
};
628A47BA2E5A96E80099CAA0 /* Nuke */ = {
isa = XCSwiftPackageProductDependency;
package = 628A47B92E5A96E80099CAA0 /* XCRemoteSwiftPackageReference "Nuke" */;
productName = Nuke;
};
628A47BC2E5A96E80099CAA0 /* NukeExtensions */ = {
isa = XCSwiftPackageProductDependency;
package = 628A47B92E5A96E80099CAA0 /* XCRemoteSwiftPackageReference "Nuke" */;
productName = NukeExtensions;
};
628A47BE2E5A96E80099CAA0 /* NukeUI */ = {
isa = XCSwiftPackageProductDependency;
package = 628A47B92E5A96E80099CAA0 /* XCRemoteSwiftPackageReference "Nuke" */;
productName = NukeUI;
};
628A47C02E5A96E80099CAA0 /* NukeVideo */ = {
isa = XCSwiftPackageProductDependency;
package = 628A47B92E5A96E80099CAA0 /* XCRemoteSwiftPackageReference "Nuke" */;
productName = NukeVideo;
};
/* End XCSwiftPackageProductDependency section */
};
rootObject = 628A47562E5A91D80099CAA0 /* Project object */;
}