<?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: Cephas Arowolo Oluwadamilola</title>
    <description>The latest articles on DEV Community by Cephas Arowolo Oluwadamilola (@cephasarowolo).</description>
    <link>https://dev.to/cephasarowolo</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%2F687137%2Ffba6f48d-8fde-4c0f-a2b9-2d3885a23be9.jpeg</url>
      <title>DEV Community: Cephas Arowolo Oluwadamilola</title>
      <link>https://dev.to/cephasarowolo</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/cephasarowolo"/>
    <language>en</language>
    <item>
      <title>Architectural Patterns In Mobile Development</title>
      <dc:creator>Cephas Arowolo Oluwadamilola</dc:creator>
      <pubDate>Sat, 29 Jun 2024 08:37:04 +0000</pubDate>
      <link>https://dev.to/cephasarowolo/architectural-patterns-in-mobile-development-3f3b</link>
      <guid>https://dev.to/cephasarowolo/architectural-patterns-in-mobile-development-3f3b</guid>
      <description>&lt;p&gt;Starting from early button laden phones developed by companies like motorola and nokia to more modern touch screen phones developed by Apple back in 2007, development on those devices always follow a architectural pattern. According to &lt;a href="https://en.wikipedia.org/wiki/Software_architecture"&gt;Wikipedia&lt;/a&gt;, software architecture has its roots in the late 1970s but it was till the early 2000s before they really started to be used. In this post, we will be going over the common architectural patterns used in mobile development, touching on their pros and cons while giving instances when each of them should be used. More specifically, we will be looking into the &lt;strong&gt;Model View Controller (MVC)&lt;/strong&gt;  Architecture, the &lt;strong&gt;Model View Presenter (MVP)&lt;/strong&gt;  Architecture and the &lt;strong&gt;Model View View Model (MVVM)&lt;/strong&gt; Architecture.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Model View Controller (MVC)&lt;/strong&gt;&lt;br&gt;
This architecture divides an application into three interacting parts as the name implies, the Model, the View and the Controller.&lt;br&gt;
&lt;strong&gt;-Model:&lt;/strong&gt;&lt;br&gt;
This holds the data to be displayed to the user. This is the part that is mostly used to interact with the database&lt;br&gt;
&lt;strong&gt;-View:&lt;/strong&gt;&lt;br&gt;
This displays the data gotten from the model to the end user as the name implies.&lt;br&gt;
&lt;strong&gt;-Controller:&lt;/strong&gt;&lt;br&gt;
This is what connects the model to the view. This accepts input data from the view, processes it and sends it to the model while returning the proccessed information to the view.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Advantages of MVC architecture:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Very fast developement speed.&lt;/li&gt;
&lt;li&gt;Easy debugging and bug fixing speed as it is very easy to track down where an issue might be occuring.&lt;/li&gt;
&lt;li&gt;Makes it easier to make changes and update the application.&lt;/li&gt;
&lt;li&gt;Makes writing of tests easier as there is separation of logic.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Disadvantages of MVC architecture:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;It is hard to understand the MVC architecture.&lt;/li&gt;
&lt;li&gt;Must have strict rules on methods&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;2. Model View Presenter (MVP)&lt;/strong&gt;&lt;br&gt;
This is similar to the MVC architecture but for a simple difference, the presenter takes over a lot of the View responsibilites. Accepting of input, choosing when to display it, etc are all managed by the Presenter here. The View only function is to display that data. No logic of any sort goes on in the View layer. The &lt;strong&gt;advantages&lt;/strong&gt; are similar to the MVC advantages.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Disadvantages of MVP architecture:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;More harder to learn and use than the MVC architecture&lt;/li&gt;
&lt;li&gt;Not suitable for small and simple apps.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;2. Model View View Model (MVVM) Architecture&lt;/strong&gt;&lt;br&gt;
MVVM is the most used architecture in mobile developement.This is very similar to MVC and can be confused with it sometimes. The difference is the view model allows for two way coomunication between the view and the model while MVC only allows for one way communication. Also while there is always a single controller for multiple views in MVC, in MVVM, each views has its own viewmodel which exposes methods for it to communicate directly with the model. The advantages and disavantages are very similar to the MVC ones except for the caveat that its more complex to use and manage than the MVC architecture.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Moving On&lt;/strong&gt;&lt;br&gt;
Selecting the best architecture to use is a process of its own. This highly depends on the complexity of the project, the application functions, the organization vision and even the developer's experience level. As a beginner, all this can be overwhelming which is why HNG is providing hands on experience to bring a beginners level up to where they would be able to comfortably choose what architecture they should use. If you are intrested in participating, then head over to &lt;a href="https://hng.tech/internship"&gt;https://hng.tech/internship&lt;/a&gt; to get started. If you are also looking to hire experienced devs. Then head over to &lt;a href="https://hng.tech/hire"&gt;https://hng.tech/hire&lt;/a&gt; to get your fit.&lt;/p&gt;

</description>
      <category>mobile</category>
      <category>android</category>
      <category>ios</category>
      <category>programming</category>
    </item>
    <item>
      <title>The Difference Between Web 2.0 and Web 3.0</title>
      <dc:creator>Cephas Arowolo Oluwadamilola</dc:creator>
      <pubDate>Wed, 02 Mar 2022 22:35:11 +0000</pubDate>
      <link>https://dev.to/cephasarowolo/the-difference-between-web-20-and-web-30-2ppn</link>
      <guid>https://dev.to/cephasarowolo/the-difference-between-web-20-and-web-30-2ppn</guid>
      <description>&lt;p&gt;The &lt;strong&gt;World Wide Web (WWW)&lt;/strong&gt; was launched in 1991, but it wasn't until nearly 15 years later that a more robust interaction was introduced. This interaction allowed users to get more involved with websites and with each other, which is a primary function of &lt;strong&gt;Web 2.0&lt;/strong&gt;. Users could upload and download information, as well as use tools like blogs, wikis, podcasts, social networking sites, video sharing sites, mashups (applications or websites that combine data from more than one source into an integrated experience), folksonomies (user-generated tags used to categorize content), and hosted services (applications provided by an external provider). This system is the current version of the internet that most of us are familiar with. Fast forward some to the present day, a new interation of the world wide web is available and it is known as &lt;strong&gt;Web 3.0&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  WEB3 BENEFITS
&lt;/h2&gt;

&lt;p&gt;Web 3, the decentralized web, is a huge improvement over Web 2. Just like Web 2 was a huge improvement over Web 1. The benefits include but not limited to the following:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Full Ownership of Personal Information or Data&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Uninterrupted Usage&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;No censorship or denial of access to the service&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;No server downtime as it uses a decentralized network of computers as the backend&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Differences between Web 2.0 and Web 3.0
&lt;/h2&gt;

&lt;p&gt;Below, we list some of the notable differences between the two iterations of the world wide web, Web 2.0 and Web 3.0.&lt;/p&gt;

&lt;p&gt;1.&lt;strong&gt;Definition&lt;/strong&gt;&lt;br&gt;
The definitions of web 2.0 and web 3.0 are one of the most important aspects to consider while answering the question "What is the difference between web 2.0 and web 3.0?".&lt;br&gt;
Web 2.0 is the second generation of internet services that enables read and write functionalities. On the other hand, Web 3.0 is the third generation of the web which focuses on enabling better communication and understanding between users and machines on decentralized infrastructures. &lt;/p&gt;

&lt;p&gt;2.&lt;strong&gt;Use Case&lt;/strong&gt;&lt;br&gt;
Web 2.0 focused on enabling users to interact with content on the internet. It does this well by the use of tools like blogs, wikis, podcasts, social networking sites, video sharing sites, e.t.c to facilitate the easy interaction and sharing of data. Web 3.0, on the other hand, encourages users to become active contributors to the internet's content. It does this by the use of DApps hosted on decentralized systems as opposed to the centralized systems used by Web 2.0&lt;/p&gt;

&lt;p&gt;3.&lt;strong&gt;Technologies Used&lt;/strong&gt;&lt;br&gt;
Web 2.0 has been instrumental in the creation of numerous new technologies. AJAX and JavaScript are two important technologies that have fueled the expansion of web 2.0. In addition, the dominance of CSS3 and HTML5 among the technologies enabling Web 2.0 can be seen in daily interactions by the user. On the other end of the spectrum, AI, semantic web, and decentralized protocols are among the primary technologies that constitute the basis of web 3.0.&lt;/p&gt;

&lt;p&gt;4.&lt;strong&gt;Features&lt;/strong&gt;&lt;br&gt;
Web 2.0 improves interactivity while also introducing a diverse set of web apps. Furthermore, it is reliant on interactive advertising.Web 3.0, on the other hand, is built on behavioral marketing and includes intelligent web-based features and applications. In reality, web 3.0 is an excellent example of how web technology and knowledge representation may be combined.&lt;/p&gt;

&lt;p&gt;5.&lt;strong&gt;Data Management&lt;/strong&gt;&lt;br&gt;
The condition of data is also a significant aspect in the distinctions between web 2.0 and web 3.0. In the context of web 2.0, the data is owned by the network. Web 3.0, on the other hand, implies an entity's ownership of data as well as the ability to share data across the network. In other words, a user has full control over his/her data in web 3 while the centralized entity has more control in web 2. &lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;In the web 2.0 versus web 3.0 comparison, this clear assessment demonstrates how web 3.0 offers more benefits than web 2.0. It demonstrates a promising architecture that is required for human-machine interaction. The most significant aspect of web 3.0 is that it improves security, trust, and privacy. Many people refer to web 3.0 as the "decentralized web," because it will rely heavily on decentralized protocols. Web 2.0, on the other hand, is still the foundation for many of the web apps we use today. Is it possible that web 3.0 will transform the popular programs you use today? Learn about web 3.0 and make your own conclusions by signing up for the 8 week program organized by &lt;a href="https://nestcoin.com/"&gt;Nestcoin&lt;/a&gt; in partnership with &lt;a href="https://zuri.team/"&gt;Zuri Team&lt;/a&gt;. Don't be left behind, sign up now for &lt;a href="https://blockgames.gg/"&gt;Blockgames&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>blockchain</category>
      <category>web3</category>
      <category>www</category>
      <category>web2</category>
    </item>
    <item>
      <title>HNG 8.0 Internship: The Beginning Of My Developer Journey  </title>
      <dc:creator>Cephas Arowolo Oluwadamilola</dc:creator>
      <pubDate>Mon, 16 Aug 2021 17:57:10 +0000</pubDate>
      <link>https://dev.to/cephasarowolo/hng-8-0-internship-the-beginning-of-my-developer-journey-32m8</link>
      <guid>https://dev.to/cephasarowolo/hng-8-0-internship-the-beginning-of-my-developer-journey-32m8</guid>
      <description>&lt;p&gt;Aa a mobile developer, my dream has always been to work at a top silicon valley company, this HNG internship will serve as a stepping stone to achieving my goal, The HNG internship is a 3-month remote internship with over ten thousands participants from several countries. I signed up for the training after completing a former internship targeted at beginners. The Program started officially yesterday. The program has different tracks for different specialization of study. I signed up for the Backend Track but i am also doing the Mobile Track as I am a mobile developer.&lt;/p&gt;

&lt;p&gt;My goals for this 3 months internship training are as follows:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Become better at what i do (Mobile Development).&lt;/li&gt;
&lt;li&gt;Learn new technologies (Backend Development With Go).&lt;/li&gt;
&lt;li&gt;Improve My Communications Skills.&lt;/li&gt;
&lt;li&gt;Learn to work in a team.&lt;/li&gt;
&lt;li&gt;Gain experience.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;In this few weeks of this HNG internship, I am confident that I will be able to achieve what I have listed above. Also I hope to have new projects to add to my little collection of projects so I will be able to make it into the developers job market easily. Also, I will try my ultimate best to update this blog everyday about my progress in the internship.&lt;/p&gt;

&lt;p&gt;Throughout this training, my skills with Figma, version control(Git), Java/Kotlin and Golang will be tried extensively. So therefore i will list some tutorials that should be helpful for full beginners developers. They are:&lt;/p&gt;

&lt;p&gt;Git: &lt;/p&gt;
&lt;div class="ltag__link"&gt;
  &lt;a href="https://medium.com/chaya-thilakumara/an-introduction-to-git-for-beginners-c97e701cecf9" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Wu7qEbHI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://miro.medium.com/max/72/1%2AwFVHKgHvzRFmDbjw_PXo1g.png" alt="Chaya Thilakumara"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="https://medium.com/chaya-thilakumara/an-introduction-to-git-for-beginners-c97e701cecf9" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;An Introduction to Git for Beginners | by Chaya Thilakumara | Chaya Thilakumara | Medium&lt;/h2&gt;
      &lt;h3&gt;Chaya Thilakumara ・ &lt;time&gt;Mar 15, 2021&lt;/time&gt; ・ 
      &lt;div class="ltag__link__servicename"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ze5yh_2q--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/medium_icon-90d5232a5da2369849f285fa499c8005e750a788fdbf34f5844d5f2201aae736.svg" alt="Medium Logo"&gt;
        Medium
      &lt;/div&gt;
    &lt;/h3&gt;
&lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


&lt;p&gt;Figma : &lt;/p&gt;
&lt;div class="ltag__link"&gt;
  &lt;a href="https://medium.com/figma-africa/getting-started-in-design-with-figma-3530471ab564" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--MpMBfAqn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://miro.medium.com/fit/c/96/96/1%2A34qcDiSWtwO-qj8E7ZDN8w.jpeg" alt="Joseph Kiipo"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="https://medium.com/figma-africa/getting-started-in-design-with-figma-3530471ab564" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;Getting started in design with Figma. | by Joseph Kiipo | Friends of Figma Lagos | Medium&lt;/h2&gt;
      &lt;h3&gt;Joseph Kiipo ・ &lt;time&gt;Sep 5, 2018&lt;/time&gt; ・ 
      &lt;div class="ltag__link__servicename"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ze5yh_2q--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/medium_icon-90d5232a5da2369849f285fa499c8005e750a788fdbf34f5844d5f2201aae736.svg" alt="Medium Logo"&gt;
        Medium
      &lt;/div&gt;
    &lt;/h3&gt;
&lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


&lt;p&gt;Kotlin : &lt;/p&gt;
&lt;div class="ltag__link"&gt;
  &lt;a href="https://medium.com/android-dev-hacks/kotlin-guide-for-beginners-5ba6018b5368" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--leXnmsJY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://miro.medium.com/fit/c/96/96/2%2AFpw_F0e8fbA1L2LmGv9Y9g.jpeg" alt="Satya Pavan Kantamani"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="https://medium.com/android-dev-hacks/kotlin-guide-for-beginners-5ba6018b5368" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;Kotlin Guide for Beginners. Are you ready to learn Kotlin? | by Satya Pavan Kantamani | Programming Geeks | Medium&lt;/h2&gt;
      &lt;h3&gt;Satya Pavan Kantamani ・ &lt;time&gt;Aug 2, 2020&lt;/time&gt; ・ 
      &lt;div class="ltag__link__servicename"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ze5yh_2q--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/medium_icon-90d5232a5da2369849f285fa499c8005e750a788fdbf34f5844d5f2201aae736.svg" alt="Medium Logo"&gt;
        Medium
      &lt;/div&gt;
    &lt;/h3&gt;
&lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


&lt;p&gt;Java :&lt;/p&gt;
&lt;div class="ltag__link"&gt;
  &lt;a href="https://medium.com/@madhupathy/a-beginners-guide-to-java-part-1-of-3-33edf47e47b4" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--WOKRfMEQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://miro.medium.com/fit/c/56/56/1%2AW9svYrq3_HPckFGz2EUJyg.jpeg" alt="Madhu Pathy"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="https://medium.com/@madhupathy/a-beginners-guide-to-java-part-1-of-3-33edf47e47b4" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;A Beginner’s Guide to Java: Part 1 of 4 | by Madhu Pathy | Medium&lt;/h2&gt;
      &lt;h3&gt;Madhu Pathy ・ &lt;time&gt;Jun 20, 2018&lt;/time&gt; ・ 
      &lt;div class="ltag__link__servicename"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ze5yh_2q--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/medium_icon-90d5232a5da2369849f285fa499c8005e750a788fdbf34f5844d5f2201aae736.svg" alt="Medium Logo"&gt;
        Medium
      &lt;/div&gt;
    &lt;/h3&gt;
&lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


&lt;p&gt;Golang: &lt;/p&gt;
&lt;div class="ltag__link"&gt;
  &lt;a href="https://medium.com/rungo/go-introductory-tutorials-896aeda0fb8a" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--wI39w-GG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://miro.medium.com/fit/c/96/96/1%2ATTgs9ngHOsnHNvTo0L4mxA.jpeg" alt="Uday Hiwarale"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="https://medium.com/rungo/go-introductory-tutorials-896aeda0fb8a" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;Go Introductory Tutorials. A list of tutorials to understand Go… | by Uday Hiwarale | RunGo | Medium&lt;/h2&gt;
      &lt;h3&gt;Uday Hiwarale ・ &lt;time&gt;Aug 16, 2020&lt;/time&gt; ・ 
      &lt;div class="ltag__link__servicename"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ze5yh_2q--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/medium_icon-90d5232a5da2369849f285fa499c8005e750a788fdbf34f5844d5f2201aae736.svg" alt="Medium Logo"&gt;
        Medium
      &lt;/div&gt;
    &lt;/h3&gt;
&lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


&lt;p&gt;This Internship is organized by the ZURI Team &lt;a href="https://training.zuri.team"&gt;https://training.zuri.team&lt;/a&gt; this year and i totally recommend it for all developers. &lt;/p&gt;

</description>
      <category>android</category>
      <category>java</category>
      <category>go</category>
      <category>kotlin</category>
    </item>
  </channel>
</rss>
