COME308 Mobile Programing
Prepared By: Dr. Ihab ELAFF
What ? Why ? How?
Grading System
Text Books
Course Outlines
Mobile phone
Smartphone
Smartphone System
Mobile OS Platforms
Mobile App Development
Why Xamarin?
Xamarin Forms
Additional Resources
Grading Item Marks
Homework 20
Sessions Work 10
Final Project 10
Midterm Exam 20
Final Exam 40
Total 100
Creating Mobile Apps with Xamarin.Forms:
Cross-platform C# programming for iOS,
Android, and Windows, CHARLES PETZOLD,
Microsoft Press
Week Subjects
1 Introduction
2 Mobile OS Platforms and Application Development Platforms
3 Working with Xamarin.Forms [Layouts] – Application 1
4 Working with Xamarin.Forms [NuGet Packages]– App.2 &App.3
5 Working with Xamarin.Forms [Grid Layout] – Application 4
6 Working with Xamarin.Forms Application 5
7 MIDTERM EXAM
8 Working with Xamarin.Forms [Tabbed Page] – App. 6
9 MultiMedia Elements– Application 7
10 Working with Xamarin.Forms [List View] – Application 8
11 Working with SQLight database – Application 9
12 Working with SQLight database – Application 10
13 Project
14 Project
FINAL EXAM
A mobile phone is a
portable telephone
that can make and
receive calls over a
radio frequency link
while the user is
moving within a
telephone service
area.
Smartphone is a multi-purpose
mobile computing device.
They have:
◦ Stronger hardware capabilities than
mobile phones (Camera, GPS Sensor,
wifi comm, …)
◦ Extensive mobile operating systems
that allow them to run advanced
applications.
Hardware System
Software System
Microprocessor CPU Producers
Famous Smartphones Producers
SDK
Software Development Kit (SDK) is a
collection of software development tools in
one installable package.
SDK normally consists of :
◦ debugger
◦ Libraries
◦ emulator
◦ Documentation
◦ sample code
◦ tutorials.
IDE
Integrated Development Environment (IDE) is
a software application that provides
comprehensive facilities to computer
programmers for software development.
An IDE normally consists of:
◦ source code editor
◦ build automation tools
◦ debugger.
◦ compiler and/or interpreter.
Software framework
Software Framework is an abstraction in
which software providing generic
functionality that can be selectively changed
by additional user-written code to enable
the development of a project or system.
Software frameworks includes:
◦ support programs,
◦ compilers,
◦ code libraries,
◦ tool sets,
◦ Application Programming Interfaces (APIs)
Application Program Interface (API)
Application Programming Interface (API) is
an communication protocol between
different parts of a computer program and
something else such as:
◦ web-based system
◦ operating system
◦ database system
◦ computer hardware
◦ software library.
CyanogenMod
Firefox OS
MeeGo/Maemo/Moblin
webOS
BlackBerry OS
Windows Mobile
Windows Phone
Symbian
Bada
Palm OS
Android Plasma mobile
Chrome OS PostmarketOS
Sailfish OS LuneOS
Tizen iOS
KaiOS iPadOS
Fuchsia watchOS
LiteOS Windows 10
PureOS BlackBerry 10
Ubuntu Touch Windows 10 Mobile
Android Plasma mobile
Chrome OS PostmarketOS
Sailfish OS LuneOS
Tizen iOS
KaiOS iPadOS
Fuchsia watchOS
LiteOS Windows 10
PureOS BlackBerry 10
Ubuntu Touch Windows 10 Mobile
Android vs. iOS vs. Windows : Which OS Works
Best for You?
Android & iOS & Windows: ALL OS Should
Work for You
Android vs. iOS vs. Windows : Which OS Works
Best for You?
Android & iOS & Windows: ALL OS Should
Work for You
?
• The official language for Android development is Java
• The main language used in iOS Development is objective-C
We need Cross-platform frameworks
Mobile App Development Single-Platforms
Framework Examples:
Android Studio (Android Only)[Google]
Kotlin, Java and C++.
Xcode (Apple Only) [Apple] C, C++,
Objective-C, Objective-C++, Java,
AppleScript, Python, Ruby, ResEdit (Rez),
and Swift.
Mobile App Development Cross-Platforms
Framework Examples:
Qt C++
Flutter (Google) Dart
NativeScript Java
Xamarin (Microsoft) C#
Apache Cordova (Phonegap) JavaScript
React Native Java for Android and
Objective-C or Swift for IOS
Kivy Python
Xamarin Forms is a framework that enables
you to build native apps for iOS, Android and
Windows using single C# codebase.
XAML: eXtensible Application Markup Language
XAML Code Example
Windows
Phone Android iOS
<ContentPage>
<StackLayout Spacing="20"
Padding="50"
VerticalOptions="Center">
<Entry Placeholder="User name"/>
<Entry Placeholder="Password"
IsPassword="True" />
<Button Text="Login"
TextColor="White"
BackgroundColor="##FF77D065"/>
</StackLayout>
</ContentPage>
XAML Code Example
Windows
Phone Android iOS
<ContentPage>
<StackLayout Spacing="20"
Padding="50"
VerticalOptions="Center">
<Entry Placeholder="User name"/>
<Entry Placeholder="Password"
IsPassword="True" />
<Button Text="Login"
TextColor="White"
BackgroundColor="##FF77D065"/>
</StackLayout>
</ContentPage>
Problem: No GUI editor for Xamarin-XAML
Possible Solution: Use Microsoft-XAML (Windows
Presentation Foundation [WPF])
Xamarin-XAML Microsoft - XAML
<ContentPage> <Page>
<StackLayout Spacing="20" <StackPanel Margin="50"
VerticalAlign="Center">
Padding="50"
<TextBox PlaceholderText="User name" />
VerticalOptions="Center"> <PasswordBox PlaceholderText="Password" />
<Entry Placeholder="User name" /> <Button Content="Login" Foreground="White"
<Entry Placeholder="Password" Background="##FF77D065" />
</StackPanel>
IsPassword="True" />
</Page>
<Button Text="Login" TextColor="White"
BackgroundColor="##FF77D065" />
</StackLayout>
</ContentPage>
Problem: No GUI editor for Xamarin-XAML
Possible Solution: Use Microsoft-XAML (Windows
Presentation Foundation [WPF])
Xamarin-XAML Microsoft - XAML
<ContentPage> <Page>
<StackLayout Spacing="20" <StackPanel Margin="50"
VerticalAlign="Center">
Padding="50"
<TextBox PlaceholderText="User name" />
VerticalOptions="Center"> <PasswordBox PlaceholderText="Password" />
<Entry Placeholder="User name" /> <Button Content="Login" Foreground="White"
<Entry Placeholder="Password" Background="##FF77D065" />
</StackPanel>
IsPassword="True" />
</Page>
<Button Text="Login" TextColor="White"
BackgroundColor="##FF77D065" />
</StackLayout>
</ContentPage>
Tools (For windows users):
1- Microsoft Visual Studio 2019 – Preview edition
2- Android Studio to test your application on
Android emulator
3- What about testing the code on iOS Simulator
???
Mac Machine Install Xcode for iOS
simulator
Windows Machine Would be discussed
latter
Xamarin University