SlideShare a Scribd company logo
1 of 70
Download to read offline
Porting business apps to
Windows Phone
Michele Capra aka @piccoloaiutante
What is this talk about ?
‣ My personal experience on porting a business App from Android to
Windows Phone 8.
Introduction
The App
Development tools
Mockup
Code
Integration with OS
App lifecycle
App publish & store
Agenda
‣ The App
‣ Development tools
‣ Mockup
‣ Code and development (UI,
component, languages)
‣ Integration with OS
‣ App lifecycle
‣ App publish and store
Introduction
The App
Development tools
Mockup
Code
Integration with OS
App lifecycle
App publish & store
The MDC client
Introduction
The App
Development tools
Mockup
Code
Integration with OS
App lifecycle
App publish & store
The MDC client
The case study:
‣ Mobile Data Collection (M.E.A.P.)
‣ create mobile application from a Web interface using a series of widgets
‣ deliver Apps to Android Tablet and Phone, iPad, iPhone, Blackberry,
Windows Phone 8, Windows 8 RT/Pro
‣ developed by Gulliver, an italian company.
Introduction
The App
Development tools
Mockup
Code
Integration with OS
App lifecycle
App publish & store
Mdc architecture
App2
App1
App n
Mdc Client
App1
App2
Appn
Data sync Activated client
Introduction
The App
Development tools
Mockup
Code
Integration with OS
App lifecycle
App publish & store
Introduction
The App
Development tools
Mockup
Code
Integration with OS
App lifecycle
App publish & store
Introduction
The App
Development tools
Mockup
Code
Integration with OS
App lifecycle
App publish & store
Available control in MDC
‣ Close acquisition (checkbox, radio)
‣ Free acquisition (textbox, maps,
nfc, barcode/qrcode)
‣ Free Grid acquisition
‣ Lookup acquisition
‣ Touch screen acquisition
(signature, draw)
‣ Media (picture, video)
‣ Messages (show text)
‣ Control flow (if, loop)
Introduction
The App
Development tools
Mockup
Code
Integration with OS
App lifecycle
App publish & store
Android client example
Applications Add new customerSalesman visit app
Introduction
The App
Development tools
Mockup
Code
Integration with OS
App lifecycle
App publish & store
Android client example
Proposed product Visit outcome Notes
Introduction
The App
Development tools
Mockup
Code
Integration with OS
App lifecycle
App publish & store
Windows phone client example
Applications Add new customerSalesman visit app
Introduction
The App
Development tools
Mockup
Code
Integration with OS
App lifecycle
App publish & store
Windows phone client example
Proposed product Visit outcome Notes
Introduction
The App
Development tools
Mockup
Code
Integration with OS
App lifecycle
App publish & store
MDC client
‣ Native clients (no Phone Gap)
‣ Proprietary protocol
‣ Occasionally connected
‣ Several different widget (picture, signature, position, textbox..)
Introduction
The App
Development tools
Mockup
Code
Integration with OS
App lifecycle
App publish & store
First big question
Introduction
The App
Development tools
Mockup
Code
Integration with OS
App lifecycle
App publish & store
Which Windows Phone
version to support ?
Introduction
The App
Development tools
Mockup
Code
Integration with OS
App lifecycle
App publish & store
First big question
To support Windows Phone 7 or not?
We chose not to support it:
‣ Clear Microsoft intent to dismiss Windows Phone 7
‣ Some of the components we needed were only for Windows Phone 8.
Android support from 2.3
Introduction
The App
Development tools
Mockup
Code
Integration with OS
App lifecycle
App publish & store
Development tools
Introduction
The App
Development tools
Mockup
Code
Integration with OS
App lifecycle
App publish & store
Visual Studio 2012
Introduction
The App
Development tools
Mockup
Code
Integration with OS
App lifecycle
App publish & store
Android IDE
‣ AndroidStudio
‣ Intellij Idea
‣ Eclipse
Introduction
The App
Development tools
Mockup
Code
Integration with OS
App lifecycle
App publish & store
IDE
Both support:
‣ Code completion
‣ Emulator

‣ Debugging
‣ Visual designer
Introduction
The App
Development tools
Mockup
Code
Integration with OS
App lifecycle
App publish & store
IDE
Jet Brains solution could help you:
‣ Intellij Idea keyboard scheme and shortcut are available for Visual
Studio through ReSharper plugin
‣ Code navigation, refactoring shortcuts…
Introduction
The App
Development tools
Mockup
Code
Integration with OS
App lifecycle
App publish & store
Mockup
Introduction
The App
Development tools
Mockup
Code
Integration with OS
App lifecycle
App publish & store
Mockup
‣ UI + Controls + Navigation - Logic
‣ Didn’t look at Android app code
‣ Just investigate
‣ Trying to figure out how to translate App flow from Android to
Modern UI
Introduction
The App
Development tools
Mockup
Code
Integration with OS
App lifecycle
App publish & store
Mockup
‣ Windows phone app
‣ Navigation between pages
‣ No SketchFlow
Introduction
The App
Development tools
Mockup
Code
Integration with OS
App lifecycle
App publish & store
Mockup
Android Windows Phone
Introduction
The App
Development tools
Mockup
Code
Integration with OS
App lifecycle
App publish & store
Mockup
Android Windows Phone
Introduction
The App
Development tools
Mockup
Code
Integration with OS
App lifecycle
App publish & store
Mockup
Android Windows Phone
Introduction
The App
Development tools
Mockup
Code
Integration with OS
App lifecycle
App publish & store
Mockup
Android Windows Phone
Introduction
The App
Development tools
Mockup
Code
Integration with OS
App lifecycle
App publish & store
Mockup
Android Windows Phone
Introduction
The App
Development tools
Mockup
Code
Integration with OS
App lifecycle
App publish & store
Mockup
Introduction
The App
Development tools
Mockup
Code
Integration with OS
App lifecycle
App publish & store
Component
Introduction
The App
Development tools
Mockup
Code
Integration with OS
App lifecycle
App publish & store
Component
App capabilities:
‣ Take picture
‣ Read BarCode/QR Code
‣ Read NFC
‣ Get GPS coordinate
‣ Take signature
‣ Use web view
‣ Store data in a database
‣ Multi-language support
Introduction
The App
Development tools
Mockup
Code
Integration with OS
App lifecycle
App publish & store
Component
‣ Take picture (Intent → Request CameraTask)
‣ Read BarCode/QR Code (ZXing → ZXing.net)
‣ Read NFC (Intent → Microsoft library to do the job)
‣ Get gps coordinate ( LocationManager → GeoLocator)
Introduction
The App
Development tools
Mockup
Code
Integration with OS
App lifecycle
App publish & store
Component
‣ Take signature (Canvas & Path → InkPresenter)
‣ Use web view (WebView → WebBrowser)
‣ Store data in a database (SQLite → SQLite)
‣ Multilanguage support (Xml file → Multilingual App toolkit)
Introduction
The App
Development tools
Mockup
Code
Integration with OS
App lifecycle
App publish & store
Component - Database
‣ We had to make a choice between:
‣ LocalDb
‣ SQLite
‣ SQLite won because of the experience with other platform
Introduction
The App
Development tools
Mockup
Code
Integration with OS
App lifecycle
App publish & store
So let’s start developing
Introduction
The App
Development tools
Mockup
Code
Integration with OS
App lifecycle
App publish & store
Code
Introduction
The App
Development tools
Mockup
Code
Integration with OS
App lifecycle
App publish & store
Java vs C#
Academic answer for similarities:
‣ Statically strong typed
‣ Class-based, Object-oriented
‣ Semi-interpreted
‣ Garbage collection
Introduction
The App
Development tools
Mockup
Code
Integration with OS
App lifecycle
App publish & store
Java vs C#
‣ convert basic type
‣ change data structure:
‣ Vector<T> → List<T>
‣ HashTable<Integer,Integer> → Dictionary<int,int>
‣ change method name i.e: string.startWith() → string.StartsWith()
‣ StringTokenizer → String.split(string)
Introduction
The App
Development tools
Mockup
Code
Integration with OS
App lifecycle
App publish & store
Java vs C#
Different pattern:
‣ Android: Model-View-Presenter pattern but View and Presenter highly
coupled.
‣ Windows Phone: Model-View-ViewModel pattern, Binding
mechanism.
Introduction
The App
Development tools
Mockup
Code
Integration with OS
App lifecycle
App publish & store
Framework
Caliburn as framework:
‣ Screen-conductor mechanism
‣ Screen: a stateful unit of work existing within the presentation tier of an
application. It’s independent from the application shell.
‣ Conductor: Conductors manage the life cycle state of one or more
screens.
Introduction
The App
Development tools
Mockup
Code
Integration with OS
App lifecycle
App publish & store
Framework
Introduction
The App
Development tools
Mockup
Code
Integration with OS
App lifecycle
App publish & store
Conductor
(ViewModel, Page)
Screen
(ViewModel,UserControl)
Framework
Caliburn as framework:
‣ EventAggregator: messaging between classes
‣ PhoneBootstrapper: custom bootstrapper designed to setup phone
applications.
Introduction
The App
Development tools
Mockup
Code
Integration with OS
App lifecycle
App publish & store
UI
Introduction
The App
Development tools
Mockup
Code
Integration with OS
App lifecycle
App publish & store
XML vs XAML
Similarity:
‣ LinearLayout → StackPanel
‣ TextView, TextEdit → TextBlock,TextBox
‣ ScrollView → ScrollViewer
‣ Radio Group, RadioButton → RadioButton
Introduction
The App
Development tools
Mockup
Code
Integration with OS
App lifecycle
App publish & store
Values vs Xaml style
Android Values:
<color name=“white”>#FFFFFFFF</color>
!
Windows Phone Xaml control style:
<Color x:Key="white">#FFFFFFFF</Color>
Introduction
The App
Development tools
Mockup
Code
Integration with OS
App lifecycle
App publish & store
Integration with OS
Introduction
The App
Development tools
Mockup
Code
Integration with OS
App lifecycle
App publish & store
Integration with OS
‣ Make a phone call
‣ Send an email
‣ Open Map

‣ Navigate to a place
‣ Open link in browser
‣ Open pdf/office file
Introduction
The App
Development tools
Mockup
Code
Integration with OS
App lifecycle
App publish & store
Integration with OS
In Android you do this by intent and activity.
!
Intent callIntent = new Intent(Intent.ACTION_CALL);
callIntent.setData(Uri.parse("tel:0377778888"));
startActivity(callIntent);
Introduction
The App
Development tools
Mockup
Code
Integration with OS
App lifecycle
App publish & store
Integration with OS
In Windows Phone you use Tasks.
!
PhoneCallTask phoneCallTask = new PhoneCallTask();
phoneCallTask.PhoneNumber = "2065550123";
phoneCallTask.Show();
Introduction
The App
Development tools
Mockup
Code
Integration with OS
App lifecycle
App publish & store
Integration with OS
Sending email in Android.
!
Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, new String[]{to});
startActivity(emailIntent);
Introduction
The App
Development tools
Mockup
Code
Integration with OS
App lifecycle
App publish & store
Integration with OS
Sending email in Windows Phone.
!
EmailComposeTask emailComposeTask = new EmailComposeTask();
emailComposeTask.To = “michele@orangecode.it”;
emailComposeTask.Show();
Introduction
The App
Development tools
Mockup
Code
Integration with OS
App lifecycle
App publish & store
App lifecycle
Introduction
The App
Development tools
Mockup
Code
Integration with OS
App lifecycle
App publish & store
Android activity lifecycle
Introduction
The App
Development tools
Mockup
Code
Integration with OS
App lifecycle
App publish & store
Windows Phone lifecycle
Introduction
The App
Development tools
Mockup
Code
Integration with OS
App lifecycle
App publish & store
Be careful
From Microsoft docs:
“It is possible, however, for an app to be tombstoned after the user
navigates away. In this case, the app is not preserved in memory, but
some information about the app is stored – most importantly for this
topic, the State dictionary of the PhoneApplicationPage object is stored”
Introduction
The App
Development tools
Mockup
Code
Integration with OS
App lifecycle
App publish & store
Be careful
‣ Serialised and deserialise the app state that is not a part of the page
‣ Rebind all the dependencies
‣ Update UI value (i.e: something typed from user before tombstoning)
Introduction
The App
Development tools
Mockup
Code
Integration with OS
App lifecycle
App publish & store
Be careful
Introduction
The App
Development tools
Mockup
Code
Integration with OS
App lifecycle
App publish & store
Store
Introduction
The App
Development tools
Mockup
Code
Integration with OS
App lifecycle
App publish & store
App package
‣ Xap file which includes everything needed from the app.
‣ It’s almost like an apk file.
‣ You cannot install xap out of store.
Introduction
The App
Development tools
Mockup
Code
Integration with OS
App lifecycle
App publish & store
Google Play store
‣ Generate key pair
and certificate and
keystone

‣ Sign your app and
verify signed app

‣ Upload and
publish to Play
store
Introduction
The App
Development tools
Mockup
Code
Integration with OS
App lifecycle
App publish & store
Windows Phone store
Validation
‣ Package
verification
!
Certification
‣ Sign and
encryption
!
Publish
‣ Ready to be
published
Introduction
The App
Development tools
Mockup
Code
Integration with OS
App lifecycle
App publish & store
Windows Store Test Kit
The Windows Phone Windows Phone Store Test Kit (formerly named
Marketplace Test Kit) provides a suite of automated and manual tests to
help prepare your apps to be accepted in the Windows Phone Store the
first time you submit them.
Introduction
The App
Development tools
Mockup
Code
Integration with OS
App lifecycle
App publish & store
Testing for tombstoning
‣ Before upload your xap to store simulate tombstoning and test your
app manually.
‣ Tombstoning could be forced manually by Visual Studio.
Introduction
The App
Development tools
Mockup
Code
Integration with OS
App lifecycle
App publish & store
Recap
‣ The App
‣ Development tools
‣ Mockup
‣ Code and development (UI,
Component, languages)
‣ Integration with OS
‣ App Lifecycle
‣ App publish and store
My personal experience
‣ Java is not far from C#
‣ Build a mockup in order to explore new platform
‣ Keep an eye on app lifecycle
My personal experience
‣ No object mapping SQLite-net is too slow
‣ I doubt that i would reuse a framework
‣ I would rather use a toolkit
My personal experience
‣ MVP gave to Android app the possibility to have full access and
control of the UI
‣ MVVM gave to Windows Phone 8 a partial access to the UI
‣ ViewFirst approach was a part of the problem
grazie!
@piccoloaiutante

More Related Content

What's hot

Why is flutter considered the best cross platform framework
Why is flutter considered the best cross platform frameworkWhy is flutter considered the best cross platform framework
Why is flutter considered the best cross platform frameworkPixel Crayons
 
Latest Android App Development Tools 2019
Latest Android App Development Tools 2019Latest Android App Development Tools 2019
Latest Android App Development Tools 2019Elijahj Williams
 
React native vs react js
React native vs react jsReact native vs react js
React native vs react jsJessica655282
 
What makes xamarin the best choice for multiplatform app development
What makes xamarin the best choice for multiplatform app development What makes xamarin the best choice for multiplatform app development
What makes xamarin the best choice for multiplatform app development MoonTechnolabsPvtLtd
 
How to increase the ui performance of apps designed using react
How to increase the ui performance of apps designed using react How to increase the ui performance of apps designed using react
How to increase the ui performance of apps designed using react MoonTechnolabsPvtLtd
 
Android app Development Prepration Tips
Android app Development Prepration TipsAndroid app Development Prepration Tips
Android app Development Prepration TipsYasmeen Sheikh
 
Week 5 slides
Week 5 slides Week 5 slides
Week 5 slides AinaMarini
 
Angular 12 brought several new features to the table
Angular 12 brought several new features to the tableAngular 12 brought several new features to the table
Angular 12 brought several new features to the tableMoon Technolabs Pvt. Ltd.
 
7 Ways to improve your gradle build
7 Ways to improve your gradle build7 Ways to improve your gradle build
7 Ways to improve your gradle buildTania Pinheiro
 
Android application development
Android application developmentAndroid application development
Android application developmentSoni Singh
 
Why react native has become the winning choice for cross platform development
Why react native has become the winning choice for cross platform developmentWhy react native has become the winning choice for cross platform development
Why react native has become the winning choice for cross platform developmentShelly Megan
 
React js vs angularjs which framework to choose in 2022_
React js vs angularjs  which framework to choose in 2022_React js vs angularjs  which framework to choose in 2022_
React js vs angularjs which framework to choose in 2022_Moon Technolabs Pvt. Ltd.
 
ChromeとAndroidの過去・現在・未来
ChromeとAndroidの過去・現在・未来ChromeとAndroidの過去・現在・未来
ChromeとAndroidの過去・現在・未来Shinobu Okano
 
What do you need to know about g rpc on .net
What do you need to know about g rpc on .net What do you need to know about g rpc on .net
What do you need to know about g rpc on .net Moon Technolabs Pvt. Ltd.
 
Cordova Mobile Application Developer Certification
Cordova Mobile Application Developer CertificationCordova Mobile Application Developer Certification
Cordova Mobile Application Developer CertificationVskills
 
Angular.js vs. vue.js – which one is the better choice in 2022
Angular.js vs. vue.js – which one is the better choice in 2022 Angular.js vs. vue.js – which one is the better choice in 2022
Angular.js vs. vue.js – which one is the better choice in 2022 Moon Technolabs Pvt. Ltd.
 
ADVANTAGES OF ANDROID APP DEVELOPMENT
ADVANTAGES OF ANDROID APP DEVELOPMENTADVANTAGES OF ANDROID APP DEVELOPMENT
ADVANTAGES OF ANDROID APP DEVELOPMENTtechugo
 
Get Codeigniter Developement Services From Us
 Get Codeigniter Developement Services From Us Get Codeigniter Developement Services From Us
Get Codeigniter Developement Services From UsJoe_Mason
 

What's hot (20)

Why is flutter considered the best cross platform framework
Why is flutter considered the best cross platform frameworkWhy is flutter considered the best cross platform framework
Why is flutter considered the best cross platform framework
 
Latest Android App Development Tools 2019
Latest Android App Development Tools 2019Latest Android App Development Tools 2019
Latest Android App Development Tools 2019
 
React native vs react js
React native vs react jsReact native vs react js
React native vs react js
 
What makes xamarin the best choice for multiplatform app development
What makes xamarin the best choice for multiplatform app development What makes xamarin the best choice for multiplatform app development
What makes xamarin the best choice for multiplatform app development
 
How to increase the ui performance of apps designed using react
How to increase the ui performance of apps designed using react How to increase the ui performance of apps designed using react
How to increase the ui performance of apps designed using react
 
Android app Development Prepration Tips
Android app Development Prepration TipsAndroid app Development Prepration Tips
Android app Development Prepration Tips
 
Week 5 slides
Week 5 slides Week 5 slides
Week 5 slides
 
Angular 12 brought several new features to the table
Angular 12 brought several new features to the tableAngular 12 brought several new features to the table
Angular 12 brought several new features to the table
 
7 Ways to improve your gradle build
7 Ways to improve your gradle build7 Ways to improve your gradle build
7 Ways to improve your gradle build
 
tittanium
tittaniumtittanium
tittanium
 
Android application development
Android application developmentAndroid application development
Android application development
 
Why react native has become the winning choice for cross platform development
Why react native has become the winning choice for cross platform developmentWhy react native has become the winning choice for cross platform development
Why react native has become the winning choice for cross platform development
 
React js vs angularjs which framework to choose in 2022_
React js vs angularjs  which framework to choose in 2022_React js vs angularjs  which framework to choose in 2022_
React js vs angularjs which framework to choose in 2022_
 
ChromeとAndroidの過去・現在・未来
ChromeとAndroidの過去・現在・未来ChromeとAndroidの過去・現在・未来
ChromeとAndroidの過去・現在・未来
 
What do you need to know about g rpc on .net
What do you need to know about g rpc on .net What do you need to know about g rpc on .net
What do you need to know about g rpc on .net
 
Cordova Mobile Application Developer Certification
Cordova Mobile Application Developer CertificationCordova Mobile Application Developer Certification
Cordova Mobile Application Developer Certification
 
Visual studio 2019 launch
Visual studio 2019 launch Visual studio 2019 launch
Visual studio 2019 launch
 
Angular.js vs. vue.js – which one is the better choice in 2022
Angular.js vs. vue.js – which one is the better choice in 2022 Angular.js vs. vue.js – which one is the better choice in 2022
Angular.js vs. vue.js – which one is the better choice in 2022
 
ADVANTAGES OF ANDROID APP DEVELOPMENT
ADVANTAGES OF ANDROID APP DEVELOPMENTADVANTAGES OF ANDROID APP DEVELOPMENT
ADVANTAGES OF ANDROID APP DEVELOPMENT
 
Get Codeigniter Developement Services From Us
 Get Codeigniter Developement Services From Us Get Codeigniter Developement Services From Us
Get Codeigniter Developement Services From Us
 

Similar to Porting business apps to Windows Phone

Top 10 Android Frameworks for Modern.pdf
Top 10 Android Frameworks for Modern.pdfTop 10 Android Frameworks for Modern.pdf
Top 10 Android Frameworks for Modern.pdfsuryamahathi1
 
Cross platform-mobile-applications
Cross platform-mobile-applicationsCross platform-mobile-applications
Cross platform-mobile-applicationsmailalamin
 
TK2323 Lecture 1 - Introduction to Mobile Application.pdf
TK2323 Lecture 1 - Introduction to Mobile Application.pdfTK2323 Lecture 1 - Introduction to Mobile Application.pdf
TK2323 Lecture 1 - Introduction to Mobile Application.pdfLam Chun
 
Introduction to android mobile app development.pptx
Introduction to android mobile app development.pptxIntroduction to android mobile app development.pptx
Introduction to android mobile app development.pptxridzah12
 
Introduction to Android App Development
Introduction to Android App DevelopmentIntroduction to Android App Development
Introduction to Android App DevelopmentTodd Burgess
 
Building Cross-Platform JavaScript Apps using Cordova
Building Cross-Platform JavaScript Apps using CordovaBuilding Cross-Platform JavaScript Apps using Cordova
Building Cross-Platform JavaScript Apps using CordovaNoam Kfir
 
Which android app development tools deserve your attention this year
Which android app development tools deserve your attention this year  Which android app development tools deserve your attention this year
Which android app development tools deserve your attention this year Moon Technolabs Pvt. Ltd.
 
iOS-iPhone documentation
iOS-iPhone documentationiOS-iPhone documentation
iOS-iPhone documentationRaj Dubey
 
Mobile Application Development-Lecture 03 & 04.pdf
Mobile Application Development-Lecture 03 & 04.pdfMobile Application Development-Lecture 03 & 04.pdf
Mobile Application Development-Lecture 03 & 04.pdfAbdullahMunir32
 
10 Useful Frameworks to Build Hybrid Mobile Apps
10 Useful Frameworks to Build Hybrid Mobile Apps10 Useful Frameworks to Build Hybrid Mobile Apps
10 Useful Frameworks to Build Hybrid Mobile Apps75waytechnologies
 
MOBILE APPLICATIONS DEVELOPMENT AND SERVICES.pptx
MOBILE APPLICATIONS DEVELOPMENT AND SERVICES.pptxMOBILE APPLICATIONS DEVELOPMENT AND SERVICES.pptx
MOBILE APPLICATIONS DEVELOPMENT AND SERVICES.pptxmuthulakshmi cse
 
Android Annotations and RoboGuice
Android Annotations and RoboGuiceAndroid Annotations and RoboGuice
Android Annotations and RoboGuiceJoel Sticha
 
Why hybrid-is-important
Why hybrid-is-importantWhy hybrid-is-important
Why hybrid-is-importantJacob Nelson
 
JQuery Mobile vs Appcelerator Titanium vs Sencha Touch
JQuery Mobile vs Appcelerator Titanium vs Sencha TouchJQuery Mobile vs Appcelerator Titanium vs Sencha Touch
JQuery Mobile vs Appcelerator Titanium vs Sencha TouchSteve Drucker
 
Mobile app development using PhoneGap - A comprehensive walkthrough - Touch T...
Mobile app development using PhoneGap - A comprehensive walkthrough - Touch T...Mobile app development using PhoneGap - A comprehensive walkthrough - Touch T...
Mobile app development using PhoneGap - A comprehensive walkthrough - Touch T...RIA RUI Society
 
android app development, app developer in USA, mobile app design, digital mar...
android app development, app developer in USA, mobile app design, digital mar...android app development, app developer in USA, mobile app design, digital mar...
android app development, app developer in USA, mobile app design, digital mar...Sophiaeddi
 
Seminar on android app development
Seminar on android app developmentSeminar on android app development
Seminar on android app developmentAbhishekKumar4779
 
Best android frameworks for app development in 2023.pdf
Best android frameworks for app development in 2023.pdfBest android frameworks for app development in 2023.pdf
Best android frameworks for app development in 2023.pdfLaura Miller
 

Similar to Porting business apps to Windows Phone (20)

Top 10 Android Frameworks for Modern.pdf
Top 10 Android Frameworks for Modern.pdfTop 10 Android Frameworks for Modern.pdf
Top 10 Android Frameworks for Modern.pdf
 
Cross platform-mobile-applications
Cross platform-mobile-applicationsCross platform-mobile-applications
Cross platform-mobile-applications
 
TK2323 Lecture 1 - Introduction to Mobile Application.pdf
TK2323 Lecture 1 - Introduction to Mobile Application.pdfTK2323 Lecture 1 - Introduction to Mobile Application.pdf
TK2323 Lecture 1 - Introduction to Mobile Application.pdf
 
Introduction to android mobile app development.pptx
Introduction to android mobile app development.pptxIntroduction to android mobile app development.pptx
Introduction to android mobile app development.pptx
 
Ionic best practices
Ionic best practicesIonic best practices
Ionic best practices
 
Ionic best practices
Ionic best practicesIonic best practices
Ionic best practices
 
Introduction to Android App Development
Introduction to Android App DevelopmentIntroduction to Android App Development
Introduction to Android App Development
 
Building Cross-Platform JavaScript Apps using Cordova
Building Cross-Platform JavaScript Apps using CordovaBuilding Cross-Platform JavaScript Apps using Cordova
Building Cross-Platform JavaScript Apps using Cordova
 
Which android app development tools deserve your attention this year
Which android app development tools deserve your attention this year  Which android app development tools deserve your attention this year
Which android app development tools deserve your attention this year
 
iOS-iPhone documentation
iOS-iPhone documentationiOS-iPhone documentation
iOS-iPhone documentation
 
Mobile Application Development-Lecture 03 & 04.pdf
Mobile Application Development-Lecture 03 & 04.pdfMobile Application Development-Lecture 03 & 04.pdf
Mobile Application Development-Lecture 03 & 04.pdf
 
10 Useful Frameworks to Build Hybrid Mobile Apps
10 Useful Frameworks to Build Hybrid Mobile Apps10 Useful Frameworks to Build Hybrid Mobile Apps
10 Useful Frameworks to Build Hybrid Mobile Apps
 
MOBILE APPLICATIONS DEVELOPMENT AND SERVICES.pptx
MOBILE APPLICATIONS DEVELOPMENT AND SERVICES.pptxMOBILE APPLICATIONS DEVELOPMENT AND SERVICES.pptx
MOBILE APPLICATIONS DEVELOPMENT AND SERVICES.pptx
 
Android Annotations and RoboGuice
Android Annotations and RoboGuiceAndroid Annotations and RoboGuice
Android Annotations and RoboGuice
 
Why hybrid-is-important
Why hybrid-is-importantWhy hybrid-is-important
Why hybrid-is-important
 
JQuery Mobile vs Appcelerator Titanium vs Sencha Touch
JQuery Mobile vs Appcelerator Titanium vs Sencha TouchJQuery Mobile vs Appcelerator Titanium vs Sencha Touch
JQuery Mobile vs Appcelerator Titanium vs Sencha Touch
 
Mobile app development using PhoneGap - A comprehensive walkthrough - Touch T...
Mobile app development using PhoneGap - A comprehensive walkthrough - Touch T...Mobile app development using PhoneGap - A comprehensive walkthrough - Touch T...
Mobile app development using PhoneGap - A comprehensive walkthrough - Touch T...
 
android app development, app developer in USA, mobile app design, digital mar...
android app development, app developer in USA, mobile app design, digital mar...android app development, app developer in USA, mobile app design, digital mar...
android app development, app developer in USA, mobile app design, digital mar...
 
Seminar on android app development
Seminar on android app developmentSeminar on android app development
Seminar on android app development
 
Best android frameworks for app development in 2023.pdf
Best android frameworks for app development in 2023.pdfBest android frameworks for app development in 2023.pdf
Best android frameworks for app development in 2023.pdf
 

More from Michele Capra

Nodeschool italy at codemotion
Nodeschool italy at codemotionNodeschool italy at codemotion
Nodeschool italy at codemotionMichele Capra
 
Little bits & node.js IOT for beginner
Little bits & node.js IOT for beginnerLittle bits & node.js IOT for beginner
Little bits & node.js IOT for beginnerMichele Capra
 
Testing Windows Phone 8.1 app with unit test and Coded UI test
Testing Windows Phone 8.1 app with unit test and Coded UI testTesting Windows Phone 8.1 app with unit test and Coded UI test
Testing Windows Phone 8.1 app with unit test and Coded UI testMichele Capra
 
The magic of Dynamic in Nancy Fx
The magic of Dynamic in Nancy FxThe magic of Dynamic in Nancy Fx
The magic of Dynamic in Nancy FxMichele Capra
 
Building High Performance and Reliable Windows Phone 8 Apps
Building High Performance and Reliable Windows Phone 8 AppsBuilding High Performance and Reliable Windows Phone 8 Apps
Building High Performance and Reliable Windows Phone 8 AppsMichele Capra
 
Test and profile your Windows Phone 8 App
Test and profile your Windows Phone 8 AppTest and profile your Windows Phone 8 App
Test and profile your Windows Phone 8 AppMichele Capra
 
Getting started with Windows Phone 7 and unit test
Getting started with Windows Phone 7 and unit testGetting started with Windows Phone 7 and unit test
Getting started with Windows Phone 7 and unit testMichele Capra
 
Introduzione a Node.js
Introduzione a Node.jsIntroduzione a Node.js
Introduzione a Node.jsMichele Capra
 
Developing application for Windows Phone 7 in TDD
Developing application for Windows Phone 7 in TDDDeveloping application for Windows Phone 7 in TDD
Developing application for Windows Phone 7 in TDDMichele Capra
 
Windows Phone 7 Development
Windows Phone 7 DevelopmentWindows Phone 7 Development
Windows Phone 7 DevelopmentMichele Capra
 
My Final Dissertation
My Final DissertationMy Final Dissertation
My Final DissertationMichele Capra
 

More from Michele Capra (11)

Nodeschool italy at codemotion
Nodeschool italy at codemotionNodeschool italy at codemotion
Nodeschool italy at codemotion
 
Little bits & node.js IOT for beginner
Little bits & node.js IOT for beginnerLittle bits & node.js IOT for beginner
Little bits & node.js IOT for beginner
 
Testing Windows Phone 8.1 app with unit test and Coded UI test
Testing Windows Phone 8.1 app with unit test and Coded UI testTesting Windows Phone 8.1 app with unit test and Coded UI test
Testing Windows Phone 8.1 app with unit test and Coded UI test
 
The magic of Dynamic in Nancy Fx
The magic of Dynamic in Nancy FxThe magic of Dynamic in Nancy Fx
The magic of Dynamic in Nancy Fx
 
Building High Performance and Reliable Windows Phone 8 Apps
Building High Performance and Reliable Windows Phone 8 AppsBuilding High Performance and Reliable Windows Phone 8 Apps
Building High Performance and Reliable Windows Phone 8 Apps
 
Test and profile your Windows Phone 8 App
Test and profile your Windows Phone 8 AppTest and profile your Windows Phone 8 App
Test and profile your Windows Phone 8 App
 
Getting started with Windows Phone 7 and unit test
Getting started with Windows Phone 7 and unit testGetting started with Windows Phone 7 and unit test
Getting started with Windows Phone 7 and unit test
 
Introduzione a Node.js
Introduzione a Node.jsIntroduzione a Node.js
Introduzione a Node.js
 
Developing application for Windows Phone 7 in TDD
Developing application for Windows Phone 7 in TDDDeveloping application for Windows Phone 7 in TDD
Developing application for Windows Phone 7 in TDD
 
Windows Phone 7 Development
Windows Phone 7 DevelopmentWindows Phone 7 Development
Windows Phone 7 Development
 
My Final Dissertation
My Final DissertationMy Final Dissertation
My Final Dissertation
 

Recently uploaded

Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterMydbops
 
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...itnewsafrica
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Nikki Chapple
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkPixlogix Infotech
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPathCommunity
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Mark Goldstein
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructureitnewsafrica
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024TopCSSGallery
 
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...itnewsafrica
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesThousandEyes
 

Recently uploaded (20)

Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
 
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App Framework
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to Hero
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024
 
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
 

Porting business apps to Windows Phone

  • 1. Porting business apps to Windows Phone Michele Capra aka @piccoloaiutante
  • 2. What is this talk about ? ‣ My personal experience on porting a business App from Android to Windows Phone 8. Introduction The App Development tools Mockup Code Integration with OS App lifecycle App publish & store
  • 3. Agenda ‣ The App ‣ Development tools ‣ Mockup ‣ Code and development (UI, component, languages) ‣ Integration with OS ‣ App lifecycle ‣ App publish and store Introduction The App Development tools Mockup Code Integration with OS App lifecycle App publish & store
  • 4. The MDC client Introduction The App Development tools Mockup Code Integration with OS App lifecycle App publish & store
  • 5. The MDC client The case study: ‣ Mobile Data Collection (M.E.A.P.) ‣ create mobile application from a Web interface using a series of widgets ‣ deliver Apps to Android Tablet and Phone, iPad, iPhone, Blackberry, Windows Phone 8, Windows 8 RT/Pro ‣ developed by Gulliver, an italian company. Introduction The App Development tools Mockup Code Integration with OS App lifecycle App publish & store
  • 6. Mdc architecture App2 App1 App n Mdc Client App1 App2 Appn Data sync Activated client Introduction The App Development tools Mockup Code Integration with OS App lifecycle App publish & store
  • 7. Introduction The App Development tools Mockup Code Integration with OS App lifecycle App publish & store
  • 8. Introduction The App Development tools Mockup Code Integration with OS App lifecycle App publish & store
  • 9. Available control in MDC ‣ Close acquisition (checkbox, radio) ‣ Free acquisition (textbox, maps, nfc, barcode/qrcode) ‣ Free Grid acquisition ‣ Lookup acquisition ‣ Touch screen acquisition (signature, draw) ‣ Media (picture, video) ‣ Messages (show text) ‣ Control flow (if, loop) Introduction The App Development tools Mockup Code Integration with OS App lifecycle App publish & store
  • 10. Android client example Applications Add new customerSalesman visit app Introduction The App Development tools Mockup Code Integration with OS App lifecycle App publish & store
  • 11. Android client example Proposed product Visit outcome Notes Introduction The App Development tools Mockup Code Integration with OS App lifecycle App publish & store
  • 12. Windows phone client example Applications Add new customerSalesman visit app Introduction The App Development tools Mockup Code Integration with OS App lifecycle App publish & store
  • 13. Windows phone client example Proposed product Visit outcome Notes Introduction The App Development tools Mockup Code Integration with OS App lifecycle App publish & store
  • 14. MDC client ‣ Native clients (no Phone Gap) ‣ Proprietary protocol ‣ Occasionally connected ‣ Several different widget (picture, signature, position, textbox..) Introduction The App Development tools Mockup Code Integration with OS App lifecycle App publish & store
  • 15. First big question Introduction The App Development tools Mockup Code Integration with OS App lifecycle App publish & store
  • 16. Which Windows Phone version to support ? Introduction The App Development tools Mockup Code Integration with OS App lifecycle App publish & store
  • 17. First big question To support Windows Phone 7 or not? We chose not to support it: ‣ Clear Microsoft intent to dismiss Windows Phone 7 ‣ Some of the components we needed were only for Windows Phone 8. Android support from 2.3 Introduction The App Development tools Mockup Code Integration with OS App lifecycle App publish & store
  • 18. Development tools Introduction The App Development tools Mockup Code Integration with OS App lifecycle App publish & store
  • 19. Visual Studio 2012 Introduction The App Development tools Mockup Code Integration with OS App lifecycle App publish & store
  • 20. Android IDE ‣ AndroidStudio ‣ Intellij Idea ‣ Eclipse Introduction The App Development tools Mockup Code Integration with OS App lifecycle App publish & store
  • 21. IDE Both support: ‣ Code completion ‣ Emulator
 ‣ Debugging ‣ Visual designer Introduction The App Development tools Mockup Code Integration with OS App lifecycle App publish & store
  • 22. IDE Jet Brains solution could help you: ‣ Intellij Idea keyboard scheme and shortcut are available for Visual Studio through ReSharper plugin ‣ Code navigation, refactoring shortcuts… Introduction The App Development tools Mockup Code Integration with OS App lifecycle App publish & store
  • 24. Mockup ‣ UI + Controls + Navigation - Logic ‣ Didn’t look at Android app code ‣ Just investigate ‣ Trying to figure out how to translate App flow from Android to Modern UI Introduction The App Development tools Mockup Code Integration with OS App lifecycle App publish & store
  • 25. Mockup ‣ Windows phone app ‣ Navigation between pages ‣ No SketchFlow Introduction The App Development tools Mockup Code Integration with OS App lifecycle App publish & store
  • 26. Mockup Android Windows Phone Introduction The App Development tools Mockup Code Integration with OS App lifecycle App publish & store
  • 27. Mockup Android Windows Phone Introduction The App Development tools Mockup Code Integration with OS App lifecycle App publish & store
  • 28. Mockup Android Windows Phone Introduction The App Development tools Mockup Code Integration with OS App lifecycle App publish & store
  • 29. Mockup Android Windows Phone Introduction The App Development tools Mockup Code Integration with OS App lifecycle App publish & store
  • 30. Mockup Android Windows Phone Introduction The App Development tools Mockup Code Integration with OS App lifecycle App publish & store
  • 33. Component App capabilities: ‣ Take picture ‣ Read BarCode/QR Code ‣ Read NFC ‣ Get GPS coordinate ‣ Take signature ‣ Use web view ‣ Store data in a database ‣ Multi-language support Introduction The App Development tools Mockup Code Integration with OS App lifecycle App publish & store
  • 34. Component ‣ Take picture (Intent → Request CameraTask) ‣ Read BarCode/QR Code (ZXing → ZXing.net) ‣ Read NFC (Intent → Microsoft library to do the job) ‣ Get gps coordinate ( LocationManager → GeoLocator) Introduction The App Development tools Mockup Code Integration with OS App lifecycle App publish & store
  • 35. Component ‣ Take signature (Canvas & Path → InkPresenter) ‣ Use web view (WebView → WebBrowser) ‣ Store data in a database (SQLite → SQLite) ‣ Multilanguage support (Xml file → Multilingual App toolkit) Introduction The App Development tools Mockup Code Integration with OS App lifecycle App publish & store
  • 36. Component - Database ‣ We had to make a choice between: ‣ LocalDb ‣ SQLite ‣ SQLite won because of the experience with other platform Introduction The App Development tools Mockup Code Integration with OS App lifecycle App publish & store
  • 37. So let’s start developing Introduction The App Development tools Mockup Code Integration with OS App lifecycle App publish & store
  • 38. Code Introduction The App Development tools Mockup Code Integration with OS App lifecycle App publish & store
  • 39. Java vs C# Academic answer for similarities: ‣ Statically strong typed ‣ Class-based, Object-oriented ‣ Semi-interpreted ‣ Garbage collection Introduction The App Development tools Mockup Code Integration with OS App lifecycle App publish & store
  • 40. Java vs C# ‣ convert basic type ‣ change data structure: ‣ Vector<T> → List<T> ‣ HashTable<Integer,Integer> → Dictionary<int,int> ‣ change method name i.e: string.startWith() → string.StartsWith() ‣ StringTokenizer → String.split(string) Introduction The App Development tools Mockup Code Integration with OS App lifecycle App publish & store
  • 41. Java vs C# Different pattern: ‣ Android: Model-View-Presenter pattern but View and Presenter highly coupled. ‣ Windows Phone: Model-View-ViewModel pattern, Binding mechanism. Introduction The App Development tools Mockup Code Integration with OS App lifecycle App publish & store
  • 42. Framework Caliburn as framework: ‣ Screen-conductor mechanism ‣ Screen: a stateful unit of work existing within the presentation tier of an application. It’s independent from the application shell. ‣ Conductor: Conductors manage the life cycle state of one or more screens. Introduction The App Development tools Mockup Code Integration with OS App lifecycle App publish & store
  • 43. Framework Introduction The App Development tools Mockup Code Integration with OS App lifecycle App publish & store Conductor (ViewModel, Page) Screen (ViewModel,UserControl)
  • 44. Framework Caliburn as framework: ‣ EventAggregator: messaging between classes ‣ PhoneBootstrapper: custom bootstrapper designed to setup phone applications. Introduction The App Development tools Mockup Code Integration with OS App lifecycle App publish & store
  • 45. UI Introduction The App Development tools Mockup Code Integration with OS App lifecycle App publish & store
  • 46. XML vs XAML Similarity: ‣ LinearLayout → StackPanel ‣ TextView, TextEdit → TextBlock,TextBox ‣ ScrollView → ScrollViewer ‣ Radio Group, RadioButton → RadioButton Introduction The App Development tools Mockup Code Integration with OS App lifecycle App publish & store
  • 47. Values vs Xaml style Android Values: <color name=“white”>#FFFFFFFF</color> ! Windows Phone Xaml control style: <Color x:Key="white">#FFFFFFFF</Color> Introduction The App Development tools Mockup Code Integration with OS App lifecycle App publish & store
  • 48. Integration with OS Introduction The App Development tools Mockup Code Integration with OS App lifecycle App publish & store
  • 49. Integration with OS ‣ Make a phone call ‣ Send an email ‣ Open Map
 ‣ Navigate to a place ‣ Open link in browser ‣ Open pdf/office file Introduction The App Development tools Mockup Code Integration with OS App lifecycle App publish & store
  • 50. Integration with OS In Android you do this by intent and activity. ! Intent callIntent = new Intent(Intent.ACTION_CALL); callIntent.setData(Uri.parse("tel:0377778888")); startActivity(callIntent); Introduction The App Development tools Mockup Code Integration with OS App lifecycle App publish & store
  • 51. Integration with OS In Windows Phone you use Tasks. ! PhoneCallTask phoneCallTask = new PhoneCallTask(); phoneCallTask.PhoneNumber = "2065550123"; phoneCallTask.Show(); Introduction The App Development tools Mockup Code Integration with OS App lifecycle App publish & store
  • 52. Integration with OS Sending email in Android. ! Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND); emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, new String[]{to}); startActivity(emailIntent); Introduction The App Development tools Mockup Code Integration with OS App lifecycle App publish & store
  • 53. Integration with OS Sending email in Windows Phone. ! EmailComposeTask emailComposeTask = new EmailComposeTask(); emailComposeTask.To = “michele@orangecode.it”; emailComposeTask.Show(); Introduction The App Development tools Mockup Code Integration with OS App lifecycle App publish & store
  • 54. App lifecycle Introduction The App Development tools Mockup Code Integration with OS App lifecycle App publish & store
  • 55. Android activity lifecycle Introduction The App Development tools Mockup Code Integration with OS App lifecycle App publish & store
  • 56. Windows Phone lifecycle Introduction The App Development tools Mockup Code Integration with OS App lifecycle App publish & store
  • 57. Be careful From Microsoft docs: “It is possible, however, for an app to be tombstoned after the user navigates away. In this case, the app is not preserved in memory, but some information about the app is stored – most importantly for this topic, the State dictionary of the PhoneApplicationPage object is stored” Introduction The App Development tools Mockup Code Integration with OS App lifecycle App publish & store
  • 58. Be careful ‣ Serialised and deserialise the app state that is not a part of the page ‣ Rebind all the dependencies ‣ Update UI value (i.e: something typed from user before tombstoning) Introduction The App Development tools Mockup Code Integration with OS App lifecycle App publish & store
  • 59. Be careful Introduction The App Development tools Mockup Code Integration with OS App lifecycle App publish & store
  • 60. Store Introduction The App Development tools Mockup Code Integration with OS App lifecycle App publish & store
  • 61. App package ‣ Xap file which includes everything needed from the app. ‣ It’s almost like an apk file. ‣ You cannot install xap out of store. Introduction The App Development tools Mockup Code Integration with OS App lifecycle App publish & store
  • 62. Google Play store ‣ Generate key pair and certificate and keystone
 ‣ Sign your app and verify signed app
 ‣ Upload and publish to Play store Introduction The App Development tools Mockup Code Integration with OS App lifecycle App publish & store
  • 63. Windows Phone store Validation ‣ Package verification ! Certification ‣ Sign and encryption ! Publish ‣ Ready to be published Introduction The App Development tools Mockup Code Integration with OS App lifecycle App publish & store
  • 64. Windows Store Test Kit The Windows Phone Windows Phone Store Test Kit (formerly named Marketplace Test Kit) provides a suite of automated and manual tests to help prepare your apps to be accepted in the Windows Phone Store the first time you submit them. Introduction The App Development tools Mockup Code Integration with OS App lifecycle App publish & store
  • 65. Testing for tombstoning ‣ Before upload your xap to store simulate tombstoning and test your app manually. ‣ Tombstoning could be forced manually by Visual Studio. Introduction The App Development tools Mockup Code Integration with OS App lifecycle App publish & store
  • 66. Recap ‣ The App ‣ Development tools ‣ Mockup ‣ Code and development (UI, Component, languages) ‣ Integration with OS ‣ App Lifecycle ‣ App publish and store
  • 67. My personal experience ‣ Java is not far from C# ‣ Build a mockup in order to explore new platform ‣ Keep an eye on app lifecycle
  • 68. My personal experience ‣ No object mapping SQLite-net is too slow ‣ I doubt that i would reuse a framework ‣ I would rather use a toolkit
  • 69. My personal experience ‣ MVP gave to Android app the possibility to have full access and control of the UI ‣ MVVM gave to Windows Phone 8 a partial access to the UI ‣ ViewFirst approach was a part of the problem