排名徹底是根據 GitHub 搜索 Java 語言選擇 (Best Match) 獲得的結果, 而後過濾了跟 Android 不相關的項目, 因此排名並不具有任何官方效力, 僅供參考學習, 方便初學者快速瞭解當前一些流行的 Android 開源庫。css
項目名稱 | 項目簡介 |
---|---|
1. react-native | 這個是 Facebook 在 React.js Conf 2015 大會上推出的基於 JavaScript 的開源框架 React Native, 該框架結合了 Web 應用和 Native 應用的優點, 可使用 JavaScript 來開發 iOS 和 Android 原生應用 |
2.Android-Universal-Image-Loader | ImageLoader 是最先開源的 Android 圖片緩存庫, 強大的緩存機制, 早期被普遍 Android 應用使用, 至今仍然有不少 Android 開發者在使用 |
3. RxJava | RxJava 是一個在 Java VM 上使用可觀測的序列來組成異步的, 基於事件的程序的庫, 簡單來講它就是一個實現異步操做的庫, RxJava 的優勢在於一個詞 "簡潔", 使用它就算你程序邏輯有多麼複雜, 它依然可以保持簡潔易懂 |
4. retrofit | Retrofit 是 Square 公司出品的 HTTP 請求庫, 同時是 Square 是最先開源項目之一, Retrofit 是目前 Android 最流行的 Http Client 庫之一, 目前版本是 Retrofit2.0 Beta4, 愈來愈多 Android 開發者開始使用這個請求庫了 |
5. okhttp | OkHttp 是 Square 公司出品的 HTTP 另外一個請求庫, Google 不推薦人們使用 HttpClient, 但是 HttpURLConnection 實在是太難用了, 所以不少人使用了 OkHttp 來解決這問題, 聽說 Android4.4 的源碼中能夠看到 HttpURLConnection 已經替換成 OkHttp 實現呢 |
6. SlidingMenu(不建議使用) | 一個側滑菜單開源庫, 在 Google 本身原生態的側滑菜單 NavigationDrawer 沒有出現以前, 這個庫就已經被普遍使用, 但是到如今這個庫已經被放棄了 |
7. picasso | Picasso 是 Square 公司出品的一款圖片緩存庫, 主導者是 JakeWharton 大神 |
8. android-best-practices | Android 開發最佳實踐, 裏面所介紹的經驗都是來自於 Futurice 公司 Android 開發者, 介紹內容有 Android 開發規範, 架構, 佈局技巧, 以及使用一些有助於快速開發相關工具等等, 很是適合新手去學習 |
9. EventBus | EventBus 是 Android 事件管理總線, 使用它能夠替帶 Android BroadCast, BroadCastReceiver, Handler 在 Activity, Fragment, Service, 線程之間傳遞消息, 大大簡化了事件傳遞邏輯 |
10. android-async-http | Android-Async-Http 是 Android 一款老牌異步請求庫, 專門對 Android 在 Apache 的 HttpClient 基礎上構建的異步 http 鏈接, 該庫有不少特徵, 例如: 庫的 size 小, 支持文件上傳不需使用第三方庫支持, 內部使用線程池來處理併發, 等等 |
11. fresco | Fresco 是 FaceBook 公司出品的一款圖片緩存庫, Fresco 是一個強大的圖片加載組件, 支持加載 Gif 圖和 WebP 格式, 支持 Android2.3(API level 9) 及其以上系統, Fresco 中設計了 Image pipeline 和 Drawees 兩個模塊各施其職, 使得圖片完美加載出來, 想知道更多 image pipeline 和 Drawees 有關於它的特性, 能夠到它官方平臺看介紹 |
12. zxing | ZXing 是二維碼領域中名氣最大的開源項目, 它提供了多個平臺的二維碼/條形碼掃描解決方案, 擁有掃描快, 識別率高, 使用簡單等特色 |
13. leakcanary | LeakCanary 是 Square 公司出的一款檢測內存泄露工具, 該工具能幫助你在開發階段方便的檢測出內存泄露的問題, 使用起來很是簡單方便 |
14. butterknife | 由 JakeWharton 大神開發出來的, ButterKnife 是 View 注入框架, 使用它爲了簡寫不少 findViewById 代碼, 同時還支持 View 的一些事件處理函數 |
15. MPAndroidChart | MPAndroidChart 是一款強大的 Android 圖表庫, 支持各類各樣圖表顯示, 能想到的圖表樣式這裏幾乎都有, 圖表還支持選擇, 拖放和縮放動畫效果 |
16. ActionBarSherlock (不建議使用) | ActionBarSherlock 這個庫是 JakeWharton 大神開發出來支持 Android3.0 如下版本的, 後來慢慢的 Google 也提供了 AppCompat 庫來支持 Android3.0 如下版本使用 ActionBar, 所以做者不建議咱們再使用這個庫了 |
17. androidannotations | AndroidAnnotations 是一個可以讓你快速進行 Android 開發的開源框架, 它能讓你專一於真正重要的地方, 使代碼更加精簡, 使項目更加容易維護, 它的目標就是 "Fast Android Development.Easy maintainance" |
18. ViewPagerIndicator | 由 JakeWharton 大神開發出來的一個 ViewPager 指示器, 使用起來簡單方便, 可高度定製, 開發出各類各樣動畫效果 |
19. glide | Glide 是 Google 員工的開源項目, 普遍應用於 Google 一些 App 上, 在2014年 Google I/O 大會上被推薦使用, Glide 和 Picasso 被人拿來比較研究過, Glide 與 Picasso 有 90% 的類似度, 但在一些細節上仍是有點區別的, 各有各優缺點看君選擇 |
20. HomeMirror | 開發者是由一名程序媛 Hannah Mittelstaedt , HomeMirror 是一款 Android 鏡子應用, 目前它能實現日期, 時間, 天氣, 生日信息, 事件提醒器, 騎車天氣的推薦, 股票信息, XKCD 漫畫網站的新帖等等 |
21. Android-PullToRefresh(不建議使用) | 一個強大的拉動刷新開源項目, 支持各類控件下拉刷新, ListView, ViewPager, WebView, ExpandableListView, GridView, ScrollView, Horizontal ScrollView, Fragment 上下左右拉動刷新, 不過如今這個項目已經中止維護更新了, 推薦使用Android-Ultra-Pull-To-Refresh |
22. MaterialDesignLibrary | 這個庫控件都是遵循了 Google Material Design 設計規範開發出來, 例若有: Flat Button, Rectangle Button, CheckBox, Switch, Progress bar circular indeterminate 等等 |
23. PhotoView | PhotoView 是 ImageView 的子類, 支持全部 ImageView 的源生行爲, 例如: 支持 Pinch 手勢自由縮放, 支持雙擊放大/還原, 支持平滑滾動等等, 而且很是方便的與 ImageLoader/Picasso 之類的網絡圖片讀取庫集成使用, 還方便的與 ViewPager 等一樣支持滑動手勢的控件集成 |
24. RxAndroid | 由 JakeWharton 大神主導開發的項目, RxAndroid 是 RxJava 的一個針對 Android 平臺的擴展, 主要用於 Android 開發 |
25. material-dialogs | Material Dialogs 是一個可高度定製易用, 符合 Material Design 風格的 Dialogs, 兼容 Android API8 以上版本, 我的使用感受它徹底可替代 Android 原生那個, 比原生那個更加簡單易用 |
26.Android-ObservableScrollView | ObservableScrollView 是一款用於在滾動視圖中觀測滾動事件的 Android 庫, 它可以垂手可得地與 Android 5.0 Lollipop 引進的工具欄 (Toolbar) 進行交互, 還能夠幫助開發者實現擁有 Material Design 應用視覺體驗的界面外觀, 支持ListView, ScrollView, WebView, RecyclerView, GridView組件 |
27. Android-Bootstrap | Android 版的 Bootstrap, 利用這個庫可以實現不少 Bootstrap 樣式風格, 以前有學過 Html 的人就知道 Bootstrap 是什麼玩意啦 |
28. AndroidSwipeLayout | 開發者是代碼家, AndroidSwipeLayout 是一個支持ListView, GridView, ViewGroup等等左右上下滑動出操做菜單, 相似 qq 消息列表向左滑動顯示出多某條信息的操做菜單 |
29. dagger | Dagger 是 Square 公司出品的一個針對 Android 和 Java 的快速依賴注入器, 可以有效減小你敲代碼量 |
30. ListViewAnimations | 一個輕輕鬆鬆給 Android ListView 添加動畫效果的庫, 支持的動畫有: Alpha, SwingRightIn, SwingLeftIn, SwingBottomIn, SwingRightIn and ScaleIn等等, 使用它能很容易就實現帥爆的效果 |
31.PagerSlidingTabStrip(不建議使用) | PagerSlidingTabStrip 是一個給 Android ViewPager添加上 ViewPager 滑動指示器, 從 GitHub 上面看, 這個庫彷佛沒有人在維護了, 所以不建議使用, 可以使用SmartTabLayout 來代替 |
32. AndroidViewAnimations | 開發者是代碼家, 這個庫實現不少很酷炫的 Android 動畫, 動畫效果是借鑑 Animate.css 來實現的, 很是酷, 並且這個使用起來也是很是簡單 |
33. AndroidSlidingUpPanel | AndroidSlidingUpPanel 是一個上拉麪板, 就是向上滑動的時候往上飛出一個顯示面板控件, 該庫效果在 Google Music, Google Maps and Rdio等 App 應用到 |
34. MaterialDrawer | MaterialDrawer 是一個相似 Google 官方 NavigationView 側滑顯示控件, 我的認爲 NavigationView 並無 MaterialDrawer 實用, 由於 NavigationView 自由度不是很好, 不少都寫死了不能夠自由定義佈局, 而 MaterialDrawer 可以實現跟 NavigationView 同樣的效果, 同時還支持自定義效果, 自由度很是高 |
35. Material-Animations | Material-Animations 是一個很好過渡動畫庫, 能夠應用於 Activity 與 Activity 之間的跳轉, Fragment 與 Fragment 之間的跳轉, 以及各個 View 變化先後的過渡動畫 |
36. MaterialViewPager | 一個簡單易用 Material Design 風格的 ViewPager 庫 |
37. ion | ion 是一個讓 Android 的網絡操做變得極其簡單, 支持異步獲取和處理JSON, 支持 Android 文件下載 (同時支持下載進度條綁定), 支持安全連接和代理 |
38. stetho | Stetho是 Facebook 出品的一個強大的 Android 調試工具,使用該工具你能夠在 Chrome Developer Tools查看App的佈局, 網絡請求(僅限使用Volley, okhttp的網絡請求庫), sqlite, preference, 一切都是可視化的操做,無須本身在去使用adb, 也不須要root你的設備 |
39. fastjson | Fastjson 是一個 Java 語言編寫的高性能功能完善的 JSON 庫. 它採用一種「假定有序快速匹配」的算法, 把 JSON Parse的性能提高到極致, 是目前Java語言中最快的JSON庫. Fastjson接口簡單易用, 已經被普遍使用在緩存序列化, 協議交互, Web輸出, Android客戶端等多種應用場景 |
40. cardslib (不建議使用) | Cardslib 是早期由 Gabriele Mariotti 開發的一個爲開發者方便實現各類 Card UI 的 Android 開源代碼庫, 後來 Google 官方提供本身封裝了 CardView 在 v7 包下, 使用 Google 官方的能夠徹底替代了這個庫, 所以這個也被棄用了 |
41. Android-Ultra-Pull-To-Refresh | 開發者是廖祜秋, 這個是一個很是強大的下拉刷新庫, 繼承 ViewGroup 能夠包含任何 View, 功能甚至比 SwipeRefreshLayout 強大, 使用起來也很是容易, 還能夠自由定製本身的 UI 樣式 |
42. greenDAO | greenDAO 是一個能夠幫助 Android 開發者快速將 Java 對象映射到 SQLite 數據庫的表單中的 ORM解決方案, 經過使用一個簡單的面向對象 API, 開發者能夠對 Java 對象進行存儲, 更新, 刪除和查詢, greenDAO 相對 OrmLite, AndrORM 這兩個 ORM 開源庫, 性能是最高的 |
43. AndroidStaggeredGrid | AndroidStaggeredGrid 是一個支持多列而且每一行的 item 大小不一, 交錯排列的 GridView, 就是實現瀑布流樣式效果, 目前該庫已經被棄用了, 開發者建議咱們使用 Google 官方控件 RecyleView 中的 StaggeredGridLayoutManager 佈局來實現瀑布流效果 |
44. otto | Otto 是 Square 公司出的一個事件庫 (pub/sub 模式), 用來簡化應用程序組件之間的通信, otto 修改自 Google 的 Guava 庫, 專門爲 Android 平臺進行了優化, 與上面介紹的 EventBus 相比, 兩個庫各有各的優勢, 徹底取決於咱們本身項目的需求來選擇它們哪個 |
45. xUtils | xUtils 是一個快速開發框架, 裏面包含 DbUtils, ViewUtils, HttpUtils, BitmapUtils 四大模塊, 可用於快速開發, 支持大文件上傳, 擁有更加靈活的 ORM, 最低兼容 Android 2.2 |
46. realm-java | Realm 一個輕量的 Android 版本的數據存儲庫, 比 Android 原生系統的 SQLite 更加簡潔快速對數據進行操做 |
47.Android-CleanArchitecture | CleanArchitecture 是一個很是典型使用 MVP 架構的項目, 你們若是尚未理解 MVP 架構的能夠看看這個項目 |
48. StickyListHeaders | StickyListHeaders 是一個實現可以固定在屏幕頂部的ListView Section Header庫, 就是當前 section 的 header 固定在屏幕頂部, 當滑動到其餘 section 時, 其餘 section 的 header 會代替以前的 section 的 header, 固定到屏幕頂部, 相似於 Android4.0 的手機通信錄的效果 |
49. AppIntro | AppIntro 是一個讓人輕鬆快速搭建漂亮酷炫的引導頁庫 |
50. ActiveAndroid | ActiveAndroid 是採用Rails中的 Active Record架構模式設計的適用於 Android 平臺的輕量級 ORM 架構, 幾乎能夠不用寫任何 SQL 代碼實現快速開發 |
51. android-volley | Volley 是谷歌官方開發團隊在 2013 年 Google I/O 大會推出的一個新的網絡通訊框架, 這個框架把 AsyncHttpClient 和 Universal-Image-Loader 的優勢集於了一身,既能夠像AsyncHttpClient 同樣很是簡單地進行 HTTP 通訊,也能夠像 Universal-Image-Loader 同樣輕鬆加載網絡上的圖片, 這個庫並非官方的, 只是託管同步在 Maven, 官方只提供的 Jar 包 |
52. twoway-view | TwoWayView 是簡化 RecyclerView 開發的一個庫, 能夠在其 Base LayoutManager 基礎上構建各類各樣的佈局, 該庫內置了幾個經常使用佈局 List, Grid, Staggered Grid,Spannable Grid |
53. ShowcaseView | ShowcaseView 是一個很是適合用於對用戶進行第一次使用進行指導的庫,使用起來很是簡單還能夠自定義樣式 |
54. Calligraphy | Calligraphy 是一個用來簡化 Android 應用使用自定義字體的類庫, 該類庫會自動查找應用中的 TextView 並設置其使用的字體 |
55. NineOldAndroids | NineOldAndroids 由 JakeWharton 大神開發的一個向下兼容的動畫庫, 主要是使低於API 11的系統也可以使用 View 的屬性動畫, 不過如今 JakeWharton 大神已經不推薦使用該庫, 而是推薦咱們使用官方封裝在 Support 庫裏面的動畫 |
56. android-floating-action-button | FloatingActionButton 是一個懸浮操做按鈕, 官方在 Support Design 包下也有封裝一個相似這個庫效果的 FloatingActionButton, 值得說明的是這個庫是早在官方封裝以前就存在的, 我的感受這個庫比官方那個更加好用 |
57. CircleImageView | CircleImageView 是一個輕鬆幫你實現圓形效果 ImageView 圖片庫, CircleImageView 是基於 ImageView 擴展出來, 所以它擁有 ImageView 控件全部屬性, 簡單易用值得你使用的庫 |
58. material | Material 是將 Material Design 風格控件封裝在該庫當中, 目前封裝有Progress, Button, Switch, Slider, Spinner, Text Field, TabPageIndicator, SnackBar, Dialog, BottomSheetDialog, Dynamic theme |
59. ActionBar-PullToRefresh | ActionBar-PullToRefresh 是一個下拉刷新, 下拉刷新時在 ActionBar 出現加載中提示的庫 |
60. FloatingActionButton | 又一個懸浮操做按鈕庫, 該庫添加支持監聽滑滾動事件, 當向下滑時按鈕隱藏, 向上滑時按鈕顯示, 還有動畫效果, 支持監聽 ListView, ScrollView, RecylerView |
61. AndroidAsync | AndroidAsync 是一款基於 NIO 的低端 Android 異步 socket, http (client+server), websocket 和 socket.io 網絡通訊協議類庫 |
62. rebound | Rebound 是 Facebook 推出的一個彈性動畫庫, 可讓動畫看起來真實天然, 像真實世界的物理運動, 帶有力的效果, 使用的參數則是 Facebook 的 origami 中使用的 |
63. android-common | android-common-lib 是 Trinea 大神收集的一些開發通用的緩存, 公共 View 以及一些經常使用工具類 |
64. RippleEffect | RippleEffect 是一個實如今 Android 任何組件點擊出現 Material Design 的波紋效果, 向下兼容到 Android API9 |
65. SmoothProgressBar | SmoothProgressBar 是一個幫你的 App 方便實現可定製, 平滑動畫的水平滾動進度條庫 |
66. recyclerview-animators | RecyclerView Animators 是一個對 Recycler 控件的 Item 添加以及刪除增長動畫效果, 動畫效果有Scale, Fade, Flip, Slide 裏面各類各樣效果 |
67. circular-progress-button | 一個帶進度顯示的 Button, 效果和動畫作的都很是贊 |
68. DroidPlugin | DroidPlugin 是 360 手機助手在 Android 系統上實現了一種新的插件機制: 它能夠在無需安裝, 修改的狀況下運行APK文件, 此機制對改進大型APP的架構, 實現多團隊協做開發具備必定的好處 |
69. dynamic-load-apk | 開發者是 singwhatiwanna(任玉剛), 是《Android 開發藝術探索》書籍的做者, 這個是做者聯合另兩位開發者嘯(時之沙)和宋思宇花了幾個月時間研究出來的 Apk 動態加載框架, 想了解更多關於這框架可到做者博客看 這篇文章 有詳細介紹 |
70. ExoPlayer | ExoPlayer 是Google 開發團隊開源出來的一個媒體播放庫, 比 Android 框架原生的 MediaPlayer 擁有更多優勢支持動態的自適應流 HTTP(DASH) 和 平滑流, 支持高級的HLS特性, 支持自定義和擴治你的使用場景等等 |
71. Crouton (不建議使用) | Crouton 是一個顯示提示信息的顯示工具類, 能夠用來代替 Toast, 默認顯示在窗口的頂部, 能夠按隊列一個接着一個顯示, 不過該庫已經被棄用, 不推薦使用 |
72. robospice | RoboSpice 是一個使你創建異步的長時間的運行任務異常輕鬆的一個網絡庫,在網絡請求,緩存支持,和提供開箱即用的 rest 請求方面尤其強大 |
73. hugo | Hugo 是 JakeWharton 大神推出的一個用於打印 Log, hugo 是基於註解被調用的, 引入相關依賴後, 在方法上加上 @DebugLog 便可輸出 Log, 使用很是簡單 |
74. async-http-client | AsyncHttpClient 是又一款 Android 異步請求庫, 該庫支持 WebSocket 協議, 使用起來也比較簡單易用 |
75. UltimateRecyclerView | UltimateRecyclerView 是一個功能強大的 RecyclerView(advanced and flexible version of ListView), 包括了下拉刷新, 加載更多, 多種動畫, 空數據提示, 拖動排序, 視差處理, 工具欄漸變, 滑動刪除, 自定義floating button, 多種刷新效果, scrollbar, sticky header, 多 layout 支持等等元素, 並且使用起來跟 RecyclerView 同樣的方便 |
76. MaterialEditText | MaterialEditText 是就任於 Flipboard 的員工 扔物線 開發的, 在 AppCompat v21 中也提供了 Material Design 的控件 EditText, 但是因爲比較難用, 沒有提供設置顏色的 Api, 因而就產生這個第三方庫 |
77. Side-Menu.Android | Side Menu 是 Yalantis 組織開源出來, 該組織因開源出一些動畫很棒的開源庫爲你們所熟知該庫是其中一個, 該庫是提供翻頁動畫效果的側邊菜單, 動畫體驗超讚的 |
78. drag-sort-listview | DragSortListView 是一個能夠實現拖動排序, 滑動刪除的 listview 控件, 注意的是做者對該庫已經放棄維護更新了, 不過感興趣的人能夠去研究一下 |
79. android-times-square | TimesSquare 是 Square 公司出品的一款顯示日曆選擇日期的控件, 可讓用戶選擇多個日期 |
80. GreenDroid(不建議使用) | GreenDroid 是一個封裝好的 Android UI 界面庫, 不過該庫已經被棄用了, 不建議使用 |
81. logger | Logger 是一個簡單, 漂亮, 強大 Android 打印日誌庫 |
82. acra | Acra 是一個可以讓 Android 應用自動將崩潰報告以谷歌文檔電子錶的形式進行發送的庫, 旨在當應用發生崩潰或出現錯誤行爲時, 開發者能夠獲取到相關數據 |
83. FadingActionBar | FadingActionBar 是一個支持 ListView, ScrollView, WebView 向下滾動時逐漸顯示 ActionBar 庫 |
84. AndroidImageSlider | AndroidImageSlider 庫開發者是代碼家, 該庫是爲 Banner 圖片滑動提供多種動畫效果, 還能夠輕易爲 Banner 加載網絡圖片 |
85. SystemBarTint | SystemBarTint 是一個實現沉浸式狀態欄庫, 適用於 Android 系統 4.4 其以上的版本 |
86. android-menudrawer | MenuDrawer 是一款滑出式菜單庫, 經過拖動屏幕邊緣滑出菜單, 支持屏幕上下左右劃出, 支持當前 View 處於上下層, 支持 Windows 邊緣, ListView 邊緣, ViewPager 變化劃出菜單等 |
87. RoundedImageView | RoundedImageView 一個快速支持圖片圓角顯示效果的庫, 該庫特色是能快速加載, 爲了提升加載速度, 該庫不用建立原始位圖的副本, 不使用 clipPath, 不使用 setXfermode 裁剪的位圖等方式來實現 ImageView 圓角, 使用也很是簡單 |
88. afinal | Afinal 是一個 android 的 sqlite orm 和 ioc 框架, 同時封裝了 android 中的 http 框架, 使其更加簡單易用, 使用 finalBitmap, 無需考慮 bitmap 在 android 中加載的時候 oom 的問題和快速滑動的時候圖片加載位置錯位等問題, Afinal 的宗旨是簡潔, 快速, 約定大於配置的方式, 儘可能一行代碼完成全部事情 |
89. android-pulltorefresh(不建議使用) | 另外一個下拉刷新庫, 可是該庫已經中止維護, 所以不建議使用, 推薦使用 Android-Ultra-Pull-To-Refresh |
90. Bolts-Android | Bolts 是一款底層類庫集合, 在後臺實現異步操做, 並提供接口反饋當前異步執行的程度 (能夠經過接口實現UI進度更新), 最後反饋執行的結果給UI主線程, 與AsyncTask比較: (1)使用的是無大小限制的線程池; (2)任務可組合可級聯,防止了代碼耦合 |
91. NumberProgressBar | NumberProgressBar 開發者是代碼家, 這是一個帶簡約性感數字顯示的進度條庫, 使用很是簡單方便 |
92. SwipeBackLayout | SwipeBackLayout 是一個支持屏幕上下左右滑動返回上層 Activity, 關閉當前 Activity, 相似簡書 App |
93. android-gif-drawable | 一個支持 gif 顯示的 view, 用 jni 實現的, 編譯生成 so 庫後直接 xml 定義 view 便可, 簡單易用 |
94. VitamioBundle | Vitamio 是一款 Android 與 iOS 平臺上的全能多媒體開發框架, 特色:(1) 全面支持硬件解碼與 GPU 渲染, (2) 可以流暢播放 720P 甚至 1080P 高清 MKV, FLV, MP4, MOV, TS, RMVB 等常見格式的視頻, (3) 在 Android 與 iOS 上跨平臺支持 MMS, RTSP, RTMP, HLS(m3u8)等常見的多種視頻流媒體協議, 包括點播與直播 |
95. SmartTabLayout | SmartTabLayout 是一個自定義的 Tab title strip, 基於 Google Samples 中的 android-SlidingTabBasic 項目, 滑動時 Indicator 可平滑過渡 |
96. uCrop | uCrop 是Yalantis 組織開源的圖片裁剪庫, 支持縮放, 旋轉圖片, 支持各類比例的裁剪框, 很是強大的一個圖片裁剪庫 |
97. android-crop | 又一個圖片裁剪庫, 向下兼容到 Api 10, 我的感受這個庫並無比上面介紹的 uCrop 強大 |
98. HoloEveryWhere | HoloEveryWhere 是一套 Android 開發庫, 提供了全套 Holo Style 控件, 它的外觀與功能和標準 Holo Style 控件基本相同, 惟一不一樣的是它能夠運行在低於 4.0 版本的 Android 系統上 |
99. AVLoadingIndicatorView | AVLoadingIndicatorView 庫含有各類各樣漂亮的加載動畫效果, 使用起來也很是簡單, 和平時使用 ProgressBar 同樣 |
100. sweet-alert-dialog | Android 版的 SweetAlert, 清新文藝, 快意靈動的甜心彈框, 靈感來源於 JS 版SweetAlert |
粗計html
Square 公司佔有 7 席java
項目名稱 | 排名 |
---|---|
Retrofit | 4 |
OkHttp | 5 |
Picasso | 7 |
LeakCanary | 13 |
Dagger | 29 |
Otto | 44 |
TimesSquare | 79 |
FaceBook 公司佔有 4 席react
項目名稱 | 排名 |
---|---|
React Native | 1 |
Fresco | 11 |
Stetho | 38 |
Rebound | 62 |
JakeWharton 大神佔有 5 席android
項目名稱 | 排名 |
---|---|
Butter Knife | 14 |
ActionBarSherlock | 16 |
ViewPagerIndicator | 18 |
NineOldAndroids | 55 |
Hugo | 73 |
代碼家大神佔有 4 席ios
項目名稱 | 排名 |
---|---|
AndroidSwipeLayout | 28 |
AndroidViewAnimations | 32 |
AndroidImageSlide | 84 |
NumberProgressBar | 91 |
GitHub Top 100 簡介git
主要對當前 GitHub 排名前 100 的項目作一個簡單的簡介, 方便初學者快速瞭解到當前 Objective-C 在 GitHub 的狀況。程序員
項目名稱 | 項目信息 |
---|---|
1. AFNetworking | 做者是 NSHipster 的博主, iOS 開發界的大神級人物, 畢業於卡內基·梅隆大學, 開源了許多牛逼的項目, 這個即是其中之一, AFNetworking 採用 NSURLConnection + NSOperation, 主要方便與服務端 API 進行數據交換, 操做簡單, 功能強大, 如今許多人都用它取代 ASIHTTPRequest |
2. GPUImage | 一款強大的圖片濾鏡工具, 支持自定義濾鏡, 可用來實時處理圖片和視頻流, 做者是 SonoPlot 公司的 CTO, 在很小的時候便開始接觸編程, 他在 SO上面的回答也有不少值得閱讀, GPUImage 這個項目從 2012 年開始, 使用 OpenGL 圖形程序接口編寫, 性能很是好, 如今不少 iOS 程序員都用它來實現 iOS 的模糊效果 |
3. SDWebImage | 做者 Olivier Poitrey 是 Dailymotion 的 CTO, 擁有多個不錯的開源項目, 此項目經常使用於對從 Web 端接受到的圖片進行緩存, 是 UIImageView 的擴展, 應用起來比較簡單 |
4. RestKit | 主要用於 iOS 上網絡通訊, 容許與 RESTful Web 服務交互, 經常使用於處理 API, 解析 JSON, 映射響應對象等操做, 簡單易用, 方便你把全部精力都放在對數據的操做上 |
5. ReactiveCocoa | 由 GitHub 工程師們開發的一個應用於 iOS 和 OS X 開發的函數響應式編程新框架, Matt 稱其爲 "An open source project that exemplifies this brave new era for Objective-C", 也有人說它是 Cocoa 的將來, 具體可看唐巧寫的這篇文章 |
6. three20 | 由 Facebook iOS 客戶端衍生出的一款 iPhone 框架, 內置許多豐富的功能, 有豐富的界面, 對底層的操做便捷, 爲開發者省下了不少時間, 但如今已經中止了更新, 一個 PR 把代碼刪得乾乾淨淨, 不要好奇去點開 Files changed, 我點開後該頁面直接卡死, three20 當中的一位做者建立了 Nimbus, 算是 three20 的一個替代品 |
7. MBProgressHUD | 做者 Matej Bukovinski 是一位全棧工程師, UI/UX 設計師, 此項目是一款提示框第三方庫, 幫助開發者快速應用到項目中) |
8. MagicalRecord | 做者是 Coursera 的 iOS 工程師, 該項目創做靈感來自於 Ruby on Rails 的 Active Record, 主要爲方便操做 CoreData 而生, 幫助清除 CoreData 引用的代碼, 協助方便 CoreData 的工做 |
9. FMDB | 一個對 SQLite 進行封裝的庫, 使用起來方便, 簡單 |
10. Mantle | 做者是 GitHub 的員工, 文檔寫的很清楚: Mantle makes it easy to write a simple model layer for your Cocoa or Cocoa Touch application, 主要用來將 JSON 數據模型化爲 Model 對象, 唱吧在前段時間也改用 Mantle 了. |
11. FlatUIKit | 收集了不少扁平化 UI 的 iOS 組件, 方便使用 |
12. ASIHTTPRequest | 一個輕量級的 iOS 網絡通訊類庫, 基於 CFNetwork 框架開發, 但如今已經中止更新, 多數開發者改用 AFNetworking 替代) |
13. FastImageCache | Path 公司出品的 iOS 庫, 做者 Mallory Paine 是蘋果前員工, 此類庫適用於在滾動時快速顯示圖像, 高速持久是其最大的特色 |
14. Masonry | 一個輕量級的佈局框架, 同時支持 iOS 和 Mac OS X, 語法優雅, 幫助開發者快速適配不一樣分辨率的 iOS 設備 |
15. Shimmer | Facebook 推出的一款具備閃爍效果的第三方控件, 供它旗下一款名爲 Paper 的應用使用, 安裝使用整個過程都十分簡單 |
16. SVProgressHUD | 又一款輕量級的 iOS 第三方控件, 用於顯示任務加載時的動畫, 很是輕便, 容易使用 |
17. Slate | 一款窗口管理應用程序, 但在兩年前就已經中止更新了 |
18. JSONKit | 主要用於解析 JSON, 適用於 iOS6 如下環境, 自從 iOS5 開始 Apple 官方給出了 NSJSONSerialization API, 自此你們都用官方的了 |
19. Nimbus | 做者 Jeff 曾爲 Facebook, Google 作過很多好東西, 也是 three20 的成員之一, three20 停更後, 他創造出這個框架來代替 three20, 文檔齊全 |
20. CocoaLumberjack | 這是 Mac 和 iOS 的一款強大的日誌框架, 配置簡單, 多線程, 提供更高級的 log 功能, 可用於代替默認的 NSLog 語句 |
21. Facebook SDK for iOS | Facebook 官方的 iOS SDK, 方便開發者集成 Facebook 的一些功能到本身的 iOS APP 裏面 |
22. AsyncDisplayKit | Facebook 開源的一款 iOS UI 框架, Paper 用的就是該框架, 另外框架還用到了 Facebook 早期開源 Pop 動畫引擎 |
23. Alcatraz | Alcatraz 是一款管理 Xcode 插件、模版以及顏色配置的工具, 能夠集成到 Xcode 的圖形界面中, 安裝刪除都是幾條命令的事, 很方便, 支持本身開發插件並上傳 |
24. ViewDeck | 一款開源的 iOS 活動面板組件, 還原 Path 2.0 的側滑效果, 做者由於時間關係在兩年前中止對其更新 |
25. JSQMessagesViewController | 優雅的 iOS 消息類庫, 經常使用於聊天應用中, 可定製性高 |
26. FLEX | 這是 Flipboard 官方發佈的一組專門用於 iOS 開發的應用內調試工具, 開發者無需將其鏈接到 LLDB/Xcode 或其餘遠程調試服務器,支持直接在 App 中運行 |
27. Xctool | 是 Facebook 開源的一個命令行工具,用來替代蘋果的 XcodeBuild 工具, 極大的方便了 iOS 的構建和測試, 輸出錯誤信息也比較友好, 受到許多 iOS 開發者的稱讚, 常常與其搭配使用的還有 OCUnit, Travis CI, OCLint 等測試工具 |
28. OpenEmu | 超強的遊戲模擬器, 作遊戲開發必備, 官網作得也很不錯 |
29. iCarousel | 做者是英國 Charcoal Design 公司的創始人, 開源領域的貢獻頗爲卓著, 這個項目就是其中之一, 這是一款能夠在 iOS 上實現旋轉木馬視圖切換效果的第三方控件, 並提供多種切換效果 |
30. RESideMenu | 做者 Roman Efimov 是雅虎的 iOS 工程師, 這個項目實現了 iOS 上的菜單側滑效果, 創意來源於 Dribbble, 該項目支持 iOS8 |
321 PNChart | 做者周楷雯是 90 後, 秒視的創始人, 該項目是一個帶動畫效果的圖表控件, 簡約易用, 受到很多開發者喜好 |
31.2PonyDebugger | 由 Square 公司推出的一款優秀的 iOS 應用網絡調試工具, 用戶能夠實時看到應用程序的網絡請求, 也能夠對 iOS 應用程序的核心數據棧進行遠程調試 |
33. JVFloatLabeledTextField | 做者是 Thumb Labs 的聯合創始人, JVFloatLabeledTextField 是 UITextField 的子類, 主要實現輸入框標籤浮動效果, 創做靈感來自 Dribbble, 已出現多個移植版本 |
34. SWTableViewCell | UITableViewCell 的子類, 實現了左右滑動顯示信息視圖並調出按鈕 |
35. AwesomeMenu | 做者是一位中國人, 該項目主要是使用 CoreAnimation 還原了 Path menu 的動畫效果 |
36. Reachability | Reachablity 是用於檢測 iOS 設備網絡環境的庫 |
37. VVDocumenter-Xcode | 做者是王巍國內著名的 iOS 開發者, 人稱喵神, 目前在日本 LINE 公司工做, 該項目幫助開發者輕鬆的生成註釋文檔, 節省了很多工做量, 贊 |
38. The Physical Web | 由 Chrome 團隊主導的一個項目, 意在用 URL 鏈接世界, 方便用戶接受數據, 目前尚處在實驗階段 |
39. NewsBlur | 做者獨自一我的 Samuel Clay 作出來的一款名爲 NewsBlur 的新聞閱讀器, 不少人都稱其爲 Google Reader 的替代品, 這是它的源碼 |
40. Cocos2D-SpriteBuilder | 一個可用於在 iOS, Mac 和 Android 上製做 2D 遊戲或其它圖形/交互應用的框架, 以前的項目名稱爲 Cocos Swift, 目前該項目在 GitHub 上更新較爲頻繁 |
41. TTTAttributedLabel | UILabel 的替代品, 使 iOS 上的 Label 功能更加豐富, 可支持連接植入等功能 |
42. CocoaAsyncSocket | 一個功能強大、簡單易用的異步 socket 通信類庫, 支持 TCP 和 UDP 協議, 可用於 Mac 和 iOS 設備上, 做者 Robbie Hanson 是 Deusty 的首席軟件工程師 |
43. TapkuLibrary | 做者是 Devin Ross, 這是在 iOS 上一款功能強大的 UI 效果類庫, 能夠實現多種酷炫的效果, 目前仍在更新中 |
44. Canvas | 無需編碼實現牛逼的動畫效果的庫, 連設計師均可以快速上手 |
45. SocketRocket | Square 公司開源的一個 WebSocket 客戶端, 穩定而且易用, 作實時應用常會用到, 受廣大開發者喜好 |
46. ECSlidingViewController | 一個視圖控制器容器, 將子視圖處理成兩層, 經過滑動來處理層的切換, 創做靈感來自 Facebook 和 Path的 App, 做者是 Cleveland 的員工 |
47. Json Framework | 用於解析 JSON 數據的一個框架, 可是在 iOS5 以上版本大多數人都選擇使用 NSJSONSerialization 來解析 JSON, 該項目如今在 GitHub 上也幾乎沒怎麼更新了 |
48. Tweaks | Facebook 開源的一款工具, 旨在幫助 iOS 開發者更快的迭代應用, 方便用戶動態的調整參數, 是的, Paper 這個項目也用到了 |
49. realm-cocoa | Realm-Cocoa 是 Realm 公司推出一款移動端數據庫, 能夠運行在手機、平板和可穿戴設備之上, 其目標是取代 CoreData 和 SQLite 數據庫 |
50. BlocksKit | 一個開源的與 Cocoa 緊密集合的基礎性框架 |
51. Appirater | 一款用於提醒用戶給你的 App 打分的工具 |
52. KIF | Square 出品的一個開源的用戶界面測試框架, 極大的簡化了 iOS 開發者的 UI 測試流程 |
53. SlackTextViewController | Slack 推出的一款具備文字輸入框高度自適應, 自動輸入, 複製單元格內容等功能的解決方案 |
54. JazzHands | IFTTT 開源的一個簡單易用的關鍵幀基礎動畫框架, 可經過手勢、scroll views, KVO, ReactiveCocoa 等方式來控制動畫 |
55. Bolts-iOS | Bolts 是一個 Parse 和 Facebook 在內部使用的底層庫, 方便移動開發 |
56. Spectacle | 一款易用的 OS X 窗口分屏操做快捷鍵工具, 這是其源代碼 |
57. nui | 方便樣式化 iOS 應用中的 UI 元素, 可在短期內樣式化整個應用, 類 CSS 原理 |
58. Induction | Induction 是一款用於理解數據關係的管理工具, 這是其程序代碼 |
59. JSONModel | 一個能迅速解析服務器返回的 Json 數據的庫, 方便數據的類型轉換 |
60. DTCoreText | 一個開源的 iOS 富文本組件, 它能夠解析 HTML 與 CSS 並最終用 CoreText 繪製出來, 一般用於在一些須要顯示富文本的場景下代替低性能的 UIWebView |
61. Popping | 基於 Facebook Pop 引擎的 iOS 動畫庫, 集合了不少動畫效果 |
62. TSMessages | 一個用來彈出顯示警告和通知的輕量級庫, 樣式豐富, 簡單易用 |
63. KVOController | 一個簡單安全的 KVO(Key-value Observing, 鍵-值 觀察)工具, 提供簡單方便、線程安全的API, Facebook 的開源項目之一 |
64. MWPhotoBrowser | 一款簡單的 iOS 照片瀏覽控件 |
65. MMDrawerController | 一個輕量級, 易於使用的側邊抽屜導航 iOS 控件 |
66. QuickDialog | 用於快速建立複雜的 iOS 表單, 自定義了 UITableViewCell, TableView 的樣式 |
67. SVPullToRefresh | 一款只需一行代碼即可集成上拉刷新和下拉加載的組件 |
68. cheddar-ios | Cheddar 是一款簡單易用的日程管理軟件, 這是其早期版本的開源代碼, 該項目已中止維護 |
69. XVim | 一款在 Xcode 上實現了 Vim 功能的插件 |
70. EGOTableViewPullRefresh | 一款提供下拉刷新的控件, 最後更新時間是一年前 |
71. iOS-boilerplate | iOS 應用程序的基礎模板, 使用該模板能夠省掉許多項目初始編碼的工做, 內置很是多豐富的功能, 現已經中止維護 |
72. JASidePanels | 一個 UIViewController 容器, 靈感來自 Facebook 和 Path 2.0 應用的菜單, 實現了左右側滑的操做 |
73. FormatterKit | 收集了不少構思優秀的 NSFormatter 子類 |
74.MSDynamicsDrawerViewController | 實現了具備動態彈性效果的抽屜式側邊導航欄, 效果豐富, 可定製性強 |
75. idev-recipes | iDevRecipes 博客的代碼, 演示如何實現一些有趣的控件, 該項目在兩年前(2013)中止了更新 |
76. XMPPFramework | 一個基於 RFC-3920 實現, 支持多線程和線程保護, 同時通用於全部的 iOS 和 Mac OS 開發設備的通訊框架. |
77. MacGap1 | 一款能夠將 HTML/CSS/JS 網絡應用打包成原生 Mac App 的工具 |
78. FXBlurView | iOS 模糊背景類庫, 能夠方便的根據底層顯示的狀態生成模糊效果 |
79. iOS7-Sampler | 整合演示了多個具備 iOS7 新特性的的項目, 提供了很是多的例子參考 |
80. PromiseKit | 提供強大的 iOS 開發異步功能, 是 Promises 的實現, 受到廣大開發者的追捧 |
81. Origami | 此爲 Facebook 推出的 Quartz Composer 的一個開源插件, 由其設計團隊花費了 9 個月打造而成, 目的是爲方便設計師快速構建原型, 以零代碼完成複雜動畫的合成和測試, 堪稱神器 |
82. NSLogger | 一款強大的日誌分析工具, 具備大窗口查看 Log, 自定義日誌等級等功能 |
83. KSImageNamed-Xcode | 一款對 UIImage 的 imageNamed 提供自動補全功能的插件, 很是方便 |
84. PureLayout | 一個簡單卻強大的 AutoLayout API 庫, 兼容了 Objective-C 和 Swift, 擴展了 UIView/NSView, NSArray, 和 NSLayoutConstraint |
85. AppleDoc | 一款 Objective-C 文檔生成工具, 生成的文檔風格保持與 Apple 官方的一致, 極大的方便了 Xcode 識別本身寫的 API 文檔, 安裝也是十分的簡單 |
86. iTerm2 | iTerm2 被很多程序員稱讚爲 Mac 下最好用的終端, 這是其源代碼, 配合 oh-my-zsh 使用效果更佳 |
87. Kiwi | 一個行爲驅動開發測試框架, 適用於 iOS 平臺, 旨在爲開發者提供一個簡單配置即可使用的 BDD 庫 |
88. terminal-notifier | 一款命令行工具, 用來給 Mac OS X 用戶發送通知 |
89. MacDown | Mac OS X 下的一款開源的 Markdown 編輯器, 創意來自與 Mou, 使用 brew cask 便可完成安裝 |
90. TwUI | Twitter 開源的一個支持硬件加速的 Mac 的 UI 框架, 最後一次的更新時間是在 3 年前(2012) |
91. PaperFold for iOS | 實現了相似摺紙效果的視圖切換, 可從不一樣方向進行切換, 該項目已經許久未更新 |
92. Reader | 一款開源的 iOS PDF 閱讀器, 附帶書籤, 列綱要等功能 |
93. WebViewJavascriptBridge | 一個方便使用 Objective-C 與 JavaScript 進行通訊的第三方庫, 支持消息發送, 接收, 消息處理器的註冊與調用以及設置消息處理的回調 |
94. iOS8-Sampler | iOSX-Sampler 系列之一, 整合演示了多個具備 iOS8 新特性的的項目, 提供了很是多的例子參考 |
95. CocoaHTTPServer | 一個用於 Mac OS X 或 iOS 應用的輕量級、可嵌入的HTTP 服務器框架, 方便開發者在應用中嵌入一個 HTTP 服務器 |
96. Kod | Mac OS X 上一款專爲程序員打造的編輯器, 這是其開源代碼, 惋惜的是做者在 2011 年中止了維護 |
97. TPKeyboardAvoiding | 下拉鍵盤在 iOS 移動文本字段的通用解決方案, 可以自動處理鍵盤彈出後出現遮擋到文本輸入框的問題 |
98. MKNetworkKit | 一個輕量級網絡請求框架, 徹底基於 ARC, 僅有兩個類, 具備自主操做多個網絡請求, 更加準確的顯示網絡活動指標等優勢 |
99. PKRevealController | 一個 iOS 平臺上的視圖控制器集合, 經過展示多個視圖控制器來進行控制器之間的切換. 設置簡單, 高度靈活 |
00. AQGridView | 一個命令行工具, 經過項目裏的 .xcdatamodel 文件, 能夠爲每一個 entity 生成兩個類, 方便 CoreData 的使用 |