SlideShare une entreprise Scribd logo
1  sur  39
Télécharger pour lire hors ligne
Qt Dev Days Berlin 2014 
7.10.2014 
by Christian Feldbacher, MSc 
Co-Founder V-Play GmbH 
Qt Responsive Design& How to Boost User Retention
•XP 
–Game Development 10+ years 
–iOS, Android, Symbian App Development 
–C++ 10+ years 
–Qt 5+ years 
•Co-FoundedV-Play GmbH 2012 
–Started in 2009, full-time 2011 
–Basedin Vienna, Austria 
–EhancesQt 5 forgames 
AboutMe
Why QML Plugins? 
2011 
Game prototype 
For iOS & Android 
QGraphicsView 
2011 
Custom cocos2d-x 
Renderer beginning 
2012 
V-Play Launch 
Ready to publish high performance 
iOS & Android games 
2014 
V-Play Qt 5 Plugins 
For apps & games 
2010 
QML / Qt Quick 
Wholy shit 
That’s cool!!!
V-Play Plugins 
Availableat http://plugins.v-play.net
Part 1: ResponsiveDesign withQt 
Part 2: HowtoIncreaseUser Retention 
Agenda
Part 1: ResponsiveDesign withQt
Fixed Ratio, Percentage
•Usemultiplicationforsizes 
•UseImage.PreserveAspectFit 
•Usefont.pixelSize* heightforText 
•Usefulforappsthatshall/canhavethesame UI ratioon all devices 
•Verysimple toimplement 
Fixed Ratio, Percentage
Layouts makepositioningsyntaxnicer: 
Layouts
Layouts makepositioningsyntaxnicer: 
Layoutsvs
•The propertiesx, y, width, heightareignoredin Layout childrenitems 
•Usesizeconstraintsminimum*, preferred*, maximum* andfill* 
•Similartoweightsconceptin Android LinearLayout, but moreflexible 
* eitherWidthorHeight 
Layouts
•Items shallbesame physicalsize(millimeters) acrossall devices 
•Pixels not usable 
•Usedpinstead–howtodo thatin QML? 
Density-Independence
CalculatescreenDpi 
https://bugreports.qt-project.org/browse/QTBUG-35701 
ExamplescreenDpivaluesare: 
–326 foriPhone Retina 
–212 forNexus 7 
–143 for13“ fullHdnotebook 
Density-Independence
At a 160 dpi screen, 1 dp= 1 pixel 
At a 320 dpi screen, 1 dp= 2 pixels 
Still thesame physicalspace! 
Implementation Guide & Usage: 
Density-Independence
More Issueson Windows withpointSize: 
Text Sizes
RemainingText Issues: 
•User fontsizesettingsnot supported 
•Youcouldreaditbyyourselfthough 
Text Sizes
•Problem with1 image: 
–Low resimage: blursat upscaling 
–High resimage: space& memorywaste, performanceissuesat loadingtime 
•Solution: Chooseimagebasedon screensizeordpi 
•Bad Approach: 
Dynamic Image Switching
•File accessgeneralizedacrossplatforms 
•Works behindthescenes 
•V-Play Approach: 
Lesscode& easiertoread(noifdefs) 
Same physicalsizethankstodp() 
Dynamic Image Switching 
+hd2/imageSwitching.png 
+hd/imageSwitching.png 
imageSwitching.png
•Also useper platform, e.g. +ios, +android 
•TogetherwithQML Singletons setfontsizes, dimensions, layouts 
•DisadvantagesFile Selectors: 
–Must besetbeforeQmlEngine.load() 
–Cannotbechangedat runtime 
Todo that, useLoader 
–Not asmatureasAndroid (e.g. sw600dp) 
File Selectors
•Toachievethis: 
Density-Independence Summary
Content Scaling 
•1 logicalScene 480x320, Safe Zone 
•Getsscaledtofullscreen 
•Default scaleModeletterbox 
•Scene isvisibleon all Devices 
•Similarapproachtofixedratio(percentage) 
•Esp. forgamesimportanttobecomparable 
•Advantages: 
•Simpler positioning, like on iOS 
•Easiesttouse, fastest todevelop 
•Goodenoughformostusecases, also apps
Forfullscreenusagelike UI elements, usegameWindowAnchorItem 
Content Scalinghttp://v-play.net/doc/v-play-examples-windowscenescaling-example/
•Makebackgroundbigger 
•Outside zonecuton devices 
•Whatiscutdependson aspectratio 
Content Scaling
•UseContent Scalingwhenpossible: 
–Pixel valuesarecontent-scaled 
–Easiest& fastest todevelop 
–File Selectorsauto-supportedbyV-Play 
•If(ContentScaling!== possible): 
–ForequalphysicalItem sizesusedp() 
–ForText usefont.pixelSize: sp() 
•Supply sd(default), +hd, +hd2 graphics 
•Never usepixels! 
QML ResponsiveDesign Summary
Part 2: HowtoIncreaseUser Retention 
Ofmobile apps& games
•Achievement& Leaderboardintegrationin 70 Lines ofCode! 
•Facebook & Game Center integration 
•Also usefulforapps! 
V-Play Game Network
V-Play Game Network
V-Play Game Network
•GameCenteron steroidsmadefor/withQt 
•True cross-platform: 
–Leaderboards 
–Achievements 
–Challenges 
–Cloud storage& syncing 
•DeepFacebook connection 
•Fulloffline support 
•Skinnable 
•Add Gamification also for„normal apps“ 
V-Play Game Networkhttp://v-play.net/doc/vplay-vplaygamenetwork/
User-GeneratedContent 
Balance any property at runtime with the ItemEditorcomponent
User-GeneratedContent 
Style the UI to match your app / game
User-GeneratedContent 
Monetize the user-generated content with an 
“App Store for Levels”
User-GeneratedContent 
This is all it takes to change the width & height property at runtime
V-Play Level Editor & Level Sharing 
Squaby 
Particle Editor 
•Save time in internal development 
•Let users create levels 
•Social Sharing & Rating of Levels Community 
•Monetize content packs with IAP 
•Customizable Look 
Add appstoreforusergeneratedcontenttoyourownapps/gameseasily. 
Examples(in App Stores): 
Stack And Friends
Push Notifications 
http://plugins.v-play.net/plugins/notifications
V-Play Plugins 
Availableat http://plugins.v-play.net 
0-100€per pluginper app, Samples on GitHub
•Gamification elements: 
–Leaderboards 
–Achievements 
–Challenges 
•SocialIntegrationslike Facebook 
•User-GeneratedContent 
•Push Notifications 
User Retention Summary
Contact 
Christian Feldbacher 
Co-Founder 
chris@v-play.net 
Alex Leutgöb 
Co-Founder 
alex@v-play.net 
V-Play GmbH 
Kolonitzgasse9/11-14 
A –1030 Wien 
http://v-play.net 
@vplayengine 
http://www.facebook.com/vplayengine 
Meet us outside @ the V-Play Booth! 
•Summary ofSupportingMultiple Screens & Densitiesat V-Play Blog: http://v-play.net/2014/11/supporting-multiple-screen-sizes-and-screen-densities- with-qt-and-v-play 
•Android Guide –„SupportingMultiple Screens“: http://developer.android.com/guide/practices/screens_support.html 
•V-Play Guide -„How to create mobile games for different screen sizes and resolutions”: http://v-play.net/doc/vplay-different-screen-sizes/ 
•Windows DevCenter Guide –„DPI andDevice-Independent Pixels“: http://msdn.microsoft.com/en-us/library/windows/desktop/ff684173%28v=vs.85%29.aspx 
•V-Play Tutorial -„How to increase player retention & downloads in 10 minutes”: http://v-play.net/doc/lesson-5/ 
•V-Play Tutorial –„How to add Facebook & Game Center sharing to your game”: http://v-play.net/doc/lesson-6/ 
•V-Play Tutorial –„How to boost level creation and balancing of your game with V-Play Level Editor”: http://v-play.net/doc/lesson-7/ 
•V-Play Tutorial –„How to benefit from user-generated content in your game with V-Play Level Store”: http://v-play.net/doc/lesson-8/ 
References

Contenu connexe

Tendances

Qt Internationalization
Qt InternationalizationQt Internationalization
Qt InternationalizationICS
 
Best Practices in Qt Quick/QML - Part III
Best Practices in Qt Quick/QML - Part IIIBest Practices in Qt Quick/QML - Part III
Best Practices in Qt Quick/QML - Part IIIICS
 
Best Practices in Qt Quick/QML - Part I
Best Practices in Qt Quick/QML - Part IBest Practices in Qt Quick/QML - Part I
Best Practices in Qt Quick/QML - Part IICS
 
Quickly Testing Qt Desktop Applications
Quickly Testing Qt Desktop ApplicationsQuickly Testing Qt Desktop Applications
Quickly Testing Qt Desktop ApplicationsClare Macrae
 
Railway Oriented Programming
Railway Oriented ProgrammingRailway Oriented Programming
Railway Oriented ProgrammingScott Wlaschin
 
Xpath in Selenium | Selenium Xpath Tutorial | Selenium Xpath Examples | Selen...
Xpath in Selenium | Selenium Xpath Tutorial | Selenium Xpath Examples | Selen...Xpath in Selenium | Selenium Xpath Tutorial | Selenium Xpath Examples | Selen...
Xpath in Selenium | Selenium Xpath Tutorial | Selenium Xpath Examples | Selen...Edureka!
 
JUnit & Mockito, first steps
JUnit & Mockito, first stepsJUnit & Mockito, first steps
JUnit & Mockito, first stepsRenato Primavera
 
Java. Explicit and Implicit Wait. Testing Ajax Applications
Java. Explicit and Implicit Wait. Testing Ajax ApplicationsJava. Explicit and Implicit Wait. Testing Ajax Applications
Java. Explicit and Implicit Wait. Testing Ajax ApplicationsМарія Русин
 
Qt test framework
Qt test frameworkQt test framework
Qt test frameworkICS
 
Introduction to Node js
Introduction to Node jsIntroduction to Node js
Introduction to Node jsAkshay Mathur
 
Mocking in Java with Mockito
Mocking in Java with MockitoMocking in Java with Mockito
Mocking in Java with MockitoRichard Paul
 
New Elements & Features in HTML5
New Elements & Features in HTML5New Elements & Features in HTML5
New Elements & Features in HTML5Jamshid Hashimi
 
Go Concurrency
Go ConcurrencyGo Concurrency
Go Concurrencyjgrahamc
 

Tendances (20)

Qt Internationalization
Qt InternationalizationQt Internationalization
Qt Internationalization
 
Best Practices in Qt Quick/QML - Part III
Best Practices in Qt Quick/QML - Part IIIBest Practices in Qt Quick/QML - Part III
Best Practices in Qt Quick/QML - Part III
 
Best Practices in Qt Quick/QML - Part I
Best Practices in Qt Quick/QML - Part IBest Practices in Qt Quick/QML - Part I
Best Practices in Qt Quick/QML - Part I
 
Quickly Testing Qt Desktop Applications
Quickly Testing Qt Desktop ApplicationsQuickly Testing Qt Desktop Applications
Quickly Testing Qt Desktop Applications
 
Railway Oriented Programming
Railway Oriented ProgrammingRailway Oriented Programming
Railway Oriented Programming
 
Qt Qml
Qt QmlQt Qml
Qt Qml
 
Xpath in Selenium | Selenium Xpath Tutorial | Selenium Xpath Examples | Selen...
Xpath in Selenium | Selenium Xpath Tutorial | Selenium Xpath Examples | Selen...Xpath in Selenium | Selenium Xpath Tutorial | Selenium Xpath Examples | Selen...
Xpath in Selenium | Selenium Xpath Tutorial | Selenium Xpath Examples | Selen...
 
02 - Basics of Qt
02 - Basics of Qt02 - Basics of Qt
02 - Basics of Qt
 
Concurrency With Go
Concurrency With GoConcurrency With Go
Concurrency With Go
 
JUnit & Mockito, first steps
JUnit & Mockito, first stepsJUnit & Mockito, first steps
JUnit & Mockito, first steps
 
TypeScript
TypeScriptTypeScript
TypeScript
 
TestNG
TestNGTestNG
TestNG
 
Java. Explicit and Implicit Wait. Testing Ajax Applications
Java. Explicit and Implicit Wait. Testing Ajax ApplicationsJava. Explicit and Implicit Wait. Testing Ajax Applications
Java. Explicit and Implicit Wait. Testing Ajax Applications
 
Qt test framework
Qt test frameworkQt test framework
Qt test framework
 
JS Event Loop
JS Event LoopJS Event Loop
JS Event Loop
 
Introduction to Node js
Introduction to Node jsIntroduction to Node js
Introduction to Node js
 
Mocking in Java with Mockito
Mocking in Java with MockitoMocking in Java with Mockito
Mocking in Java with Mockito
 
Qt for beginners
Qt for beginnersQt for beginners
Qt for beginners
 
New Elements & Features in HTML5
New Elements & Features in HTML5New Elements & Features in HTML5
New Elements & Features in HTML5
 
Go Concurrency
Go ConcurrencyGo Concurrency
Go Concurrency
 

En vedette

Creating apps that work on all screen sizes
Creating apps that work on all screen sizesCreating apps that work on all screen sizes
Creating apps that work on all screen sizesRavi Vyas
 
Screen orientations in android
Screen orientations in androidScreen orientations in android
Screen orientations in androidmanjakannar
 
Design Multiple Screen android
Design Multiple Screen androidDesign Multiple Screen android
Design Multiple Screen androidChaiwoot Phrombutr
 
Qt App Development - Cross-Platform Development for Android, iOS, Windows Pho...
Qt App Development - Cross-Platform Development for Android, iOS, Windows Pho...Qt App Development - Cross-Platform Development for Android, iOS, Windows Pho...
Qt App Development - Cross-Platform Development for Android, iOS, Windows Pho...Andreas Jakl
 
Qt for beginners part 1 overview and key concepts
Qt for beginners part 1   overview and key conceptsQt for beginners part 1   overview and key concepts
Qt for beginners part 1 overview and key conceptsICS
 
Practical QML - Key Navigation, Dynamic Language and Theme Change
Practical QML - Key Navigation, Dynamic Language and Theme ChangePractical QML - Key Navigation, Dynamic Language and Theme Change
Practical QML - Key Navigation, Dynamic Language and Theme ChangeBurkhard Stubert
 
WinJS, Apache Cordova & NFC - HTML5 apps for Android and Windows Phone
WinJS, Apache Cordova & NFC - HTML5 apps for Android and Windows PhoneWinJS, Apache Cordova & NFC - HTML5 apps for Android and Windows Phone
WinJS, Apache Cordova & NFC - HTML5 apps for Android and Windows PhoneAndreas Jakl
 
Qt for beginners part 2 widgets
Qt for beginners part 2   widgetsQt for beginners part 2   widgets
Qt for beginners part 2 widgetsICS
 
Qt for beginners part 5 ask the experts
Qt for beginners part 5   ask the expertsQt for beginners part 5   ask the experts
Qt for beginners part 5 ask the expertsICS
 
Supporting multiple screens on android
Supporting multiple screens on androidSupporting multiple screens on android
Supporting multiple screens on androidLi SUN
 
Qt and QML performance tips & tricks for Qt 4.7
Qt and QML performance tips & tricks for Qt 4.7Qt and QML performance tips & tricks for Qt 4.7
Qt and QML performance tips & tricks for Qt 4.7Pasi Kellokoski
 
The Mobile Market and Qt
The Mobile Market and QtThe Mobile Market and Qt
The Mobile Market and QtEspen Riskedal
 
Cross platform development
Cross platform developmentCross platform development
Cross platform developmentdftaiwo
 
Qt Application Development on Harmattan
Qt Application Development on HarmattanQt Application Development on Harmattan
Qt Application Development on HarmattanVille Lavonius
 
Cross platform solutions for Mobile App Development
Cross platform solutions for Mobile App Development Cross platform solutions for Mobile App Development
Cross platform solutions for Mobile App Development USAID CEED II Project Moldova
 
Qt for beginners part 4 doing more
Qt for beginners part 4   doing moreQt for beginners part 4   doing more
Qt for beginners part 4 doing moreICS
 
Building Cross-Platform Apps using Qt and Qyoto
Building Cross-Platform Apps using Qt and QyotoBuilding Cross-Platform Apps using Qt and Qyoto
Building Cross-Platform Apps using Qt and QyotoJeff Alstadt
 
Qt State Machine Framework
Qt State Machine FrameworkQt State Machine Framework
Qt State Machine Frameworkaccount inactive
 

En vedette (20)

Creating apps that work on all screen sizes
Creating apps that work on all screen sizesCreating apps that work on all screen sizes
Creating apps that work on all screen sizes
 
Screen orientations in android
Screen orientations in androidScreen orientations in android
Screen orientations in android
 
Design Multiple Screen android
Design Multiple Screen androidDesign Multiple Screen android
Design Multiple Screen android
 
Qt App Development - Cross-Platform Development for Android, iOS, Windows Pho...
Qt App Development - Cross-Platform Development for Android, iOS, Windows Pho...Qt App Development - Cross-Platform Development for Android, iOS, Windows Pho...
Qt App Development - Cross-Platform Development for Android, iOS, Windows Pho...
 
Qt for beginners part 1 overview and key concepts
Qt for beginners part 1   overview and key conceptsQt for beginners part 1   overview and key concepts
Qt for beginners part 1 overview and key concepts
 
Practical QML - Key Navigation, Dynamic Language and Theme Change
Practical QML - Key Navigation, Dynamic Language and Theme ChangePractical QML - Key Navigation, Dynamic Language and Theme Change
Practical QML - Key Navigation, Dynamic Language and Theme Change
 
QUOSA for iPad sharing
QUOSA for iPad sharingQUOSA for iPad sharing
QUOSA for iPad sharing
 
WinJS, Apache Cordova & NFC - HTML5 apps for Android and Windows Phone
WinJS, Apache Cordova & NFC - HTML5 apps for Android and Windows PhoneWinJS, Apache Cordova & NFC - HTML5 apps for Android and Windows Phone
WinJS, Apache Cordova & NFC - HTML5 apps for Android and Windows Phone
 
SIDC Seafood Handbook
SIDC Seafood HandbookSIDC Seafood Handbook
SIDC Seafood Handbook
 
Qt for beginners part 2 widgets
Qt for beginners part 2   widgetsQt for beginners part 2   widgets
Qt for beginners part 2 widgets
 
Qt for beginners part 5 ask the experts
Qt for beginners part 5   ask the expertsQt for beginners part 5   ask the experts
Qt for beginners part 5 ask the experts
 
Supporting multiple screens on android
Supporting multiple screens on androidSupporting multiple screens on android
Supporting multiple screens on android
 
Qt and QML performance tips & tricks for Qt 4.7
Qt and QML performance tips & tricks for Qt 4.7Qt and QML performance tips & tricks for Qt 4.7
Qt and QML performance tips & tricks for Qt 4.7
 
The Mobile Market and Qt
The Mobile Market and QtThe Mobile Market and Qt
The Mobile Market and Qt
 
Cross platform development
Cross platform developmentCross platform development
Cross platform development
 
Qt Application Development on Harmattan
Qt Application Development on HarmattanQt Application Development on Harmattan
Qt Application Development on Harmattan
 
Cross platform solutions for Mobile App Development
Cross platform solutions for Mobile App Development Cross platform solutions for Mobile App Development
Cross platform solutions for Mobile App Development
 
Qt for beginners part 4 doing more
Qt for beginners part 4   doing moreQt for beginners part 4   doing more
Qt for beginners part 4 doing more
 
Building Cross-Platform Apps using Qt and Qyoto
Building Cross-Platform Apps using Qt and QyotoBuilding Cross-Platform Apps using Qt and Qyoto
Building Cross-Platform Apps using Qt and Qyoto
 
Qt State Machine Framework
Qt State Machine FrameworkQt State Machine Framework
Qt State Machine Framework
 

Similaire à "How to Develop with Qt for Multiple Screen Resolutions and Increase Your User Retention (of Cross-Platform Apps and Games)" - Qt Developer Days 2014 Presentation by V-Play

Qt World Summit 2015 Talk by V-Play: How to Develop with Qt for Multiple Scre...
Qt World Summit 2015 Talk by V-Play: How to Develop with Qt for Multiple Scre...Qt World Summit 2015 Talk by V-Play: How to Develop with Qt for Multiple Scre...
Qt World Summit 2015 Talk by V-Play: How to Develop with Qt for Multiple Scre...FELGO SDK
 
Desktop apps with node webkit
Desktop apps with node webkitDesktop apps with node webkit
Desktop apps with node webkitPaul Jensen
 
INF104 - HCL Domino AppDev Pack – The Future of Domino App Dev Nobody Knows A...
INF104 - HCL Domino AppDev Pack – The Future of Domino App Dev Nobody Knows A...INF104 - HCL Domino AppDev Pack – The Future of Domino App Dev Nobody Knows A...
INF104 - HCL Domino AppDev Pack – The Future of Domino App Dev Nobody Knows A...Heiko Voigt
 
Configuring in the Browser, Really!
Configuring in the Browser, Really!Configuring in the Browser, Really!
Configuring in the Browser, Really!Tim Geisler
 
Modern App Development with the SharePoint Framework
Modern App Development with the SharePoint FrameworkModern App Development with the SharePoint Framework
Modern App Development with the SharePoint FrameworkPete Filicetti
 
Metodologías de desarrollo de software en Gaming
Metodologías de desarrollo de software en GamingMetodologías de desarrollo de software en Gaming
Metodologías de desarrollo de software en GamingGlobant
 
Froyo to kit kat two years developing & maintaining deliradio
Froyo to kit kat   two years developing & maintaining deliradioFroyo to kit kat   two years developing & maintaining deliradio
Froyo to kit kat two years developing & maintaining deliradioDroidcon Berlin
 
Visual Studio 2015: novità per gli sviluppatori iOS, Android e Cross-Platform
Visual Studio 2015: novità per gli sviluppatori iOS, Android e Cross-PlatformVisual Studio 2015: novità per gli sviluppatori iOS, Android e Cross-Platform
Visual Studio 2015: novità per gli sviluppatori iOS, Android e Cross-PlatformStefano Ottaviani
 
What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...
What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...
What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...Heiko Voigt
 
Designer and Developer Collaboration with Visual Studio 2012 and Expression B...
Designer and Developer Collaboration with Visual Studio 2012 and Expression B...Designer and Developer Collaboration with Visual Studio 2012 and Expression B...
Designer and Developer Collaboration with Visual Studio 2012 and Expression B...Code Mastery
 
Google Platform Overview (April 2014)
Google Platform Overview (April 2014)Google Platform Overview (April 2014)
Google Platform Overview (April 2014)Ido Green
 
Joomla as a mobile App backend - ideas, examples and experiences
Joomla as a mobile App backend - ideas, examples and experiencesJoomla as a mobile App backend - ideas, examples and experiences
Joomla as a mobile App backend - ideas, examples and experiencesAndy_Gaskell
 
Project Betzn - LinuxTag 2011
Project Betzn - LinuxTag 2011Project Betzn - LinuxTag 2011
Project Betzn - LinuxTag 2011Frank Karlitschek
 
Niko Sévoz – Game designer
Niko Sévoz – Game designerNiko Sévoz – Game designer
Niko Sévoz – Game designerNiko S
 

Similaire à "How to Develop with Qt for Multiple Screen Resolutions and Increase Your User Retention (of Cross-Platform Apps and Games)" - Qt Developer Days 2014 Presentation by V-Play (20)

Qt World Summit 2015 Talk by V-Play: How to Develop with Qt for Multiple Scre...
Qt World Summit 2015 Talk by V-Play: How to Develop with Qt for Multiple Scre...Qt World Summit 2015 Talk by V-Play: How to Develop with Qt for Multiple Scre...
Qt World Summit 2015 Talk by V-Play: How to Develop with Qt for Multiple Scre...
 
Desktop apps with node webkit
Desktop apps with node webkitDesktop apps with node webkit
Desktop apps with node webkit
 
INF104 - HCL Domino AppDev Pack – The Future of Domino App Dev Nobody Knows A...
INF104 - HCL Domino AppDev Pack – The Future of Domino App Dev Nobody Knows A...INF104 - HCL Domino AppDev Pack – The Future of Domino App Dev Nobody Knows A...
INF104 - HCL Domino AppDev Pack – The Future of Domino App Dev Nobody Knows A...
 
Resume_Haran21 mca
Resume_Haran21 mcaResume_Haran21 mca
Resume_Haran21 mca
 
Configuring in the Browser, Really!
Configuring in the Browser, Really!Configuring in the Browser, Really!
Configuring in the Browser, Really!
 
Modern App Development with the SharePoint Framework
Modern App Development with the SharePoint FrameworkModern App Development with the SharePoint Framework
Modern App Development with the SharePoint Framework
 
Metodologías de desarrollo de software en Gaming
Metodologías de desarrollo de software en GamingMetodologías de desarrollo de software en Gaming
Metodologías de desarrollo de software en Gaming
 
Froyo to kit kat two years developing & maintaining deliradio
Froyo to kit kat   two years developing & maintaining deliradioFroyo to kit kat   two years developing & maintaining deliradio
Froyo to kit kat two years developing & maintaining deliradio
 
Visual Studio 2015: novità per gli sviluppatori iOS, Android e Cross-Platform
Visual Studio 2015: novità per gli sviluppatori iOS, Android e Cross-PlatformVisual Studio 2015: novità per gli sviluppatori iOS, Android e Cross-Platform
Visual Studio 2015: novità per gli sviluppatori iOS, Android e Cross-Platform
 
SamSegalResume
SamSegalResumeSamSegalResume
SamSegalResume
 
What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...
What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...
What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...
 
Designer and Developer Collaboration with Visual Studio 2012 and Expression B...
Designer and Developer Collaboration with Visual Studio 2012 and Expression B...Designer and Developer Collaboration with Visual Studio 2012 and Expression B...
Designer and Developer Collaboration with Visual Studio 2012 and Expression B...
 
Google Platform Overview (April 2014)
Google Platform Overview (April 2014)Google Platform Overview (April 2014)
Google Platform Overview (April 2014)
 
HTML5 Group Lead
HTML5 Group Lead   HTML5 Group Lead
HTML5 Group Lead
 
tomtaila
tomtailatomtaila
tomtaila
 
Online File Formats.pptx
Online File Formats.pptxOnline File Formats.pptx
Online File Formats.pptx
 
CV
CVCV
CV
 
Joomla as a mobile App backend - ideas, examples and experiences
Joomla as a mobile App backend - ideas, examples and experiencesJoomla as a mobile App backend - ideas, examples and experiences
Joomla as a mobile App backend - ideas, examples and experiences
 
Project Betzn - LinuxTag 2011
Project Betzn - LinuxTag 2011Project Betzn - LinuxTag 2011
Project Betzn - LinuxTag 2011
 
Niko Sévoz – Game designer
Niko Sévoz – Game designerNiko Sévoz – Game designer
Niko Sévoz – Game designer
 

Dernier

VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnAmarnathKambale
 
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...kalichargn70th171
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
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
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfproinshot.com
 
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
 
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
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad 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
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
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
 
How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...software pro Development
 
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdfAzure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdfryanfarris8
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
 

Dernier (20)

VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
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
 
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
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdf
 
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 ...
 
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 🔝✔️✔️
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
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
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
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-...
 
How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...
 
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdfAzure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 

"How to Develop with Qt for Multiple Screen Resolutions and Increase Your User Retention (of Cross-Platform Apps and Games)" - Qt Developer Days 2014 Presentation by V-Play

Notes de l'éditeur

  1. Hi & welcome to my presentation about.. Well, first let me tell you a little story why I’m here or what brought me here…
  2. I am now programming games since 13 years, and what fascinated me MOST was that you can create games that are fun and bring joy to people, with already small teams and just a bunch of guys! That’s also what made me dive into mobile app development, quite a while ago for the good old Nokia devices with J2ME and native Symbian, and then the iPhone came out! This changed just about everything, because all of a sudden you could reach millions of users without any publisher! So I started to port my games to the iPhone, and then later to Android too and also created more native apps. At that time, I came across Qt and I thought: wholy shit, that’s cool! You can use the same code base of your apps and games across all platforms! And this QML was the best thing I’ve ever seen! What if you could use that to create cross-platform games, no need to port it to other platforms!
  3. Qml was introduced in sep 2010 with qt 4.7.0, first used it 2011; Code so much faster (60% less code compared with previous project done in C++), with almost same performance Game prototype based on both QGraphicsView and QtQuick – too slow for sprites, particles, etc. (Just mention that we now look into qt5.2 as high performance renderer if we are asked!) Mobile first
  4. After last year‘s lightning talk was well received, we announced v-play plugins to extend qt 5 mobile app services And got selected as qt technology partner
  5. Besides engine & plugin development, we have since 5 years been developing native apps for iOS & Android, both as own apps and client projects. In the meantime, we do most of them with Qt5, so i‘ll now share our experiences with that!
  6. Responsive design = how to support all kind of screen resolutions, phones, tablets, desktop
  7. Simplest approach: property bindings with multiplications Will have the same ratio on all devices – if that is ok for your app UI, thats good and easy In screenshot shows that portrait & landscape most of the time different layout is needed
  8. - Less mistakes, more flexible: if you add another item, with the prop bindings the calculation needs to be adopted & an id is required for each item - and faster (in c++ not evaluated in QML) than with property bindings
  9. - Less mistakes, more flexible: if you add another item, with the prop bindings the calculation needs to be adopted & an id is required for each item - and faster (in c++ not evaluated in QML) than with property bindings
  10. Side Note: recommended button height is 36-48dp, based on Android style guide Images from: http://developer.android.com/guide/practices/screens_support.html
  11. On windows it seesm that logicalDpi & physicalDpi are swapped! Since qt 5.2, on Android bug that the reported physicalDpi is incorrect! Thus retieve via JNI (you need to add QT+=androidextras for jni access in the pro file!)
  12. On windows pointSize is too big, kills UI! On ios & android same size as sp The blue rect is 50dp – so 50dp is not the same as 50dp for the pixelSize! Multiply with custom value in sp() to do that!
  13. pointSize not supported: read device dpi settings (in android & ios in settings, in windows screen dpi settings); also not by sp yet
  14. Bad, because error-prone, a lot to type, slow at runtime PLUS, it still is NOT the same physical size on all screens!
  15. Based on the max screen size - Up to 960px max width -> +sd - 960px – 480*2.8=1344 -> +hd - >1344 -> +hd2 These values & thresholds are adjustable! Disadvantage multiple images: app size gets bigger! But you could use DownloadableComponent for that to download zipped content and unpack it permanently to device at 1st app start, based on how many dpi it has Or multiple versions in app store (on android that is possible); on iOS make hd version for example with higher-res images
  16. X Also useful to load different layouts based on the min width (like in android sw600dp) – doesnt work because higher values are not used by it! E.g. sw600 is not set by default, you would need to manually add it to the fileSelectorlist! (e.g. make list: sw600, sw590, sw580, etc. -> maybe show code how to use singletons or layouts per platform? – no time!
  17. Show vpqt5 example GameWindowSceneScaling.qml
  18. Show squaby live demo with resizing the window and how the ui changes with it, and how bg is cut off Additional advantage when using vp: Image File Selectors(+hd, +hd2) auto-supported Old: Easiest approach, good enough for most use cases! All px values get scaled; images automatically the correct ones taken
  19. Show live demo kochgourmet, what you can do with content scaling as well as non-content scaling approach SideBar moves in at certain width (GameWindow size or dp); delegates change (no rating shown, no images), gridview -> listview
  20. Examples to use in apps: award users with credits for coming back; give them achievements for several opens, for certain activities that matter to you (e.g. when they buy something); maybe even give them credits to use in your app when an achivement is rewarded!
  21. Problem in most apps: keep users coming back; one way to do this, especially in games but also normal apps can use it by adding gamification elements, is a GAME NETWORK We have built a game network from the ground up
  22. - Most powerful way of user engagement, is to let them create their own content and share that with others! We have component for that! Runtime balancing, runtime level generation App examples: * user-generated pictures in a travel app * bmw app where configurable car, share this picture * modify colors of app and share these settings, so friends can have the same color style
  23. Show squaby level editor functionality, with level sharing & publishing
  24. App examples: * user-generated pictures in a travel app * bmw app where configurable car, share this picture * modify colors of app and share these settings, so friends can have the same color style
  25. Here the width & height is changeable – can be anything in your app, like colors, images, etc.!
  26. Remind them to come back to the app, e.g. in an alarm clock app that he did not use it for a longer time, 1 hour in this example reward users for coming back with some credits
  27. - The push notifications plugin is available at plugins.v-play.net, free sample on github - Along with other plugins that may be useful for your qt 5 app like iap or ads for monetization
  28. We are looking for interns in summer, so apply if you are interested in game development