<?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: Shalen Mathew</title>
    <description>The latest articles on DEV Community by Shalen Mathew (@shalenmathew).</description>
    <link>https://dev.to/shalenmathew</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%2F1654636%2F86af2933-630e-41b8-bd7f-f9df0df65604.png</url>
      <title>DEV Community: Shalen Mathew</title>
      <link>https://dev.to/shalenmathew</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/shalenmathew"/>
    <language>en</language>
    <item>
      <title>Why I'm Building in Public (And Why You Should Too)</title>
      <dc:creator>Shalen Mathew</dc:creator>
      <pubDate>Fri, 24 Oct 2025 05:32:36 +0000</pubDate>
      <link>https://dev.to/shalenmathew/why-im-building-in-public-and-why-you-should-too-4hkp</link>
      <guid>https://dev.to/shalenmathew/why-im-building-in-public-and-why-you-should-too-4hkp</guid>
      <description>&lt;p&gt;A few months ago, I did something different. I started building in public.&lt;/p&gt;

&lt;p&gt;I've built plenty of apps before. Most of them died in my local repository, never seeing the light of day. But this time with my Quotes app, I decided to share every step of the journey online. The wins, the bugs, the "why is this not working" moments. All of it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;And guess what? The app just hit 50 stars on GitHub.&lt;/strong&gt; ⭐&lt;/p&gt;

&lt;p&gt;That might not sound like much compared to big open source projects, but for me? It was validation. Proof that people actually cared about what I was building.&lt;/p&gt;




&lt;h2&gt;
  
  
  🚀 How It Started
&lt;/h2&gt;

&lt;p&gt;I've always wanted to build a Quotes app. Simple idea, right? But I'd never gotten around to it. This time though, I made a promise to myself: I'd build it in public instead of coding alone in my room like I usually do.&lt;/p&gt;

&lt;p&gt;Android development can get lonely. And frustrating. Really frustrating. So I started posting updates on Twitter and LinkedIn. Shared my struggles with Jetpack Compose. Talked about architecture decisions. Asked for feedback.&lt;/p&gt;

&lt;p&gt;Suddenly, development wasn't boring anymore. People were watching. Commenting. Suggesting improvements. Some even started using the app.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;That external accountability pushed me to keep going. When you know people are watching, you can't just abandon the project halfway (well, you technically can, but it feels awkward).&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  💡 The Real Win: Learning in Public
&lt;/h2&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%2Fx6t78mnrge62ckcxzbvr.gif" 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%2Fx6t78mnrge62ckcxzbvr.gif" alt=" " width="600" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Building Quotes app wasn't just about stars or downloads. It was about leveling up my skills.&lt;/p&gt;

&lt;p&gt;I dove deep into Jetpack Compose. Learned Clean Architecture properly, not just surface level. Started writing actual tests instead of skipping them like before. Improved my understanding of MVVM patterns.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;And here's the thing:&lt;/strong&gt; I made the project open source. Because I learned most of what I know from other people's code. Studying open source projects taught me more than any tutorial ever could. So I wanted to give back.&lt;/p&gt;




&lt;h2&gt;
  
  
  🎃 Then Hacktoberfest Happened
&lt;/h2&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%2Fyr45ec7xiyk3m84bphgv.gif" 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%2Fyr45ec7xiyk3m84bphgv.gif" alt=" " width="600" height="337"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Last year during Hacktoberfest, I wanted to contribute to Android projects. But finding good ones was... hard. Most projects were web-focused or had codebases too complex for beginners. There weren't many Android apps that welcomed newcomers.&lt;/p&gt;

&lt;p&gt;I remember thinking, "Someone should fix this."&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;So this year, I did.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I opened up both Quotes app and MovieFlix (my movie discovery app) for Hacktoberfest contributions. Clean architecture, modern tech stack, beginner-friendly issues. Everything I wished existed last year.&lt;/p&gt;

&lt;p&gt;The response? Way better than expected.&lt;/p&gt;

&lt;p&gt;Developers started contributing. First-timers made their first PR. Intermediate devs added features. People from different countries, different skill levels, all working on something together.&lt;/p&gt;

&lt;p&gt;It felt good. Really good.&lt;/p&gt;

&lt;h3&gt;
  
  
  📱 Check Out the Projects
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Quotes app&lt;/strong&gt;: A daily motivation app with modern Android architecture&lt;br&gt;
🔗 &lt;a href="https://github.com/shalenMathew/Quotes-app" rel="noopener noreferrer"&gt;https://github.com/shalenMathew/Quotes-app&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;MovieFlix&lt;/strong&gt;: Movie discovery app with offline support&lt;br&gt;
🔗 &lt;a href="https://github.com/shalenMathew/MovieFlix_App" rel="noopener noreferrer"&gt;https://github.com/shalenMathew/MovieFlix_App&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tech Stack:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;✅ Kotlin&lt;/li&gt;
&lt;li&gt;✅ Jetpack Compose&lt;/li&gt;
&lt;li&gt;✅ MVVM + Clean Architecture&lt;/li&gt;
&lt;li&gt;✅ Hilt / Dagger 2&lt;/li&gt;
&lt;li&gt;✅ Room Database&lt;/li&gt;
&lt;li&gt;✅ Retrofit&lt;/li&gt;
&lt;li&gt;✅ Coroutines &amp;amp; Flow&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🤝 Why Building in Public Changed Everything
&lt;/h2&gt;

&lt;p&gt;Looking back, sharing my journey publicly was the best decision I made this year.&lt;/p&gt;

&lt;p&gt;I connected with developers way better than me. Learned from their feedback. Got motivation when I felt like quitting. Built projects people actually use.&lt;/p&gt;

&lt;p&gt;And now during Hacktoberfest, I'm on the other side as a maintainer. Helping others the way open source helped me.&lt;/p&gt;

&lt;p&gt;If you're sitting on a side project right now, afraid to share it because "it's not perfect yet" or "what if people judge it," just post it. Tweet about it. Write about your struggles. Share your code.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The worst that happens?&lt;/strong&gt; Nothing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The best that happens?&lt;/strong&gt; You build something real, learn faster, meet amazing people, and maybe even help someone else learn too.&lt;/p&gt;

</description>
      <category>swift</category>
      <category>android</category>
      <category>reactnative</category>
      <category>hacktoberfest</category>
    </item>
    <item>
      <title>A Guide to Using Singleton Design Pattern in Android</title>
      <dc:creator>Shalen Mathew</dc:creator>
      <pubDate>Tue, 08 Apr 2025 15:58:57 +0000</pubDate>
      <link>https://dev.to/shalenmathew/a-guide-to-using-singleton-design-pattern-in-android-3i25</link>
      <guid>https://dev.to/shalenmathew/a-guide-to-using-singleton-design-pattern-in-android-3i25</guid>
      <description>&lt;p&gt;Wrote an article on 𝐒𝐢𝐧𝐠𝐥𝐞𝐭𝐨𝐧 𝐃𝐞𝐬𝐢𝐠𝐧 𝐏𝐚𝐭𝐭𝐞𝐫𝐧 𝐢𝐧 𝐀𝐧𝐝𝐫𝐨𝐢𝐝 on Hashnode . Learn all about design pattern from this article. Hope this will 𝘩𝘦𝘭𝘱 𝘪𝘯 𝘺𝘰𝘶𝘳 𝘪𝘯𝘵𝘦𝘳𝘷𝘪𝘦𝘸 𝘱𝘳𝘦𝘱!!! 👊👊👊 &lt;/p&gt;

&lt;p&gt;&lt;a href="https://shalenmathew.hashnode.dev/a-guide-to-using-singleton-design-pattern-in-android" rel="noopener noreferrer"&gt;https://shalenmathew.hashnode.dev/a-guide-to-using-singleton-design-pattern-in-android&lt;/a&gt;&lt;/p&gt;

</description>
      <category>designpatterns</category>
      <category>android</category>
      <category>tutorial</category>
      <category>learning</category>
    </item>
    <item>
      <title>A Guide to Using Singleton Design Pattern in Android</title>
      <dc:creator>Shalen Mathew</dc:creator>
      <pubDate>Thu, 27 Mar 2025 04:41:15 +0000</pubDate>
      <link>https://dev.to/shalenmathew/a-guide-to-using-singleton-design-pattern-in-android-41bd</link>
      <guid>https://dev.to/shalenmathew/a-guide-to-using-singleton-design-pattern-in-android-41bd</guid>
      <description>&lt;p&gt;Design pattern are some the most commonly asked interview topics&lt;/p&gt;

&lt;p&gt;Learn all about the singleton pattern from this article : &lt;a href="https://shalenmathew.hashnode.dev/a-guide-to-using-singleton-design-pattern-in-android" rel="noopener noreferrer"&gt;article&lt;/a&gt;&lt;/p&gt;

</description>
      <category>android</category>
      <category>mobile</category>
      <category>kotlin</category>
      <category>reactnative</category>
    </item>
    <item>
      <title>Quick guide to Android activity lifecycle</title>
      <dc:creator>Shalen Mathew</dc:creator>
      <pubDate>Mon, 27 Jan 2025 10:48:09 +0000</pubDate>
      <link>https://dev.to/shalenmathew/quick-guide-to-android-activity-lifecycle-5e0m</link>
      <guid>https://dev.to/shalenmathew/quick-guide-to-android-activity-lifecycle-5e0m</guid>
      <description>&lt;p&gt;&lt;strong&gt;Disclaimer :&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;(This article is intended for those already familiar with the Android lifecycle who are looking for a quick summary to prepare for an interview or as a refresher.)&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The Android lifecycle defines the states an app goes through from launch to termination, handling events like screen rotations and backgrounding.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Android Lifecycle:&lt;/strong&gt;&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%2Fglrz6ndj1fbhmogd3i5y.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%2Fglrz6ndj1fbhmogd3i5y.png" alt="lifecycle img" width="523" height="673"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When you launch an app or navigate to another activity, the activity goes through this hierarchical lifecycle.&lt;/p&gt;

&lt;h2&gt;
  
  
  1 . onCreate()
&lt;/h2&gt;

&lt;p&gt;It is called when the activity is created for the first time. It takes care of initializing essential components like views, binding data, or setting up resources.&lt;/p&gt;

&lt;p&gt;Example: Inflate the UI layout using setContentView().&lt;/p&gt;

&lt;h2&gt;
  
  
  2 . onStart()
&lt;/h2&gt;

&lt;p&gt;It is called when the activity becomes visible to the user, but the user can’t interact with the activity yet. It takes care of performing tasks like starting animations or initializing UI updates.&lt;/p&gt;

&lt;h2&gt;
  
  
  3 . onResume()
&lt;/h2&gt;

&lt;p&gt;It is called when the activity starts interacting with the user&lt;/p&gt;

&lt;h2&gt;
  
  
  4 . onPause()
&lt;/h2&gt;

&lt;p&gt;It is called when the activity goes partially out of view, like when another activity opens on top. (e.g. when a dialog box appears over an activity)&lt;/p&gt;

&lt;h2&gt;
  
  
  5 . onStop()
&lt;/h2&gt;

&lt;p&gt;It is called when the activity is no longer visible. (e.g. navigating to another activity). This is when heavy resources are released, app data can be saved, and ongoing tasks can be stopped.&lt;/p&gt;

&lt;h2&gt;
  
  
  5 . onRestart()
&lt;/h2&gt;

&lt;p&gt;It is called when the activity restarts after being stopped. (e.g., when the user navigates back to the previous activity from the current one)&lt;/p&gt;

&lt;h2&gt;
  
  
  6 . onDestroy()
&lt;/h2&gt;

&lt;p&gt;It is called when the activity is destroyed either by the user (e.g., back button) or the system (e.g., low memory).&lt;/p&gt;

&lt;p&gt;&lt;em&gt;(Quick Tip: Understand the diagram and understand the hierarchy of how the functions are called)&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;If you want to dig deeper or trying to understand more here is an awesome video about the Android lifecycle: &lt;a href="https://youtu.be/SJw3Nu_h8kk?si=1V-Tw69K0li0oN1j" rel="noopener noreferrer"&gt;Android Lifecycle&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Some interview questions that might be asked about this concept:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;name all the Android lifecycle and their functionality&lt;/li&gt;
&lt;li&gt;activity lifecycle behavior under different scenarios (e.g., what will be the lifecycle when you navigate to another activity)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;That’s all from me 😁. If you I am lacking somewhere or this article needs some correction just comment down. Bye!!!👋&lt;/p&gt;

</description>
      <category>android</category>
      <category>kotlin</category>
      <category>mobile</category>
      <category>development</category>
    </item>
  </channel>
</rss>
