I started writing on Medium several years back, and now I have over 150+ published articles. I have always enjoyed Medium’s amazing tools and user interface and also made few dollars while writing. In short I have nothing against Medium and their policies. So, why am I moving?

The main reason for my move is to have a place for my content that I can control. This will allow me to build traffic to my website and also offer programming courses to my readers. Also, all the articles on my website will be available to everyone.

I will slowly start moving my top content from Medium to www.azamsharp.com. You can already start reading my articles on here.

Thank you to my followers on Medium for all the wonderful years and support. You can now follow me at www.azamsharp.com.


New button roles, control prominence, control group, and more

Image by author

Buttons are an important part of any iOS application and in iOS 15, SwiftUI introduces several different ways to implement and customize button views. In this article, we are going to learn about all the new ways you can customize your buttons.

Let’s get started…

Rounded Corners

In the previous version of iOS, if we had to create a nice looking large rounded corners button then we may have to write the following code:

The result is shown below:

Photo by Matt Duncan on Unsplash

When working with asynchronous code we often leverage the use of callbacks so we can execute code when the asynchronous operation finishes. This works fine in simple scenarios but gets complicated if we have to perform a future request based on the result of the previous request. The callback pattern also open doors for not remembering to execute the user interface code on the main thread, which can lead to performance issues.

Swift 5.5 includes a new way of performing asynchronous actions. This is done by the support of async/await feature. …

Photo by Jordan M. Lomibao on Unsplash

Apple introduced tons of new features in Swift and SwiftUI. This includes Async/Await, Pull to Refresh, Continuation, Text Formatters etc. In this article, we are going to combine all the features together and build a stocks application.

Source Code

Stocks Service

For this article, we are not using a real stocks API. The stocks service we are going to implement will return hard-coded data with random prices. The implementation of getStocks function is shown below:

As you can see the getStocks function takes in a completion closure, which is fired after 2.0 seconds. We used DispatchQueue.main.asyncAfter to simulate the delay in…

A first look at the new view to asynchronously load and display images

Photo by Taras Shypka on Unsplash.

At WWDC 2021, Apple unveiled tons of new SwiftUI features that will allow developers to create iOS apps even more fluently. One of the most anticipated features is the ability to display images using the Image view. In previous versions of SwiftUI, this was not possible and had to be implemented using custom code.

In iOS 15 and Xcode 13, Apple introduced AsyncImage, which allows you to download an image using just the URL. In this article, we will look at how to use AsyncImage in our SwiftUI applications.


AsyncImage is pretty straightforward to use. Just supply with the URL…

Photo by Alex Kotliarskyi on Unsplash

With more than half of United States vaccinated, employees are being asked to return back to office. This mean, sitting in traffic and listening to bad radio for hours will once again be the norm. Pandemic turned our lives upside down but at the same time, it opened doors to new ways of conducting business. We learned that commuting 2–4 hours a day is not the only way to do the job. Employees can be as or even more productive, when allowed to work in an environment of their choice.

I know this firsthand, as I have spent most of…

GraphQL is an open-source data query and manipulation language for APIs, and a runtime for fulfilling queries with existing data. GraphQL is gaining popularity at a very fast pace and more and more companies are exposing their data using GraphQL. Some are even saying that GraphQL is the new REST and in a span of few years, it will become the default way for implementing APIs.

Check out the contents of the course:

Understanding GraphQL

In this section, you will learn the concepts behind GraphQL technology and how it is different from REST. …

Core Data in iOS

I am super excited to announce my brand new course “Core Data in iOS”. In this course, you will dive into Core Data and learn how to persist information for your iPhone app.

All the sample code is implemented using SwiftUI and MVVM Design Pattern.

Check out the contents of the course:

  • Getting Started with Core Data and Performing CRUD Operations
  • Core Data Building Blocks
  • Understanding MVVM Design Pattern
  • Core Data and MVVM
  • Transformable Types
  • Relationships — One to Many
  • Relationships — Many to Many
  • Fetching Data from Core Data Store
  • FetchedResultsController and @FetchRequest
  • Core Data in Multithreaded Environment
  • Syncing…

Do you want to learn how to develop a backend for your Flutter app? Are you interested in a serverless backend?

In this course, you will learn how to use the Firebase platform with your Flutter apps. You will implement several real world Flutter projects with Firebase as a backend. You will also learn to integrate the following features with your Flutter apps.

  • Firebase Authentication
  • Firebase Cloud Firestore
  • Firebase Storage
  • Camera
  • Photo Library
  • Auto Scroll
  • Managing Date Time
  • Shared Preferences

After completing this course you will be ready to build your first Flutter app integrated with Firebase.

[Get the complete…

Create better-structured views

Stylish building architecture
Stylish building architecture
Photo by Matt Reames on Unsplash.

Flutter views represent the interface presented to the user. They provide interaction and allow the users to feel the essence of the application. Unfortunately, Flutter views are also often ignored, resulting in tightly coupled and non-reusable components.

In this article, I will discuss techniques that can help you construct more reusable and loosely coupled views.

Displaying List of Customers

Let’s consider a scenario where we have to display a list of customers in our application. When the customer is tapped, we will send the user to the detail screen. In order to create this app, we will start by implementing a CustomerListScreen widget that…

Mohammad Azam

iOS Developer, speaker and educator. Top Udemy and LinkedIn instructor. Lead instructor at DigitalCrafts. https://www.udemy.com/user/mohammad-azam-2/

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