Commit 6ea6fb52 by Demid Merzlyakov

New model objects and assets.

parent 4b7269bf
......@@ -44,6 +44,17 @@
CDE18DD825D16CB200C80ED9 /* NavigationCityButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = CDE18DD725D16CB200C80ED9 /* NavigationCityButton.swift */; };
CDEE8AD725DA882200C289DE /* PeriodForecastButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = CDEE8AD625DA882200C289DE /* PeriodForecastButton.swift */; };
CEAD00A12577B2D5003596AD /* StuffThatIsPresentInTheMainProject.swift in Sources */ = {isa = PBXBuildFile; fileRef = CEAD00A02577B2D5003596AD /* StuffThatIsPresentInTheMainProject.swift */; };
CEAFF08325DFC67F00DF4EBF /* Location.swift in Sources */ = {isa = PBXBuildFile; fileRef = CEAFF08225DFC67F00DF4EBF /* Location.swift */; };
CEAFF08925DFC6B200DF4EBF /* CurrentWeather.swift in Sources */ = {isa = PBXBuildFile; fileRef = CEAFF08825DFC6B200DF4EBF /* CurrentWeather.swift */; };
CEAFF08C25DFC6BD00DF4EBF /* DailyWeather.swift in Sources */ = {isa = PBXBuildFile; fileRef = CEAFF08B25DFC6BC00DF4EBF /* DailyWeather.swift */; };
CEAFF08F25DFC6ED00DF4EBF /* HourlyWeather.swift in Sources */ = {isa = PBXBuildFile; fileRef = CEAFF08E25DFC6ED00DF4EBF /* HourlyWeather.swift */; };
CEAFF09225DFC71D00DF4EBF /* HelperTypes.swift in Sources */ = {isa = PBXBuildFile; fileRef = CEAFF09125DFC71D00DF4EBF /* HelperTypes.swift */; };
CEAFF09C25DFC79F00DF4EBF /* WdtWeatherCode.swift in Sources */ = {isa = PBXBuildFile; fileRef = CEAFF09B25DFC79F00DF4EBF /* WdtWeatherCode.swift */; };
CEAFF0A325E0FF0800DF4EBF /* LocationManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = CEAFF0A225E0FF0800DF4EBF /* LocationManager.swift */; };
CEC526FA25E7959A00DA58A5 /* WeatherSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = CEC526F925E7959A00DA58A5 /* WeatherSource.swift */; };
CEC526FD25E795F700DA58A5 /* WdtWeatherSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = CEC526FC25E795F700DA58A5 /* WdtWeatherSource.swift */; };
CEC5270025E7BACB00DA58A5 /* WdtLocation.swift in Sources */ = {isa = PBXBuildFile; fileRef = CEC526FF25E7BACB00DA58A5 /* WdtLocation.swift */; };
CEC5270325E7BB4000DA58A5 /* WdtSurfaceObservation.swift in Sources */ = {isa = PBXBuildFile; fileRef = CEC5270225E7BB4000DA58A5 /* WdtSurfaceObservation.swift */; };
/* End PBXBuildFile section */
/* Begin PBXFileReference section */
......@@ -88,6 +99,17 @@
CDE18DD725D16CB200C80ED9 /* NavigationCityButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NavigationCityButton.swift; sourceTree = "<group>"; };
CDEE8AD625DA882200C289DE /* PeriodForecastButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PeriodForecastButton.swift; sourceTree = "<group>"; };
CEAD00A02577B2D5003596AD /* StuffThatIsPresentInTheMainProject.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StuffThatIsPresentInTheMainProject.swift; sourceTree = "<group>"; };
CEAFF08225DFC67F00DF4EBF /* Location.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Location.swift; sourceTree = "<group>"; };
CEAFF08825DFC6B200DF4EBF /* CurrentWeather.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CurrentWeather.swift; sourceTree = "<group>"; };
CEAFF08B25DFC6BC00DF4EBF /* DailyWeather.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DailyWeather.swift; sourceTree = "<group>"; };
CEAFF08E25DFC6ED00DF4EBF /* HourlyWeather.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HourlyWeather.swift; sourceTree = "<group>"; };
CEAFF09125DFC71D00DF4EBF /* HelperTypes.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HelperTypes.swift; sourceTree = "<group>"; };
CEAFF09B25DFC79F00DF4EBF /* WdtWeatherCode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WdtWeatherCode.swift; sourceTree = "<group>"; };
CEAFF0A225E0FF0800DF4EBF /* LocationManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LocationManager.swift; sourceTree = "<group>"; };
CEC526F925E7959A00DA58A5 /* WeatherSource.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WeatherSource.swift; sourceTree = "<group>"; };
CEC526FC25E795F700DA58A5 /* WdtWeatherSource.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WdtWeatherSource.swift; sourceTree = "<group>"; };
CEC526FF25E7BACB00DA58A5 /* WdtLocation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WdtLocation.swift; sourceTree = "<group>"; };
CEC5270225E7BB4000DA58A5 /* WdtSurfaceObservation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WdtSurfaceObservation.swift; sourceTree = "<group>"; };
DF826CF4702D9DCCB9A9DD71 /* Pods-1Weather.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-1Weather.release.xcconfig"; path = "Target Support Files/Pods-1Weather/Pods-1Weather.release.xcconfig"; sourceTree = "<group>"; };
/* End PBXFileReference section */
......@@ -133,8 +155,9 @@
CD1237C1255D5C5900C98139 /* 1Weather */ = {
isa = PBXGroup;
children = (
CEAFF09925DFC78200DF4EBF /* Network */,
CEAFF08125DFC66F00DF4EBF /* Model */,
CD1237DA255D5DFA00C98139 /* PG.playground */,
CDD75F1325DE76A40099ACDB /* Common */,
CD17C5F925D15B5500EE884E /* Coordinators */,
CDD0F1DC2572400200CF5017 /* UI */,
CD1237EF255D838600C98139 /* Extensions */,
......@@ -279,13 +302,6 @@
path = Helpers;
sourceTree = "<group>";
};
CDD75F1325DE76A40099ACDB /* Common */ = {
isa = PBXGroup;
children = (
);
path = Common;
sourceTree = "<group>";
};
CDE18DCF25D166DD00C80ED9 /* Forecast */ = {
isa = PBXGroup;
children = (
......@@ -303,6 +319,47 @@
path = CityForecastTimePeriod;
sourceTree = "<group>";
};
CEAFF08125DFC66F00DF4EBF /* Model */ = {
isa = PBXGroup;
children = (
CEAFF0A025E0FEF100DF4EBF /* ModelObjects */,
CEAFF0A225E0FF0800DF4EBF /* LocationManager.swift */,
);
path = Model;
sourceTree = "<group>";
};
CEAFF09925DFC78200DF4EBF /* Network */ = {
isa = PBXGroup;
children = (
CEAFF09A25DFC79100DF4EBF /* Model */,
CEC526F925E7959A00DA58A5 /* WeatherSource.swift */,
CEC526FC25E795F700DA58A5 /* WdtWeatherSource.swift */,
);
path = Network;
sourceTree = "<group>";
};
CEAFF09A25DFC79100DF4EBF /* Model */ = {
isa = PBXGroup;
children = (
CEAFF09B25DFC79F00DF4EBF /* WdtWeatherCode.swift */,
CEC526FF25E7BACB00DA58A5 /* WdtLocation.swift */,
CEC5270225E7BB4000DA58A5 /* WdtSurfaceObservation.swift */,
);
path = Model;
sourceTree = "<group>";
};
CEAFF0A025E0FEF100DF4EBF /* ModelObjects */ = {
isa = PBXGroup;
children = (
CEAFF08225DFC67F00DF4EBF /* Location.swift */,
CEAFF08825DFC6B200DF4EBF /* CurrentWeather.swift */,
CEAFF08B25DFC6BC00DF4EBF /* DailyWeather.swift */,
CEAFF08E25DFC6ED00DF4EBF /* HourlyWeather.swift */,
CEAFF09125DFC71D00DF4EBF /* HelperTypes.swift */,
);
path = ModelObjects;
sourceTree = "<group>";
};
DBFD169AA2AA6A3CB5B68BB5 /* Frameworks */ = {
isa = PBXGroup;
children = (
......@@ -426,6 +483,12 @@
buildActionMask = 2147483647;
files = (
CD82300325D69DE400A05501 /* CityConditionsCell.swift in Sources */,
CEC526FD25E795F700DA58A5 /* WdtWeatherSource.swift in Sources */,
CEAFF09225DFC71D00DF4EBF /* HelperTypes.swift in Sources */,
CEAFF09C25DFC79F00DF4EBF /* WdtWeatherCode.swift in Sources */,
CEAFF08925DFC6B200DF4EBF /* CurrentWeather.swift in Sources */,
CEC5270325E7BB4000DA58A5 /* WdtSurfaceObservation.swift in Sources */,
CEAFF08C25DFC6BD00DF4EBF /* DailyWeather.swift in Sources */,
CDD0F1E82572429E00CF5017 /* AppFont.swift in Sources */,
CD17C5FB25D15B6B00EE884E /* AppCoordinator.swift in Sources */,
CD15DB3D25DA6C5100024727 /* ForecastTimePeriodControl.swift in Sources */,
......@@ -437,6 +500,7 @@
CD6B304325726AD1004B34B3 /* DefaultTheme.swift in Sources */,
CD9B6B1425DBCDE2001D9B80 /* GraphView.swift in Sources */,
CD39F2EE25DE858D009FE398 /* NotificationName+Localization.swift in Sources */,
CEAFF08F25DFC6ED00DF4EBF /* HourlyWeather.swift in Sources */,
CDE18DD825D16CB200C80ED9 /* NavigationCityButton.swift in Sources */,
CD17C60225D15C8500EE884E /* CoordinatorProtocol.swift in Sources */,
CD17C5FF25D15B7C00EE884E /* TodayCoordinator.swift in Sources */,
......@@ -449,13 +513,17 @@
CD6B303E25726960004B34B3 /* ThemeProtocol.swift in Sources */,
CD6B303B2572680C004B34B3 /* SelfSizingButton.swift in Sources */,
CD9B6B1125DBC723001D9B80 /* CubicCurveAlgorithm.swift in Sources */,
CEC5270025E7BACB00DA58A5 /* WdtLocation.swift in Sources */,
CD15DB4225DA806C00024727 /* CityForecastTimePeriodCell.swift in Sources */,
CDE18DCA25D165F100C80ED9 /* UITabBarController+Append.swift in Sources */,
CEC526FA25E7959A00DA58A5 /* WeatherSource.swift in Sources */,
CD822FFE25D6976F00A05501 /* TodayAdCell.swift in Sources */,
CDE18DCD25D1666700C80ED9 /* ForecastCoordinator.swift in Sources */,
CD80917B2578E4A8003541A4 /* UIViewController+Alert.swift in Sources */,
CD17C5F625D15B4400EE884E /* TodayViewController.swift in Sources */,
CEAFF08325DFC67F00DF4EBF /* Location.swift in Sources */,
CD82300725D6A73F00A05501 /* CityConditionButton.swift in Sources */,
CEAFF0A325E0FF0800DF4EBF /* LocationManager.swift in Sources */,
CEAD00A12577B2D5003596AD /* StuffThatIsPresentInTheMainProject.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
......
//
// LocationManager.swift
// 1Weather
//
// Created by Demid Merzlyakov on 20.02.2021.
//
import Foundation
class LocationManager {
}
//
// CurrentWeather.swift
// 1Weather
//
// Created by Demid Merzlyakov on 19.02.2021.
//
import Foundation
public struct CurrentWeather {
public var date: String // since it depends on the local time, it's easier to store it as a string.
public var weekDay: WeekDay
public var type: WeatherType = .unknown
public var minTemp: Temperature?
public var maxTemp: Temperature?
public var windSpeed: WindSpeed?
public var windDirection: WindDirection?
public var precipitationProbability: Percent?
public var temp: Temperature?
public var apparentTemp: Temperature?
public var humidity: Percent?
public var Visibility: Visibility?
public var pressure: Pressure?
public var sunrise: Time?
public var sunset: Time?
public var sunState: CelestialState = .normal
public var moonrise: Time?
public var moonset: Time?
public var moonState: CelestialState = .normal
}
//
// DailyWeather.swift
// 1Weather
//
// Created by Demid Merzlyakov on 19.02.2021.
//
import Foundation
public struct DailyWeather {
public var date: String // since it depends on the local time, it's easier to store it as a string.
public var weekDay: WeekDay
public var type: WeatherType = .unknown
public var minTemp: Temperature?
public var maxTemp: Temperature?
public var windSpeed: WindSpeed?
public var windDirection: WindDirection?
public var precipitationProbability: Percent?
public var sunrise: Time?
public var sunset: Time?
public var sunState: CelestialState = .normal
public var moonrise: Time?
public var moonset: Time?
public var moonState: CelestialState = .normal
}
//
// WindDirection.swift
// 1Weather
//
// Created by Demid Merzlyakov on 19.02.2021.
//
import Foundation
public enum WeatherType: String {
case clearDay = "clearDay"
case partlyCloudyDay = "partlyCloudyDay"
case snowyDay = "snowyDay"
case snowyNight = "snowyNight"
case clearNight = "clearNight"
case partlyCloudyNight = "partlyCloudyNight"
case thunderstorm = "thunderstorm"
case heavySnow = "heavySnow"
case lightSnow = "lightSnow"
case freezingRain = "freezingRain"
case freezingFog = "freezingFog"
case lightHail = "lightHail"
case blowingDust = "blowingDust"
case haze = "haze"
case lightFog = "lightFog"
case mostlyCloudyDay = "mostlyCloudyDay"
case mostlyCloudyNight = "mostlyCloudyNight"
case lightDrizzle = "lightDrizzle"
case heavyRain = "heavyRain"
case smoke = "smoke"
case unknown = "unknown"
}
public enum WindDirection: String {
case north = "N"
case northNorthEast = "NNE"
case northEast = "NE"
case eastNorthEast = "ENE"
case east = "E"
case eastSouthEast = "ESE"
case southEast = "SE"
case southSouthEast = "SSE"
case south = "S"
case southSouthWest = "SSW"
case southWest = "SW"
case westSouthWest = "WSW"
case west = "W"
case westNorthWest = "WNW"
case northWest = "NW"
case northNorthWest = "NNW"
}
/// Not everybody uses a 7 day week, but not a lot of people.
public enum WeekDay: Int {
case monday
case tuesday
case wednesday
case thursday
case friday
case saturday
case sunday
}
public enum CelestialState {
case normal
case alwaysUp
case neverUp
}
public struct Time: CustomStringConvertible {
public let hours: UInt8
public let minutes: UInt8
public var description: String {
var amOrPm = "am"
var convertedHours = hours
if convertedHours > 12 {
amOrPm = "pm"
convertedHours -= 12
}
if convertedHours == 0 {
convertedHours = 12
}
return "\(String(format: "%02d", convertedHours)):\(minutes) \(amOrPm)"
}
}
public typealias Temperature = Measurement<UnitTemperature>
public typealias WindSpeed = Measurement<UnitSpeed>
public typealias Percent = UInt
public typealias Visibility = Measurement<UnitLength>
public typealias Pressure = Measurement<UnitPressure>
//
// HourlyWeather.swift
// 1Weather
//
// Created by Demid Merzlyakov on 19.02.2021.
//
import Foundation
public struct HourlyWeather {
public var date: String // since it depends on the local time, it's easier to store it as a string.
public var weekDay: WeekDay
public var type: WeatherType = .unknown
public var minTemp: Temperature?
public var maxTemp: Temperature?
public var windSpeed: WindSpeed?
public var windDirection: WindDirection?
public var precipitationProbability: Percent?
public var humidity: Percent?
}
//
// Location.swift
// 1Weather
//
// Created by Demid Merzlyakov on 19.02.2021.
//
import Foundation
import CoreLocation
public struct Location {
public var coordinates: CLLocation?
public var imageName = "ny_bridge" //we'll possibly need to switch to URL
public var countryCode: String?
public var countryName: String?
public var region: String? // also, state
public var cityName: String?
public var nickname: String? // nickname given to this location by the user
public var fipsCode: String?
public var today: CurrentWeather?
public var daily: [DailyWeather] = [DailyWeather]()
public var hourly: [HourlyWeather] = [HourlyWeather]()
}
//
// WdtLocation.swift
// 1Weather
//
// Created by Demid Merzlyakov on 25.02.2021.
//
import Foundation
public struct WdtLocation: Codable {
public private (set) var lat: String?
public private (set) var lon: String?
public private (set) var city: String?
public private (set) var region: String?
public private (set) var country: String?
public private (set) var zipcode: String?
public var sfc_ob: WdtSurfaceObservation
public var
}
//
// WdtSurfaceObservation.swift
// 1Weather
//
// Created by Demid Merzlyakov on 25.02.2021.
//
import Foundation
public struct WdtSurfaceObservation: Codable {
}
//
// WdtWeatherCode.swift
// 1Weather
//
// Created by Demid Merzlyakov on 19.02.2021.
//
import Foundation
public enum WdtWeatherCode: String, Codable {
// "ic_static_smoke"
case smoke = "3"
// "ic_static_hazy"
case haze = "5"
// "ic_static_sandstorm"
case blowingDust = "7"
case duststorm = "31"
case severeDuststorm = "34"
// "ic_static_fog"
case lightFog = "10"
case patchyFog = "41"
case fog = "45"
// "ic_static_snow_moderate"
case squall = "18"
case driftingSnow = "36"
case blowingSnow = "38"
// "ic_static_ice_fog"
case freezingFog = "49"
// "ic_static_mild_rain"
case lightDrizzle = "51"
case drizzle = "53"
case heavyDrizzle = "55"
case lightRain = "61"
case lightRainShower = "80"
// "ic_static_freezing_rain"
case freezingDrizzle = "57"
case lightFreezingRain = "66"
case lightRainAndSnow = "68"
case rainAndSnow = "69"
case lightRainAndSnowShower = "83"
case rainAndSnowShower = "84"
case freezingRain = "67"
case sleet = "79"
// "ic_static_moderate_rain"
case rain = "63"
case rainShower = "81"
// "ic_static_heavy_rain"
case heavyRain = "65"
// "ic_static_snow_flurry"
case lightSnow = "71"
case lightSnowShower = "85"
// "ic_static_snow_moderate"
case snow = "73"
case snowShower = "86"
// "ic_static_snowstorm"
case heavySnow = "75"
// "ic_static_hail"
case lightHail = "89"
case hail = "90"
// "ic_static_severe_thunderstorms"
case thunderstorm = "95"
case heavyThunderstorm = "97"
// isDay ? "ic_static_sunny" : "ic_static_clear_night"
case clear = "100"
// isDay ? "ic_static_partly_cloudy" : "ic_static_partly_cloudy_night"
case mostlyClear = "101"
case partlyCloudy = "102"
// isDay ? "ic_static_heavy_cloudy" : "ic_static_heavy_cloudy_night"
case mostlyCloudy = "103"
case overcast = "104"
// "ic_static_no_report"
}
//
// WdtWeatherSource.swift
// 1Weather
//
// Created by Demid Merzlyakov on 25.02.2021.
//
import Foundation
public class WdtWeatherSource: WeatherSource {
static let updateUrl =
public func updateWeather(for location: Location, completion: (Location) -> ()) {
}
}
//
// WeatherSource.swift
// 1Weather
//
// Created by Demid Merzlyakov on 25.02.2021.
//
import Foundation
public typealias WeatherSourceCompletion = (Location) -> ()
public protocol WeatherSource {
func updateWeather(for location: Location, completion: WeatherSourceCompletion)
}
{
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"filename" : "blowingDust.png",
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "blowingDust@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "blowingDust@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"filename" : "clearDay.png",
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "clearDay@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "clearDay@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"filename" : "clearNight.png",
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "clearNight@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "clearNight@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"filename" : "freezingFog.png",
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "freezingFog@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "freezingFog@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"filename" : "freezingRain.png",
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "freezingRain@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "freezingRain@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"filename" : "haze.png",
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "haze@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "haze@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"filename" : "heavyRain.png",
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "heavyRain@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "heavyRain@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"filename" : "heavySnow.png",
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "heavySnow@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "heavySnow@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"filename" : "lightDrizzle.png",
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "lightDrizzle@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "lightDrizzle@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"filename" : "lightFog.png",
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "lightFog@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "lightFog@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"filename" : "lightHail.png",
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "lightHail@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "lightHail@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"filename" : "lightSnow.png",
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "lightSnow@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "lightSnow@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"filename" : "mostlyCloudyDay.png",
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "mostlyCloudyDay@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "mostlyCloudyDay@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"filename" : "mostlyCloudyNight.png",
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "mostlyCloudyNight@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "mostlyCloudyNight@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"filename" : "partlyCloudyDay.png",
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "partlyCloudyDay@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "partlyCloudyDay@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"filename" : "partlyCloudyNight.png",
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "partlyCloudyNight@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "partlyCloudyNight@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"filename" : "smoke.png",
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "smoke@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "smoke@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"filename" : "snowyDay.png",
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "snowyDay@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "snowyDay@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"filename" : "snowyNight.png",
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "snowyNight@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "snowyNight@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"filename" : "thunderstorm.png",
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "thunderstorm@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "thunderstorm@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"filename" : "unknown.png",
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "unknown@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "unknown@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment