CHƯƠNG I: GIỚI THIỆU 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 7 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. 8 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. 9 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 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ử 10 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. 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. 11 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.