{"id":18027884,"url":"https://github.com/wajahatkarim3/today-i-learned","last_synced_at":"2025-08-15T20:45:13.268Z","repository":{"id":79266075,"uuid":"130175542","full_name":"wajahatkarim3/Today-I-Learned","owner":"wajahatkarim3","description":"📝 Today I Learned - A list of all things I learn on daily basis.","archived":false,"fork":false,"pushed_at":"2024-03-22T11:28:31.000Z","size":6908,"stargazers_count":355,"open_issues_count":0,"forks_count":59,"subscribers_count":36,"default_branch":"master","last_synced_at":"2025-03-30T03:07:02.615Z","etag":null,"topics":["android","kotlin","kotlin-android","learning","learning-by-doing","til","today-i-learned"],"latest_commit_sha":null,"homepage":"https://hackernoon.com/today-i-learned-ok-technically-yesterday-65c64e1dcb6","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/wajahatkarim3.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"custom":["https://www.paypal.me/WajahatKarim/5","https://www.paypal.me/WajahatKarim/20","https://www.paypal.me/WajahatKarim/50","https://www.paypal.me/WajahatKarim/100"]}},"created_at":"2018-04-19T07:26:21.000Z","updated_at":"2025-03-23T07:03:14.000Z","dependencies_parsed_at":"2024-10-30T08:33:44.708Z","dependency_job_id":null,"html_url":"https://github.com/wajahatkarim3/Today-I-Learned","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wajahatkarim3%2FToday-I-Learned","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wajahatkarim3%2FToday-I-Learned/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wajahatkarim3%2FToday-I-Learned/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wajahatkarim3%2FToday-I-Learned/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wajahatkarim3","download_url":"https://codeload.github.com/wajahatkarim3/Today-I-Learned/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247430963,"owners_count":20937875,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","kotlin","kotlin-android","learning","learning-by-doing","til","today-i-learned"],"created_at":"2024-10-30T08:13:36.266Z","updated_at":"2025-04-06T04:15:15.561Z","avatar_url":"https://github.com/wajahatkarim3.png","language":null,"funding_links":["https://www.paypal.me/WajahatKarim/5","https://www.paypal.me/WajahatKarim/20","https://www.paypal.me/WajahatKarim/50","https://www.paypal.me/WajahatKarim/100"],"categories":[],"sub_categories":[],"readme":"# Today I Learned\n\u003e Today I Learned\n\n[![forthebadge](https://forthebadge.com/images/badges/built-with-love.svg)](https://wajahatkarim.com)[![forthebadge](https://forthebadge.com/images/badges/makes-people-smile.svg)](https://wajahatkarim.com)\n\nA collection of concise write-ups on small things I learn day to day across a variety of languages and technologies. These are things that don't really warrant a full blog post.  \n\nRead more about why and how I started this at: https://hackernoon.com/today-i-learned-ok-technically-yesterday-65c64e1dcb6\n\n_55 TILs and counting..._\n\n**You can check my TILs list [here](https://wajahatkarim.com/tags/today-i-learned/)**\n\n---\n### Kotlin\n- [Safely accessing lateinit properties in Kotlin](kotlin/lateinit-safe-access.md)\n- [Constants in Kotlin](kotlin/constants-in-kotlin.md)\n- [Domain-Specific Language (DSL) using Kotlin](kotlin/dsl-kotlin.md)\n- [Sealed Classes in Kotlin](kotlin/sealed-classes.md)\n- [Inline Functions in Kotlin](kotlin/inline-funs.md) \n- [Variable Number of Arguments in Methods in Kotlin](kotlin/varargs.md)\n- [Launching Activities using Kotlin DSL](kotlin/activity-dsl.md)\n- [The with() operator in Kotlin](kotlin/with-kotlin.md) \n- [Asynchronous Calls in Koltin](kotlin/async-kotlin.md)\n- [Operator Overloading in Kotlin](kotlin/op-loading.md)\n\n### Gradle\n- [Gradle Dependencies using Auto Complete with Kotlin](kotlin/gradle-autocomplete.md)\n- [Gradle Dependencies using Google's Way](gradle/gradle-google-way.md)\n- [Defining Constants in Gradle](gradle/gradle-constants.md)\n- [Gradle doesn't run because it can't find tools.jar in JRE](gradle/gradle-jre.md)\n- [Publishing Your Android Kotlin/Java Library on jCenter](gradle/jcenter-pub.md)\n- [Where to get AAR file of any library?](gradle/aar-file.md)\n- [Adding Password Protected Maven Repository URL in Gradle](gradle/pass-gradle.md)\n- [Generate Navigation Direction Classes in Kotlin with Safe Args Plugin](gradle/dir-classes-kotlin.md)\n- [This version of Android Studio cannot open this project, please retry with Android Studio x.x or newer](gradle/android-studio-version-build-fail.md)\n- [Forcing any dependency to be looked in any specific repository](gradle/forcing-depenency-for-specific-repository.md) \n- [Displaying the Dependency Graph of whole project](gradle/dependency-graph-project.md) \n- [Debugging Deep Links of Your Android App](gradle/deep-link-debugging.md)\n\n### Android\n- [Difference between Build Type, Flavour, and Build Variant in Android](android/buildtype-vs-flavour-variant.md)\n- [Percentage Width/Height using Constraint Layout](android/percent-constraint-layout.md)\n- [Go to Code Line from Logcat Output Line](android/logcat-code.md)\n- [Closing All Actvities and Launching Any Specific](android/close-all-acts.md)\n- [Live Code Templates in Android Studio](android/live-templates.md)\n- [Adding Padding in Tabs in Android](android/tabs-padding.md)\n- [IntDef and StringDef in Android](android/int-str-def.md)\n- [Creating Separate Modules for Debug And Release](android/debug-release-modules.md)\n- [RecyclerView Scrolling Issue with NestedScrollView](android/recycler-scrolling.md) \n- [Add Logs without Code in Android](android/logs-without-code.md)\n- [Auto Sizing Text Views](android/autosize-textview.md)\n- [RecyclerView Item Margins and Padding](android/recyclerview-margins.md)\n- [Data Binding for \u003cinclude\u003e Layout](android/include-databinding.md) :clock330:\n- [Lots of Errors in Code but Still App Runs in Android Studio](android/errors-app-run.md)\n- [Combining Urdu String through Data Binding](android/combine-str-urdu.md)\n- [The requireActivity() and requireContext() example](android/req-act.md)\n- [Encrypt/Decrypt Strings in Android](android/encryptdec.md)\n- [Show/Hide Password in EditText](android/show-hide-pass.md)\n- [Converting JSONObject to HashMap\u003c\u003e](android/convert-json-map.md)\n- [Multiple Runtime Permissions in Android without any library](android/runtime-perms.md)\n- [Customizing the Scroll Duration of ViewPager](android/viewpager-scroll-duration.md) \n- [Nested scrollview automatically scrolls to bottom](android/nested-scroll-view-bottom.md)\n- [Gone Margins in Constraint Layout](android/gone-margins-constraint.md)\n- [Enable/Disable Swipe of ViewPager or Swipeable ViewPager](android/swipeable-viewpager.md)\n- [Android Oreo or later versions not loading URLs (cleartext traffic not permitted)](android/OreoUrlsLoading.md)\n- [How to Simulate Android Kill Process for Your Debug Apps?](android/android-kill-simulate.md) ![](https://img.shields.io/badge/%F0%9F%93%84%20-NEW-red.svg)\n- [ConcatAdapter and GridLayoutManager Span Size](android/concat-adapter-with-spansize.md)\n- [Android 12 Deep Links Not Working](android/android-12-deep-links-not-verified.md)\n- [Direct Debugging on Android TVs from Android Studio](android/debugging-on-tv.md)\n\n### Jetpack Compose\n- [Ripple and Clickable Conflict in Jetpack Compose](compose/ripple-clickable.md)\n- [Passing Parcelable and Other Data in Navigation Compose](compose/navigation-data-transfer.md) :new:\n\n### Firebase\n- [Firebase Notifications in Background \u0026 Foreground](firebase/notifs-background.md)\n\n### Unit and Instrumentation Testing\n- [Idling Registry for OkHttp](testing/idling-registry.md)\n\n---\n## Inspiration\nInspired by [jbranchaud/til](https://github.com/jbranchaud/til) and first\nlearned from\n[7 Habits I Wish Every (Junior) Programmer Should Have](https://medium.com/@shekhargulati/7-habits-i-wish-every-junior-programmer-should-have-d0d6d8a972c9#.s4lq904g9).\n\n## Contributing\n\nThe best way you can contribute is to support the idea of keeping track of things you learned. Just create a public repo and start writing and sharing notes. This is way better than keeping them to yourself.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwajahatkarim3%2Ftoday-i-learned","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwajahatkarim3%2Ftoday-i-learned","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwajahatkarim3%2Ftoday-i-learned/lists"}