Day: March 8, 2016

Swift:MesaMethodAnalyzerカスタマイズ

絵文字アイコンやプリフィックスはカスタマイズできます。

メソッド名、変数、常数、コメントの書き方は、通常、コーディング規約を作り、それに従った方が保守性が向上します。それはプログラムを読みやすくするという意味合いもあります。

冗長性があるとライン数が増えるとか、パフォーマンスが悪くなるという問題があります。しかし、プログラム開発期間よりも保守期間がはるかに長くなることを考えれば、保守に重点を置くのはもっともなことです。

よく知られていることをSwiftに適用するなら、if else、forループ、for inループ、内部メソッド、外部メソッド、変数、常数、コメント、Interface Builder変数の書き方を少なくとも定義する必要があります。elseは省略できますが、面倒でもつけておいた方が無難です。

また、1行にはひとつだけ命令を書くようにします。;で区切って何命令も書いてしまうと、printを入れたトレースを取りにくいですし、間にそうした命令を入れまちがうことで副次的な修正ミスを誘発する可能性があります。

ライン数は短いに越したことはありません。しかし、保守性と読みやすさが優先します。完成した瞬間から環境変化と新たなニーズやバグ対応をしなければなりません。

あっ、余計なことを書いてしまいました。次のサンプルは絵文字アイコンをカスタマイズしています。またプリフィックスのInを表示しない指定をしています。

MesaMethodAnalyzer v1.1.003

Swift:MesaMethodAnalyzer検索機能

任意の文字列を検索することができます。

v1.0では、前後の文字列の属性をクリアしてヒットした文字列を色付していました。v1.2では、前後の文字列の属性をリセットしません。視認性の向上を図りました。

次の例ではclassが赤の背景色、内部メソッドが黒の背景色になっています。検索でヒットした文字列はマゼンタの背景色です。

MesaMethodAnalyzer v1.1.004

Swift:MesaMethodAnalyzer再帰メソッド

recursive(再帰呼出)に作られたメソッドも解析できます。

メソッドがループしている状態にあることを検出したらそのメソッドに⛔️をつけ表示します。再帰呼び出しメソッドが呼出ているメソッドがあれば、その下位のものまでを表示対象にします。

MesaMethodAnalyzer v1.1.002

Swift:MesaMethodAnalyzer v1.1リリース

今朝、MesaMethodAnalyzer v1.1が承認されました。

はじめに、先週の金曜日、AppleのヘルプデスクのTさんにお礼を申し上げます。親身になって疑問点に答えて頂き、思いあたる点にすべて対策を打つことができました。そして、最終的にApp Storeへのバイナリ登録後のInvalid error対応ができました。

アプリの審査は実質1日で終わりました。とても早いです。

今回、アプリ紹介のページMesa Network Japanをデザインしなおしました。ごちゃごちゃしていたのが、だいぶシンプルになりました。

  • v1.1では、class method名が重複していても、class名で修飾することで解析・表示できるようになりました。また、同一class内でoverridesされたmethod名が重複するケースも解析・表示できるようになりました。
  • v1.1では、検索でヒットした前後の表示属性は元のものが有効になります。これにより、テキストの文字色・背景色がキープされることで視認性が向上します。
  • そのほか、バグの修正と細かい改善をしました。