亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        移動校園生活幫之輕松校園行

        2020-02-22 03:58:10鄧雯雯馮穎凌
        電腦知識與技術(shù) 2020年36期
        關(guān)鍵詞:移動校園應(yīng)用

        鄧雯雯 馮穎凌

        摘要:隨著移動互聯(lián)網(wǎng)的迅速發(fā)展,移動應(yīng)用帶來的便利使人們慢慢開始改變自己的生活習(xí)慣。微信、支付寶的普及打開了移動支付的大門,淘寶、京東等軟件引領(lǐng)了全民網(wǎng)購的潮流,釘釘、騰訊課堂、慕課網(wǎng)等教育應(yīng)用開啟了網(wǎng)課時代,移動互聯(lián)網(wǎng)正在慢慢地滲透進(jìn)人們的生活中。本課題以React-Native為框架,提供一個具有多功能和信息內(nèi)容的移動跨平臺應(yīng)用。該應(yīng)用主要包含登錄注冊模塊、熱門推薦模塊、簽到模塊、天氣預(yù)報模塊以及課表模塊。本文通過對需求的分析和功能的實現(xiàn)進(jìn)行的闡述,以模塊化和組件化的思想對應(yīng)用的功能進(jìn)行獨立的劃分,實現(xiàn)代碼的低耦合高內(nèi)聚。同時對React Native 的啟動白屏問題提出了解決思路和優(yōu)化方案。

        關(guān)鍵詞:react-native;校園;移動;應(yīng)用

        中圖分類號:TP391? ? ? ?文獻(xiàn)標(biāo)識碼:A

        文章編號:1009-3044(2020)36-0243-03

        1 引言

        在傳統(tǒng)開發(fā)中,為了兼容Android操作系統(tǒng)和iOS操作系統(tǒng)的移動設(shè)備,一款app應(yīng)用需要分兩次開發(fā),由于在不同客戶端平臺下要求的技術(shù)不同,所以企業(yè)需要花費大量的人力成本和研發(fā)成本,而且每次應(yīng)用更新都要雙端同步,這使得維護(hù)成本也大大提高。

        而React Native 框架的出現(xiàn)恰好解決了上述的問題,React Native的跨平臺性能夠讓一套代碼運行在兩種系統(tǒng)上,前端開發(fā)人員只需要通過JavaScript開發(fā)業(yè)務(wù)代碼,并不需要額外地去學(xué)習(xí)客戶端技術(shù),這樣就大大降低了開發(fā)人員的學(xué)習(xí)成本并且增強了移動應(yīng)用的可擴展性。而且React Native和原生移動應(yīng)用在使用感受上十分相似,甚至可以說是無法區(qū)分差別的[[1]]。

        隨著信息越來越多元化,在如今校園中,移動校園app無疑是一個信息整合的高效、統(tǒng)一的渠道。因此,本課題選取React Native為框架,基于解決當(dāng)前校內(nèi)大學(xué)生實際生活需求和生活習(xí)慣,提供一個具有多功能和信息內(nèi)容的跨平臺移動應(yīng)用。

        2 主要技術(shù)與實現(xiàn)

        2.1 主要技術(shù)

        本課題研究內(nèi)容是基于React Native框架的移動校園app,該應(yīng)用客戶端主要包含登錄注冊模塊、熱門推薦模塊、簽到模塊、天氣預(yù)報模塊以及課表模塊。

        以模塊化思想劃分功能,這樣每個模塊都是一個獨立的功能,可以減少代碼的耦合性,提高代碼質(zhì)量,并且使結(jié)構(gòu)更加清晰,利于后期維護(hù)。

        后端使用技術(shù)棧: Node.js + Express+ Mongoose

        圖形化管理工具—Robo 3T

        分析思路:

        1)用express框架搭建一個web應(yīng)用程序,提供數(shù)據(jù)接口。

        2)Mongoose數(shù)據(jù)庫基于scheme結(jié)構(gòu)去定義了一種直接的數(shù)據(jù)模型。

        分析思路:

        用express框架搭建一個web應(yīng)用程序,提供數(shù)據(jù)接口。

        Mongoose數(shù)據(jù)庫基于scheme結(jié)構(gòu)去定義了一種直接的數(shù)據(jù)模型。

        2.2 React Native框架的原理和通信

        React Native使用JSX來描述用戶界面,但UI組件渲染、動畫效果、網(wǎng)絡(luò)請求等都是通過原生實現(xiàn)的,開發(fā)人員編寫JavaScript業(yè)務(wù)代碼,通過React Native的中間層對調(diào)用原生控件,獲得與原生應(yīng)用一致的用戶體驗[[3]]。在Android平臺下,React Native主要是由C++層、Java層、JavaScript層組成。

        C++實現(xiàn)的動態(tài)鏈接庫作為中間適配層橋接,實現(xiàn)了JavaScript與Java層的雙向通信。這里主要是C++層封裝的JavaScriptCore組件執(zhí)行了JavaScript代碼的解析,同時完全隔離了Java層和JavaScript層,開發(fā)人員只需要專注于JavaScript的代碼實現(xiàn)[[4]]。

        Java層是ReactNative框架加載和啟動的入口,它封裝了負(fù)責(zé)React Native與Native code通信的Bridge組件。通過啟動C++層的JavaScript解釋器,然后JavaScriptCore解析執(zhí)行JavaScript代碼,然后把計算好的結(jié)果返回給Native code,然后Native code驅(qū)動設(shè)備上的硬件。因此通過Bridge組件,讓JavaScript能夠調(diào)用豐富的原生接口,充分發(fā)揮硬件的能力,優(yōu)化應(yīng)用性能。原生接口包括圖片資源訪問、圖形圖像繪制、3D加速、網(wǎng)絡(luò)請求、震動效果、原生控件繪制、地圖、定位、通知等。

        3 模塊的分析與實現(xiàn)

        3.1? 登錄注冊模塊的分析與實現(xiàn)

        實現(xiàn)思路:

        1)在服務(wù)器連接mongoose數(shù)據(jù)庫,創(chuàng)建User模型。數(shù)據(jù)庫中結(jié)構(gòu)如下:

        2)設(shè)置一個變量isSignIn,默認(rèn)是true,通過控制這個變量,切換組件的樣式以及將用填寫的信息傳給不同的函數(shù),執(zhí)行不同的方法。這樣可以實現(xiàn)組件和代碼的復(fù)用。

        3)如果isSignIn的值是false,說明用戶想要注冊賬號,則把數(shù)據(jù)傳給服務(wù)端,服務(wù)端將數(shù)據(jù)存入數(shù)據(jù)庫中。如果isSignIn的值是true,說明用戶想要登錄賬號,則把數(shù)據(jù)傳給服務(wù)端,服務(wù)端在數(shù)據(jù)庫查找,找到的話就說明登錄成功。

        4)通過react-navigation(路由)進(jìn)行頁面跳轉(zhuǎn),之后的頁面跳轉(zhuǎn)實現(xiàn)也是如此。

        3.2首頁模塊的分析與實現(xiàn)

        實現(xiàn)思路:

        1) 輪播圖使用了react-native-swiper插件。

        2) 子菜單中每一個跳轉(zhuǎn)按鈕復(fù)用同一個組件,只需要改變每次傳入的參數(shù)即可。子菜單用一個數(shù)組記錄,里面存放數(shù)據(jù)是對象。

        3) 同理,長列表中每一欄也可以復(fù)用同一個組件,UI組件隨著傳入的參數(shù)渲染出不同的內(nèi)容。然后在每次渲染前,獲取當(dāng)前日期時間,并且使用正則轉(zhuǎn)換數(shù)據(jù)格式,渲染出獲取數(shù)據(jù)的日期時間。

        4) 點擊熱門模塊的某一項,發(fā)送路由跳轉(zhuǎn)。同時將id值傳入請求數(shù)據(jù)的接口。

        3.3課表模塊的分析與設(shè)計

        分析需求:

        1)以表格的形式展示課表信息,每一行對應(yīng)特定時間段的課表信息,每一列對應(yīng)日期當(dāng)天的課表信息。

        2)能夠修改并更新課表信息。

        實現(xiàn)思路:

        1) 在服務(wù)端鏈接mongoose數(shù)據(jù)庫,創(chuàng)建Timetable的模型。

        2) 使用flex布局,將主軸方向水平方向(默認(rèn)是垂直的)。根據(jù)課表是一個二維數(shù)組,所以用兩個循環(huán)語句把課表的行和列的內(nèi)容都渲染出來,并且數(shù)據(jù)塊不為空,將不同的行綁定不同的顏色。

        3) 用一個變量控制課表的狀態(tài),通過點擊修改,會將替換表格中的UI組件,將組件替換成,這樣就可以編輯文本了。

        3.4天氣預(yù)報模塊的分析與設(shè)計

        分析需求:

        天氣預(yù)報模塊包含以下模塊:

        1) 實現(xiàn)天氣頭部模塊;

        2) 實現(xiàn)小時天氣模塊;

        3) 實現(xiàn)每日天氣模塊;

        4) 實現(xiàn)空氣質(zhì)量模塊;

        5) 實現(xiàn)生活指數(shù)模塊。

        功能:獲取并展示定位地點的天氣信息并且可以切換不同地區(qū)。

        實現(xiàn)思路:

        1) 初始化頁面的時候,檢查是否有定位權(quán)限,如果有,則說明定位成功,觸發(fā)回調(diào)函數(shù),去請求數(shù)據(jù),如果沒有,則觸發(fā)請求定位權(quán)限的回調(diào)函數(shù),經(jīng)過用戶確認(rèn)后,同意則去觸發(fā)請求數(shù)據(jù)的回調(diào)函數(shù)。

        2) 將請求的返回的數(shù)據(jù)進(jìn)行整理,保存天氣信息的對象。

        3) 通過屬性傳值的方式,將數(shù)據(jù)傳入都對應(yīng)的模塊中,渲染UI組件。

        4) 點擊頭部地區(qū)的時候,會觸發(fā)選擇器。

        通過自定義子組件屬性,綁定父組件自身作用域的方法,在這里是獲取天氣信息的方法,在子組件的事件回調(diào)中執(zhí)行這個方法,從而獲取新的天氣信息,更新整個天氣組件。

        4 分析與總結(jié)

        本論文分析并實現(xiàn)了基于React Native框架的跨平臺移動校園App。

        App基于React Native 框架開發(fā),外部封裝Java、Objective-C,內(nèi)部封裝JavaScript。通過Bridge實現(xiàn)React Native與Native code的通信,實現(xiàn)線程模型等,并通過JavaScriptCore解析JS代碼,調(diào)用原生控件,渲染視圖。通過JS映射模塊的方式來構(gòu)建原生View,并將組合攜帶的數(shù)據(jù)綁定到ReactView,通過把ReactView添加到具體Activity中,讓Activity對應(yīng)一個生命周期。

        本論文的主要開發(fā)有:客戶端所有的UI組件設(shè)計、服務(wù)端的部分接口、登錄注冊模塊、首頁模塊、簽到模塊、課表模塊、天氣預(yù)報模塊等。

        參考文獻(xiàn):

        [1] 馮博.基于React Native框架的興趣社區(qū)Android客戶端設(shè)計與實現(xiàn)[D].哈爾濱:哈爾濱工業(yè)大學(xué),2017.

        [2] 潘婷婷.React Native在APP開發(fā)中的應(yīng)用研究[J].無線互聯(lián)科技,2016(19):142-143.

        [3] 程化梅.基于React Native的即時通訊應(yīng)用的設(shè)計與實現(xiàn)[D].武漢:武漢郵電科學(xué)研究院,2017:31-33.

        [4] 李驍,張丹.基于混合模式的移動開發(fā)技術(shù)的研究[C]//決策論壇——企業(yè)管理模式創(chuàng)新學(xué)術(shù)研討會論文集.北京,2017:118-120.

        [5] 嚴(yán)新巧.基于移動開發(fā)現(xiàn)狀探討React Native[J].電腦知識與技術(shù),2016,12(32):76-77,82.

        [6] Steven Max Patterson. Facebook's React Native could succeed where other cross-platform frameworks have failed[J]. Network World (Online),2016:52-54.

        [7] 王閱蓁.移動應(yīng)用的web與native混合編程模式研究與實現(xiàn)[D].成都:電子科技大學(xué),2015.

        【通聯(lián)編輯:唐一東】

        猜你喜歡
        移動校園應(yīng)用
        校園的早晨
        琴童(2017年3期)2017-04-05 14:49:04
        春滿校園
        移動有聲閱讀讓兒童文學(xué)回歸故事本身
        出版廣角(2016年14期)2016-12-13 01:49:53
        如何有效發(fā)揮課間操的鍛煉作用
        紀(jì)錄片中攝影機的移動對動態(tài)布局的影響
        東方教育(2016年16期)2016-11-25 03:49:57
        移動版教學(xué)督導(dǎo)聽課評價系統(tǒng)建設(shè)初探
        GM(1,1)白化微分優(yōu)化方程預(yù)測模型建模過程應(yīng)用分析
        科技視界(2016年20期)2016-09-29 12:03:12
        煤礦井下坑道鉆機人機工程學(xué)應(yīng)用分析
        科技視界(2016年20期)2016-09-29 11:47:01
        氣體分離提純應(yīng)用變壓吸附技術(shù)的分析
        科技視界(2016年20期)2016-09-29 11:02:20
        會計與統(tǒng)計的比較研究
        国产一区二区三区青青草| 国产亚洲欧美成人久久片| 国产精品情侣露脸av在线播放| 亚洲国产线茬精品成av| 成人偷拍自拍视频在线观看 | 国产午夜亚洲精品国产成人av| 性色av免费网站| 无码视频一区二区三区在线观看| 丰满熟妇人妻av无码区 | 成人自慰女黄网站免费大全| 亚洲日韩国产一区二区三区在线| 欧美激情在线不卡视频网站| 加勒比东京热综合久久| 精品一级一片内射播放| 尤物yw午夜国产精品视频| 国产人妻久久精品二区三区老狼| 麻豆国产高清精品国在线| 亚洲国产av一区二区三| 日韩一级黄色片一区二区三区| 久久综合丝袜日本网| 国产一区二区三区在线观看精品| 国产主播一区二区在线观看| 在线观看一区二区三区在线观看| 综合色就爱涩涩涩综合婷婷| 99久久人妻精品免费二区| www插插插无码视频网站| 国产69精品一区二区三区| 久久综合五月天啪网亚洲精品| 国产亚洲精品美女久久久m| 亚洲国产高清在线一区二区三区| 国产品精品久久久久中文| 久亚洲精品不子伦一区| 最近中文字幕免费完整版| 久久久久这里只有精品网| 丰满人妻一区二区三区免费| 亚洲av无码国产精品色| 97久久精品午夜一区二区| 精品国产91久久久久久久a| 亚洲激情综合中文字幕| 精品无码久久久久久国产| 亚洲AV无码精品色欲av|