ソフトウェア

TwitterがiOSアプリ向けに新しいオープンソースのテキストエディタAPI「Twitter Text Editor」を発表


TwitterがオープンソースのiOSアプリ向けリッチテキストエディタAPI「Twitter Text Editor」を発表しました。このTwitter Text Editorは、Twitter for iOSで使用されているのと同じテキストエディタAPIであり、Twitter以外の開発者がアプリに堅牢なテキスト編集機能を追加可能となります。

Introducing Twitter Text Editor
https://blog.twitter.com/engineering/en_us/topics/open-source/2021/introducing-twitter-text-editor.html

アプリ上で頻繁にみられる動作のひとつが「テキスト編集」です。見た目は簡単なテキスト編集ですが、「予想外に複雑になる可能性がある」とTwitterは記しています。Twitter Text Editorは、構文の強調表示やテキストコンテンツのフィルタリングなど、開発者が正しく理解するのが難しい一般的なテキスト編集の問題を解決することを目的としているとのこと。


Appleはテキスト編集用の高レベルあるいは低レベルのAPIセットを提供していますが、それぞれ問題を抱えています。人間が扱いやすい高レベルのAPIは、真に優れたアプリ内エクスペリエンスを作成するのに十分なパワーや制御を常に提供してくれるとは限りません。一方、コンピューターが扱いやすい低レベルのAPIには、双方向テキストのサポート、インプットメソッド、点字キーボードなど、複数の言語にまたがるテキスト編集に関する知識が必要になります。

こういった問題に対処するためにTwitterは懸命に取り組んできたとのことで、その成果を詰め込んだものがTwitter Text Editorであるとのこと。Twitterは「Twitter Text Editorがアプリのテキスト編集エクスペリエンスの向上に役立つことを願っています」と記しています。

Twitter Text Editorの機能は以下の通り。

・簡単なデリゲートベースのAPI
Twitter Text EditorはデリゲートベースのAPIで、多くの一般的なUIKitAPIと同様に設計されています。

・堅牢なテキスト属性更新ロジック
Twitter Text Editorはテキストコンテンツを解析し、バックグラウンドでテキスト属性を更新するためのシンプルなコールバックAPIを提供します。これにより、構文の強調表示などの機能を実装できるようになります。

・追加のテキスト編集イベント
Twitter Text Editorは、アプリケーションがUIの更新に使用できる第一言語の変更や基本的な書き込み方向の変更といった、追加のイベントを提供します。

・テキスト入力の安全なイベント処理
Twitter Text Editorはアプリケーションがテキストをフィルタリングしたり、関連するユーザーインターフェイスを更新したりすることが安全な場合にのみ呼び出されるイベントコールバックを提供します。Twitterは「それを正しく理解するのは通常とても難しいです」と説明しました。

・iOSの最新バージョンをサポート
Twitter Text EditorはiOS 11.0以降をサポートしているため、すべてのiOSユーザーがアプリを利用可能です。

また、Twitter Text EditorにはSwiftおよびObjective-Cの両方で記述されたサンプルアプリケーションも付属しています。これは構文の強調表示など、豊富な編集機能を備えたテキストエディタを実装するための役に立ちます。

加えて、Twitter Text EditorはXcodeでプロジェクトに簡単に追加できるSwiftパッケージとして実装されています。CocoaPodsを介して使用することも可能です。iOSシステムフレームワーク以外の依存関係はありません。

Twitter Text EditorはUITextViewをカプセル化し、多くの一般的なUIKitAPIのような使い慣れたデリゲートベースのAPIを提供します。LayoutManagerとTextStorageを拡張し、カスタム絵文字を表示するための属性を含むカスタムテキスト属性も提供。Twitter Text Editorにはイベントを処理するためのイベントスケジューラがあり、コードに一貫したデリゲートコールバック順序を提供します。

なお、Twitter Text Editorのイベント処理フローを示したのが以下の図。


Twitter Text EditorはオープンソースのテキストエディタAPIであるため、ソースコードはGitHub上で公開されています。

GitHub - twitter/TwitterTextEditor: A standalone, flexible API that provides a full-featured rich text editor for iOS applications.
https://github.com/twitter/TwitterTextEditor

この記事のタイトルとURLをコピーする

・関連記事
全能テキストエディタ「Vim」の歴史と開発者に広く普及した理由 - GIGAZINE

テキストエディタの共同編集機能はどのように実装されているのか - GIGAZINE

Windowsでおなじみのテキストエディタ「メモ帳」が進化、何が変わるのか? - GIGAZINE

テキストエディタ「vi」の開発に使われた端末「ADM3A」には現代のキーボードにはない「HERE IS」というキーがあった - GIGAZINE

Linuxのテキストエディタviとvimのグラフィカルなチートシート - GIGAZINE

in ソフトウェア, Posted by logu_ii

You can read the machine translated English article here.