Objective c và swift so sánh năm 2024

Mình khuyên bạn nên học lập trình Swift. Đây là ngôn ngữ tiềm năng, dễ học hơn Objective-C, trong tương lai sẽ thay thế Objective-C. Sẽ rất ổn nếu bạn tự học, học từ đầu ngay từ bây giờ. Ngoài ra, mình có một số thông tin cho bạn tham khảo:

Những lợi ích của Swift

Khả năng phát triển ứng dụng di động và kiểm tra thành quả của mình theo thời gian thực sẽ giúp cho quá trình code của các lập trình viên trở nên nhanh và dễ dàng hơn rất nhiều. Ngoài ra, việc không phải chạy chương trình compiler và các chương trình test quá thường xuyên cũng sẽ tiết kiệm được sức mạnh phần cứng cho nhà phát triển. Thay vì tập trung kiểm tra, thử nghiệm các tính năng nhỏ lẻ, lập trình viên Swift có thể dành nhiều thời gian để thực hiện các bài test ở mức độ tích hợp cao hơn một cách kỹ càng hơn.

Lợi ích thứ 2 của Swift là các dòng code rất ngắn và dễ đọc. Trong bài trình bày của Apple, 3 dòng code Objective C có thể gói gọn vào 1 dòng code Swift. Điều này sẽ đẩy nhanh quá trình phát triển ứng dụng và tăng hiệu quả cho quá trình bảo trì/vá lỗi trong tương lai.

Swift hoạt động tương tự một phiên bản Objective C đơn giản, với các lớp đối tượng được đơn giản hóa, và các dòng mã được sắp xếp hợp lý. Với Swift, Các nhà phát triển sẽ có môi trường runtime tương tự Objective C, do vậy nó rất quen thuộc và dễ quản lý.

Ngoài sự đơn giản và phương thức sắp xếp hợp lý hơn cho việc sáng tạo ứng dụng, X Code runtime được thực hiện trong thời gian thực cho Swift. Viết một dòng mã và nhận được kết quả trong thời gian thực, và hình ảnh cũng có thể được xem từ bên trong IDE. X Code cũng sẽ dựng các kịch bản(script) thực hiện trong các ứng dụng, vì vậy theo Apple nói thì lập trình viên có thể quản lý tốt hơn một ứng dụng để tránh sự cố tràn bộ nhớ.

Swift có thể làm việc liền mạch với Objective C, vì vậy các ứng dụng hiện tại có thể được cập nhật bằng Swift. Các nhà phát triển cũng có thể sử dụng các công cụ hữu ích của Objective C ngay chính trên Swift (có thể sống chung với mã C và Objetive-C trong cùng một ứng dụng).

Swift tạo ra các ứng dụng có sức ép phần cứng thấp hơn Objective-C, chúng ta sẽ được tận hưởng trải nghiệm game ấn tượng hơn trên các thiết bị iOS.

Điểm yếu của Swift

Điểm yếu lớn nhất của Swift có lẽ sẽ là tuổi đời quá trẻ của ngôn ngữ lập trình này. Cụ thể hơn, để sử dụng Swift, các nhà phát triển sẽ phải học lại một ngôn ngữ lập trình hoàn toàn mới. Và cộng đồng cũng chưa có nhiều, Các nhà phát triển ứng dụng iOS sẽ mất một khoảng thời gian đáng kể để làm chủ ngôn ngữ mới của Apple.

Do vẫn còn đang trong giai đoạn phát triển nên còn non trẻ cần có thời gian để cộng đồng kiềm nghiệm và đánh giá ưu/nhược và tính hiệu quả so với Objective C có tuổi đời trên 30 năm.

Hôm nay mình sẽ cùng các bạn nghiên cứu về Swift , Về Swift định nghĩa thì ở trên mạng cũng có rất nhiều , như

"Swift là một ngôn ngữ lập trình mới dành cho các nhà phát triển ứng dụng dành cho iOS và OS X. Nhiều phần của Swift sẽ rất thân quen với những người đã có kinh nghiệm lập trình bằng C và Objective-C.

Cũng giống như C, Swift cũng sử dụng Int cho Intergers, Double và Float dùng cho kiểu dữ liệu floating-point, Bool, String, ngoài ra còn có Array và Dictionary.....

Swift cũng đi kèm với công cụ lập trình trực quan, làm tới đâu thấy tới đó luôn, sẽ giúp ích nhiều cho các lập trình viên, đỡ tốn công debug.

Theo đà này, có thể Swift sẽ thịnh hành trong tương lai không xa."

Nhưng hôm nay mình sẽ đi từ demo , để giúp tất cả mọi người hiểu sâu hơn về nó , Mỗi giải thích 1 lần nhé

Objective c và swift so sánh năm 2024
(Chủ yếu là so sánh Swift và Object-C, nên những vấn đề cơ bản , mình sẽ không nói sâu )

import UIKit //1

class TodoManager { //2 func printMessage(name:String) ->Int { //3 println("Welcome (name) todo "); //4 return 10; //5 } }

class Recipes { //6 var aName:String = "" //7 var duration:Int = 10; //8 var ingredent : [String] = ["egg"]; //9 }

class NoValueClass { var aName1:String = "" var duration1:Int = 10 var inge : [String]? }

class ViewController: UIViewController { //10

1 : UIKit là một thư viện của App , nó cũng giống như Object - C , (Xây dựng và quản lý thư viện người dùng) . 2 : Đây là Class của Swift 3 : Đây là hàm của nó , với tham số truyền vào là name:String , và tham số trả về là kiểu Int 4 : Ở đây dùng println (Giống như ngôn ngữ C) nó có chức năng giống NSLog 5 : Đây là tham số trả về 6 : Tương tự như 2 7 : Đây là hàm khởi tạo các biến String trong Class , (Chú ý , không được khởi tạo nil , hoặc phải đặt dấu "?") 8 : Đây là khởi tạo 1 biến kiểu Int 9 : Đây là 1 mảng , rất mới trong Swift 10 : Đây là class được kế thừa từ UIViewController

Tiếp theo nhé :

override func viewDidLoad() { //11 super.viewDidLoad() //12 // Do any additional setup after loading the view, typically from a nib. var numberOfRow = 30; // Variable //13 let maxNumberOfRow = 100; //Constant //14 var = "hourse"; //15 /* Object-C const int count = 10; double price = 23.55; NSString *myMessage = @"Objective-C is not dead yet!"; */

/* Swift */ let count = 10; // Int value //16 var price = 24.50; // Double //17 var myMessage = "Message"; // String //17

var showExtractly : String = "Hello Somebody"; //18 var showDouleExtractly : Float = 23.3; //19

var notNeedSemiconlon : String = "Vai long the nhi ?" //20

11 : Đây là hàm chạy vào sau khi load của UIViewController 12 : Đây là hàm Super , thực hiện các phương thức của lớp hiện tại 13 : Khai báo 1 biến kiểu var - Dưới dạng kiểu số Variable 14 : Khai báo 1 biến kiểu let - Dưới dạng kiểu Constant Chú ý là var thì có thể set giá trị cho nó , nhưng let là Constant nên sẽ không thay đổi giá trị nó được . 15 : Mảng String 16, 17, 18, 19, 20 : Tương tự như trên , nó khai báo các biến , với định dạng rõ ràng .

Tiếp đến là :

/Plus string easy/ var string1 : String = "String one"; var string2 : String = "String two"; print(string1+string2); //21

/Condition/ if string1 == string2{ //22 print("Same"); } /condition better/ string1 == string2 ? "Same" : "No" // WRONG

/Array/ /*Object-C NSArray *recipes = @[@"Egg Benedict", @"Mushroom Risotto", @"Full Breakfast", @"Hamburger", @"Ham and Egg Sandwich"]; */ /Swift/ var myArrays = ["Numb1","Number 2","Number 3", "phu phu","oh no"]; //23 var showExtractlyArray : [String] = ["string 1","string 2"]; //24

var countArray = myArrays.count; //25 myArrays += "New Varible"; //26 myArrays += ["Multipe variable", "Multipe", "Mul"]; //27 var getObjectOfarray = myArrays[0]; //28

myArrays[1...3] = ["Cheese Cake", "Greek Salad", "Braised Beef Cheeks"] //29

/Dictionary/ /*Object-C NSDictionary *companies = @{@"AAPL" : @"Apple Inc", @"GOOG" : @"Google Inc", @"AMZN" : @"Amazon.com, Inc", @"FB" : @"Facebook Inc"}; */ /Swift/ var companies:Dictionary = ["AAPL" : "Apple Inc", "GOOG" : "Google Inc", "AMZN" : "Amazon.com, Inc", "FB" : "Facebook Inc"]; //30

21 : Nhìn vào đây , mình thấy kiểu + 2 "String" rất là mới trong Swift (Bên Object-C sẽ dùng append) 22 : Đây cũng là kiểu so sánh mới trong swift , ở bên Object-C sẽ dùng hàm : isEqualToString , để so sánh 2 chuỗi , 23 : Khai báo 1 mảng String 24 : Cũng khai báo 1 mảng kiểu String , nhưng chỉ ra rất rõ ràng là String 25 : Tính tổng phần tử trong mảng . 26 : Cộng 1 biến mới ở mảng , rất đặc biệt , với Object-C , mình sẽ cần phải là NSMutableArray và dùng hàm addObjec, 27 : Cộng nhiều biến cùng một lúc , 28 : Phù , cái này khá là giống ngôn ngữ C , ở bên Object-C sẽ dùng là objectAtIndex 29 : Khai báo dạng "..." 30 : Đây là Dictionary , và kiểu key và value là String và String

Phù , dài quá nhỉ , phần cuối :

/For/ for(stockCode, name ) in companies { //31 print("(stockCode) = (name)"); }

/USE Key-Value/ for stockCode in companies.keys{ //32 println("Stock code = (stockCode)" ); } for name in companies.values { //33 println("Name = (name)" ); }

companies["TWTR"] = "Twitter Inc" //34

/* CALL Class */ var aItem = Recipes() //35

/Use dot to change value/ aItem.aName = "123"; //36 aItem.duration = 50; //37 aItem.ingredent = ["acvgf"]; //37

/call Class and method in Class/ var todoManager = TodoManager(); let numberOfToDoItem = todoManager.printMessage("My Name here"); //38 println(numberOfToDoItem);

//39 /Switch/ /Object-C/ /* switch recipeName12 { case "Egg Benedict": println("Let's cook!") case "Mushroom Risotto": println("Hmm... let me think about it") case "Hamburger": println("Love it!") default: println("Anything else") } */

var speed = 50 //40 switch speed { case 0: println("stop") case 0..40: println("slow") case 40...70: println("Normal") case 71..<101: println("Fast") default: println("NOOO") } }

31 : Đây là hàm for nhé , khác khác tí , nhưng nhìn vào rất dễ hiểu 32 : Cũng là hàm for , nhưng ở đây duyệt toàn bộ Key 33 : Cũng là hàm for , nhưng ở đây duyệt toàn bộ Value 34 : Tham chiếu giá trị từ key và value , 35 : Khai báo class , tức là tạo 1 biến mới của class 36,37 : Gán giá trị cho các biến ở trong class , đè lên hàm khởi tạo . 38 : Gọi một phương thức ở trong Class 39 : Đây là khai báo switch ở trong object-C 40 : Đây là khai báo Switch ở trong Swift Chú ý với phần "40" ở đây mình dùng 2 loại khác nhau là : ".." và "..." , với 0..40 , có nghĩa là không bao gồm số 40 , và 40...70 , có nghĩa là gồm cả 40 và 70 ,

Phù, hơi dài , nhưng mình sẽ upload source lên , mọi người xem , sẽ thấy nó cũng không khác Object-C nhiều ,