SlideShare ist ein Scribd-Unternehmen logo
1 von 39
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Was ist angesagt?

Try Jetpack Compose
Try Jetpack ComposeTry Jetpack Compose
Try Jetpack ComposeLutasLin
 
Android async task
Android async taskAndroid async task
Android async taskMadhu Venkat
 
Introduction to Flutter - truly crossplatform, amazingly fast
Introduction to Flutter - truly crossplatform, amazingly fastIntroduction to Flutter - truly crossplatform, amazingly fast
Introduction to Flutter - truly crossplatform, amazingly fastBartosz Kosarzycki
 
Jetpack Compose - Android’s modern toolkit for building native UI
Jetpack Compose - Android’s modern toolkit for building native UIJetpack Compose - Android’s modern toolkit for building native UI
Jetpack Compose - Android’s modern toolkit for building native UIGilang Ramadhan
 
Qt Technical Presentation
Qt Technical PresentationQt Technical Presentation
Qt Technical PresentationDaniel Rocha
 
Editor config, eslint, prettier
Editor config, eslint, prettierEditor config, eslint, prettier
Editor config, eslint, prettierSamundra khatri
 
Android jetpack compose | Declarative UI
Android jetpack compose | Declarative UI Android jetpack compose | Declarative UI
Android jetpack compose | Declarative UI Ajinkya Saswade
 
Cross platform app development with flutter
Cross platform app development with flutterCross platform app development with flutter
Cross platform app development with flutterHwan Jo
 
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
 
[Final] ReactJS presentation
[Final] ReactJS presentation[Final] ReactJS presentation
[Final] ReactJS presentation洪 鹏发
 
Getting started with flutter
Getting started with flutterGetting started with flutter
Getting started with flutterrihannakedy
 
Building beautiful apps with Google flutter
Building beautiful apps with Google flutterBuilding beautiful apps with Google flutter
Building beautiful apps with Google flutterAhmed Abu Eldahab
 
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
 
Declarative UIs with Jetpack Compose
Declarative UIs with Jetpack ComposeDeclarative UIs with Jetpack Compose
Declarative UIs with Jetpack ComposeRamon Ribeiro Rabello
 
Jetpack Compose beginner.pdf
Jetpack Compose beginner.pdfJetpack Compose beginner.pdf
Jetpack Compose beginner.pdfAayushmaAgrawal
 
TypeScript Introduction
TypeScript IntroductionTypeScript Introduction
TypeScript IntroductionDmitry Sheiko
 
Flutter Tutorial For Beginners | Edureka
Flutter Tutorial For Beginners | EdurekaFlutter Tutorial For Beginners | Edureka
Flutter Tutorial For Beginners | EdurekaEdureka!
 
Flutter overview - advantages & disadvantages for business
Flutter overview - advantages & disadvantages for businessFlutter overview - advantages & disadvantages for business
Flutter overview - advantages & disadvantages for businessBartosz Kosarzycki
 

Was ist angesagt? (20)

Try Jetpack Compose
Try Jetpack ComposeTry Jetpack Compose
Try Jetpack Compose
 
Android async task
Android async taskAndroid async task
Android async task
 
Introduction to Flutter - truly crossplatform, amazingly fast
Introduction to Flutter - truly crossplatform, amazingly fastIntroduction to Flutter - truly crossplatform, amazingly fast
Introduction to Flutter - truly crossplatform, amazingly fast
 
Jetpack Compose - Android’s modern toolkit for building native UI
Jetpack Compose - Android’s modern toolkit for building native UIJetpack Compose - Android’s modern toolkit for building native UI
Jetpack Compose - Android’s modern toolkit for building native UI
 
Qt Technical Presentation
Qt Technical PresentationQt Technical Presentation
Qt Technical Presentation
 
Editor config, eslint, prettier
Editor config, eslint, prettierEditor config, eslint, prettier
Editor config, eslint, prettier
 
Introduction to Qt programming
Introduction to Qt programmingIntroduction to Qt programming
Introduction to Qt programming
 
Android jetpack compose | Declarative UI
Android jetpack compose | Declarative UI Android jetpack compose | Declarative UI
Android jetpack compose | Declarative UI
 
Cross platform app development with flutter
Cross platform app development with flutterCross platform app development with flutter
Cross platform app development with flutter
 
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
 
react-slides.pptx
react-slides.pptxreact-slides.pptx
react-slides.pptx
 
[Final] ReactJS presentation
[Final] ReactJS presentation[Final] ReactJS presentation
[Final] ReactJS presentation
 
Getting started with flutter
Getting started with flutterGetting started with flutter
Getting started with flutter
 
Building beautiful apps with Google flutter
Building beautiful apps with Google flutterBuilding beautiful apps with Google flutter
Building beautiful apps with Google flutter
 
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
 
Declarative UIs with Jetpack Compose
Declarative UIs with Jetpack ComposeDeclarative UIs with Jetpack Compose
Declarative UIs with Jetpack Compose
 
Jetpack Compose beginner.pdf
Jetpack Compose beginner.pdfJetpack Compose beginner.pdf
Jetpack Compose beginner.pdf
 
TypeScript Introduction
TypeScript IntroductionTypeScript Introduction
TypeScript Introduction
 
Flutter Tutorial For Beginners | Edureka
Flutter Tutorial For Beginners | EdurekaFlutter Tutorial For Beginners | Edureka
Flutter Tutorial For Beginners | Edureka
 
Flutter overview - advantages & disadvantages for business
Flutter overview - advantages & disadvantages for businessFlutter overview - advantages & disadvantages for business
Flutter overview - advantages & disadvantages for business
 

Andere mochten auch

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
 
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
 
Qt Tutorial - Part 1
Qt Tutorial - Part 1Qt Tutorial - Part 1
Qt Tutorial - Part 1rmitc
 

Andere mochten auch (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...
 
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
 
Qt Tutorial - Part 1
Qt Tutorial - Part 1Qt Tutorial - Part 1
Qt Tutorial - Part 1
 

Ähnlich wie "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
 

Ähnlich wie "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
 

Kürzlich hochgeladen

Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️anilsa9823
 
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
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
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
 
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
 
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
 
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
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
+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
 
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
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
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
 

Kürzlich hochgeladen (20)

Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
 
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 🔝✔️✔️
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
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
 
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
 
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
 
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
 
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
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
+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 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
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
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 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

Hinweis der Redaktion

  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