CHƯƠNG 1. Ngôn ngữ sử dụng 1. Swift [1] Swift là một ngôn ngữ lập trình hướng đối tượng dành cho việc phát triển iOS và macOS, watchOS, tvOS được giới thiệu bởi Apple tại hội nghị WWDC 2014. Swift được mong đợi sẽ tồn tại song song cùng Objective- C, ngôn ngữ lập trình hiện tại dành cho các hệ điều hành của Apple.
Swift được thiết kế để hoạt động với các framework Cocoa và Cocoa Touch của Apple và phần lớn mã Objective-C. Nó được biên dịch với trình biên dịch LLVM và đã được đưa vào Xcode kể từ phiên bản 6, phát hành năm 2014. Trên các nền tảng của Apple, nó sử dụng thư viện runtime Objective-C cho phép mã C, Objective-C, C++ và Swift cùng chạy trong một chương trình. Ưu điểm: – Khả năng phát triển ứng dụng di động nhanh và dễ dàng: Các lập trình viên không phải mất công chạy các chương trình compiler và các chương trình test một cách thường xuyên nữa, mà thay vào đó tập trung vào các phần tích hợp với mức độ khó hơn.
Điều này cũng giúp tiết kiệm sức mạnh và sự hao mòn của phần cứng cho các nhà phát triển. Ngoài ra, Swift là một trong những ngôn ngữ lập trình mang lại nhiều tính năng quan trọng như: không xảy ra lỗi array-out- of-bound, không có biến xác định, quản lý bộ nhớ theo phương thức tự động,. từ đó tiết kiệm được tối đa thời gian hơn để hoàn thành một dự án. – Code ngắn gọn, dễ đọc, dễ hiểu: Điều này giúp cho các lập trình viên tiết kiệm rất nhiều thời gian hoàn thành dự án, cũng như tăng hiệu quá trong quá trình bảo trì và fix các lỗi bug trong tương lai.
Swift kế thừa và phát huy tất cả các sức mạnh của Objective-C để lại, nên các nhà lập trình sẽ có một môi trường runtime quen thuộc tuyệt vời, dễ dàng quản lý và phát triển. – Tốc độ thực thi nhanh: Theo apple, Swift nhanh gấp 8 lần python. Không những nhanh, mà Swift còn rất mạnh mẽ, giúp cho các nhà lập trình có thể viết được những đoạn mã nâng cao, phức tạp hơn như: generics, closures, tuples, multiple returns, iterators, các mẫu lập trình hàm có sẵn và nhiều hơn thế nữa. – Swift có thể dùng cho tất cả các hệ điều hành của Apple phát hành như macOS, iOS, tvOS, watchOS,.
Nhược điểm: – Swift được phát triển đặc biệt cho các sản phẩm của Apple, do đó, nó không tương thích tự nhiên với hệ điều hành hoặc thiết bị khác – Cộng đồng sử dụng Swift không lớn, có thể làm giảm nguồn thông tin, tài liệu và hỗ trợ từ cộng đồng so với các ngôn ngữ phổ biến hơn 8 Thư viện ĐH Thăng Long – Swift đã trải qua nhiều thay đổi, làm tăng khả năng phải thay đổi mã nguồn khi nâng cấp lên các phiên bản mới. Python [2] Python là một ngôn ngữ lập trình được sử dụng rộng rãi trong các ứng dụng web, phát triển phần mềm, khoa học dữ liệu và máy học. Các nhà phát triển sử dụng Python vì nó hiệu quả, dễ học và có thể chạy trên nhiều nền tảng khác nhau. Phần mềm Python được tải xuống miễn phí, tích hợp tốt với tất cả các loại hệ thống và tăng tốc độ phát triển.
Python hữu ích trong việc lập trình mã phía máy chủ bởi vì ngôn ngữ này cung cấp nhiều thư viện bao gồm mã viết sẵn cho các hàm backend phức tạp. Các nhà phát triển cũng sử dụng một loạt các khung Python cung cấp tất cả những công cụ cần thiết để xây dựng ứng dụng web một cách nhanh chóng và dễ dàng hơn. Ưu điểm: – Cú pháp cơ bản giống tiếng Anh. – Cải thiện năng suất làm việc vì các nhà phát triển sử dụng ít dòng mã hơn để viết một chương trình Python.
– Thư viện tiêu chuẩn lớn, chứa nhiều dòng mã có thể tái sử dụng cho hầu hết mọi tác vụ. – Cộng đồng Python tích cực hoạt động bao gồm hàng triệu nhà phát triển nhiệt tình hỗ trợ trên toàn thế giới. Nếu gặp phải vấn đề, bạn sẽ có thể nhận được sự hỗ trợ nhanh chóng từ cộng đồng. – Có rất nhiều tài nguyên hữu ích trên internet – Python có thể được sử dụng trên nhiều hệ điều hành máy tính khác nhau như Windows, macOS, Linux và Unix.
Nhược điểm: – Tốc độ thực thi chậm – Tiêu thụ bộ nhớ lớn – Không an toàn cao và có nguy cơ bảo mật, có một số hạn chế khi sử dụng Python để truy cập cơ sở dữ liệu 1. Các framework sử dụng 1. UIKit [3] UIKit framework cung cấp một số class để tạo các tác vụ chạm (touch- based) cho giao diện người dùng, tất cả các ứng dụng iOS đều xây dựng dựa trên UIKit, nhà phát triển không thể xây dựng ứng dụng mà không sử dụng framework này. UIKit cung cấp cơ sở hạ tầng cho việc vẽ các giao diện trên màn hình, điều khiển các sự kiện, tạo ra các thành phần giao diện của 9 ứng dụng.
UIKit cũng tổ chức các ứng dụng phức tạp bằng việc quản lý nội dung ứng dụng để hiển thị lên màn hình. UIDynamics là 1 phần quan trọng trong UIKit được apple tích hợp từ năm 2007 cùng với sự xuất hiện của iOS 7. Bằng cách sử dụng UIKit Dynamics, lập trình viên có thể tạo ra các view với những tương tác vật lý như trọng lực, móc nối, va chạm, nảy lên(sau va chạm),. giữa các đối tượng với các thành phần chính: UIDynamicItem protocol, Dynamic behaviors, Dynamic animator.
Được phát triển bởi Facebook AI Research (FAIR), PyTorch đã nhanh chóng trở thành một trong những thư viện phổ biến nhất trong cộng đồng học máy và trí tuệ nhân tạo. Các nhà phát triển sử dụng framework này cho những ứng dụng như robot và thị giác máy tính, tìm kiếm thông tin từ hình ảnh và video. PyTorch đã trở thành một trong những công cụ quan trọng và ưa chuộng cho việc phát triển và thử nghiệm các mô hình học máy và học sâu. Điều này là nhờ vào tính linh hoạt, hiệu suất và cộng đồng mạnh mẽ xung quanh nó.
Các đặc điểm và tính năng chính của PyTorch bao gồm: – Dynamic Computational Graph: Một đặc điểm độc đáo của PyTorch so với các thư viện khác là việc sử dụng đồ thị tính toán động (dynamic computational graph). Điều này cho phép bạn định nghĩa và thay đổi cấu trúc của mô hình trong quá trình chạy, điều này rất hữu ích cho việc debug và xây dựng mô hình linh hoạt hơn. – Autograd: PyTorch cung cấp một hệ thống tự động tính đạo hàm (autograd), giúp tính toán gradient cho việc lan truyền ngược (backpropagation) dễ dàng. Điều này rất hữu ích trong quá trình đào tạo mô hình học sâu.
– Tích Hợp GPU: PyTorch dễ dàng tích hợp với GPU để tăng tốc quá trình tính toán. Điều này đặc biệt quan trọng khi làm việc với mô hình học sâu có tính toán phức tạp. – Dynamic Batching và Data Loading: PyTorch cho phép tạo các batch có kích thước khác nhau và tự động quản lý việc nạp dữ liệu (data loading). Điều này giúp tối ưu việc sử dụng bộ nhớ và tăng tốc quá trình đào tạo.
– Tích Hợp Numpy: PyTorch tích hợp tốt với thư viện Numpy, cho phép bạn làm việc dễ dàng với dữ liệu số và tính toán. – Module API: PyTorch cung cấp giao diện lập trình module cho việc xây dựng và quản lý mô hình. Điều này giúp tạo ra mã dễ đọc, dễ hiểu và tái sử dụng. – Rich Ecosystem: PyTorch có một hệ sinh thái phong phú với nhiều thư viện hỗ trợ như torchvision (xử lý ảnh), torchaudio (xử lý âm thanh), transformers (xử lý ngôn ngữ tự nhiên), và nhiều thư viện khác.
10 Thư viện ĐH Thăng Long – Active Community: PyTorch có một cộng đồng đông đảo và năng động, cung cấp nhiều tài liệu, ví dụ và hỗ trợ trực tuyến. Flask [5] Flask là một web frameworks, nó thuộc loại micro-framework được xây dựng bằng ngôn ngữ lập trình Python. Flask cho phép bạn xây dựng các ứng dụng web từ đơn giản tới phức tạp. Nó có thể xây dựng các API nhỏ, ứng dụng web chẳng hạn như các trang web, blog, trang wiki hoặc một website dựa theo thời gian hay thậm chí là một trang web thương mại.
Flask được thiết kế để đơn giản và linh hoạt, giúp người phát triển xây dựng các ứng dụng web một cách nhanh chóng và dễ dàng. Một số điểm nổi bật và đặc điểm chính của Flask: – Micro Framework: Flask được gọi là "micro" framework vì nó cung cấp một số chức năng cơ bản để xây dựng ứng dụng web mà không có nhiều thành phần phức tạp và tích hợp sẵn. Điều này giúp người phát triển có sự linh hoạt để lựa chọn các thành phần khác để sử dụng theo ý muốn. – Cấu trúc Đơn Giản: Flask không yêu cầu một cấu trúc dự án phức tạp.
Bạn có thể tổ chức mã nguồn của mình theo cách bạn muốn, giúp dễ dàng hiểu và quản lý mã nguồn. – Routing: Flask cho phép bạn định nghĩa các đường dẫn (routes) và liên kết chúng với các hàm xử lý để xác định cách ứng dụng xử lý các yêu cầu từ người dùng. – Templates: Flask hỗ trợ sử dụng các template engine như Jinja2 để tạo giao diện người dùng động và tái sử dụng các thành phần giao diện. – HTTP Methods: Flask hỗ trợ các phương thức HTTP như GET, POST, PUT, DELETE để xử lý các loại yêu cầu khác nhau.
– Extensions: Flask có cộng đồng phong phú với nhiều extension hữu ích giúp bạn dễ dàng tích hợp các tính năng như đăng nhập, xác thực, gửi email, và nhiều thứ khác vào ứng dụng của mình. – Lightweight: Flask có kích thước nhẹ và yêu cầu ít dependencies, giúp ứng dụng chạy nhanh và hiệu quả. – RESTful API: Flask rất thích hợp để xây dựng các dịch vụ API với cấu trúc dự án đơn giản và hỗ trợ tốt cho việc xử lý yêu cầu API từ người dùng. Tích hợp các nền tảng khác 1.
MediaWiki API [6] Wikipedia là một bách khoa toàn thư tự do, là kết quả của sự cộng tác của chính những người đọc từ khắp nơi trên thế giới. Tất cả mọi người đều có thể sửa đổi ở các trang wiki, ngoại trừ các cá nhân bị tước quyền sửa đổi và những trang bị khóa. 11 MediaWiki API là một API được cung cấp bởi phần mềm MediaWiki, một hệ thống quản lý nội dung được sử dụng rộng rãi để xây dựng và quản lý các trang web dựa trên wiki, trong đó Wikipedia là một ví dụ nổi bật. API này cho phép người dùng tương tác và truy cập dữ liệu trên các trang web dựa trên MediaWiki thông qua các yêu cầu HTTP, đồng thời cung cấp các phương thức để truy vấn và chỉnh sửa dữ liệu trên các trang web này.