azooKeyの開発に参加したい方のため、Contributionの始め方を説明します。この通りにしてもいいし、しなくても構いません。ただ、「何か手伝いたいがどうしたらいいかわからない」という方はぜひこのドキュメントに沿ってやってみてください。
まずは、README.mdに従ってプロジェクトをクローンして環境構築を行い、エミュレータや実機デバイスで実行してみてください。
うまくいかないことがあったら、遠慮なくIssueを立ててください。あなたがわからないことは他の人にもわからない可能性があります。
まずは簡単な変更をして、azooKeyの開発プロセスを体験しましょう。
ここでは、「絵文字検索の候補を追加する」という方法で、azooKeyの開発プロセスを体験します。
azooKeyの絵文字検索・変換は、絵文字データをベースに実装されています。しかし、網羅性はあまり高くありません。少し試してみると「この言葉でこの絵文字が出てきてほしい」というようなものが見つかると思います。
例えば、Version 2.1.1時点では、「祈る/いのる」で「🙏」が出てきません。そこで、これを追加することを考えます。
(以降は、あなたの見つけた「変換できない絵文字」で読み替えてください)
GitHub上で「[Feature Request] 〇〇の絵文字に「△△」の読みを追加する」というIssueを立ててください。Assigneeを自分のアカウントに変更してください。
この変更は小さいので、コア開発者のOKを待つ必要はありません。次に進んでください。
GitHub上で、azooKeyのプロジェクトをフォークしてください。あなたのユーザ名が「hoge」の場合は「https://github.com/hoge/azooKey」ができあがります。
「1」でクローンして動かしたazooKeyのディレクトリで、以下のコマンドを実行します。<alias>
部分は好きな名前(例えばhoge
)に置き換えてください。これにより、あなたのフォークにhoge
と言うエイリアスが追加されます。
git remote add <alias> https://github.com/hoge/azooKey
azooKeyではソースコードを整形するため、SwiftLintを用いています。brew
などでインストールしてください。
brew install swiftlint
swiftlint --version
Xcodeでは、swiftlint
が有効になっていれば自動でソースコードの整形が行われるようになっています。それ以外の環境では手動でswiftlint --fix
をazooKey/
で実行してください。
azooKeyのディレクトリで、以下のコマンドを実行します。こうすることで、develop
をベースにブランチを新しく作成できます。
git switch develop
git switch -c feature/add_emoji
ドキュメントを参考に、絵文字を追加してみてください。おそらく、Gen/data/emoji_additionals.tsv
を変更することで解決します。
変更が正しく反映されていることを、XcodeでBuild・Runして確認してください。
確認方法として簡単なのは、絵文字タブで追加した読み「祈る」で絵文字検索を行い、結果に反映されていることを確認することです。
変換で表示されることを確認するには、まずazooKeyアプリから「絵文字顔文字」の設定に移動し「絵文字」を一度オフにして、もう一度オンにする必要があります。この後キーボードを開いて「いのる」と入力すると、変換候補として追加した絵文字が現れるはずです。
まず、変更をcommitしてください。Xcode上でやるのが簡単だと思います。この際、余計なファイルがcommitされていないか注意してください。
ブランチをpushします。
git push <alias> feature/add_emoji
「[Feature] 〇〇の絵文字に「△△」の読みを追加」のようなPull Requestを立ててください。管理者が確認し、問題なければmergeします。
mergeされた変更は、その後のリリースでazooKeyのユーザに提供されます。
これが一連のプロセスです。少しやることが多いように見えますが、ほとんどは一般的な開発のプロセスと変わりません。
わからないことがあれば、気軽にIssueを立ててください。Issueをきっかけにドキュメントを追加したり、よりわかりやすい表現に置き換えたりすることができます。
基本的に、開発は以上のプロセスと同じ方法で行います。開発への参加は大歓迎です。
何か新しいことを始める場合、まずはIssueを立てるか、すでに立っているIssueを引き受けてください。Good First IssueのラベルのついているIssueは取り組みやすいと思います。
開発作業中にわからないことがあった場合は気軽にIssueで質問してください。
不具合はIssueで管理しています。Bug
などのタグでフィルターすると見つけられるでしょう。新たに見つけた不具合を修正する場合は、Issueを立ててください。
新機能もIssueで管理しています。Enhancement
などのタグでフィルターすると見つけられるでしょう。新たな機能を提案する場合は、Issueを立ててください。
新機能の提案は受け入れられる場合と受け入れられない場合がありますが、Vision Document (docs/visions
) の内容に則った提案は受け入れられる可能性が高いです。
テストを追加する、ドキュメントを整理・追加する、コードを高速化するなど、気軽に提案してください。