Tìm hiểu về framework ngôn ngữ lập trình độc lập trên mobile
ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Nguyễn Văn Điềm TÌM HIỂU VỀ FRAMEWORK NGÔN NGỮ LẬP TRÌNH ĐỘC LẬP TRÊN MOBILE KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC CHÍNH QUY Ngành: Công nghệ thông tin ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Nguyễn Văn Điềm TÌM HIỂU VỀ FRAMEWORK NGÔN NGỮ LẬP TRÌNH ĐỘC LẬP TRÊN MOBILE ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành: Công nghệ thông tin Cán bộ hướng dẫn: TS. Nguyễn Trí Thành (ký tên) TÓM TẮT Tóm tắt: Trong thời kì mà công nghệ số phát triển với tốc độ chóng mặt như hiện nay, điện thoại thông minh hay còn gọi là Smartphone thực sự đã mang đến một cuốc cách mạng cho các thiết bị di động. Sự tiến bộ vượt bậc của công nghệ đã làm thay đổi hoàn toàn thói quen cũng như hành vi của con người. Thiết bị di động đã đang và sẽ trở thành phương tiện giao tiếp và làm việc chủ yếu của cong người. Và phần cốt lõi để tạo ra sức hấp dẫn từ chiếc Smartphone chính là hệ điều hành và các ứng dụng mà chúng đang chạy. Hiện tại, các ứng dụng dành cho thiết bị di động đang bị phân mảnh rất lớn do các hãng công nghệ lớn cạnh tranh, ganh đua nhau tạo ra các nền tảng hệ điều hành di động của riêng mình: IOS, Android, Window Phone, BlackBerry, webOS,… Vì vậy, các framework ngôn ngữ lập trình lần lượt ra đời với mục đích “viết một lần, có thể chạy khắp nơi – tương thích với hầu hết các nền tảng hệ điều hành di động”, và Phonegap chính là một framework phổ biến nhất đáp ứng được mục đích đó tính đến thời điểm hiện tại. Trong khóa luận này, tôi sẽ tập trung chủ yếu vào việc tìm hiểu Phonegap, và xây dựng một chương trình phần mềm ứng dụng sử dụng Phonegap có thể chạy trên nhiều nền tảng Smartphone khác nhau. Từ khóa: Smartphone, Phonegap, framework, tương thích. 3 Lời cảm ơn Lời đầu tiên, tôi xin bày tỏ lời cảm ơn và lòng biết ơn sâu sắc nhất tới TS.Nguyễn Trí Thành đã tận tình hướng dẫn và chỉ bảo tôi trong suốt quá trình thực hiện khóa luận này. Tôi xin chân thành cảm ơn các thầy, cô trong trường đại học Công Nghệ - Đại học Quốc gia Hà Nội đã tạo mọi điều kiện thuận lợi cho tôi học tập, rèn luyện và ghiên cứu. Tôi cũng xin gửi lời cảm ơn đến các anh chị, các bạn cùng thực hiện khóa luận đã hỗ trợ tôi rất nhiều về kiến thức chuyên môn trong quá trình thực hiện khóa luận. Tôi xin cảm ơn các bạn trong lớp K55CB đã ủng hộ, khích lệ, giúp đỡ và luôn sát cánh bên tôi trong suốt quá trình học tập, rèn luyện tại trường. Và cuối cùng, tôi xin được gửi lời cảm ơn tới gia đình, người thân và bạn bè - những người đã luôn ở bên tôi những lúc khó khăn nhất, luôn động viên và khuyến khích tôi trong cuộc sống cũng như trong học tập và công việc. Tôi xin chân thành cảm ơn! 4 Lời cam đoan Tôi xin cam đoan các kết quả đạt trong khóa luận này là do tôi thực hiện dưới sự hướng dẫn của TS. Nguyễn Trí Thành. Tất cả các tài liệu tham khảo từ những nghiên cứu liên quan đều được nêu nguồn gốc một cách rõ ràng từ danh mục tài liệu tham khảo trong khóa luận. Trong khóa luận, không có việc sao chép tài liệu, công trình nghiên cứu của người khác mà không chỉ rõ về mặt tài liệu tham khảo. 5 Mục lục Danh sách hình vẽ Danh sách bảng 6 Chương 1 MỞ ĐẦU Điện thoại thông minh hay còn gọi là smartphone thực sự đã mang đến một cuộc cách mạng cho các thiết bị di động, trong thời kì mà công nghệ số phát triển với tốc độ chóng mặt như hiện nay. Nhu cầu sử dụng thiết bị di động đã trở nên rất phổ biến không chỉ ở Việt Nam mà trên toàn thế giới. Sự tiến bộ vượt bậc của công nghệ đã làm thay đổi hoàn toàn thói quen cũng như hành vi của con người. Trong tương lai, thiết bị di động sẽ trở thành phương tiện giao tiếp và làm việc chủ yếu của con người. Và phần cốt lõi để tạo ra sức hấp dẫn từ chiếc smartphone chính là hệ điều hành và các ứng dụng mà chúng đang chạy. Hiện tại, các ứng dụng dành cho thiết bị di động đang bị phân mảnh rất lớn do các hãng công nghệ lớn cạnh tranh, ganh đua nhau tạo ra các nền tảng hệ điều hành di động của riêng mình. Do đó có nhiều framework ngôn ngữ lập trình ra đời, với mục đích “viết một lần, biên dịch qua cloud và chạy khắp nơi – tương thích với hầu hết các nền tảng hệ điều hành di động hiện tại”, cũng có nghĩa là những framework này là những ngôn ngữ lập trình độc lập trên mobile. Phonegap chính là một trong những framework phổ biến nhất đáp ứng được mục đích đó. Nó là công cụ phát triển ứng dụng cho cả iOS, Android, Window Phone, BlackBerry, webOS, Bada, Symbian cùng lúc…Việc ra đời của các framework này nói chung và của Phonegap nói riêng đã nhận được sự đóng góp của rất nhiều tổ chức và cộng đồng công nghệ lớn. Đối với các lập trình viên trong việc tạo ra ứng dụng có thể chạy trên đa nền tảng di động thì cần phải nắm bắt và hiểu rõ về các công nghệ bên trong mỗi nền tảng. 7 Nhưng giờ đây, với sự hỗ trợ đắc lực của Phonegap, các lập trình viên chỉ cần nắm bắt và chuyên sau về một công nghệ duy nhất, đó là công nghệ nền Web(bao gồm HTML5, Javascript, CSS3, Jquery Mobile, ). Nội dung đề tài: “Tìm hiểu framework ngôn ngữ lập trình độc lập trên mobile” ngoài việc tìm hiểu tổng quan về Phonegap, các công nghệ nền Web liên quan, còn xây dựng một chương trình phần mềm ứng dụng sử dụng Phonegap – viết một lần, biên dịch qua cloud và có thể chạy trên các nền tảng di động khác nhau. Nội dung Khóa luận này gồm 5 chương: Chương 1 – Mở đầu: Nêu thực trạng, giới thiệu về công việc và nêu những nội dung sẽ được trình bày. Chương 2 – Cơ sở lý thuyết: Giới thiệu về Phonegap và những công nghệ, cơ sở lý thuyết được áp dụng để xây dựng chương trình. Chương 3 – Xây dựng chương trình: phân tích thiết kế và xây dựng, kiểm thử chương trình phần mềm. Chương 4 – Kết quả, đánh giá chương trình phần mềm. Chương 5 – Kết luận: Tóm lược những kết quả của Khóa luận, những đạt được và hạn chế, triển vọng và hướng phát triển trong tương lai. 8 Chương 2 CƠ SỞ LÝ THUYẾT 2.1. HTML5 và CSS3 2.1.1. HTML và CSS Trong những ngày sơ khai của Internet, các công cụ cho việc thiết kế một Web site chỉ là HTML và một số ít các công cụ khác. Nh ưng việc thiết kế một trang Web chỉ với HTML thật tẻ nhạt và nhiều hạn chế. Đó là lí do chúng ta cần đến CSS. HTML5 là phiên bản thứ 5, mới nhất của chuẩn HTML, ngôn ngữ cấu trúc và trình bày nội dung cho World Wide Web và sẽ là công nghệ cốt lõi của Internet trong tương lai không xa. HTML5 có nhiều tính năng mới hỗ trợ việc đưa vào và quản lý các nội dung đa phương tiện và đồ họa, không còn phụ thuộc vào các plugin và API. Cascading Style Sheets, hay còn gọi tắt là CSS, là những file hỗ trợ cho trình duyệt Web trong việc hiển thị một trang HTML. Về cơ bản, các trang HTML như bộ xương – khuôn khổ cơ bản của một trang web, trong khi các file CSS sẽ cụ thể hóa các thành phần của một trang nên được hiển thị như thế nào. CSS cho phép ta kiểm soát phông chữ, màu chữ, kiểu nền…, của một trang HTML. CSS đã giúp cho việc thay đổi phong cách của một trang Web đơn giản hơn và đỡ tốn thời gian hơn, bạn có thể thực hiện sự thay đổi trên một mục nào đó và sau đó apply sự thay đổi này trên toàn bộ trang Web thay vì phải thực hiện trên từng mục riêng lẻ như trước đây. CSS3 là phiên bản mới nhất của CSS, được chia thành các module để có thể phát triển và đặc tả độc lập. CSS3 đưa vào nhiều thuộc tính và bộ chọn (selector) mới hỗ trợ 9 xây dựng các trang web với nội dung phong phú, hiêu ứng, giao diện người dùng tốt hơn và vẫn đảm bảo yêu cầu mã tương đối nhẹ. 2.1.2. Một số đặc điểm nổi bật của HTML5 HTML5 mang lại cho người dùng trải nghiệm lướt Web hoàn toàn mới, nhanh hơn, ổn định hơn và bảo mật hơn. HTML5 sẽ giúp các nội dung trên Web hoạt động tốt hơn mà không cần phụ thuộc vào bất kì một ứng dụng phụ trợ nào khác. Bên cạnh đó, HTML5 có khả năng hỗ trợ API (Application Programming Interface) và DOM (Document Object Model) sẽ cho phép dễ dàng mở rộng, giúp các nhà phát triển tự do sang tạo trong việc tạo ra các ứng dụng thân thiện và hữu ích hơn. Hơn nữa, với HTML5 mọi thiết bị từ máy tính cá nhân đến các thiết bị di động sẽ có thể dễ dàng tiếp cận nội dung, chỉ cần duy nhất một điều kiện là trình duyệt đang dùng phải hỗ trợ HTML5. Và hiện nay, hầu hết các trình duyệt phổ biến đều hỗ trợ mạnh mẽ HTML5, từ trình duyệt web: Firefox, Chrome, Opera, Internet Explorer đến các trình duyệt trên iOS, Android,… Với HTML5, các nhà phát triển chỉ cần xây dựng ứng dụng 1 lần, nó có thể hoạt động tốt trên tất cả các thiết bị, không như Flash hoặc Silverlight đòi hỏi phải cài đặt plugin để có thể hiển thị nội dung. Sau đây là một số tính năng nổi trội của HTML5 mà trong quá trình tìm hiểu tôi đã đúc kết được. 2.1.2.1. Hỗ trợ thay thế Flash Flash lâu nay vẫn chiếm phần lớn nội dung trên Web nhưng hiện nay nó đã và đang dần bị thay thế bởi HTML5. Tồn tại quãng thời gian khá dài, Flash có những hạn chế rất lớn mà các giới phát triển đã chỉ ra được, đó là sự bất ổn định, làm thiết bị hoạt động nóng hơn và hao pin 10 [...]... trình trên nền Android Emulator Để chương trình có thể chạy tăng tốc trên máy ảo, chúng ta có thể cài đặt máy ảo Genymotion – eclipse plugin Và chương trình phần mềm ứng dụng của ta có thể chạy trên nhiều loại máy ảo khác nhau, và tốc độ chạy được cải thiện rõ rệt Tìm hiểu thêm về cách cài đặt Genymotion cho eclipse tại page: https://cloud.genymotion.com/page/doc/ Như vậy tôi đã giới thiệu tổng quan về. .. từng nền tảng, chạy được trên nhiều loại smartphone khác nhau 21 2.2.3 Tại sao lại sử dụng Phonegap? Nếu là một lập trình viên hay những người làm việc trong lĩnh vực tin học chắc hẳn còn nhớ đến thuật ngữ: “Write one, run any where” xuất hiện và trở thành một cơn sốt vào ngày 23/05/1995 Ngày mà công ty máy tính Sun Microsystems đã giới thiệu một công cụ lập trình mới – ngôn ngữ Java Java ra đời với... Apache Cordova Ở các phiên bản Phonegap về trước, luôn bắt buộc các nhà lập trình khi tạo ra các ứng dụng iOS thì cần phải có 1 máy tính chạy trên hệ điều hành Mac của Apple, hay nhà lập trình muốn tạo ra các ứng dụng cho Window Phone thì phải có máy tính chạy Windows Tuy nhiên từ sau tháng 9 năm 2012, thì dịch vụ “Phonegap Build” đã được ra mắt và cho phép các nhà lập trình tải lên mã nguồn của họ tới 1... mua lại Nitobi – công ty sang lập bộ khung lập trình ứng dụng Phonegap và Phonegap Build cho phép lập trình viên phát triển ứng dụng nền tảng cross-flatform trên di động với HTML5 và Javascript Bên cạnh đó, bản thân Adobe cũng cho ra đời công cụ mang tên Wallaby cho phép chuyển nội dung từ Flash sang HTML5 Và mới đây, chính Adobe đã tuyên bố sẽ ngừng phát triển Flash trên các thiết bị di động mà thay... chốt trên nền web trong tương lai và hơn nữa, HTML5 chính là công nghệ chủ chốt trong việc xây dựng ứng dụng dựa trên nền tảng framework Phonegap để có thể biên dịch qua cloud và chạy trên nhiều nền tảng di động khác nhau Ngoài ra các công nghệ khác như CSS3, Javascript và Jquery Mobile cũng rất cần thiết Nhưng do khuôn khổ không cho phép của khóa luận, tôi sẽ chỉ giới thiệu Jquery Mobile trong việc tìm. .. khả năng tiếp cận theo hướng lập trình, được đóng gói vào bên trong trình duyệt web browser có sẵn trong các thiết bị mobile Ứng dụng web application chạy trong phạm vi 1 webview cũng giống như bất kì những ứng dụng web application khác mà chúng được chạy bên trong 1 trình duyệt web của mobile Nó có thể mở các trang HTML khác (theo cả 2 cách: 1 cách địa phương trực tiếp trên thiết bị hay theo cách mở... việc cục bộ, SQlite cũng đủ làm cho ứng dụng của bạn trở nên phong phú và hữu ích hơn 2.2.6 Cách thiết lập cài đặt môi trường lập trình cho PhoneGap Việc tạo lập môi trường hỗ trợ lập trinh ứng dụng trong Phonegap hết sức đơn giản và dễ dàng Nhà phát triển có thể tạo lập dự án liên quan đến Phonegap trên bất cứ nền tảng hệ điều hành nào mà họ sử dụng như Windows, Mac OS, Linux,… hay hơn thế, việc phát... tác giả tạo ra Phonegap, đề tìm hiểu chi tiết thêm có thể truy cập vào trang sau: http://docs.phonegap.com/en/2.1.0/guide_getting-started_index.md.html Tuy nhiên cũng vì khuôn khổ của khóa luận nên tôi chỉ trình bày cách tạo lập môi trường lập trình phát triển với Phonegap cho Android, và trong môi trường hệ điều hành máy tính phổ biến nhất là Windows 2.2.6.2 Cách thiết lập cài đặt Phonegap cho Android... mobile dạng này được gọi là hybrid application (ứng dụng lai) 18 Hình 1: Sơ đồ tổng quan hóa về cách thức hoạt động của Phonegap So sánh giữa 3 dạng ứng dụng mobile: web apps, hybrid apps và native apps Bảng 2: Bảng so sánh các dạng ứng dụng mobile 19 Có thể tóm lược tổng quan về 3 dạng ứng dụng này như sau: 1 Navtive Application: Là những ứng dụng được xây dựng theo cách chính thống với các ngôn ngữ. .. sử dụng Phonegap 35 Chương 3 Xây dựng chương trình ứng dụng 3.1 3.1.1 Phân tích thiết kế và xây dựng chương trình ứng dụng Giới thiệu chung về chương trình ứng dụng Hiện nay, nhu cầu quản lý và tìm hiểu cũng như liên lạc giữa các nhân viên trong một công ty được chú tâm rất nhiều Mọi người làm việc trong cùng một văn phòng phải nên biết các thông tin cơ bản về nhau như: Họ và tên, quê quán, số điện thoại . chuyên sau về một công nghệ duy nhất, đó là công nghệ nền Web(bao gồm HTML5, Javascript, CSS3, Jquery Mobile, ). Nội dung đề tài: Tìm hiểu framework ngôn ngữ lập trình độc lập trên mobile ngoài. tin ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Nguyễn Văn Điềm TÌM HIỂU VỀ FRAMEWORK NGÔN NGỮ LẬP TRÌNH ĐỘC LẬP TRÊN MOBILE ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành: Công nghệ thông. ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Nguyễn Văn Điềm TÌM HIỂU VỀ FRAMEWORK NGÔN NGỮ LẬP TRÌNH ĐỘC LẬP TRÊN MOBILE KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC CHÍNH QUY Ngành: Công nghệ