Разработка мобильного приложения для корпоративного портала
Корпоративный Wi-Fi рвется, VPN отваливается, а сотрудникам нужен доступ к документам и задачам в любое время. Мы разрабатываем мобильные приложения корпоративных порталов, которые работают офлайн, синхронизируются при восстановлении связи и соблюдают все политики безопасности. Наши решения интегрируются с существующей средой: Azure AD, Active Directory, SharePoint, Jira, Confluence, а также on-premise системы с NTLM и SAML. Мы обеспечиваем единый вход (SSO), поддержку MDM-политик, офлайн-режим и push-уведомления. Все приложения проходят внутренний аудит безопасности и соответствуют App Store Review Guidelines.
Как мы реализуем аутентификацию в корпоративной среде?
Самое частое требование — вход через корпоративный SSO. Если в компании Microsoft 365 — это Azure AD с OAuth 2.0 / OIDC. Если on-premise — ADFS с SAML. Если смешанная инфраструктура — Okta или PingFederate как IdP. Для мобильных OIDC-флоу используем библиотеку AppAuth — стандартную для iOS и Android. Пример на Android:
// Android — OIDC через AppAuth val serviceConfig = AuthorizationServiceConfiguration( Uri.parse("https://login.microsoftonline.com/$tenantId/oauth2/v2.0/authorize"), Uri.parse("https://login.microsoftonline.com/$tenantId/oauth2/v2.0/token") ) val authRequest = AuthorizationRequest.Builder( serviceConfig, clientId, ResponseTypeValues.CODE, Uri.parse("com.company.app://auth/callback") ) .setScope("openid profile email offline_access") .build() authService.performAuthorizationRequest(authRequest, pendingIntent) После получения authorization_code обмениваем на access_token + refresh_token. Токены храним в EncryptedSharedPreferences. Refresh происходит автоматически через перехватчик в OkHttp.
Интеграция с корпоративными системами
Типичный стек данных корпоративного портала: SharePoint / Confluence для документов, Jira / ServiceNow для задач и тикетов, AD для оргструктуры и контактов, Exchange / Google Workspace для календаря. Microsoft Graph API покрывает большинство потребностей для Microsoft-стека:
suspend fun getMyDocuments(): List<DriveItem> { return graphClient .me() .drive() .root() .children() .buildRequest() .select("id,name,lastModifiedDateTime,webUrl") .top(50) .get() .currentPage } Для Exchange-календаря — MS Graph /me/calendarView с диапазоном дат. Для оргструктуры — /users/{id}/directReports и /users/{id}/manager. Если портал on-premise без Microsoft 365 — REST API SharePoint (2016/2019). NTLM-аутентификация для on-premise — отдельная задача на мобильном: OkHttp поддерживает NTLM через authenticator(), но требует аккуратной настройки.
MDM и корпоративные ограничения
MDM накладывает политики на устройство или на приложение. Для корпоративных приложений два сценария:
- MAM — политики применяются к конкретному приложению без управления всем устройством. Microsoft Intune MAM SDK позволяет применять политики к приложению: запрет copy/paste, запрет скриншотов, принудительный PIN перед запуском.
- MDM-enrolled устройства — IT управляет устройством полностью. Приложение распространяется через managed distribution (Apple Business Manager / Google Enterprise).
Intune MAM SDK для Android подключается как dependency и инициализируется через MAMApplication:
class MyApp : MAMApplication() { override fun onCreate() { super.onCreate() // MAM автоматически применяет политики } } Без этой интеграции приложение может быть заблокировано корпоративной политикой на enrolled-устройствах.
Как обеспечить офлайн-режим и синхронизацию?
Корпоративные сети нестабильны — VPN разрывается, корпоративный Wi-Fi теряется. Критичный функционал должен работать офлайн: просмотр документов, контакты, задачи.
На Android — Room для кэша + WorkManager для фоновой синхронизации. На iOS — Core Data + BGAppRefreshTask. Конфликты при синхронизации разрешаем по timestamp последнего изменения: серверные данные побеждают, если пользователь не редактировал локально. Push-уведомления о новых задачах и документах через FCM / APNs. В корпоративных сетях FCM может быть заблокирован файрволом — нужен fallback на polling или WebSocket.
Стек и сроки
Flutter или React Native — оптимальный выбор для корпоративных порталов: одна кодовая база для iOS и Android, быстрая разработка. Нативная разработка оправдана, если есть жёсткие требования к Intune SDK или специфическая нативная интеграция.
Архитектура: Clean Architecture + BLoC (Flutter) или Redux Toolkit (React Native). Modular структура: auth, documents, tasks, contacts, calendar — независимые модули со своими репозиториями.
MVP (SSO + оргструктура + документы): 2-3 месяца. Полный портал с задачами, календарём, уведомлениями, офлайн — 4-6 месяцев. Стоимость рассчитывается индивидуально после аудита корпоративной инфраструктуры.
Сравнение подходов:
| Критерий | Нативная разработка (iOS + Android) | Кроссплатформенная (Flutter/React Native) |
|---|---|---|
| Время разработки MVP | 4–6 месяцев | 2–3 месяца |
| Интеграция с Intune SDK | Полная поддержка | Ограниченная (требует плагинов) |
| Производительность | Максимальная | Высокая (близка к нативной) |
| Единая кодовая база | Нет | Да |
Что входит в работу
В рамках проекта мы предоставляем:
- Аудит корпоративной IT-инфраструктуры и существующих систем.
- Проектирование архитектуры и прототипа интерфейса.
- Разработку по методологии Clean Architecture с модульной структурой.
- Интеграцию с корпоративными системами (SSO, SharePoint, Jira, AD, календарь).
- Настройку MDM-политик через Intune MAM или MDM-enrollment.
- Реализацию офлайн-режима и синхронизации.
- Push-уведомления (FCM/APNs) с fallback-механизмами.
- Тестирование на реальных устройствах и в корпоративной сети.
- Подготовку документации и обучение администраторов.
- Техническую поддержку в течение 3 месяцев после запуска.
Процесс работы
| Этап | Длительность | Результат |
|---|---|---|
| Аналитика и аудит | 1–2 недели | Техническое задание, архитектура, план интеграций |
| Проектирование UX/UI | 2–3 недели | Прототип и дизайн-макеты, согласованные с заказчиком |
| Разработка MVP | 2–3 месяца | Рабочее приложение с базовым функционалом |
| Интеграция и тестирование | 2–4 недели | Приемочное тестирование в корпоративной сети, исправление ошибок |
| Деплой и запуск | 1–2 недели | Публикация в App Store/Google Play (или MDM-распространение) |
Наша команда имеет 10+ лет опыта в разработке корпоративных мобильных приложений. Мы реализовали более 50 проектов для крупных компаний, включая банки, госсектор и промышленность. Сертифицированные инженеры по Microsoft Intune и Apple гарантируют соблюдение всех корпоративных политик и App Store Review Guidelines. Мы предоставляем гарантию на код и поддержку после запуска.
Хотите получить консультацию? Свяжитесь с нами для аудита вашей инфраструктуры и подготовим точное коммерческое предложение. Закажите проектирование решения прямо сейчас.







