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 Store | 0.3.0 |
| Номер на версията в App Store | 16 |
| Линия за разработка на студио | 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 остава реална цел за компилиране, а не просто твърдение за нетествана конфигурация.
Процесът на образуване на дим протича по следния начин:
- инсталира заключените зависимости на потребителския интерфейс;
- инсталира/конфигурира целевата среда на симулатора на Rust за iOS;
- гарантира, че необходимата верига от инструменти на Apple/CocoaPods е налична;
- създава проекта Tauri за iOS/Xcode и нативните икони;
- компилира приложението за симулатора на Apple Silicon;
- качва генерираното приложение за симулатор като артефакт за непрекъснато интегриране.
Първата „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 приключи, предвидената последователност на изданията е следната:
- да конфигурирате действителния Team ID и данните за възможностите/връзките на приложението;
- да инсталирате сертификата на дистрибуцията и профила за конфигуриране по сигурен начин в CI;
- създаване/архивиране на подписаното iOS приложение в macOS;
- експортиране на IPA файл, подходящ за App Store Connect;
- първо да се качи в TestFlight за регресионно тестване на устройствата и работните процеси;
- публикувайте в 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.