Mobile development platforms and the common software architecture
Published: 2024-06-28 17:38:03

---
title: Mobile development platforms and the common software architecture
published: true
description: 
tags: 
# cover_image: https://direct_url_to_image.jpg
# Use a ratio of 100:42 for best results.
# published_at: 2024-06-28 17:01 +0000
---

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](https://hng.tech/internship) 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](https://hng.tech/hire) 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