SlideShare une entreprise Scribd logo
1  sur  29
How many of you have an Android device?
iOs device?
What do you know about mobile?
What do you think mobile is?
What do you think mobile development is?
The mobile (Re)evolution
*start at 21:45
On January 9, 2007 Steve Jobs put
sneaker to stage to give one of the most
incredible keynote presentations of his
life—a life filled with incredible keynote
presentations—and in the history of
consumer electronics. He said he would
be introducing a wide-screen iPod with
touch controls, a revolutionary mobile
phone, and a breakthrough internet
device. But it wasn't three products. It
was one product. We got it, Steve. It was
the iPhone.
The iPhone and iOS evolution
https://david-smith.org/iosversionstats/
iOS fragmentation
Screen resolutions
http://iosres.com/
Android evolution
Android 5.0 Lollipop
Android Universe
Android fragmentation by device
Android fragmentation by brand
Android fragmentation by OS
Screens size - density
ldpi(low) ~120dpi
mdpi(medium) ~160dpi
hdpi(high) ~240dpi
xhdpi(extra-high) ~320dpi
xxhdpi(extra-extra-high) ~480dpi
xxxhdpi(extra-extra-extra-high) ~640dpi https://www.sven.de/dpi/
Screens resolutions
iOs vs Android (OS fragmentation)
iOs vs Android (screen fragmentation)
OS distribution by country
OS distribution by country (evolution)
Tablet vs phone
Xamarin is unique in that it combines all of the power of the native platforms and adds a number of powerful features of its own, including:
1. Complete Binding for the underlying SDKs – Xamarin contains bindings for nearly the entire underlying platform SDKs in both iOS and
Android. Additionally, these bindings are strongly-typed, which means that they’re easy to navigate and use, and provide robust
compile-time type checking and during development. This leads to fewer runtime errors and higher quality applications.
2. Objective-C, Java, C, and C++ Interop – Xamarin provides facilities for directly invoking Objective-C, Java, C, and C++ libraries, giving you
the power to use a wide array of 3rd party code that has already been created. This lets you take advantage of existing iOS and Android
libraries written in Objective-C, Java or C/C++. Additionally, Xamarin offers binding projects that allow you to easily bind native
Objective-C and Java libraries using a declarative syntax.
3. Modern Language Constructs – Xamarin applications are written in C#, a modern language that includes significant improvements over
Objective-C and Java such as Dynamic Language Features , Functional Constructs such as Lambdas , LINQ , Parallel Programming
features, sophisticated Generics , and more.
4. Amazing Base Class Library (BCL) – Xamarin applications use the .NET BCL, a massive collection of classes that have comprehensive and
streamlined features such as powerful XML, Database, Serialization, IO, String, and Networking support, just to name a few. Additionally,
existing C# code can be compiled for use in your applications, which provides access to thousands upon thousands of libraries that will
let you do things that aren’t already covered in the BCL.
5. Modern Integrated Development Environment (IDE) – Xamarin uses Xamarin Studio on Mac OS X, and also Xamarin Studio or Visual
Studio on Windows. These are both modern IDE’s that include features such as code auto completion, a sophisticated Project and
Solution management system, a comprehensive project template library, integrated source control, and many others.
6. Mobile Cross Platform Support – Xamarin offers sophisticated cross-platform support for the three major mobile platforms of iOS,
Android, and Windows Phone. Applications can be written to share up to 90% of their code, and our Xamarin.Mobile library offers a
unified API to access common resources across all three platforms. This can significantly reduce both development costs and time to
market for mobile developers that target the three most popular mobile platforms.
https://developer.xamarin.com/guides/cross-platform/getting_started/introduction_to_mobile_development/
The Xamarin Mobile Platform
Xamarin.iOS and Xamarin.Android are both built on top of Mono, an open-source version of the .NET Framework based on the published .NET ECMA standards.
Mono has been around almost as long as the .NET framework itself, and runs on nearly every imaginable platform including Linux, Unix, FreeBSD, and Mac OS X.
iOS – C# is ahead-of-time (AOT) compiled to ARM assembly language. The .NET framework is included, with unused classes being stripped out during linking to
reduce the application size. Apple does not allow runtime code generation on iOS, so some language features are not available (see Xamarin.iOS Limitations ).
Android – C# is compiled to IL and packaged with MonoVM + JIT’ing. Unused classes in the framework are stripped out during linking. The application runs side-
by-side with Java/ART (Android runtime) and interacts with the native types via JNI (see Xamarin.Android Limitations ).
In both cases, Xamarin applications utilize a runtime that automatically handles things such as memory allocation, garbage collection, underlying platform
interop, etc.
MonoTouch.dll and Mono.Android.dll
Xamarin applications are built against a subset of the .NET BCL known as the Xamarin Mobile Profile. This profile has been created specifically for mobile
applications and packaged in the MonoTouch.dll and Mono.Android.dll (for iOS and Android respectively). This is much like the way Silverlight (and Moonlight)
applications are built against the Silverlight/Moonlight .NET Profile. In fact, the Xamarin Mobile profile is equivalent to the Silverlight 4.0 profile with a bunch of
BCL classes added back in.
iOS – Xamarin.iOS exposes Apple’s CocoaTouch SDK frameworks as namespaces that you can reference from C#. For example the UIKit framework that contains
all the user interface controls can be included with a simple using MonoTouch.UIKit; statement.
Android – Xamarin.Android exposes Google’s Android SDK as namespaces, so you can reference any part of the supported SDK with a using statement, such as
using Android.Views; to access the user interface controls.
Application Output
When Xamarin applications are compiled, the result is an Application Package, either an .app file in iOS, or .apk file in Android. These files are indistinguishable
from application packages built with the platform's default IDEs and are deployable in the exact same way.
Understanding the Xamarin Mobile Platform
https://developer.xamarin.com/guides/cross-platform/application_fundamentals/building_cross_platform_applications/part_1_-_understanding_the_xamarin_mobile_platform/
Under the hood
https://developer.xamarin.com/guides/ios/under_the_hood/
https://developer.xamarin.com/guides/android/under_the_hood/
Multitasking
There are two significant challenges to multitasking (having multiple applications running at once) on a mobile device. First, given the limited screen real estate, it
is difficult to display multiple applications simultaneously. Therefore, on mobile devices only one app can be in the foreground at one time. Second, having
multiple applications open and performing tasks can quickly eat battery power.
Each platform handles multitasking differently, which we’ll explore in a bit.
Form Factor
Mobile devices generally fall into two categories, phones and tablets, with a few crossover devices in between. Developing for these form factors is generally very
similar, however, designing applications for them can be very different. Phones have very limited screen space, and tablets, while bigger, are still mobile devices
with less screen space than even most laptops. Because of this, mobile platform UI controls have been designed specifically to be effective on smaller form factors.
Device and OS Fragmentation
It’s important to take into account different devices throughout the entire software development lifecycle:
1. Conceptualization and Planning – Because different devices can have different hardware and device features, you must keep in mind that an application that
relies on certain features may not work properly on certain devices. For example, not all devices have cameras, so if you’re building a video messaging
application, some devices may be able to play videos, but not take them.
2. Design – When designing an application’s User Experience (UX), different screen ratios and sizes should be kept in mind. Additionally, when designing an
application’s User Interface (UI), different screen resolutions should be considered.
3. Development – When using a feature from code, the presence of that feature should always be tested first. For example, before using a device feature, such
as a camera, always query the OS for the presence of that feature first. Then, when initializing the feature/device, make sure to request currently supported
from the OS about that device and then use those configuration settings.
4. Testing – It’s incredibly important to test your application early and often on actual devices. Even devices with the same hardware specs can vary widely in
their behavior.
Limited Resources
Mobile devices get more and more powerful all the time, but they are still mobile devices that have limited capabilities in comparison to desktop or notebook
computers. For instance, desktop developers generally don’t worry about memory capacities; they’re used to having both physical and virtual memory in copious
quantities, whereas on mobile devices you can quickly consume all available memory just by loading a handful of high-quality pictures.
Additionally, processor-intensive applications such as games or text recognition can really tax the mobile CPU and adversely affect device performance.
Because of considerations like these, it’s important to code smartly and to deploy early and often to actual devices in order to validate responsiveness.
https://developer.xamarin.com/guides/cross-platform/getting_started/introduction_to_mobile_sdlc/
Common Considerations
iOS
Xamarin.iOS and Objective-C apps are distributed in exactly the same way:
1. Apple App Store – Apple’s App Store is a globally available online application repository that is built into Mac OS X via iTunes. It’s by far
the most popular distribution method for applications and it allows developers to market and distribute their apps online with very little
effort.
2. In-House Deployment – In-House deployment is meant for internal distribution of corporate applications that aren’t available publicly via
the App Store.
3. Ad-Hoc Deployment – Ad-hoc deployment is intended primarily for development and testing and allows you to deploy to a limited
number of properly provisioned devices. When you deploy to a device via Xcode or Xamarin Studio, it is known as ad-hoc deployment.
Android
Unlike other popular mobile platforms, Android takes a very open approach to app distribution. Devices are not locked to a single, approved
app store. Instead, anyone is free to create an app store, and most Android phones allow apps to be installed from these third party stores.
This allows developers a potentially larger yet more complex distribution channel for their applications. Google Play is Google’s official app
store, but there are many others. A few popular ones are:
1. AppBrain
2. Amazon App Store for Android
3. Handango
4. GetJar
Apps distribution
Native mobile
development
https://developer.android.com/
https://developer.apple.com/
Getting Started with Android
Xamarin.Android allows us to create native Android applications using the same UI controls we would in Java, except
with the flexibility and elegance of a modern language (C#), the power of the .NET Base Class Library (BCL), and two
first-class IDEs - Xamarin Studio and Visual Studio - at our fingertips.

Contenu connexe

Tendances

Learn .NET Core - UWP & Xamarin.Forms
Learn .NET Core - UWP & Xamarin.FormsLearn .NET Core - UWP & Xamarin.Forms
Learn .NET Core - UWP & Xamarin.FormsEng Teong Cheah
 
Xamarin Forms: O caminho para 100% de código compartilhado em aplicativos móveis
Xamarin Forms: O caminho para 100% de código compartilhado em aplicativos móveisXamarin Forms: O caminho para 100% de código compartilhado em aplicativos móveis
Xamarin Forms: O caminho para 100% de código compartilhado em aplicativos móveisakamud
 
Say hello to Xamarin 3
Say hello to Xamarin 3Say hello to Xamarin 3
Say hello to Xamarin 3Xamarin
 
Future of Mobile Development -Xamarin
Future of Mobile Development -XamarinFuture of Mobile Development -Xamarin
Future of Mobile Development -XamarinChamod Sandaru
 
Introduction to Xamarin
Introduction to XamarinIntroduction to Xamarin
Introduction to XamarinGuy Barrette
 
Adobe Flash Platform for Mobile Development
Adobe Flash Platform for Mobile DevelopmentAdobe Flash Platform for Mobile Development
Adobe Flash Platform for Mobile DevelopmentIndicThreads
 
I didnt know Flex could do this
I didnt know Flex could do thisI didnt know Flex could do this
I didnt know Flex could do thise27
 
Getting started with flash mobile development
Getting started with flash mobile developmentGetting started with flash mobile development
Getting started with flash mobile developmentMihai Corlan
 
Developing for Mobile with the Flex Framework
Developing for Mobile with the Flex FrameworkDeveloping for Mobile with the Flex Framework
Developing for Mobile with the Flex FrameworkMatthew Fabb
 
Developing Mobile Applications using Flex 4.5
Developing Mobile Applications using Flex 4.5Developing Mobile Applications using Flex 4.5
Developing Mobile Applications using Flex 4.5Chaithanya Yambari
 
Conociendo el ecosistema de Windows Phone 8 y Windows 8
Conociendo el ecosistema de Windows Phone 8 y Windows 8Conociendo el ecosistema de Windows Phone 8 y Windows 8
Conociendo el ecosistema de Windows Phone 8 y Windows 8Sorey García
 
Flash Builder for PHP and Mobile development
Flash Builder for PHP and Mobile developmentFlash Builder for PHP and Mobile development
Flash Builder for PHP and Mobile developmentMihai Corlan
 
Designing Modules for the Browser and Node with Browserify
Designing Modules for the Browser and Node with BrowserifyDesigning Modules for the Browser and Node with Browserify
Designing Modules for the Browser and Node with BrowserifyKevin Whinnery
 
Native i os, android, and windows development in c# with xamarin 4
Native i os, android, and windows development in c# with xamarin 4Native i os, android, and windows development in c# with xamarin 4
Native i os, android, and windows development in c# with xamarin 4Xamarin
 
Mobile Enterprise Success with Xamarin and IBM
Mobile Enterprise Success with Xamarin and IBMMobile Enterprise Success with Xamarin and IBM
Mobile Enterprise Success with Xamarin and IBMXamarin
 
JAVA TRAINING in noida
JAVA TRAINING in noidaJAVA TRAINING in noida
JAVA TRAINING in noidakhushiBawa
 

Tendances (20)

Learn .NET Core - UWP & Xamarin.Forms
Learn .NET Core - UWP & Xamarin.FormsLearn .NET Core - UWP & Xamarin.Forms
Learn .NET Core - UWP & Xamarin.Forms
 
Talk (2)
Talk (2)Talk (2)
Talk (2)
 
Xamarin Forms: O caminho para 100% de código compartilhado em aplicativos móveis
Xamarin Forms: O caminho para 100% de código compartilhado em aplicativos móveisXamarin Forms: O caminho para 100% de código compartilhado em aplicativos móveis
Xamarin Forms: O caminho para 100% de código compartilhado em aplicativos móveis
 
Say hello to Xamarin 3
Say hello to Xamarin 3Say hello to Xamarin 3
Say hello to Xamarin 3
 
Presentation[1]
Presentation[1]Presentation[1]
Presentation[1]
 
Future of Mobile Development -Xamarin
Future of Mobile Development -XamarinFuture of Mobile Development -Xamarin
Future of Mobile Development -Xamarin
 
Introduction to Xamarin
Introduction to XamarinIntroduction to Xamarin
Introduction to Xamarin
 
Adobe Flash Platform for Mobile Development
Adobe Flash Platform for Mobile DevelopmentAdobe Flash Platform for Mobile Development
Adobe Flash Platform for Mobile Development
 
I didnt know Flex could do this
I didnt know Flex could do thisI didnt know Flex could do this
I didnt know Flex could do this
 
Getting started with flash mobile development
Getting started with flash mobile developmentGetting started with flash mobile development
Getting started with flash mobile development
 
Xamarin 0
Xamarin 0Xamarin 0
Xamarin 0
 
Developing for Mobile with the Flex Framework
Developing for Mobile with the Flex FrameworkDeveloping for Mobile with the Flex Framework
Developing for Mobile with the Flex Framework
 
Developing Mobile Applications using Flex 4.5
Developing Mobile Applications using Flex 4.5Developing Mobile Applications using Flex 4.5
Developing Mobile Applications using Flex 4.5
 
Conociendo el ecosistema de Windows Phone 8 y Windows 8
Conociendo el ecosistema de Windows Phone 8 y Windows 8Conociendo el ecosistema de Windows Phone 8 y Windows 8
Conociendo el ecosistema de Windows Phone 8 y Windows 8
 
Flash Builder for PHP and Mobile development
Flash Builder for PHP and Mobile developmentFlash Builder for PHP and Mobile development
Flash Builder for PHP and Mobile development
 
Introduction to xamarin
Introduction to xamarinIntroduction to xamarin
Introduction to xamarin
 
Designing Modules for the Browser and Node with Browserify
Designing Modules for the Browser and Node with BrowserifyDesigning Modules for the Browser and Node with Browserify
Designing Modules for the Browser and Node with Browserify
 
Native i os, android, and windows development in c# with xamarin 4
Native i os, android, and windows development in c# with xamarin 4Native i os, android, and windows development in c# with xamarin 4
Native i os, android, and windows development in c# with xamarin 4
 
Mobile Enterprise Success with Xamarin and IBM
Mobile Enterprise Success with Xamarin and IBMMobile Enterprise Success with Xamarin and IBM
Mobile Enterprise Success with Xamarin and IBM
 
JAVA TRAINING in noida
JAVA TRAINING in noidaJAVA TRAINING in noida
JAVA TRAINING in noida
 

En vedette

Dia 0 expectativas y objetivos de los presentes
Dia 0   expectativas y objetivos de los presentesDia 0   expectativas y objetivos de los presentes
Dia 0 expectativas y objetivos de los presentesHernan Zaldivar
 
Introduction to Android with C# using Xamarin
Introduction to Android with C# using XamarinIntroduction to Android with C# using Xamarin
Introduction to Android with C# using XamarinCraig Dunn
 
Xamarin for (not only) Android developers
Xamarin for (not only) Android developersXamarin for (not only) Android developers
Xamarin for (not only) Android developersAleksander Piotrowski
 
C# Async on iOS and Android - Miguel de Icaza, CTO of Xamarin
C# Async on iOS and Android - Miguel de Icaza, CTO of XamarinC# Async on iOS and Android - Miguel de Icaza, CTO of Xamarin
C# Async on iOS and Android - Miguel de Icaza, CTO of XamarinXamarin
 
Cross Platform Mobile Development with C# and Xamarin
Cross Platform Mobile Development with C# and XamarinCross Platform Mobile Development with C# and Xamarin
Cross Platform Mobile Development with C# and XamarinKMS Technology
 
Building Your First Xamarin.Forms App
Building Your First Xamarin.Forms AppBuilding Your First Xamarin.Forms App
Building Your First Xamarin.Forms AppXamarin
 
Layer architecture of ios (1)
Layer architecture of ios (1)Layer architecture of ios (1)
Layer architecture of ios (1)dwipalp
 
MOBILE PHONE CLONING-Steginjoy2013@gmail.com
MOBILE PHONE CLONING-Steginjoy2013@gmail.comMOBILE PHONE CLONING-Steginjoy2013@gmail.com
MOBILE PHONE CLONING-Steginjoy2013@gmail.comchrist university
 
E ball technology ppt b
E ball technology ppt bE ball technology ppt b
E ball technology ppt bVikas Reddy
 

En vedette (17)

Dia 0 expectativas y objetivos de los presentes
Dia 0   expectativas y objetivos de los presentesDia 0   expectativas y objetivos de los presentes
Dia 0 expectativas y objetivos de los presentes
 
Introduction to Android with C# using Xamarin
Introduction to Android with C# using XamarinIntroduction to Android with C# using Xamarin
Introduction to Android with C# using Xamarin
 
Xamarin day1
Xamarin day1Xamarin day1
Xamarin day1
 
Xamarin for (not only) Android developers
Xamarin for (not only) Android developersXamarin for (not only) Android developers
Xamarin for (not only) Android developers
 
Darwin OS
Darwin OSDarwin OS
Darwin OS
 
C# Async on iOS and Android - Miguel de Icaza, CTO of Xamarin
C# Async on iOS and Android - Miguel de Icaza, CTO of XamarinC# Async on iOS and Android - Miguel de Icaza, CTO of Xamarin
C# Async on iOS and Android - Miguel de Icaza, CTO of Xamarin
 
Cross Platform Mobile Development with C# and Xamarin
Cross Platform Mobile Development with C# and XamarinCross Platform Mobile Development with C# and Xamarin
Cross Platform Mobile Development with C# and Xamarin
 
Building Your First Xamarin.Forms App
Building Your First Xamarin.Forms AppBuilding Your First Xamarin.Forms App
Building Your First Xamarin.Forms App
 
Layer architecture of ios (1)
Layer architecture of ios (1)Layer architecture of ios (1)
Layer architecture of ios (1)
 
MOBILE PHONE CLONING-Steginjoy2013@gmail.com
MOBILE PHONE CLONING-Steginjoy2013@gmail.comMOBILE PHONE CLONING-Steginjoy2013@gmail.com
MOBILE PHONE CLONING-Steginjoy2013@gmail.com
 
Mobile cloning
Mobile cloningMobile cloning
Mobile cloning
 
Mobile phone-cloning
Mobile phone-cloningMobile phone-cloning
Mobile phone-cloning
 
Green computing
Green computingGreen computing
Green computing
 
E ball technology ppt b
E ball technology ppt bE ball technology ppt b
E ball technology ppt b
 
E ball seminar
E ball seminarE ball seminar
E ball seminar
 
Green Computing
Green ComputingGreen Computing
Green Computing
 
Green computing
Green computingGreen computing
Green computing
 

Similaire à The Mobile (Re)evolution: Understanding Mobile Development and Platforms

Mobile Developer's Guide To The Galaxy No. 9
Mobile Developer's Guide To The Galaxy No. 9Mobile Developer's Guide To The Galaxy No. 9
Mobile Developer's Guide To The Galaxy No. 9Marco Tabor
 
Development of Mobile Application -PPT
Development of Mobile Application -PPTDevelopment of Mobile Application -PPT
Development of Mobile Application -PPTDhivya T
 
developementofmobileapplication-160412025313 (1).pptx
developementofmobileapplication-160412025313 (1).pptxdevelopementofmobileapplication-160412025313 (1).pptx
developementofmobileapplication-160412025313 (1).pptxPoooi2
 
Android | Xamarin | Mobile Application development
Android | Xamarin | Mobile Application developmentAndroid | Xamarin | Mobile Application development
Android | Xamarin | Mobile Application developmentKrishnaMildain
 
Mobile Developer's Guide To The Galaxy, 14th Edition
Mobile Developer's Guide To The Galaxy, 14th EditionMobile Developer's Guide To The Galaxy, 14th Edition
Mobile Developer's Guide To The Galaxy, 14th EditionMarco Tabor
 
Introduction to Android Development: Before Getting Started
Introduction to Android Development: Before Getting StartedIntroduction to Android Development: Before Getting Started
Introduction to Android Development: Before Getting StartedAhsanul Karim
 
AN INTRODUCTION TO MOBILE APPLICATION DEVELOPMENT
AN INTRODUCTION TO MOBILE APPLICATION DEVELOPMENTAN INTRODUCTION TO MOBILE APPLICATION DEVELOPMENT
AN INTRODUCTION TO MOBILE APPLICATION DEVELOPMENTGbadeboTEkunola
 
INTRODUCTION TO MOBILE APPLICATION DEVELOPMENT
INTRODUCTION TO MOBILE APPLICATION DEVELOPMENTINTRODUCTION TO MOBILE APPLICATION DEVELOPMENT
INTRODUCTION TO MOBILE APPLICATION DEVELOPMENTGbadeboTEkunola
 
Learn everything about mobile app development. .pdf
Learn everything about mobile app development. .pdfLearn everything about mobile app development. .pdf
Learn everything about mobile app development. .pdfArgpnteq
 
Android before getting started
Android before getting startedAndroid before getting started
Android before getting startedAhsanul Karim
 
IRJET- Cross Platform User Compatible System with Specific Application
IRJET- Cross Platform User Compatible System with Specific ApplicationIRJET- Cross Platform User Compatible System with Specific Application
IRJET- Cross Platform User Compatible System with Specific ApplicationIRJET Journal
 
Mobile Developers Guide To The Galaxy
Mobile Developers Guide To The GalaxyMobile Developers Guide To The Galaxy
Mobile Developers Guide To The GalaxyAvenga Germany GmbH
 
Mobile Developer's Guide To The Galaxy No.10
Mobile Developer's Guide To The Galaxy No.10Mobile Developer's Guide To The Galaxy No.10
Mobile Developer's Guide To The Galaxy No.10Marco Tabor
 
The Ultimate Guide to Cross Platform App Development Frameworks in 2023
The Ultimate Guide to Cross Platform App Development Frameworks in 2023The Ultimate Guide to Cross Platform App Development Frameworks in 2023
The Ultimate Guide to Cross Platform App Development Frameworks in 2023Cerebrum Infotech
 
White paper native, web or hybrid mobile app development
White paper  native, web or hybrid mobile app developmentWhite paper  native, web or hybrid mobile app development
White paper native, web or hybrid mobile app developmentIBM Software India
 

Similaire à The Mobile (Re)evolution: Understanding Mobile Development and Platforms (20)

Hybrid Mobile App
Hybrid Mobile AppHybrid Mobile App
Hybrid Mobile App
 
Hybrid mobile app
Hybrid mobile appHybrid mobile app
Hybrid mobile app
 
Mobile Developer's Guide To The Galaxy No. 9
Mobile Developer's Guide To The Galaxy No. 9Mobile Developer's Guide To The Galaxy No. 9
Mobile Developer's Guide To The Galaxy No. 9
 
Android introduction
Android introductionAndroid introduction
Android introduction
 
Development of Mobile Application -PPT
Development of Mobile Application -PPTDevelopment of Mobile Application -PPT
Development of Mobile Application -PPT
 
Android App
Android AppAndroid App
Android App
 
developementofmobileapplication-160412025313 (1).pptx
developementofmobileapplication-160412025313 (1).pptxdevelopementofmobileapplication-160412025313 (1).pptx
developementofmobileapplication-160412025313 (1).pptx
 
Android | Xamarin | Mobile Application development
Android | Xamarin | Mobile Application developmentAndroid | Xamarin | Mobile Application development
Android | Xamarin | Mobile Application development
 
Mobile Developer's Guide To The Galaxy, 14th Edition
Mobile Developer's Guide To The Galaxy, 14th EditionMobile Developer's Guide To The Galaxy, 14th Edition
Mobile Developer's Guide To The Galaxy, 14th Edition
 
Introduction to Android Development: Before Getting Started
Introduction to Android Development: Before Getting StartedIntroduction to Android Development: Before Getting Started
Introduction to Android Development: Before Getting Started
 
Smart phones
Smart phonesSmart phones
Smart phones
 
AN INTRODUCTION TO MOBILE APPLICATION DEVELOPMENT
AN INTRODUCTION TO MOBILE APPLICATION DEVELOPMENTAN INTRODUCTION TO MOBILE APPLICATION DEVELOPMENT
AN INTRODUCTION TO MOBILE APPLICATION DEVELOPMENT
 
INTRODUCTION TO MOBILE APPLICATION DEVELOPMENT
INTRODUCTION TO MOBILE APPLICATION DEVELOPMENTINTRODUCTION TO MOBILE APPLICATION DEVELOPMENT
INTRODUCTION TO MOBILE APPLICATION DEVELOPMENT
 
Learn everything about mobile app development. .pdf
Learn everything about mobile app development. .pdfLearn everything about mobile app development. .pdf
Learn everything about mobile app development. .pdf
 
Android before getting started
Android before getting startedAndroid before getting started
Android before getting started
 
IRJET- Cross Platform User Compatible System with Specific Application
IRJET- Cross Platform User Compatible System with Specific ApplicationIRJET- Cross Platform User Compatible System with Specific Application
IRJET- Cross Platform User Compatible System with Specific Application
 
Mobile Developers Guide To The Galaxy
Mobile Developers Guide To The GalaxyMobile Developers Guide To The Galaxy
Mobile Developers Guide To The Galaxy
 
Mobile Developer's Guide To The Galaxy No.10
Mobile Developer's Guide To The Galaxy No.10Mobile Developer's Guide To The Galaxy No.10
Mobile Developer's Guide To The Galaxy No.10
 
The Ultimate Guide to Cross Platform App Development Frameworks in 2023
The Ultimate Guide to Cross Platform App Development Frameworks in 2023The Ultimate Guide to Cross Platform App Development Frameworks in 2023
The Ultimate Guide to Cross Platform App Development Frameworks in 2023
 
White paper native, web or hybrid mobile app development
White paper  native, web or hybrid mobile app developmentWhite paper  native, web or hybrid mobile app development
White paper native, web or hybrid mobile app development
 

Dernier

Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfCionsystems
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendArshad QA
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsAndolasoft Inc
 
Clustering techniques data mining book ....
Clustering techniques data mining book ....Clustering techniques data mining book ....
Clustering techniques data mining book ....ShaimaaMohamedGalal
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 

Dernier (20)

Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
Exploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the ProcessExploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the Process
 
Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdf
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and Backend
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
Clustering techniques data mining book ....
Clustering techniques data mining book ....Clustering techniques data mining book ....
Clustering techniques data mining book ....
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 

The Mobile (Re)evolution: Understanding Mobile Development and Platforms

  • 1. How many of you have an Android device? iOs device? What do you know about mobile? What do you think mobile is? What do you think mobile development is?
  • 2. The mobile (Re)evolution *start at 21:45 On January 9, 2007 Steve Jobs put sneaker to stage to give one of the most incredible keynote presentations of his life—a life filled with incredible keynote presentations—and in the history of consumer electronics. He said he would be introducing a wide-screen iPod with touch controls, a revolutionary mobile phone, and a breakthrough internet device. But it wasn't three products. It was one product. We got it, Steve. It was the iPhone.
  • 3.
  • 4. The iPhone and iOS evolution
  • 7.
  • 14. Screens size - density ldpi(low) ~120dpi mdpi(medium) ~160dpi hdpi(high) ~240dpi xhdpi(extra-high) ~320dpi xxhdpi(extra-extra-high) ~480dpi xxxhdpi(extra-extra-extra-high) ~640dpi https://www.sven.de/dpi/
  • 16. iOs vs Android (OS fragmentation)
  • 17. iOs vs Android (screen fragmentation)
  • 19. OS distribution by country (evolution)
  • 21.
  • 22. Xamarin is unique in that it combines all of the power of the native platforms and adds a number of powerful features of its own, including: 1. Complete Binding for the underlying SDKs – Xamarin contains bindings for nearly the entire underlying platform SDKs in both iOS and Android. Additionally, these bindings are strongly-typed, which means that they’re easy to navigate and use, and provide robust compile-time type checking and during development. This leads to fewer runtime errors and higher quality applications. 2. Objective-C, Java, C, and C++ Interop – Xamarin provides facilities for directly invoking Objective-C, Java, C, and C++ libraries, giving you the power to use a wide array of 3rd party code that has already been created. This lets you take advantage of existing iOS and Android libraries written in Objective-C, Java or C/C++. Additionally, Xamarin offers binding projects that allow you to easily bind native Objective-C and Java libraries using a declarative syntax. 3. Modern Language Constructs – Xamarin applications are written in C#, a modern language that includes significant improvements over Objective-C and Java such as Dynamic Language Features , Functional Constructs such as Lambdas , LINQ , Parallel Programming features, sophisticated Generics , and more. 4. Amazing Base Class Library (BCL) – Xamarin applications use the .NET BCL, a massive collection of classes that have comprehensive and streamlined features such as powerful XML, Database, Serialization, IO, String, and Networking support, just to name a few. Additionally, existing C# code can be compiled for use in your applications, which provides access to thousands upon thousands of libraries that will let you do things that aren’t already covered in the BCL. 5. Modern Integrated Development Environment (IDE) – Xamarin uses Xamarin Studio on Mac OS X, and also Xamarin Studio or Visual Studio on Windows. These are both modern IDE’s that include features such as code auto completion, a sophisticated Project and Solution management system, a comprehensive project template library, integrated source control, and many others. 6. Mobile Cross Platform Support – Xamarin offers sophisticated cross-platform support for the three major mobile platforms of iOS, Android, and Windows Phone. Applications can be written to share up to 90% of their code, and our Xamarin.Mobile library offers a unified API to access common resources across all three platforms. This can significantly reduce both development costs and time to market for mobile developers that target the three most popular mobile platforms. https://developer.xamarin.com/guides/cross-platform/getting_started/introduction_to_mobile_development/ The Xamarin Mobile Platform
  • 23. Xamarin.iOS and Xamarin.Android are both built on top of Mono, an open-source version of the .NET Framework based on the published .NET ECMA standards. Mono has been around almost as long as the .NET framework itself, and runs on nearly every imaginable platform including Linux, Unix, FreeBSD, and Mac OS X. iOS – C# is ahead-of-time (AOT) compiled to ARM assembly language. The .NET framework is included, with unused classes being stripped out during linking to reduce the application size. Apple does not allow runtime code generation on iOS, so some language features are not available (see Xamarin.iOS Limitations ). Android – C# is compiled to IL and packaged with MonoVM + JIT’ing. Unused classes in the framework are stripped out during linking. The application runs side- by-side with Java/ART (Android runtime) and interacts with the native types via JNI (see Xamarin.Android Limitations ). In both cases, Xamarin applications utilize a runtime that automatically handles things such as memory allocation, garbage collection, underlying platform interop, etc. MonoTouch.dll and Mono.Android.dll Xamarin applications are built against a subset of the .NET BCL known as the Xamarin Mobile Profile. This profile has been created specifically for mobile applications and packaged in the MonoTouch.dll and Mono.Android.dll (for iOS and Android respectively). This is much like the way Silverlight (and Moonlight) applications are built against the Silverlight/Moonlight .NET Profile. In fact, the Xamarin Mobile profile is equivalent to the Silverlight 4.0 profile with a bunch of BCL classes added back in. iOS – Xamarin.iOS exposes Apple’s CocoaTouch SDK frameworks as namespaces that you can reference from C#. For example the UIKit framework that contains all the user interface controls can be included with a simple using MonoTouch.UIKit; statement. Android – Xamarin.Android exposes Google’s Android SDK as namespaces, so you can reference any part of the supported SDK with a using statement, such as using Android.Views; to access the user interface controls. Application Output When Xamarin applications are compiled, the result is an Application Package, either an .app file in iOS, or .apk file in Android. These files are indistinguishable from application packages built with the platform's default IDEs and are deployable in the exact same way. Understanding the Xamarin Mobile Platform https://developer.xamarin.com/guides/cross-platform/application_fundamentals/building_cross_platform_applications/part_1_-_understanding_the_xamarin_mobile_platform/
  • 25. Multitasking There are two significant challenges to multitasking (having multiple applications running at once) on a mobile device. First, given the limited screen real estate, it is difficult to display multiple applications simultaneously. Therefore, on mobile devices only one app can be in the foreground at one time. Second, having multiple applications open and performing tasks can quickly eat battery power. Each platform handles multitasking differently, which we’ll explore in a bit. Form Factor Mobile devices generally fall into two categories, phones and tablets, with a few crossover devices in between. Developing for these form factors is generally very similar, however, designing applications for them can be very different. Phones have very limited screen space, and tablets, while bigger, are still mobile devices with less screen space than even most laptops. Because of this, mobile platform UI controls have been designed specifically to be effective on smaller form factors. Device and OS Fragmentation It’s important to take into account different devices throughout the entire software development lifecycle: 1. Conceptualization and Planning – Because different devices can have different hardware and device features, you must keep in mind that an application that relies on certain features may not work properly on certain devices. For example, not all devices have cameras, so if you’re building a video messaging application, some devices may be able to play videos, but not take them. 2. Design – When designing an application’s User Experience (UX), different screen ratios and sizes should be kept in mind. Additionally, when designing an application’s User Interface (UI), different screen resolutions should be considered. 3. Development – When using a feature from code, the presence of that feature should always be tested first. For example, before using a device feature, such as a camera, always query the OS for the presence of that feature first. Then, when initializing the feature/device, make sure to request currently supported from the OS about that device and then use those configuration settings. 4. Testing – It’s incredibly important to test your application early and often on actual devices. Even devices with the same hardware specs can vary widely in their behavior. Limited Resources Mobile devices get more and more powerful all the time, but they are still mobile devices that have limited capabilities in comparison to desktop or notebook computers. For instance, desktop developers generally don’t worry about memory capacities; they’re used to having both physical and virtual memory in copious quantities, whereas on mobile devices you can quickly consume all available memory just by loading a handful of high-quality pictures. Additionally, processor-intensive applications such as games or text recognition can really tax the mobile CPU and adversely affect device performance. Because of considerations like these, it’s important to code smartly and to deploy early and often to actual devices in order to validate responsiveness. https://developer.xamarin.com/guides/cross-platform/getting_started/introduction_to_mobile_sdlc/ Common Considerations
  • 26. iOS Xamarin.iOS and Objective-C apps are distributed in exactly the same way: 1. Apple App Store – Apple’s App Store is a globally available online application repository that is built into Mac OS X via iTunes. It’s by far the most popular distribution method for applications and it allows developers to market and distribute their apps online with very little effort. 2. In-House Deployment – In-House deployment is meant for internal distribution of corporate applications that aren’t available publicly via the App Store. 3. Ad-Hoc Deployment – Ad-hoc deployment is intended primarily for development and testing and allows you to deploy to a limited number of properly provisioned devices. When you deploy to a device via Xcode or Xamarin Studio, it is known as ad-hoc deployment. Android Unlike other popular mobile platforms, Android takes a very open approach to app distribution. Devices are not locked to a single, approved app store. Instead, anyone is free to create an app store, and most Android phones allow apps to be installed from these third party stores. This allows developers a potentially larger yet more complex distribution channel for their applications. Google Play is Google’s official app store, but there are many others. A few popular ones are: 1. AppBrain 2. Amazon App Store for Android 3. Handango 4. GetJar Apps distribution
  • 28.
  • 29. Getting Started with Android Xamarin.Android allows us to create native Android applications using the same UI controls we would in Java, except with the flexibility and elegance of a modern language (C#), the power of the .NET Base Class Library (BCL), and two first-class IDEs - Xamarin Studio and Visual Studio - at our fingertips.

Notes de l'éditeur

  1. First Android app: File  New  Project Damian introduction to UI controls Solving issues