The cross-platform framework offers the best of both worlds

Photo by James Wainscoat on Unsplash.

As an iOS developer, even the thought of implementing apps in a cross-platform framework gives me the chills. I remember attending countless meetings in which I argued that going native was the best choice. Unfortunately, most of the time, companies went with Xamarin, Sencha, or even some unknown framework from IBM.

In order to truly understand the problem, you have to look at it from both sides. In this article, I will discuss how a cross-platform framework like Flutter can be an excellent choice for most companies.

User Interface Widgets

Flutter is written from the ground up. Unlike React Native and Xamarin, Flutter does not pay any toll when communicating with the native world. This means that every single control/widget in iOS and Android is created from scratch in the Flutter framework. This allows Flutter to run at 60 FPS and provide a great user experience. …

Making navigating between screens in different states easier

An empty road
An empty road
Give a shoutout to Tiago Aguiar on social or copy the text below to attribute.

When working with React.js or Flutter apps, developers can configure their routes in a central place. This creates a single point of change where existing routes can be updated and new routes can be added.

Unfortunately, SwiftUI doesn’t provide a global route-management system. In a SwiftUI app, routes are scattered in each view, which makes them harder to reuse and a maintenance nightmare.

In this article, I’ll demonstrate how a simple global route-management system can be implemented for SwiftUI applications. Hopefully, we’ll see a more comprehensive system introduced by the Swift team in future releases.

Understanding the Problem

Before diving into the implementation details of a global route-management system, let’s first understand the problem. Consider a simple scenario of a master-detail view. The master view displays a list of countries, and when a particular country is selected, the user is taken to the details screen. The implementation of this scenario is shown…

Image for post
Image for post*4fDVdzPaeC7IqiW3R1YhAg.png

SwiftUI was released at WWDC 2019 as a declarative framework for building apps for all Apple platforms. It quickly became the talk of the WWDC and was embraced by the iOS community. Apple has painted a picture of SwiftUI being the future of iOS development. In this post, I will cover why you should focus on learning SwiftUI in 2021.

Learning Curve

From my personal experience, learning SwiftUI was a relatively easy process. Even though the framework is completely different from its predecessor, UIKit I was able to relate my knowledge of ReactJS and Flutter to feel comfortable with SwiftUI. …

Image for post
Image for post
Give a shoutout to Ryan Quintal on social or copy the text below to attribute.

In my last post, I talked about how isolating the code allows you to focus on the main problem and ignore the complexity associated with the rest of the application. In this post, I will talk about how a large problem can easily be solved by dividing it into much smaller (micro) problems.

Implementing Micro Tasks

Let’s say you are building an application which allows the user to authenticate using username and password. You are responsible for the complete piece, which includes the database, server as well as the user interface. If you look at the problem as a single unit, you may get overwhelmed due to the scale of the task. …

Image for post
Image for post
Give a shoutout to Lukas Bato on social or copy the text below to attribute.

I have been teaching software development for the last 4 years and have trained over 200 developers. After graduating 200+ developers, I started to see a lot of patterns in their learning and behaviours. One of the most important thing I notice among new developers is they fail to isolate the issue from the big picture. This result is frustration and lost productivity, which could have been avoided.

In this post, I will talk about how to isolate the issue and how isolating and focusing on a one single problem can allow you solve the problem much quicker and in the end, make you a better developer. …

Why I think it is!

Image for post
Image for post
Photo by Johannes Plenio on Unsplash.

This is a reply to Michael Long’s article from September entitled “Why Flutter Isn’t the Next Big Thing.” In his article, Michael shared his opinion on the Flutter framework and how it lacks the features and support to become the next big thing.

I am here to discuss my views on the matter.

It’s Not React Native

I am not going to slam the React Native framework because I know a lot of companies are using it successfully. I agree that most companies went with React Native because they already had JavaScript developers. One of the main differences between Flutter and React Native is how things are presented on the screen. Flutter is responsible for writing directly on the canvas, which allows it to perform at 60 FPS. …

Image for post
Image for post

In this course, you will learn how to write Clean Code. Clean code refers to the code that is easy to understand and maintain in the long term. This course is language independent, which means you can use any programming language to follow along.

Let’s take a look at the contents of the course.


In this section you are going to learn how to name your variables, functions, classes etc. This is one of the most important sections of the course and it sets the tone for the whole course.


In this section, you will learn how to write reusable functions. You will also learn how to write smaller functions which do only a single job, following the single responsibility principles. …

Image for post
Image for post
Give a shoutout to Marius Niveri on social or copy the text below to attribute.

The default navigation in iOS apps allow the user to push views on top of the stack. Once the view is on top of the stack, it is visible to the user. In order to go back to the previous screen, the view is simply popped off the stack.

In some cases the user needs to go from View C back to View A, without having to visit View B. This can be done by using a feature called Unwind Segues. Unwind segues are common in UIKit and can even be setup using UIKit storyboards.

Unfortunately, the process of setting up unwind segues in SwiftUI is not as straight forward. In this article, I will cover how to setup unwind segues in a SwiftUI application. …

Image for post
Image for post

SwiftUI is becoming increasingly popular in the iOS community. Developers are raving about the productivity gains, when using SwiftUI framework. I have been using SwiftUI since its release and I can definitely vouch for its popularity. Some of the interfaces that I designed using UIKit in 4–6 hours, took less than an hour in SwiftUI.

Quick Links

SwiftUI — Declarative Interfaces for Any Apple Device ($10.99)

MVVM Design Pattern in SwiftUI

The Complete Hands-On SwiftUI Apps Using Firebase

Composable SwiftUI Architecture Using Redux

There is no doubt that SwiftUI is the future. I believe that we must start learning SwiftUI today, so we will be comfortable with it tomorrow. To make your SwiftUI transition easier, I am providing discounts on all of my SwiftUI courses. You can get all three of my SwiftUI courses for just $9.99

Image for post
Image for post

Flutter is a framework from Google to build cross platform applications. This means you can write code once and it will run on iOS and Android devices. Flutter consists of many widgets, which can be used to construct a complete view.

In this post, I will demonstrate how you can make a reusable ratings widget in Flutter.

If you are interested, I have created a video associated with this article. You can watch the video using the link below. If you prefer reading then continue ahead.

Start by adding a rating.dart file which will serve as our rating widget. Our first task is to display the stars on the page. The number of stars will depend on the user. This means a user can display 3 or 5 or even 10 stars. To accomplish this we make sure that the number of stars is a dependency to create an instance of the Rating class. …


Mohammad Azam

iOS Developer, speaker and educator. Top Udemy and LinkedIn instructor. Lead instructor at DigitalCrafts.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store