Section 2/181 menit
2. Xcode: Shortcuts, Settings, dan Hidden Features
2. Xcode: Shortcuts, Settings, dan Hidden Features
Keyboard Shortcuts Paling Produktif
swift
Navigation:
⌘ + Shift + O → Open Quickly (cari file/class/function)
⌘ + Shift + J → Reveal file aktif di navigator
⌃ + 6 → Jump to method/property dalam file
⌃ + 1 → Related items (callers, superclass, dll)
⌘ + L → Go to line number
⌘ + [ / ] → Indent/unindent selection
⌘ + / → Toggle comment
⌃ + I → Re-indent selection
Editing:
⌥ + Click → Add cursor (multi-cursor editing)
⌘ + Shift + F → Find in project
⌘ + Shift + R → Replace in project (rename)
⌃ + ⌘ + E → Rename semua occurrences di file
⌘ + ⌥ + [/] → Move line up/down
Build & Run:
⌘ + B → Build
⌘ + R → Run
⌘ + U → Run tests
⌘ + . → Stop
⌘ + Shift + K → Clean build folder
⌘ + ⌥ + Shift + K → Clean derived data (nuclear option)
Debugging:
⌘ + \ → Toggle breakpoint
⌘ + Y → Enable/disable all breakpoints
F6 → Step over
F7 → Step into
F8 → Step out
⌘ + ⌥ + P → Continue to next breakpoint
Xcode Settings untuk Produktivitas
Buka Xcode → Settings dan aktifkan/ubah:
swift
Text Editing:
✓ Show: Line numbers
✓ Show: Code folding ribbon
✓ Trim trailing whitespace
✓ Including whitespace-only lines
✓ Default line endings: macOS / LF
Accounts:
→ Tambahkan Apple ID untuk signing otomatis
→ Connect GitHub/GitLab untuk source control
Behaviors (⌘ + , → Behaviors):
Saat build fails → Show Issues navigator
Saat tests fail → Show Test navigator
Saat running → Show Debug area
Xcode Instruments Quick Launch
swift
# Jalankan Instruments dari command line
xcrun instruments -t "Time Profiler" -D ~/Desktop/trace.trace \
-l 10000 -w "iPhone 15 Pro" \
com.mycompany.myapp
# Buka file .trace
open ~/Desktop/trace.trace
File Templates Custom
Buat template file Swift yang muncul di File → New → File:
swift
# Lokasi templates Xcode
TEMPLATES_DIR="$HOME/Library/Developer/Xcode/Templates/File Templates/Custom"
mkdir -p "$TEMPLATES_DIR/Custom"
# Struktur folder template
# CustomView.xctemplate/
# TemplateInfo.plist
# ___FILEBASENAME___.swift
swift
<!-- TemplateInfo.plist -->
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Kind</key>
<string>Xcode.IDEFoundation.TextSubstitutionFileTemplateKind</string>
<key>Description</key>
<string>Custom SwiftUI View with ViewModel</string>
<key>Summary</key>
<string>Creates a SwiftUI View with accompanying ViewModel</string>
<key>SortOrder</key>
<string>1</string>
<key>Platforms</key>
<array>
<string>com.apple.platform.iphoneos</string>
</array>
<key>MainTemplateFile</key>
<string>___FILEBASENAME___.swift</string>
</dict>
</plist>
swift
// ___FILEBASENAME___.swift — template content
// ___FILEHEADER___
import SwiftUI
// MARK: - ViewModel
@Observable
final class ___FILEBASENAMEASIDENTIFIER___ViewModel {
}
// MARK: - View
struct ___FILEBASENAMEASIDENTIFIER___: View {
@State private var viewModel = ___FILEBASENAMEASIDENTIFIER___ViewModel()
var body: some View {
Text("___FILEBASENAMEASIDENTIFIER___")
}
}
#Preview {
___FILEBASENAMEASIDENTIFIER___()
}