Как сделать код приложением
Самый популярный вопрос среди начинающих зерокодеров — можно ли собрать мобильное приложение без программирования. Расскажем, с помощью каких инструментов это можно сделать, чем они отличаются и сколько это стоит.
Существует три подхода к созданию мобильных приложений:
- Традиционный. Предполагают написание кода, создание макета, оптимизацию, команду и другие этапы.
- Зерокодинг. Не требует знания языков программирования. Это похоже на использование Тильды (это тоже, кстати, инструмент зерокодеров) для создания сайтов: не надо знать CSS, HTML, JS — просто расставляешь блоки с контентом, настраиваешь анимацию и получаешь отлчиный сайт.
- Low-code — это что-то среднее между зерокодингом и программированием: писать код все-таки приходится, но немного.
Инструменты зерокодинга уже могут покрыть большинство задач бизнеса. И вместо того, чтобы изобретать велосипед, можно за несколько дней запустить MVP или проверить гипотезу с минимальными затратами. А если в запасе хотя бы пара недель — то и запилить полноценное приложение. Решения на зерокодинге можно собирать в одиночку — вся инфраструктура предоставляется платформами и не надо дополнительно тратиться на хостинг, администрирование серверов и т.п.
При этом обычная разработка затянется на 3−6 месяцев и съест до миллиона рублей — если работать с фрилансером или скромной региональной студией.
Самые мощные и популярные инструменты мобильной разработки без кода — Adalo, Glide и Bubble. С их помощью можно создать и опубликовать мобильное приложение. Они бывают трех типов:
Мобильная версия сайта — сайт в интернете, адаптированный под экраны смартфонов. Это самый «бесправный» тип приложений: всегда нужен интернет, пуши можно включать только в браузере, постоянно на виду элементы навигации браузера.
PWA (Progressive Web Application) — когда мобильная версия сайта устанавливается на смартфон как приложение. Из плюсов — не надо поддерживать две кодовые базы, под iOS и Android, приложение всегда «обновлено» до последней версии, можно работать с некоторыми нативными функциями смартфонов. Например, отправлять пуши, устанавливать ярлык на экран, элементы навигации браузера не мешают (их просто нет). такие приложения умеют создавать и Bubble, и Adalo, и Glide.
Нативные — когда приложение публикуется в официальных сторах. В Adalo уже встроена такая функция, а приложения на Bubble можно обернуть в специальный контейнер и тоже опубликовать в Google Play и App Store. Нативные приложения позволяют работать со всеми функциями телефона: камерой, микрофоном, GPS, контактами, файлами, акселерометром, push-уведомлениями, памятью девайса, адаптивной версткой — всё, как в обычном коде, только без кода.
-
по макияжу по подписке. аренды жилья в Вене. фотошколы. наставников в Digital.
Glide — платформа для создания мобильных приложений без кода. Лучше всего функции сервиса описывает девиз «Создавайте приложения из Google Sheet за пять минут, бесплатно». Glide-приложения нельзя загрузить в сторы, но можно опубликовать в интернете как PWA. Платформа отлично подходит для создания простых приложений и MVP — много готовых симпатичных шаблонов, понятные интуитивные настройки.
На бесплатном тарифе есть ограничение по объему данных, 10% комиссия со всех платежей и лого Glide, а платные стартуют от $32 в месяц.
-
для бронирования тренировок и снаряжения в фитнес-клубе
- Индийский headhunter для педагогов
Adalo — nocode-платформа для создания веб- и мобильных приложений, которые можно публиковать в App Store, Google Play или в интернете как PWA. Новая версия раскатывается в сторы прямо из личного кабинета на платформе, публикуется тоже оттуда (но нужен аккаунт в AppStore и Google Play). Adalo позволяет создавать приложения в интуитивно-понятном интерфейсе методом drag’n’drop из готовых или кастомных дизайн-шаблонов. Эта платформа мощнее Glide и на ней можно собирать более сложные приложения.
На бесплатном тарифе нет ограничений по количеству приложений, а вот количество данных фиксировано — плюс придется «потерпеть» лого платформы. Платные тарифы стартуют от $50 в месяц и дают возможность публиковаться в сторах.
-
для геймификации карьеры мобильных сайтов для рестораторов
Bubble — одна из самых продвинутых визуальных сред программирования для создания веб-приложений. На нем можно собирать настольные или адаптивные веб-приложения для любого размера экрана.
Bubble позволяет проектировать сложную бизнес-логику — это настоящий комбайн. Приложения на Bubble нельзя выкладывать в сторы напрямую, но есть обходные пути — обернуть их в специальный контейнер и после этого опубликовать в маркетплейсах от Apple и Google.
На бесплатном тарифе тоже есть лого платформы, нельзя привязать приложение к своему домену, количество объектов в базе данных ограничено 200 и закрыт доступ к API. Платные тарифы начинаются от $25 в месяц.
Мобильный зерокодинг и традиционная разработка: стоимость и срокиРазработка приложения «под ключ» — сложный процесс, в котором участвует целая команда специалистов. Программисты пишут бэкенд и фронтенд, дизайнеры создают «человеческий» UX/UI и вкусную картинку, тестировщики ищут ошибки, проджекты управляют всем процессом, лиды — командами, эккаунты общаются с клиентами. И каждый не просто просиживает штаны, а действительно работает и нужен.
Сколько денег возьмет за разработку веб-студия и сколько времени потратит, зависит от сложности проекта и имиджа компании, но в среднем — от 500 тыс. до 5 млн рублей, а средний срок разработки — 4−6 месяцев (по сведениям с Хабра, DTF и Appinventive). Сложные приложения легко могут стоить дороже 10 млн рублей и пилиться больше года — особенно если поджимают сроки или подрядчик входит в какой-то рейтинг вроде Теглайна. И всё это без учёта поддержки, обновлений, продвижения и возможных проблем с масштабированием и доработками.
Nocode-разработка обходится дешевле. Например, Сергей Горелов в одиночку собрал полнофункциональное приложение для фитнес-клуба за пару недель — такое же приложение обычная студия будет разрабатывать около полугода и возьмёт за работу 700−800 тысяч рублей.
А Евгений Спорыхин из nocode Hero вместе с WeLovEnocode запилил карьерный трекер с геймификацией на Bubble. Вместе с детализацией техзадания, доработками, дополнительными функциями и пятью итерациями по дизайну (клиент не совсем понимал, какой он хочет видеть визуальную составляющую) это заняло три месяца и обошлось заказчику примерно в 700 тысяч рублей.
Аналогичная работа «в коде» длилась бы гораздо дольше, а заказчик отдал бы не меньше 4 млн рублей. При этом первую полнофункциональную версию запустили уже через 2 недели — всё остальное ушло на доработки дизайна и добавление новых идей клиента.
Да, у мобильных приложений на зерокодинге пока есть некоторые ограничения: например, чтобы сделать массовый сервис с трафиком в десятки миллионов человек, когда критичны скорость работы и премиальный дизайн, придется создавать свое решение, нанимать программистов или отдавать разработку на аутсорс. А вот первые версии такого продукта — особенно MVP — можно собирать и без кода. Приложения на несколько десятков или сотен тысяч пользователей nocode-платформы также выдержат без проблем.
Снижение стоимости мобильных приложений неизбежно привлечет массовую категорию новых клиентов — теперь приложение может себе позволить даже скромный ИП-шник или владелец пары овощных киосков.
MAKE. Мобильная методичка по макияжу по подписке на Glide- Платформа: Glide
- Время на разработку: 2 недели (большая часть — наполнение базы данных)
- Затраты: 12$ (базовый тариф в Glide)
Игорь — профессиональный программист. Как-то раз ему понадобилось выполнить техническую задачу за пару дней — так он вошел в зерокодинг. Сначала автоматизировал на Integromat, потом перешел на Glide. А в пандемию он назерокодил приложение для обучения макияжу MAKE — помогал жене перевести бизнес в онлайн.
Игорь освоил Glide за три дня, еще 4 дня делал структуру приложения. Дольше всего вносил список из 400 продуктов — это заняло 2 недели😂 Приложение интегрировано с ЮKassой, Integromat и GetCourse, можно выбрать свой цветотип, форму лица и глаз, найти инструменты и средства для макияжа, а также получить советы — где их лучше купить, чтобы не попалась подделка.
Если пользователь оплатил подписку с помощью банковской карты, информация о ней сохраняется. За 3 дня до окончания подписки пользователя предупредят о предстоящем списании. После автооплаты система пришлет результат — успешно прошло списание или денег на карте не оказалось. Эта логика собрана на GetCourse.
Дядя Боб говорил в своей книге: «Вы читаете эту статью по двум причинам. Во-первых, вы разработчик. Во-вторых, вы хотите стать лучше как разработчик».
Представьте, что вы в библиотеке и ищете книгу. Если издания рассортированы и каталогизированы, вы быстро найдёте нужное. А если у библиотеки приятный интерьер и архитектура, во время поиска вам будет особенно комфортно.
Так же и с кодом. Если вы хотите создать что-то хорошее, нужно уметь писать понятный код и организовывать его в проекте. Когда коллегам понадобится найти что-то в коде, будет достаточно посмотреть названия методов, классов и пекеджей, чтобы разобраться. И не придётся переписывать всё с нуля, махнув на вашу работу рукой.
Что такое чистый код
Как вы понимаете, недостаточно просто побыстрее написать приложение. Если другим разработчикам будет тяжело в нём разобраться, это просто увеличит технический долг.
Код можно назвать чистым, если его с ходу понимают другие разработчики. Тогда его можно читать и изменять, расширять и поддерживать.
Почему это важно
Код отражает ваш мыслительный процесс. Поэтому нужно стараться сделать код более простым и читаемым.
Основные характеристики чистого кода
- Изящный — он должен заставлять вас улыбаться, как когда любуетесь хорошо спроектированным домом или пробуете вкусную еду.
- О нём позаботились — вы потратили много времени, чтобы структурировать и упростить код. Уделили время деталям.
- Сфокусированный — каждый метод, класс и модуль преследуют одну понятную цель и не перегружены деталями.
- В нём нет повторяемых функций, функциональность не дублируется.
- Проходит все тесты.
- Количество сущностей — методов, классов и абстракций — сведено к необходимому минимуму.
Разница между умным разработчиком и профессиональным в том, что второй ставит читаемость во главу угла. Профессионалы используют весь свой опыт, чтобы писать код, который поймут остальные.
Создавайте говорящие названия
Выбор хорошего говорящего названия отнимает время, но в итоге экономит ещё больше. Название переменной, метода или класса должно отвечать на все основные вопросы. То есть объяснять, для чего этот класс (метод, переменная), что он делает и как его использовать. Если приходится пояснять что-то в комментариях — значит, название недостаточно говорящее. Посмотрим на пример:
Имена классов
Названия классов и объектов должны быть существительными типа Customer, WikiPage, Account, AddressParser. Избегайте в именах слов Manager, Processor, Data или Info, потому что они мало говорят о функциональности объекта. Не используйте глаголы.
Имена методов
В названиях методов как раз нужны глаголы типа postPayment, deletePage, save.
Используйте названия из предметной области
Если общепринятого термина нет, используйте название из предметной области. Тогда разработчик, который поддерживает ваш код, сможет спросить о его значении эксперта.
Комментарий автора статьи
Например, вы пишете софт для телекоммуникационного оборудования. Ваши области задачи (экспертизы, решения) — это текстовое и голосовое общение, видеосвязь. Неважно, на каком языке, как и на какой платформе вы пишете, — предметная область от этого не меняется. Если вы разрабатываете приложение для создания и продажи фотоконтента, то предметная область включает фотографию и e-commerce. Любой человек, который видит ваш код в первый раз, должен сразу понимать, чем занимается каждый класс, модуль или пекедж в вашем приложении. Думайте об этом, когда добавляете в название что-то из предметной области этого класса.
Пишем код, используя принципы SOLID
Эти принципы были введены в практику ООП Робертом Мартином, а SOLID — мнемоническая аббревиатура для них. Они описывают подход к проектированию простых, читаемых и надёжных программных решений не только в Android-разработке, но и в целом в объектно-ориентированном программировании.
Принцип единой ответственности (Single Responsibility Principle — SRP)
У класса должна быть одна задача. Изменить состояние класса можно только для того, чтобы выполнить конкретную задачу. Не добавляйте в класс функциональность просто потому, что можете. Если класс выполняет разные задачи — разбейте его на два или вынесите часть задач в другие классы. Избегайте божественных классов. Посмотрим на пример:
В классе RecyclerView.Adapter есть метод onBindViewHolder, который занимается посторонними задачами. Adapter должен только создавать ViewHolder и передавать в него данные. Он не должен обрабатывать эти данные в методе onBindViewHolder. Даже само название метода говорит нам об этом.
Принцип открытости-закрытости (Open-Closed Principle — OCP)
Классы должны быть открыты для расширения, но закрыты для изменения. Иными словами, если кто-то захочет внести коррективы в ваш класс А, то его можно расширить (отнаследоваться от него), но никак не менять напрямую.
Простой пример — тот же RecyclerView.Adapter. Вы можете отнаследоваться от него, чтобы создать свою имплементацию с необходимыми вам свойствами и поведением. Но вы не можете внести эти изменения непосредственно в RecyclerView.Adapter.
Принцип подстановки Барбары Лисков (Liskov Substitution Principle — LSP)
Класс-потомок никогда не изменяет поведение класса-родителя. То есть подкласс может переопределять методы родительского класса, только если это не меняет его функциональность.
Например, вы создаёте интерфейс, у которого есть метод onClick(). Затем вы имплементируете интерфейс в MyActivity, и когда onClick() вызовется — отобразите в нём Toast. Не прописывайте эту функциональность в интерфейсе. Дополняйте onClick(), только переопределяя его в классе-потомке.
Принцип разделения интерфейсов (Interface Segregation Principle — ISP)
Ни один наследник не должен имплементировать методы, которые он не использует. Если у вас есть класс или интерфейс А и вы имплементируете его в классе B, то не нужно переопределять все методы А в B.
Для примера рассмотрим имплементацию в вашей Activity SearchView.OnQueryTextListener(). Вам нужен оттуда только один метод, но там их два:
Как сделать так, чтобы вы не имплементировали ненужную функциональность? Отнаследуйтесь от SearchView.OnQueryTextListener(), создайте свой колбэк и передавайте дальше только то, что вам нужно:
Как это будет выглядеть в нашей Activity:
Или можно написать функцию-расширение, как это принято в Kotlin:
Как это будет выглядеть в Activity:
Принцип инверсии зависимостей (Dependency Inversion Principle — DIP)
Зависимости должны быть от абстракций, а не от конкретных имплементаций. Роберт Мартин приводит два аргумента:
- Верхнеуровневые модули не должны зависеть от низкоуровневых. И те и другие должны зависеть от абстракций.
- Абстракции не должны зависеть от деталей, детали должны зависеть от абстракций.
Высокоуровневые модули, в которых прописана сложная бизнес-логика, должны легко переиспользоваться и не зависеть от изменений в низкоуровневых модулях. Чтобы это работало, вам нужно определить абстракции, которые отделяют высокоуровневые модули от низкоуровневых.
Простой пример — паттерн MVP, где вы определяете интерфейсы, которые помогают передавать данные из одного конкретного класса в другой. Это значит, что UI-часть (Activity/Fragment) не должна ничего знать о том, как именно работают методы Presenter. И если вы измените что-то в Presenter, Activity этого даже не заметит. Посмотрим на примере. Presenter имплементирует интерфейс:
То же самое в Activity:
Мы создали интерфейс, отделяющий имплементацию Presenter от Activity, которая содержит ссылку на интерфейс, а не на Presenter.
Если вы уже разрабатывали приложение, в котором были бессмысленные названия, божественные классы, спагетти-код — поверьте, я тоже такое делал. Поэтому и делюсь знаниями от Дяди Боба о чистом коде. Надеюсь, они вам помогут.
QR‑коды встречаются повсюду: на билетах, вывесках, визитках, одежде, в интернете. Мы привыкли пользоваться ими и даже не задумываемся об их сущности. Подобно штрихкодам, они являются оптическими метками, которые содержат текстовую информацию, вмещая до 7 000 цифр или около 4 000 букв и спецсимволов.
Данные внутри QR‑кодов зашифрованы определённым образом и считываются, а затем декодируются с помощью специального ПО. Соответствующая функция сейчас есть в любом смартфоне из коробки. Также она может быть добавлена путём установки приложения.
Как сгенерировать QR‑код
Для того чтобы зашифровать информацию внутри QR‑кода, понадобится специальный генератор в виде онлайн‑сервиса или приложения. Первый вариант удобнее использовать на компьютере, второй, соответственно, на смартфоне. Вот как это делается.
Как сгенерировать QR‑код онлайн
Рассмотрим процесс на примере популярного сервиса QRCode Monkey, который примечателен большим количеством настроек и дополнительными функциями вроде добавления своей картинки или логотипа к коду.
Перейдите по ссылке и введите нужный URL в поле Enter content.
Если хотите, измените цвета QR‑кода в разделе Set colors.
В меню Add logo image загрузите свою картинку или выберите один из логотипов соцсетей.
Переключитесь на раздел Customize design и выберите вид QR‑кода.
Когда он будет готов, укажите с помощью ползунка справа нужное разрешение, а затем кликните Create QR Code и скачайте картинку кода, нажав на кнопку желаемого формата.
Также можно воспользоваться одним из следующих сервисов:
-
— простой генератор без лишних заморочек. — сервис с поддержкой различных форматов данных и встраиванием на сайт. — инструмент для создания динамических кодов, которые можно изменять в любое время, с выбором форматов, оформлением и встраиванием.
Как сгенерировать QR‑код на смартфоне
Попробуем создать код с помощью QR Code для iOS. В других приложениях, в том числе и для Android, процедура мало чем отличается и выполняется таким же образом.
Установите утилиту и откройте меню. Выберите пункт QR Code Creator.
Введите свой текст или ссылку и нажмите Generate.
Как считать QR‑код
Распознать сгенерированный код гораздо проще. На смартфоне это можно сделать через стандартную камеру или одно из многочисленных мобильных приложений. На компьютере удобнее всего воспользоваться онлайн‑сервисом, считав код через веб‑камеру или загрузив его изображение.
Как считать QR‑код на смартфоне
iPhone умеет распознавать коды начиная с iOS 11, на Android‑устройствах аналогичная функция доступна с Android 9.0. Учитывая это, проще всего считывать QR‑коды обычной камерой, не прибегая к помощи сторонних приложений. Хотя при необходимости можно использовать и их.
Для распознавания нужно лишь включить камеру и навести объектив на QR‑код. После этого нажать на всплывающее уведомление, и контент откроется в соответствующем приложении: ссылка — в браузере, контакт — в адресной книге и так далее.
Осенью 2021 года QR-коды стали обязательным пропуском, позволяющим посещать привычные нам магазины, кафе и рестораны, театры, кинотеатры, и другие массовые и любимые многими заведения. При входе в такие заведения у вас обязательно попросят QR-код и паспорт, с целью убедиться, что вы прошли вакцинацию, переболели коронавирусом или имеете актуальный результат негативного ПЦР-теста. После вакцинации куар код с сертификатом приходит в приватный кабинет пользователя на сайте Госуслуг. Но как же перенести QR код с Госуслуг на ваш телефон и вывести на экран? В нашем материале мы разберём, как скачать QR-код с портала Госуслуг на ваш смартфон, и перечислим шаги, которые для этого понадобятся.
QR-код на портале Госуслуг
Как известно, QR-код являет собой матричный штрихкод, который приобрёл повсеместное применение с введением коронавирусных ограничений в разных странах мира. В России он стал обязательным элементом электронного сертификата вакцинированного, переболевшего или негативного ПЦР-теста, которые поступают в личный кабинет пользователя на портале Госуслуг. Оттуда данный QR-код вместе с сертификатом можно легко скачать к себе на телефон, и использовать для посещения интересующих нас заведений и мероприятий.
Для поступления сертификата с куар кодом в ваш приватный кабинет на сервисе Госуслуг необходимы несколько важных условий:
- Подтверждённая учётная запись пользователя на сервисе Госуслуг . Для этого необходимо пройти стандартную регистрацию на данном веб-сайте, а затем подтвердить свою учётную запись одним из предложенных системой способов. Наиболее удобные – это поход в МФЦ или через онлайн-банкинг;
- Корректно внесенные врачом данные о вашей вакцинации или перенесённой болезни КОВИД-19 . В случае допущенных ошибок сертификат с куар кодом просто не поступит в ваш приватный кабинет на портале. В этом случае придётся вновь придётся посетить медицинское учреждение, где вы проходили вакцинацию, и попросить перепроверить введённые в регистр вакцинированных или переболевших данные.
В случае соблюдения указанных условий сертификат с QR кодом появляется на Госуслугах от нескольких часов до 3-х дней после второго этапа вакцинации или подтверждения выздоровления от коронавируса.
Получив сертификат вакцинации с QR-кодом на Госуслугах у вас может появиться необходимость перенести QR-код к себе на телефон и вывести его на экран. Давайте разберёмся, как это можно сделать.
Скачайте файл сертификата с QR-кодом с Госуслуг на смартфон
Новая форма веб-портала Госуслуг предлагает своим пользователям простой доступ к электронному сертификату вакцинации с QR-кодом. Оттуда вы можете скачать файл сертификата с кодом к себе на телефон, и запускать его в нужный момент, открывая для сканирования QR-код сертификата.
Сделайте скриншот QR-кода и сохраните его в Галерею
Другой способ сохранения QR-кода не предполагает скачивания сертификата с куар кодом из Госуслуг, так как с работа с pdf-файлами может вызывать трудности у ряда пользователей. В качестве альтернативы предлагаем вам открыть QR-код на веб-портале Госуслуг, а потом сделать скриншот (снимок экрана) данного куар-кода. Данный снимок сохранится в приложении «Галерея» вашего телефона, где вы его легко найдёте.
Понадобится сделать следующее:
- Выполните шаги с 1 по 6 описанные в предыдущем разделе;
- После открытия куар кода сделайте его скриншот на вашем телефоне. На большинстве Андроид-телефонов для этого достаточно зажать одновременно кнопки «Громкость вниз» и «Питание» до характерного щелчка;
- Созданный вами скриншот куар кода будет сохранён в Галерее вашего смартфона. Открыв Галерею, вы сможете легко найти сохранённый код, и вывести его на экран вашего смартфона для считывания.
Используйте функционал приложения «Госуслуги Стоп Коронавирус»
Кроме веб-сайта Госуслуг вы также загрузить QR с Госуслуг на телефон и вывести на экран смартфона с помощью функционала приложения «Госуслуги Стоп Коронавирус» (доступно на Андроид и iOS) от Минцифры России. Приложение просто и удобно в использовании, позволяя открыть сертификат с куар кодом, и при необходимости сохранить его на ваш телефон.
Заключение
В нашем материале мы описали несколько удобных способов сохранения QR-кода с сервиса Госуслуг на ваш телефон. Наиболее простым и удобным способом будет создание скриншота QR-кода, который вы сможете сохранить к себе в Галерею. Неплохим решением будет поставить куар-код в качестве картинки для экрана блокировки смартфона. Это позволит быстро выводить код на экран вашего телефона, не затрачивая на это лишних усилий.
Читайте также: