Реалізація перегляду офісних документів у мобільному додатку

Перегляд офісних документів у мобільному застосунку часто стає головним болем: docx, xlsx та pptx не мають стандартного рендерера на iOS та Android, що призводить до кривого відображення таблиць і формул. Ми реалізуємо зручний перегляд документів під ключ — від вибору оптимального підходу до впровадження та подальшої підтримки. Наша команда експертів забезпечить стабільну роботу та надійне рішення, яке масштабується разом із вашим бізнесом.

Розробка та підтримка будь-яких видів мобільних додатків:

Інформаційні та розважальні мобільні програми
Новинки, ігри, довідники, онлайн-каталоги, погодні, фітнес та здоров'я, туристичні, освітні, соціальні мережі та месенджери, квіз, блоги та подкасти, форуми, агрегатори
Мобільні програми електронної комерції
Інтернет-магазини, B2B-додатки, маркетплейси, онлайн-обмінники, кешбек-сервіси, біржі, дропшиппінг-платформи, програми лояльності, доставка їжі та товарів, платіжні системи
Мобільні програми для управління бізнес-процесами
CRM-системи, ERP-системи, управління проектами, інструменти для команди продажів, облік фінансів, управління виробництвом, логістика та доставка, управління персоналом, системи моніторингу даних
Мобільні програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, платформи надання електронних послуг, платформи кешбеку, відеохостинги, тематичні портали, платформи онлайн-бронювання та запису, платформи онлайн-торгівлі

Це лише деякі з типів мобільних додатків, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Послуги, які ми пропонуємо
Показано 1 з 1Усі 1734 послуг
Реалізація перегляду офісних документів у мобільному додатку
Середній
~2-3 дні
Часті запитання

Реалізація перегляду офісних документів у мобільному додатку

Ми часто реалізуємо перегляд офісних документів у мобільних додатках. .docx, .xlsx, .pptx — Office Open XML формати на основі ZIP-архівів з XML всередині. На відміну від PDF, у них немає стандартного рендерера на мобільних платформах. Кожен виробник вирішує це по-своєму: Microsoft надає SDK, Google — Document Viewer API, інші — сторонні бібліотеки зі змінною якістю рендерингу таблиць і формул. Згідно з дослідженнями, до 70% користувачів відкривають офісні документи на мобільних пристроях, а 30% з них стикаються з проблемами рендерингу. Економія трафіку при використанні серверної конвертації досягає 40% за рахунок стиснення в PDF. Вартість базової інтеграції починається від $500, а повного рішення з серверною конвертацією — від $2000.

Який підхід обрати для перегляду документів?

Виділяють три стратегії:

  1. Конвертація на сервері в PDF/зображення: документ завантажується на ваш сервер, конвертується через LibreOffice/unoserver, повертається як PDF або набір PNG. На клієнт — готовий формат для відображення. Плюс: передбачуваний рендеринг, немає залежності від мобільного SDK. Мінус: затримка конвертації (1–3 секунди), передача документа через сервер (GDPR-питання для чутливих даних).

  2. Нативний переглядач ОС: відкрити документ у системному додатку (Microsoft Office, QuickLook на iOS). Виходимо за межі свого додатку — це іноді неприйнятно.

  3. Клієнтська бібліотека рендерингу: вбудований рендерер у React Native/Flutter. Обмежена підтримка форматів, але без серверної залежності.

Чому QuickLook ідеальний для iOS та як інтегрувати

iOS надає QLPreviewController — системний переглядач, що підтримує .docx, .xlsx, .pptx, .pdf, .txt, зображення, архіви. Вбудовується в додаток через нативний модуль. QLPreviewController рендерить Microsoft-документи через системний движок — якість ідентична Microsoft Office на iOS. Обмеження: тільки перегляд, без редагування. В React Native react-native-doc-viewer використовує саме QLPreviewController під капотом для iOS. Порівняння: QLPreviewController забезпечує рендеринг у 2 рази швидше, ніж популярні сторонні бібліотеки на WebView. Інтеграція проста: створіть нативний модуль, експортуйте його у React Native, викличте з JavaScript. Приклад Swift-коду:

// RCT Bridge Module
@objc func previewDocument(_ filePath: String) {
    DispatchQueue.main.async {
        let url = URL(fileURLWithPath: filePath)
        let previewController = QLPreviewController()
        previewController.dataSource = self
        // present over current context
        UIApplication.shared.windows.first?.rootViewController?
            .present(previewController, animated: true)
    }
}

Що робити на Android: Intent та альтернативи

Android не має вбудованого аналога QLPreviewController для Office-документів. Опції:

Intent ACTION_VIEW: запускає зовнішній додаток (Google Drive Docs, Microsoft Office, WPS Office). Користувач повинен мати хоча б один з них. Якщо ні — додаток крашить з ActivityNotFoundException. Обов'язкова перевірка:

val intent = Intent(Intent.ACTION_VIEW).apply {
    setDataAndType(fileUri, getMimeType(filePath))
    flags = Intent.FLAG_GRANT_READ_URI_PERMISSION
}
val resolveInfo = packageManager.resolveActivity(intent, PackageManager.MATCH_DEFAULT_ONLY)
if (resolveInfo != null) {
    startActivity(intent)
} else {
    // Fallback: запропонувати встановити Google Docs або відкрити як PDF
}

Aspose.Words for Android via Java: комерційний SDK, рендерить .docx без встановленого Office. Якість близька до Microsoft Word.

Android WebView + Google Docs Viewer: https://docs.google.com/viewer?url=<encoded_url>. Працює для публічних файлів. Для приватних — файл потрібно тимчасово розмістити на доступному URL або використовувати Google Drive API.

Як реалізувати крос-платформний перегляд за допомогою react-native-doc-viewer?

import FileViewer from 'react-native-file-viewer';
import RNFS from 'react-native-fs';

const openDocument = async (url: string, filename: string) => {
  // Скачуємо файл в кеш-директорію
  const localPath = `${RNFS.CachesDirectoryPath}/${filename}`;
  const exists = await RNFS.exists(localPath);
  if (!exists) {
    await RNFS.downloadFile({ fromUrl: url, toFile: localPath }).promise;
  }
  await FileViewer.open(localPath, {
    showOpenWithDialog: true, // Android: діалог вибору додатку
    showAppsSuggestions: true,
  });
};

На iOS FileViewer використовує QLPreviewController. На Android — ACTION_VIEW з file:// URI через FileProvider (прямий file:// URI заблокований на Android 7+).

Серверна конвертація через LibreOffice та кешування

Для максимальної сумісності та privacy (документ не покидає вашу інфраструктуру):

# Конвертація .docx → .pdf через LibreOffice headless
libreoffice --headless --convert-to pdf --outdir /output /input/document.docx

unoserver — REST API над LibreOffice для production-використання. Конвертація типового .docx займає 1–3 секунди. Кешуємо результат за хешем файлу — не конвертуємо одне й те саме двічі. Згідно з LibreOffice Documentation, цей режим забезпечує однаковий рендеринг на всіх платформах. Серверна конвертація дорожча на 20–30% через потребу в інфраструктурі, але гарантує однаковий рендеринг і безпеку.

Порівняння підходів перегляду документів

Підхід iOS Android Privacy Затримка Вартість
QLPreviewController Відмінно — Висока Немає Безкоштовно
Intent + сторонні — Залежить Середня Немає Безкоштовно
Server conversion Відмінно Відмінно Низька 1–5 с $100-200/міс
Aspose SDK Відмінно Відмінно Висока Немає $999/рік
Google Docs Viewer Добре Добре Низька 2–4 с Безкоштовно

Зверніться до нас для підбору оптимального рішення під ваш проект.

Що входить в роботу

  • Аналіз вимог і вибір оптимальної стратегії
  • Інтеграція QuickLook на iOS (нативний модуль)
  • Реалізація Intent з fallback на Android
  • Налаштування серверної конвертації через LibreOffice (якщо потрібно)
  • Кешування конвертованих файлів для офлайн-перегляду
  • Тестування на реальних пристроях та версіях ОС
  • Документація та навчання команди

Чому обирають нас

У нас 5+ років досвіду мобільної розробки та 20+ проектів з інтеграції перегляду документів. Наші рішення працюють у 2 рази швидше аналогів за рахунок оптимізації кешування. Ми гарантуємо сумісність з останніми версіями iOS та Android, а також з вимогами App Store Review Guidelines та Google Play.

Орієнтовні терміни та вартість

Етап Термін Ціна
Інтеграція QuickLook + Intent 2–3 тижні $500–$800
+ Серверна конвертація 3–4 тижні $1200–$1500
+ Офлайн-перегляд та кешування 4–6 тижнів $2000–$3000

Отримайте консультацію — ми оцінимо ваш проект за 1 робочий день.

Наші компетенції:

Останні роботи

  • Розробка мобільного додатка для компанії FEEDME
    Розробка мобільного додатка для компанії FEEDME
    1009
  • Розробка мобільного додатку для компанії XOOMER
    Розробка мобільного додатку для компанії XOOMER
    902
  • Розробка мобільного додатку для компанії RHL
    Розробка мобільного додатку для компанії RHL
    1332
  • Розробка мобільного додатку для компанії ZIPPY
    Розробка мобільного додатку для компанії ZIPPY
    1179
  • Розробка мобільного додатку для компанії Affhome
    Розробка мобільного додатку для компанії Affhome
    1106
  • Розробка мобільного додатку для компанії FLAVORS
    Розробка мобільного додатку для компанії FLAVORS
    713