element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet & Tria Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • About Us
    About the element14 Community
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Japan
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      •  Vietnam
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Embedded and Microcontrollers
  • Technologies
  • More
Embedded and Microcontrollers
Blog Creating a Mobile App with Flutter: First Steps!
  • Blog
  • Forum
  • Documents
  • Quiz
  • Polls
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Embedded and Microcontrollers to participate - click to join for free!
  • Share
  • More
  • Cancel
Group Actions
  • Group RSS
  • More
  • Cancel
Engagement
  • Author Author: shabaz
  • Date Created: 13 Aug 2026 7:53 PM Date Created
  • Views 12 views
  • Likes 2 likes
  • Comments 1 comment
  • android
  • dart
  • flutter
  • mobile app
  • app
Related
Recommended

Creating a Mobile App with Flutter: First Steps!

shabaz
shabaz
13 Aug 2026

Table of Contents

  • Introduction
  • Software Installation
    • Android Studio and Flutter Setup
  • Phone Setup
  • Creating a Project
  • Running the App
  • Project Folder Explained
  • Creating an App Icon
  • Summary

Introduction

Ever wanted to control or configure or monitor hardware using a mobile phone, using (say) USB or Bluetooth? I have, and usually I code it in JavaScript, so that the software can run from any platform with a web browser. Recently I decided to try something called Flutter, which is a set of tools for creating applications that can then be compiled for a target platform. The programming language that is used with Flutter is called Dart; it looks a bit like Python, or any typical programming language. I'm a beginner at it, and this blog post documents my progress in case anyone wants to try to give it a shot too.

With Flutter, if you want to create an app, the procedure is to write code in Dart, including fancy widgets and libraries provided with Flutter, process your code using the Flutter tools from the command line, which will compile using the normal target build tools. In the case of Android phones for instance, you could use Android Studio for the final compilation.

This blog post discusses how I installed Flutter, and built a default demo app (the demo doesn't do much, it displays a single button and text that updates when the button is clicked).

For this blog post, I used Android, but one could make apps to run on iPhones, and also desktop apps too. 


Software Installation

Create a folder for Android development. I created a folder called:

C:\DEV\vhd_mounts\android

Android Studio and Flutter Setup

I won’t be using Android Studio as a code editor, but nevertheless it is easier if it is installed for access to the tools and software development kit (SDK). I Installed Android Studio from the Android developer website,

In my case, the Android Studio path was:

C:\DEV\vhd_mounts\android\Android Studio

Start it Android Studio, and install the Android SDK as prompted. Install it to somewhere like:

C:\DEV\vhd_mounts\android\Sdk

Run Android Studio, and from More Actions, select SDK Manager.

image

Go to SDK Tools, and enable command line tools as shown below. Click Apply, and wait a short while for it to install.

image

Next, go to Plugins, and install the Flutter plugin. Note that you still need to install Flutter itself; that will come next.

image


Close Android Studio, and then download Flutter. It’s a zip file, extract it somewhere (I extracted to my android folder I created earlier), and then append the bin folder path to your PATH environment variable; I added it to the user variable. In my case, the path was:

C:\DEV\vhd_mounts\android\flutter\bin

Also, while you’re at it, add the Android Studio SDK platform-tools folder to the PATH as well; in my case:

C:\DEV\vhd_mounts\android\Sdk\platform-tools

Phone Setup

Your mobile phone needs to be in a USB Developer mode (it is also possible to use WiFi, but for now I’ll only cover USB).

The precise process is manufacturer dependent, and in the case of Samsung, there are quite a few steps. I had to seek out Developer Options, turn that on, then scroll down to the Debugging section there and turn on USB Debugging. Then, I had to locate the Auto Blocker configuration in the phone, and disable that. When the phone is eventually connected to the PC (don’t do that yet if possible), then you’ll have to look for a notification which indicates that USB is “Connected for charging only”, tap on that, and change that to “Use USB for Transferring files / Android Auto”.

To make matters more complicated, the standard Microsoft driver (called MTP) cannot be used with Samsung phones, so one has to download and install a driver from the Samsung website before connecting the phone. 

If you have previously already plugged the phone into the PC, then the old driver needs deleting (unplug the phone, then in Device Manager, select View->Show Hidden Devices and then locate the phone in the list, and delete it, and then definitely reboot the PC, otherwise the Microsoft driver gets reinstalled.

For Samsung phone users, you need to get the view in Windows Device Manager to the state as shown in the screenshot below. As Windows and Android evolves, the information above may not precisely match what needs to be done in future.

image

Once you see the above, as another sanity check, you could go to Powershell and type the following, and see if your phone gets listed as a recognized Android device:

adb.exe devices

Creating a Project

Create a folder for android project. My path was:

C:\DEV\projects\android_studio_projects


Open up a PowerShell, go to that folder, and type (all lower-case!):

flutter create <your_project_name>

image

You’ll see that a load of files got created:

image


Using PowerShell, go into the project folder (test2 in my example), and then type the following to run some sanity checks:

flutter doctor

image

In my case, you can see there are some warnings and errors. The Chrome and Visual Studio errors are not relevant for mobile development, but you may wish to correct them to experiment with desktop Flutter apps.

I followed the warning text, and ran:

flutter doctor --android-licenses

Running the App

You can type the following in a PowerShell window, in your project folder:

flutter run

Note that it will take some time to execute the first time! Long enough to make tea/coffee.

image


There’ll be a ton of scrolling text, but eventually, on the mobile phone, an example flutter app appears!

In PowerShell, press ‘h’ to see a list of commands:

image

Project Folder Explained

The project folder contains quite a lot, but in practise, the most important things to know are that the project source is in the lib folder, and then there are a load of platform-specific folders (such as android, ios, linux, macos and so on) that may occasionally need to be touched (to edit the project name, permissions, and so on).

The pubspec.yaml file is important, this is where any packages are entered as dependencies (such as code libraries) that the project may require.

image

Note that if you add dependencies in pubspec.yaml, then you’ll need to type the following to install them:

flutter pub get

Creating an App Icon

Create an assets folder in the project folder.

In pubspec.yaml, under dev_dependencies, add this entry:

flutter_launcher_icons: ^0.14.4

image

At the end of the pubspec.yaml file, place the following:

flutter_launcher_icons:
android: "ic_launcher"
ios: true
image_path: "assets/app_icon.png"

image

Place a 1024x1024 PNG file in the assets folder, then in PowerShell, type:

flutter pub get
dart run flutter_launcher_icons

Now when you run the app (in the same way as mentioned in Running the App, i.e. by typing flutter run) you'll see the icon has changed.

Summary

The Flutter toolkit allows one to create apps that can potentially be compiled and built to run on many different platforms, including mobile devices. In this blog post, the steps to install Flutter were discussed, and the mobile phone was configured for uploading apps via USB, and a demo app was run. Next steps could be to examine the example project source code in the lib folder, and to perhaps try modifying it.

Eventually, I'd like to be able to control my microcontroller projects using mobile apps developed with Flutter (currently I do it with HTML/JavaScript); that will be the subject for another blog.

If you've ever used Flutter/Dart, or are planning to, it would be great to hear about how it went for you, and any tips or reading suggestions would be gratefully received.

Thanks for reading this blog!

  • Sign in to reply
  • DAB
    DAB 1 hour ago

    Very interesting tool.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2026 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube