您现在的位置是:Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款 > 

facebook 開源框架(Web前端開發必備的開源框架有哪些)

Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款2024-05-20 14:32:44【】7人已围观

简介APP有哪些比較好的后臺開源框架1.Framework7來自iDangero.us—自版本1.0在一年前發布以來,Framework就一直是開發iOS應用程序的最佳選擇之一。由于它提供對安卓的支持,如

APP有哪些比較好的后臺開源框架

1.Framework 7

來自iDangero.us —自版本1.0在一年前發布以來,Framework就一直是開發iOS應用程序的最佳選擇之一。由于它提供對安卓的支持,如果你先從iOS入手,但隨后構建具有類似iOS外觀感覺的安卓版本,它也是個不錯的選擇。功能特性包括:Material Design用戶界面、原生滾動、1:1頁面動畫、自定義DOM庫以及XHR緩存和預裝入。

3.jQuery Mobile

來自jQuery基金會— 這種成熟的輕量級框架基于jQuery,缺少本文中介紹的大多數程序包具有的許多高級功能,不過它仍擁有一群龐大的忠實用戶。雖然它提供了語義標記、漸進式改進、主題化設計和PhoneGap/Cordova支持之類的功能,但是在類似原生系統的功能和性能或者高級用戶界面方面乏善可陳。另一方面,它又很簡單,這意味著“編寫一次,到處運行”是常常可以實現的目標;對于還需要在Windows Phone和黑莓上運行的簡單應用程序而言,它也是個不錯的選擇。

2.Ionic

來自Ionic — 這種流行的跨平臺框架基于Sass CSS擴展語言,使用起來相當容易,不過它還能集成用于構建更高級應用程序的AngularJS。Ionic提供了一個豐富的庫,包括針對移動設備優化的HTML、CSS和JS CSS組件、手勢及工具,可與預定義的組件協同工作。命令行接口提供了仿真器、實時重裝和日志等功能。還有一個基于Cordova的應用程序包裝器。

4.Kendo UI

來自Telerik — 這種基于jQuery的HTML5/Java框架既有開源版,又有商業版。對企業用戶友好的Kendo UI提供了種類豐富的用戶界面窗口組件和插件。它最廣為人知的地方就是擁有無數具有Material Design風格的預構建主題,另外還有一個主題構建器,可用于構建自定義主題。其他功能特性包括:Angular和Bootstrap UI集成以及性能優化。

6.Native

來自Telerik —顧名思義,Native專注于原生用戶體驗開發,但是它提供了跨安卓和iOS的跨平臺代碼共享支持。該軟件使用現有的原生用戶界面庫,用戶界面由Java、XML或視情況而定的Angular來描述。然而,使用起來,它不如Telerik更傳統的跨平臺Kendo UI框架來得容易。

5.Mobile Angular UI

來自Maurizio Casimirri —這個開源項目將AngularJS和經過修改的推特Bootstrap合并到了一個移動用戶界面框架。據說它保留了Bootstrap 3的大部分語法,因而更容易實現從Web應用程序向移動應用程序的移植,同時增添了Bootstrap缺失的許多組件,比如切開關、覆蓋、側邊欄、可滾動區域以及固定位置的導航條。庫包括fastclick.js和overthrow.js。

7.Onsen UI

來自Asial Corp. — Onsen基于HTML和CSS而建,旨在與并非預先集成的PhoneGap和Cordova協同運行。它還可以與Angular和jQuery協同運行。顧名思義,該程序強調用戶界面開發,并提供了一系列廣泛的基于Web的用戶界面組件和特性,比如表格的雙列視圖。(然而,仍然缺少Material Design。)這個文檔完備的程序針對這樣的jQuery Mobile用戶:既需要易于使用,又想要更多的功能、更高的性能和更豐富的用戶界面特性。總部位于東京的Asial正在開發一種拖放式GUI工具,該公司還開發和維護Monaca。

9.Sencha Touch

來自Sencha — Sencha的成熟的、面向企業的HTML5/Java框架既有開源版,又有商業版。Sencha建立于ExtJS的基礎上,能夠獲得類似原生的性能。它為HTML5提供了可視化應用程序構建器,另外還提供了重復使用自定義組件的功能。原生包裝器簡化了分發到Google Play等應用程序商店的工作。

8.React Native

來自Facebook — React Native是一種開源框架,從Facebook的React Java框架派生而來,眾所周知,Java框架取代了早些時候的HTML5基礎。顧名思義,這個面向iOS的高端程序與其說是一種跨平臺框架,還不如說是原生程序包裝器,但是由于新增了對安卓的支持,它很適合我們的要求,因為你實際上只要用Java編寫一次代碼,就能移植到這兩個平臺。目前,只有OS X桌面得到全面支持,不過也有試驗性的Linux和Windows版本面向安卓開發。

10.Titanium

來自Appcelerator —不像那些比較偏向Web的框架,Titanium使用Java來構建原生代碼,聲稱有望提升性能。這種基于Node.js的軟件開發工具包(SDK)為iOS、安卓、Windows、黑莓和HTML5提供了5000多個API。Titanium更廣為人知的地方是性能和豐富的功能特性,而不是易用性。軟件是開源,不過只要你不發布你的應用程序,功能齊全的免費版可以免費享用,眼下你每月至少得支付39美元。

web開發中哪個后端語言開發效率最高_web后端開發主要用到哪些技術

JavaScript

按照當前的流行趨勢來看,JavaScript是一門性價比非常高的語言。因為只要是Web,就會有前端,只要有前端,就需要有JavaScript。與此同時,Node.js在后臺中的地位已經愈發重要了。對一般的項目而言,可以使用它來完成前端和后臺,除此之外,還有移動應用。

在那些可以使用瀏覽器來運行的設備上,我們都可以使用JavaScript來開發使用,例如:

使用Node.js作為后臺語言,Express、Koa等作為后臺MVC框架,再選擇一個前端框架來實現前臺。

使用基于瀏覽器內核的桌面應用Electron,加上Node.js生態系統里的模塊來實現桌面應用。

使用混合應用移動框架Cordova,混合應用框架Ionic來實現跨平臺的移動應用。

使用Tessel和Ruff等硬件來開發移動應用。

人們使用WebView和JavaScript來開發應用的很大一部分原因是成本比較低。除了可以高效地開發UI,還支持跨平臺運行,即只需要編寫一次代碼就可以在不同的操作系統上運行,并且當應用對性能要求不高時,只要適當地優化,它就可以表現得相當不錯。

在這門語言里,有兩個后臺MVC框架比較流行。

Express:是在Node.js上最早的MVC框架,它由Ruby上的輕量級框架Sinatra啟發而來的。其框架本身封裝了大量實用的功能,核心特性是使用中間件來處理HTTP請求。

Koa:是由Express的核心開發者基于ES6新特性打造的新框架。與Express相比,去除了一些框架自帶的功能,更加輕量級,可以讓開發者有更多的選擇。

當然,這也意味著需要用戶自己去搭建這些環境。

簡單對比一下兩者,Express發展得比較早,其生態系統比較豐富,很容易找到所需要的插件。Koa則基于ES6語言帶來一些新的特性,實時解決舊語言的一些問題,如回調等。

Python

Python誕生得比較早,其語言特性是做事情只有一種方法,這個特點也決定了這門語言很簡單。與JavaScript相比,它仍是一門性價比非常高的語言,只是它不能在前端運行。

Python是一門簡潔的語言,有大量的數學、科學工具、人工智能的庫,這意味著在不遠的將來它會發揮更大的作用。同時在Web開發領域也有廣泛的應用,除了正常的Web開發,它還在網絡爬蟲中廣受歡迎。

同樣,在Python語言里也有兩個不錯的框架可以選擇,其中的Django是重量級框架,Flask則是輕量級框架。

Django:最早是被應用于內容管理系統而開發的,其框架里自帶了相當多的組件:ORM、表單序列化及驗證系統、后臺系統、緩存框架、中間件支持等。在其官網上宣稱是:TheWebframeworkforwithdeadlines,它既可以滿足完美主義者,又可以在截止期限前交付軟件。

Flask:是一個輕量級的框架,它只有簡單的核心部分。換句話說,你可以按自己的需要添加ORM、用戶認證、文件上傳等功能。在今天來看,它的生態系統也相當豐富,可以完成絕大部分功能。

選擇Flask而不是選擇Django的原因是:Django本身規定好了一系列的規范和習慣。

因而在編程時,我們只需要按步驟一步步往下走即可。

本書采用Django作為Web開發框架的主要原因是,它適合作為CMS框架,并且提供了豐富的組件功能,如用戶權限管理、自帶后臺管理系統、ORM等。

Java

在今天看來,Java仍然受企業歡迎,除了在企業級Web系統開發上,它還在Android應用的開發上綻放光彩。

在校期間,筆者一點兒也不喜歡Java。后來才發現,我從Java中學到的東西比從其他語言中學的東西還多。如果Oracle不毀壞Java,那么它會繼續存活很久。我可以用JavaScript造出各種我想要的東西,但是通常我無法保證它們是優雅地實現。過去人們在Java上花費了很多時間,或在架構上,或在語言上,或在模式上。由于這些投入,都給了人們很多啟發。這些都可以用于新的語言和新的設計,畢竟沒有什么技術是獨立于舊的技術產生的。

由于在Java語言里,筆者主要接觸的是Spring框架,因此下面討論一下Spring。

SpringMVC:是由Spring框架提供的構建Web應用程序的全功能MVC模塊。由于框架本身高度可配置,即可以直接使用編寫XML而不是Java來實現功能。它是一個典型的MVC框架,并且也是一個純正的servlet系統。

SpringBoot:其作用在于創建和啟動新的基于Spring框架的項目。系統本身做好了對不同框架的配置與集成,我們只需要對其配置,并編寫少量的代碼即可。

如果你正在考慮使用Spring框架,建議使用SpringBoot。

PHP

PHP是一門很容易上手的語言,由于其容易上手,并且發展得比較成熟。因此,有相多當的個人網站使用它作為開發語言,如Facebook這樣大流量的網站也在使用它。另外,不得不提及的是WordPress已經占領了CMS市場超過一半的份額,并且它也占領了全球網站的四分之一。WordPress原生是為博客系統而創建的開源框架,由于博客系統和內容管理系統在功能上很多是相似的,因此它成了最具知名度的內容管理系統(systemCMS)。

在這里并不基于WordPress來開發內容管理系統,因為它已經是一個相當成熟的框架了。如果你需要一個博客系統或者內容管理系統,首選WordPress,然后才是自己編寫。

PHP在框架方面有比較多的選擇,遺憾的是,筆者只對Laravel比較了解。它是在PHP5.3之后開發的新框架,其類似于RubyonRails—為PHP程序員提供快速開發的機制—提供快速開發的工具集,如生成代碼、數據遷移、ORM等。

Ruby

Ruby是一門優美而巧妙的語言,它可以使編寫出來的代碼看上去更自然、簡潔,更具有表達力,因此深受程序員歡迎。早期Ruby語言的應用場景特別少,直至RubyOnRails的出現。它是嚴格按照MVC結構開發的Web開源框架,其致力于提升程序員的快樂感和生產效率—快速創建頁面、模板和查詢功能等。不過如今由于可維性和性能的問題,它正在逐漸被替換。只是對初創公司來說,它的開發效率仍使得它是一個不錯的選擇,隨后在業務穩定后使用其他框架來替換。

同樣,由于RubyOnRails是一個重量級的選擇,Ruby程序員也推出了自己的輕量級框架Sinatra。它是一個基于Ruby語言的DSL(領域專屬語言),由于其代碼行數少,且簡單、簡潔,可以很容易深入理解框架并對其做出定制

然后就是看項目需要以及團隊優勢進行選擇

Web前端開發必備的開源框架有哪些

今天小編要跟大家分享的文章是關于Web前端開發必備的開源框架有哪些。大多數人想到Web開發時,通常會想到HTML或JavaScript,往往忽略了CSS,根據Wikipedia的說法,CSS既是網頁中最重要也是最常被遺忘的部分之一,盡管它是萬維網的三大基礎技術之一。

今天就和大家分享9個流行的、強大的前端開源框架,幫助你輕松構建漂亮的網站前端。下面來和小編一起看一看吧!

1、Bootstrap

Bootstrap無疑是最流行的CSS框架,它是最早的Web前端框架,由Twitter開發。Bootstrap還提供了許多示例來幫助你入門。

使用Bootstrap,你可以將不同的組件和布局組合在一起,從而創建有趣的頁面設計。它還提供了大量詳細的文檔。目前在Github上已經有1100多個貢獻者,19000多個提交。(Github地址:買粉絲s://github.買粉絲/twbs/bootstrap)

2、PatternFly

PatternFly是Red

Hat的開源CSS框架,和Bootstrap不同的是,Bootstrap是為那些想要創建漂亮網站的人而設計的,而PatternFly主要專注于企業應用程序開發人員,提供諸如條形圖、圖表、導航之類的組件,實際上Red

Hat就是使用它創建了OpenShift。

除了靜態HTML,PatternFly還支持ReactJS框架,這是Facebook開發的流行JavaScript框架。PatternFly具有許多適用于企業級應用程序的高級組件,如條形圖,圖表,模式和布局。

PatternFly在GitHub上一共有1,050多個提交和44個貢獻者。(Github地址:買粉絲s://github.買粉絲/patternfly/patternfly)

3、MaterialComponentsfortheweb

MaterialComponentsfortheweb(MDCWeb),是谷歌專為Web設計的全新前端框架。MDC

Web可幫助開發人員執行Material

Design,組件由谷歌的核心工程師團隊和UX設計人員開發。這些組件可以建立可靠的開發工作流程,以構建美觀且功能強大的Web項目。

MDC

Web在Github上共有5700多個提交和349個貢獻者。(Github地址:買粉絲s://github.買粉絲/material-買粉絲ponents/material-買粉絲ponents-web)

4、Pure

Bootstrap,Patternfly和MDC

Web是功能非常強大的CSS框架,但它們可能非常繁瑣和復雜。如果你想要一個輕量級的CSS框架,可以嘗試Pure.css,它本身更接近于CSS編程,但又可以幫助你構建一個不錯的網頁。Pure是具有最小占用空間的輕量級CSS框架,它由Yahoo開發,根據BSD許可是開源的。

Pure在Github上共有565多個提交和59個貢獻者。(Github地址:買粉絲s://github.買粉絲/pure-css/pure)

5、Foundation

Foundation聲稱是世界上最先進的響應式前端框架。它提供了用于構建專業網站的高級功能和教程。許多公司,組織都使用該框架,并且該框架具有大量可用的文檔。

Foundation在Github上有將近17000個提交和1000個貢獻者。(Github地址:買粉絲s://github.買粉絲/foundation/foundation-sites)

6、Bulma

Bulma是一個基于Flexbox的開源框架,可根據MIT許可證開源。Bulma是一個非常輕量級的框架,因為它只需要一個CSS文件。Bulma擁有簡潔明了的文檔,可輕松選擇你想要的主題。它還具有許多Web組件,你可以在設計中使用它們。

Bulma在Github上有1400多個提交和300個貢獻者。(Github地址:買粉絲s://github.買粉絲/jgthms/bulma)

7、Skeleton

如果說還有什么框架比Pure更加輕量級,那一定是Skeleton。Skeleton庫只有大約400行,并且該框架僅提供一些基本的CSS框架組件。盡管如此,Skeleton還是提供了詳細的文檔來幫助你快速上手。

Skeleton在Github上共有167個提交和22個貢獻者,但它不是最活躍的項目,它最新一次的更新是在2014年。(Github地址:買粉絲s://github.買粉絲/dhg/Skeleton)

8、Materialize

Materialize是一個基于Material

Design風格的一個現代化的響應式前端框架,解決了最繁重的工作,結合你的自定義組件,為你提供默認的樣式。Materialize的文檔頁面非常全面,并且很容易遵循。其組件頁面包括按鈕,卡片,導航等。

Materialize在Github上共有3800多個提交和250個貢獻者。(Github地址:買粉絲s://github.買粉絲/Dogfalo/materialize)

9、Bootflat

Bootflat是從Twitter的Bootstrap派生的開源CSS框架。與Bootstrap相比,Bootflat更簡單,并且更加輕量級。Bootflat的文檔似乎幾乎受到了IKEA的啟發,大部分都是圖像,沒有太多的文字。

Bootflat是在MIT許可證下開源的,在Github上有159個提交和8個貢獻者。(Github地址:買粉絲s://github.買粉絲/bootflat/bootflat.github.io)

開源最前線(ID:OpenSourceTop)猿妹編譯

鏈接:#/article/20/4/open-source-css-frameworks

web前端開源框架有哪些

目前常用的一些開源前端的框架如下:

1. Bootstrap

Boostrap絕對是目前最流行用得最廣泛的一款框架。它是一套優美,直觀并且給力的web設計工具包,可以用來開發跨瀏覽器兼容并且美觀大氣的頁面。它提供了很多流行的樣式簡潔的UI組件,柵格系統以及一些常用的JavaScript插件。

Bootstrap是用動態語言LESS寫的,主要包括四部分的內容:

腳手架——全局樣式,響應式的12列柵格布局系統。記住Bootstrap在默認情況下并不包括響應式布局的功能。因此,如果你的設計需要實現響應式布局,那么你需要手動開啟這項功能。

基礎CSS——包括基礎的HTML頁面要素,比如表格(table),表單(form),按鈕(button),以及圖片(image),基礎CSS為這些要素提供了優雅,一致的多種樣式。

組件——收集了大量可以重用的組件,如下拉菜單(dropdowns),按鈕組(button groups),導航面板(navigation 買粉絲ntrol)——包括:tabs,pills,lists標簽,面包屑導航(breadcrumbs)以及頁碼(pagination),縮略圖(thumbnails),進度條(progress bars),媒體對象(media objects)等等。

JavaScript——包括一系列jQuery的插件,這些插件可以實現組件的動態頁面效果。插件主要包括模態窗口(modals),提示效果(tool tips),“泡芙”效果(popovers),滾動監控(scrollspy),旋轉木馬(carousel),輸入提示(typeahead),等等。

Bootstrap已經足夠強大,能夠實現各種形式的 Web 界面。為了更加方便地利用Bootstrap進行開發,很多工具和資源可以用來配合使用,下面列舉了其中的一部分工具和資源。

jQuery UI Bootstrap —— 對于jQuery和Bootstrap愛好者來說這是個非常好的資源,能夠把 Bootstrap的清爽界面組件引入到jQuery UI中。

jQuery Mobile Bootstrap Theme —— 和上面提到的jQuery UI主題類似,這是一個為jQuery mobile建立的主題。如果你想讓用Bootstrap開發的網站在手機端也可以優雅訪問,那么這個資源對你來說很方便易用。

Fuel UX —— 它為Bootstrap添加了一些輕量的JavaScript控件。Fuel UI 安裝,修改,更新以及優化都很簡單方便。

StyleBootstrap.info —— Bootstrap提供了自己的幾種界面風格,StyleBootstrap提供了更多的配色選項,并且你可以給每個組件都應用不同的配色。

BootSwatchr —— 利用這個工具你可以立刻查看主題修改后的效果。對于每一次變動的效果,這個應用都會生成一個唯一的URL方便你與他人分享,你也可以在任意時刻修改你的主題。

Bootswatch —— 提供大量免費的Bootstrap主題。

Bootsnipp —— 在線前端框架交互組件制作工具,是一個供給設計師和開發者的基于Bootstrap HTML/CSS/JavaScript 架構的免費元素。

LayoutIt —— 通過界面拖放生成器簡便快捷地創建基于Bootstrap的前端代碼。通過拖放動作將Bootstrap風格的組件加入到你的個人設計里并且可以方便地修改他們的屬性,簡單便捷。

2、flex

Apache基金會發布了Flex 4.8版本,這是Adobe將Flex捐獻給Apache基金會后發布的第一個版本

需要注意的是

2014年03月10日,Apache Flex技術社區發布了全新的Apache Flex 4.12.0版本,該版本是Apache Flex 4.11.0的升級版本,改進的功能包括:

◆支持最新版本的Flash Player

◆支持最新的AIR運行時

◆改進了內存占用和性能

◆改善了針對移動平臺的組件的樣式

◆支持iOS7系統

◆修復了超過80個漏洞[4]

2014年05月10日,Apache對4.12.0版本進行優化改進,發布了Flex 4.12.1,新版本加入對全新Flash Player及Air運行時的支持,改進對移動媒體查詢的支持,并修復20多個Bug。

3、easyui

easyui幫助你構建你的web應用更加容易。

它是一個基于jquery的插件,開發出來的一套輕量級的ui框架,非常小巧而且功能豐富。

但是她有一個最大的問題就是代碼只能找到以前的開源的版本,到了1.2以后的版本源代碼都是經過混淆的,如果遇到問題修改起來會非常麻煩!不過一個比較大的優勢是開源免費,并且界面做的還說的過去!

4、jQuery UI

jQuery UI 是一套 jQuery 的頁面 UI 插件,包含很多種常用的頁面空間,例如 Tabs(如本站首頁右上角部分) 、拉簾效果(本站首頁左上角)、對話框、拖放效果、日期選擇、顏色選擇、數據排序、窗體大小調整等等非常多的內容。

功能非常全面,界面也挺漂亮的,可以整體使用,也可以分開使用其中的幾個模塊,免費開源!

5、DWZ

DWZ富客戶端框架(jQuery RIA framework), 是中國人自己開發的基于jQuery實現的Ajax RIA開源框架.

設計目標是簡單實用,快速開發,降低ajax開發成本。

歡迎大家提出建議,我們將在下一版本中進一步調整和完善功能.共同推進國內整體ajax開發水平。

畢竟是國產的,支持一下,而且源碼完全公開,可以選擇一下!不過性能怎么樣不敢確定!

6、GWT

你不用去了解這樣那樣的javascript框架,通過java你就可以寫出功能豐富的界面,可以做單元測試,畢竟是google的產品,嚴重支持一下!

7、YUI

Yahoo! UI Library (YUI) 是一個開放源代碼的 JavaScript 函數庫,為了能建立一個高互動的網頁,它采用了AJAX, DHTML 和 DOM 等程式碼技術。它也包含了許多 CSS 資源。使用授權為 BSD許可證,基本上沒怎么研究過!

YUI Compressor倒是挺出名的,這套UI庫不知道應用的情況怎么樣!

10、Sencha

Sencha 是由 ExtJS、jQTouch 以及 Raphael 三個項目合并而成的一個新項目。

大公司的框架,并且是幾樣庫的強強聯合,值得推薦!

8、Dojo

在國內應用好像不是很廣,不過性能上應該沒問題。

Dojo是一個用javascript語言實現的開源DHTML工具包。

有多個基金會的支持,包括IBM和SUN,都是軟件界的泰斗,值得信賴!

9、ZK

ZK是 一套以 AJAX/XUL/Java 為基礎的網頁應用程式開發框架,用于豐富網頁應用程式的使用接口。最大的好處是,在設計AJAX網絡應用程式時,輕松簡便的操作就像設計桌面程式一樣。 ZK包含了一個以AJAX為基礎、事件驅動(event-driven)、高互動性的引擎,同時還提供了多樣豐富、可重復使用的XUL與HTML組件,以 及以 XML 為基礎的使用接口設計語言 ZK User-interfaces Markup Language (ZUML)。

功能豐富,全面,文檔齊全,而且升級了很多次,非常值得推薦!

10、OperaMasks-UI

OperaMasks- UI是OperaMasks團隊 2011下半年打造的一款輕量級前端JS組件庫,旨在提供一款學習曲線低、定制性靈活、樣式統一,且多瀏覽器支持、覆蓋企業業務場景的前端 JavaScript UI組件庫。目前,該團隊已將這一產品以LGPL 開源協議開放給社區。

文檔豐富,功能齊全,而且很容易使用和開發!而且是國產的喲!

11、JavaFX

Sun 公司(已于2009年被Oracle公司收購)在2008年12月05日發布了JavaFX技術的正式版,它使您能利用 JavaFX 編程語言開發富互聯網應用程序(RIA)。JavaFX Script 編程語言(以下稱為JavaFX)是Sun微系統公司開發的一種declarative, statically typed(聲明性的、靜態類型)腳本語言。JavaFX技術有著良好的前景,包括可以直接調用Java API的能力。因為 JavaFX Script是靜態類型,它同樣具有結構化代碼、重用性和封裝性,如包、類、繼承和單獨編譯和發布單元,這些特性使得使用Java技術創建和管理大型程序 變為可能。

最常用Python開源框架有哪些

django

flask等等

建議先把django學會,慢慢來,舉一反三。前期比較困難。

android app開發中常用到哪些開源框架

在前面的課程中,隨著對Android體系的了解,已經可以進行正常的Android應用開發了。在Android開發中,同其他工程開發一樣,也經常使用一些提高效率的框架,本文我們做一個對比。這些框架,既包括:網絡請求框架、也包括圖片加載庫框架、還包括數據庫操作等一些框架,總之,了解和熟悉這些框架,會對自己的開發效率有很大的提升和幫助。

網絡請求框架

1、okHttp

在前文的學習中,我們已經了解過okHttp,是一個常用的網絡加載庫。

2、Retrofit

介紹

Retrofit是一個很不錯的網絡請求庫,該庫是square開源的另外一個庫,之前的ok買粉絲也是該公司開源的。

Retrofit是基于OkHttp封裝的RESTful網絡請求框架,使用注解的方式配置請求。優點是速度快,使用注解,callback函數返回結果自動包裝成Java對象。官方自己的介紹說:

A type-safe REST client for Android and Java

該網絡框架在github上的地址如下:買粉絲s://square.github.io/retrofit/

要求

Retrofit支持的買粉絲方式方式包括 GET/POST/PUT/DELETE/HEAD/PATCH,Retrofit要求Java的版本是1.8+,Android應用的API版本應該在21+。

依賴

使用Retrofit庫,和其他庫一樣,首先需要設置依賴,依然是在build.gradle文件中設置依賴:

//添加retrofit庫依賴

implementation ‘買粉絲.squareup.retrofit2:retrofit:2.1.0’

//添加gson轉換器

implementation ‘買粉絲.squareup.retrofit2:買粉絲nverter-gson:2.1.0’

使用

通過一個例子,我們可以來演示該框架的使用步驟:

1、定義請求接口,即程序中都需要什么請求操作

public interface HttpServices {

/

**

獲取頭條新聞

@param type 新聞類型

@param key apiKey

@return

*/

@GET(“toutiao/index”)

Call getNewsList(@Query(“type”) String type, @Query(“key”) String key);

}

2、實例化Retrofit對象,使用的Builder的模式創建,如下代碼所示:

Retrofit retrofit = new Retrofit.Builder()

.baseUrl(Constants.BASE_API)

.addConverterFactory(GsonConverterFactory.create())

.build();

注意,這里設置結構體轉換器,是可以直接把網絡請求回來的數據轉換為Java結構體,這里設置的Gson解析器,因此要引入相應的轉換器支持庫。

3、得到接口對象,自己創建的全局的接口對象,并調用相應的接口,得到一個類似于請求Call對象。如下所示:

HttpServices 買粉絲Services = retrofit.create(HttpServices.class);

Call newsListCall = 買粉絲Services.getNewsList(“top”, Constants.API_KEY);

4、加入到請求隊列中,并設置回調方法:

newsListCall.enqueue(new Callback() {

@Override

public void onResponse(Call call, Response response) {

//網絡請求成功的回調方法

List list = Arrays.asList(response.body().result.data);

Log.i(“TAG”, “請求成功:” + String.valueOf(list.size()));

NewListAdapter adapter = new NewListAdapter(RetrofitActivity.this);

adapter.setmData(list);

mRecyclerView.setAdapter(adapter);

}

@Override

public void onFailure(Call call, Throwable throwable) {

//網絡請求失敗的回調方法

Log.i(“TAG”, “請求失敗:” + throwable.getMessage());

}

});

其他界面操作和之前的Android中的內容一致。

3、RxJava

簡單來說,用來處理事件和異步任務,在很多語言上都有實現,RxJava是Rx在Java上的實現。

原理

RxJava最基本的原理是基于觀察者模式來實現的。通過Obserable和Observer的機制,實現所謂響應式的編程體驗。

特點

RxJava在編程中的實現就是一種鏈式調用,做了哪些操作,誰在前誰在后非常直觀,邏輯清晰,代碼維護起來非常輕松。

RxJava也是一個在github上的庫,github買粉絲://買粉絲.xingkongmj.買粉絲/news/id/62.買粉絲地址如下:買粉絲s://github.買粉絲/ReactiveX/RxJava

基于此,還有一個RxAndroid,github地址如下:買粉絲s://github.買粉絲/ReactiveX/RxAndroid

RxJava和RxAndroid的關系

RxAndroid是RxJava的一個針對Android平臺的擴展,主要用于 Android 開發。

基本概念

RxJava 有四個基本概念:

Observable:可觀察者,即被觀察者Observer:觀察者subscribe:訂閱事件

這四個概念之間的邏輯關系是:Observable和Observer通過subscribe方法實現訂閱關系,從而Observable可以在需要的時候發出事件來通知Observer。

事件

RxJava 的事件回調方法主要包含以下幾個:

onNext:普通的事件onCompleted買粉絲://dachang.買粉絲/432717.買粉絲:事件隊列完結。RxJava 不僅把每個事件單獨處理,還會把它們看做一個隊列。RxJava 規定,當不會再有新的 onNext 發出時,需要觸發 onCompleted 方法作為標志。:事件隊列異常。在事件處理過程中出異常時, 會被觸發,同時隊列自動終止,不再允許再有事件發出。在一個正確運行的事件序列中, onCompleted和 有且只有一個,并且是事件序列中的最后一個。需要注意的是,onCompleted() 和 () 二者也是互斥的,即在隊列中調用了其中一個,就不應該再調用另一個。

數據庫操作框架

在開發時,本地數據庫可以起到緩存數據和存儲業務數據的作用,隨著技術的成熟,不斷推出了有很多關于數據庫的操作框架。比較常見的數據庫操作框架有諸如:GreenDao,OrmLite 和 ActiveAndroid,DBFlow等。

GreenDAO

GreenDAO是一個開源的 Android ORM(“對象/關系映射”),通過 ORM(稱為“對象/關系映射”),在我們數據庫開發過程中節省了開發時間!

GreenDao的官方文檔地址如下:買粉絲://買粉絲.xingkongmj.買粉絲/news/id/63.買粉絲

GreenDao的作用

通過 GreenDao,我們可以更快速的操作數據庫,我們可以使用簡單的面相對象的API來存儲,更新,刪除和查詢 Java 對象。這款數據庫操作框架的特點是:

高性能,在官方的統計數據中,GreenDao在GreenDao,OrmLite 和 ActiveAndroid三個框架中,讀、寫、更新操作效率均表現第一。易于使用的強大 API,涵蓋關系和連接。內存消耗較小。安全:greenDAO 支持 SQLCipher買粉絲://買粉絲.xingkongmj.買粉絲/news/id/64.買粉絲,以確保用戶的數據安全;

核心概念

GreenDao 的核心類有三個:分別是:

DaoMaster:保存數據庫對象(SQLiteDatabase)并管理特定模式的 DAO 類(而不是對象)。它有靜態方法來創建表或刪除它們。它的內部類 OpenHelper 和DevOpenHelper 是 SQLiteOpenHelper 實現,它們在 SQLite 數據庫中創建模式。DaoSession:管理特定模式的所有可用 DAO 對象,您可以使用其中一個getter方法獲取該對象。DaoSession 還提供了一些通用的持久性方法,如實體的插入,加載,更新,刷新和刪除。XXXDao:數據訪問對象(DAO)持久存在并查詢實體。對于每個實體,greenDAO 生成DAO。它具有比 DaoSession 更多的持久性方法。Entities:可持久化對象。通常, 實體對象代表一個數據庫行使用標準 Java 屬性(如一個POJO 或 JavaBean )。

使用

按照官方的文檔和github上的說明可以實現green的使用。

首先進行的是依賴,對于greenDao,有兩個地方需要設置,分別是項目根目錄中的 build.gradle,還有mole中的build.gradle。

classpath ‘org.greenrobot:green-gradle-plugin:3.3.0’ // add plugin

在項目根目錄中的build.gradle目錄中寫這句話的意思是添加greenDao的插件。

在項目mole中的build.gradle中也需要進行配置,有兩個地方需要設置,如下圖所示:

apply plugin: ‘org.greenrobot.green買粉絲://買粉絲.xingkongmj.買粉絲/news/id/66.買粉絲’ //開頭加入該代碼

dependences{

implementation ‘org.greenrobot:green:3.2.0’

}

然后就可以使用了。

bean實體

可以在項目中創建自己業務需要的實體類,并通過注解來設置是實體類,字段約束等內容。然后點擊Android Studio中的Make mole,即可自動生成XXXDao代碼,以此來方便開發者的操作。生成的XXXDao類,不可修改和編輯,是自動生成的。

ORMLite

ORMLite框架是另外一款Android開發中可以使用的數據庫操作框架。該框架的文檔地址如下:買粉絲s://ormlite.買粉絲/sqlite_java_android_orm.s買粉絲

該框架的文檔準備的不是特別友好,此處不再贅述。

總結,所有的框架原理幾乎都相差不大,只是操作有所差異。

視圖注入框架

在Android項目開發過程中,有太多的頁面需要布局完成,同時在代碼中需要些大量的findviewbyid的操作,來實現控件的解析。于是就有人想能否輕松一些,解放雙手節省時間,干一些其他有意義的事情,于是ButterKnife就來了。

ButterKnife是一個專注于Android系統的View注入框架,可以減少大量的findViewById以及setOnClickListener代碼,可視化一鍵生成。

該項目在github上的地址如下:買粉絲://買粉絲.xingkongmj.買粉絲/news/id/65.買粉絲

這個框架的優勢也非常明顯:

強大的View綁定和Click事件處理功能,簡化代碼,提升開發效率方便的處理Adapter里的ViewHolder綁定問題運行時不會影響APP效率,使用配置方便代碼清晰,可讀性強

使用

首先是設置依賴,在build.gradle買粉絲://dachang.買粉絲/432714.買粉絲中進行依賴設置:

implementation ‘買粉絲.jakewharton:butterknife:10.2.1’

annotationProcessor ‘買粉絲.jakewharton:butterknife-買粉絲piler:10.2.1’

需要注意,該框架要求Java環境1.8版本以上,SDK版本在26以上,因此在使用到的mole中的build.graldle文件中,還必須添加如下代碼配置:

apply plugin: ‘買粉絲.jakewharton.butterknife’

android{

//…

買粉絲pileOptions {

sourceCompatibility JavaVersion.VERSION_1_8

targetCompatibility JavaVersion.VERSION_1_8

}

//…

}

另外,還必須在項目根目錄中的build.gradle文件中,添加該框架的插件,如下圖所示:

dependences{

classpath ‘買粉絲.jakewharton:butterknife-gradle-plugin:10.2.1’

}

然后即可在代碼中進行使用了。

在使用該框架的頁面進行綁定諸如,如下所示代碼:

ButterKnife.bind( this) ;

主要的功能

@BindView():控件id 注解,解放雙手,不用再每個控件都寫一遍findviewById@BindViews():多個控件id 的注解,括號內使用花括號包括多個id即可,中間用,分割開在Fragment中使用,綁定Fragment。@BindString():綁定字符串@BindArray:綁定數組@BindBitmap:綁定bitmap資源@OnClick、@OnLongClick:綁定點擊事件和長按事件…還有很多

插件安裝

如果是頁面很復雜,一個一個寫BindView也很費勁,在Android Studio中,可以安裝一個ButterKnife的插件,安裝該插件后,可以在Studio中直接將對應的布局中的所有控件均給自動生成。

注意,在進行自動生成時,鼠標要放在布局文件上。

注意事項

ButterKnife框架在使用時,要求的版本比較高,包括Java的版本也有限制。因此,如果計劃在項目中使用,要提前做好預備工作,以防止對已有項目和業務帶來不必要的麻煩,反而影響工作進度。

很赞哦!(9)

Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款的名片

职业:程序员,设计师

现居:内蒙古锡林郭勒西乌珠穆沁旗

工作室:小组

Email:[email protected]