<?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: AJALA MAYOWA FELIX</title>
    <description>The latest articles on DEV Community by AJALA MAYOWA FELIX (@amfstacks).</description>
    <link>https://dev.to/amfstacks</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%2F732416%2Ffcbe8d5a-de46-4160-b333-cbed79155aad.jpg</url>
      <title>DEV Community: AJALA MAYOWA FELIX</title>
      <link>https://dev.to/amfstacks</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/amfstacks"/>
    <language>en</language>
    <item>
      <title>Solution: Flutter Firebase realtime listener not cancelling</title>
      <dc:creator>AJALA MAYOWA FELIX</dc:creator>
      <pubDate>Mon, 03 Apr 2023 16:28:18 +0000</pubDate>
      <link>https://dev.to/amfstacks/flutter-firebase-realtime-listener-not-cancelling-5fop</link>
      <guid>https://dev.to/amfstacks/flutter-firebase-realtime-listener-not-cancelling-5fop</guid>
      <description>&lt;p&gt;Firebase realtime database listener does not cancel even when you dispose the widget or explicitly cancel the &lt;strong&gt;streamsubscription&lt;/strong&gt;.&lt;br&gt;
The listener keeps listening underground which increases your billings, causes memory leak and consumes your device resources.&lt;/p&gt;

&lt;p&gt;I had this same problem for a while, I could not find any tangible solution on github, stackoverflow and other tech related blogs, till I eventually created a workaround.&lt;/p&gt;

&lt;p&gt;Let me walk you through:&lt;/p&gt;

&lt;p&gt;To cancel the streamSubscription listener, I simply called the &lt;code&gt;goOffline()&lt;/code&gt; method on my database instance.&lt;/p&gt;

&lt;p&gt;This method completely cancelled the listener from underground activities.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;final database = FirebaseDatabase.instance;
database.goOffline()// to stop your listener
//After canceling the listener, to resume or start other database operations 
database.goOnline() //everything works back better
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;I put the called &lt;code&gt;database.goOffline()&lt;/code&gt;  in the dispose state and it works perfectly.&lt;/p&gt;

&lt;p&gt;Glad to help&lt;/p&gt;

</description>
      <category>firebase</category>
      <category>database</category>
      <category>flutter</category>
      <category>dart</category>
    </item>
    <item>
      <title>How to make a `ListView.builder` Start from a specific index in flutter.</title>
      <dc:creator>AJALA MAYOWA FELIX</dc:creator>
      <pubDate>Fri, 31 Mar 2023 08:34:33 +0000</pubDate>
      <link>https://dev.to/amfstacks/how-to-make-a-listviewbuilder-start-from-a-specific-index-in-flutter-27cf</link>
      <guid>https://dev.to/amfstacks/how-to-make-a-listviewbuilder-start-from-a-specific-index-in-flutter-27cf</guid>
      <description>&lt;p&gt;I was working on a chat application which I used ListView.builder to render the chat messages.&lt;/p&gt;

&lt;p&gt;I had a problem of resuming from the last message read by the user, this poses a bad user experience if users can not resume from the last read message as most chat applications do.&lt;/p&gt;

&lt;p&gt;Programmatically, I need to start the chat message lists from the index of the last read message by the user.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Get the index of the last read message&lt;/li&gt;
&lt;li&gt;Assign the index to the list view builder &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I checked online for solutions and tips, I found out so many developers faced the same problem but &lt;strong&gt;I could not found any tangible solution.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;After so many personal approaches I finally settled for the one with the best user experience and well optimised.&lt;/p&gt;

&lt;p&gt;There is a dart package on pub spec&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;a href="https://pub.dev/packages/scrollable_positioned_list"&gt;scrollable_positioned_list&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Use the package as your listView builder.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The package has a property called &lt;code&gt;**initialScrollIndex**&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;The value you assign to the &lt;strong&gt;initialScrollIndex&lt;/strong&gt; will be the index where the listView will start from, irrespective of how large the data is, it works well.&lt;/p&gt;

&lt;p&gt;Most importantly, the value of your &lt;code&gt;**initialScrollIndex**&lt;/code&gt; &lt;strong&gt;must not be out of range&lt;/strong&gt;, so as a good developer, it's essential you check the length of the data your listview is building before assigning a value to the &lt;code&gt;initialScrollIndex&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Using &lt;code&gt;StartIndex&lt;/code&gt; as the index you want your listView to start from, and &lt;code&gt;alldataLength&lt;/code&gt; is the total length of all the chat messages you are loading.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;initialScrollIndex: alldataLength &amp;gt; startIndex ? startIndex : 0
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The above code safely prevents your app from crashing by ensuring that your &lt;code&gt;startindex&lt;/code&gt; is not out of range of the &lt;code&gt;alldataLength&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ScrollablePositionedList.builder(
  itemCount: alldataLength,
  itemBuilder: (context, index) =&amp;gt; Text('Item $index'),
  initialScrollIndex: alldataLength &amp;gt; startIndex ? startIndex : 0 
);
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;keep fluttering!&lt;br&gt;
Cheers!&lt;/p&gt;

</description>
      <category>flutter</category>
      <category>dart</category>
      <category>mobile</category>
    </item>
    <item>
      <title>Opportunity makes a better developer</title>
      <dc:creator>AJALA MAYOWA FELIX</dc:creator>
      <pubDate>Tue, 13 Sep 2022 15:31:25 +0000</pubDate>
      <link>https://dev.to/amfstacks/opportunity-makes-a-better-developer-4n31</link>
      <guid>https://dev.to/amfstacks/opportunity-makes-a-better-developer-4n31</guid>
      <description>&lt;p&gt;I delved into Web Dev over 7 years ago and I started developing real and working web apps.&lt;/p&gt;

&lt;p&gt;I was quite good, even though I was a solo developer,&lt;br&gt;
No community, no mentor .&lt;/p&gt;

&lt;p&gt;I have friends in the same field, Friends that are way better than me esp those that were chanced to work in Lagos.&lt;/p&gt;

&lt;p&gt;Lagos is a whole tech ecosystem on its own&lt;br&gt;
You don’t have a choice than to be a good developer even if you don’t want to,Inferiority complex and shame would push you.&lt;/p&gt;

&lt;p&gt;Three years into my dev. journey &lt;br&gt;
I never used GIT, It sounds crazy, but truthfully I did not even know what GIT was all about.&lt;/p&gt;

&lt;p&gt;What type of developer does not -use- know GIT .....?&lt;/p&gt;

&lt;p&gt;One of my close tech pals explained how important it was for me to know how to use git ,&lt;br&gt;
“A dev without git is  a local dev”&lt;/p&gt;

&lt;p&gt;He was absolutely RIGHT!, I was a local developer.&lt;br&gt;
As at those periods, even without my knowledge of git, I have worked with 2 companies as a software developer and I was quite good !&lt;/p&gt;

&lt;p&gt;But being a good developer is not the point here ,&lt;/p&gt;

&lt;p&gt;I was a local developer cos of null git knowledge,&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Do you know why I was a local dev?&lt;/strong&gt;&lt;br&gt;
Why was I not able to use git 4 years into being a good dev ?&lt;br&gt;
What &lt;strong&gt;differentiate&lt;/strong&gt; me from my friend who has spent more of his tech carriers using GIT …. ?&lt;/p&gt;

&lt;p&gt;The answer is simple &lt;br&gt;
One word&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;OPPORTUNITY&lt;/strong&gt;!&lt;/p&gt;

&lt;p&gt;That's it !&lt;/p&gt;

&lt;p&gt;I never saw any &lt;strong&gt;opportunity&lt;/strong&gt;  to use &lt;strong&gt;GIT&lt;/strong&gt;, &lt;br&gt;
I never saw any &lt;strong&gt;opportunity&lt;/strong&gt; to collaborate with others,&lt;/p&gt;

&lt;p&gt;Git was not used in the companies I  worked! &lt;br&gt;
Unlike him, who worked in places git was required!&lt;/p&gt;

&lt;p&gt;All the places I have worked never required usage of git.&lt;/p&gt;

&lt;p&gt;I tried to use git on my own, but its not just "&lt;strong&gt;gitting&lt;/strong&gt;" !&lt;br&gt;
 I could not practically “&lt;strong&gt;collaborate&lt;/strong&gt;” with my self.&lt;/p&gt;

&lt;p&gt;And this is what differentiates and classifies a lot of us into hierarchies !&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;OPPORTUNITY&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A lot of people don’t have the &lt;strong&gt;opportunity&lt;/strong&gt; you have,&lt;br&gt;
You probably won’t be this good if not for the chances you had to be where you are …&lt;/p&gt;

&lt;p&gt;A lot of people probably would have been better than you if they had a bit of the &lt;strong&gt;opportunity&lt;/strong&gt; you had.&lt;/p&gt;

&lt;p&gt;I know there are people that &lt;strong&gt;blow&lt;/strong&gt; opportunities, well it's their faults …..&lt;br&gt;
But a lot of people don’t even have any, if at all they want to blow them.&lt;/p&gt;

&lt;p&gt;When you think deeply,  you will discover this life is all about opportunities .&lt;/p&gt;

&lt;p&gt;"someone introduced you to"&lt;br&gt;
"someone adviced you to follow a particular route"&lt;br&gt;
"you came by it by chance"&lt;br&gt;
"your application was accepted"&lt;br&gt;
"you got the offer"&lt;/p&gt;

&lt;p&gt;When I think of how easily I use Git now, &lt;br&gt;
The various commands I have at my finger tips,&lt;br&gt;
Pushing, Pulling, Merging, Merge requests …&lt;/p&gt;

&lt;p&gt;I never stopped being grateful to those that gave me the opportunity, especially  the moonMan, This man is my hero.&lt;/p&gt;

&lt;p&gt;This post is not about GIT, but understanding how opportunities will make you better.&lt;/p&gt;

&lt;p&gt;A lot of people have acquired skills, but they are yet to get an opportunity to put their skills into real world test,&lt;br&gt;
just one right opportunity and the story changes for ever.&lt;/p&gt;

&lt;p&gt;To every developer out there, &lt;br&gt;
take that low paying offer today,&lt;br&gt;
Apply for that internship,&lt;br&gt;
Do that free work .. &lt;br&gt;
it’s gonna be an opportunity to be better !&lt;/p&gt;

&lt;p&gt;~amfstacks&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>programming</category>
      <category>software</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Life Lessons : The Fourth Passenger</title>
      <dc:creator>AJALA MAYOWA FELIX</dc:creator>
      <pubDate>Fri, 31 Dec 2021 08:20:31 +0000</pubDate>
      <link>https://dev.to/amfstacks/life-lessons-the-fourth-passenger-4in8</link>
      <guid>https://dev.to/amfstacks/life-lessons-the-fourth-passenger-4in8</guid>
      <description>&lt;p&gt;I have dropped the pen for a while but looking at the stacks of UN-shared life lessons and write ups !&lt;br&gt;
I have to share this and lighten the vessel .&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The fourth passenger&lt;/strong&gt; is borne out of a whole lot of personal and virtual experiences, I really hope y'all able to get the message !&lt;/p&gt;




&lt;p&gt;I boarded an "along" vehicle ,&lt;br&gt;
Four passengers are to be at the back seat.&lt;/p&gt;

&lt;p&gt;Though, I am very sure the back seat was originally designed to accommodate 3 passengers , but you know, prices of things have gone up!, even the drivers need to make ends meet and NURTW does not apparently care about the welfare of passengers&lt;br&gt;
(if at all they ever did).&lt;br&gt;
So they stuff the back seats with 4 passengers!&lt;/p&gt;

&lt;p&gt;Well, on this particular day,&lt;br&gt;
I was the third passenger,&lt;br&gt;
It was barely convenient for us even before &lt;strong&gt;the fourth passenger&lt;/strong&gt; joined us.&lt;/p&gt;

&lt;p&gt;The driver drove on with the hope of getting &lt;strong&gt;the fourth passenger&lt;/strong&gt; along the way.&lt;/p&gt;

&lt;p&gt;I could not contain the thought of a &lt;strong&gt;fourth passenger&lt;/strong&gt; joining us, it would be worse !&lt;/p&gt;

&lt;p&gt;So, I decided to pay for the &lt;strong&gt;fourth&lt;/strong&gt; (vacant) seat but I kept this plan to myself and stayed mute.&lt;/p&gt;

&lt;p&gt;Keeping mute is not so nice but cunningly smart …..&lt;br&gt;
You can't blame me too,&lt;br&gt;
We are all saving cost ! 😂.&lt;br&gt;
No one knew my intention of paying for the fourth seat, &lt;br&gt;
We kept moving !&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;This is the exact plan…&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I was actually waiting ….. to see if the driver would be able to make &lt;strong&gt;efforts&lt;/strong&gt; to find a &lt;strong&gt;fourth passenger&lt;/strong&gt; to shove to the back seat.&lt;/p&gt;

&lt;p&gt;You know, that would determine my next line of action .&lt;br&gt;
If he happens to find a &lt;strong&gt;fourth passenger&lt;/strong&gt;, then,&lt;br&gt;
I will reveal my intention of paying for the extra (fourth) seat 💺 ….. 😞!&lt;br&gt;
And If he does not find any, I will just "throway face" and continue to enjoy the "free-spaced" ride.!&lt;/p&gt;

&lt;p&gt;Well, …..&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;That's exactly how lot of things are in life !&lt;br&gt;
I have seen several life scenarios based exactly on this model!&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Lotta people are waiting to see&lt;br&gt;
&lt;strong&gt; "if you would make it"&lt;br&gt;
"If you could do it"&lt;br&gt;
"If you could achieve it"&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Before proffering their (long) "&lt;strong&gt;due&lt;/strong&gt;" responsibilities, duties, and help ….&lt;/p&gt;

&lt;p&gt;I have seen it played out a lot in life,&lt;br&gt;
Lot of people would only step in to help you, do the right thing they needed to have done, only when they discovered you have been able to pull through without their actions and or in-actions.&lt;/p&gt;

&lt;p&gt;Some people are denied their due benefits 'cause they were thought undeserving, or they have not made enough efforts.&lt;/p&gt;

&lt;p&gt;Some are waiting to see if you are "worth" it, or whether you deserved it according to their own criteria before giving it to you!&lt;/p&gt;

&lt;p&gt;As far as I was concerned ,&lt;br&gt;
The driver &lt;strong&gt;did not worth&lt;/strong&gt; getting paid for a passenger he has not found until he actually got one.&lt;/p&gt;

&lt;p&gt;Lot of people won't help you until you have made a positively resulted efforts.&lt;/p&gt;

&lt;p&gt;That's why your rich uncle or friend might not help you with your educational pursuit until you study hard and you graduate!&lt;br&gt;
You know, that's a point when you can actually do without their involvement!&lt;/p&gt;

&lt;p&gt;That's why your company won't promote you at the due time until you work so much on yourself till they see other companies bidding for you.&lt;/p&gt;

&lt;p&gt;In relationships,&lt;br&gt;
A lot of people don't value or rate their partners until their partners are valued by someone more than them!&lt;br&gt;
It's not like people really want to step in and assist you, they will only be forced to do so when they know you have grown to a level you can do without their so called assistance.&lt;/p&gt;

&lt;p&gt;Psychologically, some people find it easier to help those that don't actually need the help, than the actual needy ones !&lt;/p&gt;

&lt;p&gt;The baseline message is&lt;br&gt;
*&lt;em&gt;TRY,&lt;br&gt;
make EFFORTS ,&lt;br&gt;
Help yourself ,&lt;br&gt;
Build yourself *&lt;/em&gt;&lt;br&gt;
Try your best on your own without necessarily depending on a virtual or promised help anywhere!&lt;/p&gt;

&lt;p&gt;Lot of people would proffer lot of helps, advices , assistances when you are already up there, when you technically don't really need their assistance and you will just wonder where were all these before you got here !&lt;/p&gt;

&lt;p&gt;I can keep on with so many examples and (not personal) experiences ..&lt;/p&gt;

&lt;p&gt;I was a newbie on some stuffs , &lt;br&gt;
I really needed some one to just put me through but my supposed helper (maybe sincerely)was too busy! &lt;br&gt;
But he came back looking for me to help me when he knew I have been able to get them fixed!&lt;/p&gt;

&lt;p&gt;I needed a setup from a friend,&lt;br&gt;
He didn't give me, by the time he learnt I have made research and found an alternative and sure source of getting the same setup !&lt;br&gt;
He proffered the same aid I earlier requested!&lt;/p&gt;

&lt;p&gt;The company I worked with delayed my promotion but swept to action when they got the news of a bigger company fixing a virtual appointment meeting with me .&lt;/p&gt;

&lt;p&gt;A lot !&lt;br&gt;
Some scenarios are just too ridiculous!&lt;/p&gt;

&lt;p&gt;If you don't make (right) efforts to put your self up, No body will rate you !&lt;br&gt;
Make (right) efforts !&lt;br&gt;
Make efforts to get your &lt;strong&gt;fourth passenger&lt;/strong&gt; and you would be surprised at how many were &lt;strong&gt;willing&lt;/strong&gt; to pay for the fourth seat!&lt;br&gt;
The fourth passenger ~ amfstacks&lt;br&gt;
✍️🙏🏽&lt;/p&gt;

</description>
      <category>psychology</category>
      <category>motivation</category>
      <category>leadership</category>
      <category>career</category>
    </item>
    <item>
      <title>BrandEase - Stamp Your identity</title>
      <dc:creator>AJALA MAYOWA FELIX</dc:creator>
      <pubDate>Thu, 21 Oct 2021 14:06:33 +0000</pubDate>
      <link>https://dev.to/amfstacks/brandease-stamp-your-identity-3gah</link>
      <guid>https://dev.to/amfstacks/brandease-stamp-your-identity-3gah</guid>
      <description>&lt;p&gt;BrandEase -&lt;br&gt;
a free, easy-to-use application that makes it easy for you to protect your content and visual data, boost your integrity, reach a wider audience and stand out from the multitude of tons of data  that we come across everyday!&lt;/p&gt;

&lt;p&gt;In this digital age, data and content fly aimlessly about and all around us.&lt;br&gt;
It’s easy to download any free and unbranded data, and claim ownership.&lt;/p&gt;

&lt;p&gt;It’s usually difficult to track the original source of a lot of the wonderful visuals that we see, share and download.&lt;/p&gt;

&lt;p&gt;In fact, It’s not a game of the first to upload, but a game of the one with the biggest audience.&lt;/p&gt;

&lt;p&gt;I can re-upload your content and get more credit than you, who is the original source.&lt;br&gt;
In fact this is some people’s expertise.&lt;/p&gt;

&lt;p&gt;You see, lots of people don’t usually get  their deserved credit, because their contents were re-uploaded by a more influential individual.&lt;/p&gt;

&lt;p&gt;A lot of business owners find it difficult to convince and earn the trust of their customers because they (the customers) assume the images of their goods were just scraped online, just as the majority of online vendors do.&lt;/p&gt;

&lt;p&gt;A lot of people have no idea about the reach of their contents and data.&lt;br&gt;
They don’t know how far their contents have gone, simply because it’s not traceable to them!&lt;/p&gt;

&lt;p&gt;Some of my friends that sell bags, shoes, home made products, work as hair stylists and bake approached me. They complained about how difficult it was to put their logos and brands on their content.&lt;/p&gt;

&lt;p&gt;Apart from being a software developer, I take nice photographs. When I upload a really nice picture, people share my picture as if they were theirs.&lt;/p&gt;

&lt;p&gt;So, last December, I started building a branding application from scratch using the Flutter and Dart framework.&lt;br&gt;
I finished the first version in March, 2021 but I was not satisfied. I kept adding features till I felt minimally satisfied!&lt;/p&gt;

&lt;p&gt;In October, 2021 GooglePlay approved the first version of Brand Ease.&lt;/p&gt;

&lt;p&gt;Yippee!&lt;/p&gt;

&lt;p&gt;BrandEase is a free, easy-to-use application that makes it easy for you to protect your content and visual data, boost your integrity, reach a wider audience and stand out from the multitude of tons of data  that we come across everyday!&lt;/p&gt;

&lt;p&gt;Your brand is your identity, it keeps spreading as your data spreads&lt;/p&gt;

&lt;p&gt;Brand your data with BrandEase!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://play.google.com/store/apps/details?id=com.mayemsolutions.beaseui"&gt;https://play.google.com/store/apps/details?id=com.mayemsolutions.beaseui&lt;/a&gt;&lt;/p&gt;

</description>
      <category>flutter</category>
      <category>darklang</category>
      <category>uiweekly</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
