CHƯƠNG 1: CƠ SỞ LÝ THUYẾT
1.3 Nền tảng kĩ thuật
1.3.1 Mô hình MVC (Model - View - Controller)
Hình 1.1: Mô hình MVC Giới thiệu mô hình MVC:
• MVC là chữ viết tắt của Model – View – Controller, đây là bộ ba chứa các lớp được giới thiệu lần đầu tiên bởi Krasner và Pope vào năm 1988, được sử dụng để xây dựng giao diện người dùng trong Smalltalk-80.
• MVC bao gồm 3 loại đối tượng. Model là đối tượng ứng dụng, View là đối tượng biểu diễn màn hình và đối tượng Controller định nghĩa các phản hồi từ khi người sử dụng tương tác với giao diện người sử dụng.
Mô hinh MVC tách các thành phần này ra để tăng tính linh hoạt và dễ sử dụng.
• MVC tách các View và Model bằng cách thiết lập một giao thức đăng ký/thông báo giữa chúng. View phải đảm bảo sự hiện diện của nó phản ánh đúng trạng thái của Model. Khi nào có sự thay đổi dữ liệu từ Model, Model sẽ thông báo cho View đang sử dụng nó (nó phụ thuộc vào).
• MVC cũng cho phép chúng ta thay đổi cách một View phản hồi dựa trên tương tác của người dùng mà không làm thay đổi cách trình bày trực quan của nó. MVC gói gọn cơ chế phản hồi trong một đối tượng Controller.
• Chính những tính năng quan trọng đó làm cho mô hình MVC ngày càng được phổ biến rộng rãi, đặc biệt sử dụng nhiều trong quá trình xây dựng các ứng dụng web, ứng dụng di động vì nó phân tách các chức năng một cỏch rừ ràng, thuận tiện cho quỏ trỡnh phỏt triển và bảo trỡ.
Kiến trúc mô hình MVC: Mô hình MVC là một kiến trúc phần mềm cho ứng dụng di động, web được sử dụng rộng rãi hiện nay. Mô hình MVC tách biệt phần xử lý dữ liệu ra khỏi phần giao diện. Nó bao gồm ba thành phần chính:
• Model: Có nhiệm vụ thao tác với cơ sở dữ liệu, nghĩa là nó sẽ chứa tất cả các hàm, các phương thức truy vấn trực tiếp với dữ liệu và controller sẽ thông qua các hàm, phương thức đó để lấy dữ liệu rồi gửi qua View
• View: Có nhiệm vụ hiển thị nội dung sang các đoạn mã dạng xml và đặc biệt là phải nhận được tương tác từ người dùng. Có thể hiểu nôm na ở đây người ta còn gọi là thành phần giao diện.
• Controller: Chính là bộ não của mô hình MVC, đóng vài trò là trung gian giữa Model và View. Có nhiệm vụ tiếp nhận yêu cầu từ người dùng sau đó xử lý các yêu cầu hoặc tìm cách xử lí lấy dữ liệu từ Model tương ứng và gửi dữ liệu qua View tương ứng rồi trả kết quả về cho người dùng. [11]
1.3.2 Giới thiệu về iOS và Xcode
• Giới thiệu về iOS
iOS là một hệ điều hành điện thoại di động được phát triển bởi Apple và phân phối độc quyền cho phần cứng của Apple. Ban đầu, iOS được công bố năm 2007 cho iPhone, sau đó được mở rộng để hỗ trợ các thiết bị khác của Apple như iPod Touch (tháng 9 năm 2007), iPad (tháng 1 năm 2010), iPad Mini (tháng 11 năm 2012) và thế hệ thứ hai của Apple TV trở đi (tháng 9 năm 2010).
Giao diện người dùng của iOS được dựa trên khái niệm về thao tác trực tiếp bằng tay, sử dụng các cử chỉ đa cảm ứng. Các yếu tố giao diện điều khiển bao gồm các thanh trượt, công tắc, và các nút. Tương tác với các hệ điều hành bao gồm các cử chỉ như chạm, trượt, vuốt.
Một đặc trưng của hệ điều hành iOS đó là Apple hạn chế việc cài ứng dụng từ bên thứ ba (ngoài AppStore) vào thiết bị, việc này có thể khiến iPhone của bạn mắc phải một số lỗi và không còn mượt mà nữa.
• Giới thiệu về Xcode
XCode là bộ phát triển phần mềm tích hợp được Apple xây dựng để các lập trình viên có thể phát triển phần mềm chạy trên hệ điều hành Mac OS và iOS. Phiên bản đầu tiên của XCode được phát hành vào năm 2003 và phiên bản mới nhất hiện tại là 8.3 được phát hành vào tháng 3 năm 2017. XCode được phát hành miễn phí cho người dùng Macbook tải xuống thông qua chợ ứng dụng App Store.
1.3.3 Giới thiệu về ngôn ngữ Swift
Swift là một ngôn ngữ lập trình hướng đối tượng (mọi thứ trong Swift đều là hướng đối tượng, kể cả những giá trị như số 1, 2, 3… cũng là đối tượng).
Swift được Apple giới thiệu tại hội nghị WWDC 2014, ngôn ngữ này dùng để phát triển ứng dụng trên iOS và Mac OS X. Trước đây Objective-C là ngôn ngữ
truyền thống của Apple, việc ra đời Swift có thể giúp các lập trình viên dễ dàng tiếp cận hơn, đặc biệt nó là mã nguồn mở.
Swift mang tất cả các điểm mạnh của cả 2 loại ngôn ngữ kịch bản và biên dịch truyền thống. Trong một số thử nghiệm sức mạnh phần cứng (Bendmark), Swift cho hiệu năng nhanh hơn Python và thậm chí là nhanh hơn cả Objective- C. Trên bộ phần mềm lập trình (IDE) Xcode của Apple, mã nguồn Swift sẽ được đồ thị hóa dựa trên tính năng “playground” theo thời gian thực. Điều này có nghĩa rằng lập trình viên có thể chạy và kiểm tra mã nguồn Swift một cách dễ dàng không kém gì ngôn ngữ Python cả.
1.3.4 Giới thiệu về Core Data
Core Data là là một môi trường (framework) cho phép chúng ta tác động vào cơ sở dữ liệu (database) theo cách hướng đối tượng mà không cần quan tâm đến các câu lệnh SQL. Core Data không sử dụng các câu truy vấn của SQL để gọi dữ liệu của các trường mà gọi từng đối tượng với các thông tin của đối tượng đó. Core Data làm việc trên Context như một ảnh chụp của cơ sở dữ liệu, chúng ta truy vấn xử lý trên Context cuối cùng chúng ta mới lưu xuống cơ sở dữ liệu xuống, sqlite làm việc trực tiếp với cơ sở dữ liệu thay đổi trên cơ sở dữ liệu, như thế sử dụng Core Data chúng ta có thể thay đổi dữ liệu tuỳ ý nếu chưa cho phép lưu thì không ảnh hưởng đến dữ liệu. Ngoài ra Core Data còn được Xcode hỗ trợ cho cả hệ quản trị cơ sở dữ liệu dành riêng để thiết kế.
Core Data lưu trữ dữ liệu qua các phiên làm việc, khi ứng dụng kết thúc dữ liệu vẫn tồn tại. Core Data lưu dữ liệu dưới tầng vật lý có 4 dạng: Binary, Xml, Sqlite, InMemory. Khi tải dữ liệu lên thông qua Core Data sẽ chuyển tất cả dữ liệu thành đối tượng để chúng ta truy vấn. Core Data là hệ quản trị ORM (Object-Relational Mapping) ánh xạ dữ liệu quan hệ từ phía lưu trữ vật lý lên thành các đối tượng phía trên để chúng ta làm việc.
1.4 Tổng quan về bài thi tiếng anh TOEIC