Phát triển server-side bằng Swift, tại sao không ?
Nếu như nhiều anh em lập trình iOS thậm chí còn chưa thuần thục với ngôn ngữ Swift, thì thời gian vừa rồi Apple lại tiếp tục làm một điều gần như ngược hẳn với phong cách của hãng. Họ công bố mã nguồn của Swift trở thành mã nguồn mở, và cho phép các lập trình viên thoải mái sử dụng. Với động thái ...
Nếu như nhiều anh em lập trình iOS thậm chí còn chưa thuần thục với ngôn ngữ Swift, thì thời gian vừa rồi Apple lại tiếp tục làm một điều gần như ngược hẳn với phong cách của hãng. Họ công bố mã nguồn của Swift trở thành mã nguồn mở, và cho phép các lập trình viên thoải mái sử dụng.
Với động thái này, Apple tham vọng đưa Swift trở thành một ngôn ngữ được sử dụng rộng rãi trong nghành công nghệ phần mềm. Không chỉ là ngôn ngữ để lập trình iOS và Mac Application,cộng đồng Opensource nhanh chóng phát triển các framework dựa trên mã nguồn của Swift. Sử dụng Swift để lập trình server side , web application giờ không còn là một điều xa vời.
Là một lập trình viên iOS, tôi cũng rất quan tâm đến vấn đề này. Và ngay ít lâu sau đó, một dự án Server-side bằng Swift đã được phát triển trên cộng đồng github. Dự án có tên là Perfect. Với việc tiếp cận Swift từ rất sớm, nhận ra các ưu điểm hiện đại của Swift, tôi kì vọng đây sẽ là một trong những công nghệ giúp mình phát triển các Service trong tương lai.
Nếu bạn cũng quan tâm, xin mời tham khảo qua trang web của dự án ở địa chỉ : https://www.perfect.org
Ra mắt cùng với bộ mã nguồn, Apple cũng đưa ra các công cụ giúp Swift có thể được chạy trên các platform khác nhau ngoài Mac OS, bao gồm window và Linux. Cho đến thời điểm này, Perfect đã có thể được sử dụng trên Linux và Mac OS.
Các lập trình viên đã có thể sử dụng Perfect để phát triển các Web Application, REST Service
Bộ công cụ Perfect hiện tại bao gồm các thành phần sau:
- PerfectLib : Framework và các công cụ cho client và server
- Perfect Server : backend hỗ trợ HTTP, FastCGI
- Connectors : MySQL, PostgreSQL , MongoDB
- Các Example từ nhà phát triển.
T**hử một chút ? **
Sau khi clone Pefect từ github về, giải nén, bạn sẽ có ngay thư mục Examples. Nếu bạn đã có kinh nghiệm với Xcode, file Examples.xcworkspace khá quen thuộc ngay lập tức đập vào mắt bạn.
Trong Examfples này, chúng ta có đầy đủ iOS mobile app và Server HTTP cho phép khởi động trực tiếp từ Xcode.
Mặc định server sẽ sử dụng localhost:8181. Ta có thể dễ dàng chỉnh sửa port trên HTTP app này.
Thử ngó qua một chút trong samples về URL Routing.
public func PerfectServerModuleInit() { // Install the built-in routing handler. // Using this system is optional and you could install your own system if desired. Routing.Handler.registerGlobally() Routing.Routes["GET", ["/", "index.html"] ] = { (_:WebResponse) in return IndexHandler() } Routing.Routes["/foo/*/baz"] = { _ in return EchoHandler() } Routing.Routes["/foo/bar/baz"] = { _ in return EchoHandler() } Routing.Routes["GET", "/user/{id}/baz"] = { _ in return Echo2Handler() } Routing.Routes["POST", "/user/{id}/baz"] = { _ in return Echo3Handler() } // Check the console to see the logical structure of what was installed. print("(Routing.Routes.description)") }
Đoạn code phía trên cho phép ta add các điều hướng cho web application
class EchoHandler: RequestHandler { func handleRequest(request: WebRequest, response: WebResponse) { response.appendBodyString("Echo handler: You accessed path (request.requestURI()) with variables (request.urlVariables)") response.requestCompletedCallback() }
Còn đây là xử lí điều hướng tới các địa chỉ mong muốn.
Cú pháp với Swift khá là quen thuộc với tôi, nên tôi nghĩ mình sẽ không mất quá nhiều thời gian để làm quen với nó.
Perfect thậm chí còn hỗ trợ sử dụng Apache, có lẽ đã rất quen thuộc với các lập trình viên Web.
Perfect có lẽ là dự án đầu tiên, nhưng nếu bạn chịu khó theo dõi các dự án trending của Github, thì một loạt các dự án khác cũng đang được start nhằm mục đích xây dựng các web framework bằng Swift.
Ví dụ:
Vapor : https://github.com/qutheory/vapor Swifton : https://github.com/necolt/Swifton
Và thậm chí cả một ông lớn trong lĩnh vực Enterprise như IBM cũng rục rịch hộ trợ Swift theo như nguồn tin mới đây của họ : http://www-03.ibm.com/press/us/en/pressrelease/49157.wss
Theo đó, IBM đã đưa Swift đến cận với nền tảng đám mây. Theo đó, ở các bước tiếp theo, Swift runtime, Swift source sẽ được hãng hộ trợ. Các lập trình viên theo đó có thể sử dụng Swift như một ngôn ngữ hiện đại, mạnh mẽ để xây dựng các ứng dụng phục vụ trong lĩnh vực Enterprise, đẩy mạnh quá trình phát triển các ứng dụng di động...
Đối với Framgia, mũi nhọn hiện tại về công nghệ có lẽ vẫn đang là Ruby On Rails, thì một tin vui là hiện tại đã có cách thức để deploy các dịch vụ viết bằng Swift lên Heroku ( quen với các bạn RoR phải không ạ ? ) Mình hông bít RoR nên chỉ đọc tin chứ không nghịch vào.
Với đích đến trong tương lai là trở thành một Full Stack Developer, thực sự mình rất hào hức với bước phát triển này của Swift. Hi vọng trong tương lai mình có thể phát triển cả client và server side cho các ứng dụng mobile của mình mà chỉ cần sử dụng Swift.
Cảm ơn các bạn đã theo dõi.