SlideShare une entreprise Scribd logo
1  sur  22
Télécharger pour lire hors ligne
1
Hybrid
Windows 10
10 Writeln 'Hi Developer';
20 Goto 10;
30 'Win 95, 98, ME, NT, 2000,
XP, Vista, 7, 8, 10';
2
Agenda EKON
• Hybrid Development (desktop versus tablet)?
• What's important in Win10 Development?
• UX Design & Responsiveness
• Improve your Code (Dual Testing)
• Optimisation with Wine, UISpy & other Tools
3
ITouch Questions first
● Are touch actions like mouse actions?
→ Yes Tip = LeftClick - Touch/Hold = RightClick.
●
Do we need Intel CPU?
→ Yes like Win7 Asus Eee Slate EP121 (I5-470UM)
●
Do we have a virtual Keyboard?
→ Yes like a focus Edit-Control or simulate keyboard code→
●
Do I have Buttons, Trackbar, Pulldown, Listboxes...
→ Yes but make it bigger showMessagebig() code→ →
●
What about third party components?
→ Yes or no like async pro (no serial) or video signals (no vga) or
barcode reader (various onkeypress)
http://docs.codehaus.org/display/SONAR/Plugin+Library
4
Develop for Multiple Devices
Use cloud services to sync across devices.
• With Win 10 you no longer target an OS,
your app aims to 1 or n device families
(PC, IoT, Xbox, Mobile).
• A device family is a set of APIs collected
together & given name, version number.
demo: 15_pas_onedrive.txt
5
Menus & Mouse are gone
Iterator Disable Structure
with MaxForm1.MainMenu1 do
for it:= 0 to items.count-1 do begin
TMenuItem(items).items[it].enabled:= false;
writeln(TMenuItem(items).items[it].name);
end;
Demo: 547_Win10_Develop_4_BASTA_EKON19.TXT
6
Menu Methods to look for
• A TMenuItem component contains the properties,
methods, & events for each menu item on a
menu (TMainMenu or TPopupMenu).
• Each TMainMenu or TPopupMenu component may
contain multiple menu items.
• Relink your menu item object for each command
on the menu to other controls.
• Test mode with maXbox
if GetSystemMetrics(SM_TABLETPC) <> 0 then Showmessage('Tablet');
7
Intro: Win 10 is hybrid
• The Start menu can also expand to fill the entire
screen, in a way that's similar to the Start screen in
Win 8 & in Win Phone.
• It definitely looks like it will be a solid compromise for
users who still want the freedom to use both
touchscreen & mouse-keyboard controls.
Multiple desktops. Win 10 lets you add virtual desktops so
you can organize work more strictly. For ex. you have a W32
app open in one desktop, & Wine test application in another.
Also better DOS prompt. → demo
8
IMPLEMENTED FEATURES II
Basically, if you have a device like the Surface Pro 3 that
has a keyboard attached, the UI in Win 10 will work in
desktop mode.
If the keyboard is detached, or if it flips around to show
just the touchscreen, Win 10 will pop up an alert asking
the user to go into tablet mode.
Another feature aimed at tablet users is Continuum,
which prompts user to engage Win 10 “tablet mode” if a
tablet is undocked or keyboard on a convertible is folded
back. In tablet mode, apps including start menu run full-
screen.
https://dev.windows.com/en-us/getstarted/whats-new-windows-10
9
Preparation Checklist
1. Set Compiler Directives
{$IFDEF TABLET}
2. Test functions since Delphi 2010 introduced some
nice touch and gesture support.
3. Check with GetSystemMetrics(SM_TABLETPC)
or registry for value of
HKEY_CURRENT_USERSOFTWAREMicrosoftWindowsCurrentVersionImmersiveShellTabletMode
4. Check your TTouchKeyboard or virtual keyboard for
missing keys or strange signs. Complete?
5. Installation Issues, Licenses, Certs. Are there any?
TStringlist(dumpComponentsFtype(Application,'TMenuItem',cmplst));
10
Win 10 Develop
• The Win32 & Win64 API is common to all
versions of Windows, & now that WinRT apps
also run in a window, there is no longer a
sharp distinction from user’s sight.
• This means that by writing to the full Win API
developers can support Win 7 or even Win XP
as well as running well in Win 10.
• Delphi has a WinRT bridge (wrapper classes).
11
More Win32/64 Codebase
●
Another advantage of coding to the Win API,
rather than WinRT, is that applications will run
on Win 7 as well as Win 8 & 10.
●
Despite Microsoft’s ambitions, not everyone will
move quickly to Win 10 & retaining Win 7
compatibility means a larger installed base for
your application.
●
Hence RAD Studio 10 doesn't currently compile
WinRT apps; W32/64 are first class citizens.
12
Universal Win Platform
●
“Windows as a service,” which means that the
operating system will be continuously updated.
●
An “All apps” hierarchical view menu on the left.
●
Win 10 makes it easier to develop apps for the
UWP with just one API set, one app package, &
one store to reach all Win 10 devices – PC,
tablet, phone & more gadgets.
●
support for screen sizes, & also a variety of
interaction models, whether it be touch, mouse
& keyboard, a game controller, or a pen.
●
https://msdn.microsoft.com/en-us/library/windows/apps/dn894631.aspx
13
Win 10 Core Optimisation
demo: 630_multikernel3.TXT
14
Win 10 API
• The core APIs, it will run on any Win 10 device.
• There's a common API ((UWP) core APIs) surface
across device families.
• Extension SDKs make your app light up on specialized
devices (specialized APIs for each device family).
• Adaptive Controls & input UI elements are additional
• You target device families, not an OS.
http://blog.marcocantu.com/blog/2015-june-windows10-notifications-vcl-winrt.html
15
Components or Services?
• Tablet with Services or REST binding
• Desktop with Components or COM binding
You probably need to break up the API design in
Service Components (Strategy, Composite, Decorator)
TWebModule1 = class(TWebModule) → WSDL is out – JSON is in
HTTPSoapDispatcher1: THTTPSoapDispatcher;
HTTPSoapPascalInvoker1: THTTPSoapPascalInvoker;
WSDLHTMLPublish1: TWSDLHTMLPublish;
DataSetTableProducer1: TDataSetTableProducer;
16
Hybrid Design
• Check Services as Backup (ex. Geolocation)
• Call Contracts in a sandbox (WinRT)
• Call Services First CSF (map comp or service)
MyPublicIP:= GetHTM('http://ipinfo.io/ip');
function GetGeoWeather(const location: string;
const UrlRestAPI: string): string;
Demo: 640_rest_weather_report2.txt
17
Hybrid 1 Interface n Implements
18
UX Touch Responsive
• We use more services that prevents user from data input.
We include loose coupling through services.
Think how to use multiple input modalities. → sound video!
• When you design your UWP app, you're designing in
effective pixels, not actual physical pixels.
https://msdn.microsoft.com/library/windows/apps/dn958435.aspx
Whenever you want to call an API, you'll need to know
whether the API is implemented by the device family that
your app is targeting! Demo: 640_weather_report.txt
19
Finally you can test with
• Duplicated code in hybrid
• UWP Coding standards & guidelines
• Unit tests for Code Coverage
• Wine Reference or RealVNC on Android
• UISpy to find Components & Controls
• Comments & Compiler Directives
• Design CSF demo: 393_QRCode3.TXT
http://docs.codehaus.org/display/SONAR/Developers%27+Seven+Deadly+Sins
20
On touch don't touch (use)
Entity Refactoring Function Why not
Small Splitter Refactor Default VCL To small but make it larger
Menus Move Method Can't touch it right
BringToFront
fsStayOnTtop
Windows message
WM_SETTINGCHANGE
Focus on background, sent by switching
between desktop mode and tablet mode
Toolbar grips
Controlbar, list
Introduce Parameter Orientation is most times locked, consider
one display direction.
Small Fonts Extract Method Fonts and pixels it does so by multiples of 4
WSDL Extract Interface WSDL is out – JSON is in
F1..F12 Keys User Interface No keys on virtual Keyboards
Only Sound Background Sound Getter- und Setter to log sound
Sanduhr Responsiveness User will not wait for hourglass
21
Win 10 Developer Links
• Remote Delphi App from Android:
https://www.realvnc.com/products/android/
http://www.modelmakertools.com/
https://github.com/maxkleiner/maXbox3/releases
Whitepaper_Windows_10_Big_New_Opportunity.pdf
http://www.softwareschule.ch/download/maxbox_starter41.pdf
• UWP Guideline https://msdn.microsoft.com/en-→
us/library/windows/apps/dn726767.aspx
• http://nemo.sonarsource.org/ (Live Sonar)
• Dev News in Win 10:
https://dev.windows.com/en-us/getstarted/whats-new-windows-10
22
May the source be with you!
max@kleiner.com
www.softwareschule.ch

Contenu connexe

Tendances

Mobileoperatingsystem ppt-130522194611-phpapp02
Mobileoperatingsystem ppt-130522194611-phpapp02Mobileoperatingsystem ppt-130522194611-phpapp02
Mobileoperatingsystem ppt-130522194611-phpapp02
AvniKumari1
 
Technical seminar report on
Technical seminar report onTechnical seminar report on
Technical seminar report on
Balveer Rathore
 
Droidcon2013 miracast final2
Droidcon2013 miracast final2Droidcon2013 miracast final2
Droidcon2013 miracast final2
Droidcon Berlin
 
Mobile operating system ppt
Mobile operating system pptMobile operating system ppt
Mobile operating system ppt
Santosh Kumar
 
Introducing Windows Phone 8 Development
Introducing Windows Phone 8 DevelopmentIntroducing Windows Phone 8 Development
Introducing Windows Phone 8 Development
Dave Bost
 

Tendances (20)

Touch board user guide
Touch board user guideTouch board user guide
Touch board user guide
 
[Android Codefest Germany] Adding x86 target to your Android app by Xavier Ha...
[Android Codefest Germany] Adding x86 target to your Android app by Xavier Ha...[Android Codefest Germany] Adding x86 target to your Android app by Xavier Ha...
[Android Codefest Germany] Adding x86 target to your Android app by Xavier Ha...
 
Mobileoperatingsystem ppt-130522194611-phpapp02
Mobileoperatingsystem ppt-130522194611-phpapp02Mobileoperatingsystem ppt-130522194611-phpapp02
Mobileoperatingsystem ppt-130522194611-phpapp02
 
P3 pocket guide_r2
P3 pocket guide_r2P3 pocket guide_r2
P3 pocket guide_r2
 
How Windows 10 will change the way we use devices
How Windows 10 will change the way we use devicesHow Windows 10 will change the way we use devices
How Windows 10 will change the way we use devices
 
[Ultracode Munich Meetup #7] Building Apps for Nexus Player & Android TV
[Ultracode Munich Meetup #7] Building Apps for Nexus Player & Android TV[Ultracode Munich Meetup #7] Building Apps for Nexus Player & Android TV
[Ultracode Munich Meetup #7] Building Apps for Nexus Player & Android TV
 
Windows 10 Presentation
Windows 10 PresentationWindows 10 Presentation
Windows 10 Presentation
 
Technical seminar report on
Technical seminar report onTechnical seminar report on
Technical seminar report on
 
Mobile Operating Systems
Mobile Operating SystemsMobile Operating Systems
Mobile Operating Systems
 
Delta Engine @ CeBit 2011
Delta Engine @ CeBit 2011Delta Engine @ CeBit 2011
Delta Engine @ CeBit 2011
 
Droidcon2013 miracast final2
Droidcon2013 miracast final2Droidcon2013 miracast final2
Droidcon2013 miracast final2
 
Mobile operating system ppt
Mobile operating system pptMobile operating system ppt
Mobile operating system ppt
 
Microsoft windows 10 features part 2
Microsoft windows 10 features part 2Microsoft windows 10 features part 2
Microsoft windows 10 features part 2
 
Mobile Operating System
Mobile Operating SystemMobile Operating System
Mobile Operating System
 
Mobile Operating Systems
Mobile Operating SystemsMobile Operating Systems
Mobile Operating Systems
 
Windows Phone PPT
Windows Phone PPTWindows Phone PPT
Windows Phone PPT
 
Windows 10
Windows 10Windows 10
Windows 10
 
Introducing Windows Phone 8 Development
Introducing Windows Phone 8 DevelopmentIntroducing Windows Phone 8 Development
Introducing Windows Phone 8 Development
 
Windows In Academia UNITY Presentation
Windows In Academia UNITY PresentationWindows In Academia UNITY Presentation
Windows In Academia UNITY Presentation
 
Open source mobile Operating Systems
Open source mobile Operating SystemsOpen source mobile Operating Systems
Open source mobile Operating Systems
 

Similaire à Windows 10 Hybrid Development

Windows 7 For Developers
Windows 7 For DevelopersWindows 7 For Developers
Windows 7 For Developers
Rishu Mehra
 
Seamless Integration Case Study Launch Activation Windows &amp; &amp; Mobile
Seamless Integration   Case Study  Launch Activation Windows &amp; &amp; MobileSeamless Integration   Case Study  Launch Activation Windows &amp; &amp; Mobile
Seamless Integration Case Study Launch Activation Windows &amp; &amp; Mobile
ambsace2003
 
Windows8 metro presentationupdated
Windows8 metro presentationupdatedWindows8 metro presentationupdated
Windows8 metro presentationupdated
Dhananjay Kumar
 
Emmanuel's Technical Slides 2015
Emmanuel's Technical Slides 2015Emmanuel's Technical Slides 2015
Emmanuel's Technical Slides 2015
Onwubiko Emmanuel
 
Windows 7 For Developers
Windows 7 For DevelopersWindows 7 For Developers
Windows 7 For Developers
rsnarayanan
 

Similaire à Windows 10 Hybrid Development (20)

Pc03
Pc03Pc03
Pc03
 
Windows10
Windows10Windows10
Windows10
 
Leap ahead with windows 10
Leap ahead with windows 10Leap ahead with windows 10
Leap ahead with windows 10
 
Marlabs - MarlaBuzz November
Marlabs - MarlaBuzz NovemberMarlabs - MarlaBuzz November
Marlabs - MarlaBuzz November
 
windows8 vs windows10
windows8 vs windows10windows8 vs windows10
windows8 vs windows10
 
Operating Systems ( Os )
Operating Systems ( Os )Operating Systems ( Os )
Operating Systems ( Os )
 
Windows 7 For Developers
Windows 7 For DevelopersWindows 7 For Developers
Windows 7 For Developers
 
Seamless Integration Case Study Launch Activation Windows &amp; &amp; Mobile
Seamless Integration   Case Study  Launch Activation Windows &amp; &amp; MobileSeamless Integration   Case Study  Launch Activation Windows &amp; &amp; Mobile
Seamless Integration Case Study Launch Activation Windows &amp; &amp; Mobile
 
Windows 10
Windows 10Windows 10
Windows 10
 
Windows 10-ppt
Windows 10-pptWindows 10-ppt
Windows 10-ppt
 
Making apps for the Apple TV
Making apps for the Apple TVMaking apps for the Apple TV
Making apps for the Apple TV
 
About Windows 8
About Windows 8About Windows 8
About Windows 8
 
Tizen Operating System For Mobiles
Tizen Operating System For MobilesTizen Operating System For Mobiles
Tizen Operating System For Mobiles
 
Windows 10
Windows 10Windows 10
Windows 10
 
Windows8 metro presentationupdated
Windows8 metro presentationupdatedWindows8 metro presentationupdated
Windows8 metro presentationupdated
 
Windows8 vdt
Windows8 vdtWindows8 vdt
Windows8 vdt
 
Emmanuel's Technical Slides 2015
Emmanuel's Technical Slides 2015Emmanuel's Technical Slides 2015
Emmanuel's Technical Slides 2015
 
Introduction to Android
Introduction to AndroidIntroduction to Android
Introduction to Android
 
Windows 7 For Developers
Windows 7 For DevelopersWindows 7 For Developers
Windows 7 For Developers
 
Qtframework
QtframeworkQtframework
Qtframework
 

Plus de Max Kleiner

Plus de Max Kleiner (20)

EKON26_VCL4Python.pdf
EKON26_VCL4Python.pdfEKON26_VCL4Python.pdf
EKON26_VCL4Python.pdf
 
EKON26_Open_API_Develop2Cloud.pdf
EKON26_Open_API_Develop2Cloud.pdfEKON26_Open_API_Develop2Cloud.pdf
EKON26_Open_API_Develop2Cloud.pdf
 
maXbox_Starter91_SyntheticData_Implement
maXbox_Starter91_SyntheticData_ImplementmaXbox_Starter91_SyntheticData_Implement
maXbox_Starter91_SyntheticData_Implement
 
Ekon 25 Python4Delphi_MX475
Ekon 25 Python4Delphi_MX475Ekon 25 Python4Delphi_MX475
Ekon 25 Python4Delphi_MX475
 
EKON 25 Python4Delphi_mX4
EKON 25 Python4Delphi_mX4EKON 25 Python4Delphi_mX4
EKON 25 Python4Delphi_mX4
 
maXbox Starter87
maXbox Starter87maXbox Starter87
maXbox Starter87
 
maXbox Starter78 PortablePixmap
maXbox Starter78 PortablePixmapmaXbox Starter78 PortablePixmap
maXbox Starter78 PortablePixmap
 
maXbox starter75 object detection
maXbox starter75 object detectionmaXbox starter75 object detection
maXbox starter75 object detection
 
BASTA 2020 VS Code Data Visualisation
BASTA 2020 VS Code Data VisualisationBASTA 2020 VS Code Data Visualisation
BASTA 2020 VS Code Data Visualisation
 
EKON 24 ML_community_edition
EKON 24 ML_community_editionEKON 24 ML_community_edition
EKON 24 ML_community_edition
 
maxbox starter72 multilanguage coding
maxbox starter72 multilanguage codingmaxbox starter72 multilanguage coding
maxbox starter72 multilanguage coding
 
EKON 23 Code_review_checklist
EKON 23 Code_review_checklistEKON 23 Code_review_checklist
EKON 23 Code_review_checklist
 
EKON 12 Running OpenLDAP
EKON 12 Running OpenLDAP EKON 12 Running OpenLDAP
EKON 12 Running OpenLDAP
 
EKON 12 Closures Coding
EKON 12 Closures CodingEKON 12 Closures Coding
EKON 12 Closures Coding
 
NoGUI maXbox Starter70
NoGUI maXbox Starter70NoGUI maXbox Starter70
NoGUI maXbox Starter70
 
maXbox starter69 Machine Learning VII
maXbox starter69 Machine Learning VIImaXbox starter69 Machine Learning VII
maXbox starter69 Machine Learning VII
 
maXbox starter68 machine learning VI
maXbox starter68 machine learning VImaXbox starter68 machine learning VI
maXbox starter68 machine learning VI
 
maXbox starter67 machine learning V
maXbox starter67 machine learning VmaXbox starter67 machine learning V
maXbox starter67 machine learning V
 
maXbox starter65 machinelearning3
maXbox starter65 machinelearning3maXbox starter65 machinelearning3
maXbox starter65 machinelearning3
 
EKON22_Overview_Machinelearning_Diagrams
EKON22_Overview_Machinelearning_DiagramsEKON22_Overview_Machinelearning_Diagrams
EKON22_Overview_Machinelearning_Diagrams
 

Dernier

Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar ≼🔝 Delhi door step de...
Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar  ≼🔝 Delhi door step de...Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar  ≼🔝 Delhi door step de...
Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar ≼🔝 Delhi door step de...
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
notes on Evolution Of Analytic Scalability.ppt
notes on Evolution Of Analytic Scalability.pptnotes on Evolution Of Analytic Scalability.ppt
notes on Evolution Of Analytic Scalability.ppt
MsecMca
 
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
dharasingh5698
 
Call Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort ServiceCall Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
dollysharma2066
 

Dernier (20)

Unleashing the Power of the SORA AI lastest leap
Unleashing the Power of the SORA AI lastest leapUnleashing the Power of the SORA AI lastest leap
Unleashing the Power of the SORA AI lastest leap
 
Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar ≼🔝 Delhi door step de...
Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar  ≼🔝 Delhi door step de...Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar  ≼🔝 Delhi door step de...
Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar ≼🔝 Delhi door step de...
 
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete RecordCCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
 
notes on Evolution Of Analytic Scalability.ppt
notes on Evolution Of Analytic Scalability.pptnotes on Evolution Of Analytic Scalability.ppt
notes on Evolution Of Analytic Scalability.ppt
 
Generative AI or GenAI technology based PPT
Generative AI or GenAI technology based PPTGenerative AI or GenAI technology based PPT
Generative AI or GenAI technology based PPT
 
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
 
The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...
The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...
The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...
 
Double rodded leveling 1 pdf activity 01
Double rodded leveling 1 pdf activity 01Double rodded leveling 1 pdf activity 01
Double rodded leveling 1 pdf activity 01
 
BSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptx
BSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptxBSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptx
BSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptx
 
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...
 
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
 
Call Girls Wakad Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Wakad Call Me 7737669865 Budget Friendly No Advance BookingCall Girls Wakad Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Wakad Call Me 7737669865 Budget Friendly No Advance Booking
 
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
 
Thermal Engineering Unit - I & II . ppt
Thermal Engineering  Unit - I & II . pptThermal Engineering  Unit - I & II . ppt
Thermal Engineering Unit - I & II . ppt
 
Water Industry Process Automation & Control Monthly - April 2024
Water Industry Process Automation & Control Monthly - April 2024Water Industry Process Automation & Control Monthly - April 2024
Water Industry Process Automation & Control Monthly - April 2024
 
Call Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort ServiceCall Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
 
Bhosari ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready For ...
Bhosari ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready For ...Bhosari ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready For ...
Bhosari ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready For ...
 
PVC VS. FIBERGLASS (FRP) GRAVITY SEWER - UNI BELL
PVC VS. FIBERGLASS (FRP) GRAVITY SEWER - UNI BELLPVC VS. FIBERGLASS (FRP) GRAVITY SEWER - UNI BELL
PVC VS. FIBERGLASS (FRP) GRAVITY SEWER - UNI BELL
 
Online banking management system project.pdf
Online banking management system project.pdfOnline banking management system project.pdf
Online banking management system project.pdf
 
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
 

Windows 10 Hybrid Development

  • 1. 1 Hybrid Windows 10 10 Writeln 'Hi Developer'; 20 Goto 10; 30 'Win 95, 98, ME, NT, 2000, XP, Vista, 7, 8, 10';
  • 2. 2 Agenda EKON • Hybrid Development (desktop versus tablet)? • What's important in Win10 Development? • UX Design & Responsiveness • Improve your Code (Dual Testing) • Optimisation with Wine, UISpy & other Tools
  • 3. 3 ITouch Questions first ● Are touch actions like mouse actions? → Yes Tip = LeftClick - Touch/Hold = RightClick. ● Do we need Intel CPU? → Yes like Win7 Asus Eee Slate EP121 (I5-470UM) ● Do we have a virtual Keyboard? → Yes like a focus Edit-Control or simulate keyboard code→ ● Do I have Buttons, Trackbar, Pulldown, Listboxes... → Yes but make it bigger showMessagebig() code→ → ● What about third party components? → Yes or no like async pro (no serial) or video signals (no vga) or barcode reader (various onkeypress) http://docs.codehaus.org/display/SONAR/Plugin+Library
  • 4. 4 Develop for Multiple Devices Use cloud services to sync across devices. • With Win 10 you no longer target an OS, your app aims to 1 or n device families (PC, IoT, Xbox, Mobile). • A device family is a set of APIs collected together & given name, version number. demo: 15_pas_onedrive.txt
  • 5. 5 Menus & Mouse are gone Iterator Disable Structure with MaxForm1.MainMenu1 do for it:= 0 to items.count-1 do begin TMenuItem(items).items[it].enabled:= false; writeln(TMenuItem(items).items[it].name); end; Demo: 547_Win10_Develop_4_BASTA_EKON19.TXT
  • 6. 6 Menu Methods to look for • A TMenuItem component contains the properties, methods, & events for each menu item on a menu (TMainMenu or TPopupMenu). • Each TMainMenu or TPopupMenu component may contain multiple menu items. • Relink your menu item object for each command on the menu to other controls. • Test mode with maXbox if GetSystemMetrics(SM_TABLETPC) <> 0 then Showmessage('Tablet');
  • 7. 7 Intro: Win 10 is hybrid • The Start menu can also expand to fill the entire screen, in a way that's similar to the Start screen in Win 8 & in Win Phone. • It definitely looks like it will be a solid compromise for users who still want the freedom to use both touchscreen & mouse-keyboard controls. Multiple desktops. Win 10 lets you add virtual desktops so you can organize work more strictly. For ex. you have a W32 app open in one desktop, & Wine test application in another. Also better DOS prompt. → demo
  • 8. 8 IMPLEMENTED FEATURES II Basically, if you have a device like the Surface Pro 3 that has a keyboard attached, the UI in Win 10 will work in desktop mode. If the keyboard is detached, or if it flips around to show just the touchscreen, Win 10 will pop up an alert asking the user to go into tablet mode. Another feature aimed at tablet users is Continuum, which prompts user to engage Win 10 “tablet mode” if a tablet is undocked or keyboard on a convertible is folded back. In tablet mode, apps including start menu run full- screen. https://dev.windows.com/en-us/getstarted/whats-new-windows-10
  • 9. 9 Preparation Checklist 1. Set Compiler Directives {$IFDEF TABLET} 2. Test functions since Delphi 2010 introduced some nice touch and gesture support. 3. Check with GetSystemMetrics(SM_TABLETPC) or registry for value of HKEY_CURRENT_USERSOFTWAREMicrosoftWindowsCurrentVersionImmersiveShellTabletMode 4. Check your TTouchKeyboard or virtual keyboard for missing keys or strange signs. Complete? 5. Installation Issues, Licenses, Certs. Are there any? TStringlist(dumpComponentsFtype(Application,'TMenuItem',cmplst));
  • 10. 10 Win 10 Develop • The Win32 & Win64 API is common to all versions of Windows, & now that WinRT apps also run in a window, there is no longer a sharp distinction from user’s sight. • This means that by writing to the full Win API developers can support Win 7 or even Win XP as well as running well in Win 10. • Delphi has a WinRT bridge (wrapper classes).
  • 11. 11 More Win32/64 Codebase ● Another advantage of coding to the Win API, rather than WinRT, is that applications will run on Win 7 as well as Win 8 & 10. ● Despite Microsoft’s ambitions, not everyone will move quickly to Win 10 & retaining Win 7 compatibility means a larger installed base for your application. ● Hence RAD Studio 10 doesn't currently compile WinRT apps; W32/64 are first class citizens.
  • 12. 12 Universal Win Platform ● “Windows as a service,” which means that the operating system will be continuously updated. ● An “All apps” hierarchical view menu on the left. ● Win 10 makes it easier to develop apps for the UWP with just one API set, one app package, & one store to reach all Win 10 devices – PC, tablet, phone & more gadgets. ● support for screen sizes, & also a variety of interaction models, whether it be touch, mouse & keyboard, a game controller, or a pen. ● https://msdn.microsoft.com/en-us/library/windows/apps/dn894631.aspx
  • 13. 13 Win 10 Core Optimisation demo: 630_multikernel3.TXT
  • 14. 14 Win 10 API • The core APIs, it will run on any Win 10 device. • There's a common API ((UWP) core APIs) surface across device families. • Extension SDKs make your app light up on specialized devices (specialized APIs for each device family). • Adaptive Controls & input UI elements are additional • You target device families, not an OS. http://blog.marcocantu.com/blog/2015-june-windows10-notifications-vcl-winrt.html
  • 15. 15 Components or Services? • Tablet with Services or REST binding • Desktop with Components or COM binding You probably need to break up the API design in Service Components (Strategy, Composite, Decorator) TWebModule1 = class(TWebModule) → WSDL is out – JSON is in HTTPSoapDispatcher1: THTTPSoapDispatcher; HTTPSoapPascalInvoker1: THTTPSoapPascalInvoker; WSDLHTMLPublish1: TWSDLHTMLPublish; DataSetTableProducer1: TDataSetTableProducer;
  • 16. 16 Hybrid Design • Check Services as Backup (ex. Geolocation) • Call Contracts in a sandbox (WinRT) • Call Services First CSF (map comp or service) MyPublicIP:= GetHTM('http://ipinfo.io/ip'); function GetGeoWeather(const location: string; const UrlRestAPI: string): string; Demo: 640_rest_weather_report2.txt
  • 17. 17 Hybrid 1 Interface n Implements
  • 18. 18 UX Touch Responsive • We use more services that prevents user from data input. We include loose coupling through services. Think how to use multiple input modalities. → sound video! • When you design your UWP app, you're designing in effective pixels, not actual physical pixels. https://msdn.microsoft.com/library/windows/apps/dn958435.aspx Whenever you want to call an API, you'll need to know whether the API is implemented by the device family that your app is targeting! Demo: 640_weather_report.txt
  • 19. 19 Finally you can test with • Duplicated code in hybrid • UWP Coding standards & guidelines • Unit tests for Code Coverage • Wine Reference or RealVNC on Android • UISpy to find Components & Controls • Comments & Compiler Directives • Design CSF demo: 393_QRCode3.TXT http://docs.codehaus.org/display/SONAR/Developers%27+Seven+Deadly+Sins
  • 20. 20 On touch don't touch (use) Entity Refactoring Function Why not Small Splitter Refactor Default VCL To small but make it larger Menus Move Method Can't touch it right BringToFront fsStayOnTtop Windows message WM_SETTINGCHANGE Focus on background, sent by switching between desktop mode and tablet mode Toolbar grips Controlbar, list Introduce Parameter Orientation is most times locked, consider one display direction. Small Fonts Extract Method Fonts and pixels it does so by multiples of 4 WSDL Extract Interface WSDL is out – JSON is in F1..F12 Keys User Interface No keys on virtual Keyboards Only Sound Background Sound Getter- und Setter to log sound Sanduhr Responsiveness User will not wait for hourglass
  • 21. 21 Win 10 Developer Links • Remote Delphi App from Android: https://www.realvnc.com/products/android/ http://www.modelmakertools.com/ https://github.com/maxkleiner/maXbox3/releases Whitepaper_Windows_10_Big_New_Opportunity.pdf http://www.softwareschule.ch/download/maxbox_starter41.pdf • UWP Guideline https://msdn.microsoft.com/en-→ us/library/windows/apps/dn726767.aspx • http://nemo.sonarsource.org/ (Live Sonar) • Dev News in Win 10: https://dev.windows.com/en-us/getstarted/whats-new-windows-10
  • 22. 22 May the source be with you! max@kleiner.com www.softwareschule.ch