В работе мы используем три подхода. Разработка отдельной серверной части для клиентов, разработка модуля в системе Appocore.io, разработка отдельного сервера на Node.js для вычислений (может быть реализовано как модуль для системы Appocore.io c графическим интерфейсом или без него отдельно без Appocore.io.
При разработке веб-приложений в Appomart мы следуем архитектуре при которой происходит полное отделение веб-приложения от сервера. Тем самым серверная часть используется исключительно для предоставления API-методов.
Наименование | Значение |
---|---|
Основной язык программирования | PHP |
Фреймворк | Laravel |
СУБД | PostgreSQL |
Кэширование данных | File system / Redis |
База аутентификации | Laravel Passport (OAuth 0/2) |
Веб-сокеты | Laravel Websockets |
База модульности | Laravel Modules |
Debug / логирование | Laravel Debaguar, Laravel Telescope, Sentry |
CI тестирование | PHPUnit |
Для реализации высоконагруженных и изолированных серверных решений, в рамках Appocore.io, используется платформа Node.js.
Наименование | Значение |
---|---|
Основной язык программирования | Typescript |
Фреймворк | Nest.js / Express |
ORM библиотека | TypeORM |
СУБД | PostgreSQL / SQLite / Mongoose |
Кэширование данных | File system / Redis |
Веб-сокеты | Socket.io |
Брокер сообщений микросервисов | Redis / RabbitMQ / gRPC / Kafka |
База аутентификации | Passport |
Отслеживание ошибок | TSLint, Prettier |
CI тестирование | Jest |
- SMS уведомления - Использование сервиса SMSAero.
- Уведомления в браузере - Использование сервиса Onesignal.
- Увемдоелния на почту - Использование сервиса Mailgun.
- Мобильные уведомления - Использование сервисов APNS (iOS) и Google Firebase (Android).
- Докеризация - Главным инструментом изоляции является Docker. Альтернативным подходом при реализации энтерпрайз проектов может быть Kubernetes (Object Storage).
- Непрерывная поставка обновлений - Технология CD доступна для интеграции через сервисы Gitlab для клиент-серверных приложений, по согласованию с заказчиком.
- Интернационализация текстовых данных - Поддержка локализации серверных уведомлений.
- Кластеризация данных - При большой нагрузке на системы хранения данных (БД, файловое хранение) рассматривается возможность реализации системы дубликатов сервера хранения. Данный подход обдумывается при распространении проекта на межрегиональном уровне, где требуются дубликаты серверов на разных континентах, с использованием технологий S3 (DigitalOcean, Yandex Cloud).
- Изоляция данных - База данных, текстовые и медиа данные, а так же кэшируемые данные, изолируются в отдельных субъектах платформы на базе технологий S3.
- Платежи - Внедрение и подключение работы с платежным терминалом банка Tinkoff для реализации о оплаты за требуемые представляемые услуги или товары.
- Система подписок - Внедрение и подключение работы с подписками в магазинах App Store и Google Play.
Веб-приложение разрабатывается как SPA (Single Page Application) приложение, с поддержкой SSR-рендеринга, для индексации браузерами, и PWA технологии.
Наименование | Значение |
---|---|
Основной язык программирования | Javascript |
Фреймворк | Vue (Nuxt.js) |
Навигация | Vue-router |
Централизация хранилища данных | Vuex |
UI фреймворк | Vuetify |
Сборка | Webpack |
База иконок | Material Design Icons |
Debug / логирование | Sentry |
Отслеживание ошибок | ESLint, Prettier |
CI тестирование | Jest |
Индивидуально, при реализации автономных SPA проектов, зависимых от серверной части Appocore.io, либо полноценных программных продуктов, может использоваться альтернативной стек технологий для клиентской части веб-интерфейса.
Наименование | Значение |
---|---|
Основной язык программирования | Typescript |
Фреймворк | React (Next.js) |
Навигация | React-router |
Централизация хранилища данных | Redux / Mobx |
UI фреймворк | Material UI |
Сборка | Webpack |
База иконок | Material Design Icons |
Debug / логирование | Sentry |
Отслеживание ошибок | TSLint, Prettier |
CI тестирование | Jest |
- Веб-сокет поставка данных - Использование сервисов Pusher и Socket.io.
- Уведомления в браузере - Использование сервиса Onesignal.
- Докеризация - Сборка проекта в единый контейнер с использованием инструмента Docker.
- Непрерывная поставка обновлений - Технология CD доступна для интеграции через сервисы Gitlab для клиент-серверных приложений, по согласованию с заказчиком.
- Интернационализация текстовых данных - Поддержка локализации текстовых данных в веб-интерфейсе.
- Метрика - Подключение и внедрение сервисов аналитики Google Analytics, Yandex Метрика.
- Платежи - Внедрение и подключение работы с платежным терминалом банка Tinkoff для реализации о оплаты за требуемые представляемые услуги или товары.
Кроссплатформенная разработка мобильных приложений позволяет оптимизировать клиентский бюджет и ускорить процесс разработки для платформ iOS и Android. Данный вариант подходит для большинства бизнес-решений.
Наименование | Значение |
---|---|
Основной язык программирования | Typescript |
Фреймворк | React Native (Expo) |
Навигация | React Navigation / React Native Navigation |
Централизация хранилища данных | Redux |
UI фреймворк | React Native Paper / Native Base |
Инструменты графики | Lottie, React Native Reanimated |
База иконок | React Native Vector Icons (8 packs) |
Debug / логирование | Sentry |
Отслеживание ошибок | TSlint, Prettier, Husky |
CI тестирование | Jest |
Альтернативный стек рассматривается на перспективу, в рамках требуемого проекта, как замена основному кроссплатформенному походу.
Наименование | Значение |
---|---|
Основной язык программирования | Dart |
Фреймворк | Flutter |
Навигация | Flutter Navigator API |
Централизация хранилища данных | Redux / Fish Redux API |
UI фреймворк | Native |
Инструменты графики | Lottie, Animation Controller API |
База иконок | Flutter Vector Icons |
Debug / логирование | Sentry |
Отслеживание ошибок | Dart Lint, Flutter VSCode extension |
CI тестирование | Dart Unit testing |
Нативная реализация мобильных приложений подходит достаточно большим и сложным проектам, функционыльные требования которых не укладываются в рамки кроссплатформенных решений.
Наименование | Значение |
---|---|
Основной язык программирования | Swift / Objective-C |
Фреймворк | UIKit / Cocoapods |
Централизация хранилища данных | Redux |
Инструменты графики | Lottie |
Debug / логирование | Sentry |
CI тестирование | XCTest |
Наименование | Значение |
---|---|
Основной язык программирования | Kotlin / Java |
Фреймворк | Dagger 2 |
Централизация хранилища данных | RxJava2 |
Инструменты графики | Lottie, Glide |
Debug / логирование | Sentry, Google Crashlytics |
Отслеживание ошибок | Leak Canary |
Тестирование | Android Architecture Components, Espresso |
- Веб-сокет поставка данных - Использование сервисов Pusher и Socket.io.
- Мобильные уведомления - Использование сервисов APNS (iOS) и Google Firebase (Android).
- Непрерывная поставка обновлений - Технология OTA доступна для интеграции в реализацию кроссплатформенных мобильных приложений с использованием фреймворка React Native через сервисы Expo.
- Интернационализация текстовых данных - Поддержка локализации текстовых данных в веб-интерфейсе.
- Метрика - Подключение и внедрение сервисов аналитики Google Analytics, Yandex Метрика.
- Платежи - Внедрение и подключение работы с платежным терминалом банка Tinkoff для реализации о оплаты за требуемые представляемые услуги или товары.