今回のエンジニアブログを担当します山下です。
今回はXcodeのコードスニペット機能を使ってアプリ開発をスムーズに行う方法をご紹介します。
コードスニペットとは
コードスニペット(code snippet)とは再利用可能なコードの断片的なテンプレートのことを言います。
普段よく入力するコードをテンプレートとして保存しておくことで、コーディング速度を上げることが出来ます。
コードスニペットの登録
まずはXcodeにコードのスニペットを登録します。手順は非常に簡単です。
今回は以下のUIAlertControllerを表示するSwiftのコードを登録します。
let alertView = UIAlertController(title: "タイトル", message: "メッセージ", preferredStyle: .Alert) alertView.addAction(UIAlertAction(title: "OK", style: .Default, handler: { action in print("\(action.title)") })) alertView.addAction(UIAlertAction(title: "キャンセル", style: .Cancel, handler: { action in print("\(action.title)") })) self.presentViewController(alertView, animated: true, completion: nil)
XcodeのUtilitiesでCode Snippet Libraryを開いた後、
Editorで登録したいコードを選択し、Code Snippet Libraryにドラッグ&ドロップします。
これだけで「My code snippet」という名前で登録が完了します。
コードスニペットの利用
スニペットを実際に利用する際も登録同様、Code Snippet Libraryから
Editorの目的の位置にコードをドラッグ&ドロップするだけです。
ショートカットによる利用
スニペットにはCompletion Shortcutという設定項目があり、
ここに入力した文字列でスニペットをコード補完に出すことが出来ます。
Code Snippet Libraryで先ほどのスニペットをダブルクリックすると
スニペットが吹き出しで表示され、左下のEditボタンでスニペットの情報が変更できます。
ここで「alertcontroller」というショートカットを設定しておくと
以下のように補完でより素早く入力が出来ます。
またCompletion Scopesを指定すると、特定の条件下のスコープでのみ
このスニペットを補完するよう制限をかけることもできます。
プレースホルダ
スニペットにはプレースホルダを設定することも出来ます。
スニペットの一部に状況に応じて変更する部分がある場合、そこにプレースホルダを置いておくことで変更がスムーズに可能になります。
Xcodeのスニペットでは、<#ではじまり#>で終わる部分をプレースホルダとして解釈されます。
Alert Controllerのタイトル部分を<#タイトル#>と書き換えてみてください。
let alertView = UIAlertController(title: <# タイトル #>, message: "メッセージ", preferredStyle: .Alert)
するとタイトルの部分が角丸の長方形で囲われます。この部分がプレースホルダです。
同様にAlertControllerのメッセージや、ボタンを押されたときのハンドラの中身にもプレースホルダを設定しましょう。
登録したスニペットを以下のように書き換えてください。
let alertView = UIAlertController(title: <#タイトル#>, message: <#メッセージ#>, preferredStyle: .Alert) alertView.addAction(UIAlertAction(title: "OK", style: .Default, handler: { action in <#do something...#> })) alertView.addAction(UIAlertAction(title: "キャンセル", style: .Cancel, handler: { action in <#do something...#> })) self.presentViewController(alertView, animated: true, completion: nil)
このスニペットをEditorに追加した直後にTabキーを押すと、プレースホルダにフォーカスが移ります。
ここに値を入力した後またTabキーを押すと、次のプレースホルダにフォーカスが移ります。
このようにしてプレースホルダ部分を素早く埋めていくことが可能になっています。
いかがでしたでしょうか。
今のところXcodeインストール時に用意されているコードスニペットはほとんどObjective-C用で、
Swiftに対応したものはほとんどありません。
そのためSwiftで開発を行う際はよく使うコードはコードスニペットとして自分で用意しておくことをおすすめします。