Main repository containing all the example apps demonstrating features/functionality/integrations in android application development
NOTE: If you are going to download just a single example app (using the download link), make sure you follow the below procedure
- Create a folder
android-examples
- Next download and add the
dependencies.gradle
to thisandroid-examples
folder- Now move the example app folder inside the
android-examples
folderThe reason this is required because each single app uses
ext
variables defined and referenced fromdependencies.gradle
file from the parent folder namelyandroid-examples
.
- ActivityLifecycle
- AnimatedGradientBackground
- AudioRecording
- AutoCompleteTextview
- AutoInitLibrary
- BasicMVP
- BoundServices
- BottomSheet
- BottomNavigationView
- BroadcastReceiver
- BuilderPattern
- BuildVariants
- CallsAndSMS
- Camera2
- ChangeThemeDuringRuntime
- CheckIfPhoneOrTablet
- CheckIfScreenLocked
- ChromeCustomTabs
- CircularImage
- CleanProject
- CollapsibleToolbar
- CommonConfigForModules
- CompileOnly
- CustomBroadcastPermissions
- CustomOnboardingIntro
- CustomView
- DataBinding
- DebuggingWebViews
- DepsManagementViaBuildSrc
- Encryption
- ExtractingColorFromBitmap
- FingerprintAPI
- Firebase
- FirebaseCloudMessaging
- GCMNetworkManager
- GPSLocation
- GestureDetection
- GridView
- HeadlessFragment
- ImplementingEmoticons
- IntentService
- Intents
- InterProcessService
- JNI
- JUnitTests
- LifeCycleCompForLib
- ListView
- ListViewWithCustomAdapter
- LoadHtmlIntoWebview
- LocalBroadcastManager
- MobileVisionAPI2ReadBarCodes
- ModulesUnderSubdirectory
- NavigationDrawer
- Notification
- OSSLicenseActivity
- ParallaxHeaderListview
- PopupMenu
- ProductFlavors
- QuickSettingsTile
- RadioButton
- RatingBar
- ReadJSONFile
- RecyclerView
- RuntimePermissions
- SQLite
- SearchView
- SearchViewInToolbar
- Service
- SharedElementTransitions
- SimulateClick
- SnackBar
- SnapHelper
- SpeechRecognition
- SplashScreen
- SplitSigninConfig
- TabLayout
- TextToSpeech
- TranslucentStatusBar
- UnitTestingWithRoboelectric
- UsingAppintro
- UsingArcMenu
- UsingBottomNavigationBar
- UsingButterKnife
- UsingDBFlow
- UsingDagger2
- UsingEasyGCMlib
- UsingFragmentsForResponsiveLayout
- UsingFirebaseJobDispatcher
- UsingFontAwesomeLib
- UsingKotlin
- UsingLitho
- UsingMPChartsLib
- UsingOpenNLP
- UsingParceler
- UsingParcelize
- UsingPercentSupportLib
- UsingPocketSphinxForVoiceRecognition
- UsingRealmDB
- UsingRetrofit2
- UsingRobolectric
- UsingRoomORM
- UsingRxJava
- UsingRxJava2
- UsingStetho
- UsingSugarORM
- UsingTimberLogger
- UsingAltBeaconLib
- VectorDrawables
- ViewPager
- WebViewDialogueBox
- UsingEasyDeviceInfo
- UsingSensey
- UsingRecyclerViewHelper
- UsingScreenshott
- UsingStackedHorizontalProgressbar
- UsingQREader
- UsingPackageHunter
- UsingAndroidUtils
- UsingZentone
- UsingOptimusHTTP
- UsingShoutout
I welcome and encourage all pull requests. It usually will take me within 24-48 hours to respond to any issue or request. Here are some basic rules to follow to ensure timely addition of your request:
-
Match coding style (braces, spacing, etc.) This is best achieved using
Reformat Code
feature of Android StudioCMD
+Option
+L
on Mac andCTRL
+ALT
+L
on Linux + Windows . -
If its a feature, bugfix, or anything please only change code to what you specify.
-
Please keep PR titles easy to read and descriptive of changes, this will make them easier to merge :)
-
Pull requests must be made against
develop
branch. Any other branch (unless specified by the maintainers) will get rejected. -
Check for existing issues first, before filing an issue.
-
Make sure you follow the set standard as all other projects in this repo do
-
Upgrade your gradle wrapper to the one all other apps are using. Use the below command at root of your project
./gradlew wrapper --gradle-version <version_name>
i.e
./gradlew wrapper --gradle-version 6.0.1
-
Use
ext
variables as defined independencies.gradle
, in yourbuild.gradle
files to make sure all apps are in sync with configurations and dependencies. Take a look here and here -
Use the package name of the format
github.nisrulz.*
where*
is the example you are adding to the repo. I am trying to follow a set standard in the repo, please adhere to that.
-
-
Have fun!
NOTE: There is a quick bootstrapping cookiecutter template to create an Android example project that adheres to all wiring up and standards for this repo. Read how to use use it here
Since the repo is pretty large now , I am sure many folks would like to download only some of the projects. To tackle that follow the steps below:
-
Install
svn
using homebrew (mac/linux)brew install svn
-
Copy the name of the example folder in this repo i.e
AccessingGoogleDrive
-
Next replace
example_folder
in the below command:svn checkout https://github.com/nisrulz/android-examples/trunk/example_folder
i.e Consider
AccessingGoogleDrive
is the name of the example's folder, the command becomes:svn checkout https://github.com/nisrulz/android-examples/trunk/AccessingGoogleDrive
-
Done! You should have the specific example all checked out!
This project was created by Nishant Srivastava but hopefully developed and maintained by many others. See the the list of contributors here.
If you appreciate my work, consider buying me a cup of ☕ to keep me recharged 🤘 [PayPal]
Copyright 2016 Nishant Srivastava
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.