1. Code Signing: Create an iOS distribution provisioning profile and distribution certificate

The development provisioning profile and development certificate that you’ve been using are only for specific devices. In order to distribute your app to beta testers or to users through the App Store, you’ll need a separate distribution provisioning profile and distribution certificate.

The easiest way to do this is through Xcode. If automatic signing is enabled, Xcode will create and manage certificates, signing identities, and handle device registration for you. If automatic signing is already enabled or if you don’t need help with signing, you can skip to step two.

(In some cases, you might prefer manual signing. Here‘s an…

Flutter provides http package to use http resources. The http package uses await and async features and provides many high-level methods such as read, get, post, put, head, and delete methods for sending and receiving data from remote locations. These methods simplify the development of REST-based mobile applications.


String url = ‘https://jsonplaceholder.typicode.com/posts';

Future<Post> fetchPost() async{
final response = await http.get(‘$url/1’);

return postFromJson(response.body);


return Post.fromJson(json.decode(response.body));

The fetchpost() method will call the API endpoint which is defined in url. And we will receive a JSON string in response.body, …


Flutter is an open-source mobile app development framework that allows you to develop a cross-platform app from a single codebase.


Dart is an open-source, object-oriented programming language created by Google. It is the language used in Flutter because it can compile both AOT (ahead-of-time) and JIT (just-in-time).

· AOT compilation: It is done when you have finished development and ready for release. It helps fast startup and better execution of the app.

· JIT compilation: If you want to compile while developing the app to enable hot reloads.

Flutter Widgets:

A flutter app is also referred to as “Tree of widgets”. Each…

A while ago, I wrote an article on the basics of using a ListView and GridView in Flutter. This article is meant as a more detailed exploration on the ListView class, ScrollPhysics and tweaks and optimisations for the general widget.

A ListView in Flutter is a linear list of scrollable items. We can use it to make a list of items scrollable or make a list of repeating items.

Exploring the types of ListView

We’ll start with looking at the types of ListViews and later look at the other features and neat modifications for it.

Let’s look at the types of ListViews there are:

  1. ListView

Flutter, however, brings a new reactive style that is not entirely compatible with MVC. A variation of this classical pattern has emerged from the Flutter community — BLoC.

BLoC stands for Business Logic Components. The gist of BLoC is that everything in the app should be represented as stream of events: widgets submit events; other widgets will respond. BLoC sits in the middle, managing the conversation. Dart even comes with syntax for working with streams that is baked into the language!

  1. Wrap API calls with the BLoC pattern
  2. Search for restaurants and show the results asynchronously
  3. Maintain a list of…

HTTP Client Server

Communication between a Mobile Application and a Server is usually achieved through the HTTP protocol, where the client (= mobile app) sends a HTTP request to a Server over the Internet. Once the Server has processed the request, it returns the answer back to the client and closes the connection.

This is a one-way direction communication, where the communication must always be initiated by the client and consists in a single exchange (send -> receive -> close). The server has no possibility to send anything to the client without having been asked, by the client, to do so.

Most of…

  • You use URLSession to create a session. You can think of a session as an open tab or window in your webbrowser, which groups together many HTTP requests over subsequent website visits.
  • The URLSession is used to create URLSessionTask instances, which can fetch and return data to your app, and download and upload files to webservices.
  • You configure a session with a URLSessionConfiguration object. This configuration manages caching, cookies, connectivity and credentials.
  • To make a request, you create a data task, of class URLSessionDataTask, and you provide it with a URL, such as https://twitter.com/api/, and a completion handler. …

Now a days, all IOS,Android phone has Finger/Face to login,it is more easy and secure way.So, in our flutter app we need to add this biometric security to make more secure, we are using local auth.

1. Local authentication :

First, import the local_auth package:

import 'package:local_auth/local_auth.dart';

Then you have create an instance of the plugin like this:

final LocalAuthentication localAuthentication =  LocalAuthentication();

Things that you can do with this plugin are:

  • Check if biometric authentication is supported by the device
  • Get a list of available biometric types
  • Authenticate user using biometrics or pin/passcode.

2. Check for biometric authentication

2.1 You can check if the device supports biometric authentication.

Here, is the some comparison of storyboard and swiftui.

  • UITableView: List
  • UICollectionView: LazyVGrid and LazyHGrid
  • UILabel: Text
  • UITextField: TextField
  • UITextField with isSecureTextEntry set to true: SecureField
  • UITextView: TextEditor (plain strings only)
  • UISwitch: Toggle
  • UISlider: Slider
  • UIButton: Button
  • UINavigationController: NavigationView
  • UIAlertController with style .alert: Alert
  • UIAlertController with style .actionSheet: ActionSheet
  • UIStackView with horizontal axis: HStack
  • UIStackView with vertical axis: VStack
  • UIImageView: Image
  • UISegmentedControl: Picker
  • UIStepper: Stepper
  • UIDatePicker: DatePicker
  • UIProgressView: ProgressView with a value
  • UIActivityIndicatorView: ProgressView without a value
  • NSAttributedString: Incompatible with SwiftUI; use Text instead.

If this article has helped you a bit and found interesting please clap!👏.

To publish your Amazing Apps on Play Store, you need to give your app a digital signature(KEY STORE).

The end-users download the .apk signed with the ‘deployment key’. An ‘upload key’ is used to authenticate the .aab / .apk uploaded by developers onto the Play Store and is re-signed with the deployment key once in the Play Store.

1. Command to Generate your keystore :

Run the following command to generate your keystore on Mac/Linux :

keytool -genkey -v -keystore ~/key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias appName

Run this on Windows (replace USER_NAME with your username):

keytool -genkey -v -keystore C:/Users/USER_NAME/key.jks …

Mohammed Ibrahim

IOS and Flutter Developer, Love to build...

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