DEV Community

oreoluwa eniola
oreoluwa eniola

Posted on

MOBILE DEVELOPMENT PLATFORMS. Software Architecture Patterns

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

Top comments (0)