Цифровой элемент

Сайт использует файлы cookie для удобства работы, аналитики и рекламы. Нажимая «Принять» или продолжая пользоваться d-element.ru, вы соглашаетесь с нашей Политикой конфиденциальности и обработкой персональных данных (включая файлы cookie).

Мобильное приложение для производителей и дистрибьюторов

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

Мобильное приложение для производителей

Каким бывает продукт

Наше приложение будет полезно
Партнерам
Дистрибьюторам
Агентам
Торговым представителям
Небольшим розничным точкам
Поможет взаимодействовать с поставщиками

Команда

Наше преимущество – наличие in-house специалистов уровня middle и выше для разработки Вашего проекта.

4 (1).png

Функциональные модули продукта


Каталог

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

1 (4).png

Личный кабинет

Личный кабинет позволит вашим клиентам хранить свои персональные данные в соответствии с законодательством РФ. Они смогут выстраивать иерархию для своих сотрудников и настраивать доступ для менеджеров, управлять правами пользователей, просматривать заказы и списки компаний. Также клиенты смогут общаться с персональным менеджером через чат, использовать сервис торгов и аукционов, автоматизированный документооборот и график платежей для кредитных договоров, а также сканировать QR-коды.

2 (4).png

Оформление заказа и логистика

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

3 (3).png

Этапы разработки продукта

1.Разработка UX дизайна приложения

Разработка UX дизайна ведется с учетом сценариев компании. Определяем общую визуальную концепцию и стили разрабатываемого продукта. Данные работы выполняет команда наших дизайнеров под главенством арт-директора. Для презентации подготавливаем видеоролик с анимацией и демонстрацией элементов интерфейса.


2.Создание B2B-каталога

Создание B2B каталога с настройкой фильтров и поиска имеет несколько этапов:

  • Сбор и структурирование данных: изучаем особенности товаров, которые будут представлены в каталоге, собираем информацию о каждом товаре и структурируем данные в соответствии с требованиями каталога.
  • Определение фильтров и поиска: выбираем характеристики товаров, которые будут использоваться при фильтрации, настраиваем и интегрируем фильтры в пользовательский интерфейс.
  • Создание системы поиска: определяем поля поиска, которые будут использоваться, разрабатываем алгоритм поиска и внедряем его.
  • Тестирование и оптимизация: проводим тестирование каталога, включая проверку работоспособности фильтров и поиска и их соответствие требованиям пользователей
Важно помнить, что создание B2B каталога с настройкой фильтров и поиска - это процесс, который может требовать времени и ресурсов, особенно при работе с большим объемом товаров и сложными характеристиками. Но реализация удобного и функционального каталога может значительно улучшить пользовательский опыт и способствовать росту бизнеса.

3.Настройка каталога

Настройка каталога для передачи актуальной информации о наличии товара на складе включает в себя следующий набор действий:

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

4.Создание личного кабинета

Разрабатываем личный кабинет с созданием в режиме реального времени. Мы реализовываем несколько функциональных модулей при работе с личным кабинетом:

  • Начало регистрации
  • Вход
  • Управление профилем
  • Управление заказами
  • История покупок
  • Поддержка и обратная связь
  • Выход из аккаунта
Таким образом, личный кабинет для покупателя компании в режиме реального времени предлагает удобный способ управления профилем, заказами и покупками, а также общения с компанией через одну платформу. Это позволяет покупателю получать актуальную информацию и более индивидуальный подход со стороны компании.

5.Создание сервиса для ведения документации

Для создания сервиса для ведения документации в личном кабинете пользователя мы проходим несколько этапов:

  • Анализируем требования: определяем основные функции и возможности сервиса, выявляем основные типы документов и требования к безопасности и доступы к ним.
  • Проектируем базу данных: разрабатываем структуру базы данных, определяем связи и разрабатываем схемы доступов и управления правами.
  • Разрабатываем серверную часть: создаем API, который будет обеспечивать взаимодействие с базой данных, пишем функционал для работы с документацией и её версионирования, а также разрабатываем механизмы для обеспечения безопасности данных и защиты от возможных атак.
  • Разрабатываем клиентскую часть: создаём интерфейс пользователя, разрабатываем функциональность поиска и фильтрации документов, возможность загружать и скачивать документы в различных форматах.
  • Тестируем: проводим различные виды тестирования функций и возможностей, безопасности и надежности  сервиса.

6.Разработка нативного приложение

Разработка нативного приложения включает в себя предыдущие этапы, и разработку всего приложения в целом:

  • Проектируем интерфейс: разрабатываем пользовательский интерфейс, создаём схемы навигации и определяем функциональные блоки приложения.
  • Разрабатываем backend: на этом этапе создаем серверную часть приложения, которая обрабатывает данные и осуществляет взаимодействие с базой данных. 
  • Разрабатываем frontend: на этом этапе создаем клиентскую часть приложения, которая обеспечивает взаимодействие пользователя с сервером. 
  • Тестируем: после завершения разработки, тестируем приложение на различных устройствах и сценариях использования, чтобы убедиться в его работоспособности и корректности работы.
  • Релиз: после успешного тестирования и исправления ошибок приложение готово к релизу. Мы загружаем приложение в соответствующие магазины приложений (например, App Store для iOS или Google Play для Android) и выпускаем его. 

Технологический стек

Для каждого проекта мы подбираем собственный стек технологий и фреймворков.

Сроки и стоимость работ

Стоимость проекта рассчитывается индивидуально после оценки технического задания или по итогам предпроектного анализа

Средняя стоимость внедрения системы электронной коммерции: от 2 млн. руб.
Срок разработки: от 3 месяцев

Читайте в нашем блоге

Читайте в нашем блоге

Нагрузочное тестирование Java веб-приложений: подходы и инструменты
Нагрузочное тестирование Java веб-приложений: подходы и инструменты

При разработке веб-приложений один из важных этапов его тестирования - это нагрузочное тестирование. Это позволяет не только выявить возможные узкие места в системе, но и убедиться, что приложение способно выдерживать ожидаемое количество пользователей и запросов. Содержание 1. Понимание нагрузочного тестирования 2. Ключевые методики нагрузочного тестирования 3. Инструменты для нагрузочного тестирования Java веб-приложений 4. Пример нагрузочного тестирования с использованием Apache JMeter 5. Лучшие практики нагрузочного тестирования 6. Вывод 7.Пример протокола нагрузочного тестирования веб-приложения или сайта Понимание нагрузочного тестирования Нагрузочное тестирование — это процесс моделирования различных уровней пользовательской активности на веб-приложение для оценки его производительности. Основная задача этого тестирования заключается в том, чтобы понять, насколько эффективно система справляется с увеличивающимся трафиком и где находятся ее пределы. В результате нагрузочного тестирования выявляются точки отказа и определяется максимальная пропускная способность приложения. В прошлом мы уже рассматривали тему нагрузочного тестирования в статье, где детально обсудили основные инструменты и подходы к проверке производительности приложений. Если вам интересна более широкая картина, рекомендуем ознакомиться с той статьей. А в этом материале мы сосредоточимся на специфике нагрузочного тестирования Java веб-приложений, рассмотрим основные методики, инструменты и лучшие практики для достижения оптимальных результатов. Ключевые методики нагрузочного тестирования Пиковая нагрузка (Spike Testing): Данный метод тестирования направлен на оценку реакции системы на резкое увеличение нагрузки. Он помогает выявить, как приложение справляется с внезапными всплесками пользовательской активности. Длительное тестирование (Soak Testing): Метод заключается в проверке системы на ее способность функционировать под стабильной нагрузкой в течение длительного времени. Это позволяет обнаружить долгосрочные проблемы, такие как утечки памяти или сбои в подключении к базе данных. Стресс-тестирование (Stress Testing): Этот вид тестирования позволяет оценить работу приложения при нагрузке, которая превышает ожидаемую. Цель состоит в том, чтобы определить, на каком этапе система начинает сбоить и как быстро она восстанавливается после перегрузки. Постепенное увеличение нагрузки (Ramp-Up Testing): Здесь нагрузка на систему увеличивается плавно, пока не достигает заданного уровня. Такой подход помогает определить порог, при котором начинаются проблемы с производительностью. Инструменты для нагрузочного тестирования Java веб-приложений Apache JMeter: Популярный инструмент для проведения нагрузочного тестирования, который поддерживает множество протоколов, включая HTTP, HTTPS, SOAP и JDBC. JMeter предлагает широкий спектр возможностей для создания сложных тестовых сценариев и анализа результатов, что делает его универсальным решением для нагрузочного тестирования. shell # Запуск теста в JMeter jmeter -n -t test_plan.jmx -l results.jtl -e -o /path/to/output/folder Gatling: Этот инструмент, разработанный на языке Scala, отличается высокой производительностью и возможностью масштабирования. Gatling предоставляет удобный DSL для создания тестовых сценариев и мощные средства анализа, что делает его идеальным для сложных нагрузочных тестов. scala class BasicSimulation extends Simulation { val httpProtocol = http.baseUrl("http://localhost:8080") val scn = scenario("Basic Scenario") .exec(http("request_1").get("/")) setUp(scn.inject(atOnceUsers(1000)).protocols(httpProtocol)) } Locust: Написанный на Python, этот инструмент позволяет разрабатывать тестовые сценарии, используя знакомый разработчикам язык. Locust легко интегрируется с другими системами и дает возможность гибко управлять нагрузкой, что делает его удобным для использования в различных проектах. python from locust import HttpUser, TaskSet, task class UserBehavior(TaskSet): @task def index(self): self.client.get("/") class WebsiteUser(HttpUser): tasks = [UserBehavior] min_wait = 5000 max_wait = 9000 Apache Benchmark (ab): Этот легковесный инструмент предназначен для быстрого выполнения базовых тестов производительности веб-серверов. Он прост в использовании и подходит для быстрой оценки производительности приложений в условиях базовой нагрузки. shell # Запуск теста с 1000 запросами и 100 параллельными пользователями ab -n 1000 -c 100 http://localhost:8080/ Пример нагрузочного тестирования с использованием Apache JMeter Рассмотрим более подробно пример проведения нагрузочного тестирования Java веб-приложения с использованием Apache JMeter. Установка Apache JMeter: Скачайте и установите Apache JMeter с официального сайта. Запустите JMeter, используя команду jmeter в командной строке. Создание тестового плана: Откройте JMeter и создайте новый тестовый план. Добавьте Thread Group (Группу потоков), которая определяет количество пользователей (потоков), период разгона и количество циклов. // Пример настройки Thread Group ThreadGroup threadGroup = new ThreadGroup(); threadGroup.setName("Example Thread Group"); threadGroup.setNumThreads(100); // Количество пользователей threadGroup.setRampUp(10); // Время разгона (в секундах) threadGroup.setLoopCount(1); // Количество циклов Добавление элементов к тестовому плану: Добавьте HTTP Request Sampler, чтобы определить запросы к вашему веб-приложению. Укажите сервер, путь и другие параметры запроса. // Пример настройки HTTP Request Sampler HTTPSampler httpSampler = new HTTPSampler(); httpSampler.setDomain("example.com"); httpSampler.setPort(80); httpSampler.setPath("/api/test"); httpSampler.setMethod("GET"); Добавление слушателей для анализа результатов: Добавьте View Results Tree и Summary Report для визуализации результатов тестирования. // Пример настройки View Results Tree ViewResultsTree resultsTree = new ViewResultsTree(); testPlan.add(resultsTree); // Пример настройки Summary Report SummaryReport summaryReport = new SummaryReport(); testPlan.add(summaryReport); Запуск теста и анализ результатов: Запустите тестовый план и проанализируйте результаты, чтобы определить узкие места и потенциальные точки отказа. // Запуск теста JMeterEngine jmeterEngine = new StandardJMeterEngine(); jmeterEngine.configure(testPlan); jmeterEngine.run(); // Анализ результатов for (SampleResult result : resultsTree.getResults()) { System.out.println("Response time: " + result.getTime()); System.out.println("Response code: " + result.getResponseCode()); } Преобразование нагрузки в RPS вместо количества пользователей Если тестовый план выполняет запросы к адресам параллельно, нагрузка на каждый адрес может разниться. Для такого случая удобнее перевести нагрузку в RPS и указывать лишь общую подаваемую нагрузку, выраженную в количестве запросах в секунду. Порядок действий: В Apache Jmeter кликнуть на корневой элемент с тестовым планом. Добавить новую переменную load_msg_sec (наименование переменной может быть любым). В качестве значения переменной можно установить как константное значение, так и параметризованное. Рассмотрим параметризованное. Для того чтобы добавить параметризованное значение нужно в столбце value добавить следующее: ${__P(load, 50)} , где load - наименование параметра. 50 - значение по умолчанию. Далее в группу потока (Thread group) нужно добавить Constant Throughput Timer (RBM - Add - Timer - Constant Throughput Timer) В поле Target throughput (in samples per minute) указывается следующая формула: ${__jexl3(${load_msg_sec} *60 * #percent#)}, где ${load_msg_sec} - количество запросов в секунду из переменной load_msg_sec, 60 - перевод из запросов в секунду в запросы в минуту (поскольку таймер принимает количество запросов в минуту), #percent# - процент от общего количества запросов (при проведении теста параллельно по всем адресам) указывается на основе методики нагрузочного тестирования. Указание basic auth в Apache JMeter Если нужно выполнить нагрузку на тестовых стендах, которые обычно закрыты Basic Auth, обычный запуск теста приведет к перманентным ответам с http кодом 403. Чтобы это исправить, нужно выполнить следующие действия. К группе потоков (Thread Group) добавляется BeanShell PreProcessor (RBM - add - Pre Processors - BeanShell PreProcessor) со следующим кодом: import org.apache.commons.codec.binary.Base64; byte[] encodedUsernamePassword = Base64.encodeBase64("login:password".getBytes()); vars.put("base64HeaderValue",new String(encodedUsernamePassword)); К этой же группе потоков добавить HTTP Header Manager c заголовком Name: Authorization Value: Basic ${base64HeaderValue}, где ${base64HeaderValue} - переменная назначенная в препроцессоре Лучшие практики нагрузочного тестирования Реалистичные сценарии: Тестовые сценарии должны максимально точно отражать реальные условия использования приложения. Это позволяет более точно прогнозировать его поведение при эксплуатации и заранее выявлять потенциальные проблемы. Мониторинг и анализ: Во время проведения тестов важно использовать инструменты мониторинга, которые помогут отслеживать состояние системы и своевременно реагировать на возможные проблемы. Анализ данных позволяет выявить узкие места и оптимизировать систему для улучшения производительности. Регулярность тестирования: Нагрузочные тесты должны проводиться на постоянной основе, особенно после внесения значительных изменений в код или инфраструктуру. Это позволяет своевременно обнаруживать проблемы и поддерживать стабильную работу приложения. Интеграция с CI/CD: Включение нагрузочного тестирования в процессы непрерывной интеграции и доставки (CI/CD) обеспечивает автоматическую проверку производительности после каждого изменения в коде, что позволяет избегать введения проблем с производительностью в рабочую среду. Комбинирование инструментов: Использование нескольких инструментов для нагрузочного тестирования позволяет получить более полное представление о производительности приложения. Это помогает выявить различные аспекты поведения системы под нагрузкой и предложить более комплексные решения. Многоуровневое тестирование: Проведение тестов при различных уровнях нагрузки — от минимального до предельного — позволяет лучше понять, как приложение ведет себя в разных условиях, и выявить его пределы. Документирование и отчеты: Ведение детальной документации результатов тестирования и создание отчетов позволяют анализировать проделанную работу, выявлять тенденции и планировать дальнейшие улучшения. Оптимизация и настройка: После проведения тестов необходимо проводить оптимизацию системы, основываясь на полученных результатах. Это может включать в себя настройку серверов, оптимизацию запросов к базе данных и улучшение самого кода приложения. Сотрудничество с командой: Постоянное взаимодействие с командой разработки и другими заинтересованными сторонами способствует оперативному решению выявленных проблем и повышению качества продукта. Вывод Нагрузочное тестирование — важный этап в разработке и поддержке Java веб-приложений, который позволяет обеспечить их надежную и эффективную работу при различных уровнях нагрузки. Использование инструментов, таких как Apache JMeter, Gatling, Locust и Apache Benchmark, в сочетании с лучшими практиками тестирования, помогает выявить и устранить узкие места в системе, что позволяет поддерживать высокую производительность и стабильность работы приложений. В компании «Цифровой элемент» мы регулярно проводим нагрузочное тестирование для крупных и сложных проектов, гарантируя их стабильность и высокую производительность даже в условиях значительных нагрузок. Наша команда включает в себя опытных специалистов, которые глубоко понимают все аспекты процесса тестирования — от разработки реалистичных сценариев до анализа результатов и оптимизации системы. Для удобства мы разработали четкие процессы, позволяющие нам интегрировать нагрузочное тестирование в общую цепочку разработки и доставки программного обеспечения. Если вам необходимо провести нагрузочное тестирование вашего веб-приложения, мы готовы предложить вам полный спектр услуг — от анализа текущей производительности до разработки и реализации рекомендаций по её улучшению. Обращайтесь к нам, и мы поможем вам достичь наилучших результатов, обеспечив надежную работу вашего приложения при любых нагрузках. Пример протокола нагрузочного тестирования веб-приложения или сайта Документ описывает результаты проведения нагрузочного тестирования системы. Объект испытаний Объектом испытаний нагрузочного тестирования является система. Цели испытаний Проверка соответствия разработанной системы предъявляемым требованиям. Определение максимальной и пиковой производительности системы. Проверка стабильности работы разработанной системы в течение длительного промежутка времени под нагрузкой. Базовый профиль Базовый профиль тестирования подразумевает собой набор исследуемых объектов. Количество запросов рассчитано на основе требований к производительности системы и предполагаемого базового пользовательского пути. Код Требование Значение 1 Общее количество запросов к системе в месяц 30 000 000 2 Пиковое количество запросов в месяц не менее 3 300 000 3 Пиковое количество запросов в неделю не менее 900 000 4 Пиковое количество запросов в день не менее 110 000 5 Количество пользователей в месяц 300 000 6 Количество пользователей в неделю 60 000 7 Количество пользователей в день 10 000 Расчетное количество запросов в час берется равным, исходя из расчета максимального количества запросов: N запросов/ч = 30 000 000 / 30 / 24 = 41666.(6) ~= 42 000 запросов в час На основе CJM (Customer journey map) выделяются объекты образующие основную нагрузку: Объект URI Процент запросов в час Количество запросов в час Название объекта / 27% 11 340 Название объекта /…/ 15% 6 300 Название объекта /…/ 11% 4 620 Название объекта /…/ 5% 2 100 Название объекта /…/ 16% 6 720 Название объекта /…/ 5% 2 100 Название объекта /…/ 6% 2 520 Название объекта /…/ 15% 6 300 Нагрузку на объекты распределили пропорционально целевой аудитории. Запросы распределяются равномерно в течении часа, что дает общее количество запросов в секунду N запросов/cек = 42 000 / 60 / 60 = 11,(6) ~= 12 запросов в секунду План тестирования План тестирования представляет из себя следующие пункты: Разработка профиля нагрузочного тестирования; Настройка систем мониторинга; Разработка скриптов генерации нагрузки; Подготовка тестовых данных (например, вариации значения поисковой строки) + скрипт наполнения базы тестовыми данными для теста и их удаления по завершению; Проведение нагрузочных тестов; Анализ результатов нагрузочных тестов. Типы проводимых тестов Методикой предусматривается проведение следующих тестов: Поиск пиковой производительности Нагрузка: ступенчатая Начальная нагрузка: 40% Шаг: + 30% от базового профиля Продолжительность ступени: 30 минут или отказ Системы Критерий завершения теста: отказ Системы Критерий успешности теста: максимальная производительность системы выше значений базового профиля. Проверка стабильности работы системы Нагрузка: равномерная с плавным разгоном Максимальная нагрузка: Базовый профиль Время разгона: 15 мин. Длительность основного этапа - 4 часа Критерий завершения теста: истечение времени или Отказ Системы Критерий успешности: окончание по истечении времени Требования к производительности системы Требования к утилизации ресурсов во время тестов Утилизация ресурсов севера должна соответствовать следующим показателям: Утилизация CPU не более 80%; Утилизация RAM не более 80%. Требование сформировано на основании экспертной оценки, требований к Системе не предъявлено. Требования к количеству неуспешных запросов Количество Неуспешных запросов не должно превышать следующие показатели от интенсивности входящей нагрузки: Тест поиска максимальной производительности (последняя ступень) – 0,1%; Тест подтверждения максимальной производительности (в ходе всего теста)– 0,1%; Тест стабильности (в ходе всего теста)– 0,1% Период агрегации соответствует периоду постоянной нагрузки в каждом из тестов. Требования ко времени отклика и интенсивности типовых шагов бизнес операций 90% — 50 мс, 99% — 1000 мс, 99,9% — 2500 мс, Конфигурация стенда для НТ Компонент Значение CPU Cores (количество ядер) XX RAM (Размер ОЗУ в Гб) XXX Поиск максимальной производительности Максимальная производительность - нагрузка, выраженная в количестве обращений в секунду, превышающие границы утилизации ресурсов, описанных в разделе “Требования по утилизации ресурсов” настоящего документа.. Поиск максимальной производительности проводится в рамках нескольких тестов с пошаговым увеличением нагрузки относительно базового профиля. Шаг рассчитывается как: Шаг = Значение базового профиля * 0,4 = 4.8 => 5 - значение шага для увеличения нагрузки Продолжительность шага составляет 30 минут Первый шаг RPS CPU RAM Average (response, ms) Min (response, ms) Max (response, ms) Error % Результат 12 q/s 31,5% 6% 853 342 2332 0,01% Соответствует График результатов теста из jMeter График использования ЦПУ (Grafana) График использования ОЗУ Второй шаг RPS CPU RAM Average (response, ms) Min (response, ms) Max (response, ms) Error % Результат 17 q/s 44,8% 6% 823 339 3132 0,00% Соответствует График результатов теста из jMeter График использования ЦПУ (Grafana) График использования ОЗУ Третий шаг RPS CPU RAM Average (response, ms) Min (response, ms) Max (response, ms) Error % Результат 22 q/s 58,6% 6% 851 353 2041 0,00% Соответствует График результатов теста из jMeter График использования ЦПУ (Grafana) График использования ОЗУ Четвертый шаг RPS CPU RAM Average (response, ms) Min (response, ms) Max (response, ms) Error % Результат 27 q/s 73,6% 7% 841 337 2652 0,00% Соответствует График результатов теста из jMeter График использования ЦПУ (Grafana) График использования ОЗУ Пятый шаг RPS CPU RAM Average (response, ms) Min (response, ms) Max (response, ms) Error % Результат 32 q/s 88,0% 7% 764 342 2332 0,00% Значение CPU превышает допустимый порог, при этом процент отказа равен 0. Определяем производительность как максимальную График результатов теста из jMeter График использования ЦПУ (Grafana) График использования ОЗУ Вывод Максимальная производительность системы после проведенного теста на поиск составляет XXX запросов в секунду, что больше чем ожидаемая нагрузка на XXXX%. Система удовлетворяет описанным показателям производительности. Тест на стабильность системы Тест на стабильность выполняется с нагрузкой базового профиля продолжительное время. Время теста составляет 4 часа. RPS CPU RAM Average (response, ms) Min (response, ms) Max (response, ms) Error % Результат 12 q/s 33,6% 7% 503 343 4116 0,00% Соответствует График результатов теста из jMeter График использования ЦПУ (Grafana) График использования ОЗУ Вывод На протяжении 4 часов тестирования стабильности системы процент отказа составил 0%, нагрузка равномерно распределена. Система удовлетворяет описанным показателям производительности.

6 033
Как создать аккаунт разработчика в App Store, Google Play, AppGallery
Как создать аккаунт разработчика в App Store, Google Play, AppGallery

Перед тем, как опубликовать мобильное приложение в сторе, нужно зарегистрировать аккаунт разработчика. Мы поддерживаем клиента на протяжении всего пути работы над приложением, публикуем приложение в сторах. Но перед публикацией заказчик приложения должен сам зарегистрировать свой аккаунт разработчика – от его имени оно и будет опубликовано. Вопрос – как это сделать? В этой статье мы поделимчя подробным чек-листом по созданию аккаунта разработчика для трех главных магазинов мобильных приложений. Начнем с самого сложного – App Store! App Store Для регистрации вам понадобится: устройство от Apple (телефон, планшет или ноутбук). Физическим лицам Физические лица или ИП проходят авторизацию с помощью своего Apple ID. Вам будет необходимо предоставить основную личную информацию с юридическим именем и адресом. Не указывайте псевдоним или название компании вместо имени или фамилии. Неправильный ввод юридического имени организации может привести к задержке при утверждении регистрации. Юридическим лицам Для организаций название юридического лица будет указано в качестве продавца в App Store. При регистрации нужно указать имя юридического лица и DUNS-номер. Для публикации приложения потребуются: Статус юридического лица. Чтобы зарегистрироваться в программе Apple для разработчиков, ваша организация должна быть юридическим лицом, чтобы она могла заключать контракты с Apple. DUNS-номер. Это уникальные девятизначные номера присваиваются Dun & Bradstreet и широко используются в качестве стандартных бизнес-идентификаторов. Вы можете проверить, есть ли у вашей организации DUNS-номер и при необходимости запросить его. Эти номера бесплатны в большинстве юрисдикций. Юридически полномочия. Вы должны быть владельцем, основателем организации, членом исполнительной команды, старшим руководителем проекта или сотрудником с юридическими полномочиями, предоставленными вам старшим сотрудником. Веб-сайт. Веб-сайт компании должен быть общедоступным, а доменное имя – связано с названием компании. Перед тем, как создать аккаунт разработчика в App Store необходимо проверить если у вас Apple ID. Если Apple ID у вас уже есть, то для дальнейшей регистрации аккаунта потребуется: доступ к привязанному к Apple ID номеру телефона; ответы на все проверочные вопросы, заданные при регистрации Apple ID. В случае, если некоторые данные утеряны, лучше завести новый Apple ID. После того, как вы зарегистрировали новый или вошли в свой Apple ID, можно приступать к регистрации аккаунта разработчика. Для этого скачайте приложение Apple для разработчиков или посетите веб-версию. Ознакомьтесь с пользовательским соглашением компании Apple и установите флажок, подтверждающий, что вы его прочитали, и нажмите «Отправить». Проверьте, что вся указанная контактная информация верна (e-mail, имя, адрес), затем выберите юридическое лицо. Заполните все контактные данные для вашей учетной записи разработчика. Ознакомьтесь с Лицензионным соглашением Apple Developer Program, установите флажок и нажмите «Продолжить». Подтвердите, что вся ранее введенная информация верна, и нажмите продолжить. Нажмите «Приобрести», чтобы зарегистрироваться и оплатить годовой аккаунт разработчика iOS. Не забудьте установить флажок «Автоматическое продление», если вы хотите, чтобы ваше членство продлевалось автоматически. Войдите в систему с помощью своего Apple ID и заполните платежную информацию. Затем нажмите «Продолжить», чтобы завершить настройку учетной записи разработчика iOS. Заполните оставшуюся информацию на следующих страницах. В течение 24 часов вы получите электронное письмо с подтверждением от Apple с сообщением, что настройка вашей учетной записи разработчика iOS прошла успешно. Как только ваша учетная запись разработчика iOS будет полностью настроена, введите информацию о вашей учетной записи разработчика iOS в CMS в разделе «Опубликовать» Ежегодная стоимость участия в программе Apple для разработчиков – $99, а годовая плата за участие в корпоративной программе Apple для разработчиков – $299. Google Play Чтобы публиковать приложения в Google Play, сначала необходимо создать учетную запись разработчика. Для создания аккаунта разработчика используйте свой обычный аккаунт Google. Обязательно включите двухфакторную аутентификацию. Выберите тип аккаунта разработчика. Аккаунт организации Для создания аккаунта организации необходимо указать: Номер DUNS.Это уникальный девятизначный номер в регистре компании Dun&Bradstreet, который используется в качестве международного идентификатора организаций. По номеру DUNS Google проверяет вашу организацию. Вам необходимо подтвердить информацию, которую Google получается от компании Dun&Bradstreet, предоставив официальный документ от вашей организации. Контактный телефон и адрес электронной почты для пользователей Google Play. Пользователи будут видеть эту информацию в Google Play и смогут с её помощью связаться с вами. Адрес и контактный телефон нужно подтвердить с помощью кода. Контактный телефон и адрес электронной почты для Google. Google будет использовать эти сведения, если потребуется связаться с разработчиками. Пользователи Google Play их не увидят. Адрес и контактный телефон нужно подтвердить с помощью кода. Способ оплаты. Нужен, чтобы оплатить единоразовый регистрационный взнос в размере 25 долларов США. Личный аккаунт Для создания личной учетной записи необходимо указать: Имя разработчика, которое будет отображается пользователям в Google Play; Контактное лицо; Адрес электронной почты, который будет необходимо подтвердить; Адрес; Контактный номер телефона, который необходимо подтвердить; Веб-сайт или ссылка на соц.сети. Примите соглашение о распространении программных продуктов. Оплатите регистрационный взнос. Единоразовый регистрационный взнос – $25. К оплате принимаются карты: MasterCard Visa American Express Discover (только для США) Visa Electron (только за пределами США) После оплаты у вас появится доступ к Google Play Console и можно будет загружать приложение. AppGallery В AppGallery, как и в предыдущих магазинах приложение, есть два режима регистрации: для физического лица (индивидуального разработчика); для юридического лица (компании). Индивидуальным разработчикам Регистрация аккаунта разработчика в системе HUAWEI Developer проходит бесплатно. Для подтверждения и активации аккаунта требуется указать персональные данные: полный домашний адрес; номер телефона; сканы документа, удостоверяющего личность, и сканы банковской карты (в качестве документа, удостоверяющего личность, можно использовать паспорт или водительское удостоверение). В среднем проверка аккаунта разработчика может занимать от 1 до 2 дней. Если проверка задерживается, можно обратиться в техническую поддержку, которая обрабатывает запросы в том числе на русском языке. Юридическим лицам При регистрации компании в Huawei, как и в App Store, для идентификации используется D-U-N-S номер. Для его получения у российских компаний в среднем уходит пара недель. Российские компании также могут быть зарегистрированы с использованием ОГРН. Следующий шаг после регистрации аккаунта разработчика – публикация мобильного приложения в AppGallery. Если вы хотите создать приложение или уже находитесь в стадии разработки, напишите нам! Наша команда может подключиться на любом этапе работы над проектом. Что такое DUNS number? D-U-N-S номер – это специальный идентификатор компании в информационной базе D&B, по которому вашу компанию можно будет найти в международном справочнике. При внесении вашей компании в справочник, сотрудники агентства проверят вашу компанию (проводится проверка, что компания действительно существует, срок существования, наличие компании по заявленному адресу офиса, количество сотрудников и так далее). Скажем так, регистрация вашей компании в каталоге D&B это первый шаг на пути к тому, чтобы получить подтверждение благонадежности вашей компании от авторитетной международной организации. При осуществлении внешнеторговых сделок одним из самых существенных факторов выбора зарубежного партнера является его благонадежность. К примеру, если ваша компания осуществляет экспорт продукции, произведенной в России и вы заинтересованы в привлечении новых торговых партнеров, вам нужно дать возможность убедиться вашим потенциальным покупателям в том, что ваша компания не является однодневкой и не исчезнет сразу после получения предоплаты за заказ. Как продавец и покупатель из разных стран могут проверить благонадежность друг друга? В мировой практике, для проверки контрагента участники рынка используют информацию от международных кредитно-рейтинговых агентств. Данные агентства собирают информацию о компаниях – юридических лицах, и осуществляют проверку из благонадежности, финансовое состояние и оценку рисков, которые могут возникнуть при работе с этими компаниями. Одним из крупнейших агентств, предоставляющих эти услуги, является агентство dun&bradstreet. На территории Российской Федерации оно представлено в виде совместного предприятия "Интерфакс - Дан энд Брэдстрит". Данное агентство предоставляет кредитные отчеты, которыми пользуются коммерческие организации (продавцы и покупатели товара), а также профессиональные игроки рынка – например некоторые Экспортно-Кредитные Агентства. К примеру, если вы собираетесь покупать продукцию у поставщика из Польши, Италии, Португалии или Турции, вы можете заказать кредитный отчет на данного поставщика, чтобы убедиться в надежности его компании. Как получить D-U-N-S номер бесплатно? Когда мы решили, что нашей компании нужно получить D-U-N-S номер, мы обратились в российское отделение и обнаружили, что стоимость регистрации и получения номера составляет 12 240 рублей. (Уточняйте стоимость, она могла измениться). Обычно такая регистрация производится бесплатно, в чем мы убедились, посетив международный сайт агентства – dnb.com Для регистрации вашей компании вам нужно пройти по ссылке: https://support.dnb.com/Support_Home и зарегистрировать себя и свою компанию. В течение 30 дней вам будет присвоен D-U-N-S номер, который вы можете опубликовать у себя на сайте и прикрепить в подписи к e-mail. По нашей практике, наличие D-U-N-S номера повышает уровень доверия к компании со стороны иностранных партнеров – особенно европейских и американских компаний, так как дает возможность иностранному партнеру моментально получить доступ к информации о вашей компании из авторитетного источника и убедиться в ее благонадежности. Как оплатить регистрацию аккаунтов разработчика в России Apple Developer Google более лоялен в плане модерации, а Apple — в оплате сервисов. На данный момент существует три рабочих способа для оплаты лицензии Apple Developer для пользователей из России. Про один из них — это оплата с помощью баланса мобильного телефона. Способ все еще рабочий, но благодаря вашим отзывам мы выделили несколько важных моментов: Работает только с МТС и Билайн. У других сотовых операторов приостановлена опция оплаты сервисов Apple; Оплата не всегда проходит с первого раза, может потребоваться несколько попыток, прежде чем Apple примет ваши деньги (вот же вредные!); Подходит только для продления лицензии, оплачивать новую придется другим способом; Способ номер два. Завести карту иностранного банка и проводить оплаты с помощью нее, используя VPN. Третий вариант: купить уже существующий аккаунт разработчика через сторонние площадки или группы в Telegram. Покупка обойдется в 200-300$ и обеспечит вам рабочий аккаунт, однако через год подписку нужно будет продлить и снова столкнуться с проблемой оплаты. Google Play Единственный рабочий вариант для этой платформы — использовать карту иностранного банка для оплаты. Для этого понадобится привязать платежный профиль пользователя к другой стране по IP пользователя и банковской карте. Включить на устройстве VPN той страны, где была получена карта (иногда перед включением VPN требуется выйти из аккаунта); Войти в аккаунт и выбрать раздел «Настройки» профиля; Нажать на кнопку «Общие»; Перейти в «Настройки аккаунта и устройства»; Нажать на «Страна и профили»; В открывшемся списке выбрать название необходимой страны, с которой будет связан профиль; Привязать карту в настройках аккаунта.

15K
Flutter или нативная разработка?
Flutter или нативная разработка?

Для масштабирования проекта под разные варианты устройств можно применить кроссбраузерность или воспользоваться нативной разработкой. У каждого из этих способов есть свои преимущества. Но что выбрать для конкретного проекта? В нашей статье мы разберём особенности кроссбраузерного фреймворка Flutter и его отличия от нативного метода. Суть подходов Flutter появился в 2018 году и быстро обрёл популярность среди разработчиков. С его помощью легко создавать компоненты UX и плавные анимации. Нативное приложение – это разработка под iOS и Android. Создаётся на специальных языках, которое используется на конкретной оперативной системе. Для iOS это Swift и Objective-C. А для Android – Java, Kotlin. Технология позволяет реализовать сложную функциональность. Однако, под каждую платформу приходится вести разработку отдельно. Поэтому в последнее время чаще выбирают более гибкий Flutter. Flutter более экономичен: разработчики пишут единый код сразу для обеих платформ. Код при этом более простой, его легко осваивают даже начинающие специалисты. А для нативных приложений код должен быть отдельным под каждую платформу. Разработка на Flutter сокращает время на создание приложения. Если сравнивать работу готовых продуктов, то загрузка нативного приложения происходит гораздо быстрее, но такое приложение использует намного больше памяти устройства. Заказать готовое мобильное приложение Заказать услугу Техническая поддержка Поддерживать нативное приложение достаточно сложно: Необходимо вносить изменения в две кодовые базы и следить, чтобы они были актуальными и работали корректно. Обновления также нужно разрабатывать для двух приложений. На сложность поддержки влияет количество устройств, которые поддерживают ОС. Поддерживать приложения на Flutter гораздо проще, прежде всего потому, что код один и ошибки нужно искать только в этом коде. Мы уже писали, что код достаточно простой, потому баги там находятся легко. Этому способствует наличие большое библиотеке, где описаны все возможные баги и способы их решения. А также можно применить технологию Hot Reload для моментального устранения ошибок. Интеграции с другими сервисами Единственный момент, который может вызвать сложности у разработчиков – моменты интеграции. На Swift и Kotlin можно быстро и безопасно проводить интеграции со всевозможными сторонними сервисами. Интеграция с Swift iOS происходит проще, приходится совершать меньшее число настроек, впрочем, некоторые сторонние сервисы легче интегрируются на Android, чем на iOS. На Flutter интеграцию можно производить с помощью сторонних плагинов, библиотек. Однако есть моменты, которые могут вызвать сложности у начинающих разработчиков. К сожалению движок обладает некоторыми ограничениями, но вы можете воспользоваться документацией, в которой описаны действия разработчиков в этом случае. Несмотря на описанные недочёты, интеграция на Flutter может пройти быстрее, так как достаточно разобраться с одним кодом и найти одно решение. Стоимость разработки Логично, что для написания нативных приложений требуется 2 команды: те, что специализируются на iOS разработке, и те, что проектируют Android-сервисы. Flutter разработка подразумевает одну команду, работающую в комплексе. Сценарии использования Выбор того или иного способа разработки зависит от варианта дальнейшего использования. Нативная разработка Flutter Приложения с дополненной реальностью; Приложения со сложным UI; Приложения на основе искусственного интеллекта; Игры; Приложения для вещей (умный дом, кошельки, ТВ); Навигаторы; Использование сложной анимации; Приложения для путешествий. Приложение с фичами, которые активно взаимодействуют с ОС; Сложные плагины с простой логикой; Гибкий UI с высокоуровневыми виджетами; Реактивные приложения с интеграцией больших данных; Приложения с графическим движком Skia; Мобильный банк; Интернет-магазины; Интернет-аптеки; Личные кабинеты; Интранет-порталы. То есть, нативные приложения следует выбирать для уникальных сложных разработок, которые требуют интеграции большого количества данных. Однако, если необходимо быстро запустить приложение, то лучше выбирать разработку на Flutter. С помощью приложений на Flutter вы быстро реализуете финансово-технические проекты, чему способствует безопасность банковских платформ. Вывод По итогу мы можем сказать, что ни Flutter, ни нативные технологии не являются панацеей. Мы не говорим, что разработка на Flutter – универсальное решение, или наоборот, что нативные технологии являются идеальным выходом для бизнес-приложений. Преимущества Flutter в его быстрой разработке и меньших расходах, что при прочих равных может оказаться действительно выгодным и удобным для заказчика. Специалисты компании «Цифровой Элемент» могут провести разработку как используя кроссбраузерный фреймворк, так и применяя нативные технологии. Выбор метода зависит от целей клиента. Уже на первых встречах мы выясняем то, как планируется использовать приложение, какие интеграции нужно сделать, какие сервисы подключать и т.д. На основании собранной информации мы будем рекомендовать тот или иной способ разработки, объясняя клиенту все его преимущества для конкретного проекта. Заказать разработку приложения Заказать услугу

4 468