Exploring Mobile Development Platforms and Learning!

It’s great to write again. It has been a while!I just got off a freelancing gig so I had a larger amount of time to learn a little more so I decieded to join a nice famous gritty coding camp that’s the HNG. They also vett great African talent to hire HERE........which is pretty awesome! I want to share some insights into the world of mobile development platforms and the common software architecture patterns used in this field. Understanding these platforms and patterns is crucial for building robust, maintainable, and scalable mobile applications.

Mobile Development Platforms

  1. Native Development (iOS and Android)
    The oldest must trusted way is buidling individual codebases native to the particular platform being built. The two most common platforms are iOS by Apple and Android the open source system built by Google.
  • iOS (Swift/Objective-C): Developing native iOS applications provides access to the full range of features and performance optimizations offered by the iOS platform. Two languages can beused to build native applications on this platform; Swift and Objective — C. They are both geenral purpose langauages. Swift is the younger language and obviously has a better development experience and clearer syntax. Objective-C is heavily influenced by C and has a seasoned community of developers so it is still being used today in many legacy and currently running applications.

  • Android (Kotlin/Java): Native Android development offers flexibility and access to Android-specific features. Java and Kotlin are the most popular programming languages for native development. Java is the older language and has evolved over the years to a stable language used to write performant native code for Android. Kotlin is the new player. It improves development due to its expressive syntax, enhanced safety features, and concise code. It reduces boilerplate code, improves null safety, and supports functional programming, making it a versatile and efficient choice for building mordern and maintanable apps with an easier learning curve for on ramping developers. I’ll jot down some quick pro’s and con’s of this native approach

Pros:

  • You get specific acces to platform-specific APIs and hardware features that other cross platform approaches don’t have.

  • The fact that the code is natively compiled gives a larger performnce boost.

  • Strong community support and extensive libraries.

Cons:

  • The largest problem is obviously you’d have to have two seperate codebases for iOS and Android which will lead to higher development and maintenance costs.

  • It is also harder to on ramp developers as the learning curve of the languages is slightly steep

2. Cross-PlatformDevelopment

Cross-platform mobile development allows developers to create applications that run on multiple operating systems, such as iOS and Android, using a single codebase.

  • React Native: Developed by Facebook Native allows developers to build mobile apps using JavaScript and React. It provides some near-native performance and a unified codebase for both iOS and Android.

  • Flutter: Google’s Flutter uses the Dart language to build natively compiled applications. It offers a rich set of pre-designed widgets and fast development cycles with hot reload to be abl to see live changes during development very quickly.

Pros:

  • A unified codebase for both iOS and Android, reducing development time and costs.

  • Faster development and iteration with features like hot reload.

  • Growing community and extensive libraries.

Cons:

  • Potential performance overhead compared to native development.

  • Limited access to some platform-specific features and APIs.

  • Dependence on third-party libraries for certain functionalities.

My Journey with HNG Internship

As I begin my internship with HNG, I am excited to delve deeper into mobile development. The HNG Internship offers a unique blend of learning and hands-on experience, fostering a collaborative environment where I can grow both technically and professionally. I look forward to sharing my experiences and learnings along the way, and I am excited about the opportunities that lie ahead.