Mobile Application Development for Corporate Portal
A corporate portal on mobile is not an adaptive version of an intranet. It's a separate application with its own architecture that must work within corporate infrastructure constraints: VPN, MDM policies, limited internet on work devices, Active Directory, LDAP, and SSO via SAML or OIDC.
Authentication in Corporate Environment
Most common requirement: login via corporate SSO. If the company uses Microsoft 365 — it's Azure AD with OAuth 2.0 / OIDC. If on-premise — ADFS with SAML. If mixed infrastructure — Okta or PingFederate as IdP.
For mobile OIDC flow we use AppAuth — standard library with iOS and Android support:
// Android — OIDC via 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)
After receiving authorization_code we exchange it for access_token + refresh_token. Store tokens in EncryptedSharedPreferences. Refresh happens automatically via OkHttp interceptor.
Integration with Corporate Systems
Typical data stack for corporate portal: SharePoint / Confluence for documents, Jira / ServiceNow for tasks and tickets, AD for org structure and contacts, Exchange / Google Workspace for calendar.
Microsoft Graph API covers most needs for Microsoft stack:
suspend fun getMyDocuments(): List<DriveItem> {
return graphClient
.me()
.drive()
.root()
.children()
.buildRequest()
.select("id,name,lastModifiedDateTime,webUrl")
.top(50)
.get()
.currentPage
}
For Exchange calendar — MS Graph /me/calendarView with date range. For org structure — /users/{id}/directReports and /users/{id}/manager.
If portal is on-premise without Microsoft 365 — SharePoint REST API (2016/2019), which differs significantly from Graph. NTLM authentication for on-premise — separate mobile task: OkHttp supports NTLM via authenticator(), but requires careful configuration.
MDM and Corporate Restrictions
MDM (Mobile Device Management) applies policies to device or app. For corporate applications two scenarios:
MAM (Mobile Application Management) — policies apply to specific app without managing entire device. Microsoft Intune MAM SDK allows applying policies: disable copy/paste, disable screenshots, force PIN before launch.
MDM-enrolled devices — IT manages device fully. App distributed via managed distribution (Apple Business Manager / Google Enterprise). Not through App Store directly.
Intune MAM SDK for Android connects as dependency and initializes via MAMApplication:
class MyApp : MAMApplication() {
override fun onCreate() {
super.onCreate()
// MAM automatically applies policies
}
}
Without this integration, app may be blocked by corporate policy on enrolled devices.
Offline and Synchronization
Corporate networks are unstable — VPN drops, corporate Wi-Fi loses connection. Critical functionality must work offline: document viewing, contacts, tasks.
On Android — Room for cache + WorkManager for background sync. On iOS — Core Data + BGAppRefreshTask. Resolve sync conflicts by last modification timestamp: server data wins if user hasn't edited locally.
Push notifications for new tasks and documents via FCM / APNs. On corporate networks FCM may be blocked by firewall — need fallback to polling or WebSocket.
Stack and Timelines
Flutter or React Native — optimal choice for corporate portals: single codebase for iOS and Android, fast development. Native development justified if there are strict Intune SDK requirements or specific native integration.
Architecture: Clean Architecture + BLoC (Flutter) or Redux Toolkit (React Native). Modular structure: auth, documents, tasks, contacts, calendar — independent modules with own repositories.
MVP (SSO + org structure + documents): 2–3 months. Full portal with tasks, calendar, notifications, offline — 4–6 months. Cost estimated individually after auditing corporate infrastructure.







