SlideShare a Scribd company logo
Mobile Application Development
Introduction
Dr. Mazin Alkathiri
IT Department
Seiyun University
2023-2024
Introduction
• In general, developing a mobile application is a complex and challenging task.
• There are many frameworks available to develop a mobile application.
• Android provides a native framework based on Java language and iOS provides a
native framework based on Objective-C / Swift language.
• However, to develop an application supporting both the OSs, we need to code in two
different languages using two different frameworks. To help overcome this
complexity, there exists mobile frameworks supporting both OS
• These frameworks range from simple HTML based hybrid mobile application
framework (which uses HTML for User Interface and JavaScript for application logic)
to complex language specific framework (which do the heavy lifting of converting
code to native code).
• Irrespective of their simplicity or complexity, these frameworks always have many
disadvantages, one of the main drawback being their slow performance.
What is Native App Development
• Native app development means creating a mobile application that is
tailored and dedicated to a specified platform like iOS, or Android.
• You can build an Android app in Java or Kotlin while creating an iOS
app in Swift and Objective-C.
Benefits of Native app development
• Native Apps Have The Best Performance
• Native Apps Are More Secure
• Native Apps Are More Interactive And Intuitive
• Developers can access the full feature set of devices thanks to native
apps
• Native apps are more likely to be bug-free
• Better Store Support
• Increased Scalability
Hybrid mobile development
• Hybrid mobile app development mixes the characteristics of a native
application and web app.
• Mobile developers create hybrid mobile apps using well-known
languages such as JavaScript, HTML, and CSS. Making hybrid apps
consists of creating backend codes based on the native shell (Android
or IOS) which then can be uploaded to Google Play or Apple App
Store.
• A hybrid app combines elements from both mobile and web apps to
rapidly produce a finished product that may be targeted across
platforms.
Cross-platform mobile development
• Cross-platform development shares the same codebase as hybrid development.
• Yes, mobile developers use the same native elements to create the app, but they differ in
providing a great user experience with different UI.
• Cross-platform mobile development involves creating a single application that may
operate on various operating systems rather than developing distinct versions of
applications for each platform.
• Cross-platform app development is driven by the goal of producing software that works
well in more than one diverse digital environment, with the primary aim of marketing it
to a broader client base.
• Cross-platform apps are becoming more and more popular, thanks to Flutter and React
Native.
Flutter
• Flutter – a simple and high performance framework based on Dart language,
provides high performance by rendering the UI directly in the operating
system’s canvas rather than through native framework.
• Flutter also offers many ready to use widgets (UI) to create a modern
application. These widgets are optimized for mobile environment and
designing the application using widgets is as simple as designing HTML.
• To be specific, Flutter application is itself a widget. Flutter widgets also
supports animations and gestures.
• The application logic is based on reactive programming. Widget may
optionally have a state. By changing the state of the widget, Flutter will
automatically (reactive programming) compare the widget’s state (old and
new) and render the widget with only the necessary changes instead of re-
rendering the whole widget.
Features of Flutter
Flutter framework offers the following features to developers :
• Modern and reactive framework.
• Uses Dart programming language and it is very easy to learn.
• Fast development.
• Beautiful and fluid user interfaces.
• Huge widget catalog.
• Runs same UI for multiple platforms.
• High performance application.
Advantages of Flutter
Flutter comes with beautiful and customizable widgets for high performance and outstanding
mobile application. It fulfills all the custom needs and requirements. Besides these, Flutter offers
many more advantages as mentioned below :
• Dart has a large repository of software packages which lets you to extend the capabilities of your
application.
• Developers need to write just a single code base for both applications (both Android and iOS
platforms). Flutter may to be extended to other platform as well in the future.
• Flutter needs lesser testing. Because of its single code base, it is sufficient if we write automated
tests once for both the platforms.
• Flutter’s simplicity makes it a good candidate for fast development. Its customization capability
and extendibility makes it even more powerful.
• With Flutter, developers has full control over the widgets and its layout.
• Flutter offers great developer tools, with amazing hot reload.
Disadvantages of Flutter
Despite its many advantages, flutter has the following drawbacks in it :
• Since it is coded in Dart language, a developer needs to learn new language
(though it is easy to learn).
• Modern framework tries to separate logic and UI as much as possible but,
in Flutter, user interface and logic is intermixed. We can overcome this
using smart coding and using high level module to separate user interface
and logic.
• Flutter is yet another framework to create mobile application. Developers
are having a hard time in choosing the right development tools in hugely
populated segment.
Flutter - Architecture Application
Widgets
• The core concept of the Flutter framework is In Flutter, Everything is
a widget. Widgets are basically user interface components used to
create the user interface of the application.
• In Flutter, the application is itself a widget. The application is the top-
level widget and its UI is build using one or more children (widgets),
which again build using its children widgets.
• This composability feature helps us to create a user interface of any
complexity.
 MyApp is the user created widget and it is build
using the Flutter native widget, MaterialApp.
 MaterialApp has a home property to specify the
user interface of the home page, which is again a
user created widget, MyHomePage.
 MyHomePage is build using another flutter
native widget, Scaffold.
 Scaffold has two properties – body and appBar.
 body is used to specify its main user interface
and appBar is used to specify its header user
interface.
 Header UI is build using flutter native widget,
AppBar and Body UI is build using Center widget.
 The Center widget has a property, Child, which
refers the actual content and it is build using Text
widget.
Flutter – Installation
Installation in Windows
Step 1: Go to URL, https://flutter.dev/docs/get-started/install/windows and download the
latest Flutter SDK. As of April 2019, the version is 1.2.1 and the file is
flutter_windows_v1.2.1-stable.zip.
Step 2: Unzip the zip archive in a folder, say C:flutter
Step 3: Update the system path to include flutter bin directory.
Step 4: Flutter provides a tool, flutter doctor to check that all the requirement of flutter
development is met.
flutter doctor
Step 5: Running the above command will analyze the system and show its report
as shown below:
Doctor summary (to see all details, run flutter doctor -v):
[√] Flutter (Channel stable, v1.2.1, on Microsoft Windows [Version
10.0.17134.706], locale en-US)
[√] Android toolchain - develop for Android devices (Android SDK version
28.0.3)
[√] Android Studio (version 3.2)
[√] VS Code, 64-bit edition (version 1.29.1)
[!] Connected device ! No devices available ! Doctor found issues in 1
category.
The report says that all development tools are available but the device is not connected.
We can fix this by connecting an android device through USB or starting an android
emulator.
Step 6: Install the latest Android SDK, if reported by flutter doctor
Step 7: Install the latest Android Studio, if reported by flutter doctor
Step 8: Start an android emulator or connect a real android device to the system.
Step 9: Install Flutter and Dart plugin for Android Studio. It provides startup template to
create new Flutter application, an option to run and debug Flutter application in the
Android studio itself, etc.,
 Open Android Studio.
 Click File > Settings > Plugins.
 Select the Flutter plugin and click Install.
 Click Yes when prompted to install the Dart plugin.
 Restart Android studio.
Ad

More Related Content

Similar to Mobile Application Development class 001 (20)

How to choose the Right Mobile App Development Framework.docx
How to choose the Right Mobile App Development Framework.docxHow to choose the Right Mobile App Development Framework.docx
How to choose the Right Mobile App Development Framework.docx
iStudio Technologies
 
How to choose the Right Mobile App Development Framework.docx
How to choose the Right Mobile App Development Framework.docxHow to choose the Right Mobile App Development Framework.docx
How to choose the Right Mobile App Development Framework.docx
iStudio Technologies
 
Flutter vs Ionic: Which framework is better for cross platform application d...
Flutter vs Ionic: Which framework is better  for cross platform application d...Flutter vs Ionic: Which framework is better  for cross platform application d...
Flutter vs Ionic: Which framework is better for cross platform application d...
Mobiloitte
 
Performance, UI, and More: Flutter vs React Native Compared
Performance, UI, and More: Flutter vs React Native ComparedPerformance, UI, and More: Flutter vs React Native Compared
Performance, UI, and More: Flutter vs React Native Compared
Tien Nguyen
 
Benefits of using Flutter for app development.doc
Benefits of using Flutter for app development.docBenefits of using Flutter for app development.doc
Benefits of using Flutter for app development.doc
JhonthSmith
 
How To Build Mobile Apps With Flutter.pdf
How To Build Mobile Apps With Flutter.pdfHow To Build Mobile Apps With Flutter.pdf
How To Build Mobile Apps With Flutter.pdf
iconflux
 
Why is flutter mobile app development mostly recommended for your business
Why is flutter mobile app development mostly recommended for your businessWhy is flutter mobile app development mostly recommended for your business
Why is flutter mobile app development mostly recommended for your business
Fullestop
 
Lecture -Introduction to Flutter and Dart.pptx
Lecture -Introduction to Flutter and Dart.pptxLecture -Introduction to Flutter and Dart.pptx
Lecture -Introduction to Flutter and Dart.pptx
FarhanGhafoor7
 
Your Ultimate Toolkit: Top Cross-Platform App Development Frameworks for 2024
Your Ultimate Toolkit: Top Cross-Platform App Development Frameworks for 2024Your Ultimate Toolkit: Top Cross-Platform App Development Frameworks for 2024
Your Ultimate Toolkit: Top Cross-Platform App Development Frameworks for 2024
Inwizards Software Technology
 
Flutter vs react native – from developer point
Flutter vs react native – from developer pointFlutter vs react native – from developer point
Flutter vs react native – from developer point
BOSC Tech Labs
 
Flutter app development company USA | XcelTec
Flutter app development company USA | XcelTecFlutter app development company USA | XcelTec
Flutter app development company USA | XcelTec
XcelTec pvt ltd
 
What is hybrid mobile app development? | Nitor Infotech
What is hybrid mobile app development? | Nitor InfotechWhat is hybrid mobile app development? | Nitor Infotech
What is hybrid mobile app development? | Nitor Infotech
servicesNitor
 
Top Cross Platform Mobile App Development Frameworks
Top Cross Platform Mobile App Development FrameworksTop Cross Platform Mobile App Development Frameworks
Top Cross Platform Mobile App Development Frameworks
WDP Technologies
 
Flutter UI Framework
Flutter UI FrameworkFlutter UI Framework
Flutter UI Framework
Yuliia Makarenko
 
Flutter vs React Native
Flutter vs React NativeFlutter vs React Native
Flutter vs React Native
SofiaCarter4
 
Introduction to flutter's basic concepts
Introduction to flutter's basic conceptsIntroduction to flutter's basic concepts
Introduction to flutter's basic concepts
Kumaresh Chandra Baruri
 
Why is Flutter now Trendsetter in mobile app development .
Why is Flutter now Trendsetter in mobile app development .Why is Flutter now Trendsetter in mobile app development .
Why is Flutter now Trendsetter in mobile app development .
Techugo
 
Mobile development with Flutter
Mobile development with FlutterMobile development with Flutter
Mobile development with Flutter
Awok
 
603848771-Lecture-1-Intro-to-Flutter-and-Dart.pptx
603848771-Lecture-1-Intro-to-Flutter-and-Dart.pptx603848771-Lecture-1-Intro-to-Flutter-and-Dart.pptx
603848771-Lecture-1-Intro-to-Flutter-and-Dart.pptx
FarhanGhafoor7
 
Cross-platform App Development Company
Cross-platform App Development CompanyCross-platform App Development Company
Cross-platform App Development Company
The NineHertz
 
How to choose the Right Mobile App Development Framework.docx
How to choose the Right Mobile App Development Framework.docxHow to choose the Right Mobile App Development Framework.docx
How to choose the Right Mobile App Development Framework.docx
iStudio Technologies
 
How to choose the Right Mobile App Development Framework.docx
How to choose the Right Mobile App Development Framework.docxHow to choose the Right Mobile App Development Framework.docx
How to choose the Right Mobile App Development Framework.docx
iStudio Technologies
 
Flutter vs Ionic: Which framework is better for cross platform application d...
Flutter vs Ionic: Which framework is better  for cross platform application d...Flutter vs Ionic: Which framework is better  for cross platform application d...
Flutter vs Ionic: Which framework is better for cross platform application d...
Mobiloitte
 
Performance, UI, and More: Flutter vs React Native Compared
Performance, UI, and More: Flutter vs React Native ComparedPerformance, UI, and More: Flutter vs React Native Compared
Performance, UI, and More: Flutter vs React Native Compared
Tien Nguyen
 
Benefits of using Flutter for app development.doc
Benefits of using Flutter for app development.docBenefits of using Flutter for app development.doc
Benefits of using Flutter for app development.doc
JhonthSmith
 
How To Build Mobile Apps With Flutter.pdf
How To Build Mobile Apps With Flutter.pdfHow To Build Mobile Apps With Flutter.pdf
How To Build Mobile Apps With Flutter.pdf
iconflux
 
Why is flutter mobile app development mostly recommended for your business
Why is flutter mobile app development mostly recommended for your businessWhy is flutter mobile app development mostly recommended for your business
Why is flutter mobile app development mostly recommended for your business
Fullestop
 
Lecture -Introduction to Flutter and Dart.pptx
Lecture -Introduction to Flutter and Dart.pptxLecture -Introduction to Flutter and Dart.pptx
Lecture -Introduction to Flutter and Dart.pptx
FarhanGhafoor7
 
Your Ultimate Toolkit: Top Cross-Platform App Development Frameworks for 2024
Your Ultimate Toolkit: Top Cross-Platform App Development Frameworks for 2024Your Ultimate Toolkit: Top Cross-Platform App Development Frameworks for 2024
Your Ultimate Toolkit: Top Cross-Platform App Development Frameworks for 2024
Inwizards Software Technology
 
Flutter vs react native – from developer point
Flutter vs react native – from developer pointFlutter vs react native – from developer point
Flutter vs react native – from developer point
BOSC Tech Labs
 
Flutter app development company USA | XcelTec
Flutter app development company USA | XcelTecFlutter app development company USA | XcelTec
Flutter app development company USA | XcelTec
XcelTec pvt ltd
 
What is hybrid mobile app development? | Nitor Infotech
What is hybrid mobile app development? | Nitor InfotechWhat is hybrid mobile app development? | Nitor Infotech
What is hybrid mobile app development? | Nitor Infotech
servicesNitor
 
Top Cross Platform Mobile App Development Frameworks
Top Cross Platform Mobile App Development FrameworksTop Cross Platform Mobile App Development Frameworks
Top Cross Platform Mobile App Development Frameworks
WDP Technologies
 
Flutter vs React Native
Flutter vs React NativeFlutter vs React Native
Flutter vs React Native
SofiaCarter4
 
Introduction to flutter's basic concepts
Introduction to flutter's basic conceptsIntroduction to flutter's basic concepts
Introduction to flutter's basic concepts
Kumaresh Chandra Baruri
 
Why is Flutter now Trendsetter in mobile app development .
Why is Flutter now Trendsetter in mobile app development .Why is Flutter now Trendsetter in mobile app development .
Why is Flutter now Trendsetter in mobile app development .
Techugo
 
Mobile development with Flutter
Mobile development with FlutterMobile development with Flutter
Mobile development with Flutter
Awok
 
603848771-Lecture-1-Intro-to-Flutter-and-Dart.pptx
603848771-Lecture-1-Intro-to-Flutter-and-Dart.pptx603848771-Lecture-1-Intro-to-Flutter-and-Dart.pptx
603848771-Lecture-1-Intro-to-Flutter-and-Dart.pptx
FarhanGhafoor7
 
Cross-platform App Development Company
Cross-platform App Development CompanyCross-platform App Development Company
Cross-platform App Development Company
The NineHertz
 

More from Dr. Mazin Mohamed alkathiri (20)

Computer Introduction (Operating Systems)-Lecture06
Computer Introduction (Operating Systems)-Lecture06Computer Introduction (Operating Systems)-Lecture06
Computer Introduction (Operating Systems)-Lecture06
Dr. Mazin Mohamed alkathiri
 
Mobile Application Development (local database) class-07
Mobile Application Development (local database) class-07Mobile Application Development (local database) class-07
Mobile Application Development (local database) class-07
Dr. Mazin Mohamed alkathiri
 
Mobile Application Development (Shared Preferences) class-06
Mobile Application Development (Shared Preferences) class-06Mobile Application Development (Shared Preferences) class-06
Mobile Application Development (Shared Preferences) class-06
Dr. Mazin Mohamed alkathiri
 
Mobile Application Development((Handling User Input and Navigation) class-05
Mobile Application Development((Handling User Input and Navigation) class-05Mobile Application Development((Handling User Input and Navigation) class-05
Mobile Application Development((Handling User Input and Navigation) class-05
Dr. Mazin Mohamed alkathiri
 
Computer Introduction (Data Encryption)-Lecture05
Computer Introduction (Data Encryption)-Lecture05Computer Introduction (Data Encryption)-Lecture05
Computer Introduction (Data Encryption)-Lecture05
Dr. Mazin Mohamed alkathiri
 
Computer Introduction (Computer Viruses )-Lecture04
Computer Introduction (Computer Viruses  )-Lecture04Computer Introduction (Computer Viruses  )-Lecture04
Computer Introduction (Computer Viruses )-Lecture04
Dr. Mazin Mohamed alkathiri
 
Mobile Applications Development class 04-Layout-04
Mobile Applications Development class 04-Layout-04Mobile Applications Development class 04-Layout-04
Mobile Applications Development class 04-Layout-04
Dr. Mazin Mohamed alkathiri
 
Appendix to Lecture 3 Building a flutter app
Appendix to Lecture 3 Building a flutter appAppendix to Lecture 3 Building a flutter app
Appendix to Lecture 3 Building a flutter app
Dr. Mazin Mohamed alkathiri
 
Mobile Applications Development class 03-starting with flutter
Mobile Applications Development class 03-starting with flutterMobile Applications Development class 03-starting with flutter
Mobile Applications Development class 03-starting with flutter
Dr. Mazin Mohamed alkathiri
 
Mobile Applications Development class 02 ntroduction to Drat
Mobile Applications Development class 02 ntroduction to DratMobile Applications Development class 02 ntroduction to Drat
Mobile Applications Development class 02 ntroduction to Drat
Dr. Mazin Mohamed alkathiri
 
Computer Introduction (Software)-Lecture03
Computer Introduction (Software)-Lecture03Computer Introduction (Software)-Lecture03
Computer Introduction (Software)-Lecture03
Dr. Mazin Mohamed alkathiri
 
Computer Introduction (Hardware)-Lecture02
Computer Introduction (Hardware)-Lecture02Computer Introduction (Hardware)-Lecture02
Computer Introduction (Hardware)-Lecture02
Dr. Mazin Mohamed alkathiri
 
Computer Introduction (introduction)-Lecture01
Computer Introduction (introduction)-Lecture01Computer Introduction (introduction)-Lecture01
Computer Introduction (introduction)-Lecture01
Dr. Mazin Mohamed alkathiri
 
Introduction to Academic Writing class 0-1
Introduction to Academic Writing class 0-1Introduction to Academic Writing class 0-1
Introduction to Academic Writing class 0-1
Dr. Mazin Mohamed alkathiri
 
Mobile Applications Development class 01 - Introduction
Mobile Applications Development class 01 - IntroductionMobile Applications Development class 01 - Introduction
Mobile Applications Development class 01 - Introduction
Dr. Mazin Mohamed alkathiri
 
OS-operating systems- ch05 (CPU Scheduling) ...
OS-operating systems- ch05 (CPU Scheduling) ...OS-operating systems- ch05 (CPU Scheduling) ...
OS-operating systems- ch05 (CPU Scheduling) ...
Dr. Mazin Mohamed alkathiri
 
ESSENTIAL of (CS/IT/IS) class 07 (Networks)
ESSENTIAL of (CS/IT/IS) class 07 (Networks)ESSENTIAL of (CS/IT/IS) class 07 (Networks)
ESSENTIAL of (CS/IT/IS) class 07 (Networks)
Dr. Mazin Mohamed alkathiri
 
Advance Mobile Application Development class 07
Advance Mobile Application Development class 07Advance Mobile Application Development class 07
Advance Mobile Application Development class 07
Dr. Mazin Mohamed alkathiri
 
ESSENTIAL of (CS/IT/IS) class 06 (database)
ESSENTIAL of (CS/IT/IS) class 06 (database)ESSENTIAL of (CS/IT/IS) class 06 (database)
ESSENTIAL of (CS/IT/IS) class 06 (database)
Dr. Mazin Mohamed alkathiri
 
OS-operating systems- ch04 (Threads) ...
OS-operating systems- ch04 (Threads) ...OS-operating systems- ch04 (Threads) ...
OS-operating systems- ch04 (Threads) ...
Dr. Mazin Mohamed alkathiri
 
Computer Introduction (Operating Systems)-Lecture06
Computer Introduction (Operating Systems)-Lecture06Computer Introduction (Operating Systems)-Lecture06
Computer Introduction (Operating Systems)-Lecture06
Dr. Mazin Mohamed alkathiri
 
Mobile Application Development (local database) class-07
Mobile Application Development (local database) class-07Mobile Application Development (local database) class-07
Mobile Application Development (local database) class-07
Dr. Mazin Mohamed alkathiri
 
Mobile Application Development (Shared Preferences) class-06
Mobile Application Development (Shared Preferences) class-06Mobile Application Development (Shared Preferences) class-06
Mobile Application Development (Shared Preferences) class-06
Dr. Mazin Mohamed alkathiri
 
Mobile Application Development((Handling User Input and Navigation) class-05
Mobile Application Development((Handling User Input and Navigation) class-05Mobile Application Development((Handling User Input and Navigation) class-05
Mobile Application Development((Handling User Input and Navigation) class-05
Dr. Mazin Mohamed alkathiri
 
Computer Introduction (Data Encryption)-Lecture05
Computer Introduction (Data Encryption)-Lecture05Computer Introduction (Data Encryption)-Lecture05
Computer Introduction (Data Encryption)-Lecture05
Dr. Mazin Mohamed alkathiri
 
Computer Introduction (Computer Viruses )-Lecture04
Computer Introduction (Computer Viruses  )-Lecture04Computer Introduction (Computer Viruses  )-Lecture04
Computer Introduction (Computer Viruses )-Lecture04
Dr. Mazin Mohamed alkathiri
 
Mobile Applications Development class 04-Layout-04
Mobile Applications Development class 04-Layout-04Mobile Applications Development class 04-Layout-04
Mobile Applications Development class 04-Layout-04
Dr. Mazin Mohamed alkathiri
 
Mobile Applications Development class 03-starting with flutter
Mobile Applications Development class 03-starting with flutterMobile Applications Development class 03-starting with flutter
Mobile Applications Development class 03-starting with flutter
Dr. Mazin Mohamed alkathiri
 
Mobile Applications Development class 02 ntroduction to Drat
Mobile Applications Development class 02 ntroduction to DratMobile Applications Development class 02 ntroduction to Drat
Mobile Applications Development class 02 ntroduction to Drat
Dr. Mazin Mohamed alkathiri
 
Mobile Applications Development class 01 - Introduction
Mobile Applications Development class 01 - IntroductionMobile Applications Development class 01 - Introduction
Mobile Applications Development class 01 - Introduction
Dr. Mazin Mohamed alkathiri
 
Ad

Mobile Application Development class 001

  • 1. Mobile Application Development Introduction Dr. Mazin Alkathiri IT Department Seiyun University 2023-2024
  • 2. Introduction • In general, developing a mobile application is a complex and challenging task. • There are many frameworks available to develop a mobile application. • Android provides a native framework based on Java language and iOS provides a native framework based on Objective-C / Swift language. • However, to develop an application supporting both the OSs, we need to code in two different languages using two different frameworks. To help overcome this complexity, there exists mobile frameworks supporting both OS • These frameworks range from simple HTML based hybrid mobile application framework (which uses HTML for User Interface and JavaScript for application logic) to complex language specific framework (which do the heavy lifting of converting code to native code). • Irrespective of their simplicity or complexity, these frameworks always have many disadvantages, one of the main drawback being their slow performance.
  • 3. What is Native App Development • Native app development means creating a mobile application that is tailored and dedicated to a specified platform like iOS, or Android. • You can build an Android app in Java or Kotlin while creating an iOS app in Swift and Objective-C.
  • 4. Benefits of Native app development • Native Apps Have The Best Performance • Native Apps Are More Secure • Native Apps Are More Interactive And Intuitive • Developers can access the full feature set of devices thanks to native apps • Native apps are more likely to be bug-free • Better Store Support • Increased Scalability
  • 5. Hybrid mobile development • Hybrid mobile app development mixes the characteristics of a native application and web app. • Mobile developers create hybrid mobile apps using well-known languages such as JavaScript, HTML, and CSS. Making hybrid apps consists of creating backend codes based on the native shell (Android or IOS) which then can be uploaded to Google Play or Apple App Store. • A hybrid app combines elements from both mobile and web apps to rapidly produce a finished product that may be targeted across platforms.
  • 6. Cross-platform mobile development • Cross-platform development shares the same codebase as hybrid development. • Yes, mobile developers use the same native elements to create the app, but they differ in providing a great user experience with different UI. • Cross-platform mobile development involves creating a single application that may operate on various operating systems rather than developing distinct versions of applications for each platform. • Cross-platform app development is driven by the goal of producing software that works well in more than one diverse digital environment, with the primary aim of marketing it to a broader client base. • Cross-platform apps are becoming more and more popular, thanks to Flutter and React Native.
  • 7. Flutter • Flutter – a simple and high performance framework based on Dart language, provides high performance by rendering the UI directly in the operating system’s canvas rather than through native framework. • Flutter also offers many ready to use widgets (UI) to create a modern application. These widgets are optimized for mobile environment and designing the application using widgets is as simple as designing HTML. • To be specific, Flutter application is itself a widget. Flutter widgets also supports animations and gestures. • The application logic is based on reactive programming. Widget may optionally have a state. By changing the state of the widget, Flutter will automatically (reactive programming) compare the widget’s state (old and new) and render the widget with only the necessary changes instead of re- rendering the whole widget.
  • 8. Features of Flutter Flutter framework offers the following features to developers : • Modern and reactive framework. • Uses Dart programming language and it is very easy to learn. • Fast development. • Beautiful and fluid user interfaces. • Huge widget catalog. • Runs same UI for multiple platforms. • High performance application.
  • 9. Advantages of Flutter Flutter comes with beautiful and customizable widgets for high performance and outstanding mobile application. It fulfills all the custom needs and requirements. Besides these, Flutter offers many more advantages as mentioned below : • Dart has a large repository of software packages which lets you to extend the capabilities of your application. • Developers need to write just a single code base for both applications (both Android and iOS platforms). Flutter may to be extended to other platform as well in the future. • Flutter needs lesser testing. Because of its single code base, it is sufficient if we write automated tests once for both the platforms. • Flutter’s simplicity makes it a good candidate for fast development. Its customization capability and extendibility makes it even more powerful. • With Flutter, developers has full control over the widgets and its layout. • Flutter offers great developer tools, with amazing hot reload.
  • 10. Disadvantages of Flutter Despite its many advantages, flutter has the following drawbacks in it : • Since it is coded in Dart language, a developer needs to learn new language (though it is easy to learn). • Modern framework tries to separate logic and UI as much as possible but, in Flutter, user interface and logic is intermixed. We can overcome this using smart coding and using high level module to separate user interface and logic. • Flutter is yet another framework to create mobile application. Developers are having a hard time in choosing the right development tools in hugely populated segment.
  • 11. Flutter - Architecture Application Widgets • The core concept of the Flutter framework is In Flutter, Everything is a widget. Widgets are basically user interface components used to create the user interface of the application. • In Flutter, the application is itself a widget. The application is the top- level widget and its UI is build using one or more children (widgets), which again build using its children widgets. • This composability feature helps us to create a user interface of any complexity.
  • 12.  MyApp is the user created widget and it is build using the Flutter native widget, MaterialApp.  MaterialApp has a home property to specify the user interface of the home page, which is again a user created widget, MyHomePage.  MyHomePage is build using another flutter native widget, Scaffold.  Scaffold has two properties – body and appBar.  body is used to specify its main user interface and appBar is used to specify its header user interface.  Header UI is build using flutter native widget, AppBar and Body UI is build using Center widget.  The Center widget has a property, Child, which refers the actual content and it is build using Text widget.
  • 13. Flutter – Installation Installation in Windows Step 1: Go to URL, https://flutter.dev/docs/get-started/install/windows and download the latest Flutter SDK. As of April 2019, the version is 1.2.1 and the file is flutter_windows_v1.2.1-stable.zip. Step 2: Unzip the zip archive in a folder, say C:flutter Step 3: Update the system path to include flutter bin directory. Step 4: Flutter provides a tool, flutter doctor to check that all the requirement of flutter development is met.
  • 14. flutter doctor Step 5: Running the above command will analyze the system and show its report as shown below: Doctor summary (to see all details, run flutter doctor -v): [√] Flutter (Channel stable, v1.2.1, on Microsoft Windows [Version 10.0.17134.706], locale en-US) [√] Android toolchain - develop for Android devices (Android SDK version 28.0.3) [√] Android Studio (version 3.2) [√] VS Code, 64-bit edition (version 1.29.1) [!] Connected device ! No devices available ! Doctor found issues in 1 category.
  • 15. The report says that all development tools are available but the device is not connected. We can fix this by connecting an android device through USB or starting an android emulator. Step 6: Install the latest Android SDK, if reported by flutter doctor Step 7: Install the latest Android Studio, if reported by flutter doctor Step 8: Start an android emulator or connect a real android device to the system. Step 9: Install Flutter and Dart plugin for Android Studio. It provides startup template to create new Flutter application, an option to run and debug Flutter application in the Android studio itself, etc.,
  • 16.  Open Android Studio.  Click File > Settings > Plugins.  Select the Flutter plugin and click Install.  Click Yes when prompted to install the Dart plugin.  Restart Android studio.