?

基于Android的日程管理APP設計與實現*

2021-01-22 13:41姜雨杉柳浩瀧鐘天淏施運梅
數字技術與應用 2020年12期
關鍵詞:日程課程表管理工具

姜雨杉 柳浩瀧 鐘天淏 施運梅

(北京信息科技大學計算機學院,北京 100020)

0 引言

近年移動端的功能逐漸多樣化,人們對于手機端的依賴性飛速提升,而安卓應用端開發的市場十分廣闊,吸引了很多人才和資金。但從現在的市場軟件發布情況來看,面向學生的移動端開發并不多。而在課程+日程安排方面[1-2]的移動端軟件就更加稀缺了。目前大多數APP基本上只能處理課程部分的問題,在日程管理安排、推薦的方面上很少有進行開發。

目前國際上開發的此類應用可簡稱為時間管理工具,市面上出現的一些時間管理工具有滴答清單、超級課程表和時間規劃局等。

但根據研究發現,這些時間管理工具面向的對象仍然不能精確定位到學生層面,在解決課程與事件沖突、智能推薦方向仍然不夠完善。通過產品的研究和資料的學習,我們決定開發一個既可以滿足課程、日程與便簽功能,同時可解決日程安排方面問題的APP。

1 相關時間管理工具

根據平臺的不同,目前市場上的時間管理APP可以分為以下兩大類:

1.1 面向ios平臺的APP

如:時間規劃局APP,在該APP中,用戶可以添加任何紀念日和相關的事件日期,但是只有用戶使用了或者記錄相關事件之后,才會開始計時及提醒,缺少了人機交互。

1.2 面向ios和Android平臺的APP

如:滴答清單,該APP可以將待辦事項按照優先度進行陳列,但是展示功能無法完全貼合大學生的日常生活。

超級課程表是一款面向學生,可以為學生提供課程表及上課地點的軟件,但是該軟件沒有時間管理和待辦事項查詢的功能。

通過調研發現,無論是ios還是Android平臺上的時間管理工具都不能夠將課程、日程和便簽相結合,并且不提供日程規劃的功能,幫助在校大學生更好地管理時間,解決日程與課程的沖突。

2 系統架構設計

針對調研結果,本文設計了基于Android的日程管理APP,從層次上可以分為數據層、服務層和交互層。

2.1 交互層

包括注冊登錄、記錄便簽、日程、課程的展示和查詢功能。其中便簽、日程、課程表類的交互模式主要以可視化方式呈現。

(1)便簽顯示用戶自定義添加的時間+事件片段,按照截至日期、時間順序或用戶自定重要性進行排序顯示,用戶完成后可將便簽刪除,起到提示作用。

(2)日程類通過導入日歷的可視化呈現。

(3)課程表方面用戶添加課程、周數、課程地點等信息,以同一界面可視化的方式進行展示。

2.2 服務層

主要包括云端數據同步、疲勞度計算組件、日程推薦組件。

疲勞度計算組件結合日程推薦組件,可以個性推薦用戶安排的日程,根據學生用戶的本周課程安排進行疲勞度計算和日程推薦等。

2.3 數據層

本層提供數據存儲服務,其中數據庫的設計如表1。

其中:

(1)Course課程表:包括課程的唯一標識id,的course_name課程名,teacher教師名,class_room教室地點,day周天數,class_start和class_end控制課程時長,以及用week自定義課程所在周數。

(2)Note_RC日程表:包括日程id號,日程主題title、日程內容content、最后編輯時間time、日程計劃的日期day,主要通過結合日歷實現的日程表。

(3)User用戶信息表:包括用戶的唯一標識username(用戶自定義的號碼、昵稱或者id等),用戶密碼password,性別sex,大學名稱university,個人簡介myflag進行每個用戶信息的分行存儲。

(4)Note便簽表:包括設置的唯一自增主鍵id,內容content,時間time,時間分類(優先度)tag。

3 關鍵技術

3.1 智能推薦

3.1.1 疲勞度計算與傳輸

為了進行更合理的日程推薦,引入了疲勞度這個參數[3]。疲勞度是大學生每周的課程數量,反映了該教學周內學生的上課狀況和身心疲勞情況[4]。在日程的智能推薦功能中作為參照,從而得出日程推薦的結果。

表1 數據庫中的表

圖1 計算疲勞度的過程

圖2 傳輸疲勞度的過程

圖1為疲勞度計算過程,計算疲勞度時需要讀取課程的數據庫并匹配當前教學周,在得出課程列表的同時計算課程的數量,即為本周的疲勞度。

在課程界面中每次刷新課程時,都會進行一次課程數量的計算和疲勞度的刷新,以應對用戶課程的變化及時調整疲勞度。

疲勞度的計算結果影響智能推薦,所以需要將計算結果傳遞給智能推薦模塊。因為智能推薦功能是在用戶添加日程時得到實現,所以需要將疲勞度信息從課程頁面傳輸到日程頁面中。

圖2為疲勞度的傳輸,在實現傳輸的過程中主要運用了名為Intent的運行時綁定機制,它能在程序運行的過程中連接兩個不同的組件,實現它們之間的通訊和數據傳輸。為了傳輸方便,也對疲勞度進行了相應的數據封裝。

3.1.2 日程推薦

日程推薦是系統根據用戶的時間、工作日和疲勞度自動推薦日程安排。推薦過程如圖3所示。

推薦結果將在用戶添加日程界面以提醒語句的形式出現,根據參數的不同會顯示不同的推薦結果。以下為全部可能的推薦結果。推薦結果1:“誰都不能阻止你成為優秀的人,去學習吧!”

推薦結果2:“課業很多的話,勞逸結合也不錯哦”。

推薦結果3:“假期也不能停止努力!”

推薦結果4:“今日也許適合吃大餐”

推薦結果5:“要不要去外面看看?”

推薦結果6:“多運動出出汗”

圖3 日程推薦的過程

圖4 解決沖突的過程

推薦結果7:“不要讓自己閑下來”

推薦結果8:“靜下心來看會兒書也是不錯的選擇”

推薦結果9:“有沒有想看的電影?”

推薦結果10:“晚餐吃點兒不一樣的”

3.2 日程和課程沖突的解決

大學生受制于課程安排無法自如規劃日程,并且由于課程的不規律,經常會發生日程與課程時間安排的沖突,自己卻沒有發現的問題[4]。

在本項目中,不僅集成了課程表、便簽與日程的顯示與日程的推薦功能,還預解決日程與課程安排沖突的問題。解決方案如圖4所示。

在添加或修改日程時設置該日程的時間,系統將該時間傳輸到課程組件中并自動轉換為課程表中的節數。通過對照本周的課程表核實是否會發生日程與課程的沖突,從而判斷是否發出提醒的指令。

4 功能實現

4.1 實驗環境

本APP基于Android Studio進行開發。Android Studio是谷歌推出的一個Android集成開發工具,基于IntelliJ IDEA。相比其他軟件,Android Studio具有穩定速度快、UI編輯器強大,插件管理完善,整合Gradle構建工具和可直接搭建本地數據庫的優點。

4.2 關鍵性功能實現

4.2.1 智能推薦功能的實現

通過獲取課程組件中的疲勞度,在日程編輯頁面進行相應的推薦,不僅貼合了時間、工作日等客觀條件,也根據疲勞度做出了主觀的日程選擇。

最終在日程編輯頁面中,日程推薦將以語句提醒的形態展示。

4.2.2 日程與課程沖突解決的實現

通過獲取日程安排的時間與課程表進行對照,來判斷是否發生沖突。將APP的課程表與日程功能利用到極致并合理結合起來。

5 總結

本APP解決了大學生不能合理規劃時間的問題?;诒続PP,用戶可以合理規劃日程,高效完成任務。但本APP仍然存在一些問題,比如課程沒有同教務系統同步,需要手動添加;疲勞度的計算無法精確到日。通過后續開發,系統將完善這些問題。在功能還可以進一步提升,提供更加深入的應用。

猜你喜歡
日程課程表管理工具
課程表
精益管理工具在手術室耗材管理中的應用
質量管理工具在減少CT停機天數中的應用
超萌小鹿課程表
皮膚護理提上日程
hosts文件管理工具
青年課程表
黑馬學院2015年下半年超級課程表
2015年焊接行業展覽會日程
2014年焊接行業展覽會日程
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合