<?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: Ibekason Alexander</title>
    <description>The latest articles on DEV Community by Ibekason Alexander (@wizardom).</description>
    <link>https://dev.to/wizardom</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%2F571274%2Fb99cdc91-79fb-4d59-8871-aab5711396ab.jpg</url>
      <title>DEV Community: Ibekason Alexander</title>
      <link>https://dev.to/wizardom</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/wizardom"/>
    <language>en</language>
    <item>
      <title>My HNG 8 Mobile Development Internship</title>
      <dc:creator>Ibekason Alexander</dc:creator>
      <pubDate>Mon, 16 Aug 2021 12:36:30 +0000</pubDate>
      <link>https://dev.to/wizardom/my-hng-8-mobile-development-internship-1ikm</link>
      <guid>https://dev.to/wizardom/my-hng-8-mobile-development-internship-1ikm</guid>
      <description>&lt;p&gt;My name is Ibekason Alexander Onyebuchi. I am an IT support Engineer-turned-software engineer in Nigeria. &lt;br&gt;
My transition from being an IT support Engineer to a Software Engineer has hit a major upsurge with my new enrolment on HNG Internship.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is HNG Internship?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The &lt;a href="https://hng.tech/"&gt;HNG Internship&lt;/a&gt; is an ambitious attempt to change the way education is done in Africa. It’s the bridge between learning to code and becoming the best in the world.&lt;br&gt;
&lt;a href="https://cars.ng/"&gt;Cars.ng&lt;/a&gt; was a possibility as a result of HNG internship&lt;/p&gt;

&lt;p&gt;Before the HNG, I went through an interesting internship with the &lt;a href="https://zuri.team/"&gt;Zuri Team&lt;/a&gt; thanks to &lt;a href="https://ingressive.org/"&gt;Ingressive 4 Good&lt;/a&gt;. It was a necessary preparation for HNG Internship which I have been waiting for. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;My Goals for HNG8 Program&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;• To improve my software development skills&lt;br&gt;
• To have a better mental model of software development standards&lt;br&gt;
• To improve my team work abilities&lt;br&gt;
• To network with other amazing learners in this field.&lt;br&gt;
• To learn from the mentors &lt;/p&gt;

&lt;p&gt;At the end of the HNG internship, I would have acquired industry standard skills to push my career&lt;/p&gt;

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

&lt;ol&gt;
&lt;li&gt; Dart and Flutter&lt;/li&gt;
&lt;li&gt; Java and Spring Boot&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Some of the Important Tools necessary for this Internship&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Figma&lt;/strong&gt;&lt;br&gt;
Figma is a web-based design tool with real-time collaboration. It's like Craft Freehand but with all the features of Sketch (and more). It works in web browsers, and there are also native apps that let you work offline.&lt;br&gt;
&lt;a href="https://www.youtube.com/watch?v=1MbQaYCCzzI"&gt;Learn more About Figma&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GIT&lt;/strong&gt;&lt;br&gt;
Git is software for tracking changes in any set of files, usually used for coordinating work among programmers collaboratively developing source code during software development.&lt;br&gt;
&lt;a href="https://www.youtube.com/watch?v=dI_CUlVKrFw&amp;amp;list=PLxuUHF3OiqfVlhMh2XaA7gx_NaavKM7C9"&gt;Learn More About Git&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;HTML&lt;/strong&gt;&lt;br&gt;
HTML is the standard markup language for Web pages.&lt;br&gt;
With HTML you can create your own Website.&lt;br&gt;
&lt;a href="https://www.youtube.com/watch?v=uHyr8eHhjf0&amp;amp;list=PLxuUHF3OiqfWVlH5BTGUA9OboRF13Zyaj"&gt;More Resources.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Flutter&lt;/strong&gt;&lt;br&gt;
Flutter SDK is Google's UI toolkit for crafting beautiful, natively compiled applications for mobile, web, and desktop from a single codebase.&lt;br&gt;
&lt;a href="https://www.youtube.com/watch?v=cqM0kIq8_Kk&amp;amp;list=PLxuUHF3OiqfV1LZzpF3IqG0XORLQCt9AU"&gt;Learn more about Flutter&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Spring Boot&lt;/strong&gt;&lt;br&gt;
This is an open source Java-based framework used to build stand-alone and production ready spring applications.&lt;br&gt;
&lt;a href="https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/"&gt;Learn more about Spring Boot&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Remark&lt;/strong&gt;&lt;br&gt;
I am very grateful for the opportunity presented by HNG Internship, TheZuriTeam and Ingressive4Good. I am very happy to be part of this dream.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Using Dart Extensions to Decouple Mappers in Big Flutter Projects</title>
      <dc:creator>Ibekason Alexander</dc:creator>
      <pubDate>Tue, 03 Aug 2021 09:35:26 +0000</pubDate>
      <link>https://dev.to/wizardom/using-dart-extensions-to-decouple-mappers-in-big-flutter-projects-35fe</link>
      <guid>https://dev.to/wizardom/using-dart-extensions-to-decouple-mappers-in-big-flutter-projects-35fe</guid>
      <description>&lt;p&gt;Working on big flutter projects introduces lots of bottlenecks. The general method of creating entity mappers and json converters in entity classes are no longer the best approach when working on big projects. &lt;/p&gt;

&lt;p&gt;Typically, an entity class in big flutter projects may need to have several mappers to other classes as well as Json converters and/or other types of data. This introduces readability issues and presents difficulty when trying to refractor existing code. &lt;/p&gt;

&lt;p&gt;This is how a typical user class in many flutter project looks like&lt;/p&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;


&lt;p&gt;We can see lots of things are going on in this class. Removing or adding new fields may lead to lots of refactoring in this class and/or other classes. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Introduction Dart Extensions&lt;/strong&gt;&lt;br&gt;
From dart docs, Extension methods, introduced in Dart 2.7, are a way to add functionality to existing libraries.&lt;/p&gt;

&lt;p&gt;Dart extensions solves this problem by decoupling mappers and converters to a separate responsible class.&lt;/p&gt;

&lt;p&gt;Changes in User properties that affects mappers and converters will only be refactored in the decoupled mappers. &lt;/p&gt;

&lt;p&gt;Create a UserMapper class as this &lt;/p&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;


&lt;p&gt;Our User Entity is now simplified as this&lt;/p&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;


&lt;p&gt;With this better approach, changes will only be effected in our various mappers and will ensure a cleaner error-prone entity classes.&lt;/p&gt;

&lt;p&gt;Want to know more about Dart Extensions? &lt;/p&gt;

&lt;p&gt;&lt;a href="https://dart.dev/guides/language/extension-methods"&gt;Check out this dart documentation&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Thank you for your time :)&lt;/p&gt;

</description>
      <category>dart</category>
      <category>flutter</category>
    </item>
  </channel>
</rss>
