南京工業大學 李 強 王錦濤 虞得賢
?
基于標簽系統的校園社交平臺的實現
南京工業大學 李 強 王錦濤 虞得賢
【摘要】社交應用占據了目前應用市場的半壁江山,然而大多數應用都面臨著去同質化的問題,大多數應用選擇的途徑是給用戶不同的社交定義,微信,QQ,陌陌,這些都是在滿足不同人的心理需求。而基于標簽的系統,完全拋開了人與人之間的關系,完全是將事與人之間聯系起來,這樣將會產生更多的連接關系,消息的送達將更加精確。跨平臺應用能夠大大降低開發成本,節約發布時間。
【關鍵詞】標簽;跨平臺;社交
面對著移動app發展的爆發期,社交應用滿地開花,社交已經成為人們生活的一部分,但大多數社交應用都是基于用戶之間的聯系的,這樣用戶之間獲取信息的來源相對單一,個人對于個性化的追求使得這類app無法滿足人們對于信息的渴求。本課題嘗試引入標簽系統,對于大多數數據進行分類,在分類后進行分發,使信息準確到達用戶。同時為了滿足機構社交化發展的需求,系統引入公眾平臺,公眾平臺同樣以標簽為基礎,這樣用戶,帖子,活動及機構都以標簽為紐帶進行聚合,使得他們無形中建立起關系。為了達到系統的快速開發與部署的目的,可以用AngularJs進行跨平臺開發,這樣同時也能滿足不同平臺的需求。
標簽系統作為系統主線,連接系統的各個部分。用戶選擇自己感興趣的標簽進行關注,用戶發帖時選擇帖子相關的標簽進行標注,機構用戶同時也可以選擇自己感興趣的標簽進行關注,這樣有利于普通用戶發現自己感興趣的機構。當機構用戶發布活動時同樣可以標注帖子所屬標簽,這樣活動就可以到達目標用戶。這樣一個閉環,就形成了以標簽為中心的興趣社交。
隨著移動設備的發展,通過移動設備接入網絡的人越來越多,移動應用的需求量也在增加。針對不同平臺開發同一app帶來的成本的增加,使得許多創業項目選擇以HTML為基礎的跨平臺技術。這種開發避免了不同平臺的差異性,可以使同一段代碼運行于不同的平臺,節約了開發成本。近年來也出現了一些框架用于開發單頁面應用,通過分析,我們采用AngularJs與Cordova結合的方式進行開發,AngularJs相對成熟,同時它的雙向綁定機制對于數據流操作較多的軟件有明顯的優勢。采用Cordova,當html無法達到原生功能時可以通過編寫插件的方式進行擴展,這樣也能達到較好的用戶體驗。
AngularJs引入了指令、控制器、服務、過濾器等概念,強制開發者養成良好的編程習慣,實現了前端的MVC,指令用于對DOM節點的操作同時也是DOM節點與控制器之間數據交流的橋梁,控制器負責與后端API進行交互,獲取數據,并建立一定的模型進行數據的存儲。同時控制器也是進行數據處理的地方,當數據到達后,在控制器中進行一定的處理后再在頁面上呈現。
服務采用單例的模式,并且在整個應用的生命周期中將永遠存在,這樣服務就有了數據交換橋梁的作用,當我們進入不同頁面時,框架將調用相應的控制器,進行數據的加載,我們可以通過url在控制器之間傳遞數據,但有些敏感數據,我們就可以利用服務來存儲數據再在另一個控制器中取得數據。
還有一些組件是我們經常使用的,它們不存儲數據,只是具有某種邏輯處理的功能,這些功能我們會經常使用,這樣我們也可以利用服務單例的特性,建立一些服務,提供邏輯處理方法,這樣減少每次使用時都要重新申請對象的開銷。AngularJs內置了一些常用服務,我們常用的為路由,http服務。其中http服務為異步的,這樣使我們在操作數據時不至于導致整個進程阻塞。
為了對異步的支持,Angular提供了Promise,使得我們能夠很快編寫異步方法,實現業務邏輯。過濾器的引入,使得數據處理更加結構化,我們可以自定義過濾器,將數據格式化的方法進行抽象,這樣在需要數據格式化的時候就可以調用,以達到統一管理的目的。
Cordova應用各個平臺提供的webview特性,對各個平臺的webview編寫相同的接口,實現各個平臺調用的一致性,將HTML,css,js等文件封裝進app中,這樣客戶端加載相應的文件,通過js同服務器端API交互,進行數據的加載。這樣可以實現較為良好的原生體驗。
針對安卓平臺的碎片化,我們還可以安裝Cordova插件CrossWalk,CrossWalk通過在Cordova中嵌入瀏覽器引擎的方式,解決安卓平臺webview的差異性問題。Cordova的插件機制也使得我們更容易擴展應用。HTML的接口相對原生接口來說還是限制比較大,這樣我們可以通過插件的機制調用原生接口,實現較為良好的體驗。
Angular框架能夠解決我們遇到的大部分問題,但許多開發過程中會遇到路由返回時頁面刷新的問題,這樣用戶跳轉頁面后再返回就無法保證還原離開時的狀態,用戶體驗極其差,雖然現在也有相應的解決方案,但解決的不夠優雅。其機制為當用戶跳轉到其他頁面時隱藏當前view,同時保存控制器,當返回時在將頁面顯示。這樣也帶來了問題,頁面不知道何時去刷新,這樣我們還要控制手動刷新的邏輯。
如果AngularJs在后期能夠引入和Android類似的任務棧機制,能夠很好地解決這一問題,也能夠吸引更多的人來接觸Angularjs技術。
參考文獻
[1]高尚.Ajax/REST架構的研究與開發框架的實現[J].北京郵電大學,2008.
[2]格林,夏德瑞,大漠窮秋.用AngularJS開發下一代Web應用[J].中國科技信息,2013(23).
[3]馮晨超.基于AngularJS的物品和用戶查詢模塊的設計與實現[D].南京大學,2014.
[4]董英茹.簡談AngularJS在下一代Web開發中的應用[J].軟件工程師,2015,05:30-31.
Implementation of campus social networking platform based on tag system
Abstract:Social applications accounted for half of the current application market , but most applications are faced with the problem of removing homogenization , the commonest way in which these applications selected to use is to give users different social definitions. WeChat, QQ and momo,These different social applications are able to meet the psychological needs.The tag -based system is completely set aside the relationships between people,and entirely builds the links between people and items,this will produce more connected relationships,and delivery of messages will be more accurate.The time and cost of developing Cross-platform applications will be reduced obviously.
Keywords:tag; cross-platform; social-network