Блог о коробочном решении сервиса поиска исполнителей (агрегатора услуг)

Раздел в разработке

Раздел формируется, а пока вы можете читать ВКонтакте и Facebook.

Ограничения в разработке гибридных приложений

Для начала давайте разберемся что такое гибридное приложение в целом.


Нативные приложения - это программа разработанная специально для iOS и специально для Android, при этом используются языки программирования как правило Objective-C/Swift и Java соответсвенно. С сервером приложения обмениваются посредством API (интерфейс передачи данных к серверу и обратно). Для разработки требуется 3-и программиста: разработчик серверной части и API, iOS и Android программист. Так же необходимо тестировать ошибки на двух платформах.


Гибридные приложения - это мобильная версия сайта обернутая в специальный браузер, который и публикуется в AppStore и Google Play. В данном варианте нет API и в приложение транспортируется по сути страница в готовом виде, которая сверстана в HTML. Для разработки требуется один программист, который отвечает за серверную часть, сайт, его мобильную версию и мобильные приложения на iOS и Android.


Почему этот вопрос вообще имеет место? Все дело в том что мы работаем на стыке технологий веба и нативных приложений. Разработку на вебе мы выбрали потому что это значительно экономит ресурсы, т.к. нужен всего один программист вместо 3-х при классической разработке, не нужно API обмена между сервером и приложениями и всех этих специалистов синхронизировать в действиях. Классическая разработка нативных приложений важна в разработке игр, там действительно нужна вся мощь интеграции железа и софта в отрисовке качественной графике. В бизнес же приложениях как правило это банальные текст + картинка.


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


Какие еще минусы заявляют профессионалы?

  • не может работать без интернета
  • плохо отрабатывает интерфейс
  • нет доступа ко всем функциям устройства


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


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


Мы для нашего коробочного решения сервиса поиска исполнителей (агрегатора услуг) клиентам отдаем исходные коды.


Чтобы не быть голословным записал видео как в наше гибридное приложение интегрировать считывание QR кода.

Правила проверки iOS приложений

Apple не хочет видеть в AppStore приложения-спам, об этом написано в правилах. Особенно интересует пункт: «4.2.6 Apps created from a commercialized template or app generation service will be rejected.» Apple  систематически ужесточает правила в связи с попытками публикаций низкопробных обернутых сайтов, которые ужасно работают и портят имидж Apple и ее техники. Они хотят чтобы приложение было удобнее чем мобильная версия сайта и расширяла его функциональность. Мобильные приложения готового решения сервиса поиска исполнителей хоть и являются по сути мобильным сайтом обернутым в приложения, но обладают качественными характеристиками которые позволяют без проблем проходить проверкку. Интерфейс приложения выполнен согласно гайдам Apple. Так же приложение имеет дополнительные функции, которые не дают понять что вы имеете дело с мобильным сайтом: левой свайп меню, навигационная шапка, переходы между экранами. Против верстки экрана на HTML5 компания Apple ничего не имеет. И с момента выхода данного требования Мы уже выпустили в стор несколько приложений без каких либо проблем. В свою очередь могу гарантировать возврат денег, если Ваше приложение не пройдет проверку. Само собой оно не должно нарушать других правил Apple, например не должно распространять порно, эротику и экстремизм.

Нагрузочное тестирование

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

Возьмем самый базовый тариф, которые Я и рекомендую. Тариф SSD/1, 1 ядро, 1 Гб оперативной памяти, стоит 350 рублей/месяц.
Предельная нагрузка составила: 80 страниц в секунду, 24 000 страниц каждые 5 минут, 7 млн. страниц в сутки.
В случае превышения нагрузки имеется возможность увеличить мощность сервера за дополнительную плату, чем Мы и воспользуемся. Добавляем мощности, тариф SSD/1, 2 ядра, 1 Гб, 450 рублей/месяц и получим результаты: 160 страниц в секунду, 14 млн. страниц в сутки.
Далее можно наращивать мощность по необходимости и перейти на выделенный сервер. Если не будет хватать одного выделенного сервера, то имеется возможность по разделению функций (база данных, кэширование, веб-сервер) на несколько серверов.
Рассмотрим базовое поведение пользователей. Клиент открыл список заказов, перешел в меню, первый уровень типов заданий, второй уровень, сохранил заявку, посмотрел 7-х откликнувшихся исполнителей, утвердил исполнителя, добавим еще 50% страниц и получим 10 страниц. Исполнитель открыл список заказов, конкретный заказ, откликнулся на заказ, посмотрел что его утвердили, добавим еще 50% страниц и получим 6 страниц.
Предположим 5-и минутный интервал на работу с одной заявкой, которой заинтересуется 70 исполнителей. Базовый сервер способен обработать 24 000 страниц за 5 минут, исходя из этого посчитаем нагрузку на одну заявку: 1 клиент x 10 страниц + 70 исполнителей x 6 страниц = 430 страниц, округлим до 500.
Итого возможная нагрузка на базовый сервер за 350 рублей в месяц составит 24 000 / 500 = 48 заявок каждые 5 минут или 13 824 заявок в сутки.

ООО «ГОТОВЫЕ РЕШЕНИЯ», 445046, г. Тольятти,
ул. Механизаторов, 31 - 151
ИНН 63240614066 ОГРН 1156313014989

+7 (927) 027-027-3

e-mail: evgeny@servicepi.ru