<?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: oreoluwa eniola</title>
    <description>The latest articles on DEV Community by oreoluwa eniola (@oreoluwa_eniola_eaa58bdf3).</description>
    <link>https://dev.to/oreoluwa_eniola_eaa58bdf3</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%2F1715261%2Feb37f539-c5d9-41b9-b2be-0cca4690fe22.png</url>
      <title>DEV Community: oreoluwa eniola</title>
      <link>https://dev.to/oreoluwa_eniola_eaa58bdf3</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/oreoluwa_eniola_eaa58bdf3"/>
    <language>en</language>
    <item>
      <title>MOBILE DEVELOPMENT PLATFORMS. Software Architecture Patterns</title>
      <dc:creator>oreoluwa eniola</dc:creator>
      <pubDate>Tue, 02 Jul 2024 05:59:58 +0000</pubDate>
      <link>https://dev.to/oreoluwa_eniola_eaa58bdf3/mobile-development-platforms-software-architecture-patterns-24k4</link>
      <guid>https://dev.to/oreoluwa_eniola_eaa58bdf3/mobile-development-platforms-software-architecture-patterns-24k4</guid>
      <description>&lt;p&gt;Introduction:&lt;br&gt;
A Look into the world of Mobile app development: &lt;br&gt;
As the mobile world is growing, changes are following suit. Platforms are expanding, architecture patterns becoming the conventional norm. Extensive knowledge of both with great technical skills is much needed by a mobile developer before starting a project.&lt;br&gt;
Lots of different platforms and architecture patterns are in use today, I will briefly talk about them and give their pros and cons so as to better understand where the strength and weaknesses of each lie.&lt;/p&gt;

&lt;p&gt;Mobile Development Platforms in use today:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Android Studio&lt;/li&gt;
&lt;li&gt;  Flutter&lt;/li&gt;
&lt;li&gt;  Ionic&lt;/li&gt;
&lt;li&gt;  React Native&lt;/li&gt;
&lt;li&gt;  Visual Studio&lt;/li&gt;
&lt;li&gt;  Xcode
This are just a few examples of the platforms mobile developers use, there are still many more.
Now, the software architectural patterns:&lt;/li&gt;
&lt;li&gt;  MVC&lt;/li&gt;
&lt;li&gt;  MVP&lt;/li&gt;
&lt;li&gt;  MVVM&lt;/li&gt;
&lt;li&gt;  Clean&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt; Model View Controller (MVC): 
Pros:&lt;/li&gt;
&lt;li&gt;  Simple Implementation: MVC architecture is simple to set up and start working with it. Getting familiar with it takes little to no time.&lt;/li&gt;
&lt;li&gt;  Widely used: Lots of mobile developers use this architecture so new developers can seek help from various people.
Cons:&lt;/li&gt;
&lt;li&gt;  Dependency: There are 3 different components in MVC (Model, View, Controller), sometimes a component might depend on another and it gets coupled together until it gets what it wants.&lt;/li&gt;
&lt;li&gt;  As you have 3 components, files will be made for each component, imagine building a large application and you have to create functions for each component.&lt;/li&gt;
&lt;li&gt; Model View Presenter (MVP):
Pros:&lt;/li&gt;
&lt;li&gt;  Unlike the MVP which its components might end up interdependent on the other, MVP is rather loose as the separation is clear.&lt;/li&gt;
&lt;li&gt;  More reliable tests: MVP allows for individual testing of components rather than the entire app all at once.
Cons:&lt;/li&gt;
&lt;li&gt;  MVP is more complex to set up and implement than MVC.&lt;/li&gt;
&lt;li&gt;  MVP requires far more code than MVC during production. It requires lots of efforts.&lt;/li&gt;
&lt;li&gt; Model View ViewModel (MVVM)
Pros:&lt;/li&gt;
&lt;li&gt;  Just like the MVP, MVVM also divides the app to different parts so a part can be updated or changed without affecting the entire app&lt;/li&gt;
&lt;li&gt;  As MVVM is able to separate into different parts, testing will be more reliable and effective.
Cons:&lt;/li&gt;
&lt;li&gt;  New developers are highly unlikely to understand MVVM from the get-go.&lt;/li&gt;
&lt;li&gt;  Different variations in the implementation of MVVM across platforms.&lt;/li&gt;
&lt;li&gt; Clean
Pros:&lt;/li&gt;
&lt;li&gt;  Can make changes on the go as it is easier to remove and add requirements.&lt;/li&gt;
&lt;li&gt;  Clean architecture is autonomous i.e. it is free of frameworks, databases etc.
Cons:&lt;/li&gt;
&lt;li&gt;  Extensive knowledge and experience are needed when implementing and using clean architecture.&lt;/li&gt;
&lt;li&gt;  More suitable for large applications. &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;My name is Olaniyan Eniola and I’m an aspiring mobile developer. I have worked with Java, Kotlin, Flutter on projects I was opportune to get my hands on since I started this journey and so far, it’s been full of ups and downs but that’s what makes it interesting.&lt;br&gt;
I would like to see how far the journey with HNG will take me, the skills I would acquire to further my career, the hands-on experience, networking of like minds etc. these are just more reasons I am participating in the internship. If all goes well, I would go for a premium account &lt;br&gt;
&lt;a href="https://hng.tech/premium"&gt;Link&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This post was inspired by &lt;br&gt;
&lt;a href="https://hng.tech/internship"&gt;Link&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
