41554 blogs · [ { "id": "01a08c59-52f2-72bb-b3fc-46e8a8f5c8e0", "title": "Snapshottable: A Compose Kotlin Compiler Plugin", "url": "https://tunjid.com/projects/snapshottable-a-compose-kotlin-compiler-plugin-6a09eaeb00f0b631fe3ebe31", "published_at": "2026-05-17T16:20:59+00:00" }, { "id": "01a08c59-52f2-72bb-b3fc-46e8a9723e63", "title": "Embracing Compose Snapshot State for UI Layer State Production", "url": "https://tunjid.com/articles/embracing-compose-snapshot-state-for-ui-layer-state-production-6a078c7d64469a118e42eecf", "published_at": "2026-05-15T21:13:33+00:00" }, { "id": "01a08c59-52f2-72bb-b3fc-46e8aa29141a", "title": "Shared element transitions for large screened devices", "url": "https://tunjid.com/articles/shared-element-transitions-for-large-screened-devices-6936d332566f1145a11726a8", "published_at": "2025-12-08T13:31:30+00:00" }, { "id": "01a08c59-52f2-72bb-b3fc-46e8aa7c9975", "title": "Heron: a graceful ATprotocol client", "url": "https://tunjid.com/projects/heron-a-graceful-atprotocol-client-6908053ec712ce6892dc8174", "published_at": "2025-11-03T01:28:30+00:00" }, { "id": "01a08c59-52f2-72bb-b3fc-46e8ab4477b5", "title": "The Android Show Fall 2025", "url": "https://tunjid.com/talks/the-android-show-fall-2025-690803d5c712ce6892dc7feb", "published_at": "2025-11-03T01:22:29+00:00" }, { "id": "01a08c59-52f2-72bb-b3fc-46e8ac35329d", "title": "3 unique predictive back animations you can create with the navigation events library", "url": "https://tunjid.com/articles/3-unique-predictive-back-animations-you-can-create-with-the-navigation-events-library-68af812b7c4b054f8bb3e0a3", "published_at": "2025-08-27T22:05:31+00:00" }, { "id": "01a08c59-52f2-72bb-b3fc-46e8ac68ee85", "title": "UI Layer Architecture for Adaptive Apps with Compose Multiplatform", "url": "https://tunjid.com/talks/ui-layer-architecture-for-adaptive-apps-with-compose-multiplatform-69080303c712ce6892dc7efb", "published_at": "2025-07-28T01:18:59+00:00" }, { "id": "01a08c59-52f2-72bb-b3fc-46e8acdf0334", "title": "UI layer architecture for persistent UI elements", "url": "https://tunjid.com/articles/ui-layer-architecture-for-persistent-ui-elements-68248e8ecc8e85f53ce1aa46", "published_at": "2025-05-14T12:37:34+00:00" }, { "id": "01a08c59-52f2-72bb-b3fc-46e8adc8517b", "title": "3 neat animations you can create with Modifier.animateBounds", "url": "https://tunjid.com/articles/3-neat-animations-you-can-create-with-modifieranimatebounds-67e474130e9ba862fe18b5e5", "published_at": "2025-03-26T21:39:31+00:00" }, { "id": "01a08c59-52f2-72bb-b3fc-46e8adcc7071", "title": "2024 App Development Year In Review: Android Jetpack Goes Multiplatform with Kotlin", "url": "https://tunjid.com/articles/2024-app-development-year-in-review-android-jetpack-goes-multiplatform-with-kotlin-676bc2633b91cd4c94821ea9", "published_at": "2024-12-25T08:29:23+00:00" }, { "id": "01a08c59-52f2-72bb-b3fc-46e8ae07f6bd", "title": "Composables: A KMP component library", "url": "https://tunjid.com/projects/composables-a-kmp-component-library-67412456a9046128b691371e", "published_at": "2024-11-23T00:39:50+00:00" }, { "id": "01a08c59-52f2-72bb-b3fc-46e8aed66b91", "title": "Declarative APIs For Declarative UIs: Shared Elements with Video, Photos, and and rich media with Jetpack Compose Components", "url": "https://tunjid.com/talks/declarative-apis-for-declarative-uis-shared-elements-with-video-photos-and-and-rich-media-with-jetpack-compose-components-6712942a313a35ca0264c44c", "published_at": "2024-10-18T17:00:26+00:00" }, { "id": "01a08c59-52f2-72bb-b3fc-46e8af30cc00", "title": "Declarative APIs for Declarative UIs: Pagination as state", "url": "https://tunjid.com/articles/declarative-apis-for-declarative-uis-pagination-as-state-662b8c517150a055b09e3284", "published_at": "2024-04-26T11:13:21+00:00" }, { "id": "01a08c59-52f2-72bb-b3fc-46e8b0103055", "title": "Animating ContentScale during image shared element transitions", "url": "https://tunjid.com/articles/animating-contentscale-during-image-shared-element-transitions-65fba03537c67f8df0161c31", "published_at": "2024-03-21T02:49:25+00:00" }, { "id": "01a08c59-52f2-72bb-b3fc-46e8b0a5f746", "title": "Drag and Drop In Compose at the Android Show", "url": "https://tunjid.com/talks/drag-and-drop-in-compose-at-the-android-show-653a8f7024ab1f9ceaeeead8", "published_at": "2023-10-26T16:10:24+00:00" }, { "id": "01a08c59-52f2-72bb-b3fc-46e8b0fe68f6", "title": "Drag and drop in Jetpack Compose", "url": "https://tunjid.com/projects/drag-and-drop-in-jetpack-compose-651dae3a3871c680a5561dc3", "published_at": "2023-10-04T18:26:02+00:00" }, { "id": "01a08c59-52f2-72bb-b3fc-46e8b1b8ce3e", "title": "Video streaming algorithms with Kotlin: H.264 NAL unit parsing", "url": "https://tunjid.com/articles/video-streaming-algorithms-with-kotlin-h264-nal-unit-parsing-64b8040829d921c57159857c", "published_at": "2023-07-19T15:40:56+00:00" }, { "id": "01a08c59-52f2-72bb-b3fc-46e8b1fc06b5", "title": "UDF with Functional Reactive Programming: A case study", "url": "https://tunjid.com/articles/udf-with-functional-reactive-programming-a-case-study-64ac4dae2b279ad9693daabc", "published_at": "2023-07-10T18:27:58+00:00" }, { "id": "01a08c59-52f2-72bb-b3fc-46e8b202e713", "title": "Interactive tutorial: State production with unidirectional data flow and Kotlin Flows", "url": "https://tunjid.com/articles/interactive-tutorial-state-production-with-unidirectional-data-flow-and-kotlin-flows-63e2c67e3032c9c43c58511d", "published_at": "2023-02-07T21:45:34+00:00" }, { "id": "01a08c59-52f2-72bb-b3fc-46e8b2ca3d90", "title": "Navigation as state: Implementing animated navigation transitions for large screens with moveableContentOf in Jetpack Compose", "url": "https://tunjid.com/articles/navigation-as-state-implementing-animated-navigation-transitions-for-large-screens-with-moveablecontentof-in-jetpack-compose-63ae8f1b0936b5c68974fb54", "published_at": "2022-12-30T07:11:23+00:00" }, { "id": "01a08c59-52f2-72bb-b3fc-46e8b3a47707", "title": "Playing with derivedstateof and sticky headers with LazyVerticalGrid", "url": "https://tunjid.com/articles/playing-with-derivedstateof-and-sticky-headers-with-lazyverticalgrid-63886c719ca3267e0e131155", "published_at": "2022-12-01T08:57:21+00:00" }, { "id": "01a08c59-52f2-72bb-b3fc-46e8b42701fc", "title": "Android Sample Links on developer.android.com", "url": "https://tunjid.com/projects/android-sample-links-on-developerandroidcom-64b5f3d428810288aa438f48", "published_at": "2022-11-18T02:07:16+00:00" }, { "id": "01a08c59-52f2-72bb-b3fc-46e8b43248ae", "title": "Offline-first apps at ADS 2022", "url": "https://tunjid.com/talks/offline-first-apps-at-ads-2022-636a45c732330fa0df1ccca5", "published_at": "2022-11-08T12:04:23+00:00" }, { "id": "01a08c59-52f2-72bb-b3fc-46e8b52b2231", "title": "Jetpack Compose MAD skills Q/A", "url": "https://tunjid.com/talks/jetpack-compose-mad-skills-q-a-637d471ff8feb184b700d26f", "published_at": "2022-10-13T22:03:11+00:00" }, { "id": "01a08c59-52f2-72bb-b3fc-46e8b601d764", "title": "Offline-first apps at DroidCon NYC 2022", "url": "https://tunjid.com/talks/offline-first-apps-at-droidcon-nyc-2022-631c96247f78e6df1c41eb98", "published_at": "2022-09-01T13:50:28+00:00" }, { "id": "01a08c59-52f2-72bb-b3fc-46e8b6bc45e2", "title": "Offline-first apps at ChicagoRoboto 2022", "url": "https://tunjid.com/talks/offline-first-apps-at-chicagoroboto-2022-630dedd4ef98e98609837135", "published_at": "2022-08-01T11:00:36+00:00" }, { "id": "01a08c59-52f2-72bb-b3fc-46e8b7bac694", "title": "Unidirectional data flow with Kotlin Flows Playground", "url": "https://tunjid.com/projects/unidirectional-data-flow-with-kotlin-flows-playground-62cb40fac2174b95fe7cc283", "published_at": "2022-07-10T21:13:30+00:00" }, { "id": "01a08c59-52f2-72bb-b3fc-46e8b7dc4626", "title": "Android Architecture Q/A", "url": "https://tunjid.com/talks/android-architecture-q-a-630def3141578a22ad903b38", "published_at": "2022-04-28T11:06:25+00:00" }, { "id": "01a08c59-52f2-72bb-b3fc-46e8b8220c75", "title": "Now In Android", "url": "https://tunjid.com/projects/now-in-android-631cdb6aae19731906f9bce5", "published_at": "2022-04-10T18:46:02+00:00" }, { "id": "01a08c59-52f2-72bb-b3fc-46e8b847b73d", "title": "The UI layer on Android - MAD skills", "url": "https://tunjid.com/talks/the-ui-layer-on-android-mad-skills-630dee8d41578a22ad903a42", "published_at": "2022-03-22T11:03:41+00:00" }, { "id": "01a08c59-52f2-72bb-b3fc-46e8b939091c", "title": "Unidirectional Data Flow as a Functional declaration", "url": "https://tunjid.com/articles/unidirectional-data-flow-as-a-functional-declaration-6230b74f5d785a7ebc8c2a43", "published_at": "2022-03-15T15:57:03+00:00" }, { "id": "01a08c59-52f2-72bb-b3fc-46e8b9cb0015", "title": "Me", "url": "https://tunjid.com/projects/me-621b3aa73f947d1a925b74cd", "published_at": "2022-02-27T08:47:35+00:00" }, { "id": "01a08c59-52f2-72bb-b3fc-46e8baa6ad19", "title": "Tiler", "url": "https://tunjid.com/projects/tiler-621b36bb68af247022927dd3", "published_at": "2022-02-27T08:30:51+00:00" }, { "id": "01a08c59-52f2-72bb-b3fc-46e8bb16714f", "title": "Mutator", "url": "https://tunjid.com/projects/mutator-6216e90c68af2470228c6633", "published_at": "2022-02-24T02:10:20+00:00" }, { "id": "01a08c59-52f2-72bb-b3fc-46e8bbc4e213", "title": "Paging 3: Live Q&A - MAD Skills", "url": "https://tunjid.com/talks/paging-3-live-q-and-a-mad-skills-618cf1ec0000000000000000", "published_at": "2021-11-11T10:35:24+00:00" }, { "id": "01a08c59-52f2-72bb-b3fc-46e8bc9fa57e", "title": "Paging: Getting fancy with transformations, separators, headers, footers and search", "url": "https://tunjid.com/talks/paging-getting-fancy-with-transformations-separators-headers-footers-and-search-617fc2ec0000000000000000", "published_at": "2021-11-01T10:35:24+00:00" }, { "id": "01a08c59-52f2-72bb-b3fc-46e8bcd86ab1", "title": "Paging: Displaying data and its loading state", "url": "https://tunjid.com/talks/paging-displaying-data-and-its-loading-state-616d4dec0000000000000000", "published_at": "2021-10-18T10:35:24+00:00" }, { "id": "01a08c59-52f2-72bb-b3fc-46e8bdad1c61", "title": "Paging: Fetching data from the network", "url": "https://tunjid.com/talks/paging-fetching-data-from-the-network-6164136c0000000000000000", "published_at": "2021-10-11T10:35:24+00:00" }, { "id": "01a08c59-52f2-72bb-b3fc-46e8be0c5d34", "title": "Paging 3 MAD skills intro", "url": "https://tunjid.com/talks/paging-3-mad-skills-intro-61519e6c0000000000000000", "published_at": "2021-09-27T10:35:24+00:00" }, { "id": "01a08c59-52f2-72bb-b3fc-46e8bee47f4d", "title": "Paging 3 MAD skills teaser", "url": "https://tunjid.com/talks/paging-3-mad-skills-teaser-61519d7c0000000000000000", "published_at": "2021-09-27T10:31:24+00:00" }, { "id": "01a08c59-52f2-72bb-b3fc-46e8bf3707c3", "title": "Tunji Web Deux", "url": "https://tunjid.com/projects/tunji-web-deux-6082f0f72e0327911d17ab32", "published_at": "2021-05-21T04:00:00+00:00" }, { "id": "01a08c59-52f2-72bb-b3fc-46e8bf9ddd13", "title": "Tweetus Deletus", "url": "https://tunjid.com/projects/tweetus-deletus-6082f0f72e0327911d17ab31", "published_at": "2021-04-05T04:00:00+00:00" }, { "id": "01a08c59-52f2-72bb-b3fc-46e8c0871949", "title": "Tweetus Deletus, tweets and json sequences", "url": "https://tunjid.com/articles/tweetus-deletus-tweets-and-json-sequences-60904aa96ad9fc3f3cd03d38", "published_at": "2021-03-07T03:58:10+00:00" }, { "id": "01a08c59-52f2-72bb-b3fc-46e8c183e995", "title": "Android Views as a Function of State with ViewBinding Case Study; RecyclerViews, A/B testing and…", "url": "https://tunjid.com/articles/android-views-as-a-function-of-state-with-viewbinding-case-study-recyclerviews-a-b-testing-and-60904aa96ad9fc3f3cd03d35", "published_at": "2021-02-14T18:08:28+00:00" }, { "id": "01a08c59-52f2-72bb-b3fc-46e8c191368e", "title": "Kotlin Delegation by Inception", "url": "https://tunjid.com/articles/kotlin-delegation-by-inception-60904aa96ad9fc3f3cd03d3a", "published_at": "2020-12-12T15:36:31+00:00" }, { "id": "01a08c59-52f2-72bb-b3fc-46e8c1e67015", "title": "Android Views as a Function of State with ViewBinding Case Study; The Live Game Stream", "url": "https://tunjid.com/articles/android-views-as-a-function-of-state-with-viewbinding-case-study-the-live-game-stream-60904aa96ad9fc3f3cd03d37", "published_at": "2020-11-14T13:59:27+00:00" }, { "id": "01a08c59-52f2-72bb-b3fc-46e8c227a8ef", "title": "Building the right Android View Abstraction", "url": "https://tunjid.com/articles/building-the-right-android-view-abstraction-60904aa96ad9fc3f3cd03d1f", "published_at": "2020-10-18T15:04:53+00:00" }, { "id": "01a08c59-52f2-72bb-b3fc-46e8c2abef84", "title": "Live Streaming on Android @ Droidcon EMEA 2020", "url": "https://tunjid.com/talks/live-streaming-on-android-droidcon-emea-2020-608939f551fec9b91be6b567", "published_at": "2020-10-08T10:31:24+00:00" }, { "id": "01a08c59-52f2-72bb-b3fc-46e8c2f08239", "title": "ChicagoRoboto 2020", "url": "https://tunjid.com/talks/chicagoroboto-2020-6086fbe13e66f22ba94d46a2", "published_at": "2020-08-28T16:32:34+00:00" }, { "id": "01a08c59-52f2-72bb-b3fc-46e8c38511ab", "title": "Declarative lists on Android With RecyclerView + ViewBinding", "url": "https://tunjid.com/articles/declarative-lists-on-android-with-recyclerview-viewbinding-60904aa96ad9fc3f3cd03d20", "published_at": "2020-03-01T15:29:12+00:00" }, { "id": "01a08c59-52f2-72bb-b3fc-46e8c4667203", "title": "Easy text styling and concatenation in Android", "url": "https://tunjid.com/articles/easy-text-styling-and-concatenation-in-android-60904aa96ad9fc3f3cd03d21", "published_at": "2020-01-11T17:10:48+00:00" }, { "id": "01a08c59-52f2-72bb-b3fc-46e8c475c6e0", "title": "Creating an Expandable Floating Action Button in Android — Part 2", "url": "https://tunjid.com/articles/creating-an-expandable-floating-action-button-in-android-part-2-60904aa96ad9fc3f3cd03d22", "published_at": "2019-12-03T14:31:58+00:00" }, { "id": "01a08c59-52f2-72bb-b3fc-46e8c5724a2b", "title": "Composition over Inheritance; Adding a Material Speed Dial to a Floating Action Button", "url": "https://tunjid.com/articles/composition-over-inheritance-adding-a-material-speed-dial-to-a-floating-action-button-60904aa96ad9fc3f3cd03d23", "published_at": "2019-11-16T16:37:28+00:00" }, { "id": "01a08c59-52f2-72bb-b3fc-46e8c59e079e", "title": "Build your own Android based home automation system with Kotlin", "url": "https://tunjid.com/talks/build-your-own-android-based-home-automation-system-with-kotlin-608ea26d2095510d474206c2", "published_at": "2019-11-09T12:55:09+00:00" }, { "id": "01a08c59-52f2-72bb-b3fc-46e8c6434332", "title": "Common Android Navigation Paradigms via the FragmentManager API", "url": "https://tunjid.com/talks/common-android-navigation-paradigms-via-the-fragmentmanager-api-608eddc12f6f9608efce2034", "published_at": "2019-10-21T16:57:27+00:00" }, { "id": "01a08c59-52f2-72bb-b3fc-46e8c72ba174", "title": "Simplifying the FragmentManager API; Multiple Fragment backstacks on Android", "url": "https://tunjid.com/articles/simplifying-the-fragmentmanager-api-multiple-fragment-backstacks-on-android-60904aa96ad9fc3f3cd03d24", "published_at": "2019-10-08T16:29:55+00:00" }, { "id": "01a08c59-52f2-72bb-b3fc-46e8c76cc1e3", "title": "Driving Motional Intelligence for Global Persistent UI on Android with a Simple State Store", "url": "https://tunjid.com/articles/driving-motional-intelligence-for-global-persistent-ui-on-android-with-a-simple-state-store-60904aa96ad9fc3f3cd03d25", "published_at": "2019-08-05T13:40:38+00:00" }, { "id": "01a08c59-52f2-72bb-b3fc-46e8c828585a", "title": "Home Automation With Android Things & Kotlin", "url": "https://tunjid.com/articles/home-automation-with-android-things-and-kotlin-60904aa96ad9fc3f3cd03d26", "published_at": "2019-07-08T20:49:37+00:00" }, { "id": "01a08c59-52f2-72bb-b3fc-46e8c846438e", "title": "90 days of Kotlin", "url": "https://tunjid.com/articles/90-days-of-kotlin-60904aa96ad9fc3f3cd03d27", "published_at": "2019-07-08T14:59:01+00:00" }, { "id": "01a08c59-52f2-72bb-b3fc-46e8c8a349c7", "title": "Socket.io as a chat and general event platform", "url": "https://tunjid.com/talks/socketio-as-a-chat-and-general-event-platform-6095455bf5343a0d4b63cdfd", "published_at": "2019-06-27T13:45:27+00:00" }, { "id": "01a08c59-52f2-72bb-b3fc-46e8c94e77d1", "title": "The Model as the Form; Single Source of Truth bindings for Editable Text Fields in Android", "url": "https://tunjid.com/articles/the-model-as-the-form-single-source-of-truth-bindings-for-editable-text-fields-in-android-60904aa96ad9fc3f3cd03d28", "published_at": "2019-05-23T22:18:23+00:00" }, { "id": "01a08c59-52f2-72bb-b3fc-46e8ca1f0702", "title": "Teammate Android; From #Startup to Open Source Software", "url": "https://tunjid.com/articles/teammate-android-from-startup-to-open-source-software-60904aa96ad9fc3f3cd03d29", "published_at": "2019-05-22T01:47:05+00:00" }, { "id": "01a08c59-52f2-72bb-b3fc-46e8cad401c8", "title": "Open sourcing DigiLux", "url": "https://tunjid.com/articles/open-sourcing-digilux-60904aa96ad9fc3f3cd03d2a", "published_at": "2019-05-13T13:22:35+00:00" }, { "id": "01a08c59-52f2-72bb-b3fc-46e8cb2ab338", "title": "The Current State of Idiomatic Android Development", "url": "https://tunjid.com/talks/the-current-state-of-idiomatic-android-development-60954b471d07160d4fcc0c61", "published_at": "2019-05-02T14:13:49+00:00" }, { "id": "01a08c59-52f2-72bb-b3fc-46e8cb3c43c4", "title": "Simple, Functional Async RecyclerView Diffing", "url": "https://tunjid.com/articles/simple-functional-async-recyclerview-diffing-60904aa96ad9fc3f3cd03d2b", "published_at": "2019-02-26T20:33:35+00:00" }, { "id": "01a08c59-52f2-72bb-b3fc-46e8cb917f7a", "title": "Composing attributes of a Dynamic RecyclerView with Functions", "url": "https://tunjid.com/articles/composing-attributes-of-a-dynamic-recyclerview-with-functions-60904aa96ad9fc3f3cd03d2c", "published_at": "2019-02-26T15:43:01+00:00" }, { "id": "01a08c59-52f2-72bb-b3fc-46e8cbb66de9", "title": "Concatenating arbitrary Text Spans in Android", "url": "https://tunjid.com/articles/concatenating-arbitrary-text-spans-in-android-60904aa96ad9fc3f3cd03d2d", "published_at": "2018-12-12T17:11:49+00:00" }, { "id": "01a08c59-52f2-72bb-b3fc-46e8cca4a453", "title": "Moving on to Medium", "url": "https://tunjid.com/articles/moving-on-to-medium-6085d297a46b907a724e820a", "published_at": "2018-11-26T12:48:08+00:00" }, { "id": "01a08c59-52f2-72bb-b3fc-46e8cce958ca", "title": "Flattening Android’s TextInputLayout", "url": "https://tunjid.com/articles/flattening-androids-textinputlayout-60904aa96ad9fc3f3cd03d2e", "published_at": "2018-11-25T23:31:38+00:00" }, { "id": "01a08c59-52f2-72bb-b3fc-46e8cd3604fc", "title": "Reverse Engineering Android Pie’s Logarithmic Brightness Curve", "url": "https://tunjid.com/articles/reverse-engineering-android-pies-logarithmic-brightness-curve-60904aa96ad9fc3f3cd03d2f", "published_at": "2018-11-21T14:21:20+00:00" }, { "id": "01a08c59-52f2-72bb-b3fc-46e8cdf35035", "title": "Threading out of a performance labyrinth with Systrace", "url": "https://tunjid.com/articles/threading-out-of-a-performance-labyrinth-with-systrace-60904aa96ad9fc3f3cd03d30", "published_at": "2018-11-14T14:02:12+00:00" }, { "id": "01a08c59-52f2-72bb-b3fc-46e8ce68086b", "title": "I Want it All, Owning The System Window and Consuming Insets", "url": "https://tunjid.com/articles/i-want-it-all-owning-the-system-window-and-consuming-insets-60904aa96ad9fc3f3cd03d31", "published_at": "2018-10-29T23:43:38+00:00" }, { "id": "01a08c59-52f2-72bb-b3fc-46e8cea67ff7", "title": "Sliding along; composing a dynamic reusable ViewPager Indicator Animator", "url": "https://tunjid.com/articles/sliding-along-composing-a-dynamic-reusable-viewpager-indicator-animator-60904aa96ad9fc3f3cd03d32", "published_at": "2018-10-23T16:39:00+00:00" }, { "id": "01a08c59-52f2-72bb-b3fc-46e8cf0f8336", "title": "Creating an Expandable Floating Action Button in Android", "url": "https://tunjid.com/articles/creating-an-expandable-floating-action-button-in-android-60904aa96ad9fc3f3cd03d33", "published_at": "2018-10-16T18:17:51+00:00" }, { "id": "01a08c59-52f2-72bb-b3fc-46e8cfe568ea", "title": "I’m not chuffed about Kotlin coroutines.", "url": "https://tunjid.com/articles/im-not-chuffed-about-kotlin-coroutines-60904aa96ad9fc3f3cd03d34", "published_at": "2018-04-03T15:06:04+00:00" }, { "id": "01a08c59-52f3-73a4-9a50-f6678ea2a780", "title": "Teammate App", "url": "https://tunjid.com/projects/teammate-app-6082f0f72e0327911d17ab30", "published_at": "2017-11-29T05:00:00+00:00" }, { "id": "01a08c59-52f3-73a4-9a50-f6678f86131d", "title": "Digilux", "url": "https://tunjid.com/projects/digilux-6082f0f72e0327911d17ab2f", "published_at": "2017-10-29T04:00:00+00:00" }, { "id": "01a08c59-52f3-73a4-9a50-f6678fdfebfb", "title": "Android Extensions", "url": "https://tunjid.com/projects/android-extensions-6082f0f72e0327911d17ab2e", "published_at": "2017-05-28T04:00:00+00:00" }, { "id": "01a08c59-52f3-73a4-9a50-f66790647eb0", "title": "Android Home Hub", "url": "https://tunjid.com/projects/android-home-hub-6082f0f72e0327911d17ab2d", "published_at": "2017-05-12T04:00:00+00:00" }, { "id": "01a08c59-52f3-73a4-9a50-f66790fb7296", "title": "A Bluetooth Smart way to Toggle RF Switches", "url": "https://tunjid.com/articles/a-bluetooth-smart-way-to-toggle-rf-switches-6085d297a46b907a724e8209", "published_at": "2017-03-14T07:31:48+00:00" }, { "id": "01a08c59-52f3-73a4-9a50-f6679157f93f", "title": "Spannable Strings in Android", "url": "https://tunjid.com/articles/spannable-strings-in-android-6085d297a46b907a724e8208", "published_at": "2016-07-08T12:52:56+00:00" }, { "id": "01a08c59-52f3-73a4-9a50-f66792460b5b", "title": "Gradle Plugins (and my first contribution to open source!)", "url": "https://tunjid.com/articles/gradle-plugins-and-my-first-contribution-to-open-source-6085d297a46b907a724e8207", "published_at": "2016-03-31T18:28:26+00:00" }, { "id": "01a08c59-52f3-73a4-9a50-f66792f8bf60", "title": "Tunji Web", "url": "https://tunjid.com/projects/tunji-web-6082f0f72e0327911d17ab2c", "published_at": "2016-02-15T05:00:00+00:00" }, { "id": "01a08c59-52f3-73a4-9a50-f66793e0b036", "title": "Fun Fact About iframes", "url": "https://tunjid.com/articles/fun-fact-about-iframes-6085d297a46b907a724e8206", "published_at": "2016-02-02T00:43:05+00:00" }, { "id": "01a08c59-52f3-73a4-9a50-f667947c4c14", "title": "Converting a WordPress XML export file to JSON for MongoDB", "url": "https://tunjid.com/articles/converting-a-wordpress-xml-export-file-to-json-for-mongodb-6085d297a46b907a724e8205", "published_at": "2016-02-01T02:48:22+00:00" }, { "id": "01a08c59-52f3-73a4-9a50-f6679539b0f6", "title": "Moving From WordPress", "url": "https://tunjid.com/articles/moving-from-wordpress-6085d297a46b907a724e8204", "published_at": "2016-01-30T02:24:16+00:00" }, { "id": "01a08c59-52f3-73a4-9a50-f6679594b45b", "title": "Advanced RecyclerView Demo", "url": "https://tunjid.com/articles/advanced-recyclerview-demo-6085d72592af637c3a52f454", "published_at": "2015-04-26T00:00:00+00:00" }, { "id": "01a08c59-52f3-73a4-9a50-f66795bd31a0", "title": "Implementing a \"Swipe\" and \"Finger Up\" listener for Android's SwipeRefreshLayout", "url": "https://tunjid.com/articles/implementing-a-swipe-and-finger-up-listener-for-androids-swiperefreshlayout-6085d72592af637c3a52f453", "published_at": "2015-04-09T00:00:00+00:00" }, { "id": "01a08c59-52f3-73a4-9a50-f6679600293d", "title": "Controlling a USBTMC device with a Python Script", "url": "https://tunjid.com/articles/controlling-a-usbtmc-device-with-a-python-script-6085d72592af637c3a52f452", "published_at": "2015-02-23T00:00:00+00:00" }, { "id": "01a08c59-52f3-73a4-9a50-f66796825ece", "title": "Tinyduino BLE and Accelerometer demo", "url": "https://tunjid.com/articles/tinyduino-ble-and-accelerometer-demo-6085d72592af637c3a52f451", "published_at": "2015-02-11T00:00:00+00:00" }, { "id": "01a08c59-52f3-73a4-9a50-f66796d1af8d", "title": "AD5933 Arduino Serial Monitor Interface", "url": "https://tunjid.com/articles/ad5933-arduino-serial-monitor-interface-6085d72592af637c3a52f450", "published_at": "2015-01-28T00:00:00+00:00" }, { "id": "01a08c59-52f3-73a4-9a50-f66796e255dd", "title": "Extracting Bio-impedance Parameters from Measured Data", "url": "https://tunjid.com/articles/extracting-bio-impedance-parameters-from-measured-data-6085d72592af637c3a52f44f", "published_at": "2015-01-16T00:00:00+00:00" }, { "id": "01a08c59-52f3-73a4-9a50-f66797d3559c", "title": "Creating custom timer interrupts for arduino", "url": "https://tunjid.com/articles/creating-custom-timer-interrupts-for-arduino-6085d72592af637c3a52f44e", "published_at": "2014-10-23T00:00:00+00:00" }, { "id": "01a08c59-52f3-73a4-9a50-f66797ecbe1a", "title": "Hypothesis confirmed: Software serial libraries are bad for complex sketches", "url": "https://tunjid.com/articles/hypothesis-confirmed-software-serial-libraries-are-bad-for-complex-sketches-6085d72592af637c3a52f44d", "published_at": "2014-10-13T00:00:00+00:00" }, { "id": "01a08c59-52f3-73a4-9a50-f66798502a5a", "title": "Downsides of software serial libraries", "url": "https://tunjid.com/articles/downsides-of-software-serial-libraries-6085d72592af637c3a52f44c", "published_at": "2014-10-12T00:00:00+00:00" }, { "id": "01a08c59-52f3-73a4-9a50-f66798ec0e7f", "title": "Updating Gatt Structure on Android App after Change on Slave / Peripheral", "url": "https://tunjid.com/articles/updating-gatt-structure-on-android-app-after-change-on-slave-peripheral-6085d72592af637c3a52f44b", "published_at": "2014-10-04T00:00:00+00:00" }, { "id": "01a08c59-52f3-73a4-9a50-f66799dd0799", "title": "BLE Project Source Code", "url": "https://tunjid.com/articles/ble-project-source-code-6085d72592af637c3a52f44a", "published_at": "2014-10-02T00:00:00+00:00" }, { "id": "01a08c59-52f3-73a4-9a50-f6679adb1e4c", "title": "Progressive Cavity Pumps", "url": "https://tunjid.com/articles/progressive-cavity-pumps-6085d72592af637c3a52f449", "published_at": "2014-09-28T00:00:00+00:00" }, { "id": "01a08c59-52f3-73a4-9a50-f6679aeb00b5", "title": "Bioimpedance and The Future", "url": "https://tunjid.com/articles/bioimpedance-and-the-future-6085d72592af637c3a52f448", "published_at": "2014-09-23T00:00:00+00:00" }, { "id": "01a08c59-52f3-73a4-9a50-f6679b08cc9f", "title": "A little pressure, a little dye, a little caulk, and lots of time.", "url": "https://tunjid.com/articles/a-little-pressure-a-little-dye-a-little-caulk-and-lots-of-time-6085d72592af637c3a52f447", "published_at": "2014-09-09T00:00:00+00:00" } ] posts Claim your blog
Back to tunjid.com
Blog · corpus.blog/blogs/tunjid.com/posts

tunjid.com

tunjid.com

2026

2025

2024

2023

2022

27 Feb 2022

2021

2020

2019

2018

2017

2016

2015

2014