CHƯƠNG I: GIỚI THIỆU 1. Nghiên cứu hiện trạng các ứng dụng Khái niệm “Giám sát hành trình” ở đây là việc chia sẻ, giám sát về vị trí của những ngƣời dùng theo thời gian thực. Với những chức năng cơ bản nhƣ chia sẻ vị trí và giám sát hành trình, hiện nay cũng có một số ứng dụng nổi tiếng đƣợc phát triển nhƣ Find My Friends, Life360, hay Glympse,… Mỗi ứng dụng lại đƣợc xây dựng với những ƣu và nhƣợc điểm riêng. Các ứng dụng này đƣợc sử dụng phổ biến, phục vụ nhiều đối tƣợng ngƣời dùng khác nhau nhƣ các thành viên trong gia đình, nhóm bạn bè,… Việc chia sẻ đƣợc vị trí mang lại nhiều hiệu quả, ví dụ nhƣ cha mẹ muốn biết thông tin và giám sát vị trí của con cái, nhóm bạn bè muốn biết thông tin về vị trí của nhau khi cùng đi chơi hay du lịch,…Đối với một ứng dụng giám sát hành trình, ngoài chức năng cơ bản là chia sẻ vị trí giữa ngƣời dùng/nhóm ngƣời dùng, ứng dụng cũng cần có những chức năng tiện ích phù hợp yêu cầu ngƣời dùng nhƣ: thiết lập địa điểm đến cho nhóm, chỉ đƣờng đến điểm đến đã thiết lập và có thể hỗ trợ tải các hình ảnh gắn lên bản đồ theo vị trí hiện tại.
Ứng dụng Find My Friends [8]: là một ứng dụng đƣợc phát triển bởi chính Apple, chỉ với chức năng cơ bản duy nhất là chia sẻ vị trí hiện tại. Ứng dụng sẽ sử dụng số điện thoại hoặc AppleID để tìm bạn bè hoặc ngƣời thân và chia sẻ vị trí hiện tại của mình với đối tƣợng này, ngƣời dùng cũng có thể tùy chọn ẩn/hiện vị trí của mình nếu muốn. Tuy nhiên, nhƣợc điểm của ứng dụng này là chỉ dừng lại với chức năng chia sẻ thông tin về vị trí hiện tại với từng ngƣời dùng khác mà không đƣợc tích hợp nhiều chức năng tiện ích khác để hỗ trợ ngƣời dùng khi sử dụng. Ứng dụng Glympse [9]: Ứng dụng này ngoài việc chia sẻ thông tin về vị trí hiện tại của ngƣời dùng cũng có thêm chức năng tạo nhóm bạn bè.
Ứng dụng Life360 [10]: Đây là những ứng dụng đƣợc phát triển với nhiều chức năng đƣợc tích hợp cho ngƣời dùng hơn nhƣ chia sẻ thông tin về vị trí hiện tại với từng nhóm đối tƣợng riêng, hỗ trợ chat nhóm, thiết lập địa điểm đến,…Nhƣợc điểm của những ứng dụng này là chƣa đƣợc hỗ trợ tiếng Việt nên đối với những nhóm ngƣời dùng là trẻ em sử dụng sẽ gặp nhiều khó khăn. Bên cạnh đó, đối với mục đích giám sát hành trình thì việc đính kèm các tập tin ảnh lên bản đồ theo lộ trình thời gian thực để chia sẻ cũng là một nhu cầu cần thiết, tuy nhiên chức năng này cũng chƣa đƣợc các ứng dụng khác hỗ trợ.1: So sánh các chức năng của các ứng dụng chia sẻ ví trí phổ biến hiện tại Tiêu chí Find My Friends Glympse Life360 Hệ điều hành iOS iOS, Android iOS, Android Phiên bản mới nhất 7.0 TIEU LUAN MOI download :7 skknchat@gmail.com Chia sẻ thông tin về Có hỗ trợ Có hỗ trợ Có hỗ trợ vị trí hiện tại Tạo nhóm bạn bè Không hỗ trợ Có hỗ trợ Có hỗ trợ Thiết lập điểm đến Không hỗ trợ Không hỗ trợ Không hỗ trợ cho nhóm Tìm đƣờng đi đến Không hỗ trợ Không hỗ trợ Không hỗ trợ điểm đến đƣợc thiết lập Tải các hình ảnh Không hỗ trợ Không hỗ trợ Không hỗ trợ gắn lên bản đồ theo vị trí hiện tại Với hiện trạng các ứng dụng di động chia sẻ vị trí phổ biến hiện nay nhƣ đã phân tích, có thể thấy nhiều tính năng tiện ích hỗ trợ việc giám sát hành trình vẫn còn chƣa đƣợc khai thác hết. Việc xây dựng ứng dụng giám sát hành trình trên điện thoại di động hƣớng đến nhiều đối tƣợng ngƣời dùng khác nhau, bổ sung một số những chức năng cần thiết để hỗ trợ ngƣời dùng sẽ đáp ứng đầy đủ hơn so với những ứng dụng hiện có. Mục đích và phạm vi nghiên cứu Mục tiêu chính của luận văn là nghiên cứu và xây dựng ứng dụng giám sát hành trình trên điện thoại di động.
Để thực hiện mục tiêu này, đầu tiên cần phân tích và đánh giá sự phát triển của điện thoại di động và thị trƣờng điện thoại di động hiện nay, từ đó đánh giá môi trƣờng phát triển ứng dụng trên hai nền tảng phổ biến hiện nay là Android và iOS, so sánh để có thể lựa chọn nền tảng phát triển phù hợp nhất. Tiếp theo, luận văn sẽ nghiên cứu các giải pháp công nghệ phục vụ việc xây dựng ứng dụng (công nghệ phát triển ứng dụng iOS, máy chủ Node.JS, hệ quản trị CSDL PostgreSQL). Cuối cùng sẽ thiết kế và xây dựng ứng dụng thực nghiệm giám sát hành trình trên thiết bị di động. Đối với ứng dụng giám sát hành trình, các chức năng chính đƣợc xây dựng cụ thể nhƣ sau: - Xác định và hiển thị vị trí hiện tại của ngƣời dùng - Tạo nhóm riêng và chia sẻ vị trí với các thành viên trong nhóm.
- Thiết lập địa điểm đến cho các thành viên trong nhóm. - Tìm đƣờng đi ngắn nhất đến địa điểm cho trƣớc. - Đính kèm ảnh trên bản đồ theo lộ trình. TIEU LUAN MOI download :8 skknchat@gmail.com Về phía client, thông tin về vị trí hiện tại của ngƣởi dùng đƣợc xác định nhờ thiết bị định vị GPS trên điện thoại và hiển thị lên bản đồ cần có độ chính xác cao.
Ngoài ra kết quả hiển thị đến ngƣời dùng cũng cần nhanh chóng và chính xác. Dựa trên những mục tiêu đã nêu ra, luận văn đƣợc chia thành các phần nhƣ sau: Chƣơng hai có nội dung chính là nghiên cứu các giải pháp công nghệ đƣợc sử dụng để xây dựng ứng dụng. Đầu tiên sẽ phân tích, so sánh để lựa chọn đƣợc nền tảng hệ điều hành phát triển ứng dụng trên máy khách là iOS hay Android - hai nền tảng phổ biến nhất hiện nay; làm rõ đối với nền tảng đƣợc lựa chọn, môi trƣờng phát triển và ngôn ngữ lập trình đƣợc sử dụng. Sau đó, luận văn sẽ đi sâu về giải pháp công nghệ phía máy chủ, phân tích công nghệ nền cũng nhƣ hệ quản trị cơ sở dữ liệu đƣợc lựa chọn và sử dụng.
Ở chƣơng ba, luận văn tập trung vào việc phân tích và thiết kế hệ thống. Đầu tiên phần phân tích yêu cầu sẽ làm rõ yêu cầu chức năng và phi chức năng của hệ thống. Sau đó, phần phân tích thiết kế sẽ bao gồm thiết kế kiến trúc, thiết kế biểu đồ trƣờng hợp sử dụng và thiết kế cơ sở dữ liệu. Sau khi đã phân tích và thiết kế hệ thống, cuối cùng ở chƣơng bốn sẽ trình bày các kết quả đạt đƣợc của ứng dụng.
TIEU LUAN MOI download :9 skknchat@gmail.com CHƯƠNG II: NGHIÊN CỨU GIẢI PHÁP CÔNG NGHỆ 2.1 Lựa chọn nền tảng hệ điều hành 2.1 Một số nền tảng hệ điều hành phổ biến a/Android: Android Google phát hành vào tháng 11 năm 2007 với mục tiêu ban đầu là xây dựng một nền tảng mã nguồn mở cho việc phát triển phần mềm trên nền tảng di động. Android là một hệ điều hành di động mã nguồn mở đƣợc xây dựng dựa trên hệ điều hành nhân Linux và cho phép các nhà phát triển viết mã nguồn bằng ngôn ngữ Java, sử dụng các thƣ viện Java do Google phát triển [1]. Ban đầu, mục đích triển khai của Android là lĩnh vực điện thoại di động, bao gồm các loại điện thoại thông minh và các điện thoại chi phí thấp. Tuy nhiên, với các dịch vụ và sự hỗ trợ chức năng phong phú khiến Android có tiềm năng mở rộng vƣợt ra ngoài thị trƣờng điện thoại di động.
Với vị thế là một nền tảng mã nguồn mở, Android có ƣu thế với cộng đồng lớn và có thể tham gia trong việc xây dựng và phát triển môi trƣờng lập trình, hệ điều hành và các API. Công cụ phổ biến đƣợc sử dụng để phát triển ứng dụng trên nền tảng Android là Eclipse.1: Hệ điều hành Android. b/iOS: iOS (trƣớc đây là iPhone OS) là một hệ điều hành di động phát triển và phân phối bởi Apple Inc phát hành năm 2007 cho iPhone và iPod Touch, nó đã đƣợc mở rộng để hỗ trợ các thiết bị khác của Apple nhƣ iPad và Apple TV. Không giống nhƣ Windows Phone của Microsoft và Android của Google, Apple không cấp giấy phép iOS để cài đặt trên phần cứng khác không phải của Apple.
Các ứng dụng iOS thƣờng đƣợc viết bằng Objective-C và Swift, sử dụng thƣ viện Cocoa Touch. Công cụ duy nhất đƣợc sử TIEU LUAN MOI download 10: skknchat@gmail.com dụng để phát triển các ứng dụng iOS là Xcode, và chỉ có thể chạy trên máy tính có hệ điều hành Mac OS.2: Hệ điều hành iOS của Apple. c/Windows Phone: Windows Phone đƣợc Microsoft phát triển để thay thế cho hệ điều hành di động Windows Mobile trƣớc đây. Các ứng dụng xây dựng trên nền tảng Windows Phone đƣợc viết bằng C#, thƣờng đƣợc phát triển sử dụng công cụ Visual Studio.
Bên cạnh Android và iOS thì Windows Phone là nền tảng cũng chiếm một thị phần nhất định trong lĩnh vực di động. Tuy nhiên tính đến hiện nay, do các tính năng không quá phong phú cùng với những gian hàng ứng dụng nghèo nàn đã khiến cho Windows Phone không thể cạnh tranh đƣợc với hai nền tảng lớn là Android và iOS nữa. Chính vì lý do này, Microsoft hiện đã dừng việc cập nhật về phần cứng cũng nhƣ phần mềm nền tảng Windows Phone.1: Hệ điều hành Windows Phone của Microsoft.2 So sánh sự phát triển của ứng dụng trên các hệ điều hành di động Hiện nay các ứng dụng trên điện thoại đƣợc phát triển chủ yếu trên các nền tảng Android , iOS và Windows Phone. TIEU LUAN MOI download 11: skknchat@gmail.com Có thể thấy số lƣợng điện thoại thông minh chạy hệ điều hành Android và iOS phát triển mạnh, chiếm đến hơn 99% thị trƣờng điện thoại di động thông minh hiện nay, trong khi Windows Phone hiện giờ chỉ còn chiếm khoảng 0.1%, và những thiết bị di động thông minh chạy nền tảng khác chiếm 0.
Điều này cho thấy sự phát triển mạnh mẽ của Android và iOS cùng xu hƣớng hiện tại của ngƣời dùng.4: Thống kê của IDC (International Data Corporation) về tỷ lệ các thiết bị di động trên các nền tảng hệ điều hành khác nhau Nếu so sánh về số lƣợng thiết bị di động, nền tảng Android vẫn vƣợt trội hơn hẳn iOS do sự đa dạng về phân cấp, các hãng sản xuất,…Mặc dù vậy, nếu đánh giá về mặt ƣu, nhƣợc điểm đối với những nhà phát triển khi xây dựng ứng dụng trên hai nền tảng này thì iOS cũng có nhiều lợi thế nhất định.