_CORE
AI & Agentic Systems Core Information Systems Cloud & Platform Engineering Data Platform & Integration Security & Compliance QA, Testing & Observability IoT, Automation & Robotics Mobile & Digital Banking & Finance Insurance Public Administration Defense & Security Healthcare Energy & Utilities Telco & Media Manufacturing Logistics & E-commerce Retail & Loyalty
References Technologies Blog Know-how Tools
About Collaboration Careers
CS EN
Let's talk

Mobile & Digital Channels

Mobile isn't a wrapper. Mobile is an operational tool.

We design mobile applications that work in the field — for drivers, warehouse workers, sales reps and field technicians.

Native iOS/Android

Swift and Kotlin — full device performance, native UX, access to all platform APIs.

A cross-platform framework saves time. Native development saves headaches. When you need Bluetooth Low Energy communication with a scanner, background location tracking for drivers, or a custom camera pipeline for OCR — cross-platform abstractions slow you down more than they save.

Swift (iOS) and Kotlin (Android) give you full access to platform APIs without wrappers. ARKit/ARCore for augmented reality, Core ML/ML Kit for on-device inference, HealthKit/Health Connect for health data. No “bridge bottleneck” when calling native functions.

Architecture: MVVM with Clean Architecture. Repository pattern for data layer, Use Cases for business logic, ViewModels for the presentation layer. Dependency injection (Hilt/Koin on Android, Swinject on iOS). Testable at every layer — unit tests for logic, UI tests for flows.

When native, when cross-platform? We choose native for: hardware-intensive apps, high performance requirements, complex UI animations, long-term projects with dedicated teams. Cross-platform (React Native, Flutter) for: fast time-to-market, simpler CRUD apps, limited budget, prototypes.

Design system: We build a reusable component library specific to the project. Consistent UX across the entire app, faster development of new screens. Figma → code pipeline with design tokens. Accessibility (VoiceOver, TalkBack) from the start, not as an afterthought.

swiftkotlinnative
Detail →

Offline-first

Local database, sync engine, conflict resolution. Works even in a tunnel.

Offline-first is not a feature — it’s an architectural approach. An app that “somehow works offline” is different from an app designed from the ground up for offline operation. In the field (warehouses, depots, field service) connectivity is a luxury, not a standard.

Local database: SQLite (Room on Android, Core Data / GRDB on iOS) as primary storage. All data needed for work is local. The user doesn’t notice being offline — the app responds instantly, synchronization runs in the background.

Sync engine: Bidirectional sync with conflict resolution. Optimistic locking with record versioning. On conflict (two users edit the same record offline) we apply business rules: last-write-wins for simple cases, merge strategies for complex ones. The user is informed, data is never lost.

Delta sync: We don’t synchronize the whole database — only changes since the last sync. Timestamp-based or event-based sync. Payload compression, batch operations. Even on a slow EDGE connection, sync completes in seconds.

Queue management: Operations performed offline are queued. After connectivity is restored, they are sent in order. Retry logic with exponential backoff. Idempotent API on the backend — a repeated request won’t cause duplicates. The user sees the sync status and any conflicts.

offlinesyncsqlite
Detail →

Scanning & hardware

QR/barcodes, NFC, Bluetooth, biometrics, camera. Full hardware access.

A mobile device is a universal scanner, reader and sensor. You don’t need to buy dedicated hardware costing tens of thousands — a modern phone handles most tasks. But you need software that uses the hardware correctly.

Code scanning: Barcodes (Code 128, EAN, UPC), QR codes, Data Matrix. Batch scanning — scan after scan without closing the camera. Multi-code scanning — reading multiple codes in a single frame. Support for external Bluetooth scanners (Zebra, Honeywell) for high-volume operations.

NFC and RFID: Reading and writing NFC tags. Item identification, access cards, inventory. HF RFID via the phone’s NFC interface. For UHF RFID we integrate external readers via Bluetooth or USB-C.

Bluetooth Low Energy: Communication with IoT sensors, beacons, industrial devices. Background scanning, automatic reconnect, battery-optimized protocols. Support for GATT profiles for standard and custom services.

Biometrics and camera: Face ID / Touch ID for in-app authentication. Camera pipeline for OCR (reading documents, license plates, labels), photo documentation (package condition, damage), AR overlays. On-device ML for real-time recognition without network latency.

qrnfcbiometrics
Detail →

Backend integration

REST API, GraphQL, WebSocket. Real-time synchronization with core systems.

A mobile app without backend integration is an isolated island. Value comes from connection — the mobile app reads data from ERP, writes to WMS, syncs with CRM, receives notifications from monitoring. We integrate mobile clients with any backend.

REST API: Standard for most integrations. Versioned API (URL versioning or header-based), OpenAPI specification, auto-generated clients (OpenAPI Generator). Caching strategies (ETag, Last-Modified) for minimal data transfer. Pagination for large datasets.

GraphQL: When the mobile client needs flexible queries — different screens, different data. No over-fetching, no under-fetching. Apollo Client (iOS/Android) with normalized cache. Subscriptions for real-time updates. Ideal for complex UIs with many relations.

WebSocket and real-time: Live tracking (driver location, package status), chat, notifications, collaborative editing. Socket.IO or native WebSocket with automatic reconnect. Heartbeat for detecting dropped connections. Fallback to polling for unreliable networks.

Authentication and security: OAuth 2.0 + PKCE for mobile clients. Biometric authentication with Keychain/Keystore. Certificate pinning against MITM. Token refresh without interrupting UX. Secure storage for credentials — no tokens in SharedPreferences/UserDefaults.

apigraphqlwebsocket
Detail →

Push & deep links

APNs, FCM, rich notifications, deep linking. Users get where they need to go.

Push notifications are the most direct channel to the user. But only if used correctly. Spam = uninstall. Relevant, contextual notification = engagement. We build notification systems that deliver the right message to the right user at the right time.

APNs (iOS) and FCM (Android): Full integration with platform push services. Silent push for background data sync. Rich notifications with images, action buttons, custom UI (Notification Service Extension / MessagingService). Notification categories and channels for user control.

Segmentation and personalization: Push notifications targeted to a segment (role, location, behavior). A/B testing of content and timing. Frequency capping — maximum number of notifications per day/week. Analytics: delivery rate, open rate, conversion. Opt-in/opt-out granularly per category.

Deep linking: Universal Links (iOS) and App Links (Android). User clicks a link — the correct screen opens in the app. Deferred deep linking — works even for users who don’t have the app installed yet (installs → correct page opens). Attribution tracking for marketing campaigns.

Transactional notifications: Order confirmation, shipment status, workflow approval, monitoring alert. Delivery under 5 seconds. SMS fallback for critical notifications. Audit trail — when the notification was sent, delivered, opened.

pushdeeplinksfcm
Detail →

CI/CD & distribution

Fastlane, CodePush, OTA updates. Release cycle 2 weeks, hotfix in hours.

A mobile release is not like a web deploy. App Store review takes hours to days. Google Play review is faster, but still not instant. Without an automated pipeline, release is a painful process that the team keeps postponing — and features pile up.

Fastlane pipeline: Automated build, signing, upload to App Store Connect and Google Play Console. Metadata management (screenshots, descriptions, release notes) as code. Match for iOS certificate management — no “I can’t build, I don’t have the certificate”. The entire release process with a single click.

CodePush / OTA updates: JavaScript bundle updates without App Store review (React Native, Flutter). Hotfix in production in minutes, not days. Staged rollout — 10% → 50% → 100%. Automatic rollback on increased crash rate. For critical bugs, it’s a lifesaver.

Beta distribution: TestFlight (iOS), Firebase App Distribution (Android). Internal testers automatically get a build after merging to develop. QA tests on real devices, not simulators. Feedback loop directly in the app — screenshot + annotation + automatic bug report.

Post-release monitoring: Crash reporting (Crashlytics, Sentry), performance monitoring (startup time, frame drops, network latency). Automatic alerts on crash rate spikes. Adoption tracking — how many users are on the new version. Forced update mechanism for critical security patches.

fastlanecodepushcicd
Detail →
Operational mobile app

Operational mobile app

A mobile app in an enterprise context is not a consumer app from the Store. It's an operational tool — for drivers, warehouse workers, sales reps. It needs to work fast, reliably and offline.

Příklad z praxe: Drivers at a logistics company scan QR codes, photograph shipments, confirm delivery with one tap — everything works even in tunnels thanks to offline mode. Data syncs automatically.
  • Task completion in 3 taps
  • Offline mode with automatic sync
  • Crash-free sessions > 99.5%
  • Start-up time < 2s
>99.5%
Crash-free sessions
<2s
Start-up time
3× faster
Task completion
>99%
Offline sync

Jak to děláme

1

UX Research & Discovery

We understand the users — interviews, behavior analysis and definition of key user stories.

2

Prototype & design

Interactive prototype with user testing before writing a single line of code.

3

Agile development

Sprint-based development with ongoing releases, code review and automated testing.

4

Launch & measurement

Managed release to stores, analytics deployment and tracking of key metrics.

5

Iteration & growth

A/B tests, conversion optimization and ongoing development based on user data.

When You Need a Mobile Solution

Typical Situations

  1. App as a “web wrapper” — WebView, slow loading, no offline. Users go back to paper.
  2. Field workers without tools — Paper forms, Excel, phone calls to the office.
  3. Apps that don’t talk to each other — No integration, users switch between 4 apps.
  4. Release chaos — Store review 2 weeks, hotfix waiting for approval.

How We Work

  1. Discovery & UX Research — We understand users and usage context. Wireframes, prototypes, validation.
  2. MVP — Working MVP in 6-8 weeks. Validation, feedback collection, iteration.
  3. Feature Build — CI/CD pipeline, automated tests, iterative release cycles.
  4. Production Readiness — Performance optimization, security audit, app store compliance.
  5. Operations — Monitoring, crash reporting, A/B testing, continuous improvement.

Stack

Swift, Kotlin, React Native, Flutter, Firebase, AppCenter, Fastlane, CodePush, REST API, GraphQL, WebSocket, APNs/FCM, Crashlytics, Sentry, Detox, XCTest, Espresso.

Časté otázky

It depends on the use case. For maximum performance and hardware access we recommend native (Swift/Kotlin). For faster time-to-market we choose React Native or Flutter. We decide based on requirements, not ideology.

Local database (SQLite, Realm, Hive), automatic synchronization after reconnection. Conflict resolution based on business rules. The user doesn't notice being offline.

MVP: 6-8 weeks. Full-featured application: 3-6 months. Post-deployment release cycle: 2 weeks.

Yes. We build custom design systems with reusable components — consistent UX across platforms, faster development of new features.

Máte projekt?

Pojďme si o něm promluvit.

Domluvit schůzku