This content originally appeared on DEV Community and was authored by oreoluwa eniola
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
- 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.
- 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.
- 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.
- 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
This post was inspired by
Link
This content originally appeared on DEV Community and was authored by oreoluwa eniola