Google AI Studio c Gemini 2.5 для создания iOS приложения на основе макетов из Figma

Мне случайно попалось задание с собеседования 2-х годичной давности на позицию «iOS разработчик» , в котором требовалось создать iOS приложения для бронирования номера в Отеле на основе макетов экранов из Figma, в которых использовалась «карусель» из фото. 

Я решила попробовать использовать ИИ для разработки такого iOS приложения по макетам из Figma. Прямо скажем, что текст на прототипах экранов не очень отчетливо виден, так что ИИ предстоит его сначала прочитать, а уже потом создать iOS приложение.

Для меня приоритетными ИИ при создании iOS приложений являются ChatGPT 4.o-mini, Claude 3.5 (3.7) Sonnet и Grok 3, ну, может быть, DeepSeek R1, но Gemini 1.5 всегда давал хотя и корректный, но не самый лаконичный и интересный код.

Однако Gemini всегда прекрасно читал текст на изображениях ( в том числе на русском), кроме того, появилась более продвинутая Gemini 2.5 Pro Experimental —  мультимодальная, рассуждающая модель AI, которую компания называет самой интеллектуальной моделью на сегодняшний день.

Так что у нас есть все шансы на успех.

Забегая вперед, сразу скажу, что Gemini 2.5 Experimental превзошел ожидания: точное воспроизведение Figma-макетов в SwiftUI (стили, функционал) + нешаблонный код, а изобретательные решения (FlexibleGridView и др.). Стартовый код — база для масштабируемого приложения с реализацией загрузки данных с сервера (REST API). Код находится на Github.

Читать далее

Создание игральных карт в 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.

Читать далее

Cursor AI в iOS разработке. Приложение «Фото с Flickr.com». Часть 2.

Мы исследуем как работает Cursor AI на примере создания iOS приложения с выборкой данных с ресурса публичных фотографий на Flickr.com.
UI этого iOS приложения представляет собой строку поиска вверху и сетку Grid под ней для отображения миниатюр этих фотографий. Вы можете кликнуть на любую из фотографий и получить подробную информацию о ней:

Начальное решение этой задачи, то есть создание такого iOS приложения, описано в предыдущем посте «Cursor AI в iOS разработке. Приложение «Фото с Flickr.com». Часть 1.»
Окончательный вариант iOS приложения PhotomaniaCursor находится на Github.com.
Здесь мы продолжим совершенствовать наше приложение PhotomaniaCursor, которое может выбирать публичные фотографии с Flickr.com. И вот наш первый вопрос:

Как часто происходит обращение к  Flickr API при наборе текста в строке поиска?

Наша следующая версия 8 приложения PhotomaniaCursor будет работать в точности как и версия 7, но мы хотим четко увидеть, при каких тегах tags осуществляется обращение к  Flickr API при наборе пользователем текста в строке поиска searchText. Для этого мы будем печатать в FlickrViewModel теги tags, для которых этот запрос выполняется, :

if let encodedTags = tags.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) {
           print ("--------------------------- \(encodedTags)")
          urlString += "&tags=\(encodedTags)           
}
Читать далее

Cursor AI в iOS разработке. Приложение «Фото с Flickr.com». Часть 1.

Мне хотелось посмотреть, как работает ИИ Редактор кода Cursor AI на примере создания iOS приложения с выборкой данных с ресурса, который не требует API key и платной подписки. И этим ресурсом оказались публичные фотографии с Flickr.com.

Задача

Создать UI iOS приложения со строкой поиска вверху и сеткой Grid под ней для отображения миниатюр фотографий наподобие:

Пользователь должен иметь возможность вводить текст в строку поиска и видеть набор фотографий, теги которых tags соответствуют строке поиска. Строка поиска может содержать одно слово (например, “rose”) или разделенные пробелами слова(например, “forest bird” (лес птица)).

Функциональные требования:

  • Список фотографий извлекается с помощью API из Flickr типа: https://api.flickr.com/services/feeds/photos_public.gne?format=json&nojsoncallback=1&tags=porcupine (замените слово «porcupine» на то, которое ввел пользователь).
  • При выполнении поиска отображается индикатор хода выполнения, не блокируя UI.
  • При нажатии на изображение должно быть показано View с подробной информации о фотографии.
Читать далее