Использование DeepSeek при создании iOS приложения Countries Страны Мира. Часть 3. Swift 6 concurrency и Map.

Это продолжение. Начало находится на «Использование DeepSeek при создании iOS приложения Countries Страны Мира. Часть 1« и «Использование DeepSeek при создании iOS приложения Countries Страны Мира. Часть 2″.

Код находится на Github.

Swift 6 concurrency

Преобразуй это iOS приложение в Swift 6 concurrency версию

В результате мы получаем рассуждения, которые заняли 57 секунд:

Вот перевод этих рассуждений:

Хорошо, мне нужно преобразовать существующее приложение SwiftUI iOS для использования возможностей многопоточности Swift 6. Позвольте мне начать с того, что Swift 6 предлагает в плане многопоточности. Я знаю, что Swift 5.5 представил async / await, акторы actor и структурную многопоточность, но ожидается, что Swift 6 улучшит их более строгими проверками многопоточности, полной изоляцией акторов actor и, возможно, некоторыми новыми возможностями.
Читать далее →

Использование DeepSeek при создании iOS приложения Countries Страны Мира. Часть 2. Численность населения, ВВП, флаг.

Это продолжение. Начало находится в посте «Использование DeepSeek при создании iOS приложения Countries Страны Мира. Часть 1. Список стран.».

Код находится на Github.

Корректируем поля в Индикаторе 

И опять в  улучшенной реализации с населением, ВВП, столицы и эмодзи флага мы имеем НЕВЕРНЫЙ код для ResponseMetadata 

 struct ResponseMetadata: Decodable {
            let page: Int
            let pages: Int
            let perPage: String
            let total: Int
 }

вместо ПРАВИЛЬНОГО:

struct ResponseMetadata: Decodable {
            let page: Int
            let pages: Int
            let perPage: String
            let total: Int
            
            enum CodingKeys: String, CodingKey {
                case page, pages, total
                case perPage = "per_page"
            }
 }

Но даже если мы будем использовать правильный код, мы все равно получим ту же самую ошибку: “ The data couldn’t be read because it is missing.”

Небольшая отладка и просмотр JSON данных для численности населения:

[ 
 {
    "page": 1,
    "pages": 9,
    "per_page": 30,
    "total": 266,
    "sourceid": "2",
    "lastupdated": "2025-01-28"
  },
  [
    {
      "indicator": {
        "id": "NY.GDP.MKTP.CD",
        "value": "GDP (current US$)"
      },
      "country": {
        "id": "ZH",
        "value": "Africa Eastern and Southern"
      },
      "countryiso3code": "AFE",
      "date": "2022",
      "value": 1191423176242.96,
      "unit": "",
      "obs_status": "",
      "decimal": 0
    },
....
  ]
]

… позволит определить, что поля countryiso2code, указанного в Модели  struct Entry, НЕТ в JSON данных, а есть поле countryiso3code, которое является 3-х буквенным IOS кодом страны, но это не то, что нам нужно. Нам нужен 2-х буквенный IOS код страны, который находится в id в объекте country индикатора, так что DeepSeek немного запутался. И не зря, он не рискнул взять id в объекте country response indicator, так как id в объекте Country response country — это  3-х буквенный IOS кодом страны. Нелогичность конструирования JSON данных в API World Bank приводит  DeepSeek в замешательство.

Давайте сообщим ему об этом:

В JSON indicator данных нет поля countryios2code.
Используй id из объекта country в JSON indicator данных.
Читать далее →

Использование DeepSeek при создании iOS приложения Countries Страны Мира. Часть 1. Список стран.

Я решила создать довольно простое тестовое iOS приложение Countries, которое показывает все страны Мира по регионам (Европа, Азия, Латинская Америка и т.д.) и для каждой страны её название и флаг, a также численность населения population и размер ВВП (валового внутреннего продукта) gdp:

Код находится на Github.

Создание iOS приложения Countries для отображения стран Мира 

Давайте попросим DeepSeek создать полноценного iOS приложения Countries для отображения стран Мира по категориям с использованием SwiftUI и данных Всемирного Банка. 

Создай iOS приложение, которое показывает страны Мира по категориям.
Используй информацию Всемирного Банка.

Мы использовали режимы “DeepThinkingn (R1)” и «Search», который обещает применять логические выводы для получения результата:

Рассуждения 1

В результате мы получаем рассуждения, которые длятся 184 секунд (более 3 минут):

И вот их перевод:

Хорошо, мне нужно создать  iOS приложение с помощью SwiftUI, которое отображает страны мира, классифицированные с помощью API Всемирного банка. Позвольте мне разбить мои действия на шаги.
Сначала я должен выяснить, какие endpoints API Всемирного банка использовать. Пользователь упомянул категории, так что, может быть, API индикаторов indicator? Позвольте мне проверить. У Всемирного банка есть API стран countries, которое может получать список стран с информацией о регионах region, в которых они находятся. O, верно, регионы region могут быть категориями. Например, страны могут быть сгруппированы по регионам, таким как Европа, Азия и т. д.
Читать далее →