ATOK Spark のご紹介とJavaによるプラグイン開発について

13
1 ©2013 JustSystems Corporation 2016 年 9 年 2 年 年年年年年年年年年年年年 CPS 年年年年年年 年年 年 年年年年年 Java 年年年年年年年年年年年年年年

Transcript of ATOK Spark のご紹介とJavaによるプラグイン開発について

1©2013 JustSystems Corporation

2016 年 9 月 2 日株式会社ジャストシステムCPS 事業部開発部 國貞 暁

            のご紹介とJava によるプラグイン開発について

2©2016 JustSystems Corporation

目次

ATOK とは何か

ATOK Spark とは何か

ATOK Spark の Java プラグイン開発は、どのように行うか

3©2016 JustSystems Corporation

ATOK とは

日本語入力システム ATOK 弊社で開発・販売している日本語入力システム。  Windows / Mac / Android / iOS で動作します。

単純な「かな漢字変換」だけでなく、『コンピュータを用いた日本語での文章作成』という入力工程全体の効率化を目指しています。

4©2016 JustSystems Corporation

エンジニアのニーズの一部が取り残されていた

public class Main { public static void main(String[] arguments) { // 状態に応じて内部で処理を分岐する、仕様 functon( " 通信がタイムアウトしました " );}

「 ATOK は、 ソースのコメントや 文字列リソースの入力には 役立ってます、が…」

(日本語入力 OFF で)「プログラムを書いているときも入力を効率化してほしい」

ATOK で効率化できない場所としてプログラミング中があげられます。

しかし、プログラムコードは『日本語文章』でないので ATOK の適用範囲外とされていた。

→ このニーズを解決するため、  日本語入力システムではない新しいアプリを開発。

5©2016 JustSystems Corporation

とは

動作環境  Windows / Mac ※ 日本語入力システム ATOK がなくても動作します。

コンセプト ① エンジニアの文字入力を効率化 ② エンジニア自身の手でカスタマイズ可能

定型フレーズ入力システム ATOK Spark 弊社で開発し、 2016 年 8 月に公開を開始した、 『日本語入力が OFF のとき』でも動作する入力支援ツールです。 プログラムを作成しているときでも使えるように作られています。

6©2016 JustSystems Corporation

「文字入力の効率化」を実現する機能

【 1 】 定型フレーズ入力   あらかじめ指定したフレーズに、短い打鍵で置き換える。

【 2 】 閲覧機能   どのアプリ上でも、素早く情報を確認できます。

[ 次期アップデート提供予定 ] 画像入力 IME OFF の状態でも、かな漢字変換

デモします

7©2016 JustSystems Corporation

自分に必要な定型フレーズを使うために

「カスタマイズ」を行う方法 (2種類)

定義ファイル簡単に定型フレーズを

定義することができるXML (XSLT も利用可 )

プラグインプログラム言語で

任意の処理を動かせるプロセス間通信

ATOK Spark モジュール┗ 定義ファイルの実行機能

ATOK Spark モジュール

プラグイン

静的な結果を得るときに最適

外部プロセス

動的に結果が変わる場合に最適

読込通信

8©2016 JustSystems Corporation

ATOK Spark のプラグイン開発について

プロセス間通信のプロトコルテキストベースのプロトコルで、標準入出力で通信する。

   HELLO ATOK Spark/0.0   CHECK yotei:

対応言語  Java 、 C++ 、 C# 、 Ruby 、 Python など、なんでも OK

 【推奨】 「 OS 依存しないこと」 & 「実行速度が高速であること」

   →  Java はかなり良い選択肢

9©2016 JustSystems Corporation

Java による ATOK Spark プラグインの開発例

① プラグインの作成  プロトコルを処理するプログラムを実装し、コンパイル    javac -encoding utf8 SampleJava.java② プラグインの組み込み   ATOK Spark の [plugin/plugin.lst] に次の行を追加    java -classpath plugin\bin SampleJava

通信プロトコルのイメージ   ATOK Spark          CHECK yotei:          

プラグイン                    REPLACE 1                          GETTEXT 1                     TEXT 今日は 19:30 から勉強会です 

CHECK~ REPLACE はOS のキーボードイベントを止めるためなるはやで返却することを推奨

10©2016 JustSystems Corporation

ATOK Spark プラグインの実装例( Java )

プラグインソース

ATOK Spark に対してプラグインのプロトコル通知

ATOK Spark からの処理の要求を標準入力で受け付ける。

要求された処理を実行し標準出力に結果を返す

このソースファイルは、リリースバイナリに同梱

11©2016 JustSystems Corporation

プラグインで広がる世界

考えられる実装例

WebAPI と接続して、最新のデータを取得する。 プロジェクトチーム内の Issue やチケットを確認、概要を貼り付ける メール入力中に、 Google Analytics から取得したアクセス数を入れる

動的に変化する情報を手軽に参照する コーディング中に、チーム内のコーディングルールの確認する

WebAPI で、何か別の処理を行う ソースエディタ上から Jenkins を実行する暑い( atui: )と入れたら、エアコンのスイッチを入れる遠隔操作でコーヒーを入れる ( RFC 2324; Hyper Text Coffee Pot Control Protocol)

12©2016 JustSystems Corporation

ATOK Spark は、 Github で開発中。Issue / プルリク 受け付けています

ATOK Spark のプラグイン便利なプラグイン面白いことをするプラグイン

フレームワーク/ SDKATOK Spark のプロトコルをラップした、プラグインのフレームワーク

開発に便利な定義ファイルJava 開発で「あるある」を解決するスニペット

ご要望「こんな機能があれば、こんなことができるのに」

一緒に育ててくれる人大歓迎

13©2016 JustSystems Corporation

今すぐ ATOK Spark で検索