Создание игральных карт в SwiftUI с помощью ИИ Grok 3

Мне всегда хотелось создать в SwiftUI «родное» View для игральных карт, не уступающее по качеству игральным картам, которые уже создал Пол Хэгерти на далеком стэнфордском курсе CS193P 2017 Лекция 6 в UIKit. Наиболее сложной частью было правильное расположение на карте символов масти для числовых карт (2 -10). Я даже интегрировала созданную Полом Хэгерти в UIKit игральную карту в SwiftUI, учитывая легкость интеграции UIViews в  SwiftUI. Но это все-таки не «родное» SwiftUI View.

Я обратилась к ИИ: Grok 3 Think, ChatGPT 3.0-mini Reason, Claude 3.7, Gemini 2.0 Flash, DeepSeek, Qwen 2.5 Max — с запросом о создании игральных карт в SwiftUI.

Самый впечатляющий результат я получила от Grok 3 Think, который предложил компактный и очень гибкий способ конструирования числовых карт (2-10) в современном SwiftUI, тот же самый способ предложил и ChatGPT 3.0-mini Reason с небольшими различиями в реализации, а вот остальные представили довольно громоздкие способы конструирования таких карт, которые фактически сводились к индивидуальным комбинациям HStack и VStack для отдельных символов масти  («♥️», «♦️», «♣️», «♠️») для каждого ранга (2-10).

Я хочу поделиться с вами протоколом взаимодействия с Grok 3 Think, в результате которого и был предложен этот самый оптимальный вариант.

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

Представленный в этом посте материал может успешно использоваться для обучения программированию на SwiftUI.

Читать далее

Grok 3 xAI в разработке iOS приложения «Страны Мира» (отображение границ)

В предыдущей статье я писала о создании с помощью различных ИИ довольно простого тестовое iOS приложение Countries («Страны Мира»), которое показывает все страны Мира по регионам (Европа, Азия, Латинская Америка и т.д.) и для каждой страны отображается её название, флаг, численность населения и ВВП. Если вы выбираете какую-то страну, то на карте будет представлена страна с местоположением её столицы..

Я хочу добавить на карту границы страны:

На данный момент я ничего не знаю о том, где взять информацию о границах стран, но это должен быть либо JSON файл, либо JSON информация из интернета, которую можно считать с помощью async / await и декодировать в Swift.

Я хочу обратиться к Grok 3 xAI и попросить его написать для меня Swift код, который бы добавил границы выбранной страны на карту. 

Сразу скажу, что я не считаю, что какой-то ИИ может вместо вас написать целое iOS приложение. В лучшем случае ИИ может предложить вам действительно замечательный код с небольшим количеством ошибок (2-5), которые кстати иногда трудно найти даже опытному программисту высшей квалификации ( у меня так было с Claude 3.5 Sonnet, хотя считаю его одним из лучших ИИ для кодинга). Если вы находите эти ошибки самостоятельно или, продолжая спрашивать ИИ, вы действительно получаете высокопрофессиональное iOS приложение, потратив на его разработку существенно меньше времени.

Вот под таким углом мы и будем рассматривать нашу задачу о границах стран на карте, которую будем решать вместе с Grok 3 xAI. 

Забегая вперед, скажу, что Grok 3 xAI практически полностью справился со всеми моими запросами, предложив совершенно неожиданное для меня решение со встроенным в MapKit декодером MKGeoJSONDecoder. Тем не менее я попросила Grok 3 создать Codable Модель в Swift для декодирования GeoJSON данных, имеющих не тривиальную JSON структуру, и он с ней превосходно справился. По ходу дела Grok 3 вообще выдал целый «Комплексный обзор о получении GeoJSON данных стран» и предоставил очень четкие «рассуждения», которые вполне можно использовать как отличный обучающий материал.

Так что Grok 3 xAI в этой конкретной задаче зарекомендовал себя серьезным помощником в iOS программировании.

Код iOS приложения Countries с границами стран находится на Github.

Полностью протокол взаимодействия с Grok 3 можно посмотреть здесь. Ниже представлены лишь отдельные фрагменты этого протокола.

Читать далее