2016.6.22

郷に入っては郷に従え
~プログラミングと UI 設計のお作法の話~

プログラミング

私たち開発者は、様々なプラットフォーム向けに様々な言語でプログラムを書いています。iOS アプリの場合には iOS デバイス上で動作する GUI アプリケーションを Swift や Objective-C という言語を使って書きます。Android アプリの場合には Android 上で動作する GUI アプリケーションを Java で書きます。開発者のみなさんはどの環境でも同じようにコーディングしていますか? 変数名は homepage_url と書きますか? それとも homepageURL homepageUrl と書きますか?

コラム 郷に入っては郷に従え イメージ

使用しているプログラミング言語やプラットフォームによってそれぞれ標準的な書き方が存在していると思います。コードを書く際にはその環境に準じた書き方をするとコードの統一感が上がり可読性が向上します。環境に準じた書き方をしていない場合に、メソッド名から読み取れる動作イメージにズレが起きることがあります。最悪の場合はコンパイラや静的解析ツールが警告を出す場合もあります。コードのインデントも言語によっては 2 スペース幅であったり 4 スペース幅であったりと違いがあります。インデントルールが揃っていない場合には、類似するコードをサーチしづらくなったりもします。

では、標準的な書き方・作法を知るにはどうすればいいでしょうか? 大きく分けて 3 つあります。

1 つ目は公式のコーディング規約ドキュメントが提供されている場合です。Objective-C の場合であれば Introduction to Coding Guidelines for Cocoa というドキュメントに命名規則などが記載されています。

2 つ目は標準ライブラリ・フレームワークなどの API リファレンスをよく読むことです。リファレンスにはメソッドや定数などが記載されています。自分が書いたコードのクラス名やメソッド名と標準ライブラリやフレームワークのクラス名やメソッド名が同じようなスタイルで書かれているか見比べるとその環境での作法にそっているかどうかは一目瞭然です。

3 つ目はオープンソースとして公開されている場合にはそれらのコードそのものを読んでみることです。ソースコードが読めるのであれば、公開されているインターフェイス以外にも内部でどのような書き方をされているかがよく分かります。Go 言語の場合にはインデントの調整だけでなく、コードフォーマットや命名規則などもチェックをしてくれるツールが標準ツールとして提供されています。このようなツールがある環境であれば作法に従うのが簡単です。

UI 設計

ユーザーインターフェース(UI)の設計においても同様です。OS や動作するデバイスに応じた標準的な「お作法」というべき見た目や振る舞いがあります。アラートダイアログ 1 つをとっても OKCancel のボタンの配置がプラットフォーム毎に違っていることがあります。その場合どうするかというと OS や標準アプリの振る舞いに合わせます。その OS を使っている人が何度も触れるであろう振る舞いに合わせるべきです。

コラム 郷に入っては郷に従え イメージ

1 つのアプリを Android 向けと iOS 向けの両対応として開発したい場合、開発に携わる人にとっては両方を見比べているでしょう。その場合には、原則同じ機能を提供するアプリがプラットフォームが違うために動作が違ってくるというのは違和感を持つかも知れません。仕様は統一した方が管理もしやすいですし、ユーザサポートも単一でいいので楽でしょう。ただ、実際のユーザはどうでしょう? 多くの人は特定の OS をひとつだけを使っています。複数の OS を日々使い分けているような人はごく少数です。普段 Android 端末を使っている人が iOS の作法でアラートダイアログを表示したら、どのボタンを押せばいいのか戸惑うかも知れません。それは普段触れている UI の作法と違っているからです。

UI においても郷に入っては郷に従えの精神で、そのプラットフォームに合わせた振る舞いにすることがユーザーに対する礼儀というものです。

関連コラム