{"@attributes":{"version":"2.0"},"channel":{"title":"DEV Community: ibrahim Shehu","description":"The latest articles on DEV Community by ibrahim Shehu (@baksman).","link":"https:\/\/dev.to\/baksman","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%2F113644%2Fcc09ecaa-f129-43a3-bb59-299a05907913.jpg","title":"DEV Community: ibrahim Shehu","link":"https:\/\/dev.to\/baksman"},"language":"en","item":[{"title":"Nice","pubDate":"Sat, 04 Apr 2026 05:45:07 +0000","link":"https:\/\/dev.to\/baksman\/nice-1ga","guid":"https:\/\/dev.to\/baksman\/nice-1ga","description":"<div class=\"ltag__link--embedded\">\n  <div class=\"crayons-story \">\n  <a href=\"https:\/\/dev.to\/harshpdev\/swift-language-its-features-p0l\" class=\"crayons-story__hidden-navigation-link\">Swift Language &amp; its features<\/a>\n\n\n  <div class=\"crayons-story__body crayons-story__body-full_post\">\n    <div class=\"crayons-story__top\">\n      <div class=\"crayons-story__meta\">\n        <div class=\"crayons-story__author-pic\">\n\n          <a href=\"\/harshpdev\" class=\"crayons-avatar  crayons-avatar--l  \">\n            <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%2Fuser%2Fprofile_image%2F3348109%2Ffb6680e6-0730-4191-9968-c221b5b57ea2.png\" alt=\"harshpdev profile\" class=\"crayons-avatar__image\" width=\"96\" height=\"96\">\n          <\/a>\n        <\/div>\n        <div>\n          <div>\n            <a href=\"\/harshpdev\" class=\"crayons-story__secondary fw-medium m:hidden\">\n              Harsh Prajapat\n            <\/a>\n            <div class=\"profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block\">\n              \n                Harsh Prajapat\n                \n              \n              <div id=\"story-author-preview-content-2691277\" class=\"profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0\">\n                <div class=\"gap-4 grid\">\n                  <div class=\"-mt-4\">\n                    <a href=\"\/harshpdev\" class=\"flex\">\n                      <span class=\"crayons-avatar crayons-avatar--xl mr-2 shrink-0\">\n                        <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%2Fuser%2Fprofile_image%2F3348109%2Ffb6680e6-0730-4191-9968-c221b5b57ea2.png\" class=\"crayons-avatar__image\" alt=\"\" width=\"96\" height=\"96\">\n                      <\/span>\n                      <span class=\"crayons-link crayons-subtitle-2 mt-5\">Harsh Prajapat<\/span>\n                    <\/a>\n                  <\/div>\n                  <div class=\"print-hidden\">\n                    \n                      Follow\n                    \n                  <\/div>\n                  <div class=\"author-preview-metadata-container\"><\/div>\n                <\/div>\n              <\/div>\n            <\/div>\n\n          <\/div>\n          <a href=\"https:\/\/dev.to\/harshpdev\/swift-language-its-features-p0l\" class=\"crayons-story__tertiary fs-xs\"><time>Jul 15 '25<\/time><span class=\"time-ago-indicator-initial-placeholder\"><\/span><\/a>\n        <\/div>\n      <\/div>\n\n    <\/div>\n\n    <div class=\"crayons-story__indention\">\n      <h2 class=\"crayons-story__title crayons-story__title-full_post\">\n        <a href=\"https:\/\/dev.to\/harshpdev\/swift-language-its-features-p0l\" id=\"article-link-2691277\">\n          Swift Language &amp; its features\n        <\/a>\n      <\/h2>\n        <div class=\"crayons-story__tags\">\n        <\/div>\n      <div class=\"crayons-story__bottom\">\n        <div class=\"crayons-story__details\">\n          <a href=\"https:\/\/dev.to\/harshpdev\/swift-language-its-features-p0l\" class=\"crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left\">\n            <div class=\"multiple_reactions_aggregate\">\n              <span class=\"multiple_reactions_icons_container\">\n                  <span class=\"crayons_icon_container\">\n                    <img src=\"https:\/\/assets.dev.to\/assets\/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg\" width=\"24\" height=\"24\">\n                  <\/span>\n              <\/span>\n              <span class=\"aggregate_reactions_counter\">1<span class=\"hidden s:inline\">\u00a0reaction<\/span><\/span>\n            <\/div>\n          <\/a>\n            <a href=\"https:\/\/dev.to\/harshpdev\/swift-language-its-features-p0l#comments\" class=\"crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center\">\n              Comments\n\n\n              <span class=\"hidden s:inline\">Add\u00a0Comment<\/span>\n            <\/a>\n        <\/div>\n        <div class=\"crayons-story__save\">\n          <small class=\"crayons-story__tertiary fs-xs mr-2\">\n            9 min read\n          <\/small>\n            \n              <span class=\"bm-initial\">\n                \n\n              <\/span>\n              <span class=\"bm-success\">\n                \n\n              <\/span>\n            \n        <\/div>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/div>\n\n<\/div>\n\n\n"},{"title":"Solidity for busy developers","pubDate":"Wed, 04 May 2022 15:13:59 +0000","link":"https:\/\/dev.to\/baksman\/solidity-for-busy-developers-3f9","guid":"https:\/\/dev.to\/baksman\/solidity-for-busy-developers-3f9","description":"<p><strong>This article assumes you have a prior experience in programming ..(if you know how to use variables,functions and classes then you should be good to go).<\/strong><\/p>\n\n<p>After reading this tutorial you should be able to create a simple smart contract of your choice.<\/p>\n\n<p>According to the official <a href=\"https:\/\/docs.soliditylang.org\/en\/v0.8.13\" rel=\"noopener noreferrer\">documentation<\/a> <em>solidity  is an object-oriented, high-level  programming language for implementing smart contracts<\/em>.If you are new to web3 you might be wondering what the fun are  smart contracts??<br>\n<a href=\"https:\/\/media.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%2F6qadl7og7dtk7dkdzcg3.png\" class=\"article-body-image-wrapper\"><img src=\"https:\/\/media.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%2F6qadl7og7dtk7dkdzcg3.png\" alt=\"What is solidity\"><\/a><br>\nSmart contracts are simply <strong>programs<\/strong> stored on a <strong>blockchain<\/strong> that runs when predetermined conditions are met.Note they must be self executing computer program and should be stored on the blockchain(so no single party\/entity can control it).<br>\nSo let's start coding in solidity \ud83e\udd73.Wait!! what about IDE setup? the code editor we will be using is an online IDE called <a href=\"https:\/\/docs.soliditylang.org\/en\/v0.8.13\" rel=\"noopener noreferrer\">Remix<\/a> but feel free to use any other editor of your choice.<\/p>\n\n<ul>\n<li>\n<strong>Layout of solidity source file<\/strong>\nSolidity file ends in .sol and its required to add at the beginning file.\n<\/li>\n<\/ul>\n\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>\/\/SPDX-License-Identifier: MIT\n<\/code><\/pre>\n\n<\/div>\n\n\n\n<p>so the source code can can be made available openly.<\/p>\n\n<center>**Variables and Data types<br>**<\/center>\n\n<p><strong>Variables<br><\/strong><br>\nGenerally there are three types of variables in solidity<br>\nwhich are global,local,state variables.<\/p>\n\n<ul>\n<li>Global variables are variables built into solidity that can be accessed anywhere on the solidity source file. example includes\n<\/li>\n<\/ul>\n\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>msg.sender, tx.origin , block.timestamp\n<\/code><\/pre>\n\n<\/div>\n\n\n\n<ul>\n<li>Local variables are variables that are declared in a function e.g\n<\/li>\n<\/ul>\n\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>function name()public returns(uint){\n        uint age = 24;\n        return age; \n}\n<\/code><\/pre>\n\n<\/div>\n\n\n\n<p>Also note as declared above every statements ends with a semicolon and return types of every function must explicitly declare it return type unless it doesn't return any value.<\/p>\n\n<ul>\n<li>State variables are variables that are declared in a <a href=\"https:\/\/docs.soliditylang.org\/en\/v0.8.13\/introduction-to-smart-contracts.html#:~:text=A%20contract%20in%20the%20sense,unsigned%20integer%20of%20256%20bits\" rel=\"noopener noreferrer\">contract<\/a>,contracts are the solidity version of class defined by the contract keyword followed by the name of the contract.\n<\/li>\n<\/ul>\n\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>contract Ballot {\n}\n<\/code><\/pre>\n\n<\/div>\n\n\n\n<p><strong>Data types<br><\/strong><br>\nSolidity has numerous data types which are subdivided into two categories <em>referenced<\/em> types and <em>value<\/em> types.The <em>value<\/em> of <strong>value<\/strong> type is the actual value while the <em>value<\/em> of <strong>reference<\/strong> type is a reference to another value just like pionters in C++ and Go.<\/p>\n\n<div class=\"table-wrapper-paragraph\"><table>\n<thead>\n<tr>\n<th>Type<\/th>\n<th>keyword<\/th>\n<th>Description<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Adress<\/td>\n<td>address<\/td>\n<td>This is the data type for address (both contract and [EOA])(<a href=\"https:\/\/ethereum.stackexchange.com\/questions\/5828\/what-is-an-eoa-account)\/smart\" rel=\"noopener noreferrer\">https:\/\/ethereum.stackexchange.com\/questions\/5828\/what-is-an-eoa-account)\/smart<\/a> contract<\/td>\n<\/tr>\n<tr>\n<td>Boolean<\/td>\n<td>bool<\/td>\n<td>Can either be true\/false , the default value is false<\/td>\n<\/tr>\n<tr>\n<td>Unsigned integer<\/td>\n<td>uint(uint8,uint16...uint256)<\/td>\n<td>Can take only positive integers only.It has different variant ranges from uint8 to uint256 a step count of <em>8<\/em>\n<\/td>\n<\/tr>\n<tr>\n<td>integer<\/td>\n<td>int<\/td>\n<td>Can take both negative and positive value<\/td>\n<\/tr>\n<tr>\n<td>Array<\/td>\n<td>type<a href=\"\/\/e.g%20int[],string[]\"><\/a>\n<\/td>\n<td>Represent series of values<\/td>\n<\/tr>\n<tr>\n<td>Struct<\/td>\n<td>struct{}<\/td>\n<td>Used for modelling data in solidity(Stripped version of class without inheritance method.).They can contain value and referenced types as field.<\/td>\n<\/tr>\n<tr>\n<td>String<\/td>\n<td>string<\/td>\n<td>Hold string literal values.it is a referenced type<\/td>\n<\/tr>\n<tr>\n<td>Enum<\/td>\n<td>enum Name{val_1,val_2,val_3}<\/td>\n<td>A user-defined data type that consists of integral constants<\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/div>\n\n"},{"title":"Displaying snackbar in flutter while navigating","pubDate":"Sun, 17 Jan 2021 10:04:11 +0000","link":"https:\/\/dev.to\/baksman\/displaying-snackbar-in-flutter-while-navigating-con","guid":"https:\/\/dev.to\/baksman\/displaying-snackbar-in-flutter-while-navigating-con","description":"<p>The technologies\/tools that we will be using in this tutorial are<br>\nPc (windows,Mac,Linux) any one  you like to code in\ud83d\ude03<br>\n<a href=\"\/\/flutter.dev\">Flutter<\/a><br>\n<a href=\"https:\/\/code.visualstudio.com\">Vscode<\/a><br>\nAnd also I will be assuming you have Flutter  and Vscode already set up,so lets start<\/p>\n\n<p>Sometimes we wish to display a snackbar to our users while they navigate to a new route\/screen,a very good usecase of this is when auth token gets expired while users are using the application and we route them to login screen, we ought to show them a notification to signify that the application didn't malfunction,though snackbars are not the only form of notification\/popup we could give users in flutter  but its usually preferred because it doesn't take the focus of the user away from the app since it displays at the bottom of the screen.<br>\nThat seems easy right? the naive way is to call navigator then call the snackbar method just like this<\/p>\n\n<p><a href=\"https:\/\/res.cloudinary.com\/practicaldev\/image\/fetch\/s--KO7DQ_It--\/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880\/https:\/\/github.com\/Baksman\/KBook_IBRAHIMSHEHU\/blob\/master\/carbon%2520%282%29.png%3Fraw%3Dtrue\" class=\"article-body-image-wrapper\"><img src=\"https:\/\/res.cloudinary.com\/practicaldev\/image\/fetch\/s--KO7DQ_It--\/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880\/https:\/\/github.com\/Baksman\/KBook_IBRAHIMSHEHU\/blob\/master\/carbon%2520%282%29.png%3Fraw%3Dtrue\" alt=\"flutter\" width=\"880\" height=\"391\"><\/a><\/p>\n\n<p>If you run the code snippet above you will discover that it doesn't work, this is simply because we are calling Snackbar from a screen different from the context(previous screen) we gave to it.<br>\nThe next thing that might come into your mind is to call snackbar in the  login screen either in build or initstate method that wont work because at that point in time flutter is already rendering the widget tree and and internally flutter sees snackbar like a new screen trying to build a screen while building a screen ?? huhh?? It throws an error<br>\n<a href=\"https:\/\/res.cloudinary.com\/practicaldev\/image\/fetch\/s--B22Cd4kU--\/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880\/https:\/\/encrypted-tbn0.gstatic.com\/images%3Fq%3Dtbn:ANd9GcS69n7gAXFkY-GoLD_iqVcxZUgg8lBdv3tkcA%26usqp%3DCAU\" class=\"article-body-image-wrapper\"><img src=\"https:\/\/res.cloudinary.com\/practicaldev\/image\/fetch\/s--B22Cd4kU--\/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880\/https:\/\/encrypted-tbn0.gstatic.com\/images%3Fq%3Dtbn:ANd9GcS69n7gAXFkY-GoLD_iqVcxZUgg8lBdv3tkcA%26usqp%3DCAU\" alt=\"image\" width=\"195\" height=\"258\"><\/a><\/p>\n\n<h1>\n  \n  \n  WidgetsBinding to the rescue\n<\/h1>\n\n<p>What this widget simply does is that it waits for  flutter to finish rendering before calling the function wrapped iniside of it, So we can add the code below to either initState or  build method to the screen we are navigating to<br>\n<a href=\"https:\/\/res.cloudinary.com\/practicaldev\/image\/fetch\/s--_m8dIWnO--\/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880\/https:\/\/github.com\/Baksman\/KBook_IBRAHIMSHEHU\/blob\/master\/carbon%2520%283%29.png%3Fraw%3Dtrue\" class=\"article-body-image-wrapper\"><img src=\"https:\/\/res.cloudinary.com\/practicaldev\/image\/fetch\/s--_m8dIWnO--\/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880\/https:\/\/github.com\/Baksman\/KBook_IBRAHIMSHEHU\/blob\/master\/carbon%2520%283%29.png%3Fraw%3Dtrue\" alt=\"Flutter\" width=\"880\" height=\"307\"><\/a><br>\nDone !!<\/p>\n\n","category":["flutter","dart","android","ios"]},{"title":"How to learn flutter for free in 2020","pubDate":"Mon, 23 Mar 2020 09:45:58 +0000","link":"https:\/\/dev.to\/baksman\/how-to-learn-flutter-for-free-in-2020-gil","guid":"https:\/\/dev.to\/baksman\/how-to-learn-flutter-for-free-in-2020-gil","description":"<p>As flutter grows in popularity it also becomes more confusing on how\/where to start learning flutter because more courses,blogs and videos are made for it,even youtube gets littered with many flutter tutorials, so based on my 4 years of experience  in flutter I will be enlisting some useful youtube channels<\/p>\n\n<p>1.Smartherd channel on youtube:<br>\nIMHO this the first place every noob flutter developer should go to, he first of all walked through Dart language which flutter uses , before doing a little project on a TODO app <br>\n<a href=\"https:\/\/www.youtube.com\/user\/smartherd\">https:\/\/www.youtube.com\/user\/smartherd<\/a><\/p>\n\n<p>2.MtechViral channel on youtube:<br>\nFor me this is the most active flutter channel on youtube , He releases videos almost every week,Infact this guy is awesome and he has some good content in his channel and he has been helping the flutter community since day one,make sure you check his videos out.He also has an active group on facebook named \"lets flutter with dart\" that has been helping a lot of flutter developers<br>\n<a href=\"https:\/\/www.youtube.com\/channel\/UCFTM1FGjZSkoSPDZgtbp7hA\">https:\/\/www.youtube.com\/channel\/UCFTM1FGjZSkoSPDZgtbp7hA<\/a><\/p>\n\n<p>3.Techie Blossom channel:<br>\nIn fact apart from being cross platform flutter is best known for its beautiful UI  and easy to implement animation, this guy always tries to bring out what flutter is best known for,  have learnt a lot of UI designs and animations in flutter from him, make sure you check this channel out i bet you will love it.<br>\n<a href=\"https:\/\/www.youtube.com\/channel\/UC3wqIkiaOUpO6EjJoCwH6_Q\">https:\/\/www.youtube.com\/channel\/UC3wqIkiaOUpO6EjJoCwH6_Q<\/a><\/p>\n\n<p>4.Tensor programming :<br>\nThis channel contains video from an experienced polyglot software engineer that  mostly deals with the logic part of flutter he doesnt focus that much on UI, I must confess i learnt most what I know today as a flutter developer from him, i will encourage every flutter developer both noob and experienced to subscribe to his youtube channel.<br>\n<a href=\"https:\/\/www.youtube.com\/channel\/UCYqCZOwHbnPwyjawKfE21wg\">https:\/\/www.youtube.com\/channel\/UCYqCZOwHbnPwyjawKfE21wg<\/a><\/p>\n\n<p>5.Filled Stack channel:<br>\nSince state management is one of the most debated topic in flutter, this channel will teach you how to architect your flutter application using MVVM architecture, Provider state managements and getit for dependency injection, He's a great guy, so many people have been using his architectural style in flutter due to its simplicity and robustness<br>\n<a href=\"https:\/\/www.youtube.com\/channel\/UC2d0BYlqQCdF9lJfydl_02Q\">https:\/\/www.youtube.com\/channel\/UC2d0BYlqQCdF9lJfydl_02Q<\/a><\/p>\n\n<p>6.Reso coder channel:<br>\nTo be honest this is the best channel for flutter on youtube though it maybe subjective, as he always says in his videos \"his mission his to make his viewers in demand flutter developers\",hes not just saying that, he has a 7 hours course on TDD and currently releasing a Domain driven design course in flutter all for free, This channel is for every flutter developer there are  lot of things to  learn there.<br>\n<a href=\"https:\/\/www.youtube.com\/channel\/UCSIvrn68cUk8CS8MbtBmBkA\">https:\/\/www.youtube.com\/channel\/UCSIvrn68cUk8CS8MbtBmBkA<\/a><\/p>\n\n<p>7.Flutter channel:<br>\nThis is the official flutter channel on youtube,It is a must subscribe for every flutter developer , Most flutter announcements and updates are first published there and I enjoy the widget of the week series and its \" flutter boring show\" series.<br>\n<a href=\"https:\/\/www.youtube.com\/channel\/UCwXdFgeE9KYzlDdR7TG9cMw\">https:\/\/www.youtube.com\/channel\/UCwXdFgeE9KYzlDdR7TG9cMw<\/a><\/p>\n\n","category":"flutter"}]}}