<?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: Mehedi Hasan</title>
    <description>The latest articles on DEV Community by Mehedi Hasan (@bitmavrick).</description>
    <link>https://dev.to/bitmavrick</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%2F1367657%2F842b031c-5bee-4084-b48c-5b12cf347fb8.png</url>
      <title>DEV Community: Mehedi Hasan</title>
      <link>https://dev.to/bitmavrick</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/bitmavrick"/>
    <language>en</language>
    <item>
      <title>Why you should learn multi-module architecture in compose as soon as possible!</title>
      <dc:creator>Mehedi Hasan</dc:creator>
      <pubDate>Fri, 28 Mar 2025 09:00:49 +0000</pubDate>
      <link>https://dev.to/bitmavrick/why-you-should-learn-multi-module-architecture-in-compose-as-soon-as-possible-2ga4</link>
      <guid>https://dev.to/bitmavrick/why-you-should-learn-multi-module-architecture-in-compose-as-soon-as-possible-2ga4</guid>
      <description>&lt;p&gt;Hi,&lt;/p&gt;

&lt;p&gt;I’m Mehedi Hasan, a professional software engineer and developer. I have been developing Android apps for nearly three years. Throughout my journey, I’ve faced many challenges and learned valuable lessons. I believe sharing my experiences and insights can help beginners navigate their own paths more effectively.&lt;/p&gt;

&lt;h2&gt;
  
  
  Lets start with multi-module architecture,
&lt;/h2&gt;

&lt;p&gt;Multi-module architecture is one of the best ways to organize an Android app. Throughout my journey, I’ve watched countless YouTube videos on getting started with Jetpack Compose, and most of them recommend ignoring multi-module architecture. While I somewhat agree with this argument, I don’t entirely support it.&lt;/p&gt;

&lt;p&gt;I followed their advice when building &lt;strong&gt;&lt;a href="https://play.google.com/store/apps/details?id=com.bitmavrick.lumolight" rel="noopener noreferrer"&gt;Lumolight&lt;/a&gt;&lt;/strong&gt;, one of my most popular apps. It’s free, open-source, and available on &lt;a href="https://play.google.com/store/apps/details?id=com.bitmavrick.lumolight" rel="noopener noreferrer"&gt;Google play&lt;/a&gt; and &lt;a href="https://github.com/BitMavrick/Lumolight" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt; for anyone to check out. However, looking back, I realize I could have done much better if I had started with a multi-module architecture from the beginning.&lt;/p&gt;

&lt;p&gt;Some popular YouTubers also claim that you can always scale a single-module project into a multi-module architecture later. I strongly disagree with this idea. Retrofitting a multi-module structure into an existing monolithic app can be much more challenging than designing it that way from the start.&lt;/p&gt;

&lt;h3&gt;
  
  
  My Recommendation,
&lt;/h3&gt;

&lt;p&gt;First of all, &lt;strong&gt;don’t build a production-grade app using a single-module architecture&lt;/strong&gt;—unless you’re sure you won’t need to scale it later. As your app grows, adding new features and managing functionality becomes increasingly difficult, leading to more bugs and maintenance headaches.&lt;/p&gt;

&lt;p&gt;If I had to start over, here’s how I would approach it:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Learn the fundamentals&lt;/strong&gt; – Start with Kotlin, understand how Jetpack Compose works, and get comfortable with core concepts like ViewModel, Dependency Injection, and Coroutines.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Explore architectural patterns&lt;/strong&gt; – Study different architectures like MVI, MVP, and MVVM to understand how to structure your app effectively.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Build small projects&lt;/strong&gt; – Create a few simple apps using a single-module architecture to get hands-on experience.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Transition to multi-module architecture&lt;/strong&gt; – Once you’re comfortable with the basics, move on to multi-module architecture for better scalability, maintainability, and performance.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;By following this approach, you’ll have a strong foundation before diving into multi-module development, making the transition much smoother.&lt;/p&gt;

&lt;p&gt;The biggest advantage of using a multi-module architecture is achieving a clear separation of concerns. At first, it might not seem like a big deal, but as you start breaking down complex problems into smaller, manageable modules, development becomes much more structured. This approach allows you to focus on solving one problem at a time, making it significantly easier to build and maintain a large-scale application. And if you encounter any bugs, It is much more easy to find-out because of the multi-module design.&lt;/p&gt;

&lt;h3&gt;
  
  
  My Achievements
&lt;/h3&gt;

&lt;p&gt;I currently own two applications built using a &lt;strong&gt;multi-module architecture&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The first one is &lt;strong&gt;&lt;a href="https://play.google.com/store/apps/details?id=com.bitmavrick.groovy" rel="noopener noreferrer"&gt;Groovy – Music Player&lt;/a&gt;&lt;/strong&gt;, which is &lt;strong&gt;far more feature-packed&lt;/strong&gt; than &lt;a href="https://play.google.com/store/apps/details?id=com.bitmavrick.lumolight" rel="noopener noreferrer"&gt;Lumolight&lt;/a&gt;, yet I was able to develop it in &lt;strong&gt;less time&lt;/strong&gt;. At the time, I was still learning multi-module architecture, so not everything went as smoothly as I had hoped.&lt;/p&gt;

&lt;p&gt;The second app, &lt;strong&gt;&lt;a href="https://play.google.com/store/apps/details?id=com.bitmavrick.everplan" rel="noopener noreferrer"&gt;Everplan – Expense Tracker&lt;/a&gt;&lt;/strong&gt;, is where I &lt;strong&gt;fully embraced&lt;/strong&gt; multi-module architecture with a well-structured modular design. And now, it’s finally paying off! Compared to my previous apps, &lt;strong&gt;Everplan has significantly fewer bugs, is much easier to scale, and allows for seamless feature additions&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;This experience has reinforced my belief that starting with a well-planned multi-module architecture can &lt;strong&gt;save time, reduce complexity, and make long-term development much more manageable&lt;/strong&gt;.&lt;/p&gt;

</description>
      <category>android</category>
      <category>kotlin</category>
      <category>jetpackcompose</category>
      <category>programming</category>
    </item>
    <item>
      <title>Best Free Android Apps 2024</title>
      <dc:creator>Mehedi Hasan</dc:creator>
      <pubDate>Fri, 25 Oct 2024 13:21:23 +0000</pubDate>
      <link>https://dev.to/bitmavrick/best-free-android-apps-2024-1lhp</link>
      <guid>https://dev.to/bitmavrick/best-free-android-apps-2024-1lhp</guid>
      <description>&lt;h3&gt;
  
  
  In this article, I’ll discuss the best 5 free and open-source software (FOSS) for Android devices that are useful for everyday life, and I use them all the time.
&lt;/h3&gt;

&lt;p&gt;Hello, I’m Mehedi Hasan and I’ve been working on the Android open-source developer’s community for a long time. So based on my experience and use cases, I’ll introduce you to some of the best FOSS apps out there that you might not know are exist and very helpful for everyday life.&lt;/p&gt;

&lt;h1&gt;
  
  
  1. Seal
&lt;/h1&gt;

&lt;p&gt;Let's be honest, we all fall into the situation where we need to download some video/audio from various websites. However, the site does not want us to do so. Here comes Seal to the rescue.&lt;br&gt;
Seal offers:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The best-recommended version for downloading the content.&lt;/li&gt;
&lt;li&gt;Freedom to download the right quality for your need, both video and audio.&lt;/li&gt;
&lt;li&gt;You can download video or audio separately if you want.&lt;/li&gt;
&lt;li&gt;“Material You” design, Which is the best UI for Android apps.&lt;/li&gt;
&lt;li&gt;No security risk.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;However, there are some not-so-great things as well,&lt;/p&gt;

&lt;p&gt;The app size is big, around 140MB, and Seal is not available in any store, you have to download From Github and Install the APK file manually to your device. Here’s the Github link,&lt;/p&gt;

&lt;p&gt;Seal: &lt;a href="https://dev.tourl"&gt;&lt;/a&gt;&lt;a href="https://github.com/JunkFood02/Seal" rel="noopener noreferrer"&gt;https://github.com/JunkFood02/Seal&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Go to the release section and download the latest APK file available. If you find this complicated, just comment it out, I’ll help you to download.&lt;/p&gt;

&lt;h1&gt;
  
  
  2. Groovy — Music Player
&lt;/h1&gt;

&lt;p&gt;Groovy is the best local music player right now in my opinion based on how tiny the app size is and yet brings some of the best features that come with this tiny package.&lt;/p&gt;

&lt;p&gt;Groovy offers.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Beautiful Material You Design.&lt;/li&gt;
&lt;li&gt;Lots of Customization options.&lt;/li&gt;
&lt;li&gt;Full background playback even if you close the app completely.&lt;/li&gt;
&lt;li&gt;Sorting the music file whatever you want.&lt;/li&gt;
&lt;li&gt;Block unwanted folders.&lt;/li&gt;
&lt;li&gt;Oled Dark theme support.&lt;/li&gt;
&lt;li&gt;App size around 5 MB. &lt;em&gt;(Which I also consider is a good feature.)&lt;/em&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Groovy is available on GitHub and Google Play, here’s the link,&lt;/p&gt;

&lt;p&gt;Github: &lt;a href="https://dev.tourl"&gt;&lt;/a&gt;&lt;a href="https://github.com/BitMavrick/Groovy" rel="noopener noreferrer"&gt;https://github.com/BitMavrick/Groovy&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Google Play: &lt;a href="https://dev.tourl"&gt;&lt;/a&gt;&lt;a href="https://play.google.com/store/apps/details?id=com.bitmavrick.groovy&amp;amp;hl=en" rel="noopener noreferrer"&gt;https://play.google.com/store/apps/details?id=com.bitmavrick.groovy&amp;amp;hl=en&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  3. Next Player
&lt;/h1&gt;

&lt;p&gt;Next Player is a simple open-source local video player app, the app looks very minimal and very functional as well.&lt;br&gt;
Here are some of the key features Next Player offers,&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Video Streaming.&lt;/li&gt;
&lt;li&gt;Local Video Playback.&lt;/li&gt;
&lt;li&gt;Subtitle, Audio Track customization.&lt;/li&gt;
&lt;li&gt;Video zooming, fast/slow, swiple gestures for seeking, volume and brightness adjustment, and a lot more.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Next player is available on both Github and Google Play, here’s the link.&lt;/p&gt;

&lt;p&gt;Github: &lt;a href="https://dev.tourl"&gt;&lt;/a&gt;&lt;a href="https://github.com/anilbeesetti/nextplayer" rel="noopener noreferrer"&gt;https://github.com/anilbeesetti/nextplayer&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Google Play: &lt;a href="https://dev.tourl"&gt;&lt;/a&gt;&lt;a href="https://play.google.com/store/apps/details?id=dev.anilbeesetti.nextplayer&amp;amp;hl=en" rel="noopener noreferrer"&gt;https://play.google.com/store/apps/details?id=dev.anilbeesetti.nextplayer&amp;amp;hl=en&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  4. Buckwheat
&lt;/h1&gt;

&lt;p&gt;If you can’t track your expenses, Buackwheat can help you. Now you can keep track of every expense that you make. Buckwheat is very well known and has around 20k+ total users currently using Buckwheat.&lt;/p&gt;

&lt;p&gt;I’m not going you to the full features lists because there’s a lot, If you want an ultimate expense tracker app. Buckwheat is the app you need.&lt;/p&gt;

&lt;p&gt;Buckwheat is available in various platform, Here’s Gihub and Playstore link,&lt;/p&gt;

&lt;p&gt;Github: &lt;a href="https://dev.tourl"&gt;&lt;/a&gt;&lt;a href="https://github.com/danilkinkin/buckwheat" rel="noopener noreferrer"&gt;https://github.com/danilkinkin/buckwheat&lt;/a&gt;&lt;br&gt;
Google Play: &lt;a href="https://dev.tourl"&gt;&lt;/a&gt;&lt;a href="https://play.google.com/store/apps/details?id=com.danilkinkin.buckwheat&amp;amp;hl=en" rel="noopener noreferrer"&gt;https://play.google.com/store/apps/details?id=com.danilkinkin.buckwheat&amp;amp;hl=en&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  5. Lumolight
&lt;/h1&gt;

&lt;p&gt;I know its 2024, No one needs flashlight app anymore, but here me out, Lumolight offers something more that your phone doesn't.&lt;/p&gt;

&lt;p&gt;Here’s some of the key point that lumolight offere’s,&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Screen flash with color, brightness and duration adjustment.&lt;/li&gt;
&lt;li&gt;Flashlight with diming feature, you can dim you flashlight.&lt;/li&gt;
&lt;li&gt;Tile support for screen flash and you can adjust the brightness using the volume buttons.&lt;/li&gt;
&lt;li&gt;Emergency SOS in one tap.&lt;/li&gt;
&lt;li&gt;Material You design.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Lumolight is available Both Github and Google play, here’s the link,&lt;br&gt;
Github: &lt;a href="https://dev.tourl"&gt;&lt;/a&gt;&lt;a href="https://github.com/BitMavrick/Lumolight" rel="noopener noreferrer"&gt;https://github.com/BitMavrick/Lumolight&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Google Play: &lt;a href="https://dev.tourl"&gt;&lt;/a&gt;&lt;a href="https://play.google.com/store/apps/details?id=com.bitmavrick.lumolight&amp;amp;hl=en" rel="noopener noreferrer"&gt;https://play.google.com/store/apps/details?id=com.bitmavrick.lumolight&amp;amp;hl=en&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So there you have it, there’s the best 5 free and open-source android apps in my opinion. If you know any apps that are open source and you find it useful, let me know. Have a good rest of your day.&lt;/p&gt;

</description>
      <category>android</category>
      <category>opensource</category>
      <category>bestapp</category>
      <category>topapp</category>
    </item>
  </channel>
</rss>
