Преминете към основното съдържание

Open Manuscript Studio в iOS и iPadOS

Open Manuscript Studio използва същия приложен ядро React/TypeScript, модела за ръкописи OMI и архитектурата на родната оболочка Tauri 2 на iPhone и iPad, както и на останалите поддържани платформи. Поради това версията за iOS/iPadOS не представлява отделен разклонен продукт и не въвежда формат на ръкописите, специфичен за Apple.

Текущо състояние​

Целта за iOS/iPadOS премина от планиране, ограничено само до архитектурата, към валидирана цел за създаване на нативни версии.

Текущо състояние на разработката:

  • Генерирането на проекта Tauri за iOS е успешно в CI;
  • приложението се компилира успешно за симулатора на iPhone/iPad с Apple Silicon;
  • артефактът на приложението-симулатор се създава чрез действията „GitHub“;
  • Настройки за ориентацията на iPhone и iPad, както и метаданните за многозадачността на iPad, са конфигурирани;
  • Реализирано е отварянето и запазването на файлове/документи от местната папка;
  • предаването на автентификацията в мобилната среда се осъществява съвместно с Android;
  • Публичното разпространение чрез TestFlight/App Store все още не е активирано, тъй като все още предстои да бъдат конфигурирани данните за подписване на Apple Developer и окончателното свързване на Universal Link.

Настоящата публична версия на Studio е „0.3.0-beta.4“. Метаданните на пакета в iOS App Store използват съвместима с Apple комбинация от кратко име и номер на версията, като същевременно запазват идентичността на версията на Studio в потребителския интерфейс на приложението и в документацията на проекта.

Идентификатор на заявката​

ПолеТекуща стойност
Идентификатор на пакетаorg.openmanuscript.studio
Минимални изисквания за платформатаiOS/iPadOS 14.0
Кратка версия в App Store0.3.0
Номер на версията в App Store16
Линия за разработка на студио0.3.0-beta.4

Кратката версия/номерацията на сборките на Apple представлява метаданни за пакета. Тя не променя версията на схемата „OMI“ и не създава отделна линия за съвместимост на iOS-документите.

Интерфейс на iPhone и iPad​

На двете устройства се използва един и същ адаптивен интерфейс на Studio, като се прилагат адаптации според платформата и форм-фактора, вместо да се внедрява отделен редактор.

Целевата платформа iOS/iPadOS поддържа:

  • работа в портретен и пейзажен режим на iPhone;
  • пълният набор от поддържани ориентации на iPad;
  • Метаданни за оформление, съвместими с многозадачността на iPad;
  • непряко въвеждане, като например използване на хардуерна клавиатура и тракпад/показалец, когато това се поддържа от iPadOS;
  • същият компактен модел за мобилна навигация, използван от клиента на „Studio“ за споделен достъп;
  • постепенно използване на по-голямо пространство на таблета, без да се променя семантиката на ръкописа.

Дългосрочната цел е iPad да може да предоставя по-голяма част от работния процес с няколко панела, характерен за настолните компютри, когато размерът на екрана го позволява, като същевременно запазва елементите за управление, подходящи за докосване.

Интеграция на файлове и доставчици на документи​

Studio използва модела Files / UIDocumentPicker на Apple, вместо да изисква широкообхватен достъп до файловата система.

В зависимост от конфигурацията на устройството, системният изборник може да показва дестинации като:

  • На моя iPhone / На моя iPad;
  • iCloud Drive;
  • свързано външно устройство за съхранение, поддържано от iOS/iPadOS;
  • Доставчици на файлове от трети страни, инсталирани от потребителя, като например поддържани приложения за съхранение в облак.

Настоящата реализация отваря избраните от потребителя документи с достъп в рамките на определени нива на сигурност и чете/записва URL адреса на избрания документ от типа „file://“ чрез файловата система Tauri. Операционната система продължава да отговаря за представянето на наличните доставчици на документи и за прилагането на ограниченията за достъп до тях.

Studio не третира URL адресите на вътрешни за доставчика документи като обикновени пътища във файловата система в потребителския интерфейс.

Режим „Собствено устройство“​

Когато потребителят маркира инсталирания клиент като свое собствено устройство, избраното местоположение на документа в системата може да служи като текущ работен документ за сесията/работния процес.

Режим на споделено или външно устройство​

Прилага се същата политика за доверие към устройствата, която се използва и на други места в Studio: за споделените/външни устройства се препоръчва използването на облачно хранилище в рамките на профила за обичайната работа с постоянни данни. Еднократното отваряне/записване на документи остава възможно, без избраната папка да се запазва като стандартно работно място.

Повърхност за износ на мобилни устройства​

Клиентът за iOS/iPadOS използва същия интерфейс за експортиране, предназначен за мобилни устройства, както и този за Android. Форматите, които понастоящем са предназначени за показване на мобилни устройства, са:

  • преносим пакет „OMI“ (.omi.zip);
  • OMI JSON (.omi.json);
  • JATS XML (.xml);
  • семантичният пакет „HTML“ (.html.zip);
  • DOCX (.docx);
  • LaTeX (.tex);
  • EPUB (.epub).

Работните процеси за публикуване/експорт, предназначени за настолни компютри, са скрити на iPhone/iPad, вместо да се показват като нефункционални опции:

  • IDML;
  • XPress Tags (XTG);
  • FrameMaker MIF;
  • Scribus SLA;
  • печат от браузър / работен процес „PDF“.

Реализациите на експортиращите функции остават общи; различават се само родната повърхност за представяне и наборът от видими формати, подходящи за съответната платформа.

Удостоверяване и обработка на връщанията в родния код​

Приложението за iOS/iPadOS използва същия акаунт в Studio, поддържан от сървър, както и браузърът, настолната версия и клиентите за Android.

Архитектурата за споделено удостоверяване, която се поддържа, включва:

  • вход в акаунта с имейл и парола;
  • възстановяване на паролата чрез Studio API;
  • ORCID влизане и свързване;
  • Вход с Google;
  • Вход в Microsoft;
  • конфигурируеми институционални доставчици на OpenID Connect.

Външната автентификация на мобилни устройства използва вградения поток за еднократно прехвърляне. Предпочитаната цел за връщане на приложението е:

https://app.openmanuscript.org/auth/orcid/

с резервната схема по избор:

openmanuscript://auth/

Предаването съдържа еднократен код за автентификация в родната среда, а не парола за акаунт или токен от доставчика, които могат да се използват многократно.

Универсалните връзки и сътрудничеството с Apple​

За активирането на Production Universal Link е необходим файл за свързване на приложението с уебсайта на Apple, който се намира на адрес:

https://app.openmanuscript.org/.well-known/apple-app-site-association

Асоциацията трябва да съдържа истинския Apple Development Team ID, заедно с идентификатора на пакета org.openmanuscript.studio и разрешената пътека за удостоверяване.

Проектът умишлено не предполага и не задава временен идентификатор на екипа. Окончателният AASA файл трябва да бъде публикуван едва след като бъде налична действителната идентичност на разработчика на Apple.

Това е граница, свързана с разпространението/конфигурацията, а не промяна в механиката на удостоверяване в Studio.

Проверка на съставянето​

Репозиторият съдържа работен поток „smoke“ за симулатора на iOS, който се изпълнява на macOS. Целта му е да се провери дали поддръжката за iOS остава реална цел за компилиране, а не просто твърдение за нетествана конфигурация.

Процесът на образуване на дим протича по следния начин:

  1. инсталира заключените зависимости на потребителския интерфейс;
  2. инсталира/конфигурира целевата среда на симулатора на Rust за iOS;
  3. гарантира, че необходимата верига от инструменти на Apple/CocoaPods е налична;
  4. създава проекта Tauri за iOS/Xcode и нативните икони;
  5. компилира приложението за симулатора на Apple Silicon;
  6. качва генерираното приложение за симулатор като артефакт за непрекъснато интегриране.

Първата „smoke build“ версия на симулатора за iPhone/iPad при работата по внедряването на iOS приключи успешно.

Версии за устройства и за App Store​

За версията за симулатор не са необходими данни за достъп за разпространение в App Store. За версията за реално устройство/TestFlight/App Store обаче такива данни са необходими.

Работният процес за пускане на версии е настроен да използва следните тайни от GitHub:

APPLE_DEVELOPMENT_TEAM
IOS_CERTIFICATE
IOS_CERTIFICATE_PASSWORD
IOS_MOBILE_PROVISION

В хранилището не трябва да се добавят сертификати за подписване, пароли за сертификати или профили за конфигуриране.

След като конфигурацията за Apple Developer приключи, предвидената последователност на изданията е следната:

  1. да конфигурирате действителния Team ID и данните за възможностите/връзките на приложението;
  2. да инсталирате сертификата на дистрибуцията и профила за конфигуриране по сигурен начин в CI;
  3. създаване/архивиране на подписаното iOS приложение в macOS;
  4. експортиране на IPA файл, подходящ за App Store Connect;
  5. първо да се качи в TestFlight за регресионно тестване на устройствата и работните процеси;
  6. публикувайте в App Store едва след като бъдат изпълнени критериите за бета версията/официалното пускане.

Какво остава да се направи преди публичното разпространение на iOS​

Основната цел на приложението вече е потвърдена, но за публичното му разпространение от Apple все още се изисква:

  • валидни данни за достъп до програмата „Apple Developer Program“;
  • окончателен идентификатор на екипа и конфигурация за предоставяне на услуги;
  • продукция apple-app-site-association публикация за app.openmanuscript.org;
  • тестване на версии, компилирани на физически устройства, на представителен хардуер от сериите iPhone и iPad;
  • Регресионно тестване в TestFlight на влизането в системата, връщането на Universal Link, достъпа до файлове, запазването/отварянето, експортирането и поведението при използване на външни доставчици;
  • Метаданни за App Store, декларации за поверителност и подготовка за преглед на версията.

Тези изисквания не бива да се описват като липсваща архитектура на Studio. Те представляват останалия слой за доверие/разпространение на Apple около вече компилируем споделен клиент.

Връзка с модела „OMI“​

Поддръжката на iOS/iPadOS не променя договорните условия на документа „OMI“. Ръкописът, създаден на iPhone или iPad, е предназначен да остане съвместим с уеб, Windows, Linux, macOS и Android клиенти, като използва същия модел „OMI“ и поддържаните контейнери за обмен.

За по-обща информация относно архитектурата вижте Cross-platform Studio Architecture. За актуална информация за продукта вижте Studio Implementation Status.