DEV Community

mkaychuks
mkaychuks

Posted on

Mobile development platforms and the common software architecture

Taking a random sample among individuals in the society nowadays, 9 out of 10 have a mobile device and are actively using them. In this short article we will delve briefly into the different mobile development platforms and the common software of it. In today's emerging mobile phone operating system, we have two major contenders, iOS and Android and we will talk about the different development platforms for developing for these operating systems.

Native iOS Development

This is a technique used to develop apps and services solely for the iOS ecosystem, i.e the iphones and ipads. The primary technology stack used nowadays is SwiftUI, though initially UIKit, Objective-C was used. The pros are: high performant app, excellent developer support and strong integration with Apple's ecosystem. The con: Limited only to apple devices since it is the only target.

Native Android Development

This is a technique used to develop apps and services solely for the android ecosystem, i.e the android phones. The primary technology stack used nowadays is Jetpack Compose and Kotlin, though initially XML using Java or Kotlin was used. The pros are: high performant app, excellent developer support and strong integration with google android ecosystem. The con: Limited only to android devices since it is the only target.

Cross platform Development

This is a technique used to develop apps and services for both the iOS ecosystem and android ecosystem, i.e the iphones and ipads, and android phones. Some of the tech stack used are Flutter, React Native, Ionic The pros are: single codebase that targets both operating systems, faster development cycle and cost effective. The con: potential for lower performance, larger app size and limited access to native features.

Different architectures used

There are many architectural patterns used in mobile development, but we will talk about MVC, MVVM and Clean architecture. MVC stands for Model-View-Controller and the pros are separation of concerns, easy to manage and scale, the con: can become overly complex for large applications. MVVM stands for Model-View-ViewModel, the cons: Steeper learning curve, potential for excessive boilerplate code, the pros: Enhances separation of concerns, supports data binding, testable. Clean architecture the Pros: High maintainability, easy to test, clear separation of concerns. Cons: Complexity, longer initial development time.

HNG: the journey ahead

I am filled with a mix of excitement and determination. HNG offers a unique opportunity to work on real-world projects, collaborate with seasoned professionals, and enhance my skills in a practical environment. Thus providing an enabling environment to simulate and see how real tech work looks like out there. Choosing HNG was a no-brainer because there are numerous evidence to show that it is doable and there are results of people who passed through the program that are doing well for themselves today in tech

Top comments (0)