Обычно, средний и крупный бизнес заказывает разработку мобильного приложения у студий с командой дизайнеров, разработчиков и менеджеров. Небольшие проекты и приложения для малого бизнеса чаще делают фрилансеры. Но в обоих случаях ценник достигает семизначных сумм, а производство растягивается на месяцы.
Некоторые «прошаренные» предприниматели заказывают разработку у зерокодеров, чтобы сэкономить деньги и быстрее получить результат. Мы сравнили стоимость и время традиционной разработки и зерокодинга на примере мобильного приложения для фитнес-клуба и выяснили, насколько скорее и дешевле обходится создание типового проекта без кода.
Почему зерокодинг это быстрее и дешевле традиционной разработки
В традиционной разработке мобильное приложение собирает команда программистов, дизайнеров и менеджеров. Зерокодер делает все сам, иногда вместе с двумя-тремя зерокодерами, если проект большой.
Вот как происходит разработка в классической студии:
- Клиент заказывает проект;
- Менеджеры уточняют задачу, составляют техническое задание и согласуют с клиентом;
- Дизайнеры в лучшем случае две недели рисуют макет;
- Разработчики пишут код в лучшем случае около двух месяцев;
- Клиент вносит правки и отдает приложение на доработку. Количество итераций правок зависит от квалификации студии, условий договора и дотошности заказчика;
- Студия и клиент согласовывают проект.
В зерокодинге процесс проще. Все или большую часть задач решает один человек, и заказчик общается напрямую с исполнителем. Поэтому можно быстро согласовать техническое задание, внести правки и не ждать результата неделями. Высокая скорость и низкие трудозатраты снижают стоимость заказа.
На схеме видно, что с зерокодингом клиент счастлив
Благодаря этому снижаются две критически важные для бизнеса штуки: Time to market и Cost to market. Продукты поставляются на рынок быстрее и с меньшими затратами.
После запуска приложения почти всегда вскрываются баги и «узкие места»: в квитанции неверно отображаются данные заказа или в CRM сохраняются не все лиды. В нативном приложении проблемы возникают из-за обновлений Android и iOS. Поэтому нужен программист, который исправит ошибки, обновит и улучшит программу.
Некоторые нанимают разработчика со стороны, но это кот в мешке: разбираться в чужом коде тяжело, программист может не потянуть. В лучшем случае потратите деньги, в худшем «мастер» добьет программу и пропадет с радаров, а вы останетесь без приложения и клиентов.
Более безопасный, но дорогой вариант — заключить договор со студией, которая разработала приложение. Иногда сопровождение входит в стоимость проекта. В любом случае об обязанностях лучше договориться на берегу: чем точнее прописаны обязанности, тем качественнее поддержка.
И снова с зерокодингом проще и дешевле. Можно договориться о сопровождении с исполнителем, нанять другого зерокодера или вырастить своего — все варианты выигрышные. Ноукод-платформы универсальны, их проще освоить, поэтому хорошего зерокодера найти проще, чем среднего программиста.
Чтобы сравнить стоимость разработки на коде и зерокоде, мы составим задание для студий и попросим оценить проект. Некоторые студии предлагают рассчитать чек самостоятельно на их сайте, но полученная сумма редко совпадает с реальной.
Как собрать мобильное приложение без навыков программирования и выложить его в сторы: обзор сервиса Adalo
ОНЛАЙН-ПРАКТИКУМ
ЗАПУСК DEEPSEEK R1 ЛОКАЛЬНО НА СВОЕМ КОМПЬЮТЕРЕ
ЧТО БУДЕТ НА ОБУЧЕНИИ?
- ПОКАЖЕМ, КАК РАЗВЕРНУТЬ МОДЕЛЬ DEEPSEEK R1 ПРЯМО НА СВОЁМ КОМПЬЮТЕРЕ
- Где и как применять? Потестируем модель после установки на разных задачах
- Как дообучить модель под себя?
Составляем задание для студии разработки
Мы немного схитрили и сделали задание по готовому мобильному приложению для Kangoo Club Kaluga. Через него клиенты необычного фитнес-клуба записываются на тренировки и бронируют экипировку. Приложение опубликовано в Play Market и App Store.
Так выглядит приложение
Вот что есть в Kangoo Club Kaluga:
- регистрация новых пользователей;
- профиль клиента с данными об абонементе: вид и описание абонемента, сколько тренировок осталось;
- календарь тренировок со свободными датами;
- запись на занятие: если пользователь не приходит или отменяет тренировку меньше чем за два часа, она списывается с абонемента;
- push-уведомления, которые напоминают о занятии или сообщают, когда открылась запись;
- можно смотреть профили тех, кто придет на занятия;
- админка, чтобы добавлять или отменять занятия и виды тренировок.
Это и есть список требований к проекту. Добавим, что приложение нужно опубликовать в Google Play и App Store и получится задание для студии. По нему исполнители составят техническое задание и оценят стоимость проекта.
Подключайтесь к сообществу «Я — зерокодер» в Телеграме, чтобы узнать о новых инструментах, изучать кейсы коллег и обмениваться опытом.
Во сколько по деньгам и времени обойдется традиционная разработка
Мы отправили задание в пять первых студии из поисковой выдачи Яндекса. Их можно найти по запросу «заказать разработку мобильного приложения».
Только одна студия сразу сказала, сколько стоит проект по нашим требованиям. С остальными несколько дней уточняли пункты, а одна настаивала на созвоне и «более тесном контакте». Спустя неделю все студии прислали примерный чек:
-
Студия №1 — 5-6 млн руб, срок разработки 3-4 месяца.
-
Студия №2 — 4 млн руб, срок 4 месяца.
-
Студия №3 — 3-4 млн руб, срок 4 месяца.
-
Студия №4 — 2 млн руб, срок от 4 месяцев.
-
Студия №5 — 4 млн руб, срок 3 месяца.
Средний чек — 3,8 млн руб.
Вот по каким параметрам оценивают стоимость:
- тип приложения — простой сервис с модерацией и блогом дешевле чат-бота или мессенджера;
- кроссплатформенность — приложение под одну операционную систему дешевле, чем под обе;
- нагрузка на сервер — чем выше частота и продолжительность посещений, тем мощнее и дороже сервер;
- дизайн под ключ с иконками, анимацией и баннерами обойдется примерно в 600-800 тыс. руб;
- тестирование — на проверку возможных ошибок и вариантов нестандартного использования уходит неделя и примерно 100 тыс. рублей;
- дополнительные услуги — студии составляют техническую документацию, маркетинговую стратегию и даже отвечают на комментарии в сторах. Стоимость и набор услуг зависят от студии.
За техническую поддержку берут единоразово от 20 до 60 тыс. руб., они входят в стоимость проекта. Она включает ежемесячные обновления и исправление непредвиденных ошибок. За более серьезные обновления, например, новые функции и увеличение пропускной способности, придется платить отдельно.
Сколько стоит назерокодить приложение
Сергей Горелов собрал приложение Kangoo Club Kaluga на Adalo — онлайн-конструкторе мобильных приложений. Проекты из Adalo можно публиковать в Play Market, App Store или как PWA-приложение. Интерфейс в платформе собирают из готовых графических компонентов или пишут свои на JavaScript.
Интерфейс Adalo
Дизайн и логику Сергей делал сам, поэтому заплатил только 50 $ за Pro Plan с White label, 5 ГБ в хранилище и возможностью опубликовать приложение в сторах. Проект нужно было запустить через месяц, а с Adalo получилось за две недели. При этом Сергей работал с платформой впервые — опытный зеркоодер справился бы за неделю.
Поддержка и обновление приложения на зерокоде складывается из стоимости тарифа и гонорара разработчика. Некоторые заказчики осваивают платформу и самостоятельно пилят обновления. Тогда приложение «кушает» всего 50 $ в месяц (стоимость Pro Plan на 26.05.2021) — с традиционной разработкой пришлось бы платить за сервер. Если же разбираться в платформе не хочется, можно нанять зеркодера, который обойдется дешевле, чем Java- или Swift-разработчик или студия.
⌘⌘⌘
Зерокодинг отвоевывает клиентов у традиционной разработки там, где нужно быстро запустить проект или протестировать идею. Реальные кейсы показывают, что собрать приложение на ноу-код платформе, даже через услуги фрилансера, дешевле в десятки раз. Зерокодер собирает полноценное приложение с платежными сервисами, админкой и социальными механиками всего за 200-400 тыс. руб., а студия берет от двух миллионов.
Если уже готов перевернуть рынок мобильной и веб-разработки, пора вступать в ряды зерокодеров. Но перед большой игрой лучше освой инструменты с наставниками из университета «Зерокодер». Тут учат собирать приложения без кода и зарабатывать на этом круглые суммы.
Большой практикум
ЗАМЕНИ ВСЕ НЕЙРОСЕТИ НА ОДНУ — PERPLEXITY
ПОКАЖЕМ НА КОНКРЕТНЫХ КЕЙСАХ
- Освой Perplexity и узнай, как пользоваться функционалом остальных ИИ в одном
- УЧАСТВОВАТЬ ЗА 0 РУБ.
- Расскажем, как получить подписку (240$) бесплатно
Участвовать бесплатно
ОНЛАЙН-ПРАКТИКУМ
ЗАПУСК DEEPSEEK R1 ЛОКАЛЬНО НА СВОЕМ КОМПЬЮТЕРЕ
ЧТО БУДЕТ НА ОБУЧЕНИИ?
- ПОКАЖЕМ, КАК РАЗВЕРНУТЬ МОДЕЛЬ DEEPSEEK R1 ПРЯМО НА СВОЁМ КОМПЬЮТЕРЕ
Участвовать бесплатно
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="HandheldFriendly" content="True">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- Favicon -->
<link rel="icon" href="https://ya.zerocoder.ru/wp-content/themes/zero/assets/images/favicon.png" type="image/png" />
<!-- Google Fonts -->
<link href="https://fonts.googleapis.com/css2?family=Mulish:ital,wght@0,400;0,700;1,400;1,700&family=Source+Code+Pro:wght@500&family=Montserrat:wght@500;600;700&display=swap" rel="stylesheet">
<!-- External CSS -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/fancyapps/fancybox@3.5.7/dist/jquery.fancybox.min.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/owl.carousel@2.3.4/dist/assets/owl.carousel.min.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/owl.carousel@2.3.4/dist/assets/owl.theme.default.min.css">
<!-- Theme CSS -->
<link rel="stylesheet" type="text/css" href="https://ya.zerocoder.ru/wp-content/themes/zero/assets/css/screen.css?ver=3125">
<link rel="stylesheet" type="text/css" href="https://ya.zerocoder.ru/wp-content/themes/zero/assets/css/style_new.css?ver=1771694305">
<!-- jQuery (обязательно первым) -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script>
<!-- jQuery Cookie (обязательно для попапов) -->
<script src="https://cdn.jsdelivr.net/npm/js-cookie@3.0.5/dist/js.cookie.min.js"></script>
<!-- Owl Carousel JS -->
<script src="https://cdn.jsdelivr.net/npm/owl.carousel@2.3.4/dist/owl.carousel.min.js"></script>
<!-- Fancybox v3 -->
<script src="https://cdn.jsdelivr.net/gh/fancyapps/fancybox@3.5.7/dist/jquery.fancybox.min.js"></script>
<!-- Theme JS -->
<script src="https://ya.zerocoder.ru/wp-content/themes/zero/assets/js/jquery-cookie.js"></script>
<!-- Theme JS -->
<script src="https://ya.zerocoder.ru/wp-content/themes/zero/assets/js/jquery-cookie.js"></script>
<script defer src="https://ya.zerocoder.ru/wp-content/themes/zero/assets/js/main.js?ver=1771694305"></script>
<meta name='robots' content='index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1' />
<style>img:is([sizes="auto" i], [sizes^="auto," i]) { contain-intrinsic-size: 3000px 1500px }</style>
<!-- This site is optimized with the Yoast SEO plugin v20.2.1 - https://yoast.com/wordpress/plugins/seo/ -->
<title>Насколько зерокодинг дешевле традиционной разработки</title>
<meta name="description" content="Разбираемся, что бизнесу выгоднее — зерокодинг или традиционная разработка." />
<link rel="canonical" href="https://ya.zerocoder.ru/pokazhi-eto-kliientu-naskolko-zierokodingh-dieshievlie-traditsionnoi-razrabotki/" />
<meta property="og:locale" content="ru_RU" />
<meta property="og:type" content="article" />
<meta property="og:title" content="Насколько зерокодинг дешевле традиционной разработки" />
<meta property="og:description" content="Разбираемся, что бизнесу выгоднее — зерокодинг или традиционная разработка." />
<meta property="og:url" content="https://ya.zerocoder.ru/pokazhi-eto-kliientu-naskolko-zierokodingh-dieshievlie-traditsionnoi-razrabotki/" />
<meta property="og:site_name" content="Я зерокодер" />
<meta property="article:published_time" content="2021-06-09T04:08:06+00:00" />
<meta property="article:modified_time" content="2023-07-11T17:34:39+00:00" />
<meta property="og:image" content="https://ya.zerocoder.ru/wp-content/uploads/2023/03/3-8-1-1.png" />
<meta property="og:image:width" content="1440" />
<meta property="og:image:height" content="900" />
<meta property="og:image:type" content="image/png" />
<meta name="author" content="Редакция" />
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:label1" content="Написано автором" />
<meta name="twitter:data1" content="Редакция" />
<script type="application/ld+json" class="yoast-schema-graph">{"@context":"https://schema.org","@graph":[{"@type":"WebPage","@id":"https://ya.zerocoder.ru/pokazhi-eto-kliientu-naskolko-zierokodingh-dieshievlie-traditsionnoi-razrabotki/","url":"https://ya.zerocoder.ru/pokazhi-eto-kliientu-naskolko-zierokodingh-dieshievlie-traditsionnoi-razrabotki/","name":"Насколько зерокодинг дешевле традиционной разработки","isPartOf":{"@id":"https://ya.zerocoder.ru/#website"},"primaryImageOfPage":{"@id":"https://ya.zerocoder.ru/pokazhi-eto-kliientu-naskolko-zierokodingh-dieshievlie-traditsionnoi-razrabotki/#primaryimage"},"image":{"@id":"https://ya.zerocoder.ru/pokazhi-eto-kliientu-naskolko-zierokodingh-dieshievlie-traditsionnoi-razrabotki/#primaryimage"},"thumbnailUrl":"https://ya.zerocoder.ru/wp-content/uploads/2023/03/3-8-1-1.png","datePublished":"2021-06-09T04:08:06+00:00","dateModified":"2023-07-11T17:34:39+00:00","author":{"@id":"https://ya.zerocoder.ru/#/schema/person/c827f107a634049f283324c5249895d1"},"description":"Разбираемся, что бизнесу выгоднее — зерокодинг или традиционная разработка.","breadcrumb":{"@id":"https://ya.zerocoder.ru/pokazhi-eto-kliientu-naskolko-zierokodingh-dieshievlie-traditsionnoi-razrabotki/#breadcrumb"},"inLanguage":"ru-RU","potentialAction":[{"@type":"ReadAction","target":["https://ya.zerocoder.ru/pokazhi-eto-kliientu-naskolko-zierokodingh-dieshievlie-traditsionnoi-razrabotki/"]}]},{"@type":"ImageObject","inLanguage":"ru-RU","@id":"https://ya.zerocoder.ru/pokazhi-eto-kliientu-naskolko-zierokodingh-dieshievlie-traditsionnoi-razrabotki/#primaryimage","url":"https://ya.zerocoder.ru/wp-content/uploads/2023/03/3-8-1-1.png","contentUrl":"https://ya.zerocoder.ru/wp-content/uploads/2023/03/3-8-1-1.png","width":1440,"height":900},{"@type":"BreadcrumbList","@id":"https://ya.zerocoder.ru/pokazhi-eto-kliientu-naskolko-zierokodingh-dieshievlie-traditsionnoi-razrabotki/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Главная страница","item":"https://ya.zerocoder.ru/"},{"@type":"ListItem","position":2,"name":"Покажи это клиенту: насколько зерокодинг дешевле традиционной разработки"}]},{"@type":"WebSite","@id":"https://ya.zerocoder.ru/#website","url":"https://ya.zerocoder.ru/","name":"Я зерокодер","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://ya.zerocoder.ru/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"ru-RU"},{"@type":"Person","@id":"https://ya.zerocoder.ru/#/schema/person/c827f107a634049f283324c5249895d1","name":"Редакция","image":{"@type":"ImageObject","inLanguage":"ru-RU","@id":"https://ya.zerocoder.ru/#/schema/person/image/","url":"https://secure.gravatar.com/avatar/4edc6f210eb002d68900ecb31d381850?s=96&d=mm&r=g","contentUrl":"https://secure.gravatar.com/avatar/4edc6f210eb002d68900ecb31d381850?s=96&d=mm&r=g","caption":"Редакция"},"description":"Коллектив авторов, редакторов и иллюстраторов статей на сайте блога онлайн-университета «Зерокодер». Пишем на сложные темы доступным языком, чтобы помочь читателям узнавать новое и осваивать актуальные навыки.","sameAs":["https://ya.zerocoder.ru"],"url":"https://ya.zerocoder.ru/author/admin/"}]}</script>
<!-- / Yoast SEO plugin. -->
<link rel='dns-prefetch' href='//cdnjs.cloudflare.com' />
<link rel="alternate" type="application/rss+xml" title="Я зерокодер » Лента комментариев к «Покажи это клиенту: насколько зерокодинг дешевле традиционной разработки»" href="https://ya.zerocoder.ru/pokazhi-eto-kliientu-naskolko-zierokodingh-dieshievlie-traditsionnoi-razrabotki/feed/" />
<script type="text/javascript">
/* <![CDATA[ */
window._wpemojiSettings = {"baseUrl":"https:\/\/s.w.org\/images\/core\/emoji\/15.0.3\/72x72\/","ext":".png","svgUrl":"https:\/\/s.w.org\/images\/core\/emoji\/15.0.3\/svg\/","svgExt":".svg","source":{"concatemoji":"https:\/\/ya.zerocoder.ru\/wp-includes\/js\/wp-emoji-release.min.js?ver=6.7.2"}};
/*! This file is auto-generated */
!function(i,n){var o,s,e;function c(e){try{var t={supportTests:e,timestamp:(new Date).valueOf()};sessionStorage.setItem(o,JSON.stringify(t))}catch(e){}}function p(e,t,n){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);var t=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data),r=(e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(n,0,0),new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data));return t.every(function(e,t){return e===r[t]})}function u(e,t,n){switch(t){case"flag":return n(e,"\ud83c\udff3\ufe0f\u200d\u26a7\ufe0f","\ud83c\udff3\ufe0f\u200b\u26a7\ufe0f")?!1:!n(e,"\ud83c\uddfa\ud83c\uddf3","\ud83c\uddfa\u200b\ud83c\uddf3")&&!n(e,"\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc65\udb40\udc6e\udb40\udc67\udb40\udc7f","\ud83c\udff4\u200b\udb40\udc67\u200b\udb40\udc62\u200b\udb40\udc65\u200b\udb40\udc6e\u200b\udb40\udc67\u200b\udb40\udc7f");case"emoji":return!n(e,"\ud83d\udc26\u200d\u2b1b","\ud83d\udc26\u200b\u2b1b")}return!1}function f(e,t,n){var r="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?new OffscreenCanvas(300,150):i.createElement("canvas"),a=r.getContext("2d",{willReadFrequently:!0}),o=(a.textBaseline="top",a.font="600 32px Arial",{});return e.forEach(function(e){o[e]=t(a,e,n)}),o}function t(e){var t=i.createElement("script");t.src=e,t.defer=!0,i.head.appendChild(t)}"undefined"!=typeof Promise&&(o="wpEmojiSettingsSupports",s=["flag","emoji"],n.supports={everything:!0,everythingExceptFlag:!0},e=new Promise(function(e){i.addEventListener("DOMContentLoaded",e,{once:!0})}),new Promise(function(t){var n=function(){try{var e=JSON.parse(sessionStorage.getItem(o));if("object"==typeof e&&"number"==typeof e.timestamp&&(new Date).valueOf()<e.timestamp+604800&&"object"==typeof e.supportTests)return e.supportTests}catch(e){}return null}();if(!n){if("undefined"!=typeof Worker&&"undefined"!=typeof OffscreenCanvas&&"undefined"!=typeof URL&&URL.createObjectURL&&"undefined"!=typeof Blob)try{var e="postMessage("+f.toString()+"("+[JSON.stringify(s),u.toString(),p.toString()].join(",")+"));",r=new Blob([e],{type:"text/javascript"}),a=new Worker(URL.createObjectURL(r),{name:"wpTestEmojiSupports"});return void(a.onmessage=function(e){c(n=e.data),a.terminate(),t(n)})}catch(e){}c(n=f(s,u,p))}t(n)}).then(function(e){for(var t in e)n.supports[t]=e[t],n.supports.everything=n.supports.everything&&n.supports[t],"flag"!==t&&(n.supports.everythingExceptFlag=n.supports.everythingExceptFlag&&n.supports[t]);n.supports.everythingExceptFlag=n.supports.everythingExceptFlag&&!n.supports.flag,n.DOMReady=!1,n.readyCallback=function(){n.DOMReady=!0}}).then(function(){return e}).then(function(){var e;n.supports.everything||(n.readyCallback(),(e=n.source||{}).concatemoji?t(e.concatemoji):e.wpemoji&&e.twemoji&&(t(e.twemoji),t(e.wpemoji)))}))}((window,document),window._wpemojiSettings);
/* ]]> */
</script>
<style id='wp-emoji-styles-inline-css' type='text/css'>
img.wp-smiley, img.emoji {
display: inline !important;
border: none !important;
box-shadow: none !important;
height: 1em !important;
width: 1em !important;
margin: 0 0.07em !important;
vertical-align: -0.1em !important;
background: none !important;
padding: 0 !important;
}
</style>
<link rel='stylesheet' id='wp-block-library-css' href='https://ya.zerocoder.ru/wp-content/plugins/gutenberg/build/block-library/style.css?ver=20.6.0' type='text/css' media='all' />
<style id='classic-theme-styles-inline-css' type='text/css'>
/*! This file is auto-generated */
.wp-block-button__link{color:#fff;background-color:#32373c;border-radius:9999px;box-shadow:none;text-decoration:none;padding:calc(.667em + 2px) calc(1.333em + 2px);font-size:1.125em}.wp-block-file__button{background:#32373c;color:#fff;text-decoration:none}
</style>
<link rel='stylesheet' id='prism-css-css' href='https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/themes/prism.min.css?ver=1.29.0' type='text/css' media='all' />
<style id='prism-css-inline-css' type='text/css'>
.code-block-container {
margin: 20px 0;
position: relative;
border-radius: 5px;
overflow: hidden;
box-shadow: 0 1px 3px rgba(0,0,0,0.2);
background-color: #1e1e1e;
}
.code-header {
display: flex!important;
justify-content: space-between;
align-items: center;
padding: 8px 15px;
background-color: #252525;
color: #fff;
font-family: Arial, sans-serif;
border-bottom: 1px solid #333;
}
.language-label {
font-weight: bold;
font-size: 14px;
color: #f8f8f8;
}
.copy-button {
background-color: #6366f1;
color: white;
border: none;
border-radius: 3px;
padding: 6px 12px;
cursor: pointer;
font-size: 14px;
transition: background-color 0.2s;
}
.copy-button:hover {
background-color: #4f46e5;
}
.copy-button.copied {
background-color: #10b981;
}
pre[class*="language-"] {
margin: 0 !important;
border-radius: 0 !important;
background-color: #1e1e1e !important;
font-family: "Consolas", "Monaco", monospace !important;
font-size: 14px !important;
white-space: pre !important;
word-wrap: normal !important;
overflow-x: auto !important;
}
code[class*="language-"] {
text-shadow: none !important;
white-space: pre !important;
word-wrap: normal !important;
display: block !important;
}
.line-numbers .line-numbers-rows {
border-right-color: rgba(255, 255, 255, 0.1) !important;
padding-left: 5px !important;
margin-top: 0 !important;
background-color: #252525 !important;
}
.line-numbers-rows > span:before {
color: rgba(255, 255, 255, 0.3) !important;
padding-right: 10px !important;
}
.token.tag, .token.attr-name { color: #e2777a !important; }
.token.attr-value, .token.string { color: #7ec699 !important; }
.token.comment { color: #7c7c7c !important; }
.token.function { color: #82aaff !important; }
.token.keyword { color: #c792ea !important; }
.token.operator { color: #89ddff !important; }
.token.punctuation { color: #ddd !important; }
</style>
<link rel='stylesheet' id='prism-theme-css' href='https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/themes/prism-tomorrow.min.css?ver=1.29.0' type='text/css' media='all' />
<link rel='stylesheet' id='prism-line-numbers-css' href='https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/plugins/line-numbers/prism-line-numbers.min.css?ver=1.29.0' type='text/css' media='all' />
<style id='global-styles-inline-css' type='text/css'>
:root{--wp--preset--aspect-ratio--square: 1;--wp--preset--aspect-ratio--4-3: 4/3;--wp--preset--aspect-ratio--3-4: 3/4;--wp--preset--aspect-ratio--3-2: 3/2;--wp--preset--aspect-ratio--2-3: 2/3;--wp--preset--aspect-ratio--16-9: 16/9;--wp--preset--aspect-ratio--9-16: 9/16;--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgba(6,147,227,1) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgba(252,185,0,1) 0%,rgba(255,105,0,1) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgba(255,105,0,1) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgba(255, 255, 255, 1), 6px 6px rgba(0, 0, 0, 1);--wp--preset--shadow--crisp: 6px 6px 0px rgba(0, 0, 0, 1);}:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}:where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;}:where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;}
:where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;}
:root :where(.wp-block-pullquote){font-size: 1.5em;line-height: 1.6;}
:where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;}
</style>
<link rel='stylesheet' id='mstteam-login-form-css' href='https://ya.zerocoder.ru/wp-content/plugins/custom-login-form-and-logout-redirect//assets/css/frontend.css?ver=1.0.0' type='text/css' media='all' />
<link rel='stylesheet' id='enlighterjs-css' href='https://ya.zerocoder.ru/wp-content/plugins/enlighter/cache/enlighterjs.min.css?ver=viWZ8n/HQnqfVbt' type='text/css' media='all' />
<script type="text/javascript" src="https://ya.zerocoder.ru/wp-includes/js/jquery/jquery.min.js?ver=3.7.1" id="jquery-core-js"></script>
<script type="text/javascript" src="https://ya.zerocoder.ru/wp-includes/js/jquery/jquery-migrate.min.js?ver=3.4.1" id="jquery-migrate-js"></script>
<script type="text/javascript" id="mstteam-login-form-js-extra">
/* <![CDATA[ */
var mstteam_data = {"ajax_url":"https:\/\/ya.zerocoder.ru\/wp-admin\/admin-ajax.php","home_url":"https:\/\/ya.zerocoder.ru","username_placeholder":"","username_placeholder_text":"Username or Email Address","password_placeholder":"","password_placeholder_text":"Password","flag_login_error":"","login_error_text":"Login failed: You have entered an incorrect Username or Password, please try again."};
/* ]]> */
</script>
<script type="text/javascript" src="https://ya.zerocoder.ru/wp-content/plugins/custom-login-form-and-logout-redirect//assets/js/frontend.js?ver=1.0.0" id="mstteam-login-form-js"></script>
<link rel="https://api.w.org/" href="https://ya.zerocoder.ru/wp-json/" /><link rel="alternate" title="JSON" type="application/json" href="https://ya.zerocoder.ru/wp-json/wp/v2/posts/581" /><link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://ya.zerocoder.ru/xmlrpc.php?rsd" />
<meta name="generator" content="WordPress 6.7.2" />
<link rel='shortlink' href='https://ya.zerocoder.ru/?p=581' />
<link rel="alternate" title="oEmbed (JSON)" type="application/json+oembed" href="https://ya.zerocoder.ru/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fya.zerocoder.ru%2Fpokazhi-eto-kliientu-naskolko-zierokodingh-dieshievlie-traditsionnoi-razrabotki%2F" />
<link rel="alternate" title="oEmbed (XML)" type="text/xml+oembed" href="https://ya.zerocoder.ru/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fya.zerocoder.ru%2Fpokazhi-eto-kliientu-naskolko-zierokodingh-dieshievlie-traditsionnoi-razrabotki%2F&format=xml" />
<meta name="redi-version" content="1.2.6" /><link rel="icon" href="https://ya.zerocoder.ru/wp-content/uploads/2023/03/favicon-32x32.png" sizes="32x32" />
<link rel="icon" href="https://ya.zerocoder.ru/wp-content/uploads/2023/03/favicon.png" sizes="192x192" />
<link rel="apple-touch-icon" href="https://ya.zerocoder.ru/wp-content/uploads/2023/03/favicon.png" />
<meta name="msapplication-TileImage" content="https://ya.zerocoder.ru/wp-content/uploads/2023/03/favicon.png" />
<!-- Yandex.Metrika counter 2 счетчика 74672059 и 72085663 -->
<script type="text/javascript" >
(function(m,e,t,r,i,k,a){m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)};
m[i].l=1*new Date();
for (var j = 0; j < document.scripts.length; j++) {if (document.scripts[j].src === r) { return; }}
k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)})
(window, document, "script", "https://mc.yandex.ru/metrika/tag.js", "ym");
ym(74672059, "init", {
clickmap:true,
trackLinks:true,
accurateTrackBounce:true,
webvisor:true
});
ym(72085663, "init", {
clickmap:true,
trackLinks:true,
accurateTrackBounce:true,
});
</script>
<noscript><div>
<img src="https://mc.yandex.ru/watch/74672059" style="position:absolute; left:-9999px;" alt="" /></div>
<img src="https://mc.yandex.ru/watch/72085663" style="position:absolute; left:-9999px;" alt="" /></div>
</noscript>
<!-- /Yandex.Metrika counter -->
<script>
// t_onReady(function () {
$(document).on('ready', function () {
var search = "?" + window.location.search.split("&").filter(function(val) {
var value = val.replace(/\?/, '');
return value.indexOf("s_") === -1 && value.indexOf("tfc_") === -1;
}).join("&").replace(/\?/, "");
if (search !== "?") {
var aLinks = document.querySelectorAll('a');
var arrayLinks = Array.from(aLinks);
arrayLinks.forEach(function (el) {
var href = el.getAttribute("href");
if (href && href.indexOf("") > -1 && href.indexOf("#") === -1) {
if (href.indexOf("?") === -1) {
el.setAttribute("href", href + search);
} else {
el.setAttribute("href", href + search.replace("?", "&"));
}
}
});
}
});
</script>
</head>
<body data-rsssl=1 class="post-template-default single single-post postid-581 single-format-standard is-loaded">
<div class="global-wrap">
<div class="global-content">
<header class="header-section">
<div class="header-wrap">
<div class="header-nav left-nav">
<div id="search-open-mob" class="header-search_mob" onclick="window.location.href='/search'">
<svg xmlns="http://www.w3.org/2000/svg" width="29" height="28" viewBox="0 0 29 28" fill="none">
<path fill-rule="evenodd" clip-rule="evenodd" d="M11.8923 22.4379C5.73102 22.4379 0.736328 17.4432 0.736328 11.2819C0.736328 5.12067 5.73102 0.125977 11.8923 0.125977C18.0535 0.125977 23.0482 5.12067 23.0482 11.2819C23.0482 13.8599 22.1738 16.2337 20.7053 18.1228L28.2179 25.6355L26.2458 27.6076L18.7332 20.0949C16.8441 21.5634 14.4703 22.4379 11.8923 22.4379ZM20.2595 11.2822C20.2595 15.9031 16.5135 19.6492 11.8926 19.6492C7.27161 19.6492 3.52559 15.9031 3.52559 11.2822C3.52559 6.66125 7.27161 2.91524 11.8926 2.91524C16.5135 2.91524 20.2595 6.66125 20.2595 11.2822Z" fill="#131313"/>
</svg>
</div>
<input id="toggle" class="header-checkbox" type="checkbox">
<label class="header-toggle" for="toggle">
<span>
<span class="bar"></span>
<span class="bar"></span>
<span class="bar"></span>
</span>
</label>
<nav>
<ul id="menu-menju-v-shapke" class=""><li id="menu-item-22847" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-22847"><a href="https://zerocoder.ru/?utm_source=magazine&utm_medium=knopka&utm_campaign=besplatnie#free&article_id=581&article_title=pokazhi-eto-klientu-naskolko-zerokoding-deshevle-tradicionnoj-razrabotki">бесплатные курсы</a></li>
<li id="menu-item-14" class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-14"><a href="https://ya.zerocoder.ru/tag/guides/">💡Гайды</a></li>
<li id="menu-item-16" class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-16"><a href="https://ya.zerocoder.ru/tag/reviews/">🔍 Интересное</a></li>
<li id="menu-item-15" class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-15"><a href="https://ya.zerocoder.ru/tag/cases/">💼 Кейсы</a></li>
<li id="menu-item-17" class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-17"><a href="https://ya.zerocoder.ru/tag/tools/">🛠 Инструменты</a></li>
<li id="menu-item-6531" class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-6531"><a href="https://ya.zerocoder.ru/tag/neural/">🧠 Нейросети</a></li>
<li id="menu-item-38" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-38"><a target="_blank" href="https://zerocoder.ru/?utm_source=magazine&utm_medium=knopka&utm_campaign=main&article_id=581&article_title=pokazhi-eto-klientu-naskolko-zerokoding-deshevle-tradicionnoj-razrabotki">📚 Курсы</a></li>
</ul> <ul class="nav_button">
<li>
<a href="https://zerocoder.ru/?utm_source=magazine&utm_medium=knopka&utm_campaign=besplatnie#free&article_id=581&article_title=pokazhi-eto-klientu-naskolko-zerokoding-deshevle-tradicionnoj-razrabotki" target="_blank">Бесплатные курсы</a>
</li>
</ul>
<ul class="left-nav-search">
<li id="search-open" class="header-search">
<span>Поиск</span><svg xmlns="http://www.w3.org/2000/svg" width="29" height="28" viewBox="0 0 29 28" fill="none">
<path fill-rule="evenodd" clip-rule="evenodd" d="M11.8923 22.4379C5.73102 22.4379 0.736328 17.4432 0.736328 11.2819C0.736328 5.12067 5.73102 0.125977 11.8923 0.125977C18.0535 0.125977 23.0482 5.12067 23.0482 11.2819C23.0482 13.8599 22.1738 16.2337 20.7053 18.1228L28.2179 25.6355L26.2458 27.6076L18.7332 20.0949C16.8441 21.5634 14.4703 22.4379 11.8923 22.4379ZM20.2595 11.2822C20.2595 15.9031 16.5135 19.6492 11.8926 19.6492C7.27161 19.6492 3.52559 15.9031 3.52559 11.2822C3.52559 6.66125 7.27161 2.91524 11.8926 2.91524C16.5135 2.91524 20.2595 6.66125 20.2595 11.2822Z" fill="#131313"/>
</svg>
</li>
</ul>
</nav>
<script>
document.addEventListener("DOMContentLoaded", function () {
if (window.innerWidth <= 1024) {
const menu = document.getElementById("menu-menju-v-shapke");
const menuItemsWithChildren = menu.querySelectorAll(".menu-item-has-children");
menuItemsWithChildren.forEach((menuItem) => {
const anchor = menuItem.querySelector("a");
anchor.addEventListener("click", function (event) {
if (!menuItem.classList.contains("active")) {
event.preventDefault();
}
menuItem.classList.add("active");
const siblingItems = Array.from(menuItem.parentNode.children).filter((sibling) => sibling !== menuItem);
siblingItems.forEach((siblingItem) => {
siblingItem.classList.add("hide");
});
if (!menuItem.querySelector("#menu-back")) {
const span = document.createElement("span");
span.id = "menu-back";
span.addEventListener("click", function (event) {
event.stopPropagation();
menuItem.classList.remove("hide", "active");
siblingItems.forEach((siblingItem) => {
siblingItem.classList.remove("hide");
});
menuItem.removeChild(span);
});
menuItem.appendChild(span);
}
});
});
}
});
</script>
</div>
<div class="header-logo">
<div class="header-logo__container">
<div class="header-logo__bracket">{</div>
<div class="is-title">
<a href="/">Я — зерокодер</a>
<h3 class="header-logo__slogan_mob global-underline">Медиа о нейросетях,<br> зерокодинге и онлайн-образовании</h3>
</div>
<div class="header-logo__bracket">}</div>
</div>
</div>
<h3 class="header-logo__slogan global-underline">Медиа о нейросетях, <br> зерокодинге и онлайн-образовании</h3>
<div class="header-logo__greedy-gap"></div>
<div class="header-right-nav">
<div id="search-open-2" class="header-search" onclick="window.location.href='/search'">
<span>Поиск</span><svg xmlns="http://www.w3.org/2000/svg" width="29" height="28" viewBox="0 0 29 28" fill="none">
<path fill-rule="evenodd" clip-rule="evenodd" d="M11.8923 22.4379C5.73102 22.4379 0.736328 17.4432 0.736328 11.2819C0.736328 5.12067 5.73102 0.125977 11.8923 0.125977C18.0535 0.125977 23.0482 5.12067 23.0482 11.2819C23.0482 13.8599 22.1738 16.2337 20.7053 18.1228L28.2179 25.6355L26.2458 27.6076L18.7332 20.0949C16.8441 21.5634 14.4703 22.4379 11.8923 22.4379ZM20.2595 11.2822C20.2595 15.9031 16.5135 19.6492 11.8926 19.6492C7.27161 19.6492 3.52559 15.9031 3.52559 11.2822C3.52559 6.66125 7.27161 2.91524 11.8926 2.91524C16.5135 2.91524 20.2595 6.66125 20.2595 11.2822Z" fill="#131313"/>
</svg>
</div>
<div class="header-link">
<a href="https://zerocoder.ru/?utm_source=magazine&utm_medium=knopka&utm_campaign=besplatnie#free&article_id=581&article_title=pokazhi-eto-klientu-naskolko-zerokoding-deshevle-tradicionnoj-razrabotki" target="_blank">блог</a>
</div>
</div>
<div class="header-nav right-nav" style="display:none;">
<nav>
<div id="search-open" class="header-search">
<span>Поиск</span><svg xmlns="http://www.w3.org/2000/svg" width="29" height="28" viewBox="0 0 29 28" fill="none">
<path fill-rule="evenodd" clip-rule="evenodd" d="M11.8923 22.4379C5.73102 22.4379 0.736328 17.4432 0.736328 11.2819C0.736328 5.12067 5.73102 0.125977 11.8923 0.125977C18.0535 0.125977 23.0482 5.12067 23.0482 11.2819C23.0482 13.8599 22.1738 16.2337 20.7053 18.1228L28.2179 25.6355L26.2458 27.6076L18.7332 20.0949C16.8441 21.5634 14.4703 22.4379 11.8923 22.4379ZM20.2595 11.2822C20.2595 15.9031 16.5135 19.6492 11.8926 19.6492C7.27161 19.6492 3.52559 15.9031 3.52559 11.2822C3.52559 6.66125 7.27161 2.91524 11.8926 2.91524C16.5135 2.91524 20.2595 6.66125 20.2595 11.2822Z" fill="#131313"/>
</svg>
</div>
<div class="header-link">
<a href="https://zerocoder.ru/?utm_source=magazine&utm_medium=knopka&utm_campaign=besplatnie#free&article_id=581&article_title=pokazhi-eto-klientu-naskolko-zerokoding-deshevle-tradicionnoj-razrabotki" target="_blank">бесплатные курсы</a>
</div>
</nav>
</div>
</div>
<div class="buttons-block">
<ul id="menu-menju-v-shapke-1" class="buttons-block__list"><li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-22847"><a href="https://zerocoder.ru/?utm_source=magazine&utm_medium=knopka&utm_campaign=besplatnie#free&article_id=581&article_title=pokazhi-eto-klientu-naskolko-zerokoding-deshevle-tradicionnoj-razrabotki">бесплатные курсы</a></li>
<li class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-14"><a href="https://ya.zerocoder.ru/tag/guides/">💡Гайды</a></li>
<li class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-16"><a href="https://ya.zerocoder.ru/tag/reviews/">🔍 Интересное</a></li>
<li class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-15"><a href="https://ya.zerocoder.ru/tag/cases/">💼 Кейсы</a></li>
<li class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-17"><a href="https://ya.zerocoder.ru/tag/tools/">🛠 Инструменты</a></li>
<li class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-6531"><a href="https://ya.zerocoder.ru/tag/neural/">🧠 Нейросети</a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-38"><a target="_blank" href="https://zerocoder.ru/?utm_source=magazine&utm_medium=knopka&utm_campaign=main&article_id=581&article_title=pokazhi-eto-klientu-naskolko-zerokoding-deshevle-tradicionnoj-razrabotki">📚 Курсы</a></li>
</ul><script>
document.addEventListener('DOMContentLoaded', function() {
// State tracking
let isButtonVisible = true;
let areAdditionalItemsVisible = false;
let isTagsBlockOpen = false;
// Функция для определения Safari
const isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);
function handleResponsiveMenu() {
const buttonsList = $('.buttons-block__list');
const moreTermsButton = '<li class="menu-item menu-item__btn menu-item__btn-more-term"><span class="global-underline">больше рубрик</span></li>';
const moreTermsIcon = '<li class="menu-item menu-item__btn menu-item__btn-more-term-icon"><span class="term-icon"></span></li>';
// Очищаем старые элементы
$('.menu-item__btn-free, .menu-item__btn-more-term, .menu-item__btn-more-term-icon').remove();
$('.buttons-block__list>li').removeClass('hidden');
// Обрабатываем отображение кнопки "меньше рубрик" в зависимости от разрешения
if (window.innerWidth < 1025) {
// На мобильной версии кнопка "меньше рубрик" видна
$('.tags-block__btn-less-term').removeClass('hidden');
} else {
// На десктопной версии кнопка "меньше рубрик" скрыта
$('.tags-block__btn-less-term').addClass('hidden');
}
if (window.innerWidth < 1025) {
// Мобильная версия - сохраняем старый функционал (без кнопки бесплатные курсы)
$('.buttons-block__list>li:nth-child(2)').after(moreTermsButton);
// Применяем состояние видимости дополнительных пунктов
if (!areAdditionalItemsVisible) {
$('.buttons-block__list>li:gt(2)').addClass('hidden');
}
// Обработчик клика по кнопке "больше рубрик" для мобильной версии
$('.menu-item__btn-more-term').off('click').on('click', function(e) {
e.preventDefault();
isButtonVisible = false;
areAdditionalItemsVisible = true;
$('.tags-block-2').removeClass('hidden');
$('.buttons-block__list>li:gt(2)').removeClass('hidden');
$(this).addClass('hidden');
});
} else {
// Десктопная версия - новый функционал с иконкой
buttonsList.append(moreTermsIcon);
// Обработчик клика по иконке для десктопной версии
$('.menu-item__btn-more-term-icon').off('click').on('click', function(e) {
e.preventDefault();
isTagsBlockOpen = !isTagsBlockOpen;
if (isTagsBlockOpen) {
// Открываем блок тегов
$('body').append('<div class="overlay"></div>');
$('.tags-block-2').removeClass('hidden');
$(this).addClass('active'); // Добавляем класс для стилизации активной иконки
} else {
// Закрываем блок тегов
$('.tags-block-2').addClass('hidden');
$('.overlay').remove();
$(this).removeClass('active');
}
});
}
// Для Safari добавляем дополнительную проверку
if (isSafari) {
requestAnimationFrame(() => {
// Восстанавливаем состояние видимости кнопки только для мобильной версии
if (window.innerWidth < 1025 && !isButtonVisible) {
$('.menu-item__btn-more-term').addClass('hidden');
}
});
} else {
// Для остальных браузеров и мобильной версии
if (window.innerWidth < 1025 && !isButtonVisible) {
$('.menu-item__btn-more-term').addClass('hidden');
}
}
}
// Сохраняем оригинальный обработчик кнопки "меньше рубрик"
$(document).off('click', '.tags-block__btn-less-term').on('click', '.tags-block__btn-less-term', function(e) {
e.preventDefault(); // Предотвращаем возможные побочные эффекты в Safari
isButtonVisible = true;
areAdditionalItemsVisible = false;
$('.tags-block-2').addClass('hidden');
$('.overlay').remove();
$('.menu-item__btn-more-term').removeClass('hidden');
if (window.innerWidth < 1025) {
$('.buttons-block__list>li:gt(2)').addClass('hidden');
}
});
// Обработчик клика по оверлею
$(document).off('click', '.overlay').on('click', '.overlay', function() {
$('.tags-block-2').addClass('hidden');
$('.overlay').remove();
isTagsBlockOpen = false;
$('.menu-item__btn-more-term-icon').removeClass('active');
});
// Обработчик изменения ориентации экрана
window.addEventListener('orientationchange', function() {
// Увеличиваем задержку для Safari
const delay = isSafari ? 300 : 100;
setTimeout(function() {
handleResponsiveMenu();
// Сбрасываем состояние при смене ориентации
if (window.innerWidth >= 1025) {
isTagsBlockOpen = false;
}
}, delay);
});
// Обработчик изменения размера окна с debounce
let resizeTimeout;
window.addEventListener('resize', function() {
clearTimeout(resizeTimeout);
// Увеличиваем задержку для Safari
const delay = isSafari ? 400 : 250;
resizeTimeout = setTimeout(function() {
handleResponsiveMenu();
// Сбрасываем состояние при переходе между мобильной и десктопной версиями
if (window.innerWidth >= 1025) {
isTagsBlockOpen = false;
}
}, delay);
});
// Принудительно запускаем обработчик после полной загрузки страницы
window.addEventListener('load', function() {
handleResponsiveMenu();
});
// Инициализация
handleResponsiveMenu();
});
</script>
</div>
<div class="tags-block-2 hidden">
<div>
<a class="tags-block__item-2" href="https://ya.zerocoder.ru/tag/neural/">#Нейросети</a>
<a class="tags-block__item-2" href="https://ya.zerocoder.ru/tag/cases/">#Кейсы</a>
<a class="tags-block__item-2" href="https://ya.zerocoder.ru/tag/guides/">#Гайды</a>
<a class="tags-block__item-2" href="https://ya.zerocoder.ru/tag/reviews/">#Интересное</a>
<a class="tags-block__item-2" href="https://ya.zerocoder.ru/tag/tools/">#Инструменты</a>
<a class="tags-block__item-2" href="https://ya.zerocoder.ru/tag/avtomatizatsiia/">#Автоматизация</a>
<a class="tags-block__item-2" href="https://ya.zerocoder.ru/tag/dliabizniesa/">#Для Бизнеса</a>
<a class="tags-block__item-2" href="https://ya.zerocoder.ru/tag/dlya-detej/">#Для детей</a>
<a class="tags-block__item-2" href="https://ya.zerocoder.ru/tag/analitika/">#Аналитика</a>
<a class="tags-block__item-2" href="https://ya.zerocoder.ru/tag/veb-razrabotka/">#Веб-разработка</a>
<a class="tags-block__item-2" href="https://ya.zerocoder.ru/tag/mobilnaya-razrabotka/">#Мобильная разработка</a>
<a class="tags-block__item-2" href="https://ya.zerocoder.ru/tag/optimizatsiia/">#Оптимизация</a>
<a class="tags-block__item-2" href="https://ya.zerocoder.ru/tag/bazy-dannykh/">#Базы данных</a>
<a class="tags-block__item-2" href="https://ya.zerocoder.ru/tag/news/">#Новости</a>
<span class="tags-block__btn-less-term global-underline">меньше рубрик</span>
<script>
$('.tags-block__btn-less-term').on('click',(e)=>{
$('.tags-block-2').addClass('hidden');
$('.overlay').remove();
$('.menu-item__btn-more-term').removeClass('hidden')
if(window.innerWidth<1025){
console.log($('.buttons-block__list>li:gt(3)'))
$('.buttons-block__list>li:gt(3)').addClass('hidden')
}
})
</script>
</div>
</div>
<div class="breadcrumbs-block" style="display:none;">
<p id="breadcrumbs"><span><span><a href="https://ya.zerocoder.ru/">Главная страница</a></span> » <span class="breadcrumb_last" aria-current="page">Покажи это клиенту: насколько зерокодинг дешевле традиционной разработки</span></span></p> </div>
<div class="tags-block" style="display:none;">
<a class="tags-block__item" href="https://ya.zerocoder.ru/tag/neural/">#Нейросети</a>
<a class="tags-block__item" href="https://ya.zerocoder.ru/tag/cases/">#Кейсы</a>
<a class="tags-block__item" href="https://ya.zerocoder.ru/tag/guides/">#Гайды</a>
<a class="tags-block__item" href="https://ya.zerocoder.ru/tag/reviews/">#Интересное</a>
<span class="tags-block__btn-more">Больше тэгов</span>
<a class="tags-block__item tags-block__item_hidden" href="https://ya.zerocoder.ru/tag/tools/">#Инструменты</a>
<a class="tags-block__item tags-block__item_hidden" href="https://ya.zerocoder.ru/tag/avtomatizatsiia/">#Автоматизация</a>
<a class="tags-block__item tags-block__item_hidden" href="https://ya.zerocoder.ru/tag/dliabizniesa/">#Для Бизнеса</a>
<a class="tags-block__item tags-block__item_hidden" href="https://ya.zerocoder.ru/tag/dlya-detej/">#Для детей</a>
<a class="tags-block__item tags-block__item_hidden" href="https://ya.zerocoder.ru/tag/analitika/">#Аналитика</a>
<a class="tags-block__item tags-block__item_hidden" href="https://ya.zerocoder.ru/tag/veb-razrabotka/">#Веб-разработка</a>
<a class="tags-block__item tags-block__item_hidden" href="https://ya.zerocoder.ru/tag/mobilnaya-razrabotka/">#Мобильная разработка</a>
<a class="tags-block__item tags-block__item_hidden" href="https://ya.zerocoder.ru/tag/optimizatsiia/">#Оптимизация</a>
<a class="tags-block__item tags-block__item_hidden" href="https://ya.zerocoder.ru/tag/bazy-dannykh/">#Базы данных</a>
<a class="tags-block__item tags-block__item_hidden" href="https://ya.zerocoder.ru/tag/news/">#Новости</a>
<span class="tags-block__btn-less">Меньше тэгов</span>
</div>
<!-- <script>
console.log('window.innerWidth')
console.log(window.innerWidth)
if(window.innerWidth>1025){
$('.tags-block__item').removeClass('tags-block__item_hidden')
$('.tags-block__btn-more').css('display','none')
}
$('.tags-block__btn-more').on('click',(e)=>{
$('.tags-block__item').removeClass('tags-block__item_hidden')
$('.tags-block__btn-less').css('display','inline')
$('.tags-block__btn-more').css('display','none')
})
$('.tags-block__btn-less').on('click',(e)=>{
$('.tags-block__item:gt(3)').addClass('tags-block__item_hidden')
$('.tags-block__btn-less').css('display','none')
$('.tags-block__btn-more').css('display','inline')
})
</script> -->
<!-- <div id="search-section" class="search-section">
<div id="search-content" class="search-content ajax-search-container">
<span class="search-text">Главная — поиск по статьям</span>
<form class="search-form ajax-search-form" onsubmit="return false">
<input id="search-input" class="ajax-search-field" name="s" type="text" placeholder="поиск по статьям...">
<input type="hidden" name="action" value="search_action">
<button class="search-btn" id="search-button" type="button">
найти
</button>
</form>
<div id="search-results" class="search-results ajax-search-results"></div>
</div>
<div id="search-overlay" class="search-overlay"></div>
</div> -->
</header>
<main class="global-main">
<progress class="post-progress"></progress>
<div class="breadcrubms">
<a href="/">Главная</a>
<a href="">— Покажи это клиенту: насколько зерокодинг дешевле традиционной разработки</a>
</div>
<article class="post-section">
<div class="post-header item is-hero is-first is-image">
<div class="item-container global-color">
<div class="item-image global-image global-color">
<img src="https://ya.zerocoder.ru/wp-content/uploads/2023/03/3-8-1-1-1024x640.png" alt="Покажи это клиенту: насколько зерокодинг дешевле традиционной разработки">
</div>
<div class="item-content">
<div class="item-meta global-meta">
<div class="post-dates">
<span class="published-date">
Опубликовано: 9 июня 2021 г. </span>
<span class="updated-date">
Обновлено: 11 июля 2023 г. </span>
</div>
by <span class="global-author-link"><a href="https://ya.zerocoder.ru/author/admin/" title="Записи Редакция" rel="author">Редакция</a></span>
<span class="global-reading">— не больше 4 мин</span>
</div>
<h1 class="item-title">Покажи это клиенту: насколько зерокодинг дешевле традиционной разработки</h1>
<p class="item-excerpt">
<p>Разбираемся, что бизнесу выгоднее — зерокодинг или традиционная разработка.</p>
</p>
<script type="application/ld+json">{
"@context": "https://schema.org",
"@type": "Article",
"@id": "https://ya.zerocoder.ru/pokazhi-eto-kliientu-naskolko-zierokodingh-dieshievlie-traditsionnoi-razrabotki/#article",
"inLanguage": "ru",
"url": "https://ya.zerocoder.ru/pokazhi-eto-kliientu-naskolko-zierokodingh-dieshievlie-traditsionnoi-razrabotki/",
"mainEntityOfPage": "https://ya.zerocoder.ru/pokazhi-eto-kliientu-naskolko-zierokodingh-dieshievlie-traditsionnoi-razrabotki/",
"headline": "Покажи это клиенту: насколько зерокодинг дешевле традиционной разработки",
"description": "Разбираемся, что бизнесу выгоднее — зерокодинг или традиционная разработка.",
"datePublished": "2021-06-09T07:08:06+03:00",
"dateModified": "2023-07-11T20:34:39+03:00",
"image": {
"@type": "ImageObject",
"url": "https://ya.zerocoder.ru/wp-content/uploads/2023/03/3-8-1-1.png",
"width": 1440,
"height": 900
},
"author": {
"@type": "Person",
"name": "Редакция",
"url": "https://ya.zerocoder.ru/author/admin/"
},
"articleSection": [
"Для Бизнеса",
"Интересное"
],
"articleBody": "Обычно, средний и крупный бизнес заказывает разработку мобильного приложения у студий с командой дизайнеров, разработчиков и менеджеров. Небольшие проекты и приложения для малого бизнеса чаще делают фрилансеры. Но в обоих случаях ценник достигает семизначных сумм, а производство растягивается на месяцы. Некоторые «прошаренные» предприниматели заказывают разработку у зерокодеров, чтобы сэкономить деньги и быстрее получить результат. Мы сравнили стоимость и время традиционной разработки и зерокодинга на примере мобильного приложения для фитнес-клуба и выяснили, насколько скорее и дешевле обходится создание типового проекта без кода.Почему зерокодинг это быстрее и дешевле традиционной разработкиВ традиционной разработке мобильное приложение собирает команда программистов, дизайнеров и менеджеров. Зерокодер делает все сам, иногда вместе с двумя-тремя зерокодерами, если проект большой. Вот как происходит разработка в классической студии:Клиент заказывает проект;Менеджеры уточняют…",
"potentialAction": {
"@type": "ReadAction",
"target": "https://ya.zerocoder.ru/pokazhi-eto-kliientu-naskolko-zierokodingh-dieshievlie-traditsionnoi-razrabotki/"
}
}</script> <div class="item-tags-n-tab-of-cont">
<div class="item-tags-n-tab-of-cont__header">
<div class="item-tab-of-cont__title">Содержание
<span class="item-tab-of-cont__title-chevron item-tab-of-cont__title-chevron_down">
<svg width="13" height="10" viewBox="0 0 13 10" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M11.5293 9.29211L6.65673 2.42629L1.25879 9.29211" stroke="#131313" stroke-width="2"/></svg> </span>
</div>
<div class="item-tags global-tags">
<a href="https://ya.zerocoder.ru/tag/dliabizniesa/" class="global-tags-hash-sign">Для Бизнеса</a>
<a href="https://ya.zerocoder.ru/tag/reviews/" class="global-tags-hash-sign">Интересное</a>
</div>
</div>
<ul class="item-tab-of-cont__list hidden-soft">
<li class="item-tab-of-cont__item-h2">Почему зерокодинг это быстрее и дешевле традиционной разработки</li>
<li class="item-tab-of-cont__item-h2">Составляем задание для студии разработки</li>
<li class="item-tab-of-cont__item-h2">Во сколько по деньгам и времени обойдется традиционная разработка</li>
<li class="item-tab-of-cont__item-h2">Сколько стоит назерокодить приложение</li>
</ul>
</div>
<script>
$('.item-tab-of-cont__title').on('click',(e)=>{
if($('.item-tab-of-cont__title-chevron').hasClass('item-tab-of-cont__title-chevron_down')){
$('.item-tab-of-cont__title-chevron').removeClass('item-tab-of-cont__title-chevron_down')
$('.item-tab-of-cont__list').removeClass('hidden-soft')
}else{
$('.item-tab-of-cont__title-chevron').addClass('item-tab-of-cont__title-chevron_down')
$('.item-tab-of-cont__list').addClass('hidden-soft')
}
});
</script>
<script>
ym(74672059,'reachGoal','pageview_beginners');
</script>
</div>
</div>
</div>
<div class="leyout">
<div class="layout-content">
<div class="post-content">
<!-- Отладка: show1=NULL (тип: NULL), show1_disabled=false, show2=NULL (тип: NULL), show2_disabled=false, h2_count=4 --><!-- Проверка FreeCourse прошла успешно --><!-- Добавлен блок для отображения: пайтон --><!-- Добавлен блок для отображения: нейросети_2 --><!-- Добавлен блок для отображения: нейросети_1 --><!-- Проверка DoubleCourse прошла успешно --><!-- Добавлен блок для отображения: перплексити2 --><!-- Добавлен блок для отображения: нейросети_и_бизнес_1 --><!-- FreeCourse блок вставлен перед вторым h2 --><p data-order="start">Обычно, средний и крупный бизнес заказывает разработку мобильного приложения у студий с командой дизайнеров, разработчиков и менеджеров. Небольшие проекты и приложения для малого бизнеса чаще делают фрилансеры. Но в обоих случаях ценник достигает семизначных сумм, а производство растягивается на месяцы. </p>
<p data-order="p_1">Некоторые «прошаренные» предприниматели заказывают разработку у зерокодеров, чтобы сэкономить деньги и быстрее получить результат. Мы сравнили стоимость и время традиционной разработки и зерокодинга на примере мобильного приложения для фитнес-клуба и выяснили, насколько скорее и дешевле обходится создание типового проекта без кода.</p>
<h2 data-order="h2_1" id="%D0%BF%D0%BE%D1%87%D0%B5%D0%BC%D1%83-%D0%B7%D0%B5%D1%80%D0%BE%D0%BA%D0%BE%D0%B4%D0%B8%D0%BD%D0%B3-%D1%8D%D1%82%D0%BE-%D0%B1%D1%8B%D1%81%D1%82%D1%80%D0%B5%D0%B5-%D0%B8-%D0%B4%D0%B5%D1%88%D0%B5%D0%B2%D0%BB%D0%B5-%D1%82%D1%80%D0%B0%D0%B4%D0%B8%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D0%BE%D0%B9-%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B8">Почему зерокодинг это быстрее и дешевле традиционной разработки</h2>
<p data-order="p_2">В традиционной разработке мобильное приложение собирает команда программистов, дизайнеров и менеджеров. Зерокодер делает все сам, иногда вместе с двумя-тремя зерокодерами, если проект большой. </p>
<p data-order="p_3">Вот как происходит разработка в классической студии:</p>
<ul data-order="ul_1">
<li>Клиент заказывает проект;</li>
<li>Менеджеры уточняют задачу, составляют техническое задание и согласуют с клиентом;</li>
<li>Дизайнеры в лучшем случае две недели рисуют макет;</li>
<li>Разработчики пишут код в лучшем случае около двух месяцев;</li>
<li>Клиент вносит правки и отдает приложение на доработку. Количество итераций правок зависит от квалификации студии, условий договора и дотошности заказчика;</li>
<li>Студия и клиент согласовывают проект.</li>
</ul>
<p data-order="p_4">В зерокодинге процесс проще. Все или большую часть задач решает один человек, и заказчик общается напрямую с исполнителем. Поэтому можно быстро согласовать техническое задание, внести правки и не ждать результата неделями. Высокая скорость и низкие трудозатраты снижают стоимость заказа.</p>
<figure class="kg-card kg-image-card kg-card-hascaption"><a href="https://lh6.googleusercontent.com/9u7IAPLCB_vdrhWF0Lsr-twG9HoOM2_GwavG3A96FbU3031XYu4DVnQYBXDotV6FTRowno9c94hTyZymwO3bMGgOmvPfCkqUtZps-V_1nVRLg1nljBNbNJq5opsO9hhKw9e-Z2y8" data-fancybox="gallery" data-caption=""><img data-order="img_1" decoding="async" src="https://lh6.googleusercontent.com/9u7IAPLCB_vdrhWF0Lsr-twG9HoOM2_GwavG3A96FbU3031XYu4DVnQYBXDotV6FTRowno9c94hTyZymwO3bMGgOmvPfCkqUtZps-V_1nVRLg1nljBNbNJq5opsO9hhKw9e-Z2y8" class="kg-image" alt loading="lazy"></a><figcaption><em>На схеме видно, что с зерокодингом клиент счастлив</em></figcaption></figure>
<p data-order="p_5">Благодаря этому снижаются две критически <a href="https://ya.zerocoder.ru//zierokodingh-dienghi-dva-tula-kak-zarabotat-na-rievoliutsii-v-mobilnoi-razrabotkie/">важные для бизнеса штуки</a>: Time to market и Cost to market. Продукты поставляются на рынок быстрее и с меньшими затратами.</p>
<p data-order="p_6">После запуска приложения почти всегда вскрываются баги и «узкие места»: в квитанции неверно отображаются данные заказа или в CRM сохраняются не все лиды. В нативном приложении проблемы возникают из-за обновлений Android и iOS. Поэтому нужен программист, который исправит ошибки, обновит и улучшит программу.</p>
<p data-order="p_7">Некоторые нанимают разработчика со стороны, но это кот в мешке: разбираться в чужом коде тяжело, программист может не потянуть. В лучшем случае потратите деньги, в худшем «мастер» добьет программу и пропадет с радаров, а вы останетесь без приложения и клиентов. </p>
<p data-order="p_8">Более безопасный, но дорогой вариант — заключить договор со студией, которая разработала приложение. Иногда сопровождение входит в стоимость проекта. В любом случае об обязанностях лучше договориться на берегу: чем точнее прописаны обязанности, тем качественнее поддержка. </p>
<p data-order="p_9">И снова с зерокодингом проще и дешевле. Можно договориться о сопровождении с исполнителем, нанять другого зерокодера или <a href="https://ya.zerocoder.ru//vam-nie-nuzhien-proghrammist-kak-naiti-zierokodiera-u-siebia-ili-vyrastit-iegho-v-komandie/">вырастить своего</a> — все варианты выигрышные. Ноукод-платформы универсальны, их проще освоить, поэтому хорошего зерокодера найти проще, чем среднего программиста.</p>
<figure class="kg-card kg-image-card"><a href="https://lh4.googleusercontent.com/AxGa8iyBsrGCuwfHjqqMDt1W0edIyRCwMyTyzFxF2W8441RKeufMMguj3moIMgMT6adDwRhxrppb05FqLN5KM2wl-PoOrcBByyFAwi_rCtrAexPhYxsaUmP1_BthFBnr0wM1mhRD" data-fancybox="gallery" data-caption=""><img data-order="img_2" decoding="async" src="https://lh4.googleusercontent.com/AxGa8iyBsrGCuwfHjqqMDt1W0edIyRCwMyTyzFxF2W8441RKeufMMguj3moIMgMT6adDwRhxrppb05FqLN5KM2wl-PoOrcBByyFAwi_rCtrAexPhYxsaUmP1_BthFBnr0wM1mhRD" class="kg-image" alt loading="lazy"></a></figure>
<p data-order="p_10">Чтобы сравнить стоимость разработки на коде и зерокоде, мы составим задание для студий и попросим оценить проект. Некоторые студии предлагают рассчитать чек самостоятельно на их сайте, но полученная сумма редко совпадает с реальной.</p>
<blockquote><p data-order="p_11"><a href="https://ya.zerocoder.ru//kak-sobrat-mobilnoie-prilozhieniie-biez-navykov-proghrammirovaniia-i-vylozhit-iegho-v-story-obzor-siervisa-adalo/">Как собрать мобильное приложение без навыков программирования и выложить его в сторы: обзор сервиса Adalo</a></p></blockquote>
<!-- Выводим блок бесплатного курса с ID: пайтон, Приоритет: 5 -->
<!--Блок о бесплатном курсе-->
<div class="free-course-block">
<div class="free-course-block__container_m">
<div class="free-course-block__top-content-wrap">
<div class="free-course-block__title"><span class="global-underline">ОНЛАЙН-ПРАКТИКУМ</span></div>
<div class="free-course-block__text">ЗАПУСК DEEPSEEK R1 ЛОКАЛЬНО НА СВОЕМ КОМПЬЮТЕРЕ</div>
</div>
<div class="free-course-block__image-wrap"><img class="free-course-block__image" src="https://ya.zerocoder.ru/wp-content/uploads/2024/12/free-course-img.png"></div>
<div class="free-course-block__wrap"><div class="free-course-block__subtitle">ЧТО БУДЕТ НА ОБУЧЕНИИ?</div><ul class="free-course-block__list"><li class="free-course-block__list-item">ПОКАЖЕМ, КАК РАЗВЕРНУТЬ МОДЕЛЬ DEEPSEEK R1 ПРЯМО НА СВОЁМ КОМПЬЮТЕРЕ </li><li class="free-course-block__list-item">Где и как применять? Потестируем модель после установки на разных задачах</li><li class="free-course-block__list-item">Как дообучить модель под себя?</li></ul></div>
<div class="free-course-block__button__wrap"><a class="free-course-block__button" href="https://zerocoder.ru/deepseek-r1-lesson?utm_source=magazine&utm_medium=knopka-tekst&utm_campaign=deepseekr1singl&article_id=581&article_title=pokazhi-eto-klientu-naskolko-zerokoding-deshevle-tradicionnoj-razrabotki" data-block-id="пайтон">Участвовать бесплатно</a></div>
</div>
</div>
<h2 data-order="h2_2" id="%D1%81%D0%BE%D1%81%D1%82%D0%B0%D0%B2%D0%BB%D1%8F%D0%B5%D0%BC-%D0%B7%D0%B0%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5-%D0%B4%D0%BB%D1%8F-%D1%81%D1%82%D1%83%D0%B4%D0%B8%D0%B8-%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B8">Составляем задание для студии разработки</h2>
<p data-order="p_12">Мы немного схитрили и сделали задание по готовому мобильному приложению для <a href="https://kangooclub.derastudio.ru/">Kangoo Club Kaluga</a>. Через него клиенты необычного фитнес-клуба записываются на тренировки и бронируют экипировку. Приложение опубликовано в Play Market и App Store.</p>
<figure class="kg-card kg-image-card kg-card-hascaption"><a href="https://lh3.googleusercontent.com/yc978ED5x-k962BuYENqOJBCLTDSyuEAGG3Ydcrw9H4Ld3hn6Evm7iHIqcrd5PG2oj1IQ5ZXDPehRpGB_IElVIwetVi39h-5isWsEaAAxnXoXWjECcb8km3zvlAxyK1aawiNVPWN" data-fancybox="gallery" data-caption=""><img data-order="img_3" decoding="async" src="https://lh3.googleusercontent.com/yc978ED5x-k962BuYENqOJBCLTDSyuEAGG3Ydcrw9H4Ld3hn6Evm7iHIqcrd5PG2oj1IQ5ZXDPehRpGB_IElVIwetVi39h-5isWsEaAAxnXoXWjECcb8km3zvlAxyK1aawiNVPWN" class="kg-image" alt loading="lazy"></a><figcaption><em>Так выглядит приложение</em></figcaption></figure>
<p data-order="p_13">Вот что есть в Kangoo Club Kaluga:</p>
<ul data-order="ul_2">
<li>регистрация новых пользователей;</li>
<li>профиль клиента с данными об абонементе: вид и описание абонемента, сколько тренировок осталось;</li>
<li>календарь тренировок со свободными датами;</li>
<li>запись на занятие: если пользователь не приходит или отменяет тренировку меньше чем за два часа, она списывается с абонемента;</li>
<li>push-уведомления, которые напоминают о занятии или сообщают, когда открылась запись;</li>
<li>можно смотреть профили тех, кто придет на занятия;</li>
<li>админка, чтобы добавлять или отменять занятия и виды тренировок.</li>
</ul>
<p data-order="p_14">Это и есть список требований к проекту. Добавим, что приложение нужно опубликовать в <a href="https://ya.zerocoder.ru//kak-zaghruzit-prilozhieniie-na-adalo-v-google-play/">Google Play</a> и <a href="https://ya.zerocoder.ru//kak-zaghruzit-prilozhieniie-na-adalo-v-app-store-poshaghovaia-instruktsiia/">App Store</a> и получится задание для студии. По нему исполнители составят техническое задание и оценят стоимость проекта.</p>
<blockquote><p data-order="p_15">Подключайтесь к сообществу «<a href="https://t.me/oqode">Я — зерокодер</a>» в Телеграме, чтобы узнать о новых инструментах, изучать кейсы коллег и обмениваться опытом.</p></blockquote>
<h2 data-order="h2_3" id="%D0%B2%D0%BE-%D1%81%D0%BA%D0%BE%D0%BB%D1%8C%D0%BA%D0%BE-%D0%BF%D0%BE-%D0%B4%D0%B5%D0%BD%D1%8C%D0%B3%D0%B0%D0%BC-%D0%B8-%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%B8-%D0%BE%D0%B1%D0%BE%D0%B9%D0%B4%D0%B5%D1%82%D1%81%D1%8F-%D1%82%D1%80%D0%B0%D0%B4%D0%B8%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D0%B0%D1%8F-%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0">Во сколько по деньгам и времени обойдется традиционная разработка</h2>
<p data-order="p_16">Мы отправили задание в пять первых студии из поисковой выдачи Яндекса. Их можно найти по запросу «заказать разработку мобильного приложения». </p>
<p data-order="p_17">Только одна студия сразу сказала, сколько стоит проект по нашим требованиям. С остальными несколько дней уточняли пункты, а одна настаивала на созвоне и «более тесном контакте». Спустя неделю все студии прислали примерный чек:</p>
<ul data-order="ul_3">
<li><strong>Студия №1</strong> — 5-6 млн руб, срок разработки 3-4 месяца.</li>
<li><strong>Студия №2 </strong>— 4 млн руб, срок 4 месяца.</li>
<li><strong>Студия №3 </strong>— 3-4 млн руб, срок 4 месяца.</li>
<li><strong>Студия №4</strong> — 2 млн руб, срок от 4 месяцев.</li>
<li><strong>Студия №5 </strong>— 4 млн руб, срок 3 месяца.</li>
</ul>
<p data-order="p_18"><strong>Средний чек</strong> — 3,8 млн руб.</p>
<figure class="kg-card kg-image-card"><a href="https://ya.zerocoder.ru/wp-content/uploads/2023/03/3-8.png" data-fancybox="gallery" data-caption=""><img data-order="img_4" decoding="async" src="https://ya.zerocoder.ru/wp-content/uploads/2023/03/3-8.png" class="kg-image" alt loading="lazy" width="1440" height="900" srcset="https://ya.zerocoder.ru/wp-content/uploads/2023/03/3-8-1.png 600w, https://ya.zerocoder.ru/wp-content/uploads/2023/03/3-8-2.png 1000w, https://ya.zerocoder.ru/wp-content/uploads/2023/03/3-8.png 1440w" sizes="auto, (min-width: 720px) 720px"></a></figure>
<p data-order="p_19">Вот по каким параметрам оценивают стоимость:</p>
<ul data-order="ul_4">
<li>тип приложения — простой сервис с модерацией и блогом дешевле чат-бота или мессенджера;</li>
<li>кроссплатформенность — приложение под одну операционную систему дешевле, чем под обе;</li>
<li>нагрузка на сервер — чем выше частота и продолжительность посещений, тем мощнее и дороже сервер;</li>
<li>дизайн под ключ с иконками, анимацией и баннерами обойдется примерно в 600-800 тыс. руб;</li>
<li>тестирование — на проверку возможных ошибок и вариантов нестандартного использования уходит неделя и примерно 100 тыс. рублей;</li>
<li>дополнительные услуги — студии составляют техническую документацию, маркетинговую стратегию и даже отвечают на комментарии в сторах. Стоимость и набор услуг зависят от студии.</li>
</ul>
<p data-order="p_20">За техническую поддержку берут единоразово от 20 до 60 тыс. руб., они входят в стоимость проекта. Она включает ежемесячные обновления и исправление непредвиденных ошибок. За более серьезные обновления, например, новые функции и увеличение пропускной способности, придется платить отдельно.</p>
<h2 data-order="h2_4" id="%D1%81%D0%BA%D0%BE%D0%BB%D1%8C%D0%BA%D0%BE-%D1%81%D1%82%D0%BE%D0%B8%D1%82-%D0%BD%D0%B0%D0%B7%D0%B5%D1%80%D0%BE%D0%BA%D0%BE%D0%B4%D0%B8%D1%82%D1%8C-%D0%BF%D1%80%D0%B8%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5">Сколько стоит назерокодить приложение</h2>
<p data-order="p_21">Сергей Горелов <a href="https://ya.zerocoder.ru//kak-vypustit-prilozhieniie-fitnies-kluba-v-story-sobrat-s-nulia-za-2-niedieli-i-biez-koda/">собрал приложение Kangoo Club</a> Kaluga на <a href="https://ya.zerocoder.ru//kak-sobrat-mobilnoie-prilozhieniie-biez-navykov-proghrammirovaniia-i-vylozhit-iegho-v-story-obzor-siervisa-adalo/">Adalo</a> — онлайн-конструкторе мобильных приложений. Проекты из Adalo можно публиковать в Play Market, App Store или как <a href="https://ya.zerocoder.ru//chto-takoe-pwa-prilozheniya-i-chem-oni-otlichayutsya-ot-nativnyh/">PWA-приложение</a>. Интерфейс в платформе собирают из готовых графических компонентов или пишут свои на JavaScript.</p>
<figure class="kg-card kg-image-card kg-card-hascaption"><a href="https://lh6.googleusercontent.com/qCabkvIMOPavRQwrHMbJS_TB0txsubbLH9nfY1w8YmsbanNobviucdq0mMI7zKIU1pdsHuJNRCo9-IUFmfyAqXEv0t2okFvzkocU3Sr2NdMSHQvzo4g4L9muafQiAcfKwkIjJ42s" data-fancybox="gallery" data-caption=""><img data-order="img_5" decoding="async" src="https://lh6.googleusercontent.com/qCabkvIMOPavRQwrHMbJS_TB0txsubbLH9nfY1w8YmsbanNobviucdq0mMI7zKIU1pdsHuJNRCo9-IUFmfyAqXEv0t2okFvzkocU3Sr2NdMSHQvzo4g4L9muafQiAcfKwkIjJ42s" class="kg-image" alt loading="lazy"></a><figcaption><em>Интерфейс Adalo</em></figcaption></figure>
<p data-order="p_22">Дизайн и логику Сергей делал сам, поэтому заплатил только 50 $ за <a href="https://www.adalo.com/pricing">Pro Plan</a> с White label, 5 ГБ в хранилище и возможностью опубликовать приложение в сторах. Проект нужно было запустить через месяц, а с Adalo получилось за две недели. При этом Сергей работал с платформой впервые — опытный зеркоодер справился бы за неделю.</p>
<p data-order="p_23">Поддержка и обновление приложения на зерокоде складывается из стоимости тарифа и гонорара разработчика. Некоторые заказчики осваивают платформу и самостоятельно пилят обновления. Тогда приложение «кушает» всего 50 $ в месяц (стоимость Pro Plan на 26.05.2021) — с традиционной разработкой пришлось бы платить за сервер. Если же разбираться в платформе не хочется, можно нанять зеркодера, который обойдется дешевле, чем Java- или Swift-разработчик или студия.</p>
<p data-order="p_24">⌘⌘⌘</p>
<p data-order="p_25">Зерокодинг отвоевывает клиентов у традиционной разработки там, где нужно быстро запустить проект или протестировать идею. Реальные <a href="https://ya.zerocoder.ru//tag/cases/">кейсы</a> показывают, что собрать приложение на ноу-код платформе, даже через услуги фрилансера, дешевле в десятки раз. Зерокодер собирает полноценное приложение с платежными сервисами, админкой и социальными механиками всего за 200-400 тыс. руб., а студия берет от двух миллионов.</p>
<blockquote><p data-order="p_26">Если уже готов перевернуть рынок мобильной и веб-разработки, пора вступать в ряды зерокодеров. Но перед большой игрой лучше освой инструменты с наставниками из университета <a href="https://zerocoder.ru/course/mobile?utm_source=website&utm_medium=ya.zerocoder.ru&utm_campaign=article_cta&utm_content=cost_zero_vs_dev09.06&article_id=581&article_title=pokazhi-eto-klientu-naskolko-zerokoding-deshevle-tradicionnoj-razrabotki">«Зерокодер»</a>. Тут учат собирать приложения без кода и зарабатывать на этом круглые суммы.</p></blockquote>
<!-- Вывод двойного блока курсов в конце статьи -->
<!-- Выводим двойной блок курса с ID: перплексити2, Приоритет: 2 -->
<!--Двойной блок с курсами-->
<div class="double-course-block">
<div class="first-course-block__container">
<div class="first-course-block__title"><span class="global-underline">Большой практикум</span></div>
<span class="first-course-block__undertitle"><span class="global-underline">ЗАМЕНИ ВСЕ НЕЙРОСЕТИ НА ОДНУ — PERPLEXITY</span></span>
<div class="first-course-block__text">ПОКАЖЕМ НА КОНКРЕТНЫХ КЕЙСАХ</div>
<div class="first-course-block__subtitle"></div><ul class="first-course-block__list"><li class="first-course-block__list-item">Освой Perplexity и узнай, как пользоваться функционалом остальных ИИ в одном</li><li class="first-course-block__list-item">УЧАСТВОВАТЬ ЗА 0 РУБ.</li><li class="first-course-block__list-item">Расскажем, как получить подписку (240$) бесплатно</li></ul>
<a class="first-course-block__button" href="https://zerocoder.ru/big-workshop-on-perplexity-ai?utm_source=magazine&utm_medium=knopka-dvoinoi&utm_campaign=perplexity2&article_id=581&article_title=pokazhi-eto-klientu-naskolko-zerokoding-deshevle-tradicionnoj-razrabotki" data-block-id="перплексити2">Участвовать бесплатно</a>
</div>
<div class="second-course-block__container">
<div class="second-course-block__title"><span class="global-underline">ОНЛАЙН-ПРАКТИКУМ</span></div>
<div class="second-course-block__undertitle"><span class="global-underline"></span></div>
<div class="second-course-block__text">ЗАПУСК DEEPSEEK R1 ЛОКАЛЬНО НА СВОЕМ КОМПЬЮТЕРЕ</div>
<div class="second-course-block__subtitle">ЧТО БУДЕТ НА ОБУЧЕНИИ?</div><ul class="second-course-block__list"><li class="second-course-block__list-item">ПОКАЖЕМ, КАК РАЗВЕРНУТЬ МОДЕЛЬ DEEPSEEK R1 ПРЯМО НА СВОЁМ КОМПЬЮТЕРЕ </li></ul>
<a class="second-course-block__button" href="https://zerocoder.ru/deepseek-r1-lesson?utm_source=magazine&utm_medium=knopka-dvoinoi&utm_campaign=deepseekr1doble&article_id=581&article_title=pokazhi-eto-klientu-naskolko-zerokoding-deshevle-tradicionnoj-razrabotki" data-block-id="перплексити2">Участвовать бесплатно</a>
</div>
</div>
<div class="post-share-section">
<div class="post-share-wrap">
<a class="post-share-link" id="copy" data-clipboard-target="#copy-link" aria-label="Copy link icon"><svg role="img" viewBox="0 0 33 24" xmlns="http://www.w3.org/2000/svg"><path d="M27.3999996,13.4004128 L21.7999996,13.4004128 L21.7999996,19 L18.9999996,19 L18.9999996,13.4004128 L13.3999996,13.4004128 L13.3999996,10.6006192 L18.9999996,10.6006192 L18.9999996,5 L21.7999996,5 L21.7999996,10.6006192 L27.3999996,10.6006192 L27.3999996,13.4004128 Z M12,20.87 C7.101,20.87 3.13,16.898 3.13,12 C3.13,7.102 7.101,3.13 12,3.13 C12.091,3.13 12.181,3.139 12.272,3.142 C9.866,5.336 8.347,8.487 8.347,12 C8.347,15.512 9.866,18.662 12.271,20.857 C12.18,20.859 12.091,20.87 12,20.87 Z M20.347,0 C18.882,0 17.484,0.276 16.186,0.756 C14.882,0.271 13.473,0 12,0 C5.372,0 0,5.373 0,12 C0,18.628 5.372,24 12,24 C13.471,24 14.878,23.726 16.181,23.242 C17.481,23.724 18.88,24 20.347,24 C26.975,24 32.347,18.628 32.347,12 C32.347,5.373 26.975,0 20.347,0 Z"/></svg></a>
<small class="share-link-info">Ссылка скопирована</small>
</div>
<input type="text" value="https%3A%2F%2Fya.zerocoder.ru%2Fpokazhi-eto-kliientu-naskolko-zierokodingh-dieshievlie-traditsionnoi-razrabotki%2F" id="copy-link" aria-label="Copy link input">
</div>
</div>
</div>
<div class="layout-sidebar">
<div class="banner" data-banner-id="">
<a class="banner" data-banner-id="" target="_blank" href="https://zerocoder.ru/overview-workshop-new-neuro?utm_source=magazine&utm_medium=baner&utm_campaign=deepseekqwen&article_id=581&article_title=pokazhi-eto-klientu-naskolko-zerokoding-deshevle-tradicionnoj-razrabotki">
<img class="desktop-image" src="https://ya.zerocoder.ru/wp-content/uploads/2025/05/ai-model-22_05.svg" alt="">
<img class="mobile-image" src="https://ya.zerocoder.ru/wp-content/uploads/2025/05/ai-model-22_05-1.svg" alt="">
</a>
</div>
</div>
<!-- <script>
document.addEventListener("DOMContentLoaded", function() {
var modalbanner = document.getElementById("popup-form-19");
var openModalFormButtons = document.querySelectorAll(".openModalFormBtnBanner");
var bodyElement = document.querySelector("body");
var closeBtn = document.getElementsByClassName("close")[0];
// Проверяем существование всех необходимых элементов
if (!modalbanner) {
console.error("Модальное окно не найдено: popup-form-19");
return;
}
if (!bodyElement) {
console.error("Body элемент не найден");
return;
}
if (!closeBtn) {
console.error("Кнопка закрытия не найдена (класс 'close')");
// Можно попробовать альтернативные селекторы
closeBtn = modalbanner.querySelector(".close") ||
modalbanner.querySelector("[data-dismiss]") ||
modalbanner.querySelector(".modal-close");
}
function openModalFormButton() {
modalbanner.classList.add("open");
bodyElement.classList.add("lock");
}
function closeModalFormButton() {
modalbanner.classList.remove("open");
bodyElement.classList.remove("lock");
}
// Добавляем обработчики для кнопок открытия
if (openModalFormButtons.length > 0) {
openModalFormButtons.forEach(function(button) {
button.addEventListener("click", openModalFormButton);
});
} else {
console.warn("Кнопки открытия модального окна не найдены (класс 'openModalFormBtnBanner')");
}
// Добавляем обработчик для кнопки закрытия только если она найдена
if (closeBtn) {
closeBtn.addEventListener("click", closeModalFormButton);
}
// Закрытие по клику на фон (раскомментируйте если нужно)
window.addEventListener("click", function(event) {
// console.log(event.target);
// if (event.target === modalbanner) {
// closeModalFormButton();
// }
});
// Альтернативный способ - поиск кнопки закрытия внутри модального окна
var alternativeCloseBtn = modalbanner.querySelector(".close, [data-dismiss], .modal-close, .btn-close");
if (alternativeCloseBtn && alternativeCloseBtn !== closeBtn) {
alternativeCloseBtn.addEventListener("click", closeModalFormButton);
}
// Закрытие по ESC
document.addEventListener("keydown", function(event) {
if (event.key === "Escape" && modalbanner.classList.contains("open")) {
closeModalFormButton();
}
});
});
</script> --> </div>
</article>
<div class="free-course-block" style="display:none;"></div>
<div class="post-related global-special">
<h2><span>Вам точно понравится</span></h2>
<article class="item-12504">
<div class="h3"><a href="https://ya.zerocoder.ru/pgt-integraciya-storonnih-bibliotek-i-plaginov-v-verstku-s-pomoshhju-javascript/" class="global-underline">Интеграция сторонних библиотек и плагинов в верстку с помощью JavaScript</a></h3>
<div class="global-meta">
Редакция </div>
</article><article class="item-19749">
<div class="h3"><a href="https://ya.zerocoder.ru/chto-takoe-wysiwyg-i-kak-eto-pomogaet-razrabotchikam/" class="global-underline">Что такое WYSIWYG и как это помогает разработчикам</a></h3>
<div class="global-meta">
Редакция </div>
</article><article class="item-6877">
<div class="h3"><a href="https://ya.zerocoder.ru/jasper-vs-copy-ai-sravnenie-dvuh-instrumentov-dlya-sozdaniya-kontenta/" class="global-underline">Jasper vs. Copy.ai: сравнение двух инструментов для создания контента</a></h3>
<div class="global-meta">
Редакция </div>
</article><article class="item-26446">
<div class="h3"><a href="https://ya.zerocoder.ru/tgp-kak-ispolzovat-ai-dlya-klasterizatsii-auditorii-i-postroeniya-segmentov/" class="global-underline">Как использовать AI для кластеризации аудитории и построения сегментов</a></h3>
<div class="global-meta">
Анастасия Маркова </div>
</article> </div>
<aside class="nextprev-section">
<section class="nextprev-newer">
<div>
<small>Из нового</small>
<div class="h3">
<a href="https://ya.zerocoder.ru/tgp-kak-uluchshit-kachestvo-otvetov-chatgpt-ponyatnaya-sistema-promptov-dlya-raboty-i-no-code-zadach/" class="global-underline">Как улучшить качество ответов ChatGPT: понятная система промптов для работы и no-code задач</a>
</div>
</div>
</section>
<section class="nextprev-older">
<div>
<small>Есть и постарее, но ничуть не хуже</small>
<div class="h3">
<a href="https://ya.zerocoder.ru/kak-studient-zierokodiera-ivan-vakhrushiev-za-2-niedieli-sobral-dosku-s-vakansiiami-dlia-zierokodierov-na-bubble/" class="global-underline">Как студент «Зерокодера» Иван Вахрушев за 2 недели собрал доску с вакансиями для зерокодеров на Bubble</a>
</div>
</div>
<a href="https://ya.zerocoder.ru/kak-studient-zierokodiera-ivan-vakhrushiev-za-2-niedieli-sobral-dosku-s-vakansiiami-dlia-zierokodierov-na-bubble/" class="nextprev-image global-image global-color">
<img src="https://ya.zerocoder.ru/wp-content/uploads/2023/03/3-3.png" alt="Как студент «Зерокодера» Иван Вахрушев за 2 недели собрал доску с вакансиями для зерокодеров на Bubble">
</a>
</section>
</aside>
<script>
$(document).ready(function() {
$('.openInArticleModalFormBtn').click(function(){
var clickedElement = $(this).attr('data_popup');
var popup_id="#popup-form-"+clickedElement;
var bodyElement_popup = document.querySelector("body");
$(popup_id).addClass("open");
bodyElement_popup.addClass("lock");
});
});
</script>
<div class="subscribe-section subscribe-section--bg">
<div class="subscribe-wrap">
<div class="h3">Подписывайтесь <br> на наш телеграм-канал</div>
<a href="https://t.me/oqode" class="global-button">Подписаться</a>
</div>
</div>
<div style="display: none" id="popup-1" class="modal-block modal-block--form popup-style-image popup-style-image-1">
<div class="popup-style-1__inner">
<a href="https://zerocoder.ru/overview-workshop-new-neuro?utm_source=magazine&utm_medium=popup&utm_campaign=deepseekqwen&article_id=581&article_title=pokazhi-eto-klientu-naskolko-zerokoding-deshevle-tradicionnoj-razrabotki" target="_blank">
<img src="https://ya.zerocoder.ru/wp-content/uploads/2025/05/ai-model-22_05.png" alt="">
</a>
</div>
</div>
<script>
//вызов переменной чтобы работал WP Ajax
var ajaxurl = 'https://ya.zerocoder.ru/wp-admin/admin-ajax.php';
</script>
<script>
$(document).ready(function () {
// Определяем переменные
var popupKey = '1';
var cookieName = 'showPopup' + popupKey;
var isDev = false;
var timer = 15;
var abKey = '1';
console.log('Debug info:');
console.log('jQuery loaded:', typeof $ !== 'undefined');
console.log('Fancybox loaded:', typeof $.fancybox !== 'undefined');
console.log('Cookie function:', typeof $.cookie !== 'undefined');
console.log('Popup element exists:', $('#popup-' + popupKey).length > 0);
console.log('Cookie name:', cookieName);
console.log('Current cookies:', document.cookie);
// Функция для получения cookie
function getCookie(name) {
var value = "; " + document.cookie;
var parts = value.split("; " + name + "=");
if (parts.length == 2) return parts.pop().split(";").shift();
return null;
}
// Функция для установки cookie
function setCookie(name, value, days) {
var expires = "";
if (days) {
var date = new Date();
date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
expires = "; expires=" + date.toUTCString();
}
document.cookie = name + "=" + value + expires + "; path=/";
}
// Функция показа popup
function showPopup() {
if (typeof $.fancybox === 'undefined') {
console.error('Fancybox not loaded');
return;
}
var popupElement = $('#popup-' + popupKey);
if (popupElement.length === 0) {
console.error('Popup element not found: #popup-' + popupKey);
return;
}
// Открываем popup
$.fancybox.open({
src: '#popup-' + popupKey,
type: 'inline'
});
// Устанавливаем cookie
setCookie(cookieName, 'true', 1); // на 1 день
// AJAX запрос для счетчика (если нужен)
if (abKey && abKey !== '' && typeof ajaxurl !== 'undefined') {
$.ajax({
url: ajaxurl,
type: 'POST',
data: {
'action': 'popup_counter',
'ab_key': abKey
},
success: function(response) {
console.log('Counter updated:', response);
},
error: function(xhr, status, error) {
console.error('AJAX error:', xhr.responseText);
}
});
}
// Выполняем дополнительный JS код
try {
} catch(e) {
console.error('Error in js_on_open:', e);
}
}
// Основная логика
if (isDev) {
// В режиме разработки показываем сразу
console.log('Dev mode: showing popup immediately');
showPopup();
} else {
// Проверяем cookie
var cookieValue = getCookie(cookieName);
console.log('Cookie value:', cookieValue);
if (cookieValue !== 'true') {
console.log('Cookie not set, starting timer for', timer, 'seconds');
var popupTimer = setTimeout(function() {
console.log('Timer fired, showing popup');
showPopup();
}, timer * 1000);
} else {
console.log('Cookie exists, popup already shown');
}
}
});
</script>
</main>
<footer class="footer-section global-footer">
<div class="footer-wrap">
<div class="footer-data">
<div class="footer-logo">
<a href="/" class="is-title">Я зерокодер</a>
</div>
<p class="footer-description">Первое медиа о создании IТ-решений без кода на русском языке от университета «Зерокодер». Зерокодинг, нейросети,</br>low-code, no-code.</p>
<div class="footer-icons">
<!-- -->
</div>
</div>
<div class="footer-nav">
<div class="footer-nav-column">
<ul id="menu-menju-v-podvale" class=""><li id="menu-item-6" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-6"><a target="_blank" href="https://t.me/oqode">Телеграм-канал</a></li>
<li id="menu-item-7" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-7"><a target="_blank" href="https://t.me/zerocoders">Телеграм-чат</a></li>
<li id="menu-item-8" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-8"><a target="_blank" href="https://www.youtube.com/channel/UC4neEzJcEQPjspfHcu8xgaQ">YouTube-канал</a></li>
<li id="menu-item-9" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-9"><a target="_blank" href="https://zerocoder.ru/?utm_source=magazine&utm_medium=knopka&utm_campaign=main&article_id=581&article_title=pokazhi-eto-klientu-naskolko-zerokoding-deshevle-tradicionnoj-razrabotki">Университет «Зерокодер»</a></li>
<li id="menu-item-19340" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-19340"><a href="https://ya.zerocoder.ru/avtory/">Авторы</a></li>
</ul> </div>
</div>
</div>
<div class="footer-copyright">
<span>Я зерокодер © 2026. Все права защищены.</span>
<div class="footer-right">
<a target="_blank" title="Политика конфиденциальности" href="https://ya.zerocoder.ru/politika-konfidencialnosti/">Политика конфиденциальности</a>
<a target="_blank" title="Пользовательское соглашение" href="https://ya.zerocoder.ru/polzovatelskoe-soglashenie/">Пользовательское соглашение</a>
<a target="_blank" title="Политика использования cookies" href="https://ya.zerocoder.ru/politika-ispolzovaniya-cookies/">Политика использования cookies</a>
</div>
</div>
</footer>
</div>
</div>
<script>
//Скрипт прогрузки UTM меток в POPUP-ы
// Получаем URL строки браузера
const urlString = window.location.href;
// Создаем объект URL из строки
const url = new URL(urlString);
// Получаем параметры запроса
const utmSource = url.searchParams.get('utm_source');
const utmMedium = url.searchParams.get('utm_medium');
const utmCampaign = url.searchParams.get('utm_campaign');
const utmTerm = url.searchParams.get('utm_term');
const utmContent = url.searchParams.get('utm_content');
var lastword=window.location.href.split('?')[0].split('/').filter(n => n).at(-1);
console.log('lastword:', lastword);
const cookieValue = [];
if (utmSource) {
cookieValue.push(`utm_source=${utmSource}`)
} else {
cookieValue.push(`utm_source=${'magazine'}`)
};
if (utmMedium) {
cookieValue.push(`utm_medium=${utmMedium}`);
} else {
cookieValue.push(`utm_medium=${'script'}`);
}
if (utmCampaign) {
cookieValue.push(`utm_campaign=${utmCampaign}`);
} else {
}
if (utmTerm) {
cookieValue.push(`utm_term=${utmTerm}`);
} else {
cookieValue.push(`utm_term=${'running_shoes'}`);
}
if (utmContent) {
cookieValue.push(`utm_content=${utmContent}`);
} else {
cookieValue.push(`utm_content=${lastword}`);
}
let encodedCookieValue = encodeURIComponent(cookieValue.join('|||'));
// console.log(encodedCookieValue);
var currentDate = new Date();
currentDate.setDate(currentDate.getDate() + 1);
var expires = currentDate.toUTCString();
/*if (cookieValue.length > 0) {
document.cookie = `YAUTM=${encodedCookieValue}; expires=${expires}; path=/; SameSite=None; Secure`;
} else {
document.cookie = `YAUTM=${encodedCookieValue}; expires=${expires}; path=/; SameSite=None; Secure`;
}*/
// var myVariable = encodedCookieValue;
// localStorage.setItem('YAUTM', myVariable);
// Выводим значения UTM-меток
// console.log('utm_source:', utmSource);
// console.log('utm_medium:', utmMedium);
// console.log('utm_campaign:', utmCampaign);
// console.log('utm_term:', utmTerm);
// console.log('utm_content:', utmContent);
// console.log('cookieValue:', cookieValue);
document.addEventListener("DOMContentLoaded", function() {
console.log('loaded');
setTimeout(function() {
var iframes = document.getElementsByTagName('iframe');
var data = { key: 'YAUTM', value: encodedCookieValue };
console.log(data);
for (var i = 0; i < iframes.length; i++) {
iframes[i].contentWindow.postMessage(data, '*');
}
setTimeout(function() {
for (var i = 0; i < iframes.length; i++) {
// Способ перезагрузки iframe
var iframe = iframes[i];
iframe.src = iframe.src;
}
console.log('iframes reloaded');
}, 500);
}, 4000);
window.addEventListener("click", function(event) {
var targetClass = event.target.classList[0];
if (targetClass == 'close') {
var parentElement = event.target.closest('.modal');
console.log(parentElement);
parentElement.classList.remove("open");
bodyElement.classList.remove("lock");
}
});
});
</script>
<!-- <div id="search-section" class="search-section">
<span id="search-close" class="search-close"><svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 8.242L20.242 0 24 3.76 15.758 12 24 20.242 20.242 24 12 15.758 3.759 24 0 20.242 8.242 12 0 3.759 3.76 0 12 8.242z"/></svg></span>
<div id="search-content" class="search-content ajax-search-container">
<form class="search-form ajax-search-form" onsubmit="return false">
<input id="search-input" class="ajax-search-field" name="s" type="text" placeholder="Что найти?">
<input type="hidden" name="action" value="search_action">
<div class="search-meta">
<span id="search-info">Хотя бы 3 символа</span>
<span id="search-counter" class="is-hide">
<span id="search-counter-results">0</span>
Вот что у нас есть
</span>
</div>
</form>
<div id="search-results" class="search-results ajax-search-results"></div>
</div>
<div id="search-overlay" class="search-overlay"></div>
</div> --> <script>
function initPrism() {
if (typeof Prism !== 'undefined') {
setTimeout(function() {
try {
Prism.highlightAll();
} catch (error) {
console.error('Ошибка Prism:', error);
}
}, 500);
} else {
setTimeout(initPrism, 1000);
}
}
function setupCodeCopy() {
const copyButtons = document.querySelectorAll('.copy-button');
copyButtons.forEach(button => {
const originalHTML = button.innerHTML;
button.addEventListener('click', function() {
const codeId = this.getAttribute('data-code-id');
const codeBlock = document.getElementById(codeId);
if (!codeBlock) return;
navigator.clipboard.writeText(codeBlock.textContent).then(() => {
button.innerHTML = 'Скопировано!';
button.classList.add('copied');
setTimeout(() => {
button.innerHTML = originalHTML;
button.classList.remove('copied');
}, 1500);
}).catch(err => {
console.error('Ошибка копирования:', err);
});
});
});
}
document.addEventListener('DOMContentLoaded', function() {
setupCodeCopy();
initPrism();
});
</script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/components/prism-core.min.js?ver=1.29.0" id="prism-core-js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/plugins/autoloader/prism-autoloader.min.js?ver=1.29.0" id="prism-autoloader-js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/plugins/line-numbers/prism-line-numbers.min.js?ver=1.29.0" id="prism-line-numbers-js"></script>
<script type="text/javascript" src="https://ya.zerocoder.ru/wp-content/plugins/enlighter/cache/enlighterjs.min.js?ver=viWZ8n/HQnqfVbt" id="enlighterjs-js"></script>
<script type="text/javascript" id="enlighterjs-js-after">
/* <![CDATA[ */
!function(e,n){if("undefined"!=typeof EnlighterJS){var o={"selectors":{"block":"pre.EnlighterJSRAW","inline":"code.EnlighterJSRAW"},"options":{"indent":4,"ampersandCleanup":true,"linehover":true,"rawcodeDbclick":false,"textOverflow":"break","linenumbers":true,"theme":"atomic","language":"generic","retainCssClasses":false,"collapse":false,"toolbarOuter":"","toolbarTop":"{BTN_RAW}{BTN_COPY}{BTN_WINDOW}{BTN_WEBSITE}","toolbarBottom":""}};(e.EnlighterJSINIT=function(){EnlighterJS.init(o.selectors.block,o.selectors.inline,o.options)})()}else{(n&&(n.error||n.log)||function(){})("Error: EnlighterJS resources not loaded yet!")}}(window,console);
/* ]]> */
</script>
</body>
</html>