Introduction on Mobile Development
1
Presented By:
Shady Selim,
Senior Software Engineer @
March 8th, 2020
• Desktop
• Web
• Mobile
Programming Environment
• C
• C++
• Java
• C#
• VB.Net
• Perl
• PHP
• Python
• Ruby
• Objective C
• Swift
• Kotlin
• ---
Programming Languages
• HTML
• XML
• CSS
• Java Script
• JQuery
• Angular
• React
• Knockout
• Vue
• ---
Web Languages
Responsive Websites vs SPA vs AMP vs PWA
11
Mobile OS
Linux Kernel and Device Drivers
Core OS
Core Services & Media
Cupertino Widget
iOS
Linux Kernel and Device Drivers
Libraries & Run Time
Applications & Framework
Material Design Widgets
Android
Swift Kotlin
Native Approach (Single Platform)
OEM Widgets
Cupertino
Material Design
Canvas
Events
Location Bluetooth
Camera Sensors
Java
Kotlin
Swift
Objective-c
Application
Services
OEM SDKs
Cross Mobile Languages
19
Class A Class B
Popular Cross Tools
Web View
Canvas
Events
Location Bluetooth
Camera Sensors
JavaScript
HTML
CSS
Application
Services
Bridge
Class A
Canvas
Events
Location Bluetooth
Camera Sensors
Transferred
Native Code
Application
Services
FrameworklibrariesSDK
OEM Widgets
Cupertino
Material Design
Class B
Canvas
Events
Location Bluetooth
Camera Sensors
Native ARM
Binary
Code
Application
Services
Platform
Channels
Flutter Widgets
Cupertino
Material Design
Flutter Approach
So what is Flutter ?
Flutter is the next step in
App development
Speed and performance
Fast , smooth performance
Flexibility
Customize anything - Brand
first design
Native look and feel
Familiarity , ease of use
Rapid Development
Easy to learn , predictable
Great looking and Fast Animation
IDE
This is for (Mac, Window, Linux, or Unix) machines
• Processor: i5 (Minimum Req.), i7 (Recommended)
• Memory: 8GB (Minimum Req.), 16 (Recommended)
• Hard: SSD (a must)
• VGA: Dedicated Card (a must)
• Screen: 15inch (Minimum Req.), 32inch (Recommended)
Preferred a gaming machine for unlocked processor power
Development Machine
Q & A !?
29
Cairo, Egypt
Shady Yehia Selim
shady.selim@hotmail.com
/Shady-Selim
/ShadySelim
Senior Software Engineer

Introduction on Mobile development