Search
Write a publication
Pull to refresh
3
-7.2
Максим Савостьянов @AppCrafter

Мобильные iOS приложения.

Send message

Как ИИ ищет в интернете

Level of difficultyEasy
Reading time5 min
Views5.8K

Несколько месяцев назад решил поэкспериментировать с ChatGPT по поводу поиска информации в интернете. Задал вопрос «Что такое длинная воля?».

Это выражение встречается в работах Льва Гумилёва, на мой взгляд, лучшего учёного‑историка нашего времени. Не помню уже в какой именно книге, но в его работах это выражение встречается несколько раз по отношению, в частности, к Чингис‑Хану. Но толком не объясняется.

В общем, задал вопрос и получаю ответ совсем никудышный. ChatGPT выдаёт несколько «ответов» со ссылками на какие‑то совершенно левые работы, даже не упоминая непосредственно работы Гумилёва. И сами ответы были в таком стиле, что это выражение встречается в его работах, но как это понимать — ни слова. И главным источником информации названа статья какого‑совсем неизвестного автора 20–30-х годов. В общем, облом.

Потом, спустя некоторое время появляется Perplexity — новая поисковая система на базе ИИ. Проверяю её на том же запросе и чудо: она чётко выдаёт Гумилёва и даёт толковое объяснение этого термина. В общем, эйфория, «будущее уже здесь» и все такое.

После этого активно пользуюсь этой самой Perplexity. Google уже практически забыт, да и ChatGPT практически тоже выглядит как бы ненужным. И с удовольствием отмечаю, что не я один это заметил. Потому как в интернете пошли слухи, что Apple обсуждает возможность купить Perplexity за $24 ярда, что для Apple самая крупная покупка.

Но потом эти разговоры утихли и уже появляется информация о том, что Apple решила сама создавать свой ИИ‑поисковик. Удивительным образом эта новость совпала и с моим разочарованием в этой новой поисковой системе.

Читать далее

«Суха теория, мой друг. Но древо жизни вечно зеленеет». ИИ на улицах и в офисах Кремниевой долины

Level of difficultyEasy
Reading time5 min
Views1.3K

На YouTube опубликовано видео, посвящённое теме искусственного интеллекта. В нём автор со своей точки зрения обычного человека (не ИТ и не ИИ) и журналиста обсуждает эту тему с Андреем Дроничевым, который был участником выпуска про жизнь наших соотечественников в Кремниевой долине пять лет назад (как время бежит!))

В IT-кругах Андрей Дроничев известен тем, что долгое время работал в Google, участвовал в создании мобильного YouTube, а теперь основал свой стартап, в котором они с помощью ИИ ищут молекулы для создания лекарств от онкологических заболеваний. Там они приводят цифры, что человек за день может просмотреть пару тысяч изображений молекул, а нейронка за минуты - до миллиарда!

В этом интервью много интересных моментов. Например, как обучают ИИ, сколько эти ИИ сжирают электричества (на $10 000 в день), какая новая и самая перспективная профессия уже реально есть по причине нейронок, как принципиально меняется профессия программиста и др. Эта статья не ставит себе целью пересказать их все. Затрону только те, которые, на мой взгляд, достаточно свежие и не тавтологичные в контексте нынешнего бурного обсуждения ИИ и его возможностей.

Читать далее

Горизонтальные и вертикальные промты

Level of difficultyEasy
Reading time5 min
Views1.5K

В этой статье рассказывал об опыте создания мобильного приложения с помощью Claude Sonnet. И в одном из комментариев было сказано, что надо было «сделать скрининг запросов и вывода при использовании ИИ». Это удивило, потому что чат составил порядка 77 страниц и каким образом можно было бы опубликовать все те промты, которые там использовались?

Но реплика засела в памяти. И читая другие публикации стал присматриваться как авторы публикуют свои промты.

В результате стало ясно, что есть 2 вида промтов — горизонтальные и вертикальные.

Читать далее

Опыт использования ИИ Claude для написания мобильного приложения

Level of difficultyEasy
Reading time12 min
Views2.9K

Часть 2: Загрузка данных and Improving или "Хождение по промтам"

Цель этой публикации — показать процесс взаимодействия с ИИ при написании мобильного приложения. Обычно в таких историях публикуют исходный промт, а затем готовый результат. Здесь же хотелось показать более подробно именно сам процесс «Хождения по промтам», как по ходу выстраиваются «взаимоотношения» и происходит взаимообучение ИИ и разработчика. Думаю это будет полезно как уже работающим с ИИ для написания кода, так и тем, кто только начинает входить в этот сегодняшний main stream.

Статья написана в продолжение поста, в котором рассказывалось как с помощью Claude Sonnet 3.7 было написано небольшое мобильное приложение на SwiftUI. Это пользовательский список фильмов. И да, я знаю, что таких приложений вагон и маленькая тележка, но как любому разработчику не нравится брать что‑то навороченное и непонятное, а хочется, как всегда, сделать что‑то «простое и удобное».

Загрузка данных

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

Но текстовый файл, куда ранее вносил заметки о фильмах, получился очень большой. И по прикидкам вручную пришлось бы их вносить где‑то с месяц. Что, конечно же, надоест через несколько дней. И тогда появилась идея — а почему бы не использовать все тот же ИИ и для этой задачи?

Читать далее

«Непонятки» в изучении программирования

Level of difficultyEasy
Reading time4 min
Views13K

Однажды, в ходе очередной попытки освоить программирование, мне попалась переводная книга, где автор на первых страницах обещал научить программировать даже тех, кто никогда этого не делал. И в качестве примера приводил собственного сына 8 лет, которого он как бы научил тоже.

Воодушевлённый таким началом я бодро взялся за чтение. И вот, где-то на первых страницах, при обсуждении типов данных, автор ничтоже сумняшеся сообщает, что целое число, которое Int, может быть Int16, Int32 и т.д., со всеми вытекающими подробностями.

И в эту минуту я чувствую как начинают шевелиться волосы на моей голове. От шока, что не понимаю, чтоэто такое.

Потом подумал, что он, наверное, это где‑то объяснил, а я пропустил. Проверил предыдущие страницы, не нашёл. Может он потом объяснит, бывают же такие преподы, сначала что‑то скажет, а потом разберёт. Посмотрел вперёд, не нашёл тоже.

В общем, сильно загрустил. Мечта стать программистом разбилась о стену как хрустальный шар. И далее, по цепочке, знакомые всем мысли о собственной непригодности.

С тех пор, если встречается в книге, что автор научит всех, даже тех, кто «никогда не программировал», то невольно вздрагиваю, как от легкого удара электрическим током.

И самое смешное, что недавно, на современном курсе по изучению программирования, услышал то же самое. Преподаватель, как только зацепился за тип Int, тут же начал рассуждать все о тех же Int16, Int32, Int64 и т. д. Как будто он попадает в разъезженную колею и уже не может из нее выбраться.

К чему я все это говорю? — К тому, что нередко преподаватели программирования не замечают и не осознают, что новички, которые раньше действительно не программировали, реально не понимают ряд вещей, которые людям с опытом кажутся сами собой разумеющимися.

Читать далее

Business Process Notation как подход к организации кода в проекте по разработке мобильного iOS приложения

Reading time12 min
Views1.4K

Постановка проблемы

На сегодняшний день наиболее известны такие архитектурные паттерны как MVC, MVVM, MVP, Viper, Clean Code.

Все они в той или иной мере работают с тремя основными сущностями - Модель, Вью, Контроллер, добавляя время от времени некоторые дополнительные, например, Presenter.

Вторая общая особенность данных архитектурных паттернов состоит в том, что названные выше сущности выделяются и классифицируются исходя из их технических характеристик. Например, Вью - это то, что отображает данные на экране, Модель - содержит в себе данные и их обработку, а Контроллер осуществляет взаимодействие между ними.

Но эти характеристики не отражают сущности приложения в целом. Это как если бы мы разделили воду на водород и кислород и пытались бы из их особенностей понять сущность воды.

Фрагментарность используемых сущностей и отсутствие целостного видения приложения приводит к общеизвестным проблемам, связанным с трудностями понимания кода и его управлением.

Отсюда, ни один из этих паттернов не гарантирует, что на определённом этапе разработки приложения не возникнет ситуация, когда код станет тяжеловесным и очень сложным для управления.

Именно в такие моменты приходится переосмысливать общую архитектуру проекта и отвечать на вопросы “Зачем нужен тот или иной код, какую задачу он решает?”, “Где расположен код, реализующий ту или иную функциональность и как он работает?”. И т.д.

Продолжая пример с изучением воды следует сказать, что единицей её анализа является молекула воды. Это мельчайшая частица воды, которая тем не менее содержит в себе все её свойства.

В программе такой мельчайшей и одновременно целостной единицей является задача, которую решает тот или иной блок кода.

Отсюда, возникла идея использовать в качестве отправного пункта для организации кода именно те задачи, которые этот код решает.

При этом, задача понимается как бизнес-процесс.

Читать далее

Information

Rating
2,329-th
Registered
Activity

Specialization

Mobile Application Developer, Game Developer
Senior
Python
OOP
Code Optimization
JavaScript
SWIFT
SwiftUI
UIKit
Xcode
iOS development
Development of mobile applications