Procházet zdrojové kódy

Merge pull request #225 from bjornoleh/iAPS_prediction_colours

Use iAPS colours for COB, IOB, UAM and ZT, refactor colouring
Marion Barker před 2 roky
rodič
revize
14cc1d87fa
21 změnil soubory, kde provedl 736 přidání a 51 odebrání
  1. 1 1
      LoopFollow/Controllers/NightScout.swift
  2. 54 50
      LoopFollow/Controllers/Nightscout/DeviceStatus.swift
  3. 38 0
      LoopFollow/Resources/Assets.xcassets/Colors/Basal.colorset/Contents.json
  4. 6 0
      LoopFollow/Resources/Assets.xcassets/Colors/Contents.json
  5. 38 0
      LoopFollow/Resources/Assets.xcassets/Colors/DarkerBlue.colorset/Contents.json
  6. 38 0
      LoopFollow/Resources/Assets.xcassets/Colors/Insulin.colorset/Contents.json
  7. 38 0
      LoopFollow/Resources/Assets.xcassets/Colors/Lemon.colorset/Contents.json
  8. 38 0
      LoopFollow/Resources/Assets.xcassets/Colors/LoopGray.colorset/Contents.json
  9. 38 0
      LoopFollow/Resources/Assets.xcassets/Colors/LoopGreen.colorset/Contents.json
  10. 38 0
      LoopFollow/Resources/Assets.xcassets/Colors/LoopPink.colorset/Contents.json
  11. 38 0
      LoopFollow/Resources/Assets.xcassets/Colors/LoopRed.colorset/Contents.json
  12. 38 0
      LoopFollow/Resources/Assets.xcassets/Colors/LoopYellow.colorset/Contents.json
  13. 38 0
      LoopFollow/Resources/Assets.xcassets/Colors/ManualTempBasal.colorset/Contents.json
  14. 38 0
      LoopFollow/Resources/Assets.xcassets/Colors/NonPumpInsulin.colorset/Contents.json
  15. 38 0
      LoopFollow/Resources/Assets.xcassets/Colors/SMB.colorset/Contents.json
  16. 38 0
      LoopFollow/Resources/Assets.xcassets/Colors/TempBasal.colorset/Contents.json
  17. 38 0
      LoopFollow/Resources/Assets.xcassets/Colors/UAM.colorset/Contents.json
  18. 38 0
      LoopFollow/Resources/Assets.xcassets/Colors/ZT.colorset/Contents.json
  19. 34 0
      LoopFollow/Resources/Assets.xcassets/Colors/darkGray.colorset/Contents.json
  20. 38 0
      LoopFollow/Resources/Assets.xcassets/Colors/minus.colorset/Contents.json
  21. 33 0
      LoopFollow/Resources/Assets.xcassets/Colors/warning.colorset/Contents.json

+ 1 - 1
LoopFollow/Controllers/NightScout.swift

@@ -130,4 +130,4 @@ extension MainViewController {
         noteGraphData.removeAll()
         noteGraphData.removeAll()
         updateNotes()
         updateNotes()
     }
     }
-}
+}

+ 54 - 50
LoopFollow/Controllers/Nightscout/DeviceStatus.swift

@@ -219,60 +219,64 @@ extension MainViewController {
                     var graphtype = ""
                     var graphtype = ""
                     var predictioncolor = UIColor.systemGray
                     var predictioncolor = UIColor.systemGray
                     PredictionLabel.textColor = predictioncolor
                     PredictionLabel.textColor = predictioncolor
-                    if let enactdata = lastLoopRecord["enacted"] as? [String:AnyObject] {
-                        if let predbgdata = enactdata["predBGs"] as? [String:AnyObject] {
-                            if predbgdata["COB"] != nil {
-                                graphtype="COB"
-                                predictioncolor = UIColor.systemYellow
-                                PredictionLabel.textColor = predictioncolor
-                            }
-                            else if predbgdata["UAM"] != nil {
-                                graphtype="UAM"
-                                predictioncolor = UIColor.systemOrange
-                                PredictionLabel.textColor = predictioncolor
-                            }
-                            else if predbgdata["IOB"] != nil {
-                                graphtype="IOB"
-                                predictioncolor = UIColor.systemBlue
-                                PredictionLabel.textColor = predictioncolor
-                            }
-                            else {
-                                graphtype="ZT"
-                                predictioncolor = UIColor.systemGreen
-                                PredictionLabel.textColor = predictioncolor
-                            }
-                            
-                            let graphdata = predbgdata[graphtype] as! [Double]
-                            
-                            if let eventualdata = lastLoopRecord["enacted"] as? [String:AnyObject] {
-                                if let eventualBGValue = eventualdata["eventualBG"] as? NSNumber {
-                                    let eventualBGStringValue = String(describing: eventualBGValue)
-                                    PredictionLabel.text = bgUnits.toDisplayUnits(eventualBGStringValue)
-                                }
+
+                    if let enactdata = lastLoopRecord["enacted"] as? [String:AnyObject],
+                       let predbgdata = enactdata["predBGs"] as? [String:AnyObject] {
+
+                        if predbgdata["COB"] != nil {
+                            graphtype = "COB"
+                        } else if predbgdata["UAM"] != nil {
+                            graphtype = "UAM"
+                        } else if predbgdata["IOB"] != nil {
+                            graphtype = "IOB"
+                        } else {
+                            graphtype = "ZT"
+                        }
+
+                        // Access the color based on graphtype
+                        var colorName = ""
+                        switch graphtype {
+                        case "COB": colorName = "LoopYellow"
+                        case "UAM": colorName = "UAM"
+                        case "IOB": colorName = "Insulin"
+                        case "ZT": colorName = "ZT"
+                        default: break
+                        }
+
+                        if let selectedColor = UIColor(named: colorName) {
+                            predictioncolor = selectedColor
+                            PredictionLabel.textColor = predictioncolor
+                        }
+
+                        let graphdata = predbgdata[graphtype] as! [Double]
+
+                        if let eventualdata = lastLoopRecord["enacted"] as? [String:AnyObject] {
+                            if let eventualBGValue = eventualdata["eventualBG"] as? NSNumber {
+                                let eventualBGStringValue = String(describing: eventualBGValue)
+                                PredictionLabel.text = bgUnits.toDisplayUnits(eventualBGStringValue)
                             }
                             }
-                            
-                            if UserDefaultsRepository.downloadPrediction.value && latestLoopTime < lastLoopTime {
-                                predictionData.removeAll()
-                                var predictionTime = lastLoopTime
-                                let toLoad = Int(UserDefaultsRepository.predictionToLoad.value * 12)
-                                var i = 0
-                                while i <= toLoad {
-                                    if i < graphdata.count {
-                                        let prediction = ShareGlucoseData(sgv: Int(round(graphdata[i])), date: predictionTime, direction: "flat")
-                                        predictionData.append(prediction)
-                                        predictionTime += 300
-                                    }
-                                    i += 1
+                        }
+
+                        if UserDefaultsRepository.downloadPrediction.value && latestLoopTime < lastLoopTime {
+                            predictionData.removeAll()
+                            var predictionTime = lastLoopTime
+                            let toLoad = Int(UserDefaultsRepository.predictionToLoad.value * 12)
+                            var i = 0
+                            while i <= toLoad {
+                                if i < graphdata.count {
+                                    let prediction = ShareGlucoseData(sgv: Int(round(graphdata[i])), date: predictionTime, direction: "flat")
+                                    predictionData.append(prediction)
+                                    predictionTime += 300
                                 }
                                 }
-                                
+                                i += 1
                             }
                             }
-                            
-                            let predMin = graphdata.min()
-                            let predMax = graphdata.max()
-                            tableData[9].value = bgUnits.toDisplayUnits(String(predMin!)) + "/" + bgUnits.toDisplayUnits(String(predMax!))
-                            
-                            updatePredictionGraph(color: predictioncolor)
                         }
                         }
+
+                        let predMin = graphdata.min()
+                        let predMax = graphdata.max()
+                        tableData[9].value = bgUnits.toDisplayUnits(String(predMin!)) + "/" + bgUnits.toDisplayUnits(String(predMax!))
+
+                        updatePredictionGraph(color: predictioncolor)
                     }
                     }
                     
                     
                     if let loopStatus = lastLoopRecord["recommendedTempBasal"] as? [String:AnyObject] {
                     if let loopStatus = lastLoopRecord["recommendedTempBasal"] as? [String:AnyObject] {

+ 38 - 0
LoopFollow/Resources/Assets.xcassets/Colors/Basal.colorset/Contents.json

@@ -0,0 +1,38 @@
+{
+  "colors" : [
+    {
+      "color" : {
+        "color-space" : "srgb",
+        "components" : {
+          "alpha" : "0.500",
+          "blue" : "0.988",
+          "green" : "0.588",
+          "red" : "0.118"
+        }
+      },
+      "idiom" : "universal"
+    },
+    {
+      "appearances" : [
+        {
+          "appearance" : "luminosity",
+          "value" : "dark"
+        }
+      ],
+      "color" : {
+        "color-space" : "srgb",
+        "components" : {
+          "alpha" : "0.500",
+          "blue" : "0.988",
+          "green" : "0.588",
+          "red" : "0.118"
+        }
+      },
+      "idiom" : "universal"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

+ 6 - 0
LoopFollow/Resources/Assets.xcassets/Colors/Contents.json

@@ -0,0 +1,6 @@
+{
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

+ 38 - 0
LoopFollow/Resources/Assets.xcassets/Colors/DarkerBlue.colorset/Contents.json

@@ -0,0 +1,38 @@
+{
+  "colors" : [
+    {
+      "color" : {
+        "color-space" : "srgb",
+        "components" : {
+          "alpha" : "1.000",
+          "blue" : "1.000",
+          "green" : "0.288",
+          "red" : "0.118"
+        }
+      },
+      "idiom" : "universal"
+    },
+    {
+      "appearances" : [
+        {
+          "appearance" : "luminosity",
+          "value" : "dark"
+        }
+      ],
+      "color" : {
+        "color-space" : "srgb",
+        "components" : {
+          "alpha" : "1.000",
+          "blue" : "1.000",
+          "green" : "0.288",
+          "red" : "0.118"
+        }
+      },
+      "idiom" : "universal"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

+ 38 - 0
LoopFollow/Resources/Assets.xcassets/Colors/Insulin.colorset/Contents.json

@@ -0,0 +1,38 @@
+{
+  "colors" : [
+    {
+      "color" : {
+        "color-space" : "srgb",
+        "components" : {
+          "alpha" : "1.000",
+          "blue" : "0.988",
+          "green" : "0.588",
+          "red" : "0.118"
+        }
+      },
+      "idiom" : "universal"
+    },
+    {
+      "appearances" : [
+        {
+          "appearance" : "luminosity",
+          "value" : "dark"
+        }
+      ],
+      "color" : {
+        "color-space" : "srgb",
+        "components" : {
+          "alpha" : "1.000",
+          "blue" : "0.988",
+          "green" : "0.588",
+          "red" : "0.118"
+        }
+      },
+      "idiom" : "universal"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

+ 38 - 0
LoopFollow/Resources/Assets.xcassets/Colors/Lemon.colorset/Contents.json

@@ -0,0 +1,38 @@
+{
+  "colors" : [
+    {
+      "color" : {
+        "color-space" : "srgb",
+        "components" : {
+          "alpha" : "1.000",
+          "blue" : "0.089",
+          "green" : "0.940",
+          "red" : "1.000"
+        }
+      },
+      "idiom" : "universal"
+    },
+    {
+      "appearances" : [
+        {
+          "appearance" : "luminosity",
+          "value" : "dark"
+        }
+      ],
+      "color" : {
+        "color-space" : "srgb",
+        "components" : {
+          "alpha" : "1.000",
+          "blue" : "0.089",
+          "green" : "0.940",
+          "red" : "1.000"
+        }
+      },
+      "idiom" : "universal"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

+ 38 - 0
LoopFollow/Resources/Assets.xcassets/Colors/LoopGray.colorset/Contents.json

@@ -0,0 +1,38 @@
+{
+  "colors" : [
+    {
+      "color" : {
+        "color-space" : "srgb",
+        "components" : {
+          "alpha" : "1.000",
+          "blue" : "0.741",
+          "green" : "0.741",
+          "red" : "0.741"
+        }
+      },
+      "idiom" : "universal"
+    },
+    {
+      "appearances" : [
+        {
+          "appearance" : "luminosity",
+          "value" : "dark"
+        }
+      ],
+      "color" : {
+        "color-space" : "srgb",
+        "components" : {
+          "alpha" : "1.000",
+          "blue" : "0.741",
+          "green" : "0.741",
+          "red" : "0.741"
+        }
+      },
+      "idiom" : "universal"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

+ 38 - 0
LoopFollow/Resources/Assets.xcassets/Colors/LoopGreen.colorset/Contents.json

@@ -0,0 +1,38 @@
+{
+  "colors" : [
+    {
+      "color" : {
+        "color-space" : "srgb",
+        "components" : {
+          "alpha" : "1.000",
+          "blue" : "0.592",
+          "green" : "0.812",
+          "red" : "0.435"
+        }
+      },
+      "idiom" : "universal"
+    },
+    {
+      "appearances" : [
+        {
+          "appearance" : "luminosity",
+          "value" : "dark"
+        }
+      ],
+      "color" : {
+        "color-space" : "srgb",
+        "components" : {
+          "alpha" : "1.000",
+          "blue" : "0.592",
+          "green" : "0.812",
+          "red" : "0.435"
+        }
+      },
+      "idiom" : "universal"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

+ 38 - 0
LoopFollow/Resources/Assets.xcassets/Colors/LoopPink.colorset/Contents.json

@@ -0,0 +1,38 @@
+{
+  "colors" : [
+    {
+      "color" : {
+        "color-space" : "srgb",
+        "components" : {
+          "alpha" : "1.000",
+          "blue" : "0.796",
+          "green" : "0.750",
+          "red" : "1.000"
+        }
+      },
+      "idiom" : "universal"
+    },
+    {
+      "appearances" : [
+        {
+          "appearance" : "luminosity",
+          "value" : "dark"
+        }
+      ],
+      "color" : {
+        "color-space" : "srgb",
+        "components" : {
+          "alpha" : "1.000",
+          "blue" : "0.796",
+          "green" : "0.750",
+          "red" : "1.000"
+        }
+      },
+      "idiom" : "universal"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

+ 38 - 0
LoopFollow/Resources/Assets.xcassets/Colors/LoopRed.colorset/Contents.json

@@ -0,0 +1,38 @@
+{
+  "colors" : [
+    {
+      "color" : {
+        "color-space" : "srgb",
+        "components" : {
+          "alpha" : "1.000",
+          "blue" : "0.341",
+          "green" : "0.341",
+          "red" : "0.922"
+        }
+      },
+      "idiom" : "universal"
+    },
+    {
+      "appearances" : [
+        {
+          "appearance" : "luminosity",
+          "value" : "dark"
+        }
+      ],
+      "color" : {
+        "color-space" : "srgb",
+        "components" : {
+          "alpha" : "1.000",
+          "blue" : "0.341",
+          "green" : "0.341",
+          "red" : "0.922"
+        }
+      },
+      "idiom" : "universal"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

+ 38 - 0
LoopFollow/Resources/Assets.xcassets/Colors/LoopYellow.colorset/Contents.json

@@ -0,0 +1,38 @@
+{
+  "colors" : [
+    {
+      "color" : {
+        "color-space" : "srgb",
+        "components" : {
+          "alpha" : "1.000",
+          "blue" : "0.271",
+          "green" : "0.757",
+          "red" : "1.000"
+        }
+      },
+      "idiom" : "universal"
+    },
+    {
+      "appearances" : [
+        {
+          "appearance" : "luminosity",
+          "value" : "dark"
+        }
+      ],
+      "color" : {
+        "color-space" : "srgb",
+        "components" : {
+          "alpha" : "1.000",
+          "blue" : "0.271",
+          "green" : "0.757",
+          "red" : "1.000"
+        }
+      },
+      "idiom" : "universal"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

+ 38 - 0
LoopFollow/Resources/Assets.xcassets/Colors/ManualTempBasal.colorset/Contents.json

@@ -0,0 +1,38 @@
+{
+  "colors" : [
+    {
+      "color" : {
+        "color-space" : "srgb",
+        "components" : {
+          "alpha" : "1.000",
+          "blue" : "0.988",
+          "green" : "0.588",
+          "red" : "0.118"
+        }
+      },
+      "idiom" : "universal"
+    },
+    {
+      "appearances" : [
+        {
+          "appearance" : "luminosity",
+          "value" : "dark"
+        }
+      ],
+      "color" : {
+        "color-space" : "srgb",
+        "components" : {
+          "alpha" : "1.000",
+          "blue" : "0.988",
+          "green" : "0.588",
+          "red" : "0.118"
+        }
+      },
+      "idiom" : "universal"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

+ 38 - 0
LoopFollow/Resources/Assets.xcassets/Colors/NonPumpInsulin.colorset/Contents.json

@@ -0,0 +1,38 @@
+{
+  "colors" : [
+    {
+      "color" : {
+        "color-space" : "srgb",
+        "components" : {
+          "alpha" : "1.000",
+          "blue" : "250",
+          "green" : "213",
+          "red" : "63"
+        }
+      },
+      "idiom" : "universal"
+    },
+    {
+      "appearances" : [
+        {
+          "appearance" : "luminosity",
+          "value" : "dark"
+        }
+      ],
+      "color" : {
+        "color-space" : "srgb",
+        "components" : {
+          "alpha" : "1.000",
+          "blue" : "250",
+          "green" : "213",
+          "red" : "63"
+        }
+      },
+      "idiom" : "universal"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

+ 38 - 0
LoopFollow/Resources/Assets.xcassets/Colors/SMB.colorset/Contents.json

@@ -0,0 +1,38 @@
+{
+  "colors" : [
+    {
+      "color" : {
+        "color-space" : "srgb",
+        "components" : {
+          "alpha" : "1.000",
+          "blue" : "194",
+          "green" : "117",
+          "red" : "58"
+        }
+      },
+      "idiom" : "universal"
+    },
+    {
+      "appearances" : [
+        {
+          "appearance" : "luminosity",
+          "value" : "dark"
+        }
+      ],
+      "color" : {
+        "color-space" : "srgb",
+        "components" : {
+          "alpha" : "1.000",
+          "blue" : "194",
+          "green" : "117",
+          "red" : "58"
+        }
+      },
+      "idiom" : "universal"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

+ 38 - 0
LoopFollow/Resources/Assets.xcassets/Colors/TempBasal.colorset/Contents.json

@@ -0,0 +1,38 @@
+{
+  "colors" : [
+    {
+      "color" : {
+        "color-space" : "srgb",
+        "components" : {
+          "alpha" : "0.500",
+          "blue" : "0.976",
+          "green" : "0.839",
+          "red" : "0.635"
+        }
+      },
+      "idiom" : "universal"
+    },
+    {
+      "appearances" : [
+        {
+          "appearance" : "luminosity",
+          "value" : "dark"
+        }
+      ],
+      "color" : {
+        "color-space" : "srgb",
+        "components" : {
+          "alpha" : "1.000",
+          "blue" : "0.988",
+          "green" : "0.588",
+          "red" : "0.118"
+        }
+      },
+      "idiom" : "universal"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

+ 38 - 0
LoopFollow/Resources/Assets.xcassets/Colors/UAM.colorset/Contents.json

@@ -0,0 +1,38 @@
+{
+  "colors" : [
+    {
+      "color" : {
+        "color-space" : "srgb",
+        "components" : {
+          "alpha" : "1.000",
+          "blue" : "0.271",
+          "green" : "0.518",
+          "red" : "1.000"
+        }
+      },
+      "idiom" : "universal"
+    },
+    {
+      "appearances" : [
+        {
+          "appearance" : "luminosity",
+          "value" : "dark"
+        }
+      ],
+      "color" : {
+        "color-space" : "srgb",
+        "components" : {
+          "alpha" : "1.000",
+          "blue" : "0.271",
+          "green" : "0.518",
+          "red" : "1.000"
+        }
+      },
+      "idiom" : "universal"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

+ 38 - 0
LoopFollow/Resources/Assets.xcassets/Colors/ZT.colorset/Contents.json

@@ -0,0 +1,38 @@
+{
+  "colors" : [
+    {
+      "color" : {
+        "color-space" : "srgb",
+        "components" : {
+          "alpha" : "1.000",
+          "blue" : "0.937",
+          "green" : "0.380",
+          "red" : "0.443"
+        }
+      },
+      "idiom" : "universal"
+    },
+    {
+      "appearances" : [
+        {
+          "appearance" : "luminosity",
+          "value" : "dark"
+        }
+      ],
+      "color" : {
+        "color-space" : "srgb",
+        "components" : {
+          "alpha" : "1.000",
+          "blue" : "0.937",
+          "green" : "0.380",
+          "red" : "0.443"
+        }
+      },
+      "idiom" : "universal"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

+ 34 - 0
LoopFollow/Resources/Assets.xcassets/Colors/darkGray.colorset/Contents.json

@@ -0,0 +1,34 @@
+{
+  "colors" : [
+    {
+      "color" : {
+        "color-space" : "extended-gray",
+        "components" : {
+          "alpha" : "1.000",
+          "white" : "0.145"
+        }
+      },
+      "idiom" : "universal"
+    },
+    {
+      "appearances" : [
+        {
+          "appearance" : "luminosity",
+          "value" : "dark"
+        }
+      ],
+      "color" : {
+        "color-space" : "extended-gray",
+        "components" : {
+          "alpha" : "1.000",
+          "white" : "0.145"
+        }
+      },
+      "idiom" : "universal"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

+ 38 - 0
LoopFollow/Resources/Assets.xcassets/Colors/minus.colorset/Contents.json

@@ -0,0 +1,38 @@
+{
+  "colors" : [
+    {
+      "color" : {
+        "color-space" : "srgb",
+        "components" : {
+          "alpha" : "1.000",
+          "blue" : "0.976",
+          "green" : "0.839",
+          "red" : "0.635"
+        }
+      },
+      "idiom" : "universal"
+    },
+    {
+      "appearances" : [
+        {
+          "appearance" : "luminosity",
+          "value" : "dark"
+        }
+      ],
+      "color" : {
+        "color-space" : "srgb",
+        "components" : {
+          "alpha" : "1.000",
+          "blue" : "0.976",
+          "green" : "0.839",
+          "red" : "0.635"
+        }
+      },
+      "idiom" : "universal"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

+ 33 - 0
LoopFollow/Resources/Assets.xcassets/Colors/warning.colorset/Contents.json

@@ -0,0 +1,33 @@
+{
+  "colors" : [
+    {
+      "color" : {
+        "color-space" : "display-p3",
+        "components" : {
+          "alpha" : "1.000",
+          "blue" : "0.269",
+          "green" : "0.763",
+          "red" : "0.917"
+        }
+      },
+      "idiom" : "universal"
+    },
+    {
+      "appearances" : [
+        {
+          "appearance" : "luminosity",
+          "value" : "dark"
+        }
+      ],
+      "color" : {
+        "platform" : "ios",
+        "reference" : "systemYellowColor"
+      },
+      "idiom" : "universal"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}