<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Mbuodile Obiosio</title>
    <description>The latest articles on DEV Community by Mbuodile Obiosio (@mbobiosio).</description>
    <link>https://dev.to/mbobiosio</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F548188%2F4fb161bf-2e6a-424a-89ec-68b59e666f9e.jpg</url>
      <title>DEV Community: Mbuodile Obiosio</title>
      <link>https://dev.to/mbobiosio</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/mbobiosio"/>
    <language>en</language>
    <item>
      <title>Android App First Launch</title>
      <dc:creator>Mbuodile Obiosio</dc:creator>
      <pubDate>Thu, 12 May 2022 18:48:16 +0000</pubDate>
      <link>https://dev.to/mbobiosio/android-app-first-launch-2jhk</link>
      <guid>https://dev.to/mbobiosio/android-app-first-launch-2jhk</guid>
      <description>&lt;p&gt;Did a simple illustration of working with DataStore, Hilt and Coroutines to implement checking if app is launched first time.&lt;/p&gt;

&lt;p&gt;Hopefully it helps someone&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/mbobiosio/AppFirstLaunch-Hilt-DataStore" rel="noopener noreferrer"&gt;GitHub Repository&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Please leave a star if it helps&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Dynamic Feature modules template</title>
      <dc:creator>Mbuodile Obiosio</dc:creator>
      <pubDate>Mon, 09 May 2022 07:51:02 +0000</pubDate>
      <link>https://dev.to/mbobiosio/dynamic-feature-modules-template-2hoh</link>
      <guid>https://dev.to/mbobiosio/dynamic-feature-modules-template-2hoh</guid>
      <description>&lt;p&gt;An Android template project following a multi module approach with clean architecture. It has been built following Clean Architecture Principle, Dynamic Feature modules, Repository Pattern, MVVM Architecture in the presentation layer as well as jetpack components.&lt;/p&gt;

&lt;p&gt;I created this repository to demonstrate best development practices by utilizing up to date tech-stack.&lt;/p&gt;

&lt;p&gt;Dynamic Feature Modules and Dynamic Delivery?&lt;br&gt;
Dynamic feature modules allow separation of certain features and resources from the base module of the app and include them in the app bundle. User can then download and install these modules later when they are required(on demand) even after the app has already been installed.&lt;/p&gt;

&lt;p&gt;Dynamic Delivery is Google Play's app serving model that uses Android App Bundles to generate and server optimized APKs for each user's device configuration so that users download only the feature and resources the need to run the app.&lt;/p&gt;

&lt;p&gt;Play Feature Delivery allow certain features of the app to be delivered conditionally (depending on user's language, location/country, paying or free user etc.) or downloaded on demand.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flfqvsjx007mbmakjb51a.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flfqvsjx007mbmakjb51a.png" alt="Image description" width="800" height="1733"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/mbobiosio/ModularDynamicFeatureHilt" rel="noopener noreferrer"&gt;Github Repository&lt;/a&gt;&lt;/p&gt;

</description>
      <category>android</category>
      <category>kotlin</category>
      <category>mobile</category>
      <category>programming</category>
    </item>
    <item>
      <title>ModularAppTemplate</title>
      <dc:creator>Mbuodile Obiosio</dc:creator>
      <pubDate>Mon, 09 May 2022 07:32:07 +0000</pubDate>
      <link>https://dev.to/mbobiosio/modularapptemplate-l8m</link>
      <guid>https://dev.to/mbobiosio/modularapptemplate-l8m</guid>
      <description>&lt;p&gt;An Android template project following a multi module approach with clean architecture. It has been built following Clean Architecture Principle, Repository Pattern, MVVM Architecture in the presentation layer as well as jetpack components.&lt;/p&gt;

&lt;p&gt;I created this repository to demonstrate best development practices by utilizing up to date tech-stack.&lt;/p&gt;

&lt;p&gt;Details&lt;br&gt;
Operating System : Android&lt;br&gt;
Programming Language: Kotlin&lt;br&gt;
Architecture : MVVM&lt;br&gt;
Dependency Injection : Hilt&lt;br&gt;
Fragment Management : Navigation Component&lt;br&gt;
Design : Material Design 3&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flfqvsjx007mbmakjb51a.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flfqvsjx007mbmakjb51a.png" alt="Image description" width="800" height="1733"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/mbobiosio/ModularAppTemplate" rel="noopener noreferrer"&gt;Github Repository&lt;/a&gt;&lt;/p&gt;

</description>
      <category>android</category>
      <category>kotlin</category>
      <category>mobile</category>
      <category>programming</category>
    </item>
    <item>
      <title>MoviesBoard - TMDB API project</title>
      <dc:creator>Mbuodile Obiosio</dc:creator>
      <pubDate>Fri, 01 Jan 2021 14:45:41 +0000</pubDate>
      <link>https://dev.to/mbobiosio/moviesboard-tmdb-api-project-1i7h</link>
      <guid>https://dev.to/mbobiosio/moviesboard-tmdb-api-project-1i7h</guid>
      <description>&lt;p&gt;MoviesBoard app showcases Android best practices with Google's recommended architecture: MVVM + Repository + Offline support + Android Architecture Components + Paging 3 + LiveData + Moshi + Coroutines + Material Theme Components + Retrofit2.&lt;/p&gt;

&lt;p&gt;I would appreciate more contributions&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/mbobiosio/MoviesBoard" rel="noopener noreferrer"&gt;Github Repository&lt;/a&gt;&lt;/p&gt;

</description>
      <category>kotlin</category>
      <category>android</category>
      <category>opensource</category>
    </item>
    <item>
      <title>ConnectivityLifeData for API 30 &amp; lower APIs</title>
      <dc:creator>Mbuodile Obiosio</dc:creator>
      <pubDate>Sun, 27 Dec 2020 18:48:50 +0000</pubDate>
      <link>https://dev.to/mbobiosio/lifecyle-connectivity-for-api-30-lower-apis-1mm8</link>
      <guid>https://dev.to/mbobiosio/lifecyle-connectivity-for-api-30-lower-apis-1mm8</guid>
      <description>&lt;p&gt;I made this super lightweight library to enable Android Developers handle network changes across API 16 to 30.&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fassets.dev.to%2Fassets%2Fgithub-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/mbobiosio" rel="noopener noreferrer"&gt;
        mbobiosio
      &lt;/a&gt; / &lt;a href="https://github.com/mbobiosio/LiveDataConnection" rel="noopener noreferrer"&gt;
        LiveDataConnection
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      A super simple, super light-weight lifecycle aware solution written in Kotlin that helps you to capture network connectivity events with support for lower APIs
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;p&gt;&lt;a href="https://www.codacy.com/gh/mbobiosio/LifecycleConnectivity/dashboard?utm_source=github.com&amp;amp;utm_medium=referral&amp;amp;utm_content=mbobiosio/LifecycleConnectivity&amp;amp;utm_campaign=Badge_Grade" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/a697b6045f749a8737b44be5afea8c3bc87e18f145905e1282d9d50e5be78666/68747470733a2f2f6170702e636f646163792e636f6d2f70726f6a6563742f62616467652f47726164652f3535643665666465613364333461306561313662343462306331653237313734" alt="Codacy Badge"&gt;&lt;/a&gt;
&lt;a href="https://sonarcloud.io/dashboard?id=mbobiosio_LifecycleConnectivity" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/075d5714ca99f98251fc9dfa7842405505c6ff9dadc252080071816e8091e3b9/68747470733a2f2f736f6e6172636c6f75642e696f2f6170692f70726f6a6563745f6261646765732f6d6561737572653f70726f6a6563743d6d626f62696f73696f5f4c6966656379636c65436f6e6e6563746976697479266d65747269633d7371616c655f726174696e67" alt="Maintainability Rating"&gt;&lt;/a&gt;
&lt;a href="https://developer.android.com/reference" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/373ed905e8531fe965db1058760c6294d4b042ba3ae6404ef620b78dcd8d9226/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f706c6174666f726d2d616e64726f69642d627269676874677265656e" alt="Platform"&gt;&lt;/a&gt;
&lt;a href="https://developer.android.com/studio/releases/platforms#4.1" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/8e1c3d8b89cc933be83f2c1dd37ebd5b3934b667b40a221b006049823889e84a/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4150492d31362532422d627269676874677265656e2e7376673f7374796c653d666c6174" alt="API"&gt;&lt;/a&gt;
&lt;a href="https://jitpack.io/#mbobiosio/ConnectivityLiveData" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/f1388a70d9a0b3c15504942a32cc0439529e2cb3d9fbbba8d29b1935d8fb0ec0/68747470733a2f2f6a69747061636b2e696f2f762f6d626f62696f73696f2f436f6e6e65637469766974794c697665446174612e737667" alt=""&gt;&lt;/a&gt;
&lt;a href="https://sonarcloud.io/dashboard?id=mbobiosio_LifecycleConnectivity" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/e5a8398b36512a986b44b4594cc2c52e73541efd3618a78f2573699af2acb6b8/68747470733a2f2f736f6e6172636c6f75642e696f2f6170692f70726f6a6563745f6261646765732f6d6561737572653f70726f6a6563743d6d626f62696f73696f5f4c6966656379636c65436f6e6e6563746976697479266d65747269633d76756c6e65726162696c6974696573" alt="Vulnerabilities"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;br&gt;
A super simple, super light-weight lifecycle aware solution written in Kotlin that helps you to capture network connectivity events with support for lower APIs
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;USAGE&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;&lt;a href="https://app.codacy.com/gh/mbobiosio/LifecycleConnectivity?utm_source=github.com&amp;amp;utm_medium=referral&amp;amp;utm_content=mbobiosio/LifecycleConnectivity&amp;amp;utm_campaign=Badge_Grade" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/252fcd4cf52f3142d56e9e8e45cda7de7af2a836048585563bbf51bd64cc6625/68747470733a2f2f6170692e636f646163792e636f6d2f70726f6a6563742f62616467652f47726164652f6463356363306163393537343432316461653630316639643836653262626361" alt="Codacy Badge"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Including in your project&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;Add below codes to your &lt;b&gt;root&lt;/b&gt; build.gradle&lt;/p&gt;
&lt;div class="snippet-clipboard-content notranslate position-relative overflow-auto"&gt;&lt;pre class="notranslate"&gt;&lt;code&gt;allprojects {
   repositories {
      maven { url 'https://jitpack.io' }
   }
}
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Add connectionlivedata dependency to your project's &lt;b&gt;module&lt;/b&gt; build.gradle&lt;/p&gt;
&lt;div class="highlight highlight-source-groovy notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;implementation &lt;span class="pl-s"&gt;&lt;span class="pl-pds"&gt;'&lt;/span&gt;com.github.mbobiosio:connectionlivedata:1.0.3&lt;span class="pl-pds"&gt;'&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;Use in your Activity&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight highlight-source-kotlin notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt; &lt;span class="pl-k"&gt;val&lt;/span&gt; connectionLiveData &lt;span class="pl-k"&gt;=&lt;/span&gt; &lt;span class="pl-en"&gt;ConnectionLiveData&lt;/span&gt;(&lt;span class="pl-c1"&gt;this&lt;/span&gt;)
 connectionLiveData.observe(&lt;span class="pl-c1"&gt;this&lt;/span&gt;, {
     &lt;span class="pl-en"&gt;Log&lt;/span&gt;.d(&lt;span class="pl-s"&gt;&lt;span class="pl-pds"&gt;"&lt;/span&gt;Status&lt;span class="pl-pds"&gt;"&lt;/span&gt;&lt;/span&gt;, &lt;span class="pl-s"&gt;&lt;span class="pl-pds"&gt;"&lt;/span&gt;&lt;span class="pl-e"&gt;$it&lt;/span&gt;&lt;span class="pl-pds"&gt;"&lt;/span&gt;&lt;/span&gt;)
 })&lt;/pre&gt;

&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;Use in your Fragment&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight highlight-source-kotlin notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt; &lt;span class="pl-k"&gt;val&lt;/span&gt; connectionLiveData &lt;span class="pl-k"&gt;=&lt;/span&gt; &lt;span class="pl-en"&gt;ConnectionLiveData&lt;/span&gt;(activity &lt;span class="pl-k"&gt;as&lt;/span&gt; &lt;span class="pl-en"&gt;Activity&lt;/span&gt;)
 connectionLiveData.observe(viewLifecycleOwner, {
    &lt;span class="pl-en"&gt;Log&lt;/span&gt;.d(&lt;span class="pl-s"&gt;&lt;span class="pl-pds"&gt;"&lt;/span&gt;Status&lt;span class="pl-pds"&gt;"&lt;/span&gt;&lt;/span&gt;, &lt;span class="pl-s"&gt;&lt;span class="pl-pds"&gt;"&lt;/span&gt;&lt;span class="pl-e"&gt;$it&lt;/span&gt;&lt;span class="pl-pds"&gt;"&lt;/span&gt;&lt;/span&gt;)
 })&lt;/pre&gt;

&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Contribute&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;If you want to contribute to this app, you're always welcome!
See &lt;a href="https://github.com/mbobiosio/LiveDataConnectionCONTRIBUTING.md" rel="noopener noreferrer"&gt;Contributing Guidelines&lt;/a&gt;.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;📝 License&lt;/h2&gt;

&lt;/div&gt;
&lt;p&gt;This project is released under the MIT license.
See &lt;a href="https://github.com/mbobiosio/LiveDataConnection./LICENSE" rel="noopener noreferrer"&gt;LICENSE&lt;/a&gt; for details.&lt;/p&gt;
&lt;div class="snippet-clipboard-content notranslate position-relative overflow-auto"&gt;
&lt;pre class="notranslate"&gt;&lt;code&gt;MIT License
Copyright (c) 2020 Mbuodile Obiosio

Permission is hereby&lt;/code&gt;&lt;/pre&gt;…&lt;/div&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/mbobiosio/LiveDataConnection" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;Feel to create a pull request.&lt;/p&gt;

</description>
      <category>android</category>
      <category>kotlin</category>
      <category>opensource</category>
    </item>
  </channel>
</rss>
