How to Migrate Your Mobile App to Flutter 2.0

Migrate Your Mobile App to Flutter 2.0

“Ok. But I already have a successful project running on Android and iOS platforms; why would I need Flutter for that?”

Yes, you might have this question popping up in your mind. Why – why – why? But this article will surely quench your thirst with time-saving and money.

Well, another issue you may face that –

“I completely understand the advantages and features of Flutter, but I don’t have enough budget to throw away my existing apps and restart in Flutter 2.0.”

Honestly speaking, there’s no requirement to do that!

Here, in the given post, we will explain how to use Flutter to add new functionality to your existing code.

Business Cases

Let’s consider some of the business cases, why Flutter 2.0 could be your preference.

  • You are planning to redesign both your iOS and Android apps.
  • You are planning to redesign one of your existing apps.
  • You are planning to integrate some latest features or tools into one or both apps.

Now, let’s bifurcate the above three scenarios and understand them in detail.

First Case:

Let’s consider you have both applications – Android and iOS for your business project. And you are planning to go for major updates or a complete redesign. So, on the brighter side, you are considering Flutter app development services to incorporate.

So, with the help of cross-platform development services, you can cut down your development resources in half. Previously you were in need of two players in development and QA, but now you are required to have one for each department. Hence, you can allocate another project to the second resource. Furthermore, when compared to using a native language development environment, the development team is around 10% more efficient and productive. And when compared to the traditional native language approach, this helps to save around 55% for resources.

Moreover, the execution time, performance, and size of code are excellent with native language apps. The only challenge you have to face is that you will have to learn a new programming language called Dart.

In fact, Dart is easy to learn and understand, but it may reduce the 55 percent resource savings for your initial Flutter 2.0 project.

Second Case:

Now, let’s consider the second business scenario, in which you are planning to redesign one of your apps from Android and iOS.

So, would you like to go with Flutter 2.0 or choose a Swift or Kotlin – Native programming language? Confused, right?

Albeit you have only developed a single app, Flutter app development is the right choice. And if your app is already developed in the Flutter, then it’s time to upgrade yourself to Flutter 2.0. And that’s the future now. You can surely upgrade your existing app right away with Flutter 2.0. And you can leverage all the benefits of a true cross-platform mobile app development.

To upgrade your existing Flutter app to Flutter 2.0, all you have to do is:

1. Run flutter upgrade in the code environment to upgrade your Flutter app.

2. Run dart migrate to execute the dart migration tool.

3. Solve all errors which the migration tool shows.

4. Run flutter pub outdated –mode+null-safety to print all outdated packages.

secondcase

You can check if the packages support null-safety.

5. Run flutter pub upgrade –null-safety for upgradation of all your all packages automatically.

6. Check the code for errors and solve them.

7. Run dart migrate again. This time, it should be successful. Follow the link to check out the proposed changes.

8. Click on the “Apply Migration” button.

9. Check the code for errors again and fix them.

Congratulations, you are done now! Now you can execute the app with sound null-safety.

Now, in the command line execute flutter run . You will get a message a given message on your screen:

running with null safety

Third Case:

The last business scenario is not as obvious. Your apps are already written in the native language. So, here, you just have to integrate some new features and functionalities into it. And we say again – Flutter 2.0 is the right choice for it.

While developing new features with Flutter 2.0, you can leverage all of your existing native-language code.

What’s New in Flutter 2.0?

Flutter 2 provides a web experience for Safari, Edge, Chrome, and Firefox browsers. Flutter can be embedded in TVs, smart homes, machines, and automobiles, providing the most portable and pervasive computing experience possible.

  • Flutter’s Desktop Support
  • Flutter’s Web Support
  • Flutter Fix
  • Flutter’s Extended Portability
  • App-to-App
  • Launching of Dart 2.12 for Supporting Sound Null Safety
  • Flutter DevOps
  • Google Mobile Ads to Beta: the upcoming Flutter ecosystem

Why Choose Flutter 2.0?

Google has launched a new version of Flutter – Flutter 2.0 with new functionalities and features. However, Flutter 2.0 takes the framework’s transition from mobile-only support apps residing on diverse platforms, including web apps, Linux, macOS, Windows, embedded devices, and new form factors like foldable.

Why To Select Flutter 2.0

Flutter allows developers to write a code once, which can be used across multiple platforms, including the Web. Moreover, as it supports modern testing frameworks, it only needs to be tested once.

Upgrading To Flutter 2.0

Upgrade Your Existing Flutter App to Flutter 2.0

Let’s understand the whole process of upgrading your Flutter app to Flutter 2.0 in detail.

First, open the code terminal and execute the following command to upgrade your Flutter SDK.

flutter upgrade

The installed Flutter SDK on your workstation will be updated locally. So, whenever you develop a Flutter app now, it should always select the latest stable version installed locally.

To check the stable channel, run the below command:

flutter channel

Based on your installed version, you can get the bellow message on your workstation.

Flutter 2.0.3 • channel stable • https://github.com/flutter/flutter.git
Framework • revision 4d7946a68d (3 days ago) • 2021-03-18 17:24:33 -0700
Engine • revision 3459eb2436
Tools • Dart 2.12.2

However, you can switch to the different channel with the given command,

flutter channel dev

flutter upgrade

Now, you must be wondering how does Flutter SDK locally installed on your workstation make sense?

Let’s understand that here.

Open your pubspec.yml file and check,

version: 1.0.0+1
environment:
sdk: ">=2.1.0 <3.0.0" dependencies: flutter: sdk: flutter

1. Here, version: 1.0.0+1 is your existing Flutter app version.

2. When you run command flutter run ,your app should pick up the environment as defined which is sdk: ">=2.1.0 <3.0.0"

With all dependencies as defined under,

dependencies:
flutter:
sdk: flutter

Here, sdk: flutter defines that SDK should be retrieved from the SDK version you have installed locally.

Now, remember how you have installed Flutter SDK for the first time on your local workstations, as below Mac example, go through SDK releases.

cd ~/development
unzip ~/Downloads/flutter_macos_2.0.3-stable.zip

Then, update your path and run flutter doctor

OR

git clone https://github.com/flutter/flutter.git -b stable

Then, update your path and run flutter doctor

Now, you may check your pubspec.lock file.

sdks:
dart: ">=2.12.0-0.0 <3.0.0" flutter: ">=1.16.0" <---- Use SDK greater than this installed locally

Now, the time has come to update the project to null safety.

Change the flutter version in pubspec.yaml , create a new project with the following command:
sdk: ">=2.1.0 <3.0.0"

Now, follow the above nine steps, which we have discussed in the second case.

Now, you can easily change a specific line of code inside the migration tool. Furthermore, you can read details of migration to null safety and migration tool on its guide.

You are done now. Welcome to Flutter 2.0.

Wrapping Up

In a nutshell, Flutter mobile app development is free and open-source so that any developer can use it. And if you have not thought of migrating your existing app to Flutter 2.0, now is the right time to hire dedicated Flutter developers and add a unique experience to your mobile application with its new functionalities.

Happy Coding!!

Don't Forget to share this post!

Vinit kariatukaran is a senior mobile application development manager at Radixweb and passionate about developing and designing innovative high-reach mobile applications. He endeavors to keep himself abreast of all the latest technological changes and updates to deliver the best in the business. When at leisure, he loves to read books and have interesting conversations with his colleagues and friends.