Новият безплатен API на Apple ви позволява да правите 500 000 API извиквания на месец безплатно

Голяма част от сложността на пускането и стартирането на WeatherKit е в установяването на правилната способност. Отидете на „създайте идентификатор на приложение“ на уебсайта за разработчици на Apple.

Ще трябва да активирате WeatherKit и в ДВАТА раздела, наречени Capabilities и App Services. Идентификаторът на вашия пакет ще трябва да бъде изричен и ще трябва да изчакате поне 30 минути след създаването на вашия ID на приложението, преди да опитате да използвате WeatherKit.

Сега създайте нов проект за приложение в Xcode 14 бета, като се уверите, че сте добавили възможността WeatherKit в раздела Подписване и възможности на вашия проектен файл, както се вижда по-долу.

Така че се надяваме, че сте създали своя ID на приложението с правилните възможности и услуги за приложението и сте изчакали половин час, след което сте създали проект за приложение със същия идентификатор на пакет като вашия ID на приложението и накрая сте добавили тази възможност към вашия проектен файл.

Сега всъщност можем да стигнем до забавната част, която е създаването на SwiftUI интерфейс, който показва данни за времето.

За да опростя това, правя приложение, което показва само температурата в Купертино в текущия момент:

Географската ширина и дължина на Cuptertino бяха изчислени с помощта на latlong.net и запазени като статичен CLLocation обект. За да се направи температурата голяма на екрана, беше избран огромен размер на шрифта с минимален коефициент на мащабиране. Ето как получаваме достъп до функцията за автоматично свиване, както беше известна в UIKit. Ограничението на реда се използва, така че единиците да не се поставят на втори ред, което ще се случи, ако низът стане твърде дълъг.

Когато обектът weather е нула, има въртящ се бутон под формата на ProgressView и модификаторът .task се използва, за да извлече времето, когато въртящият се бутон се появи за първи път. Както този ProgressView, така и Text, който показва температурата, са вътре в група, така че и двата да имат едно и също заглавие за навигация. Това се показва в горната част на екрана, което ни уведомява за местоположението на температурата, която показваме.

WeatherService има shared сингълтън и това е начинът, по който осъществяваме достъп до API на WeatherKit. Няма нужда да добавяте какъвто и да е вид удостоверяване, тъй като това се прави чрез възможностите на App ID. Предаването на WeatherService местоположение ни дава обект с куп полезни данни, но в момента сме загрижени само за текущото време.

Текущото време завършва със структура като този JSON.

Ако не сте изчакали половин час след създаването на своя идентификатор на приложение, може да получите fatalError, което казва, че сте получили невалиден JWT отговор с код за грешка 401. Ако все още получавате тази грешка след изчакване половин час, вашият ID на приложението може да не е конфигуриран правилно (или сървърите на Apple просто са бавни).

Също така изпитах грешки, които се оплакваха, че части от метеорологичния обект липсват.

Може да успеете да спрете срива на приложението, като промените fatalError на отпечатване на грешката, тъй като те не са непременно фатални грешки.

Това е засега!