Прибыль:
- Возможность различать, где искусственный интеллект обеспечивает реальную скорость мобильной разработки (код шаблона, черновик, обучение), а где (архитектура, разрешение, безопасность, публикация) решение остается за человеком, в зависимости от уровня риска задачи.
- Способность применять дисциплину, которая проверяет каждый результат искусственного интеллекта посредством этапов компиляции, тестирования и проверки.
- Способность выработать привычку писать сильные, контекстно-наполненные подсказки и защищать личные данные и секретные ключи, не передавая их ИИ.
Разработка мобильных приложений — одна из самых конкурентоспособных областей программного обеспечения в мире. Мы говорим о продукте, который работает на миллиардах устройств, цикл обновления которого зависит от одобрения магазина и всегда измеряется в кармане пользователя. Искусственный интеллект (ИИ — программные системы, которые могут создавать текст, код и решения, как люди) вошел в эту область двумя способами: во-первых, как вспомогательное средство, ускоряющее процесс разработки (генерация кода, отладка, написание тестов), и во-вторых, как возможность, встроенная в приложение (распознавание изображений на устройстве, чат-помощник, механизм рекомендаций). Этот модуль обучает обоим сквозным методам. Но давайте с самого начала сформулируем одно предложение: ИИ не заменяет мобильного разработчика; расширяет свою производительность и сферу применения. Вы несете ответственность за каждую выданную строку кода, каждое запрошенное разрешение и каждую транзакцию, выполненную с пользовательскими данными.
В этом модуле мы увидим, где ИИ приносит реальную пользу в мобильной разработке, где он должен подчиняться людям, как проверять каждый результат и почему дисциплина конфиденциальности и безопасности не подлежит обсуждению.
Где ИИ может пригодиться в мобильной разработке?
Мобильная разработка состоит из множества повторяющихся и шаблонных задач: написание кода представления, настройка уровня сетевых запросов, определение модели данных, создание тестового примера, разрешение сообщения об ошибке. ИИ создает эти шаблоны очень быстро. Напротив, архитектурные решения, предпочтения пользователей, границы безопасности и точность бизнес-логики являются прерогативой людей.
Полезно разделить задачи на три сегмента в зависимости от уровня риска:
Тип задачи
Роль ИИ
роль мужчины
Код шаблона (шаблон), пример экрана, преобразование
Создает тягу, ускоряет ее
Обзоры, интегрирует
Бизнес-логика, поток данных, интеграция API
Предоставляет предложения и проекты
Проверяет, тестирует, подтверждает
Архитектура, запрос разрешения, безопасность, решение о трансляции
Перечисляет варианты и обоснования
Принимает решение и несет ответственность
Эта таблица будет нашим компасом на протяжении всего модуля. Правый столбец никогда не передается ИИ.
Совет: думайте об ИИ как о «очень быстром, но неопытном стажере». Вы даете ему четкое задание, читаете его распечатку, подвергаете его испытанию и берете на себя ответственность. Вы не отправляете код, созданный стажером, в производство (живую среду), не прочитав его; То же правило применимо и к ИИ.
Дисциплина проверки: три шага
Текст AI плавный и выглядит уверенно; Но беглость – это не точность. ИИ иногда соответствует библиотечной функции, которой не существует (это называется галлюцинацией — модель, уверенно создающая то, чего на самом деле не существует). Вот трехступенчатый фильтр, который мобильный разработчик применяет к каждому результату ИИ:
- Скомпилируйте и запустите. Действительно ли код компилируется, открывается ли приложение? Действительно ли API, предложенный ИИ, находится в SDK (комплекте для разработки программного обеспечения — готовом наборе инструментов, предлагаемом платформой)?
- Проверьте это. Тестируйте ожидаемое поведение автоматически или вручную. «Кажется, это работает» недостаточно; Попробуйте крайние случаи (бездействующие данные, отсутствие сети, отказ в разрешении).
- Рассмотрите и обоснуйте. Вы понимаете, почему код написан именно так? Не публикуйте код, который вы не понимаете. Спросите ИИ «что делает эта линия, зачем она нужна?» просить.
Внимание: номера версий, имена библиотек и подписи API, предоставленные YZ, могут быть устаревшими или сфабрикованными. Он не может знать об обновлениях, выпущенных после конечной даты (последней даты обучения модели). Всегда проверяйте критическую зависимость по официальной документации (разработчики Apple, разработчики Android).
три мини-кейса
Кейс 1. Ускорение разработки экранов. Команда электронной коммерции разработала экран с подробными сведениями о продукте с помощью искусственного интеллекта Jetpack Compose (набор инструментов для современного интерфейса Android). Первый черновик, который обычно занимает два дня, вышел через 3 часа. Но в ходе теста команда обнаружила, что форматирование цен, созданное ИИ, неправильно округляло пенни: на некоторых устройствах 19,99 TL отображались как 20 TL. Если бы не было проверки, эта ошибка появилась бы. Прибыль реальна, но контроль необходим.
Случай 2 — Пойманная галлюцинация. Разработчик получил от ИИ код для запроса разрешения на определение местоположения на iOS. ИИ предложил функцию под названием requestPrecisionLocationOnce(). Такого API не было; Правильным был requestWhenInUseAuthorization(). Ошибка компиляции это сразу выявила. Урок: компилятор — самый честный аудитор ИИ.
Случай 3 — Ловушка конфиденциальности. Одна команда вставляла в ИИ отчеты об ошибках пользователей и просила найти решение. Отчеты включали электронную почту пользователей и идентификаторы устройств. Это означало утечку персональных данных стороннему сервису и являлось нарушением КВКК (Закона о защите персональных данных). Решение: очистка (маскировка) личных полей перед передачей данных ИИ.
Слабая подсказка / Сильная подсказка
Разница между двумя приглашениями для одного и того же задания определяет качество результата.
Слабая подсказка: «Напишите мне экран входа в систему».
Мощная подсказка: «Создайте экран входа в систему с помощью Jetpack Compose для Android. Требования: — поле электронной почты и пароля; проверка формата электронной почты, пароль не менее 8 символов — кнопка «Войти» отключена во время загрузки и отображения счетчика — сообщения об ошибках отображаются красным текстом под полем — архитектура MVVM: состояние во ViewModel, только составной пользовательский интерфейс — Kotlin, Material 3, minSdk 24. Просто укажите код, а затем объясните каждый раздел в 1 предложении».
Во втором приглашении указывается платформа, инструмент, архитектура, границы и формат вывода. ИИ не оставляет ничего для догадок; Следовательно, это дает гораздо более полезный и простой для проверки результат.
Копируемые стартовые шаблоны
Используйте приведенные ниже шаблоны, дополняя их своим собственным контекстом.
Шаблон роли и контекста: «Вы старший разработчик [iOS/Android/Flutter]. Мой проект: [тип приложения], целевая платформа [версия], архитектура [MVVM/Clean]. Задача: [что вы хотите]. Ограничения: [язык, библиотека, версия]. Сначала обобщите план в 3 элементах, затем создайте код, затем перечислите риски».
Шаблон проверки кода: «Изучите следующий [языковой] код. Определите: 1) ошибки и риски сбоя 2) проблемы с памятью/производительностью 3) уязвимости безопасности и конфиденциальности 4) где это можно было бы написать проще. Номера строк для каждого элемента и предложите исправления. [код]»
Шаблон обучения: «Объясните [концепцию, например, async/await в Swift] с точки зрения мобильного разработчика. Приведите простой пример, упомяните 3 распространенные ошибки и укажите, когда мне не следует ее использовать».
Шаблон проверки: «Вы предложили этот API/функцию: [имя]. Проверьте: в какой версии SDK он появился, какое разрешение требуется, устарел ли он? Если не уверены, скажите «не уверен, проверьте официальную документацию».
Распространенные ошибки
- Вставка вывода без его чтения. Самая распространенная и самая опасная ошибка. Даже если он скомпилирован, логика может быть неправильной.
- Передача конфиденциальных данных ИИ. Ключ API, пользовательские данные, сертификат подписи никогда не вставляются в запрос.
- Не проверка версии и API. ИИ может предлагать устаревшие или вымышленные API; Последнее слово остается за официальным документом.
- Оставляя архитектурное решение ИИ. «Какая архитектура лучшая?» Ответ на вопрос зависит от вашего проекта; ИИ дает общий ответ, вы знаете контекст.
- Написание одной гигантской подсказки. Пытаемся решить сложную задачу одним запросом; Безопаснее разбить его на небольшие, поддающиеся проверке шаги.
- Спрашиваем разрешения «на всякий случай». ИИ иногда добавляет больше разрешений, чем необходимо; Каждое разрешение представляет собой риск для одобрения хранилища и доверия пользователей.
В итоге
ИИ играет две роли в мобильной разработке: помощник, ускоряющий процесс разработки, и встроенная в приложение возможность. Код шаблона обеспечивает огромное ускорение разработки и обучения; Но решения по архитектуре, безопасности, разрешениям и публикации принимаются людьми. Каждый результат проверяется в три этапа: компиляция-прогон, тестирование и проверка. Конфиденциальные данные и личная информация никогда не передаются ИИ. Платформа высокого спроса четко определяет инструмент, ограничения и формат вывода. Эта дисциплина является основой для остальной части модуля.
Задача приложения
Выберите экран из своего мобильного проекта (или воображаемого «приложения для заметок»). Напишите приглашение для этого экрана, используя приведенный выше «Шаблон роли и контекста». Попробуйте скомпилировать сгенерированный ИИ код в проект и пропустить его через трехэтапный фильтр проверки: скомпилировался ли, сработал ли как положено, поняли ли вы каждую строчку? Запишите хотя бы одну ошибку или фиктивный API, который вы обнаружите.
контрольный список
- [ ] Я определил, в какой из трех сегментов попадает задача, исходя из уровня ее риска
- [ ] В запросе я указал платформу, версию, архитектуру и ограничения
- [ ] Я скомпилировал результат и запустил его
- [ ] Я тестировал предельные случаи (бездействующие данные, отсутствие сети, отказ в разрешении)
- [ ] Я убедился, что понял каждую строчку
- [ ] Я не предоставлял ИИ никаких личных данных или закрытых ключей
- [ ] Я проверил критически важные API из официальной документации.