Category Archives: Uncategorized

awesome-android

Introduction

android libs from github

System requirements

Android

Notice

If the lib is no longer being maintained,please do not add it here.

Libs

Table of contents

Framework

  1. roboguice Google Guice on Android, version 2.0
    https://github.com/roboguice/roboguice
  2. AndroidAnnotations Fast Android Development. Easy maintainance.
    https://github.com/excilys/androidannotations
  3. afinal Afinal是一个android的ioc,orm框架
    https://github.com/yangfuhai/afinal
  4. xUtils** android orm, bitmap, http, view inject…
    https://github.com/wyouflf/xUtils
  5. ThinkAndroid ThinkAndroid是一个免费的开源的、简易的、遵循Apache2开源协议发布的Android开发框架,其开发宗旨是简单、快速的进行 Android应用程序的开发
    https://github.com/white-cat/ThinkAndroid
  6. KJFrameForAndroid KJFrameForAndroid 又叫KJLibrary,是一个android的orm 和 ioc 框架。
    https://github.com/kymjs/KJFrameForAndroid
  7. dagger A fast dependency injector for Android and Java.
    https://github.com/square/dagger
  8. droidparts DI, ORM, JSON, …
    https://github.com/yanchenko/droidparts
  9. butterknife View “injection” library for Android.
    https://github.com/JakeWharton/butterknife
  10. android-common Android common lib, include ImageCache, HttpCache, DropDownListView, DownloadManager, Utils and so on
    https://github.com/Trinea/android-common
  11. android-priority-jobqueue A Job Queue specifically written for Android to easily schedule jobs (tasks) that run in the background, improving UX and application stability.
    https://github.com/path/android-priority-jobqueue
  12. SAF SAF(Simple Android Framework)是一个简单的android框架,它为开发Android app提供了基础性组件。
    https://github.com/fengzhizi715/SAF
  13. AndroidBinding MVVM for Android
    https://github.com/gueei/AndroidBinding
  14. RoboBinding A data-binding Presentation Model(MVVM) framework for the Android platform.
    https://github.com/RoboBinding/RoboBinding
  15. androidkit android开发框架,可以帮助你大量提高android应用开发效率。
    https://github.com/msdx/androidkit
  16. transfuse Transfuse – A Dependency Injection and Integration framework for Google Android
    https://github.com/johncarl81/transfuse
  17. xCombine Android Plugin Framework
    https://github.com/wyouflf/xCombine
  18. LoonAndroid 整个框架式不同于androidannotations,Roboguice等ioc框架,这是一个类似spring的实现方式。在整应用的生命周期中找到切入点,然后对activity的生命周期进行拦截,然后插入自己的功能。
    https://github.com/gdpancheng/LoonAndroid
  19. UltimateAndroid UltimateAndroid is a framework to help developing Android apps in a fast way
    https://github.com/cymcsg/UltimateAndroid
  20. BeeFramework_Android 极简化的Android App开发框架和App内调试工具
    https://github.com/BeeFramework/BeeFramework_Android
  21. RoboMVVM MVVM framework for Android
    https://github.com/debdattabasu/RoboMVVM
  22. Android-Next A Android Commons Library, include task, cache, http, custom views, utils, and so on.
    https://github.com/mcxiaoke/Android-Next

EventBus

  1. EventBus Android optimized event bus that simplifies communication between Activities, Fragments, Threads, Services, etc. Less code, better quality.
    https://github.com/greenrobot/EventBus
  2. otto An enhanced Guava-based event bus with emphasis on Android support.
    https://github.com/square/otto
  3. Guava’s event bus Guava’s event bus utility, explained.
    https://code.google.com/p/guava-libraries/wiki/EventBusExplained
  4. RxJava RxJava – Reactive Extensions for the JVM – a library for composing asynchronous and event-based programs using observable sequences for the Java VM.
    https://github.com/ReactiveX/RxJava
  5. RxAndroid RxJava bindings for Android
    https://github.com/ReactiveX/RxAndroid
  6. tinybus A lightweight and simple event bus optimized for Android
    https://github.com/beworker/tinybus

Orm

  1. greenDAO greenDAO is a light & fast ORM solution for Android that maps objects to SQLite databases.
    https://github.com/greenrobot/greenDAO
  2. ormlite ORMLite Android functionality used in conjunction with ormlite-core
    https://github.com/j256/ormlite-android
  3. ActiveAndroid Active record style SQLite persistence for Android
    https://github.com/pardom/ActiveAndroid
  4. sugar Insanely easy way to work with Android Database.
    https://github.com/satyan/sugar
  5. androrm An Object Relational Mapper for Android.
    https://github.com/androrm/androrm/
  6. orman lightweight and practical ORM for Java/Android. works with SQLite & MySQL.
    https://github.com/ahmetalpbalkan/orman
  7. ormdroid ORMDroid is a simple ORM persistence framework for your Android applications.
    https://github.com/roscopeco/ormdroid
  8. android-sqlite-asset-helper An Android helper class to manage database creation and version management using an application’s raw asset files
    https://github.com/jgilfelt/android-sqlite-asset-helper
  9. sprinkles Sprinkles is a boiler-plate-reduction-library for dealing with databases in android applications
    https://github.com/emilsjolander/sprinkles
  10. android-database-sqlcipher Android SQLite API based on SQLCipher
    https://github.com/sqlcipher/android-database-sqlcipher
  11. couchbase-lite-android Lightweight, embedded, syncable NoSQL database engine for Android.
    https://github.com/couchbase/couchbase-lite-android
  12. SimpleNoSQL A simple NoSQL client for Android. Meant as a document store using key/value pairs and some rudimentary querying. Useful for avoiding the hassle of SQL code.
    https://github.com/Jearil/SimpleNoSQL
  13. SQLiteProvider Extended SQLite functionality for Android
    https://github.com/novoda/SQLiteProvider
  14. Android-AnnotatedSQL Android library for auto generating SQL schema and Content provider
    https://github.com/hamsterksu/Android-AnnotatedSQL
  15. DBExecutor DBExecutor
    https://github.com/LuckyJayce/DBExecutor
  16. LitePal An Android library that allows developers to use SQLite database extremely easy.
    https://github.com/LitePalFramework/LitePal
  17. realm-java Realm is a mobile database: a replacement for SQLite & ORMs
    https://github.com/realm/realm-java
  18. DBFlow A blazing fast, powerful, and very simple ORM android database library that writes database code for you.
    https://github.com/agrosner/DBFlow

Image Loading

  1. Android-Universal-Image-Loader Powerful and flexible library for loading, caching and displaying images on Android.
    https://github.com/nostra13/Android-Universal-Image-Loader
  2. picasso A powerful image downloading and caching library for Android
    https://github.com/square/picasso
  3. ion Android Asynchronous Networking and Image Loading
    https://github.com/koush/ion
  4. glide An image loading and caching library for Android focused on smooth scrolling
    https://github.com/bumptech/glide
  5. ImageLoader Library for async image loading and caching on Android
    https://github.com/novoda/ImageLoader
  6. webimageloader Library to handle asynchronous image loading on Android.
    https://github.com/lexs/webimageloader
  7. AndroidImageLoader Andorid library that loads images asynchronously into cache using a thread pool
    https://github.com/wuman/AndroidImageLoader

Animations

  1. ListViewAnimations An Android library which allows developers to easily add animations to ListView items
    https://github.com/nhaarman/ListViewAnimations
  2. NineOldAndroids Android library for using the Honeycomb animation API on all versions of the platform back to 1.0!
    https://github.com/JakeWharton/NineOldAndroids
  3. android-flip A component for flip animation on Android, which is similar to the effect in Flipboard iPhone/Android
    https://github.com/openaphid/android-flip
  4. AndroidViewAnimations Cute view animation collection.
    https://github.com/daimajia/AndroidViewAnimations
  5. AnimationEasingFunctions Android Animation Easing Functions. Let’s make animation more real!
    https://github.com/daimajia/AnimationEasingFunctions
  6. ViewPagerTransforms Library containing common animations needed for transforming ViewPager scrolling for Android v13+.
    https://github.com/ToxicBakery/ViewPagerTransforms
  7. TransitionsBackport A backport of the new Transitions API for Android
    https://github.com/guerwan/TransitionsBackport
  8. RecyclerViewItemAnimators This repo provides simple animators for the item views in the RecyclerView This code is cloned from DefaultItemAnimator provided by Google customizing the animations.
    https://github.com/gabrielemariotti/RecyclerViewItemAnimators
  9. ParallaxPagerTransformer A pager for Android with parallax effect
    https://github.com/xgc1986/ParallaxPagerTransformer
  10. android-page-curl Page Curl for Android
    https://github.com/MysticTreeGames/android-page-curl
  11. android-cubic-bezier-interpolator An Android Library that helps you implement bezier animations in you application
    https://github.com/codesoup/android-cubic-bezier-interpolator
  12. ActivityTransition An android project presenting some transitions you can use between activities
    https://github.com/ophilbert/ActivityTransition
  13. EasyAndroidAnimations Easy Android Animations is an animation library that aims to make android animations easier, with 50+ builtin animations, it allows you to introduce many complex animation effects in your application with one or two lines of code.
    https://github.com/2359media/EasyAndroidAnimations
  14. AndroidImageSlider An amazing and convenient Android image slider.
    https://github.com/daimajia/AndroidImageSlider
  15. transitions-everywhere Backport of Transitions API from Android 4.4. Compatible with Android 2.2+
    https://github.com/andkulikov/transitions-everywhere
  16. android-ripple-background A beautiful ripple animation for your app
    https://github.com/skyfishjy/android-ripple-background

Network

  1. android-async-http An Asynchronous HTTP Library for Android
    https://github.com/loopj/android-async-http
  2. okhttp An HTTP+SPDY client for Android and Java applications.
    https://github.com/square/okhttp
  3. retrofit Type-safe REST client for Android and Java by Square, Inc.
    https://github.com/square/retrofit
  4. AndroidAsync Asynchronous socket, http (client+server), websocket, and socket.io library for android. Based on nio, not threads.
    https://github.com/koush/AndroidAsync
  5. async-http-client Asynchronous Http and WebSocket Client library for Java
    https://github.com/AsyncHttpClient/async-http-client
  6. http-request Java HTTP Request Library
    https://github.com/kevinsawicki/http-request
  7. android-lite-http Arrow(LiteHttp) is a simple, intelligent and flexible HTTP client for Android.
    https://github.com/litesuits/android-lite-http
  8. robospice Repo of the Open Source Android library : RoboSpice. RoboSpice is a modular android library that makes writing asynchronous long running tasks easy. It is specialized in network requests, supports caching and offers REST requests out-of-the box using extension modules.
    https://github.com/stephanenicolas/robospice
  9. volley volley https://github.com/mcxiaoke/android-volley
  10. enhanced-volley An enhanced version of the Volley Networking Toolkit for Android
    https://github.com/vinaysshenoy/enhanced-volley
  11. unirest-java Unirest in Java: Simplified, lightweight HTTP client library.
    https://github.com/mashape/unirest-java/

Widget

Material

  1. MaterialDesignLibrary This is a library with components of Android L to you use in android 4.0
    https://github.com/navasmdc/MaterialDesignLibrary#flat-button
  2. MaterialEverywhere Showcase of the new AppCompat 21, which includes new Material Theme, working in pre-21 devices.
    https://github.com/antoniolg/MaterialEverywhere
  3. MaterialWidget Android L design widget in Android 4.0 ~ 4.4.
    https://github.com/keithellis/MaterialWidget
  4. MaterialTabs Custom Tabs with Material Design effects. It requires 14+ API and android support v7 (Toolbar)
    https://github.com/neokree/MaterialTabs
  5. material-ripple Android L Ripple effect wrapper for Views
    https://github.com/balysv/material-ripple
  6. RippleEffect Implementation of Ripple effect from Material Design for Android API 14+
    https://github.com/traex/RippleEffect
  7. LDrawer Android drawer icon with material design animation
    https://github.com/ikimuhendis/LDrawer
  8. material-design-icons Material Design icons by Google
    https://github.com/google/material-design-icons
  9. AndroidMaterialDesignToolbar Android Sample Project with Material Design and Toolbar.
    https://github.com/tekinarslan/AndroidMaterialDesignToolbar
  10. MaterialEditText EditText in Material Design
    https://github.com/rengwuxian/MaterialEditText
  11. material-menu Morphing Android menu, back, dismiss and check buttons
    https://github.com/balysv/material-menu
  12. material-dialogs Not even AppCompat uses Material theming for AlertDialogs on pre-Lollipop. This is a beautiful and easy solution.
    https://github.com/afollestad/material-dialogs
  13. MaterialNavigationDrawer Navigation Drawer Activity with material design style and simplified methods
    https://github.com/neokree/MaterialNavigationDrawer
  14. MaterialDialog An Android library for conveniently building Material Design Dialog in Android version 2.2 ~ L.
    https://github.com/drakeet/MaterialDialog
  15. materialish-progress A material style progress wheel compatible with 2.3
    https://github.com/pnikosis/materialish-progress
  16. MaterialList An Android library aimed to get the beautiful CardViews that Google shows at its official design specifications
    https://github.com/dexafree/MaterialList
  17. android-floating-action-button Floating Action Button for Android based on Material Design specification
    https://github.com/futuresimple/android-floating-action-button
  18. Android-Material-circular-button Animated Material circular button
    https://github.com/glomadrian/Android-Material-circular-button
  19. material-drawer DrawerLayout implementation for Material design apps
    https://github.com/HeinrichReimer/material-drawer
  20. snackbar Snackbar Android Library
    https://github.com/nispok/snackbar
  21. Android-DialogFragments Various DialogFragments for Android.
    https://github.com/wada811/Android-DialogFragments

UI

  1. android-ui Android UI library. Requires API level 14+
    https://github.com/markushi/android-ui
  2. GreenDroid GreenDroid is a development library for the Android platform. It makes UI developments easier and consistent through your applications.
    https://github.com/cyrilmottier/GreenDroid
  3. FlatUI CengaLabs – Android FlatUI Kit
    https://github.com/eluleci/FlatUI
  4. EffectiveAndroidUI Sample project created to show some of the best Android practices to work in the Android UI Layer. The UI layer of this project has been implemented using MVP or MVVM (without binding engine) to show how this patterns works. This project is used during the talk “EffectiveAndroidUI”.
    https://github.com/pedrovgs/EffectiveAndroidUI
  5. ParallaxEverywhere Parallax everywhere is a library with alternative android widgets with parallax effects.
    https://github.com/Narfss/ParallaxEverywhere

TextView/EditText

  1. Shimmer-android An Android TextView with a shimmering effect
    https://github.com/RomainPiel/Shimmer-android
  2. Titanic Android experiment showing a sinking TextView
    https://github.com/RomainPiel/Titanic
  3. emojicon A library to show emoji in TextView, EditText (like WhatsApp) for Android
    https://github.com/rockerhieu/emojicon
  4. android-autofittextview A TextView that automatically resizes text to fit perfectly within its bounds.
    https://github.com/grantland/android-autofittextview
  5. Android-RobotoTextView Implementation of a TextView and all its direct/indirect subclasses with native support for the Roboto fonts, includes the brand new Roboto Slab fonts.
    https://github.com/johnkil/Android-RobotoTextView
  6. SizeAdjustingTextView This is based on an open source autosizing textview for Android.
    https://github.com/erchenger/SizeAdjustingTextView
  7. SecretTextView A TextView that simulates the effect from the app Secret where the characters fade in/out at different speeds.
    https://github.com/matthewrkula/SecretTextView
  8. anytextview An extension of Android’s TextView and EditText that let’s you use the font of your choice
    https://github.com/hanspeide/anytextview
  9. android-formidable-validation Form validation and feedback library for Android. Provides .setText for more than just TextView and EditText widgets. Provides easy means to validate with dependencies.
    https://github.com/coreform/android-formidable-validation
  10. android-edittext-validator Android form edit text is an extension of EditText that brings data validation facilities to the edittext.
    https://github.com/vekexasia/android-edittext-validator
  11. chips-edittext-library Chips EditText, Token EditText, Bubble EditText, Spannable EditText and etc.. There are many names of this control. Here I develop easy to understand , modify and integrate Chips Edit Text widget for Android
    https://github.com/kpbird/chips-edittext-library
  12. FloatingLabel FloatingLabel Allows you to create a blow kind of EditText.
    https://github.com/hardik-trivedi/FloatingLabel
  13. AndroidFloatLabel Float Label Edit Texts for Android
    https://github.com/weddingparty/AndroidFloatLabel
  14. AndroidFloatLabel Library project with a custom view that implements the Float Label pattern
    https://github.com/IanGClifton/AndroidFloatLabel
  15. TokenAutoComplete Gmail style MultiAutoCompleteTextView for Android
    https://github.com/splitwise/TokenAutoComplete
  16. TextJustify-Android Android Text Full Jusiftication / Wrapping / Justify
    https://github.com/bluejamesbond/TextJustify-Android
  17. RoundedLetterView RoundedLetterView like the one in Android 5.0 Contacts app
    https://github.com/pavlospt/RoundedLetterView
  18. Android-SingleInputForm A single EditText instead of a classical form. Library that implements flavienlaurent’s singleinputform
    https://github.com/HeinrichReimer/Android-SingleInputForm
  19. BabushkaText A simpler way to style your TextViews
    https://github.com/quiqueqs/BabushkaText
  20. MatchView Include MatchTextView and MatchButton..Come..you will like it
    https://github.com/Rogero0o/MatchView
  21. ExpandableTextView Android’s TextView that can expand/collapse like the Google Play’s app description
    https://github.com/Manabu-GT/ExpandableTextView
  22. AccountAutoCompleteEditText Simple extension for account suggestion and auto completion.
    https://github.com/KeithYokoma/AccountAutoCompleteEditText

ImageView

  1. PhotoView Implementation of ImageView for Android that supports zooming, by various touch gestures.
    https://github.com/chrisbanes/PhotoView
  2. android-smart-image-view Android ImageView replacement which allows image loading from URLs or contact address book, with caching
    https://github.com/loopj/android-smart-image-view
  3. TouchImageView Adds touch functionality to Android ImageView.
    https://github.com/MikeOrtiz/TouchImageView
  4. CircleImageView A fast circular ImageView perfect for profile images.
    https://github.com/hdodenhof/CircleImageView
  5. gesture-imageview This is a simple Android View class which provides basic pinch and zoom capability for images.
    https://github.com/jasonpolites/gesture-imageview
  6. android-shape-imageview Custom shaped android imageview components
    https://github.com/siyamed/android-shape-imageview
  7. AndroidImageCrop How select and crop image on Android
    https://github.com/lorensiuswlt/AndroidImageCrop
  8. GifImageView Android ImageView that handles animated GIF images
    https://github.com/felipecsl/GifImageView
  9. cropper Android widget for cropping and rotating an image.
    https://github.com/edmodo/cropper
  10. ImageViewZoom Android ImageView widget with zoom and pan capabilities
    https://github.com/sephiroth74/ImageViewZoom
  11. CircularImageView Custom view for circular images in Android while maintaining the best draw performance
    https://github.com/Pkmmte/CircularImageView
  12. CircularImageView Create circular image view in android
    https://github.com/lopspower/CircularImageView
  13. android-crop Android library project for cropping images
    https://github.com/jdamcd/android-crop
  14. cropimage Replacement for deprecated official Android crop image function
    https://github.com/biokys/cropimage
  15. android-cropimageCropImage Activity from Gallery.apk packaged as a reusable Android library (4.0 and up).
    https://github.com/lvillani/android-cropimage
  16. android-gpuimage Android filters based on OpenGL (idea from GPUImage for iOS)
    https://github.com/CyberAgent/android-gpuimage
  17. gif-movie-view Android View widget for displaying GIF animations.https://github.com/sbakhtiarov/gif-movie-view
  18. WaveDrawable Drawable animation inspired by Tinder.
    https://github.com/Alexrs95/WaveDrawable
  19. DrawerArrowDrawable Visual back-port of the rotating drawer-to-arrow drawable from Android L
    https://github.com/ChrisRenke/DrawerArrowDrawable
  20. TextDrawable This light-weight library provides images with letter/text like the Gmail app. It extends the Drawable class thus can be used with existing/custom/network ImageView classes. Also included is a fluent interface for creating drawables and a customizable ColorGenerator.
    https://github.com/amulyakhare/TextDrawable
  21. SelectableRoundedImageView Android ImageView that supports different radiuses on each corner. It also supports oval(and circle) shape and border. This would be especially useful for using inside CardView which should be rounded only top left and top right corners(Don’t forget to call setPreventCornerOverlap(false) on your cardview).
    https://github.com/pungrue26/SelectableRoundedImageView

Button

  1. circular-progress-button Android Circular Progress Button
    https://github.com/dmytrodanylyk/circular-progress-button
  2. android-process-button Android Buttons With Built-in Progress Meters.
    https://github.com/dmytrodanylyk/android-process-button
  3. android-circlebutton Circle button widget for Android
    https://github.com/markushi/android-circlebutton
  4. android-flat-button FButton – a flat button library for Android
    https://github.com/hoang8f/android-flat-button
  5. FloatingActionButton Android Google+ like floating action button
    https://github.com/makovkastar/FloatingActionButton
  6. ExpandableButtonMenu An Android library for an expandable button menu
    https://github.com/lemonlabs/ExpandableButtonMenu
  7. fancybuttons An Android library to easily create fancy buttons without the need of drawable files.
    https://github.com/medyo/fancybuttons
  8. Android-Bootstrap Bootstrap style buttons with Font Awesome
    https://github.com/Bearded-Hen/Android-Bootstrap
  9. SwitchButton SwitchButton
    https://github.com/kyleduo/SwitchButton

Progressbar/Progress View

  1. SmoothProgressBar A small Android library allowing you to have a smooth and customizable horizontal indeterminate ProgressBar
    https://github.com/castorflex/SmoothProgressBar
  2. NumberProgressBar A beautiful, slim Android ProgressBar.
    https://github.com/daimajia/NumberProgressBar
  3. android-HoloCircularProgressBar Holo Circular ProgressBar
    https://github.com/passsy/android-HoloCircularProgressBar
  4. android-square-progressbar An android library to display a progressbar that goes around an image.
    https://github.com/mrwonderman/android-square-progressbar
  5. ProgressPieView Android library for showing progress in a highly customizable pie.
    https://github.com/FilipPudak/ProgressPieView
  6. GoogleProgressBar Android library to display progress like google does in some of his services.
    https://github.com/jpardogo/GoogleProgressBar
  7. ProgressWheel A progress wheel for android, intended for use instead of the standard progress bar.
    https://github.com/Todd-Davies/ProgressWheel
  8. RefreshActionItem Android – An action bar item which acts both as a refresh button and as a progress indicator
    https://github.com/ManuelPeinado/RefreshActionItem
  9. CircleProgress CircleProgress, DonutProgress, ArcProgress
    https://github.com/lzyzsd/CircleProgress
  10. WaveView A wave view of android,can be used as progress bar.
    https://github.com/john990/WaveView

Menu

  1. SlidingMenu SlidingMenu is an Open Source Android library that allows developers to easily create applications with sliding menus like those made popular in the Google+, YouTube, and Facebook apps. Feel free to use it all you want in your Android apps provided that you cite this project and include the license in your app.
    https://github.com/jfeinstein10/SlidingMenu
  2. android-menudrawer A slide-out menu implementation, which allows users to navigate between views in your app.
    https://github.com/SimonVT/android-menudrawer
  3. ArcMenu An android custom view which looks like the menu in Path 2.0 (for iOS).
    https://github.com/daCapricorn/ArcMenu
  4. RibbonMenu Navigation menu for Android (based off Google+ app)
    https://github.com/darvds/RibbonMenu
  5. CircularFloatingActionMenu an animated circular menu for Android
    https://github.com/oguzbilgener/CircularFloatingActionMenu
  6. ActionsContentView ActionsContentView is an standalone library implements actions/content swiping view (AKA Side Navigation UI Pattern, AKA Facebook side menu). The library doesn’t use any specific code introduced in new Android SDK versions. This allows develop an application with an action/content swiping view for every version of Android from 2.2 and up.https://github.com/StevenRudenko/ActionsContentView
  7. Android-NewPopupMenu Android-NewPopupMenu is an android library to create popup menu with GoogleMusic app-like style.
    https://github.com/u1aryz/Android-NewPopupMenu
  8. android-floating-action-menu Floating Action Menu for Android. Inspired by the Google Plus floating menu.
    https://github.com/sephiroth74/android-floating-action-menu
  9. Android-CircleMenu Menu with items on a rotating circle
    https://github.com/szugyi/Android-CircleMenu
  10. Android Wheel Menu Simple and easy to use circular menu widget for Android.
    https://github.com/anupcowkur/Android-Wheel-Menu
  11. android-satellite-menu Android Satellite Menu
    https://github.com/siyamed/android-satellite-menu
  12. SideNavigation Implementation of “SIde Navigation” or “Fly-in app menu” pattern for Android (based on Google+ app)
    https://github.com/johnkil/SideNavigation
  13. AndroidResideMenu The idea of ResideMenu is from Dribbble 1 and 2. It has come true and run in iOS devices. iOS ResideMenu This project is the RefsideMenu Android version. The visual effect is partly referred to iOS version of ResideMenu. And thanks to the authors for the above idea and contribution.
    https://github.com/SpecialCyCi/AndroidResideMenu
  14. GoogleNavigationDrawerMenu Android Library for a DrawerLayout similar to the one in Google Apps
    https://github.com/Arasthel/GoogleNavigationDrawerMenu
  15. simple-side-drawer Simple library which enable you to add a drawer(slide-out) navigation to your android application
    https://github.com/adamrocker/simple-side-drawer
  16. BlurNavigationDrawer Android – Blur Navigation Drawer like Etsy app.
    https://github.com/charbgr/BlurNavigationDrawer
  17. ActionSheetForAndroid IOS UIActionSheet in Android
    https://github.com/baoyongzhang/ActionSheetForAndroid
  18. BottomSheet One way to present a set of actions to a user is with bottom sheets, a sheet of paper that slides up from the bottom edge of the screen. Bottom sheets offer flexibility in the display of clear and simple actions that do not need explanation.
    https://github.com/soarcn/BottomSheet

Dialog

  1. QustomDialog a quick custom android dialog project
    https://github.com/danoz73/QustomDialog
  2. Android-RateThisApp Android library to show “Rate this app” dialog
    https://github.com/kskkbys/Android-RateThisApp
  3. AndroidSliderPreference Android library that allows applications to add dialog-based slider widgets to their settings
    https://github.com/jayschwa/AndroidSliderPreference
  4. L-Dialogs A small library replicating the new dialogs in android L.
    https://github.com/lewisjdeane/L-Dialogs
  5. LicensesDialog LicensesDialog is an open source library to display licenses of third-party libraries in an Android app.
    https://github.com/PSDev/LicensesDialog
  6. android-styled-dialogs A simple library for styling Android dialogs in the Holo theme. It also removes boilerplate code for displaying simple dialogs.
    https://github.com/inmite/android-styled-dialogs
  7. PostOffice This is a library for easily constructing Holo and Material Design Dialogs.
    https://github.com/r0adkll/PostOffice
  8. sweet-alert-dialog Android版的SweetAlert,清新文艺,快意灵动的甜心弹框
    https://github.com/pedant/sweet-alert-dialog
  9. BlurDialogFragment Library project to display DialogFragment with a blur effect.
    https://github.com/tvbarthel/BlurDialogFragment

ListView/ScrollView

  1. pinned-section-listview Easy to use ListView with pinned sections for Android.
    https://github.com/beworker/pinned-section-listview
  2. PullToRefresh-ListView A generic, customizable, open source Android ListView implementation that has ‘Pull to Refresh’ functionality.
    https://github.com/erikwt/PullToRefresh-ListView
  3. FlabbyListView Android library to display a ListView whose cells are not rigid but flabby and react to ListView scroll.
    https://github.com/jpardogo/FlabbyListView
  4. XListView-Android ListView supports pull refresh and pull up to load more feature.
    https://github.com/Maxwin-z/XListView-Android
  5. PinterestListView Pinterest style ListView for Android
    https://github.com/vladexologija/PinterestListView
  6. android-pulltorefresh-and-loadmore android custom listview,with interaction pattern load more and pull to refresh to load data dinamically
    https://github.com/shontauro/android-pulltorefresh-and-loadmore
  7. PinnedHeaderListView A ListView with pinned section headers for Android
    https://github.com/JimiSmith/PinnedHeaderListView
  8. ParallaxScroll Parallax ScrollView and ListView for Android
    https://github.com/nirhart/ParallaxScroll
  9. Android-HorizontalListView HorizontalListView is an Android ListView widget which scrolls in a horizontal manner (in contrast with the SDK-provided ListView which scrolls vertically).
    https://github.com/MeetMe/Android-HorizontalListView
  10. LinearListView Android library that allows you to bind a LinearLayout with a ListAdapter.
    https://github.com/frankiesardo/LinearListView
  11. ParallaxListView A Android ListView Demo with a parallax effect header like Path.
    https://github.com/Gnod/ParallaxListView
  12. PagedHeadListView Android boosted ListView supporting paginated header with a new material page indicator.
    https://github.com/JorgeCastilloPrz/PagedHeadListView
  13. PullZoomView An Android custom ListView and ScrollView with pull to zoom-in.
    https://github.com/Frank-Zhu/PullZoomView
  14. HeaderListView Android ListView with sticky headers
    https://github.com/applidium/HeaderListView
  15. ListviewFilter Awesome Listview filter functionality in Android.
    https://github.com/bhavyahmehta/ListviewFilter
  16. android-accordion-view Simple ListView based Android AccordionView
    https://github.com/hamsterready/android-accordion-view
  17. DragNDropList An easy to use Drag & Drop List for Android. Direct replacement of the android ListView.
    https://github.com/terlici/DragNDropList
  18. QuickReturn Android ListView that implements the QuickReturn UI pattern. Written from scratch with focus on performance.
    https://github.com/felipecsl/QuickReturn
  19. Android-HorizontalListView HorizontalListView is an Android ListView widget which scrolls in a horizontal manner
    https://github.com/MeetMe/Android-HorizontalListView
  20. ZrcListView 一个顺滑又漂亮的Android下拉刷新与加载更多列表组件。
    https://github.com/zarics/ZrcListView
  21. android-swipelistview An Android List View implementation with support for drawable cells and many other swipe related features
    https://github.com/47deg/android-swipelistview
  22. android-pulltorefresh This project aims to provide a reusable pull to refresh widget for Android.
    https://github.com/johannilsson/android-pulltorefresh
  23. StickyListHeaders An android library for section headers that stick to the top
    https://github.com/emilsjolander/StickyListHeaders
  24. LazyList Lazy load of images in Android
    https://github.com/thest1/LazyList
  25. FloatingGroupExpandableListView An open source Android library that provides a floating group view at the top of the ExpandableListView
    https://github.com/diegocarloslima/FloatingGroupExpandableListView
  26. PullSeparateListView 到顶部或底部时拉动,item分离效果
    https://github.com/chiemy/PullSeparateListView
  27. Android-SlideExpandableListView A better ExpandableListView, with animated expandable views for each list item
    https://github.com/tjerkw/Android-SlideExpandableListView
  28. HorizontalVariableListView Horizontal list view for Android which allows variable items widths
    https://github.com/sephiroth74/HorizontalVariableListView
  29. ListBuddies Android library to achieve in an easy way, the behaviour of the home page in the Expedia app, with a pair of auto-scroll circular parallax ListViews.
    https://github.com/jpardogo/ListBuddies
  30. Android-Tiling-ScrollView A tiling scrollview to display large picture (similar to iOS “CATiledLayer”)
    https://github.com/ened/Android-Tiling-ScrollView
  31. PullScrollView 1.仿照新浪微博Android客户端个人中心的ScrollView,下拉背景伸缩回弹效果。 2.ScrollView仿IOS回弹效果。
    https://github.com/MarkMjw/PullScrollView
  32. StickyScrollViewItems A small android library for tagging views inside a ScrollView as “sticky” making them stick to the top of the scroll container until a new sticky view comes and takes it’s place
    https://github.com/emilsjolander/StickyScrollViewItems
  33. Discrollview Scroll + discover = DiscrollView
    https://github.com/flavienlaurent/discrollview
  34. SwipeMenuListView SwipeMenuListView
    https://github.com/baoyongzhang/SwipeMenuListView
  35. Android-ObservableScrollView Android library to observe scroll events on scrollable views.
    https://github.com/ksoichiro/Android-ObservableScrollView

GridView

  1. two-way-gridview An Android GridView that can be configured to scroll horizontally or vertically
    https://github.com/jess-anders/two-way-gridview
  2. AsymmetricGridView Android ListView that mimics a GridView with asymmetric items. Supports items with row span and column span
    https://github.com/felipecsl/AsymmetricGridView
  3. AndroidCoolDragAndDropGridView An example of a gridview with various column span items and drag and drop support like Google keep has
    https://github.com/theredsunrise/AndroidCoolDragAndDropGridView
  4. GridViewHeader Android GridView with addHeader( View view ) function
    https://github.com/munix/GridViewHeader
  5. DynamicGrid Drag and drop GridView for Android
    https://github.com/askerov/DynamicGrid
  6. PagingGridView A Paging GridView with the same behavior as PagingListView.
    https://github.com/nicolasjafelle/PagingGridView
  7. DraggableGridView A drag-and-drop scrolling grid view for Android
    https://github.com/thquinn/DraggableGridView
  8. AndroidStaggeredGrid An Android staggered grid view which supports multiple columns with rows of varying sizes.
    https://github.com/etsy/AndroidStaggeredGrid
  9. StaggeredGridView A modified version of Android’s experimental StaggeredGridView. Includes own OnItemClickListener and OnItemLongClickListener, selector, and fixed position restore.
    https://github.com/maurycyw/StaggeredGridView
  10. android-GridViewWithHeaderAndFooter GridView with Header and Footer
    https://github.com/liaohuqiu/android-GridViewWithHeaderAndFooter
  11. DynamicGrid Drag and drop GridView for Android
    https://github.com/askerov/DynamicGrid

ViewPager

  1. Android-ViewPagerIndicator Paging indicator widgets compatible with the ViewPager from the Android Support Library and ActionBarSherlock. Originally based on Patrik Åkerfeldt’s ViewFlow.
    https://github.com/JakeWharton/Android-ViewPagerIndicator
  2. ViewPagerExtensions A set of custom views for the ViewPager from the Android Support Package
    https://github.com/astuetz/ViewPagerExtensions
  3. parallaxviewpager An easy-to-use ViewPager subclass with parallax background effect for Android apps.
    https://github.com/andraskindler/parallaxviewpager
  4. android-auto-scroll-view-pager Android auto scroll viewpager or viewpager in viewpager
    https://github.com/Trinea/android-auto-scroll-view-pager
  5. NumericPageIndicator Android – A ViewPager page indicator that displays the current page number and (optionally) the page count
    https://github.com/ManuelPeinado/NumericPageIndicator
  6. VerticalViewPager Vertical implementation of Android ViewPager
    https://github.com/LambergaR/VerticalViewPager
  7. InfiniteViewPager Augment Android’s ViewPager with wrap-around functionality.
    https://github.com/antonyt/InfiniteViewPager
  8. ViewPager3D Extension of Android ViewPager with a 3D swipe effect
    https://github.com/inovex/ViewPager3D
  9. LoopingViewPager An android ViewPager extension allowing infinite scrolling
    https://github.com/imbryk/LoopingViewPager

ActionBar

  1. ActionBarSherlock Action bar implementation which uses the native action bar on Android 4.0+ and a custom implementation on pre-4.0 through a single API and theme.
    https://github.com/JakeWharton/ActionBarSherlock
  2. TabBarView An Android Library to help you create actionbar tabs like “Capitaine train” app by Cyril Mottier
    https://github.com/Mirkoddd/TabBarView
  3. android-extendedactionbar An example of how to extend the ActionBar under the status bar from the theme
    https://github.com/Takhion/android-extendedactionbar
  4. FadingActionBar Android library implementing a fading effect for the action bar, similar to the one found in the Play Music app
    https://github.com/ManuelPeinado/FadingActionBar
  5. GlassActionBar Android – a library that adds a glass-like effect to the action bar.
    https://github.com/ManuelPeinado/GlassActionBar

Fragment

  1. Android-CircularRevealFragment A demo about how to show and hide fragments using the new Android Lollipop circle reveal transitions. Minimum API level is 21
    https://github.com/ferdy182/Android-CircularRevealFragment

Tabs

Toast

  1. Crouton Context sensitive notifications for Android
    https://github.com/keyboardsurfer/Crouton
  2. SuperToasts A library that extends the Android toast framework.
    https://github.com/JohnPersano/SuperToasts
  3. Android-AppMsg In-layout notifications. Based on Toast notifications and article by Cyril Mottier
    https://github.com/johnkil/Android-AppMsg
  4. MessageBar An Android Toast replacement, similar to the one seen in the GMail app.
    https://github.com/SimonVT/MessageBar
  5. SnackBar toast-like alert pattern for Android
    https://github.com/MrEngineer13/SnackBar

SeekBar

  1. HoloCircleSeekBar A Circle SeekBar inspired by Android Holo ColorPicker designed by Marie Schweiz and developed by Lars Werkman.
    https://github.com/JesusM/HoloCircleSeekBar
  2. AndroidCircularSeekBar A circular seek bar for Android
    https://github.com/RaghavSood/AndroidCircularSeekBar
  3. circularseekbar Custom circular SeekBar (Circle, Semi-circle, and Ellipse) View/Widget for Android
    https://github.com/devadvance/circularseekbar
  4. StartPointSeekBar StartPointSeekBar is a custom view for the Android platform that makes it possible to have a SeekBar to have custom start point.
    https://github.com/vashisthg/StartPointSeekBar
  5. SeekArc Circular SeekBar view for Android
    https://github.com/TriggerTrap/SeekArc
  6. discreteSeekBar DiscreteSeekbar is my poor attempt to develop an android implementation of the Discrete Slider component from the Google Material Design Guidelines.
    https://github.com/AnderWeb/discreteSeekBar
  7. discreteSeekBar DiscreteSeekbar is my poor attempt to develop an android implementation of the Discrete Slider component from the Google Material Design Guidelines.
    https://github.com/AnderWeb/discreteSeekBar
  8. android-comboseekbar seekbar with distinct values
    https://github.com/karabaralex/android-comboseekbar
  9. RangeSeekbar A seekbar contains two cursor(left and right). Multiple touch supported.
    https://github.com/dolphinwang/RangeSeekbar

Calendar View

  1. Caldroid Caldroid is a fragment that display calendar with dates in a month. Caldroid can be used as embedded fragment, or as dialog fragment. User can also swipe left/right to navigate to different months.
    https://github.com/roomorama/Caldroid
  2. android-times-square Standalone Android widget for picking a single date from a calendar view.
    https://github.com/square/android-times-square
  3. calendar-widget The Android calendar widget is home screen widget for your Android device. It displays a list of upcoming calendar events so that you can easily have a glimpse at your upcoming appointments.
    https://github.com/plusonelabs/calendar-widget
  4. android-spinnerwheel Wheel-like spinner widget for Android
    https://github.com/ai212983/android-spinnerwheel
  5. Android-MonthCalendarWidget A simple example of a responsive Month Calendar app widget for Android
    https://github.com/romannurik/Android-MonthCalendarWidget
  6. android-betterpickers Android library for better Picker DialogFragments
    https://github.com/derekbrameyer/android-betterpickers
  7. android-calendar-card Android calendar view (like card)
    https://github.com/kenumir/android-calendar-card
  8. DateSlider An alternative DatePicker for Android
    https://github.com/bendemboski/DateSlider
  9. Android-Week-View Android Week View is an android library to display calendars (week view or day view) within the app. It supports custom styling.
    https://github.com/alamkanak/Android-Week-View

RecyclerView

  1. SuperRecyclerView Pumped up RecyclerView
    https://github.com/Malinskiy/SuperRecyclerView

Layout

  1. FoldableLayout Android widgets to implement folding animation
    https://github.com/alexvasilkov/FoldableLayout
  2. ScalableLayout Scalable Layout For Android
    https://github.com/ssomai/ScalableLayout
  3. FlipLayout Android Flip 3D Animation like web Google+
    https://github.com/stormzhang/FlipLayout
  4. FlowLayout Android implementation of FlowLayout. Layout arranges its children in multiple rows depending on their width.
    https://github.com/blazsolar/FlowLayout
  5. CircleLayout Circular layout for android
    https://github.com/dmitry-zaitsev/CircleLayout
  6. ResideLayout An Android Layout which has a same function likehttps://github.com/romaonthego/RESideMenu
    https://github.com/kyze8439690/ResideLayout
  7. GooglePlusLayout GoolgePlusLayout is a custom layout that plays animation on the children views while scrolling as the layout in the Google Plus (android) main page
    https://github.com/Nammari/GooglePlusLayout
  8. android-empty-layout A library for showing different types of layouts when a list view is empty
    https://github.com/alamkanak/android-empty-layout
  9. ImageLayout Android – A layout that arranges its children in relation to a background image
    https://github.com/ManuelPeinado/ImageLayout
  10. android-flowlayout Linear layout, that wrap its content to the next line if there is no space in the current line.
    https://github.com/ApmeM/android-flowlayout
  11. AndroidSwipeLayout The Most Powerful Swipe Layout!
    https://github.com/daimajia/AndroidSwipeLayout
  12. FreeFlow A layout engine for Android that decouples layouts from the View containers that manage scrolling and view recycling. FreeFlow makes it really easy to create custom layouts and beautiful transition animations as data and layouts change
    https://github.com/Comcast/FreeFlow
  13. SwipeableLayout A swipeable – auto resizing view group for android
    https://github.com/wmbest2/SwipeableLayout
  14. SwipeBackLayout An Android library that help you to build app with swipe back gesture.
    https://github.com/Issacw0ng/SwipeBackLayout
  15. android_maskable_layout A library that easily allows you to mask layouts/viewgroups
    https://github.com/christophesmet/android_maskable_layout
  16. android-gridlayout A backwards compatible implementation of GridLayout for Android
    https://github.com/dlew/android-gridlayout
  17. DragLayout An Android Project
    https://github.com/BlueMor/DragLayout
  18. ExpandableLayout Implementation of ExpandableListview with custom header and custom content.
    https://github.com/traex/ExpandableLayout
  19. android-PullRefreshLayout This component like SwipeRefreshLayout, it is more beautiful than SwipeRefreshLayout.
    https://github.com/baoyongzhang/android-PullRefreshLayout

Other

  1. Swipecards A Tinder-like Android library to create the swipe cards effect. You can swipe left or right to like or dislike the content.
    https://github.com/Diolor/Swipecards
  2. Android SlideShow Widget A set of widgets to create smooth slide shows with ease.
    https://github.com/marvinlabs/android-slideshow-widget
  3. AndroidWheel Custom wheel widget for android
    https://github.com/sephiroth74/AndroidWheel
  4. range-bar Android widget for selecting a range of values.
    https://github.com/edmodo/range-bar
  5. TileView The TileView widget is a subclass of ViewGroup that provides a mechanism to asynchronously display tile-based images, with additional functionality for 2D dragging, flinging, pinch or double-tap to zoom, adding overlaying Views (markers), built-in Hot Spot support, dynamic path drawing, multiple levels of detail, and support for any relative positioning or coordinate system.
    https://github.com/moagrius/TileView
  6. android-switch-backport A backport of the Switch widget (http://developer.android.com/reference/android/widget/Switch.html) that was introduced on Android 4. This port works on Android 2.1+.
    https://github.com/BoD/android-switch-backport
  7. android-bootstrap A template/bootstrap/boilerplate application that includes tons of great open source tools and frameworks.
    https://github.com/AndroidBootstrap/android-bootstrap
  8. cardslib Android Library to build a UI Card
    https://github.com/gabrielemariotti/cardslib
  9. AndroidSlidingUpPanel Android Sliding Up Panel Demo
    https://github.com/umano/AndroidSlidingUpPanel
  10. android-viewflow A horizontal view scroller library for Android
    https://github.com/pakerfeldt/android-viewflow
  11. android-viewbadger A simple way to “badge” any given Android view at runtime without having to cater for it in layout
    https://github.com/jgilfelt/android-viewbadger
  12. DraggablePanel Android library used to create an awesome Android UI based on a draggable element similar to the last YouTube graphic component.
    https://github.com/pedrovgs/DraggablePanel
  13. android-stackblur Android StackBlur is a library that can perform a blurry effect on a Bitmap based on a gradient or radius, and return the result. The library is based on the code of Mario Klingemann.
    https://github.com/kikoso/android-stackblur
  14. StickyGridHeaders An Android Library that makes it easy to make grid views with sectioned data and headers that stick to the top.
    https://github.com/TonicArtos/StickyGridHeaders
  15. AndroidViewHover An elegant way to show your menu or messages.
    https://github.com/daimajia/AndroidViewHover
  16. SystemBarTint Apply background tinting to the Android system UI when using KitKat translucent modes
    https://github.com/jgilfelt/SystemBarTint
  17. chromeview Android WebView implementation that uses the latest Chromium code
    https://github.com/pwnall/chromeview
  18. android-iconify Integration of FontAwesome for Android
    https://github.com/JoanZapata/android-iconify
  19. StandOut StandOut lets you easily create floating windows in your Android app.
    https://github.com/pingpongboss/StandOut
  20. android-sliding-layer-lib This repository host a library that provides an easy way to include an autonomous layer/view that slides from the side of your screen and which is fully gesture ready, the same way as our detail view in Wunderlist 2 does. This pattern can also be seen in Google+’s notification center or in Basecamp’s detail view.
    https://github.com/6wunderkinder/android-sliding-layer-lib
  21. Android-SwipeToDismiss Android swipe-to-dismiss mini-library and sample code
    https://github.com/romannurik/Android-SwipeToDismiss
  22. HoloColorPicker An Android Holo themed colorpicker designed by Marie Schweiz
    https://github.com/LarsWerkman/HoloColorPicker
  23. UnifiedPreference UnifiedPreference is a library for working with all versions of the Android Preference package from API v4 and up.
    https://github.com/saik0/UnifiedPreference
  24. aFileChooser Android library that provides a file explorer to let users select files on external storage.
    https://github.com/iPaulPro/aFileChooser
  25. NewQuickAction Android QuickAction
    https://github.com/lorensiuswlt/NewQuickAction
  26. android-uitableview Library and example project on how to use the UITableView component
    https://github.com/thiagolocatelli/android-uitableview
  27. Android-ProgressFragment Implementation of the fragment with the ability to display indeterminate progress indicator when you are waiting for the initial data.
    https://github.com/johnkil/Android-ProgressFragment
  28. android-pdfview A fast PDF reader component for Android development
    https://github.com/JoanZapata/android-pdfview
  29. Android-Pdf-Viewer-Library Pdf Viewer library for Android
    https://github.com/jblough/Android-Pdf-Viewer-Library
  30. QuiltViewLibrary Android Quilt View Library
    https://github.com/jacobmoncur/QuiltViewLibrary
  31. Android-UndoBar An implementation of Android’s Undo Bar as seen in Google’s Gmail app.
    https://github.com/jenzz/Android-UndoBar
  32. Android-ScrollBarPanel Android-ScrollBarPanel allows to attach a View to a scroll indicator like it’s done in Path 2.0
    https://github.com/rno/Android-ScrollBarPanel
  33. ScrollBarPanelWithClock Path like scrollbar panel with clock.
    https://github.com/learnNcode/ScrollBarPanelWithClock
  34. changeloglib Android Library to display your changelog
    https://github.com/gabrielemariotti/changeloglib
  35. android-FlipView A small, easy to use android library for implementing flipping between views as seen in the popular Flipboard application
    https://github.com/emilsjolander/android-FlipView
  36. discreet-app-rate A lightweight non intrusive app rate reminder for Android
    https://github.com/PomepuyN/discreet-app-rate
  37. KenBurnsView Android ImageViews animated by Ken Burns Effect
    https://github.com/flavioarfaria/KenBurnsView
  38. UndoBar The UI component for Android advanced UI pattern undo-bar, used in Gmail app, create by roman nurik
    https://github.com/soarcn/UndoBar
  39. FancyCoverFlow A cool Open Source CoverFlow view for Android with several fancy effects.
    https://github.com/davidschreiber/FancyCoverFlow
  40. AppRater AppRater Library for Android
    https://github.com/codechimp-org/AppRater
  41. Android-ActionItemBadge This library offers a simple method to add a small badge icon to your ActionBar-MenuItem
    https://github.com/mikepenz/Android-ActionItemBadge
  42. poppyview Android library implementing a poppy view on scroll, similar to the one found in the Google Plus app
    https://github.com/flavienlaurent/poppyview
  43. android-segmented-control ios7 UISegmentedControl for android
    https://github.com/hoang8f/android-segmented-control
  44. IconicDroid IconicDroid is a custom Android Drawable which allows to draw icons from several iconic fonts.
    https://github.com/atermenji/IconicDroid
  45. ParallaxPager Add some depth to your Android scrolling.
    https://github.com/prolificinteractive/ParallaxPager
  46. AndroidPinning A standalone library project for certificate pinning on Android.
    https://github.com/moxie0/AndroidPinning
  47. WizardPager Wizard Pager is a library that provides an example implementation of a Wizard UI on Android, it’s based of Roman Nurik’s wizard pager
    https://github.com/TechFreak/WizardPager
  48. android-visualizer Takes the input from the Android MediaPlayer and displays visualizations, like in iTunes or WinAmp
    https://github.com/felixpalmer/android-visualizer
  49. ExpandablePanel Android library for creating an expandable to full screen view inside a viewgroup composition.
    https://github.com/JorgeCastilloPrz/ExpandablePanel
  50. NiftyNotification effects for android notifications.base on (Crouton)
    https://github.com/sd6352051/NiftyNotification
  51. GlowPadBackport A backport of the Android 4.2 GlowPadView that works on the SDK on API levels 4+
    https://github.com/frakbot/GlowPadBackport
  52. CustomLoading custom loading for android
    https://github.com/stormzhang/CustomLoading
  53. chromium_webview Android WebView wrapper based on chromium
    https://github.com/mogoweb/chromium_webview
  54. MagicViews Set custom font in Android application
    https://github.com/ikocijan/MagicViews
  55. TableFixHeaders Android library that implements a table with fixed headers.
    https://github.com/InQBarna/TableFixHeaders
  56. FloatingNotification Floating Notification for Android app – Facebook ChatHeads Notification system
    https://github.com/marshallino16/FloatingNotification
  57. android-slideshow-widget A set of widgets to create smooth slideshows with ease.
    https://github.com/marvinlabs/android-slideshow-widget
  58. HanselAndGretel Android library providing bread crumbs to the support library fragments.
    https://github.com/JakeWharton/HanselAndGretel
  59. ChromaHashView A classic password visualization concept, ported to Android
    https://github.com/MichaelEvans/ChromaHashView
  60. Android-DirectoryChooser A directory chooser library for Android.
    https://github.com/passy/Android-DirectoryChooser
  61. WheelView An Android Widget for selecting items that rotate on a wheel.
    https://github.com/LukeDeighton/WheelView
  62. RippleView View that imitates Ripple Effect on click which was introduced in Android L (for Android 2.3+)
    https://github.com/siriscac/RippleView
  63. GaugeView An Android library for drawing gauges on Canvas.
    https://github.com/CodeAndMagic/GaugeView
  64. ATableView Create iOS-like tables (UITableView) for Android, using UIKit object model.
    https://github.com/dmacosta/ATableView
  65. Android-RecurrencePicker Google Calendar Recurrence picker
    https://github.com/Shusshu/Android-RecurrencePicker
  66. ActionSheetForAndroid IOS UIActionSheet in Android
    https://github.com/baoyongzhang/ActionSheetForAndroid
  67. ckChangeLog ckChangeLog – An Android Library to display a Change Log
    https://github.com/cketti/ckChangeLog
  68. android-floatinglabel-widgets Floating label input widgets
    https://github.com/marvinlabs/android-floatinglabel-widgets
  69. MarkdownView MarkdownView is an Android webview with the capablity of loading Markdown text or file and display it as HTML, it uses MarkdownJ and extends Android webview.
    https://github.com/falnatsheh/MarkdownView
  70. NoNonsense-FilePicker A file/directory-picker for android. Implemented as a library project.
    https://github.com/spacecowboy/NoNonsense-FilePicker
  71. PopoverView A Popover Controller for Android Tablets. It’s an easy solution to simulate an iOS UIPopoverController
    https://github.com/lupidan/PopoverView
  72. slideuppane A pane that slide up from the bottom of an android view
    https://github.com/briangriffey/slideuppane
  73. SwipeBack SwipeBack for Android Activities to do pretty the same as the android “back-button” will do, but in a really intuitive way by using a swipe gesture
    https://github.com/sockeqwe/SwipeBack
  74. ShowTipsView Highligth specific points of interest of your app
    https://github.com/fredericojssilva/ShowTipsView
  75. FancyCoverFlow A cool Open Source CoverFlow view for Android with several fancy effects.
    https://github.com/davidschreiber/FancyCoverFlow
  76. WheelView Android滚动选择控件
    https://github.com/wangjiegulu/WheelView

Template

  1. android-material-drawer-template An Android template with navigation drawer for material design
    https://github.com/kanytu/android-material-drawer-template
  2. material-design-icons-adt-template Android Studio / Eclipse ADT template for material-design-icons resources
    https://github.com/intrications/material-design-icons-adt-template

Adapter

  1. MultiChoiceAdapter Android – A ListView adapter with support for multiple choice modal selection
    https://github.com/ManuelPeinado/MultiChoiceAdapter
  2. easy-adapter Easy Adapters library for Android
    https://github.com/ribot/easy-adapter
  3. Renderers Renderers is an Android library that avoids all the boilerplate needed to create a new ListView adapter.
    https://github.com/pedrovgs/Renderers
  4. FunDapter Simplify Adapter creation for your Android ListViews.
    https://github.com/amigold/FunDapter
  5. instant-adapter Just like instant coffee, saves 78% of your time on Android’s Custom Adapters.
    https://github.com/ragunathjawahar/instant-adapter
  6. adapter-kit Adapter Kit is a set of useful adapters for Android.
    https://github.com/mobsandgeeks/adapter-kit
  7. EfficientAdapter An efficient adapter to make the use of RecyclerView much easier for Android.
    https://github.com/StanKocken/EfficientAdapter
  8. EasyListViewAdapters This library provides Easy Android ListView Adapters(EasyListAdapter & EasyCursorAdapter) which makes designing Multi-Row-Type ListView very simple & cleaner, It also provides many useful features for ListView.
    https://github.com/birajpatel/EasyListViewAdapters
  9. GridListViewAdapters This library provides GridAdapters(ListGridAdapter & CursorGridAdapter) which enable you to bind your data in grid card fashion within android.widget.ListView, Also provides many other features related to GridListView.
    https://github.com/birajpatel/GridListViewAdapters

Validation

  1. android-saripaar UI Validation Library for Android
    https://github.com/ragunathjawahar/android-saripaar

Gesture

  1. android-gesture-detectors Gesture detector framework for multitouch handling on Android, based on Android’s ScaleGestureDetector
    https://github.com/Almeros/android-gesture-detectors

Game Engine

  1. cocos2d-x cocos2d-x for C++
    https://github.com/cocos2d/cocos2d-x/
  2. libgdx Desktop/Android/HTML5/iOS Java game development framework
    https://github.com/libgdx/libgdx
  3. AndEngine Free Android 2D OpenGL Game Engine
    https://github.com/nicolasgramlich/AndEngine
  4. playn A Java game development framework that deploys to JVM, HTML5, Android and iOS.
    https://github.com/threerings/playn
  5. LGame This is free 2d game development framework(Java Game Engine), support JavaSE/Android/IOS/WP7/HTML5/PSM/Linux/MAC/Windows.
    https://github.com/cping/LGame
  6. LiquidFun LiquidFun is a 2D physics engine for games Developed by GOOGLE
    https://github.com/google/liquidfun
  7. jbox2d a 2d Java physics engine, native port of the C++ physics engines Box2D and LiquidFun
    https://github.com/jbox2d/jbox2d

Bluetooth

  1. android-beacon-library Allows Android apps to interact with BLE beacons
    https://github.com/AltBeacon/android-beacon-library
  2. Android-BluetoothSPPLibrary Bluetooth Serial Port Profile which comfortable to developer application to communication with microcontroller via bluetooth
    https://github.com/akexorcist/Android-BluetoothSPPLibrary

SocialNetworks

  1. AndroidSocialNetworks Library for easy work with Facebook, Twitter, LinkedIn and Google on Android
    https://github.com/antonkrasov/AndroidSocialNetworks#license

XMPP

  1. asmack A build environment for the XMPP client library Smack on Android
    https://github.com/Flowdalic/asmack
  2. Xabber Open source Jabber (XMPP) client with multi-account support, clean and simple interface. Being both free (as in freedom!) and ad-free, Xabber is designed to be the best Jabber client for Android.
    https://github.com/redsolution/xabber-android
  3. Conversations Conversations is an open source XMPP (formally known as Jabber) client for Android 4.0+ smart phones.
    https://github.com/siacs/Conversations
  4. yaxim YAXIM – Yet Another XMPP Instant Messenger, a jabber client for android
    https://github.com/pfleidi/yaxim
  5. androidpn An open source project to provide push notification support for Android — a xmpp based notification server and a client tool kit.
    https://github.com/dannytiehui/androidpn
  6. Android-Paho-Mqtt-Service A simple MQTT Service that will keep running for the duration of your Android application using the Paho Java MQTT Client.
    https://github.com/JesseFarebro/Android-Mqtt

Plugin

  1. maven-android-plugin Android Maven Plugin
    https://github.com/jayway/maven-android-plugin
  2. android-archetypes Maven Archetypes for Android development
    https://github.com/akquinet/android-archetypes
  3. maven-android-sdk-deployer A tool to install components of the Android SDK to use with the Maven Android Plugin.
    https://github.com/mosabua/maven-android-sdk-deployer
  4. sdk-manager-plugin Gradle plugin which downloads and manages your Android SDK.
    https://github.com/JakeWharton/sdk-manager-plugin
  5. android-holo-colors-idea-plugin IntelliJ / Android Studio plugin for Android Holo Colors
    https://github.com/jeromevdl/android-holo-colors-idea-plugin
  6. lein-droid A Leiningen plugin for building Clojure/Android projects
    https://github.com/clojure-android/lein-droid
  7. android-selector-chapek Android Studio plugin which automatically generates drawable selectors from appropriately named resources.
    https://github.com/inmite/android-selector-chapek
  8. android-parcelable-intellij-plugin IntelliJ Plugin for Android Parcelable boilerplate code generation.
    https://github.com/mcharmas/android-parcelable-intellij-plugin
  9. AndroidDynamicLoader A plugin system that runs like a browser, but instead of load web pages, it load plugins which runs natively on Android system.
    https://github.com/mmin18/AndroidDynamicLoader
  10. android-sdk-plugin An easy-to-use sbt plugin for working with all Android projects
    https://github.com/pfn/android-sdk-plugin
  11. adb-idea A plugin for Android Studio and Intellij IDEA that speeds up your day to day android development.
    https://github.com/pbreault/adb-idea
  12. groovy-android-gradle-plugin A Gradle plugin to support the Groovy language for building Android apps
    https://github.com/melix/groovy-android-gradle-plugin
  13. apf Android Plugin Framework
    https://github.com/umeng/apf
  14. lint-cleaner-plugin A Gradle Plugin for removing unused resources in Android projects.
    https://github.com/marcoRS/lint-cleaner-plugin
  15. vim-android Vim plugin to do android development.
    https://github.com/bpowell/vim-android
  16. gradle-android-scala-plugin gradle-android-scala-plugin adds scala language support to official gradle android plugin
    https://github.com/saturday06/gradle-android-scala-plugin
  17. android-butterknife-zelezny Simple plug-in for Android Studio/IDEA that allows one-click creation of Butterknife view injections.
    https://github.com/inmite/android-butterknife-zelezny
  18. m2e-android Android for Maven Eclipse
    https://github.com/rgladwell/m2e-android
  19. AndroidProguardScala AndroidProguardScala is an Eclipse plugin that speeds up the development process when you’re using Scala on Android.
    https://github.com/banshee/AndroidProguardScala
  20. android-studio-unit-test-plugin Android Studio IDE support for Android gradle unit tests. Prepared for Robolectric.
    https://github.com/evant/android-studio-unit-test-plugin

Code Generation

  1. parceler Android Parcelables made easy through code generation.
    https://github.com/johncarl81/parceler
  2. auto-parcel Android Parcelable models made easy
    https://github.com/frankiesardo/auto-parcel
  3. RoboCoP Pure Java code generation tool for generating a fully functional ContentProvider for Android.
    https://github.com/mediarain/RoboCoP
  4. android-contentprovider-generator A small tool to generate an Android ContentProvider.
    https://github.com/BoD/android-contentprovider-generator
  5. ParcelablePlease Annotation Processor for generating Parcelable code
    https://github.com/sockeqwe/ParcelablePlease
  6. pojobuilder A Java Code Generator for Pojo Builders
    https://github.com/mkarneim/pojobuilder
  7. javawriter A utility class which aids in generating Java source files.
    https://github.com/square/javawriter

Media

  1. FFmpeg mirror of git://source.ffmpeg.org/ffmpeg.git
    https://github.com/FFmpeg/FFmpeg
  2. FFMpeg this is port of ffmpeg for android (this is app, but in future i will do android lib from it and then system will be able to convert videos automatically)
    https://github.com/havlenapetr/FFMpeg
  3. libstreaming A solution for streaming H.264, H.263, AMR, AAC using RTP on Android
    https://github.com/fyhertz/libstreaming
  4. AndroidFFmpeg FFmpeg build for android random architectures with example jni
    https://github.com/appunite/AndroidFFmpeg
  5. android-ffmpeg-java Android Java wrapper around ffmpeg command line binary
    https://github.com/guardianproject/android-ffmpeg-java
  6. FFmpeg-Android Script and Instructions for building FFmpeg for Android
    https://github.com/OnlyInAmerica/FFmpeg-Android
  7. android-ffmpeg a system for building custom ffmpeg binaries for Android
    https://github.com/guardianproject/android-ffmpeg
  8. android-ffmpeg-with-rtmp This repository contains script(s) to build ffmpeg for android with RTMP (and OpenSSL) support.
    https://github.com/cine-io/android-ffmpeg-with-rtmp
  9. mp4parser A Java API to read, write and create MP4 files
    https://github.com/sannies/mp4parser
  10. jcodec jcodec – a pure java implementation of video/audio codecs.
    https://github.com/jcodec/jcodec

Embedded

  1. usb-serial-for-android Android USB host serial driver library for CDC, FTDI, Arduino and other devices.
    https://github.com/mik3y/usb-serial-for-android

Utility

  1. smoothie Easy async loading for Android’s ListView/GridView
    https://github.com/lucasr/smoothie
  2. tape A lightning fast, transactional, file-based FIFO for Android and Java.
    https://github.com/square/tape
  3. ColorArt iTunes 11-style color matching code for Android
    https://github.com/MichaelEvans/ColorArt
  4. AndroidBillingLibrary Android Market In-app Billing Libraryhttps://github.com/robotmedia/AndroidBillingLibrary
  5. android-saripaar UI Validation Library for Android
    https://github.com/ragunathjawahar/android-saripaar
  6. timber A logger with a small, extensible API which provides utility on top of Android’s normal Log class.
    https://github.com/JakeWharton/timber
  7. wire Clean, lightweight protocol buffers for Android.
    https://github.com/square/wire
  8. motion An Android library allowing images to exhibit a parallax effect that reacts to the device’s tilt
    https://github.com/nvanbenschoten/motion
  9. Colours A beautiful set of predefined colors and a set of color methods to make your Android development life easier.
    https://github.com/MatthewYork/Colours
  10. Android-Validator Form Validator Library for Android
    https://github.com/throrin19/Android-Validator
  11. svg-android Support for scalable vector graphics in Android
    https://github.com/pents90/svg-android
  12. davdroid DAVdroid – CalDAV/CardDAV synchronization for Android 4+ devices
    https://github.com/rfc2822/davdroid
  13. phrase https://github.com/square/phrase
  14. seismic Android device shake detection.
    https://github.com/square/seismic
  15. android-validation-komensky A simple library for validating user input in forms using annotations.
    https://github.com/inmite/android-validation-komensky
  16. AndroidFaceCropper Android bitmap Face Cropper
    https://github.com/lafosca/AndroidFaceCropper
  17. AutobahnAndroid WebSocket & WAMP in Java for Android
    https://github.com/tavendo/AutobahnAndroid
  18. android_dbinspector Android library for viewing in app databases.
    https://github.com/infinum/android_dbinspector
  19. wishlist Utilities I wish Android had but doesn’t
    https://github.com/kevinsawicki/wishlist
  20. joda-time-android Joda-Time library with Android specialization
    https://github.com/dlew/joda-time-android
  21. OpenKeychain OpenKeychain is an OpenPGP implementation for Android.
    https://github.com/open-keychain/open-keychain
  22. Silk A library containing a large set of utilities and views for Android apps.
    https://github.com/afollestad/Silk
  23. Reservoir Android library to easily serialize and cache your objects to disk using key/value pairs.
    https://github.com/anupcowkur/Reservoir
  24. Android-Templates-And-Utilities Collection of source codes, utilities, templates and snippets for Android development.
    https://github.com/petrnohejl/Android-Templates-And-Utilities
  25. groundy Sexy way to execute async/background tasks on Android
    https://github.com/telly/groundy
  26. EasyCamera Wrapper around the android Camera class that simplifies its usage
    https://github.com/Glamdring/EasyCamera
  27. CastCompanionLibrary-android CastCompanionLibrary-android is a library project to enable developers integrate Cast capabilities into their applications faster and easier.
    https://github.com/googlecast/CastCompanionLibrary-android
  28. cling UPnP/DLNA library for Java and Android
    https://github.com/4thline/cling
  29. dspec A simple way to define and render UI specs on top of your Android UI.
    https://github.com/lucasr/dspec
  30. GhostLog Android app that displays the logcat buffer in a system overlay window
    https://github.com/jgilfelt/GhostLog
  31. secure-preferences Android Shared preference wrapper than encrypts the keys and values of Shared Preferences. It’s not bullet proof security but rather a quick win for incrementally making your android app more secure.
    https://github.com/scottyab/secure-preferences
  32. DebugLog Create a simple and more understandable Android logs.
    https://github.com/MustafaFerhan/DebugLog
  33. AndroidCaldavSyncAdapater Caldav synch adapter for Android
    https://github.com/gggard/AndroidCaldavSyncAdapater
  34. routable-android Routable, an in-app native URL router, for Android
    https://github.com/clayallsopp/routable-android
  35. fb-android-dagger A set of helper classes for using dagger with Android components such as Applications, Activities, Fragments, BroadcastReceivers, and Services.
    https://github.com/adennie/fb-android-dagger
  36. android-gesture-detectors Gesture detector framework for multitouch handling on Android, based on Android’s ScaleGestureDetector
    https://github.com/Almeros/android-gesture-detectors
  37. TypedPreferences Preference wrappers for primitive types for Android
    https://github.com/johnjohndoe/TypedPreferences
  38. android-intents A collection of well-known Android intents for most common actions
    [https://github.com/d-tarasov/android-intents])(https://github.com/d-tarasov/android-intents)
  39. android-intents A small library which will save you from writing the same intent creation code again and again for the most simple tasks
    https://github.com/marvinlabs/android-intents
  40. AndroidUtils AndroidUtils
    https://github.com/pardom/AndroidUtils
  41. ASimpleCache a simple cache for android and java
    https://github.com/yangfuhai/ASimpleCache
  42. svg-android Fork of svg-android +SVN history +Maven +more
    https://github.com/japgolly/svg-android
  43. AndroidQuickUtils Android QuickUtils is a development library for the Android platform. It is intended to make application development easier and consistent throughout your applications.
    https://github.com/cesarferreira/AndroidQuickUtils
  44. esperandro Easy SharedPreference Engine foR ANDROid
    https://github.com/dkunzler/esperandro
  45. AndroidCommons Various useful utilities for Android apps development
    https://github.com/alexvasilkov/AndroidCommons
  46. greenrobot-common General purpose utilities and hash functions for Android and Java (aka java-common)
    https://github.com/greenrobot/greenrobot-common
  47. puree-android Puree is a log collector for Android.
    https://github.com/cookpad/puree-android

SDK

  1. mapbox-android-sdk Open Source Maps SDK for Android
    https://github.com/mapbox/mapbox-android-sdk
  2. android-checkout Library for Android In-App Billing (Version 3)
    https://github.com/serso/android-checkout
  3. WeatherLib Android Weather Library: android weather lib to develop weather based app fast and easily
    https://github.com/survivingwithandroid/WeatherLib
  4. Clusterkraf A clustering library for the Google Maps Android API v2.
    https://github.com/twotoasters/clusterkraf
  5. aws-sdk-android Official mirror of the AWS SDK for Android.
    https://github.com/aws/aws-sdk-android
  6. evernote-sdk-android Evernote SDK for Android
    https://github.com/evernote/evernote-sdk-android
  7. countly-sdk-android Countly Mobile Analytics – Android SDK
    https://github.com/Countly/countly-sdk-android
  8. ANE-Facebook Air Native Extension (iOS and Android) for the Facebook mobile SDK
    https://github.com/freshplanet/ANE-Facebook
  9. Office-365-SDK-for-Android Office 365 SDK for Android Preview by Microsoft Open Technologies, Inc.
    https://github.com/OfficeDev/Office-365-SDK-for-Android
  10. weibo_android_sdk 新浪微博 Android SDK
    https://github.com/sinaweibosdk/weibo_android_sdk
  11. socialauth-android SocialAuth repository which contains socialauth android version and samples
    https://github.com/3pillarlabs/socialauth-android
  12. PayPal-Android-SDK Accept PayPal and credit cards in your Android app
    https://github.com/paypal/PayPal-Android-SDK
  13. barcodescanner Barcode Scanner Libraries for Android
    https://github.com/dm77/barcodescanner
  14. android-donations-lib Donations Library for Android. Supports Google Play Store, Flattr, PayPal, and Bitcoin
    https://github.com/dschuermann/android-donations-lib
  15. card.io-Android-SDK card.io provides fast, easy credit card scanning in mobile apps
    https://github.com/card-io/card.io-Android-SDK
  16. Android-ShareEverywhere This project is the tribute to my favorite Android Widget: the Share button. Share ALL THE THINGS!
    https://github.com/dgmltn/Android-ShareEverywhere
  17. android-simpl3r Amazon S3 multipart file upload for Android, made simple
    https://github.com/jgilfelt/android-simpl3r
  18. poly-picker Android library project for providing multiple image selection from the device.
    https://github.com/jaydeepw/poly-picker
  19. Android-ReactiveLocation Small library that wraps Google Play Service API in brilliant RxJava Observables reducing boilerplate to minimum.
    https://github.com/mcharmas/Android-ReactiveLocation
  20. LandscapeVideoCamera Powerful custom Android Camera with granular control over the video quality and filesize, restricting recordings to landscape only.
    https://github.com/jmolsmobile/LandscapeVideoCamera

Test

  1. Junit A programmer-oriented testing framework for Java.
    https://github.com/junit-team/junit
  2. robotium Like Selenium, but for Android
    https://github.com/RobotiumTech/robotium
  3. assertj-android A set of AssertJ helpers geared toward testing Android.
    https://github.com/square/assertj-android
  4. selendroid “Selenium for Android” (Test automate native or hybrid Android apps and the mobile web with Selendroid.)
    https://github.com/selendroid/selendroid
  5. Cafe A powerful test framework for Android named Case Automated Framework for Everyone.
    https://github.com/BaiduQA/Cafe
  6. android-junit-report A custom instrumentation test runner for Android that generates XML reports for integration with other tools.
    https://github.com/jsankey/android-junit-report
  7. robolectric Android Unit Testing Framework
    https://github.com/xtremelabs/robolectric

Chart

  1. GraphView Android Graph Library for creating zoomable and scrollable line and bar graphs.
    https://github.com/jjoe64/GraphView
  2. MPAndroidChart A simple Android chart view / graph view library, supporting line- bar- pie- and candlestick charts as well as scaling, dragging and animations.
    https://github.com/PhilJay/MPAndroidChart
  3. EazeGraph An Android chart and graph library
    https://github.com/blackfizz/EazeGraph
  4. AndroidCharts An easy-to-use Android charts library with animation.
    https://github.com/HackPlan/AndroidCharts
  5. WilliamChart Android library to create charts.
    https://github.com/diogobernardino/WilliamChart
  6. Android-Charts Open-source native Android graph/chart framework includes line chart,stick chart,candlestick chart,pie chart,spider-web chart etc.
    https://github.com/limccn/Android-Charts
  7. XCL-Charts Android开源图表库(XCL-Charts is a free charting library for Android platform.)
    https://github.com/xcltapestry/XCL-Charts
  8. desCharts Android Charting Library
    https://github.com/bradipao/desCharts
  9. HelloCharts Charts/graphs library for Android compatible with API 8+
    https://github.com/lecho/hellocharts-android

Icons

  1. Skycons Forecast / DarkSky’s Skycons, Animated Weather icons recreated for Android
    https://github.com/torryharris/Skycons
  2. droidicon Over 1600 customizable icons for Android including 750+ Google Material Design icons, 25 ready-made social badges, and more!
    https://github.com/theDazzler/droidicon
  3. Android-Iconics Android-Iconics is a library to use (almost) any alternative iconfont in your projects. It allows you to add any Android-Iconics compatible typeface-library-addon to your project and you are able to start using that font.
    https://github.com/mikepenz/Android-Iconics
  4. android-material-icons Easy to use material icons for Android
    https://github.com/Malinskiy/android-material-icons

Colors

  1. Android-Material-Design-Colors Android Material Design Colors
    https://github.com/wada811/Android-Material-Design-Colors

Font

  1. Calligraphy Custom fonts in Android the easy way…
    https://github.com/chrisjenx/Calligraphy
  2. android-typeface-helper Typeface helper for Android
    https://github.com/norbsoft/android-typeface-helper
  3. Android-Icon-Fonts Material and Holo iconic fonts.
    https://github.com/johnkil/Android-Icon-Fonts
  4. Print A lightweight Android library for use iconic fonts.
    https://github.com/johnkil/Print/
  5. TypefaceHelper Helper object for injecting typeface into various text views of android.
    https://github.com/Drivemode/TypefaceHelper

OpenGL

  1. Rajawali Rajawali is a 3D engine for Android based on OpenGL ES 2.0/3.0. It can be used for normal apps as well as live wallpapers.
    https://github.com/MasDennis/Rajawali

Debug

  1. android-grid-wichterle This app will show grid overlay over whole system which helps you to verify your excellent app design.
    https://github.com/inmite/android-grid-wichterle

Demo

  1. android-demos Examples of Android applications
    https://github.com/novoda/android-demos
  2. u2020 A sample Android app which showcases advanced usage of Dagger among other open source libraries.
    https://github.com/JakeWharton/u2020
  3. BlurEffectForAndroidDesign Sample to show how to implement blur graphical tricks
    https://github.com/PomepuyN/BlurEffectForAndroidDesign
  4. maven-android-plugin-samples Usage examples for Android Maven Plugin
    https://github.com/jayway/maven-android-plugin-samples
  5. Android-WizardPager Android pager-style wizard flow sample code
    https://github.com/romannurik/Android-WizardPager
  6. AndroidPushNotificationsDemo A example of an android app that receives push notifications using MQTT.
    https://github.com/tokudu/AndroidPushNotificationsDemo
  7. android-basic-samples Google Play game services – Android samples
    https://github.com/playgameservices/android-basic-samples
  8. RobolectricSample Sample project demonstrating use of the Robolectric Android testing project
    https://github.com/robolectric/RobolectricSample
  9. android-demo Android common lib demo, include ImageCache, HttpCache, DropDownListView, DownloadManager, install apk silent and so on, you can find description
    https://github.com/Trinea/android-demo
  10. android-movies-demo Sample application demonstrating Android design and animation
    https://github.com/dlew/android-movies-demo
  11. maven-android-plugin-samples Usage examples for Android Maven Plugin
    https://github.com/jayway/maven-android-plugin-samples
  12. android-http-examples Sample code for HTTP on Android.
    https://github.com/swankjesse/android-http-examples
  13. androidmvp MVP Android Example
    https://github.com/antoniolg/androidmvp
  14. ProgrammingAndroidExamples This repo contains example code for O’Reilly’s “Programming Android” by Zigured Mednieks, Laird Dornin, Blake Meike and Masumi Nakamura
    https://github.com/bmeike/ProgrammingAndroidExamples
  15. android-layout-samples Explorations around Android custom layouts
    https://github.com/lucasr/android-layout-samples
  16. LearningAndroidYamba This is the code that goes along with Learning Android book.
    https://github.com/twitter-university/LearningAndroidYamba
  17. RoboDemo RoboDemo is a ShowCase library for Android to demonstrate to users how a given Activity works.
    https://github.com/stephanenicolas/RoboDemo
  18. ProgrammingAndroid2Examples This repo contains example code for O’Reilly’s “Programming Android” by Zigured Mednieks, Laird Dornin, Blake Meike and Masumi Nakamura
    https://github.com/bmeike/ProgrammingAndroid2Examples
  19. hellomap-android Quick start with the Google Maps Android API
    https://github.com/googlemaps/hellomap-android
  20. GraphView-Demos Examples for my Android GraphView library
    https://github.com/jjoe64/GraphView-Demos
  21. Android-Volley-Example Android volley library examples
    https://github.com/PareshMayani/Android-Volley-Example
  22. android-demos Google Drive Android API Demos
    https://github.com/googledrive/android-demos
  23. AndroidDemoProjects Collection of Small Android Projects
    https://github.com/PaulTR/AndroidDemoProjects
  24. android-ActivitySceneTransition Demonstrates how to the use Activity scene transitions when transitions from one Activity to another. Uses a combination of moveImage and changeBounds to nicely transition a grid of images to an Activity with a large image and detail text.
    https://github.com/googlesamples/android-ActivitySceneTransition
  25. android_L_preview_example This project is focused on the sample using the API’s new preview version of Android-L, use of transitions, shadows etc…https://github.com/saulmm/android_L_preview_example
  26. googletv-android-samples Source for many GoogleTV Example applications.
    https://github.com/google/googletv-android-samples
  27. Android-RxJava Learning RxJava for Android by example
    https://github.com/kaushikgopal/Android-RxJava
  28. Android-LollipopShowcase A simple app to showcase some of the cool new cool stuff in Android L. RecyclerView, CardView, ActionBarDrawerToggle, DrawerLayout, Animations, Android Compat Design, Toolbar
    https://github.com/mikepenz/Android-LollipopShowcase
  29. QuickNews This is a news client, similar to netease, news headlines
    https://github.com/tigerguixh/QuickNews
  30. android-best-practices Do’s and Don’ts for Android development, by Futurice developers
    https://github.com/futurice/android-best-practices
  31. ToolbarMenudrawer Quick example for the new Toolbar (and Menudrawer) API. Thanks for starring / forking me. :’)
    https://github.com/I-am-Reinvented/ToolbarMenudrawer
  32. Android-PullLayout 仿UC天气下拉和微信下拉眼睛
    https://github.com/BlueMor/Android-PullLayout
  33. DragLayout An Android Project.ViewDragHelper.QQ.QQ5.0.侧滑
    https://github.com/BlueMor/DragLayout
  34. rx-android-architecture An example project of an Android architecture built on RxJava
    https://github.com/tehmou/rx-android-architecture
  35. AndroidCoolDragAndDropGridView An example of a gridview with various column span items and drag and drop support like Google keep has
    https://github.com/theredsunrise/AndroidCoolDragAndDropGridView
  36. Demo-GoogleBook-Android An android demo about searching and displaying books details using Google book api.
    https://github.com/Jungerr/Demo-GoogleBook-Android
  37. Demo-YouTuBe-Android An android demo about searching and playing youtube videos with youtube player or videoview.
    https://github.com/Jungerr/Demo-YouTuBe-Android
  38. android-proguard-snippets Proguard configurations for common Android libraries
    https://github.com/krschultz/android-proguard-snippets
  39. ViewPagerHeaderScrollDemo ViewPagerHeaderScrollDemo
    https://github.com/ongakuer/ViewPagerHeaderScrollDemo

App

  1. 2048-android The android port of the 2048 game (for offline playing)
    https://github.com/uberspot/2048-android
  2. FeedEx FeedEx News Reader is a light and modern Android feed reader, based on Sparse rss.
    https://github.com/HoloAddict/FeedEx
  3. rubychina4android Ruby-China的Android客户端
    https://github.com/gonjay/rubychina4android
  4. HackerNews An open source Hacker News client for Android.
    https://github.com/bishopmatthew/HackerNews
  5. News-Android-App ownCloud News Reader – Android App
    https://github.com/owncloud/News-Android-App
  6. android-delicious Delicious Android is an Android app which helps you access and save bookmarks via Delicious. It’s available over at Google Play.
    https://github.com/lexs/android-delicious
  7. droidplanner Ground Control Station for Android Devices
    https://github.com/DroidPlanner/droidplanner
  8. FoldingNavigationDrawer-Android This is a sample project present how to use Folding-Android to add Folding Efect to Navigation Drawer.
    https://github.com/tibi1712/FoldingNavigationDrawer-Android
  9. play-android Stream music and control the queue of a play server from your Android device.
    https://github.com/play/play-android
  10. vanilla Vanilla Music Player for Android (abandoned)
    https://github.com/kreed/vanilla
  11. OpenFlappyBird An open source clone of a famous flappy bird game for Android using AndEngine
    https://github.com/deano2390/OpenFlappyBird
  12. TurtlePlayer A Free, Fully Fledged, Open-Source Music Player for Android
    https://github.com/eddturtle/TurtlePlayer
  13. seadroid Android client for Seafile
    https://github.com/haiwen/seadroid
  14. freegemas-gdx Freegemas libGDX is an Android and Java desktop port of Freegemas, which in turn is an open source version of the well known Bejeweled.
    https://github.com/siondream/freegemas-gdx
  15. kanxue-android-app 看雪安全论坛 Android 客户端
    https://github.com/kanxue-team/kanxue-android-app
  16. FlappyCow Android game in “Flappy Bird” Style
    https://github.com/cubei/FlappyCow 1.wakao-app 哇靠百科 - 一款聚合了众多笑话段子、妹子图、微信公众号文章的Android App。
    https://github.com/yongbo000/wakao-app
  17. Twidere-Android Twidere is a powerful twitter client for Android 1.6+ 1 , which gives you a full Holo experience and nearly full Twitter’s feature.
    https://github.com/TwidereProject/Twidere-Android

Security

  1. gnupg-for-android A port of gnupg to Android
    https://github.com/guardianproject/gnupg-for-android
  2. openssl-android a version of the official Android openssl setup to build standalone for use in app
    https://github.com/guardianproject/openssl-android
  3. apg OpenPGP for Android
    https://github.com/thialfihar/apg
  4. android-grid-wichterle This app will show grid overlay over whole system which helps you to verify your excellent app design.
    https://github.com/inmite/android-grid-wichterle

Tools

  1. scrollscreenshot Make Android screenshots of scrollable screen content
    https://github.com/PGSSoft/scrollscreenshot
  2. dex-method-counts Command-line tool to count per-package methods in Android .dex files
    https://github.com/mihaip/dex-method-counts
  3. osmtracker-android GPS tracking tool for OpenStreetMap
    https://github.com/nguillaumin/osmtracker-android
  4. ProMosaic Make mosaic effect on android
    https://github.com/coderkiss/ProMosaic
  5. enroscar A set of Android tools that facilitate apps development
    https://github.com/stanfy/enroscar
  6. android-device-frame-generator Wrap your app screenshots in real device artwork
    http://f2prateek.com/android-device-frame-generator/
  7. AndroidGradleStarter Android Gradle Starter
    https://github.com/ravidsrk/AndroidGradleStarter
  8. android-gradle-template Combines Android Studio, Gradle, Espresso, Robolectric, AndroidAnnotations, RoboCoP, JaCoCo
    https://github.com/nenick/android-gradle-template
  9. swiftp FTP server for your android device.
    https://github.com/ppareit/swiftp
  10. NotificationLog Use an expanded notification as a makeshift Android log output console.
    https://github.com/jgilfelt/NotificationLog
  11. Java7-on-Android Java 7 features backported to Android 2.2+
    https://github.com/yareally/Java7-on-Android
  12. Genius-Android 一个在Android中能经常使用的库集合,包括日志,命令行语句执行;Ping,DNS,Telnet,TraceRoute等网络包;同时包含一套UI主题。
    https://github.com/qiujuer/Genius-Android
  13. TaggerString TaggerString is very light library which allows to build dynamic string resource in much more readable way.
    https://github.com/polok/TaggerString
  14. svg2android SVG to Android VectorDrawable XML resource file
    https://github.com/inloop/svg2android
  15. gplay.ws create a badge to promote your own Android application in a single step
    http://gplay.ws/
  16. gradle-play-publisher Gradle Plugin to upload your APK and metadata to the Google Play Store
    https://github.com/Triple-T/gradle-play-publisher
  17. android-lifecycle A diagram of the Android Activity / Fragment lifecycle
    [https://github.com/xxv/android-lifecycle][https://github.com/xxv/android-lifecycle]
  18. AndroidDevTools 收集整理Android开发所需的Android SDK、开发中用到的工具、Android开发教程、Android设计规范,免费的设计素材等。
    https://github.com/inferjay/AndroidDevTools
  19. gradle-packer-plugin Android Packer Gradle Plugin
    https://github.com/mcxiaoke/gradle-packer-plugin
  20. AndroidLocalizationer This is a Android Studio/ IntelliJ IDEA plugin to localize your Android app, translate your string resources automactically.
    https://github.com/westlinkin/AndroidLocalizationer

Decompiler

  1. jadx Dex to Java decompiler
    https://github.com/skylot/jadx
  2. simplify Generic Android Deobfuscator
    https://github.com/CalebFenton/simplify

Other

  1. DiskLruCache Java implementation of a Disk-based LRU cache which specifically targets Android compatibility.
    https://github.com/JakeWharton/DiskLruCache
  2. anode Android framework for node.js applications
    https://github.com/paddybyers/anode
  3. Fragment-Switcher An instance-state saving fragment switcher, intended for use with navigation drawers or tabs.
    https://github.com/jacobtabak/Fragment-Switcher
Advertisements

latest Awesome Swift

A collaborative list of awesome Swift resources,inspired by awesome-python and listed onawesome-awesomeness.

Feel free to contribute!

    - [Testing](#testing)
    - [UI](#ui)
    - [Utility](#utility)
    - [Video](#video)
    - [Webserver](#webserver)
- [Misc](#misc)
- [Tools](#tools)
    - [Documentation](#documentation)

Demo Apps

Some interesting demo/poc apps written in swift.

iOS

A list of iOS swift demo apps

  • 2048 – 2048 demo game in swift.
  • Alarm – an alarm app in swift.
  • Chat – chat like app implementation in swift.
  • CloudKit-To-Do-List – a cloudkit based to do list.
  • DeckRocket – deckrocket porting in swift.
  • Edhita – text edit app.
  • Eidolon – The Artsy auction kiosk app.
  • firefox-ios – firefox for iOS being developed by Mozilla.
  • Federal Open Data – Get federal Open Data using the Federal Data SDK
  • FlappySwift – flappy bird clone in swift.
  • Gulps – OS app for iOS and apple watch to monitor water consumption.
  • HackerNews – hackernews reader app written in swift.
  • HausClock – chess stile clock app in swift.
  • HomeKitDemo – homekit demo app;
  • iContactU – delivered on Apple Store: reminds you to contact people you ought to.
  • KeychainDemo – keychain sharing between an App and it’s share extension
  • LayerPlayer – explores CALayer and subclasses; written in Swift; also on App Store
  • MyAwesomeChecklist – checklist app in swift.
  • Pocket Forecast – typhoon weather example
  • ReactiveSwiftFlickrSearch – an MVVM & ReactiveCocoa Flickr search app in swift.
  • Round & Split – a tip calculator in swift
  • SwiftDemo – a collection of demo for swift.
  • SwiftFlickrApp – flickr app written in swift.
  • SwiftHN – hacker news app in swift.
  • SwiftWeather – a nice weather app written in swift.
  • TextEthan – a clone of TextEthan, a messaging app that allows anyone to message you
  • Task – a task app written in Swift that is published in the app store.
  • The Oakland Post – a full-fledged, 100%-Swift (minus dependencies) news reader.
  • Valio – event time table app in swift.
  • Walk Tracker – GPS Walk Tracking app with Core Data

OS X

A list of OSX swift demo apps

  • clock-saver – a clock screen saver for osx written in swift.
  • dshb – OS X system monitor in Swift
  • Helium – floating web browser

Dependency Managers

Dependency manager software for swift.

  • carthage – a new dependency manager for swift.
  • cocoapods – the most used dependency manager for Objective-C (swift is still in porting).

Guides

An awesome list of swift related guides.

Style Guides

  • GitHub – Style guide & coding conventions for Swift projects.
  • Raywenderlich – Raywenderlich swift guide, a must read.
  • SlideShare (LinkedIn) – Style guides that SlideShare (LinkedIn) uses for their Swift iOS app.

Editor Support

Support for your favorite editors.

Vim

  • swift-vim – play swift with vim editor.
  • vim-swift – adds swift support to vim. It covers syntax, indenting, and more.
  • vim-polyglot – language pack for vim that includes vim-swift.

Libs

Here you can find a list of snippets and libs for your swift projects.

Audio

Libs to work with audio

  • MusicKit – A framework for composing and transforming music in Swift

API

Quick libs to get access to third party API services

Colors

Interesting snippets related to color management and utility.

  • HexColor – define UIColors as hex integers.
  • PrettyColors – Styles and colors text in the Terminal with ANSI escape codes. Conforms to ECMA Standard 48
  • RandomColorSwift – An attractive color generator for Swift. Ported from randomColor.js.
  • UIColor-Hex-Swift – an hex to uicolor converter.
  • UIColorWDUtils – extension for hex RGB(A).

Cryptography

Deal with cryptography method easily in swift

Data Management

Core Data

No more pain with Core Data, here listed some interesting lib to handle data management.

  • AERecord – super awesome Core Data wrapper library for iOS written in Swift.
  • AlecrimCoreData – a simple CoreData wrapper library written in Swift.
  • JSQCoreDataKit – A swifter Core Data stack.
  • SugarRecord – an easy with to work with coredata and realm.
  • SuperRecord – A small set of utilities to make working with CoreData and Swift a bit easier.
  • QueryKit – an easy way to play with coredata filtering within your swift projects.

JSON

Struggling using json data? Here you are some interesting way to handle it.

  • Argo – Json parsing library
  • json-swift – A basic library for working with JSON in swift.
  • JSONHelper – lightning fast JSON deserialization and value conversion library for iOS & OS X written in swift.
  • ObjectMapper – JSON object mapper.
  • Pistachio – Generic model framework for Swift.
  • SwiftyJSON – A lib for JSON in swift with error handling.
  • SwiftMapper – JSON Mapper.
  • SwiftJSONParser – JSON parser.

SQLite

Are you interested in storing your app data using SQLite? Here some interesting resources.

  • SQLite.swift – A pure Swift framework wrapping SQLite3. Small. Simple. Safe.
  • SQLiteDB – sqlite wrapper for swift.
  • SwiftData – simple and Effective SQLite Handling in Swift.

XML

If you prefer to manage XML data formatted entries, here some helpful libs

Date

Handle data formatting easily.

Events

Alternatives to NSNotificationCenter, Key-Value-Observation, or delegation.

  • Bond – a Swift binding framework.
  • EmitterKit – an implementation of event emitters and listeners in swift.
  • Signals – replaces delegates and notifications.
  • SwiftEventBus – A publish/subscribe event bus optimized for iOS.

Fonts

A collection of font related snippets.

Gesture

iBeacon

Interested in using iBeacon in your swift project? Here some interesting resources.

  • iBeacon – iBeacon implementation in swift.

Images

An interesting list of image related libs..

  • CYFastImage – display images from web.
  • gifu – highly performant animated GIF support for iOS in Swift.
  • ImageLoader – A lightweight and fast image loader for iOS written in Swift.
  • ImageScout – a Swift implementation of fastimage – supports PNG, GIF, and JPEG.
  • Kingfisher – a lib for image download and caching.
  • MapleBacon – Swift image download and caching library.
  • PASImageView – async remote download your image and round them. automatically.
  • SwiftColorArt – font schema generator according image colours.
  • SwiftGif – A small UIImage extension with gif support
  • Toucan – Image processing api
  • UIImageView-BetterFace-Swift – autoresize images and if any face discovered refine the position of the image.

Keyboard

Do you want to create your own customized keyboard? Here some interesting resources

Layout

Libs to help you with layout.

  • ManualLayout – Easy to use and flexible AutoLayout alternative for iOS 8+. Supports AsyncDisplayKit.
  • SwiftBox – Flexbox in Swift, using Facebook’s css-layout.

Auto Layout

Bored of using storyboard? Give a try to declarative auto layout libs.

  • Cartography – declarative auto layout lib for your project.
  • PureLayout – The ultimate API for iOS & OS X Auto Layout.
  • Restraint – Minimal Auto Layout in Swift.
  • Snappy – a light-weight layout framework which wraps AutoLayout with nicer syntax.
  • SwiftAutoLayout – a small DSL for autolayout.
  • Tails – declarative autolayout for ios app written in swift.
  • VFLToolbox – fancy Swift implementation of the Visual Format Language

Math

  • Easy-Cal-Swift – Overload +-*/ operator for Swift, make it easier to use (and not so strict).
  • Surge – Accelerate framework for swift.
  • swix – A general matrix language.

Network

A list of libs that allow you to decrease the amount of time spent to deal with http requests.

  • agent – http request agent.
  • Alamofire – elegant networking in swift.
  • APIKit – a library for building type-safe web API client.
  • GRequest – http request handler.
  • IJReachability – check for network connection availability.
  • ModestProposal – an HTTP toolbox.
  • Moya – network abstraction layer.
  • Net – an httprequest wrapper.
  • OAuth2 – oauth2 auth lib.
  • OAuthSwift – Swift based OAuth library for iOS.
  • PeerKit – An open-source Swift framework for building event-driven, zero-config Multipeer Connectivity apps.
  • RSNetworking – Network library written purely in Swift.
  • Socket.IO – Socket.IO client for iOS/OS X.
  • Stargate – A communication channel from your Mac to your watch.
  • Starscream – websockets implementation in swift.
  • SwiftHTTP – NSURLSession wrapper.
  • SwiftSocket – simple TCP socket library.
  • Transporter – A tiny library makes uploading and downloading easier.
  • YYHRequest-Swift – http request in async.

Security

  • KeychainAccess – Simple Swift wrapper for Keychain that works on iOS and OS X.
  • KeyClip – Keychain framework for iOS written in Swift.
  • SwiftKeychainWrapper – a simple static wrapper for the iOS Keychain to allow you to use it in a similar fashion to user defaults.

Sensors

Manage your device sensors in a faster and easier way

System

  • SMCKit – Apple SMC library in Swift
  • SystemKit – OS X system library in Swift

Testing

A collection of testing frameworks.

  • Mockingjay – An elegant library for stubbing HTTP requests with ease in Swift.
  • Quick – Quick is a behavior-driven development framework for Swift and Objective-C.
  • Sleipnir – BDD-style framework for Swift.
  • Swiftest – experimental BDD-style framework.

UI

A collection of pre-packaged transitions & cool ui stuffs.

Utility

Some interesting utilities that help you in your projects

  • __ – Underscore.js power in your swift projects.
  • AAWindow – UIWindow subclass to enable behavior like adaptive round-corners & detecting when Control Center is opened.
  • Async – Syntactic swift sugar for Grand Central Dispatch
  • Async.legacy – Syntactic swift sugar for Grand Central Dispatch (iOS 7 and OS X 10.9 Mavericks compatible fork)
  • AwesomeCache – manage cache easy in your swift project.
  • BrightFutures – promise and future lib for swift.
  • Chronos– Grand Central Dispatch Utilities.
  • CLIKit – a way to create cli with swift.
  • Collection Each – add each func to collections.
  • CommandLine – A pure Swift library for creating command-line interfaces
  • DBPathRecognizer – Gesture recognizer tool.
  • Dispatcher – Queues, timers, and task groups in Swift
  • Dollar – a lib similar to Lo-Dash or Underscore in Javascript.
  • ExSwift – a set of swift extensions for standard types and classes.
  • Lambdatron – Clojure(ish) interpreter in Swift.
  • LlamaKit – Collection of must-have functional Swift tools.
  • Mendel – Swift miliframework for implementing evolutionary/genetic algorithms.
  • PromiseKit – async promise programming lib.
  • Prototope – Swift library of lightweight interfaces for prototyping, bridged to JS.
  • PureFutures – Futures and Promises library
  • Pythonic.swift – Pythonic tool-belt for Swift: a Swift implementation of selected parts of Python standard library.
  • ReactKit – Swift Reactive Programming.
  • Result – Swift type modelling the success/failure of arbitrary operations.
  • Runes – Functional operators for Swift – flatMap, map, apply, pure
  • SpecificationPattern – chainable rules useful for form validation.
  • SpriteKit+Spring – SpriteKit API reproducing UIView’s spring animations with SKAction.
  • SwiftBitmaskBitmask<T> type intended as a replacement for RawOptionSet.
  • SwiftColors – HEX color handling as an extension for UIColor.
  • SwiftForms – form are now easy as 1.2.3!
  • SwiftMemCache – Swift Memory Cache with namespace & TTL support.
  • SwiftyUserDefaults — a cleaner, nicer syntax for NSUserDefaults
  • Swiftz – a lib for functional programming.
  • Swift Sugar – objsugar ported to swift.
  • undefined – Nano framework which defines Haskell’s undefined in Swift.
  • Versions – Helping you find inner peace when comparing version numbers in Swift.
  • Wyrd – Asynchronous programming in Swift made easy. Wyrd is inspired by Promises/A+.
  • XCGLogger – a lib that help you handling better debug logging.
  • Swell – a logging utility for Swift.

Video

  • Player – iOS video player in Swift, simple drop in component for playing and streaming media.

Webserver

Do you wanna host a webserver in your device? Here you can find some tricks to do it.

  • NetworkObjects – REST HTTP Server written in Swift. Builds REST API from Core Data.
  • swifter – Http server written in Swift with routing handler.

Misc

Miscellaneous Swift related projects

  • swift-compiler-crashes – A collection of test cases crashing the Swift compiler
  • swiftier – Quick-and-dirty Objective-C to Swift translator.
  • SwiftInFlux — List of things that are “in flux” in Swift + changelog of the language

Tools

Tools for Swift development

Documentation

Generate documentation for Swift code

  • jazzy – Soulful docs for Swift & Objective-C
  • swiftdoc-parser – Header parsing and HTML generating utilities for SwiftDoc.org

Guides

An awesome list of swift related guides.

EVERYTHING YOU WANT – Swift resources

Getting Started

Swift Tutorials

Merry Swiftmas

q=infoq.com 2014-12-20

Arc4random

q=mav3r1ck.com 2014-09-22

Swift 1.2

q=nshipster.com 2015-02-09

Pay

q=nshipster.com 2014-12-08

The Minus Sign

q=oleb.net 2015-02-26

Swift Strings

q=oleb.net 2014-08-25

Swift People

q=vluxe.io 2015-03-06

Skeets

q=vluxe.io 2014-12-11

JSONJoy

q=vluxe.io 2014-11-18

Swift Substrings

q=vluxe.io 2014-11-06

Swift Source Code

Swift Libraries

Swift Playgrounds

Advanced Topics

Reactive Swift

q=medium.com 2015-03-11

NSScanner

q=nshipster.com 2015-03-02

Animation Jazz

q=vluxe.io 2015-03-25

swift builders

q=vperi.com 2014-06-17

slicing arrays

q=vperi.com 2014-06-04

Crash Course

Beginner

Intermediate and Advanced topics

Code

Video

Thank you all for your feedback and support! :)

Learn X in Y minutes

Swift is a programming language for iOS and OS X development created by Apple. Designed to coexist with Objective-C and to be more resilient against erroneous code, Swift was introduced in 2014 at Apple’s developer conference WWDC. It is built with the LLVM compiler included in Xcode 6+.

The official Swift Programming Language book from Apple is now available via iBooks.

See also Apple’s getting started guide, which has a complete tutorial on Swift.

// import a module
import UIKit

//
// MARK: Basics
//

// Xcode supports landmarks to annotate your code and lists them in the jump bar
// MARK: Section mark
// TODO: Do something soon
// FIXME: Fix this code

println("Hello, world")

// variables (var) value can change after being set
// constants (let) value can NOT be changed after being set

var myVariable = 42
let øπΩ = "value" // unicode variable names
let π = 3.1415926
let convenience = "keyword" // contextual variable name
let weak = "keyword"; let override = "another keyword" // statements can be separated by a semi-colon
let `class` = "keyword" // backticks allow keywords to be used as variable names
let explicitDouble: Double = 70
let intValue = 0007 // 7
let largeIntValue = 77_000 // 77000
let label = "some text " + String(myVariable) // Casting
let piText = "Pi = \(π), Pi 2 = \(π * 2)" // String interpolation

// Build Specific values
// uses -D build configuration
#if false
    println("Not printed")
    let buildValue = 3
#else
    let buildValue = 7
#endif
println("Build value: \(buildValue)") // Build value: 7

/*
    Optionals are a Swift language feature that allows you to store a `Some` or
    `None` value.

    Because Swift requires every property to have a value, even nil must be
    explicitly stored as an Optional value.

    Optional<T> is an enum.
*/
var someOptionalString: String? = "optional" // Can be nil
// same as above, but ? is a postfix operator (syntax candy)
var someOptionalString2: Optional<String> = "optional"

if someOptionalString != nil {
    // I am not nil
    if someOptionalString!.hasPrefix("opt") {
        println("has the prefix")
    }

    let empty = someOptionalString?.isEmpty
}
someOptionalString = nil

// implicitly unwrapped optional
var unwrappedString: String! = "Value is expected."
// same as above, but ! is a postfix operator (more syntax candy)
var unwrappedString2: ImplicitlyUnwrappedOptional<String> = "Value is expected."

if let someOptionalStringConstant = someOptionalString {
    // has `Some` value, non-nil
    if !someOptionalStringConstant.hasPrefix("ok") {
        // does not have the prefix
    }
}

// Swift has support for storing a value of any type.
// AnyObject == id
// Unlike Objective-C `id`, AnyObject works with any value (Class, Int, struct, etc)
var anyObjectVar: AnyObject = 7
anyObjectVar = "Changed value to a string, not good practice, but possible."

/*
    Comment here

    /*
        Nested comments are also supported
    */
*/

//
// MARK: Collections
//

/*
    Array and Dictionary types are structs. So `let` and `var` also indicate
    that they are mutable (var) or immutable (let) when declaring these types.
*/

// Array
var shoppingList = ["catfish", "water", "lemons"]
shoppingList[1] = "bottle of water"
let emptyArray = [String]() // let == immutable
let emptyArray2 = Array<String>() // same as above
var emptyMutableArray = [String]() // var == mutable


// Dictionary
var occupations = [
    "Malcolm": "Captain",
    "kaylee": "Mechanic"
]
occupations["Jayne"] = "Public Relations"
let emptyDictionary = [String: Float]() // let == immutable
let emptyDictionary2 = Dictionary<String, Float>() // same as above
var emptyMutableDictionary = [String: Float]() // var == mutable


//
// MARK: Control Flow
//

// for loop (array)
let myArray = [1, 1, 2, 3, 5]
for value in myArray {
    if value == 1 {
        println("One!")
    } else {
        println("Not one!")
    }
}

// for loop (dictionary)
var dict = ["one": 1, "two": 2]
for (key, value) in dict {
    println("\(key): \(value)")
}

// for loop (range)
for i in -1...shoppingList.count {
    println(i)
}
shoppingList[1...2] = ["steak", "peacons"]
// use ..< to exclude the last number

// while loop
var i = 1
while i < 1000 {
    i *= 2
}

// do-while loop
do {
    println("hello")
} while 1 == 2

// Switch
// Very powerful, think `if` statements with syntax candy
// They support String, object instances, and primitives (Int, Double, etc)
let vegetable = "red pepper"
switch vegetable {
case "celery":
    let vegetableComment = "Add some raisins and make ants on a log."
case "cucumber", "watercress":
    let vegetableComment = "That would make a good tea sandwich."
case let localScopeValue where localScopeValue.hasSuffix("pepper"):
    let vegetableComment = "Is it a spicy \(localScopeValue)?"
default: // required (in order to cover all possible input)
    let vegetableComment = "Everything tastes good in soup."
}


//
// MARK: Functions
//

// Functions are a first-class type, meaning they can be nested
// in functions and can be passed around

// Function with Swift header docs (format as reStructedText)

/**
    A greet operation

    - A bullet in docs
    - Another bullet in the docs

    :param: name A name
    :param: day A day
    :returns: A string containing the name and day value.
*/
func greet(name: String, day: String) -> String {
    return "Hello \(name), today is \(day)."
}
greet("Bob", "Tuesday")

// similar to above except for the function parameter behaviors
func greet2(#requiredName: String, externalParamName localParamName: String) -> String {
    return "Hello \(requiredName), the day is \(localParamName)"
}
greet2(requiredName:"John", externalParamName: "Sunday")

// Function that returns multiple items in a tuple
func getGasPrices() -> (Double, Double, Double) {
    return (3.59, 3.69, 3.79)
}
let pricesTuple = getGasPrices()
let price = pricesTuple.2 // 3.79
// Ignore Tuple (or other) values by using _ (underscore)
let (_, price1, _) = pricesTuple // price1 == 3.69
println(price1 == pricesTuple.1) // true
println("Gas price: \(price)")

// Variadic Args
func setup(numbers: Int...) {
    // its an array
    let number = numbers[0]
    let argCount = numbers.count
}

// Passing and returning functions
func makeIncrementer() -> (Int -> Int) {
    func addOne(number: Int) -> Int {
        return 1 + number
    }
    return addOne
}
var increment = makeIncrementer()
increment(7)

// pass by ref
func swapTwoInts(inout a: Int, inout b: Int) {
    let tempA = a
    a = b
    b = tempA
}
var someIntA = 7
var someIntB = 3
swapTwoInts(&someIntA, &someIntB)
println(someIntB) // 7


//
// MARK: Closures
//
var numbers = [1, 2, 6]

// Functions are special case closures ({})

// Closure example.
// `->` separates the arguments and return type
// `in` separates the closure header from the closure body
numbers.map({
    (number: Int) -> Int in
    let result = 3 * number
    return result
})

// When the type is known, like above, we can do this
numbers = numbers.map({ number in 3 * number })
// Or even this
//numbers = numbers.map({ $0 * 3 })

print(numbers) // [3, 6, 18]

// Trailing closure
numbers = sorted(numbers) { $0 > $1 }

print(numbers) // [18, 6, 3]

// Super shorthand, since the < operator infers the types

numbers = sorted(numbers, < )

print(numbers) // [3, 6, 18]

//
// MARK: Structures
//

// Structures and classes have very similar capabilites
struct NamesTable {
    let names = [String]()

    // Custom subscript
    subscript(index: Int) -> String {
        return names[index]
    }
}

// Structures have an auto-generated (implicit) designated initializer
let namesTable = NamesTable(names: ["Me", "Them"])
let name = namesTable[1]
println("Name is \(name)") // Name is Them

//
// MARK: Classes
//

// Classes, structures and its members have three levels of access control
// They are: internal (default), public, private

public class Shape {
    public func getArea() -> Int {
        return 0;
    }
}

// All methods and properties of a class are public.
// If you just need to store data in a
// structured object, you should use a `struct`

internal class Rect: Shape {
    var sideLength: Int = 1

    // Custom getter and setter property
    private var perimeter: Int {
        get {
            return 4 * sideLength
        }
        set {
            // `newValue` is an implicit variable available to setters
            sideLength = newValue / 4
        }
    }

    // Lazily load a property
    // subShape remains nil (uninitialized) until getter called
    lazy var subShape = Rect(sideLength: 4)

    // If you don't need a custom getter and setter,
    // but still want to run code before and after getting or setting
    // a property, you can use `willSet` and `didSet`
    var identifier: String = "defaultID" {
        // the `willSet` arg will be the variable name for the new value
        willSet(someIdentifier) {
            print(someIdentifier)
        }
    }

    init(sideLength: Int) {
        self.sideLength = sideLength
        // always super.init last when init custom properties
        super.init()
    }

    func shrink() {
        if sideLength > 0 {
            --sideLength
        }
    }

    override func getArea() -> Int {
        return sideLength * sideLength
    }
}

// A simple class `Square` extends `Rect`
class Square: Rect {
    convenience init() {
        self.init(sideLength: 5)
    }
}

var mySquare = Square()
print(mySquare.getArea()) // 25
mySquare.shrink()
print(mySquare.sideLength) // 4

// cast instance
let aShape = mySquare as Shape

// compare instances, not the same as == which compares objects (equal to)
if mySquare === mySquare {
    println("Yep, it's mySquare")
}

// Optional init
class Circle: Shape {
    var radius: Int
    override func getArea() -> Int {
        return 3 * radius * radius
    }

    // Place a question mark postfix after `init` is an optional init
    // which can return nil
    init?(radius: Int) {
        self.radius = radius
        super.init()

        if radius <= 0 {
            return nil
        }
    }
}

var myCircle = Circle(radius: 1)
println(myCircle?.getArea())    // Optional(3)
println(myCircle!.getArea())    // 3
var myEmptyCircle = Circle(radius: -1)
println(myEmptyCircle?.getArea())    // "nil"
if let circle = myEmptyCircle {
    // will not execute since myEmptyCircle is nil
    println("circle is not nil")
}


//
// MARK: Enums
//

// Enums can optionally be of a specific type or on their own.
// They can contain methods like classes.

enum Suit {
    case Spades, Hearts, Diamonds, Clubs
    func getIcon() -> String {
        switch self {
        case .Spades: return "♤"
        case .Hearts: return "♡"
        case .Diamonds: return "♢"
        case .Clubs: return "♧"
        }
    }
}

// Enum values allow short hand syntax, no need to type the enum type
// when the variable is explicitly declared
var suitValue: Suit = .Hearts

// Non-Integer enums require direct raw value assignments
enum BookName: String {
    case John = "John"
    case Luke = "Luke"
}
println("Name: \(BookName.John.rawValue)")

// Enum with associated Values
enum Furniture {
    // Associate with Int
    case Desk(height: Int)
    // Associate with String and Int
    case Chair(String, Int)

    func description() -> String {
        switch self {
        case .Desk(let height):
            return "Desk with \(height) cm"
        case .Chair(let brand, let height):
            return "Chair of \(brand) with \(height) cm"
        }
    }
}

var desk: Furniture = .Desk(height: 80)
println(desk.description())     // "Desk with 80 cm"
var chair = Furniture.Chair("Foo", 40)
println(chair.description())    // "Chair of Foo with 40 cm"


//
// MARK: Protocols
//

// `protocol`s can require that conforming types have specific
// instance properties, instance methods, type methods,
// operators, and subscripts.

protocol ShapeGenerator {
    var enabled: Bool { get set }
    func buildShape() -> Shape
}

// Protocols declared with @objc allow optional functions,
// which allow you to check for conformance
@objc protocol TransformShape {
    optional func reshaped()
    optional func canReshape() -> Bool
}

class MyShape: Rect {
    var delegate: TransformShape?

    func grow() {
        sideLength += 2

        // Place a question mark after an optional property, method, or
        // subscript to gracefully ignore a nil value and return nil
        // instead of throwing a runtime error ("optional chaining").
        if let allow = self.delegate?.canReshape?() {
            // test for delegate then for method
            self.delegate?.reshaped?()
        }
    }
}


//
// MARK: Other
//

// `extension`s: Add extra functionality to an already existing type

// Square now "conforms" to the `Printable` protocol
extension Square: Printable {
    var description: String {
        return "Area: \(self.getArea()) - ID: \(self.identifier)"
    }
}

println("Square: \(mySquare)")

// You can also extend built-in types
extension Int {
    var customProperty: String {
        return "This is \(self)"
    }

    func multiplyBy(num: Int) -> Int {
        return num * self
    }
}

println(7.customProperty) // "This is 7"
println(14.multiplyBy(3)) // 42

// Generics: Similar to Java and C#. Use the `where` keyword to specify the
//   requirements of the generics.

func findIndex<T: Equatable>(array: [T], valueToFind: T) -> Int? {
    for (index, value) in enumerate(array) {
        if value == valueToFind {
            return index
        }
    }
    return nil
}
let foundAtIndex = findIndex([1, 2, 3, 4], 3)
println(foundAtIndex == 2) // true

// Operators:
// Custom operators can start with the characters:
//      / = - + * % < > ! & | ^ . ~
// or
// Unicode math, symbol, arrow, dingbat, and line/box drawing characters.
prefix operator !!! {}

// A prefix operator that triples the side length when used
prefix func !!! (inout shape: Square) -> Square {
    shape.sideLength *= 3
    return shape
}

// current value
println(mySquare.sideLength) // 4

// change side length using custom !!! operator, increases size by 3
!!!mySquare
println(mySquare.sideLength) // 12

Ios tutorial links

RoadMap

Basic iOS
Learn how to make applications using the
autogenerator tools of Xcode. These are things
like storyboards and the Xcode generators like
the master-details template. Inevitably this will
be an application that uses a UITableView and
then some sort of detail view with some
buttons. Understand how connecting UI
elements with the IBActions and instance
variables works.
Objective-C
The language of iOS. You can easily write apps
without getting super familiar with Objective-C
but you should learn some of the basic
features of Objective-C. I’d make sure you
understand @property and how method
passing. In the end Objective-C is a pretty
standard Objective Orientated language.
Object-oriented Principles
Pretty much you need to learn and understand
the Delegate and Protocol patterns. You’ll use
them constantly. Everything else is just icing
on the cake
Core Data
Besides reading tutorials/articles on the topic
playing around with the core data Xcode
template is a great way to understand the
basics of Core Data. Core Data contains an
insane amount of classes and interconnected
parts, which makes it very difficult to get
going with. As you’re reading all this, keep
reminding yourself that Core Data is not a
database ORM.
API Integration
Play around with Helios.io because it’s super
awesome and will get you started with
networking and the incredibly complex world
of dealing with that stuff on iOS. Eventually
you’ll move onto integrating other SDKs (like
foursquare, instagram, twitter, etc) but just
start simple and move forward.
Core Location
This will be the first serious use of delegation.
Really the two topics you need to understand
are the MapKit view and the
CLLocationManagerDelegate.
Mobile Design
This is a slightly nebulous topic. I’ve provided
some good resources on my github project,
but the most important thing to learn is to
never. ever. ever. ever. block the main UI
thread. When you click something, the UI
should always respond
Customizing UIKit
Customizing the UI really adds an air of
professionalism to your app. The big UI
elements to learn how to customize are the
navigationbar, uitableviewcells, buttons and
the new collection view cells. These are the
bread and butter of iOS apps and everyone
customizes them.
Hardware
iOS devices have a whole host of hardware to
play with. To get going I would just focus on
the camera/photo library. That’s probably the
only hardware pieces you’ll end up using.
Core Animation
Pretty much the point of Core Animation is for
the cool factor. That’s why I put it last in this
list. I don’t find that animation really adds
much in terms of “features” but I think it’s
pretty cool and can be a lot of fun. The most
important stuff to learn here when/how to use
the transitions from UIView to UIView.

iOS Human Interface Guidelines

iOS Developers and the Raspberry Pi 2

It’s estimated that millions of IoT developers will be needed by 2020! That’s quite an opportunity.

Pi2ModB1GB_-comp-500x283

Raspberry Pi 2 is a great starting point for software developers interested in learning to program hardware. To introduce iOS developers to IoT development, I am giving away three (3)Raspberry Pi 2 devices.

To register in the drawing, all you need to do is subscribe to my new weekly publication: IoT Developer’s Journal. Your email will never be shared and unsubscribing is as simple as one-click.

Subscribe to IoT Developer’s Journal – Enter me in the drawings!

I hope you will consider subscribing, and if you do, I wish you the best of luck in the giveaway!

Due to international regulations, the Raspberry Pi 2 giveaway is open only to residents of the U.S.