MOBILE DEVELOPMENT PLATFORMS. Software Architecture Patterns
Published: 2024-07-02 05:59:58

Introduction:
A Look into the world of Mobile app development: 
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.
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.

Mobile Development Platforms in use today:
-	Android Studio
-	Flutter
-	Ionic
-	React Native
-	Visual Studio
-	Xcode
This are just a few examples of the platforms mobile developers use, there are still many more.
Now, the software architectural patterns:
-	MVC
-	MVP
-	MVVM
-	Clean

1.	Model View Controller (MVC): 
Pros:
-	Simple Implementation: MVC architecture is simple to set up and start working with it. Getting familiar with it takes little to no time.
-	Widely used: Lots of mobile developers use this architecture so new developers can seek help from various people.
Cons:
-	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.
-	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.
2.	Model View Presenter (MVP):
Pros:
-	Unlike the MVP which its components might end up interdependent on the other, MVP is rather loose as the separation is clear.
-	More reliable tests: MVP allows for individual testing of components rather than the entire app all at once.
Cons:
-	MVP is more complex to set up and implement than MVC.
-	MVP requires far more code than MVC during production. It requires lots of efforts.
3.	Model View ViewModel (MVVM)
Pros:
-	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
-	As MVVM is able to separate into different parts, testing will be more reliable and effective.
Cons:
-	New developers are highly unlikely to understand MVVM from the get-go.
-	Different variations in the implementation of MVVM across platforms.
4.	Clean
Pros:
-	Can make changes on the go as it is easier to remove and add requirements.
-	Clean architecture is autonomous i.e. it is free of frameworks, databases etc.
Cons:
-	Extensive knowledge and experience are needed when implementing and using clean architecture.
-	More suitable for large applications. 

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.
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 
[Link](https://hng.tech/premium)


This post was inspired by 
[Link](https://hng.tech/internship)