<?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>Forem: Hicham Hicham</title>
    <description>The latest articles on Forem by Hicham Hicham (@hicham_ab).</description>
    <link>https://forem.com/hicham_ab</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%2F2140212%2F3b89605e-663a-4ba6-9c37-cc38c439c73f.png</url>
      <title>Forem: Hicham Hicham</title>
      <link>https://forem.com/hicham_ab</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/hicham_ab"/>
    <language>en</language>
    <item>
      <title>How I Stopped Fearing the "Publish" Button in Flutter</title>
      <dc:creator>Hicham Hicham</dc:creator>
      <pubDate>Mon, 20 Apr 2026 21:33:36 +0000</pubDate>
      <link>https://forem.com/hicham_ab/how-i-stopped-fearing-the-publish-button-in-flutter-1pa0</link>
      <guid>https://forem.com/hicham_ab/how-i-stopped-fearing-the-publish-button-in-flutter-1pa0</guid>
      <description>&lt;p&gt;Launch anxiety is completely normal.&lt;/p&gt;

&lt;p&gt;You spend three months writing beautiful Dart code, building a flawless UI, and wiring up Firebase. But then comes deployment. Suddenly, you're deep in the trenches of AndroidManifest.xml, fighting Xcode provisioning profiles, and praying your app doesn't immediately crash in production because of a stripped ProGuard package.&lt;/p&gt;

&lt;p&gt;I used to hold my breath every time I submitted to the App Store. Now, I just run through a strict system.&lt;/p&gt;

&lt;p&gt;If there is one thing you must double-check before launching a Flutter &amp;amp; Firebase app, it's your database security. Far too many devs ship with test rules, leaving their GCP billing totally exposed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Firebase Security Rule Check:&lt;/strong&gt;&lt;br&gt;
Before you build your release APK or IPA, open your Firebase Console and ensure you have locked down Firestore. Never ship with allow read, write: if true;.&lt;/p&gt;

&lt;p&gt;Instead, write granular rules verifying document ownership:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    match /users/{userId} {
      // Only allow users to read/write their own document
      allow read, write: if request.auth != null &amp;amp;&amp;amp; request.auth.uid == userId;
    }
  }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Pro-Tip: Use request.resource.data checks in your rules to validate your schema. This prevents malicious actors from injecting arbitrary, heavy fields into your production database to rack up your read/write bills.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Full Deployment System:&lt;/strong&gt;&lt;br&gt;
Securing Firestore is just step one. You still need to handle iOS privacy strings, Android release keys, App Check, and code shrinking.&lt;/p&gt;

&lt;p&gt;I got tired of forgetting these steps, so I documented the exact pipeline I use to ship Flutter apps without rejections or production crashes.&lt;/p&gt;

&lt;p&gt;I packaged the whole system into a clean, easy-to-read checklist.&lt;/p&gt;

&lt;p&gt;You can grab the full guide here for $0: &lt;a href="https://habostudios.gumroad.com/l/zerocrashflutterlaunch" rel="noopener noreferrer"&gt;https://habostudios.gumroad.com/l/zerocrashflutterlaunch&lt;/a&gt;&lt;/p&gt;

</description>
      <category>flutter</category>
      <category>firebase</category>
      <category>softwareengineering</category>
      <category>mobiledev</category>
    </item>
    <item>
      <title>How I Automated My Documentation (and Stop Writing My Own READMEs)</title>
      <dc:creator>Hicham Hicham</dc:creator>
      <pubDate>Sat, 18 Apr 2026 20:20:16 +0000</pubDate>
      <link>https://forem.com/hicham_ab/how-i-automated-my-documentation-and-stop-writing-my-own-readmes-4b19</link>
      <guid>https://forem.com/hicham_ab/how-i-automated-my-documentation-and-stop-writing-my-own-readmes-4b19</guid>
      <description>&lt;p&gt;Let’s be real: stopping your development momentum to write inline comments, generate unit tests, or explain your logic to non-technical stakeholders is the worst part of the job.&lt;/p&gt;

&lt;p&gt;I got tired of doing this manually, so I spent some time building a specific set of AI prompts to handle the heavy lifting for me. It saves me hours every week.&lt;/p&gt;

&lt;p&gt;I want to share my favorite prompt from the kit with you all. This one completely automates writing a professional README file.&lt;/p&gt;

&lt;p&gt;The Instant README Architect&lt;br&gt;
Paste this into your AI of choice and fill in your details:&lt;/p&gt;

&lt;p&gt;"Act as a meticulous technical writer. Generate a comprehensive README.md file for my new project called [Project Name]. Its primary purpose is to [1-2 sentences on what it does]. It is built using [Tech Stack]. Please include the following sections: Project Title, Description, Prerequisites, Installation Guide (with placeholder terminal commands), Usage (with a quick example), and Contributing guidelines. Format the output entirely in standard Markdown."&lt;/p&gt;

&lt;p&gt;Get the Full Kit&lt;br&gt;
I actually put together a clean, PDF reference guide with 4 other prompts I use daily, including:&lt;/p&gt;

&lt;p&gt;The Edge-Case Unit Test Generator&lt;/p&gt;

&lt;p&gt;The Inline Comment Generator &amp;amp; Cleaner&lt;/p&gt;

&lt;p&gt;The Clean Code Naming Assistant&lt;/p&gt;

&lt;p&gt;The Non-Technical Translator&lt;/p&gt;

&lt;p&gt;I put the PDF up on Gumroad for free (Pay-What-You-Want).&lt;/p&gt;

&lt;p&gt;👉 Grab the free Developer's Prompt Kit here : &lt;a href="https://habostudios.gumroad.com/l/developerdocumentationsprintkit" rel="noopener noreferrer"&gt;https://habostudios.gumroad.com/l/developerdocumentationsprintkit&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Let me know if these help speed up your workflow!&lt;/p&gt;

</description>
      <category>ai</category>
      <category>programming</category>
      <category>productivity</category>
      <category>development</category>
    </item>
  </channel>
</rss>
