Objective-C
iOS
AppCode

[ObjC][AppCode] yidev第十五回でデモしたAppCodeの内容

More than 1 year has passed since last update.

2014.6.14 yidev第十五回 でデモをしたAppCodeの内容です。(一部加筆)

っていうか、「AppCodeの良さって文字で伝わるようなもんじゃねーな」とおもいつつも、一応書きました的なヤーツです。

元スライド

Slide Share : AppCodeについて

クラス自動生成

Command + Return : Intention Actions

メソッド自動生成。編集。

Command + Return : Intention Actions :

  • 自動メソッド生成(クラスメソッド インスタンスメソッド self でも他のクラス内でも)
  • .h .m の連携 (自動生成、変更の連動)
  • 引数の変更 Command + F6 : Change Signature
  • とりあえず Control + T 押す

プロパティ/変数の自動生成

  • カーソルのある位置を起点に範囲を指定して変数化

    Command + Option + V: Variable

  • 変数をインライン化

    Command + Option + N: inline

  • [応用] 複数行 ←→ 単一行にさくっと変更。

    よくあるNSBundle とかNSURLとかをサクッと1行にしたり複数行にしたりできる

デリゲートメソッドを挿入

  • Command + Control + O : Override Methods
  • Command + Control + I : Implements Methods

自動インポート整理

  • 自動インポート 

    Command + Return : Intention Actions

  • 不要なインポートを一括削除

    Command + Option + O

ライブテンプレート

強力で柔軟なスニペット。
Edit Variablesを駆使することでいろんなテンプレートが作れる。
チャカチャカ打ってTABを押す。

  • logvの例

    expresionFormatCode() とか

  • オレオレライブテンプレートの紹介(bundle/delegate/singleton) の例

    enum(..)を利用するとプルダウンが作れたりとか。
    fileNameWithoutExtention()で現在のファイル名がとれたりとか。

  • とりあえず command + J 押す

復数カーソル選択

Shift + Option + Click

使いこなせるやつにオレは会いに行く。

formatter の設定 

  • [Preference] > [Code Style]

- [TIPS] 特定のタグで囲んだ領域はformatterを無視するようにできる

  [Preference] > [Code Style] > [General] > [Fromatter Control]をチェックして下記のタグで囲む。(囲むタグはカスタマイズできるみたい)

//@formatter:off

//ここにかいたコードはふぉーまっとされないぜヒャッハー!!!

//@formatter:on

その他便利なTips

  • Dash も開けるよ

[Preference] > [External Document] で設定
Keymap のExternalDocumentで任意のショートカットを設定
(例:Option + Clickなど)

  • Injectioin プラグインも使えるよ

  • Reveal も使えるよ

  • Call hearerchy Option + Control + H

メソッドがどこから呼ばれているのか、どこを読んでいるのか辿れる!

  • Find Usage Setting... Commnd + Option + Shift + F7

変数 がどこからよばれているのかわかる。参照なのか代入なのかとか。

  • ブラケット記法とドットシンタックス記法の切り替えなど

    Command + Return: Intention Actions

  • 行の操作

    • 行の削除 Command + Option + Delete
    • 行の複製 Command + D  
      ※個人的にこれらは対になるようなキーに変更している
    • 行の移動(上) Move Line Up :Option + Shift + [
    • 行の移動(下) Move Line Down :Option + Shift + ]
  • 選択領域を色んなパターンでサクッと囲う

    Surround cord command+option+Tifとかwhileとか

  • コピー履歴からペースト Command + Shift + V

    ClipMenu みたいな機能。コピー履歴を複数選択して結合してペーストとか謎機能もある。

  • 開いているタブのリスト表示 Control + Tab

  • Recentry Changed File Control + 4

 最後に編集したファイル一覧をポップアップ表示、で選択して移動

  • Export Inport Setting

IDEの設定ファイルを簡単にインポート・エクスポートできる。

 File > Export Setting などから、Live Template やFormatterなどの各種設定が書き出せる。チーム共有や、複数マシンでの設定作業が楽。

  • StoryBoardも対応しているよ

    個人的にはまだ微妙。今後に期待

  • Swift も対応したよ(3.0.1)

    3.0.1ではまだ、「プロジェクトが作れてコンパイルが通りますよ」という感じのレベル。

    • まだフォーマッタがない
    • コンパイルエラーになる箇所を教えてくれない
    • Swiftプロジェクト内でObjcをつくってもbredge-headerが追加されない

    など今後に期待!

神ショートカット

  • Show Intention Actions Command + Return

    問題のある箇所にカーソルを合わせて実行すると空気をよんで色々提案してくれる
    とりあえず押す

  • Find Action Command + Shift + A

    わからなくなったらとりあえずコレ
    Appcode 内の全アクションをインクリメンタルで検索、実行。

  • Completion Control + Space

    いい感じに空気読んで補完

  • Generate Code Command + N

いい感じに空気よんでメソッド挿入

git まわり

ここみるといいかも Git integration in AppCode

  • 選択部分が一発でgitsにあげれるという謎機能
  • 差分確認

チートシート

わからなくなったらとりあえずコレ

[Help] > [Default Keymap Reference]

Appcode プラグインサイト

AppCode Plugins

 いろんなプラグインがある。

※プラグインってつくれるのかな?つくってみたい。