Lập trình ứng dụng iOS cơ bản – Phần 4: Giới thiệu ngôn ngữ lập trình Swift

Xin lỗi các bạn vì khá lâu mình mới có thể viết tiếp series này. Chúng ta bắt đầu luôn ha 🙂 .

Nhiều bạn có thể sẽ thắc mắc vì sao các phần trước mình giới thiệu về Obj-C mà ở phần này lại tiêu đề lại là giới thiệu về Swift. Thực sự mình rất muốn viết về cả Obj-C lẫn Swift. Tuy nhiên, thời gian không cho phép mình tham lam vậy. Mình nhận thấy Swift càng ngày càng trở nên phổ biến nên mình quyết định các bài viết của mình sẽ tập trung vào ngôn ngữ này thay cho Obj-C như ban đầu đã định. Hiện tại mình đang dùng Swift 4 và Xcode 9 . Mọi người nếu có thắc mắc về bất cứ điều gì cứ để lại comment, mình sẽ cố gắng giải đáp trong khả năng của mình.

OK, vậy ta đi vào chi tiết bài này nha.

Phần 1: Xcode 9

Minh hoạ Xcode 9

Xcode 9 có thêm khá nhiều tiện ích và công cụ hỗ trợ lập trình viên rất đắc lực. Mình có thể liệt kê vài điểm khác với Xcode 8 như sau:

  • Refactoring: chỉnh sửa lại code của mình khá là nhanh chóng.
  • Search: nhanh hơn
  • Debugging: build ứng dụng thông qua wifi.
  • Source control: quản lý source code thông minh hơn.
  • Playground templates: iOS templates mới, chạy trên iPad.
  • New build system: tăng độ tin cậy và hiệu năng

Có rất nhiều thay đổi, nhưng thực sự thì mình thấy điểm nổi bật nhất là ở khả năng debug ứng dụng thông qua wifi và refactoring. Ở việc build ứng dụng qua wifi thì khá là hay, tuy nhiên theo mình thì cứ cắm máy vào build trực tiếp vẫn tốt và nhanh hơn (bởi vì wifi khá là chậm). Còn về refactoring, trước đây việc rename 1 property trên Swift là không được support. Tuy nhiên, ở Xcode 9 thì điểm này đã được khắc phục 😀 .

À, Xcode 9 có hỗ trợ Swift 3 và Swift 4 nha (Swift 4 thì chỉ có từ Xcode 9 trở đi).

Tóm lại thì có cái mới là mình cứ update và dùng thôi, hàng của Apple trước sau gì cũng phải lên version à 😛

Phần 2: Swift căn bản

Như đã có nhắc ở các phần trước, Swift chỉ mới ra đời cách đây vài năm nhưng lại phát triển rất nhanh chóng và được Apple rất đầu tư. Hiện tại đã là Swift 4. Các khái niệm, lịch sử này nọ mình hơi lười viết lại, google có khá nhiều thông tin, nên mình sẽ đi thẳng vào cú pháp của nó luôn (các cú pháp này là khá cơ bản, chỉ đủ giúp các bạn làm bài “Hello iOS” như đầu series mình đã đề cập).

Mọi code trong Swift được chứa trong các file có định dạng là *.swift, nó không như Obj-C (có 2 file .h.m). Ở đây mình sẽ lấy một đoạn code và sẽ giải thích từng cú pháp trong đoạn code đó.

Cây thư mục Swift và Objective-C

Trong Swift, kết thúc mỗi câu lệnh chúng ta không cần phải có dấu “;” như một số ngôn ngữ khác (nếu bạn thêm ; cũng không sao nha 🙂 )

Codes ví dụ
  • import: Ta dùng cú pháp này để thêm 1 thư viện (lib) sẽ sử dụng vào dự án của mình (chỉ import các thư viện, các class do mình tự viết sẽ không cần phải import, điều này ở Obj-C không có).
  • class: Tất nhiên là từ khoá khai báo 1 class (class là gì thì chắc ai cũng biết rồi ha 😛 ). Còn final class thì sao: thực sự nó cũng là class, nhưng từ khoá final sẽ báo cho trình biên dịch hiểu rằng nó là subclass nhỏ nhất, không ai kế thừa nó cả. Rất nhiều lập trình viên iOS bỏ qua từ khoá này vì nghĩ nó không quan trọng. Tuy nhiên, với mình thì việc dùng từ khoá final cho các class mà “KHÔNG CÓ CON” sẽ giúp việc trình biên dịch đỡ phải đi tìm “CON” (vì chắc chắn nó làm gì có subclass mà tìm 😀 ), giúp tăng performance. Ngoài khái niệm class ở Swift còn có enumstruct. Tên thì nghe khá quen, nhưng thực sự struct và enum trong Swift có rất nhiều điểm thú vị và cực kì mạnh mẽ. Các bài sau mình sẽ giải thích 2 khái niệm này nha.
  • varlet: Ta dùng chúng để khái báo biến (var) hoặc hằng số (let). Trong Swift quy định rất rõ ràng, nếu một biến mà không bao giờ thay đổi giá trị thì nó sẽ cảnh báo chúng ta và đề nghị chúng ta chuyển nó sang hằng số. Các biến và hằng trong Swift chúng ta cũng không cần khai báo kiểu dữ liệu cho nó, tự nó sẽ suy ra được kiểu giá trị thông qua giá trị ban đầu mà bạn gán cho nó. Ví dụ: let a = 1 nó sẽ hiểu là kiểu Int, nhưng nếu: let a = 1.0 nó sẽ hiểu là kiểu Double. Tất nhiên, bạn có thể khai báo kiểu dữ liệu cụ thể cho nó.
  • func: dùng để khai báo 1 phương thức.
Khai báo và sử dụng phương thức trong Swift 4

Ví dụ khai báo một phương thức: func tinhTong3So(_ soThuNhat: Int, soThuHai: Int, soThuBa sohang3: Int) -> Int {} . Phương thức này dùng để tính tổng 3 số nguyên kiểu Int. Tuy nhiên, để ý bạn sẽ thấy tại sao tham số thứ 1 (soThuNhat) lại có dấu _ phía trước, tham số 2 (soThuHai) lại không có, tham số 3 (soThuBa) lại có 2 thành phần là soThuBa rồi sohang3 nữa. Trong hình trên mình có giải thích khái niệm argument label của một tham số là gì đó. Chi tiết hơn nữa thì mọi người xem ở đây nha.

Cú pháp đầy đủ của một func: func <tên phương thức> (<nhãn tham số> <tham số>: <kiểu dữ liệu>, …) -> <kiểu dữ liệu trả về>

  • print: câu lệnh in các dòng log ra console, dùng trong debug khá là nhiều.

Thực sự thì trong đoạn code trên còn có khá nhiều khái niệm mới, ví dụ: weak, ! (optional), @IBOutlet, fileprivate hay các method như viewDidLoad()didReceiveMemoryWarning(),… Các khái niệm này liên quan tới nhiều khái niệm khác nữa (tức là nội dung của nó khá là dài), vì thế mình sẽ có các bài riêng về các khái niệm này.

Kể từ khi Swift ra đời, Xcode có thêm công cụ playground, cái này khá là hay.

Minh hoạ Playground

Các bạn có thể dùng nó để tập viết những câu lệnh cơ bản, rất phù hợp khi bạn muốn kiểm chứng hoặc muốn biết đoạn code đó sẽ chạy thế nào mà không cần phải tạo project hay chạy simulator chi cho rắc rối.

Bài này mình chỉ giới thiệu sơ một số kiến thức giúp chúng ta làm bài “Hello iOS” đầu tiên mà thôi. Bài sau sẽ là bài cuối của series đầu tiên này của mình, mình sẽ hướng dẫn các bạn làm bài “Hello iOS”. Rất là dễ 😀 . Hẹn các bạn ở bài sau nha.

Các bạn copy nhớ ghi rõ nguồn của https://hocitvn.com giúp mình.

Leave a reply:

Your email address will not be published.

Site Footer