Hỏi - đáp Nơi cung cấp thông tin nghề nghiệp và giải đáp những thắc mắc thường gặp của bạn

Một số Tip để tăng skill cho iOS Developer

Giới thiệu

Swift là ngôn ngữ lập trình được phát triển bởi Apple Inc với mục đích hỗ trợ lập trình viên trong việc phát triển các ứng dụng chạy trên các hệ điều hành như iOS, OSX và watchOS. Swift được xây dựng dựa trên việc kế thừa các tính năng của 2 ngôn ngữ C và Objective-C. Bài viết này sẽ chia sẻ một số Tip để có thể tăng skill code iOS-Swift.

Bắt đầu

Subscripts:

Class, struct và enum có thể define subscript. Subscripts dùng để truy cập nhanh các phần tử của collection,list hay sequence.Bạn có thể sử dụng subscripts để set và truy xuất dữ liệu với index luôn mà không cần phải gián tiếp qua phương thức khác. Ví dụ bạn truy cập các phần tử trong Array thông qua someArray[index] Sau đây là 2 ví dụ để mô tả dùng subscript để có thể rút gọn clear hơn:

Không sử dụng subscripts:

 

Sử dụng subscript

Sử dụng subscript

Function vs Computed Property

Function (or 💩 Code)

Dưới đây là ví dụ đơn giản về 2 function để tính bán kính khi biết đường kính và ngược lại

Computed Property (or ♥ Code)

Computed Property cung cấp GET và SET. Ví dụ trên được làm lại bằng cách sử dụng computed property

Extension

Extension dùng để thêm các function mới cho class, struct, enum hoặc protocol. Chúng ta có thể mở rộng các loại mà không cần phải truy cập vào mã nguồn ban đầu. Dưới đây là ví dụ extention cho Double để cung cấp cơ bản các loại khoảng cách

Dùng extension

 

Không dùng extension (bad code)

Ternary conditional

Toán tử này là loại đặc biệt gồm có 3 phần với mẫu question ? answer1 : answer2. Đây là shortcut dùng để đánh giá 1 trong 2 biếu thức dựa trên question là true hay false. Dưới đây là ví dụ để thay đổi giá trị của rowHeight dựa trên việc là header có hay không.

Sử dụng Ternary conditional

Không sử dụng Ternary conditional(or 💩 Code)

Nil coalescing

Toán tử nil coalescing có dạng a ?? b. Nó sẽ unwraps một optional a nếu a có giá trị còn nếu a là nil thì giá trị default trả về sẽ là b. Nói thì có vẻ khó hiểu nên mình sẽ đưa ra ví dụ sau: Gán giá trị colorNameToUse là userDefinedColorName nếu userDefinedColorName có giá trị. Còn nếu userDefinedColorName là nil thì giá trị sẽ được set là defaultColorName

Sử dụng Nil coalescing (or 😎 Code)

Không sử dụng Nil coalescing (or 💩 Code)

Optional Unwrapping (if let vs guard let)

Cả 2 thằng if let và guard let đểu có thể unwrap optional. Tuy nhiên thằng guard let hỗ trợ tốt hơn khi chúng ta cần check nhiều điều kiện lồng nhau. Nó sẽ out ra nếu gặp 1 thằng điều kiện không đáp ứng được. Hơn nữa guard let làm cho mã nguồn của mình dễ đọc hơn và dễ dàng maintain sau này. Sau đây là ví dụ để tạo new user:

Sử dụng if let (or Bad Code)

Sử dụng guard let (or Awesome Code)

Generics

Generics là một trong những tính năng mạnh mẽ của Swift. Cho phép chúng ta viết các function linh hoạt và dễ dàng tái sử dụng với bất kì loại nào. Đây là ví dụ mình viết chức năng để đổi chỗ 2 số nguyên và 2 kí tự. Bình thường thì ta sẽ viết 2 function cho 2 chức năng trên:

Sử dụng Generics (or 👊 Code)

Chúng ta chỉ cần tạo 1 hàm duy nhất với bất kì kiểu dữ liệu nào cũng phù hợp

Type safe using Enum

Enum định nghĩa một kiểu chung cho một nhóm các giá trị liên quan và cho phép chúng ta làm việc trên nó một cách an toàn.

Không sử dụng Enum

Sử dụng enum(or 👊 Code)

Dùng enum khiến code trở nên trong sáng và clear hơn rất nhiều

Vậy là chúng ta đã trải qua một số TIP để có thể nâng cao thêm skill. Làm càng nhiều càng sai nhiều thì sẽ rút được kinh nghiệm. Không ai tự dưng mà pro được. Vậy nên mọi người có chia sẻ gì thêm có thể để lại dưới bình luận để những ai chưa biết có thể biết thêm. Cảm ơn mọi người.

Via Techtalk