Một số kinh nghiệm khi dùng XCode

Ha Nguyen Duc
Chim cu chăm code
Published in
6 min readMar 22, 2020

Trong bài viết này, mình tổng hợp lại một số kinh nghiệm của bản thân cũng như cóp nhặt được của người khác trong việc sử dụng XCode để phát triển ứng dụng iOS. Mục đích của bài viết là giúp các bạn lập trình viên hiểu rõ hơn cách sử dụng và tăng năng suất của bản thân và dự án.

Một số phím tắt

Trong XCode có rất nhiều phím tắt hữu ích, các bạn có thể tự tìm hiểu bằng cách mở các menu tương ứng và xem các phím tắt được chú thích bên cạnh. Ở đây mình chỉ giới thiệu một số phím tắt mà mình hay dùng:

  • Mở nhanh 1 file: Command + Shift + O. Tổ hợp phím này giúp tìm và mở 1 file bằng cách gõ một phần tên file hoặc tên hàm có trong file, XCode sẽ hiển thị các file phù hợp và bạn chỉ việc chọn file đó. Ngoài ra có thể di chuyển đến một dòng trong file bằng cách thêm cú pháp như sau khi tìm kiếm: <tên file>:<dòng muốn trỏ đến>
  • Sau khi mở nhanh 1 file, làm thế nào để tìm vị trí file đó giữa hàng trăm file và thư mục ở Project Navigator? XCode cung cấp cho chúng ta phím tắt Command + Shift + J
  • Tìm kiếm: Command + F (tìm kiếm trong file) hoặc Command + Shift + F (tìm kiếm trong toàn project)
  • Run: Command + R
  • Clean: Command + Shift + K

Một số cách refactor code

  • Đổi tên: Chuột phải vào tên hàm, biến -> Refactor -> Rename. Bằng cách này, chúng ta có thể sửa được tên hàm, biến trong toàn bộ project (cả trong file code và file giao diện). Ngoài ra, bạn có thể sửa được cả trong string bằng cách trỏ vào từ tìm được và click dấu +.
  • Căn lề: Đây là việc làm rất phổ biến, nhất là khi các bạn copy code từ trên mạng về. Bôi đen đoạn code muốn căn lề và nhấn tổ hợp phím Control + I. Có thể định nghĩa lại cách căn lề bằng cách vào Preferences -> Text Editing -> Indentation. Mặc định căn lề là 4 dấu cách
Cài đặt căn lề trong XCode
  • Tạo nhiều con trỏ chuột: Có thể tạo nhiều con trỏ chuột ở nhiều vị trí khác nhau do đó có thể sửa hoặc nhập đoạn text giống nhau ở nhiều chỗ. Cách làm: Giữ tổ hợp Shift + Control và click chuột ở những chỗ muốn đặt con trỏ.
  • Sửa nhiều dòng: Việc này đặc biệt hữu ích khi cần sửa rất nhiều dòng giống nhau (ví dụ sửa trong file Localizable.strings hoặc trong hàm init). Cách làm: Giữ phím Option (Alt) và bôi đen phần muốn sửa, sau đó sửa text và tất cả những chỗ bôi đen được sửa theo.
Tạo nhiều con trỏ chuột và sửa nhiều dòng
  • Refactor storyboard: Một file storyboard chứa quá nhiều ViewController sẽ khiến nó trở nên rất nặng và rối, khó theo dõi. Khi đó, cần phải tách nó ra thành nhiều file storyboard riêng, mỗi file chứa một số ViewController liên quan đến nhau. XCode hỗ trợ việc này bằng cách: Chọn các ViewController cần tách ra -> Editor -> Refactor to Storyboard.
Refactor to Storyboard
  • Sửa tất cả lỗi: Khi convert project từ Swift 3 lên 4.2 hoặc 5, thường sẽ sinh ra rất nhiều lỗi về cú pháp. Các lỗi này đa phần XCode có thể tự sửa được. Để đỡ mất thời gian sửa các lỗi này bằng tay, ta có thể dùng công cụ Editor -> Fix All Issues. Công cụ này chỉ sửa được những lỗi về cú pháp, XCode sẽ tự sửa theo gợi ý nên không phải lúc nào cũng sửa đúng do đó cần kiểm tra lại cẩn thận trước và sau khi sửa.

Một số kinh nghiệm khi debug

  • Tùy chỉnh breakpoint: Có thể tùy chỉnh 1 số thông số của breakpoint như sau.

Thêm điều kiện: Breakpoint chỉ dừng lại khi thỏa mãn điều kiện

Bỏ qua một số lần dừng: Tùy chọn để bỏ qua 1 số lần trước khi breakpoint dừng lại, thường dùng trong vòng lặp

Thêm hành động: Tự động in ra giá trị biến, phát tiếng kêu, chụp lại GPU,… khi breakpoint dừng lại

Tùy chỉnh breakpoint
  • Theo dõi 1 biến (watch point): Khi dừng lại ở 1 breakpoint, ta có thể lựa chọn theo dõi 1 số biến. Khi biến này thay đổi, chương trình sẽ tự động dừng lại ở vị trí mà biến được thay đổi, giống như đặt breakpoint vào vị trí đó
Theo dõi biến isLoading
  • Tìm những chỗ gọi hàm, biến: XCode hỗ trợ tìm những chỗ gọi hàm hoặc biến bằng cách giữ Command + click chuột -> Chọn Callers. XCode chỉ hiển thị tên hàm đã gọi hàm, biến cần tìm chứ không hiển thị cụ thể dòng code gọi. Nếu 1 hàm, biến được gọi nhiều lần trong 1 hàm khác thì cũng chỉ ra 1 kết quả là tên hàm đó.
Tìm những chỗ gọi biến isLoading
  • Debug UI: Việc debug UI giúp xem được từng tầng view đang được hiển thị như thế nào, xem được thông số của từng view (frame, màu, nội dung hiển thị, constraint,…), xem được các nội dung ẩn (trong scrollview).
  • Xem nội dung và in mô tả khi debug:

Tính năng Quick look khi debug giúp ta xem được nội dung 1 số kiểu dữ liệu như ảnh, UIBezierPath, UIColor,…

Để in mô tả, gõ theo cú pháp sau vào console:

po <tên biến>
hoặc
p <tên biến>
Quick look một ảnh

Thao tác với file Storyboard và file xib

  • Đặt id cho constraint: Việc này hỗ trợ rất tốt khi xảy ra conflict constraint và xem constraint nào gây ra conflict. Chọn menu Attributes inspector và điền Identifier cho constraint đó.
Đặt id cho constraint
  • Hiển thị khoảng cách của các view trong file giao diện: Chọn 1 view muốn xem, giữ nút Option + di chuột đến view muốn đo khoảng cách.
  • Di chuyển view đè lên view khác: thông thường, khi di chuyển 1 view đến vị trí của view khác thì nó sẽ tự động thành view con của view kia. Để việc này không xảy ra, view muốn di chuyển đè lên view kia ta giữ nút Command trong khi thực hiện di chuyển view.
Xem khoảng cách và di chuyển view
  • Khóa view: Trong file giao diện, đôi khi ta lỡ tay dịch chuyển 1 view, làm frame của nó bị thay đổi. Để tránh việc này và giữ cố định view khi đã hoàn thành thao tác với nó, có thể khóa view đó lại. Cách làm: Chọn View muốn khóa -> Identity inspector -> Lock -> Chọn All properties
Khóa view

Sử dụng Git trong XCode

Các công cụ hỗ trợ để sử dụng git trong XCode khá hạn chế, ta chỉ thực hiện được 1 số thao tác cơ bản như pull, push, commit, xem lịch sử, xem tác giả dòng code, xem các file thay đổi,…

Kết luận

XCode là 1 IDE rất mạnh trong việc debug, xử lý giao diện, hỗ trợ lập trình viên viết code nhanh, chính xác và ít lỗi hơn. Hi vọng bài viết này sẽ giúp các bạn, đặc biệt là các fresher, có thêm nhiều kiến thức bổ ích, qua đó tăng năng suất và chất lượng code của mình. Những kiến thức trong bài viết này không phải là tất cả về XCode, nếu có ý kiến muốn chia sẻ, các bạn đừng ngần ngại comment ở bên dưới, hãy chia sẻ để cùng phát triển.

Bài viết sử dụng 1 số tài liệu tham khảo:

https://www.hackingwithswift.com/articles/166/xcode-tips-and-tricks-part-one

https://www.hackingwithswift.com/articles/168/xcode-tips-and-tricks-part-two

https://www.hackingwithswift.com/articles/171/xcode-tips-and-tricks-part-three

https://www.hackingwithswift.com/articles/176/xcode-tips-and-tricks-part-four

https://supereasyapps.com/blog/2014/9/15/14-xcode-time-saving-shortcuts-memorize-and-improve-your-productivity

--

--