Daily Tips From Android World
![GitHub license](https://camo.githubusercontent.com/6ad670c99efa8454f2a1f26630c52d31bf36ffc5fb55ee026544b437b2dd7ea2/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f4d6f62696c6554697073746572732f616e64726f69642d6461696c792d746970732e737667)
![telegram alt text](/art/telegram.png)
#186 Fragment Container View
![alt text](/screenshots/FragmentContainerView.png)
#185 Filter Google Places Autocomplete
![alt text](/screenshots/FilterGooglePlacesAutocomplete.png)
#184 String Extension JoinToString
![alt text](/screenshots/JoinToString.png)
#183 Android DI Performance
![alt text](/screenshots/android_di_performance.jpg)
#182 Flow Api Cheat Sheet by Remy Benza
![alt text](/screenshots/flow_api_cheat_sheet.jpg)
![alt text](/screenshots/Sequence.png)
![alt text](/screenshots/MultiDimensionalFlavorConfigFields.png)
![alt text](/screenshots/BitmapExtension.png)
#178 BuildScript vs Allprojects
![alt text](/screenshots/BuildscriptVsAllprojects.png)
![alt text](/screenshots/Transient.png)
#176 ConstraintLayout Aspect Ratio
![alt text](/screenshots/ConstraintLayoutAspectRatio.png)
#175 CoroutineScope Vs SupervisorScope
![alt text](/screenshots/CoroutineScopeVssupervisorScope.png)
#174 Make When Exhaustive
![alt text](/screenshots/WhenExhaustive.png)
#173 Delegating Setters and Getters
![alt text](/screenshots/DelegatingSettersGetters.jpg)
#172 Proguard Keep Variants
![alt text](/screenshots/ProguardKeep.png)
![alt text](/screenshots/Average.png)
#170 View Visiblity Extensions
![alt text](/screenshots/ViewVisiblityExt.png)
![alt text](/screenshots/KotlinWhereUsage.jpg)
![alt text](/screenshots/MoshiOverGson.png)
#167 Constructor Injection over Field Injection
![alt text](/screenshots/ConstructorInjection.png)
#166 Localizing Firebase Push Notifications
![alt text](/screenshots/AndroidLocalizedPushNotifications.png)
#165 Dagger Android Injector
![alt text](/screenshots/DaggerAndroidInjector.png)
![alt text](/screenshots/LiveDataTransformations.png)
#163 Creating Efficient Splash Screen
![alt text](/screenshots/EfficientSplashScreen.png)
#162 Handling Deep Link with Navigation Component
![alt text](/screenshots/DeepLinkWithNavigationComponent.png)
![alt text](/screenshots/FlowVsObservable.jpg)
#160 Newline At End Of File
![alt text](/screenshots/NewlineAtEndOfFile.png)
#159 Calling Java from Kotlin - Notation For Platform Types
![alt text](/screenshots/NotationForPlatformTypes.png)
#158 App Background - Foreground Listener
![alt text](/screenshots/AppFgBgListener.png)
#157 Automatically encrypts keys and values and adheres to the SharedPreference Interface
![alt text](/screenshots/EncryptedSharedPreferences.png)
#156 Drawable vs Mipmap Folders
![alt text](/screenshots/DrawableVsMipMapFolders.jpg)
#155 Extension functions for View Model Providers
![alt text](/screenshots/ViewModelExtension.png)
#154 Relation Between Livedata,MutableLiveData and MediatorLiveData
![alt text](/screenshots/RelationBetweenLivedataAndSubClasses.png)
#153 Coroutines Continuation Usage
![alt text](/screenshots/CoroutinesContinuationUsage.png)
#152 Reading-Writing lists from/to RoomDB with Moshi
![alt text](/screenshots/RoomTypeConverter.png)
#151 Jetpack Compose Sample
![alt text](/screenshots/JetpackCompose.png)
![alt text](/screenshots/LaunchVsAsync.jpg)
#149 EditText Manual Focus Forward
![alt text](/screenshots/EditTextManualFocusForward.jpg)
![alt text](/screenshots/FunctionInterfaces.jpg)
![alt text](/screenshots/DiImplCosts.jpg)
#146 Easy Spannable on Kotlin
![alt text](/screenshots/easyspannableonkotlin.png)
#145 ApiCalls and Suspend Functions
![alt text](/screenshots/ApiCallsAndSuspendFunctions.png)
#144 First and Predicate Usage
![alt text](/screenshots/FirstAndPredicate.jpg)
![alt text](/screenshots/LuhnCheck.png)
![alt text](/screenshots/ListImplDiscuss.png)
#141 How to Read From Json
![alt text](/screenshots/ReadFromJson.png)
#140 Checking Location Services with AndroidX
![alt text](/screenshots/CheckingLocationServices.png)
![alt text](/screenshots/LiveData.png)
#138 RxJava Firebase Storage Sample Usage
![alt text](/screenshots/RxJavaFirebaseStorageSample.png)
![alt text](/screenshots/NamingImportExample.png)
#136 Keyboard Show/Hide Ext.
![alt text](/screenshots/KeyboardShowHideExt.png)
#135 Correct usage of LifeCycleOwner in Fragments
![alt text](/screenshots/FragmentLiveDataLifeCycleOwner.png)
#134 Handling onBackPressed on Fragments
![alt text](/screenshots/BackPressedOnFragments.jpg)
![alt text](/screenshots/Mapper.png)
#132 Why use Modularization in Android App Dev?
![alt text](/screenshots/WhyUseModularization.jpg)
#131 Understanding Let Apply Run Also With
![alt text](/screenshots/LetApplyRunAlsoWith.jpg)
#130 Android Studio Apply Changes
![alt text](/screenshots/ApplyChanges.jpg)
![alt text](/screenshots/ArtVsDalvik.jpg)
#128 Static protection techniques that Dexguard provides
![alt text](/screenshots/Dexguard.jpg)
#127 Sample network call with using RxJava, ViewModel and LiveData
![alt text](/screenshots/NetworkCallWithRxJavaAndViewModel.png)
#126 ArrayList to String with Separator
![alt text](/screenshots/ArrayListToString.png)
#125 ViewModel Extension for Coroutines Safe Launch
![alt text](/screenshots/ViewModelExtSafeLaunch.png)
#124 Kotlin In and Is Usage
![alt text](/screenshots/KotlinInIs.jpg)
#123 App Component Factory
![alt text](/screenshots/AppComponentFactory.png)
#122 When With Mixed Objects
![alt text](/screenshots/WhenWithMixedObjects.jpg)
#121 Observing Network Requests with Stetho
![alt text](/screenshots/StethoTip.jpg)
#120 Interitance With Data Classes
![alt text](/screenshots/InteritanceWithDataClasses.jpg)
#119 Key Points of Android Q Features
![alt text](/screenshots/AndroidQFeatures.png)
![alt text](/screenshots/DowloadingFileOkhttpOkio.png)
#117 Kotlin As Class Clash (by Ragunath Jawahar #30DaysOfKotlin)
![alt text](/screenshots/KotlinAsClassClash.jpg)
![alt text](/screenshots/LaunchWhenStarted.png)
#115 Local First with Coroutines
![alt text](/screenshots/LocalFirstWithCoroutines.jpg)
![alt text](/screenshots/LogginWithLiveTemplate.png)
![alt text](/screenshots/KotlinRun.jpg)
#112 Kapt Incremental Compilation
![alt text](/screenshots/KaptIncrementalCompilation.jpg)
#111 Creating Hidden Files
![alt text](/screenshots/CreatingHiddenFiles.jpg)
)
#109 Setting RecyclerView LayoutManager from Xml
![alt text](/screenshots/RecyclerViewLayoutManagerWithXml.jpg)
#108 Preventing setValue or postValue from UI
![alt text](/screenshots/ObservingLiveData.png)
#107 Android Background Work Decision Graph
![alt text](/screenshots/backgroundwork.png)
#106 Fragment Argument Delegate
![alt text](/screenshots/FragmentArgumentDelegate.png)
![alt text](/screenshots/DbEntityMapper.png)
#104 Rx Debounce with Kotlin Coroutines
![alt text](/screenshots/RxDebounceWithKotlinCoroutines.jpg)
#103 Data Binding SeekBar Color
![alt text](/screenshots/DataBindingSeekBarColor.jpg)
#102 Useful ViewPager Extensions
![alt text](/screenshots/UsefulViewPagerExtensions.png)
![alt text](/screenshots/AndroidActionMode.png)
![alt text](/screenshots/RoomWithDagger.png)
![alt text](/screenshots/RecyclerviewSetup.png)
#98 Handling Generic ApiResponse with Coroutines
![alt text](/screenshots/HandlingGenericApiResponseWithCoroutines.png)
#97 Coroutines Async Manager
![alt text](/screenshots/CoroutinesAsyncManager.png)
![alt text](/screenshots/SingleLiveData.png)
#95 Parcelable vs Serializable
![alt text](/screenshots/ParcelableVsSerializable.png)
![alt text](/screenshots/KotlinDelegationBy.png)
![alt text](/screenshots/TakeIf.png)
#92 Handling Api Result with Sealed Class
![alt text](/screenshots/HandlingApiResultWithSealedClass.png)
![alt text](/screenshots/AndroidArchitecture.jpg)
#90 Reified Type find Fragment
![alt text](/screenshots/ReifiedTypeFindFragment.jpg)
![alt text](/screenshots/DalvikVsArt.png)
![alt text](/screenshots/Preconditions.png)
![alt text](/screenshots/Typealias.png)
![alt text](/screenshots/CheckingPermissions.png)
![alt text](/screenshots/AnyTryCatch.png)
#84 LiveData Generic Error Handling
![alt text](/screenshots/LiveDataGenericErrorHandling.png)
#83 Android Studio 3.3 Features
![alt text](/screenshots/AndroidStudioReleaseNewFeatures.jpg)
#82 Kotlin Delegate for Initializing
![alt text](/screenshots/KotlinDelegateForInitializing.png)
![alt text](/screenshots/TestingWithMockito.png)
![alt text](/screenshots/UtilityFunctions.png)
![alt text](/screenshots/PropertyOverride.png)
![alt text](/screenshots/CoroutineViewModel.png)
![alt text](/screenshots/RxJavaConcatUsage.png)
#76 Single RecyclerView Adapter
![alt text](/screenshots/SingleRecyclerViewAdapter.png)
![alt text](/screenshots/CommonGradleFile.png)
#74 Extension Function For Rx Subscriptions
![alt text](/screenshots/ExtensionFuncForRxSubscriptions.png)
![alt text](/screenshots/MapAssociate.png)
#72 Android Layout Params
![alt text](/screenshots/layoutparams.png)
#71 Android Feature Module
![alt text](/screenshots/FeatureModule.png)
#70 Reified Type Parameters
![alt text](/screenshots/ReifiedTypeParameters.png)
![alt text](/screenshots/PerformanceTips.jpg)
![alt text](/screenshots/PackageInfo.png)
#67 Kotlin Standart Functions Cheatsheet
![alt text](/screenshots/KotlinStandartFunctions.png)
![alt text](/screenshots/JvmOverloads.png)
#65 Device and Network Requests
![alt text](/screenshots/1kbDownloadWithDevice.png)
![alt text](/screenshots/LocalReturn.png)
![alt text](/screenshots/Looper.png)
#63 Sync version of Async method
![alt text](/screenshots/AsyncToSync.png)
#62 EditText Listener Impl
![alt text](/screenshots/EditTextListenerImpl.png)
![alt text](/screenshots/MviArchitecture.png)
![alt text](/screenshots/FlattenArray.png)
![alt text](/screenshots/ObservableDelegation.png)
![alt text](/screenshots/ViewLifeCycle.png)
![alt text](/screenshots/AndroidViewHierarchy.png)
![alt text](/screenshots/KotlinDsl.png)
#55 APK Signature Scheme v2
![alt text](/screenshots/ApkSignatureSchemeV2.png)
![alt text](/screenshots/MvpArchitecture.png)
#53 Gradle Configuration File
![alt text](/screenshots/GradleConfigurationFile.png)
#52 Coroutines vs RxKotlin
![alt text](/screenshots/CoroutinesVsRxKotlin.png)
![alt text](/screenshots/Coroutines.png)
#50 Fancy way to set OnClickListeners
![alt text](/screenshots/FancyWayToSetOnClickListeners.png)
#49 Kotlin Package-Level Functions
![alt text](/screenshots/PackageLevelFunctions.png)
#48 Android Coroutines Continuation
![alt text](/screenshots/AndroidCoroutinesContinuation.png)
![alt text](/screenshots/VcsShortcutsForMDD.png)
#46 Android Performance Tips:
![alt text](/screenshots/AndroidPerformanceTips.png)
![alt text](/screenshots/SetTargetFragment.png)
![alt text](/screenshots/RepeatFunction.png)
![alt text](/screenshots/TypeAliases.png)
![alt text](/screenshots/TailrecUsage.png)
![alt text](/screenshots/SmartCasts.png)
![alt text](/screenshots/InfixFunctions.png)
![alt text](/screenshots/LocalFunctions.png)
#38 Some Java Issues Addressed in Kotlin
![alt text](/screenshots/SomeJavaIssuesAddressedInKotlin.png)
![alt text](/screenshots/mapComprasion.png)
![usingParcelizeInKotlin](/screenshots/usingParcelizeInKotlin.png)
![alt text](/screenshots/HashCodeForNullableTypes.png)
![StopGradleProcesses](/screenshots/StopGradleProcesses.jpg)
![alt text](/screenshots/RandomExtFuncInKotlin1-3.png)
![alt text](/screenshots/WhenInKotlin1-3.png)
![alt text](/screenshots/ActivityRecognition.png)
![alt text](/screenshots/MemoryOptimization.png)
#29 What's New in Android Pie?
![alt text](/screenshots/WhatsNewInAndroidPie.jpg)
![alt text](/screenshots/RangeUsing.png)
![alt text](/screenshots/KotlinStyleSupportVersionCheck.jpg)
#26 How To Resolve App Launching Time Delay
![alt text](/screenshots/HowToResolveAppLaunchingTimeDelay.png)
#25 Tools To Improve Rendering
![alt text](/screenshots/ToolsToImproveRendering.png)
![alt text](/screenshots/LazyLoading.png)
![alt text](/screenshots/ExecuteBodyIfDebugMode.png)
#22 6 Mobile Security Tips
![alt text](/screenshots/6MobileSecurityTips.png)
#21 Zip With Next And Windowed
![alt text](/screenshots/zipWithNextAndWindowed.png)
#20 How To Store Data Locally
![alt text](/screenshots/HowToStoreDataLocally.png)
![alt text](/screenshots/DefiningMapWithKotlin.png)
![alt text](/screenshots/HowToGetPrimaryColorOfTheme.png)
![alt text](/screenshots/CheckNetworkConnection.png)
![alt text](/screenshots/StringTemplates.png)
![alt text](/screenshots/UsingApplySample.png)
![alt text](/screenshots/ElvisOperator.png)
![alt text](/screenshots/GitPull.png)
![alt text](/screenshots/GitFetch.png)
![alt text](/screenshots/CommitVsCommitAllowingStateLoss.png)
![alt text](/screenshots/KotlinWayToCreateSingletons.png)
#9 Kotlin Way To Add Or Remove View
![alt text](/screenshots/AppActions.png)
#8 Mastering Kotlin Standard Functions
![alt text](/screenshots/MasteringKotlinStandartFunctions.png)
#7 Avoid Memory Leaks With Inner Classes
![alt text](/screenshots/AvoidMemoryLeaksWithInnerClasses.png)
#6 Key Features To Increase Reach And Engagement
![alt text](/screenshots/KeyFeaturesToIncreaseReachAndEngagement.png)
#5 Kotlin Readable And Clean Code
![alt text](/screenshots/KotlinReadableAndCleanCode.png)
![alt text](/screenshots/KotlinWayToAddOrRemoveView.png)
![alt text](/screenshots/EfficientStringConcat.png)
![alt text](/screenshots/SafeConstantNullCheck.png)
![alt text](/screenshots/ImplicitNullCheck.png)