Bài viết được dịch từ trang web MacWorld

 

Khóa học lập trình di động tại Techmaster:

Để cài đặt MacOSX lên phần cứng không phải Apple liên hệ chuyên gia cài Hackintosh:

  • Nguyễn Minh Sơn: 01287065634
  • Huỳnh Minh Sơn: 0936225565
  • Website: caidatmacos.com

Sự khác biệt giữa Swift và ngôn ngữ lập trình ứng dụng mới Swift 2 của Apple là gì? Và làm thế nào để tôi có thể bắt đầu viết các ứng dụng với Swift 2?

Lập trình ứng dụng iOS bằng Swift 2

Apple giới thiệu Swift 2 tại hội nghị WWDC 2015, là một bản cập nhật cho ngôn ngữ lập trình Swift tương đối mới của họ. Swift 2, cũng giống như Swift, được dùng để viết hoặc tạo ra các ứng dụng cho Mac OS X và các thiết bị iOS. Apple thiết kế Swift một cách rõ ràng để có được hiệu suất nhanh nhất và hiệu quả nhất từ các thiết bị, và Swift 2 mở rộng thêm những tính năng đã rất ấn tượng của nó.

Tin tức "hot" nhất dành cho các nhà phát triển đó là Apple có ý định biến Swift thành mã nguồn mở vào cuối năm nay (2015). Theo như Apple nói động thái này nhằm "tạo cơ hội để đẩy toàn bộ ngành công nghiệp phần mềm tiến lên phía trước. Thật thú vị khi tưởng tượng thấy những gì mà chúng ta sẽ cùng nhau xây dựng."

Swift sẽ trở thành mã nguồn mở có ý nghĩa gì?

Swift sẽ trở thành mã nguồn mở

Swift 2 sẽ trở thành mã nguồn mở vào cuối năm nay. Nhưng điều đó có ý nghĩa gì đối với các lập trình viên và những người sử dụng?

Mã nguồn mở thường có nghĩa là mã nguồn của một chương trình, hoặc ngôn ngữ lập trình, được cung cấp tới cộng đồng. Các lập trình viên khác có thể khảo sát, chỉnh sửa và triển khai chương trình đó ở bất cứ nơi nào họ muốn.

Chúng tôi hy vọng Apple phát hành mã nguồn Swift (phần code đằng sau ngôn ngữ này, phần tương tác với LLVM, hoặc máy ảo cấp thấp). LLVM được viết bằng C++ (một ngôn ngữ lập trình phổ biến) và tương tác với các thiết bị phần cứng.

Trong thực tế điều này có nghĩa là các nhà phát triển sẽ có khả năng lấy ngôn ngữ lập trình Swift và xây dựng nó để có thể triển khai trên các hệ điều hành không phải của Apple. Đặc biệt chúng ta mong đợi để xem Swift chạy trên các biến thể của hệ điều hành Linux (bởi vì cả Linux và OS X chia sẻ một cấu trúc phía dưới kiểu Unix tương tự nhau). Về mặt lý thuyết, bạn cũng có thể nhìn thấy Swift được thực thi trên các máy tính chạy Windows. Các nhà phát triển cũng mong đợi để xem Swift chạy trên các máy tính thử nghiệm nhỏ hơn, chẳng hạn như Raspberry Pi.

Thật tuyệt vời! Liệu chúng ta sẽ có thể chạy các ứng dụng iOS trên các thiết bị Android?

Trong khi bạn sẽ có khả năng sử dụng code Swift trên các thiết bị khác, nhưng đừng tin rằng điều đó có nghĩa là bạn sẽ được nhìn thấy phần mềm OS X và iOS chạy trên Windows và Android. Việc mở mã nguồn Swift khiến cho việc port phần mềm từ một thiết bị này sang thiết bị khác trở nên dễ dàng hơn, nhưng chúng tôi mong chờ Apple giữ lại quyền kiểm soát tới bộ SDK (Software Development Kit) của họ. Trong khi không biết phần nào của Swift mà Apple dự định biến thành mã nguồn mở, chúng tôi tin rằng Apple sẽ vẫn giữ lại mã nguồn của Xcode, vì vậy bạn sẽ vẫn sử dụng một máy Mac để phát triển các phần mềm cho OS X và iOS.

Trong khi Apple là một công ty rất riêng, và rất tích cực bảo vệ những sáng tạo của riêng mình, vì vậy đối với một lập trình viên không theo mã nguồn mở thì dường như đó không phải là một quyết định phù hợp với công ty này. Tuy nhiên, dù gì thì Apple cũng không phải là một kẻ xa lạ đối với cộng đồng mã nguồn mở. Hệ điều hành OS X của họ được xây dựng dựa trên UNIX và nhiều thành phần của nó là mã nguồn mở.

Tại trang ‘Open at the source’ của Apple nói rằng: "Apple tin rằng việc sử dụng phương pháp mã nguồn mở khiến cho Mac OS X trở thành một hệ điều hành mạnh mẽ và an toàn hơn, các thành phần lõi của nó đã phải chịu sự thử thách khắc nghiệt của cộng đồng trong nhiều thập kỷ."

Những tính năng mới trong Swift 2

Những tính năng mới trong Swift 2

Swift 2 cũng giới thiệu một loạt tính năng mới cho các nhà phát triển.

  • Mô hình quản lý lỗi. Có những thủ tục mới để throw, catch và quản lý lỗi trong Swift. Điều này cho phép code của bạn có thể đối phó được với các lỗi như "file-not-found" hoặc network timeout.
  • Cải tiến cú pháp. Swift có nhiều tính năng cú pháp cho phép bạn viết nhiều code dễ hiểu hơn. Apple tuyên bố rằng điều này sẽ cải thiện tính nhất quán xuyên suốt ngôn ngữ này.
  • Kiểm tra tình trạng sẵn sàng. Việc sử dụng những SDK mới nhất đảm bảo bạn có thể truy cập vào tới các tính năng mới nhất và thông tin về những thay đổi trên nền tảng. Giờ đây bạn có thể biên dịch cho một hệ điều hành cũ hơn và trình biên dịch sẽ hiển thị một lỗi nếu bạn đang sử dụng một API quá mới. Bạn cũng có thể wrap phần code đó bằng cách sử dụng khối #available, vì vậy nó chỉ chạy khi ở trên hệ điều hành phù hợp.
  • Protocol extensions. Hiện nay bạn có thể bổ sung thêm các phương thức và thuộc tính tới bất kỳ class nào theo một protocol cụ thể. Điều này sẽ cho phép các lập trình viên sử dụng lại được nhiều code hơn.

Apple cũng đã cập nhật Objective-C (ngôn ngữ được sử dụng trước ngày có Swift). Những tính năng mới cho phép Objective-C và Swift làm việc với nhau tốt hơn. Những tính năng mới của Objective-C bao gồm Generics, Nullability và một loại Object mới được biết đến như là "Kind-Of". Những tính năng mới này sẽ giúp Swift và Objective-C tương tác với nhau.

Sử dụng Swift 2 trong Xcode 7

Ngôn ngữ lập trình Swift 2 sẽ có sẵn cho tất cả mọi người trong Xcode 7 khi nó được phát hành vào cuối năm 2015. Xcode có sẵn từ Mac App Store. Một phiên bản beta của Xcode 7 hiện tại đang có sẵn cho các nhà phát triển đã đăng ký trên trang Apple Developer.

Xcode 7 đã mở rộng các công cụ cho nền tảng watchOS mới và các chức năng mới như kiểm thử, debugging và triển khai. Thông tin thêm về Xcode 7 có thể được tìm thấy trên trang Xcode của Apple.

Ngôn ngữ lập trình Swift của Apple được sử dụng làm gì?

Ngôn ngữ lập trình Swift của Apple lần đầu tiên được ra mắt tại hội nghị WWDC 2014, nó được thiết kế để giúp cho công việc viết chương trình trên Mac OS X và các thiết bị iOS được dễ dàng hơn. Phần còn lại của bài viết này sẽ xem xét Apple Swift là ngôn ngữ lập trình như thế nào, làm sao để có được Apple Swift trên máy Mac của bạn, và làm thế nào để học lập trình bằng Apple Swift.

Ngôn ngữ Swift phát triển nhanh chóng, và nó được nhắm tới thay thế hoàn toàn ngôn ngữ lập trình Objective-C hiện tại của Apple. Objective-C đã được phát triển vào những năm 1980s và được mang vào Mac trong năm 1996. Trước năm 2014 thì nó đã được 17 năm kể từ khi Apple phát hành một ngôn ngữ lập trình mới, vì vậy Swift là rất quan trọng đối với cộng đồng các nhà phát triển Apple.

Swift 2 có cú pháp rất gọn gàng

Ngôn ngữ lập trình Swift của Apple là gì?

Swift là một ngôn ngữ lập trình cho Cocoa và Cocoa Touch (đây là những framework tương ứng dành cho Mac OS X và iOS). Các chương trình viết bằng Swift được tạo ra bằng cách sử dụng Xcode 6, đây là phiên bản mới nhất của môi trường phát triển tích hợp (IDE) của hãng Apple.

Swift là một ngôn ngữ lập trình tương đối mới, được giới thiệu vào năm 2014, nhưng nó được thiết kế để đi cùng với các chương trình viết bằng Objective-C đang tồn tại (ngôn ngữ được sử dụng để phát triển các chương trình trên OS X và iOS). Điều này cho phép các nhà phát triển bổ sung code Swift vào những ứng dụng hiện có mà không cần phải thay thế toàn bộ những phần code cũ được viết bằng Objective-C.

Những lợi thế để lập trình trong Apple Swift là gì?

Apple đã nêu ra một số lợi thế mà Swift hơn hẳn ngôn ngữ cũ Objective-C. Vì ngôn ngữ này còn khá mới nên còn nhiều điều chưa nhìn thấy, nhưng đây là một trong số những lý do tại sao Swift là một ngôn ngữ lập trình tốt hơn Objective-C:

Apple Swift có cú pháp gọn gàng hơn

Apple Swift được thiết kế để trở thành một ngôn ngữ lập trình dễ đọc và dễ code hơn. Cú pháp của Swift (phần định dạng) không yêu cầu dấu ; ở cuối mỗi dòng, và các chức năng dễ hiểu hơn. Ví dụ như lệnh Print, hầu hết mọi người đã quen thuộc với cú pháp NSLOG trong Objective-C (NS là tên viết tắt của NextStep, công ty mà Steve Jobs đã thành lập khi ông ta rời Apple, điều đó cho thấy Apple đang dần thay thế các di sản của nó); trong Swift thì lệnh này đã được thay thế thành 'println'. Có ít ký tự trong code hơn, và nói chung Swift hiệu quả hơn nhiều so với Objective-C.

Nếu chúng ta nhìn vào chương trình Hello World kinh điển trong mỗi ngôn ngữ (chương trình sẽ xuất ra dòng chữ "Hello, world!" trên màn hình). Bạn có thể nhìn thấy Swift đơn giản hơn, và có ý nghĩa hơn nhiều so với Objective-C.

Objective-C: Hello World

Đây là chương trình Hello World được viết bằng Objective-C:

#import
#import <Foundation/Foundation.h>

int main(void)
{
    NSLog(@"Hello, world!\n");
    return 0;
} 

Swift: Hello World

Đây là chương trình Hello World được viết bằng Swift:

println("Hello, world!")

Như bạn có thể thấy code viết bằng Swift rõ ràng và đơn giản hơn trong việc đọc và học. Dưới đây là một số những tính năng khác mà Apple liệt kê và xem là quan trọng để đảm bảo cho code được dễ hiểu hơn:

  • Closures hợp nhất với con trỏ hàm (function pointer)
  • Tuples và nhiều giá trị trả về
  • Generics
  • Vòng lặp nhanh và ngắn gọn qua một range hoặc collection
  • Structs có hỗ trợ các phương thức, extensions, protocols
  • Các functional programming pattern, ví dụ như: map và filter

Trong Apple Swift bộ nhớ được quản lý tự động

Một trong những lợi thế lớn đối với Swift đó là các lập trình viên không phải quản lý cấp phát bộ nhớ. Trong Swift các biến được khởi tạo trước khi sử dụng, mảng và số nguyên được kiểm tra tràn (overflow) và bộ nhớ được quản lý tự động. Điều này làm cho ngôn ngữ lập trình Swift an toàn hơn để sử dụng đối với các lập trình viên không có nhiều kinh nghiệm. Việc quản lý bộ nhớ của Swift sẽ làm cho các ứng dụng đáng tin cậy hơn, điều này sẽ có lợi cho cả các nhà phát triển lẫn người sử dụng.

Tôi có thể tải Apple Swift về máy Mac của tôi ở đâu?

Swift là một phần của Xcode IDE (môi trường phát triển tích hợp) có sẵn để tải về miễn phí từ Mac App Store.

Xcode 7 đã ra lò

Tôi có nên học làm thế nào để lập trình trong Swift?

Kết luận chung từ các nhà phát triển dường như là Swift là một ngôn ngữ lập trình tuyệt vời. Swift có nhiều điểm giống với Python, một ngôn ngữ lập trình được đánh giá cao khác. Swift là ngôn ngữ lập trình dễ học hơn Objective-C đối với người mới bắt đầu. Python thường xuyên được sử dụng là ngôn ngữ để giảng dạy lập trình, vì vậy nhiều lập trình viên có thể đã quen với cú pháp Apple Swift.

Nhưng nó cũng tốt hơn đối với những lập trình viên có kinh nghiệm, vì họ sẽ thấy cú pháp của Swift gọn gàng và dễ sử dụng hơn.

Nếu bạn đã dành thời gian để trở nên quen thuộc với Objective-C, thì bạn cũng nên chuyển sang Swift để cuộc sống trở nên dễ dàng hơn, mặc dù việc chuyển sang một ngôn ngữ lập trình mới yêu cầu phải học những code mới, đó sẽ là một điều đáng suy nghĩ cho các nhà phát triển hiện tại. Nhưng về lâu dài thì việc chuyển sang Swift sẽ đáng đồng tiền bát gạo, thậm chí cho cả những nhà phát triển dày dạn về Objective-C.

Swift không phải để làm cho nó dễ dàng chuyển code từ Mac OS X và iOS sang các nền tảng khác như Android. Nhiều nhà phát triển đang đong đếm những thuận lợi của phát triển bằng Swift với những môi trường khác ngoài Apple. Trong lúc này Apple đang hỗ trợ cả lập trình Objective-C và Swift để xây dựng các ứng dụng Cocoa và Cocoa Touch, nhưng cuối cùng chúng ta mong đợi rằng mọi người sẽ chuyển hết sang Swift.

Làm thế nào để tôi có thể học lập trình Swift?

Nếu việc học Swift khiến cho bạn cảm thấy hứng thú thì có rất nhiều tài nguyên có sẵn trên mạng. Bạn có thể tải về Xcode 7 beta từ trang Apple Developer, và Apple cũng đã phát hành một cuốn sách về lập trình Swift trên iBooks Store: The Swift Programming Language (iBooks Store). Bất kỳ ai cũng có thể tải về cuốn sách này, bạn không cần phải đăng ký tham gia vào chương trình Apple Developer.

Cuốn sách Swift Programming Language của Apple có thể đọc bằng cách sử dụng iBooks trên Mac OS X, hoặc bạn có thể đọc nó trên một chiếc iPad (hoặc iPhone). Cuốn sách của Apple dạy bạn từ những kiến thức toán tử cơ bản cho đến kế thừa; nhưng cuốn sách The Swift Programming Language không chứa nội dung về phát triển ứng dụng iOS trong môi trường Xcode. Chúng tôi hy vọng cuốn sách sẽ viết chi tiết hơn về Swift, cũng như là các hướng dẫn cho người mới bắt đầu trong thời gian sắp tới.

Dưới đây là một số tài nguyên về lập trình Apple Swift:

Chúng tôi cũng khuyên bạn nên xem các bài hướng dẫn trực tuyến trên các trang như Udemy, trong đó cung cấp rất nhiều khóa học cho các nhà phát triển bao gồm:

Trong khi đó nhiều nhà phát triển đang bàn về Swift và các tính năng của nó. Dưới đây là một số trang web lớn mà các lập trình viên Swift tương lai nên bookmark lại:

Bạn hãy cho chúng tôi biết thêm về bất kỳ trang web lập trình Swift (hoặc các cuốn sách) trong phần bình luận ở dưới nhé!

Cách tốt nhất để học lập trình Swift từ đầu là gì?

Nếu bạn là một người mới học lập trình, hoặc muốn tìm hiểu làm thế nào để lập trình nói chung thì có một số các trang web và dịch vụ có thể giúp bạn. Dưới đây là một số các trang web hướng dẫn lập trình tốt nhất mà bạn nên ghé qua:

  • Codeacademy. Cộng đồng học tập trực tuyến miễn phí này dạy bạn các kỹ năng số. Nó không có phần dạy về lập trình Swift, vâng, nhưng nó sẽ hướng dẫn bạn học Python (là một ngôn ngữ tuyệt vời để bạn bắt đầu học lập trình).
  • Learn Python the Hard Way. Mặc dù tên của cuốn sách và khóa học này nghe có vẻ hù dọa bạn, nhưng đây là cách tốt nhất để dạy lập trình cho người mới bắt đầu.
  • MITX 6.00.1x: Giới thiệu về Khoa học Máy tính và lập trình sử dụng ngôn ngữ Python. Khóa học này được thiết kế cho các sinh viên trường đại học MIT và Harvard chưa có kinh nghiệm về khoa học máy tính và lập trình. Tất cả những tài liệu và khóa học này đều có sẵn trực tuyến. Đó là hướng dẫn cơ bản tốt nhất để bạn bắt đầu học lập trình (các đoạn video khá gọn gàng nếu bạn chỉ quan tâm về máy tính nói chung).

Nếu từng đó vẫn chưa đủ thì bạn có thể chơi Flappy Bird viết bằng Swift, nhờ một nhà phát triển có tên là Nate Murray. Mã nguồn Flappy Bird viết bằng Swift có sẵn trên GitHub.

Hãy cho chúng tôi biết về bất kỳ các liên kết hoặc tài nguyên khác mà bạn nghĩ rằng chúng ta nên có.

Flappy Birt viết lại bằng Swift

Tham khảo:

Hiện tại ở TechMaster đang có 2 khóa học về lập trình ứng dụng iOS là "Lập trình iOS Objective-C""Lập trình iOS Swift". Mỗi bài học là một ứng dụng cụ thể. Học viên có toàn bộ mã nguồn và được hướng dẫn từng bước để thực hiện. Học viên đăng ký học được xem học liệu vĩnh viễn. Khóa học liên tục được cập nhật bài giảng mới, công nghệ mới khi có.