SlideShare una empresa de Scribd logo
1 de 17
Series 40 Developer Training
Adapting Series 40 Touch and Type
apps to full-touch UI


Michael Samarin, Ph.D
Director,
Developer Training and Evangelism
Futurice Oy
@MichaelSamarin
› Brief Full Touch Devices
                                              Overview

 Agenda for today’s                         › UI Style Guides
 webinar                                    › Adapting Touch & Type apps
                                            › Demonstrations with
                                              NetBeans and Nokia SDKs
         Don’t forget to take a look at previously recorded webinars:

http://www.developer.nokia.com/Resources/Multimedia/Webinars.xhtml#Webinar
Devices are released and in consumer hands today:

                                     Asha
                                     305
                                     306
                                     311
› Codebase on Full Touch is
                                          backward compatible

  Existing Touch &                      › Older Midlets “just work”
Type or Non Touch                       › Of course UI requires
              apps                        tweaking and remodeling to
                                          utilize new UI paradigm


Best help in understanding new UI - Series 40 Full Touch Design Guidelines:

http://www.developer.nokia.com/Resources/Library/Full_Touch/#!index.html
› Single build for multiple
                      target devices
   Strategies for      › Code level configurations
       targeting
Touch & Type and    › Multiple builds for multiple
                      target devices
       Full Touch
                       › IDE level configurations –
                         NetBeans
» For single build targeting multiple devices checkout porting part of webinar:
» Andreas Jakl, Nokia
    › Introduction to Nokia Series 40 Full Touch UI

    › http://www.slideshare.net/nokia-developer/introduction-to-series-40-full-touch-ui

    › http://forumnokia.adobeconnect.com/p3yw0g4jz6f/

» Following slides are extracts
COMPATIBILITY?
• Source & binary compatible
    – xx years old Java ME apps run on
      full touch phones!
• Downwards compatibility
    – Check API support of target phones
    – Lowest common denominator:
        → Nokia Java SDK 2.0 compiled app
        runs on old phones


7      © 2012 Nokia Java ME Touch v1.3.0 June 27, 2012 Andreas Jakl
PORTING TO TOUCH
• All Java ME apps should run on full touch phone
     – High-Level UI
          –   Adapts automatically
          –   Components include touch-support
          –   Check layout
          –   New UI components (CategoryBar, etc.) don’t have to be used
     – Low-Level UI
          – New screen size & aspect ratio (but: most Java apps already flexible here)
          – Touch supported in Java ME since many years
          – Basic key simulation with drag gestures for non-touch apps
• New APIs for Multitouch, Pinch, CategoryBar & Sensors
     – Only work on FT phones
     – Careful app design even keeps downwards compatibility



 8       © 2012 Nokia Java ME Touch v1.3.0 June 27, 2012 Andreas Jakl
PORTING




                                                                       Touch and type
Non-touch app with high-level UI (LCDUI):
Automatically adapts to touch
          Non-touch




9       © 2012 Nokia Java ME Touch v1.3.0 June 27, 2012 Andreas Jakl   Full touch
DYNAMIC API USAGE
• Single code base for different phones
     –Code that uses new APIs
         –Externalize to extra class
     –Check API support at runtime
         –Instantiate class if supported
         –Different methods for checking available




10      © 2012 Nokia Java ME Touch v1.3.0 June 27, 2012 Andreas Jakl
EXAMPLE: PINCH GESTURE
• Gesture API
     –Available in Touch & Type
     –Full Touch adds Pinch gesture
     –Query support at runtime
       // Pinch gesture
       if (GestureInteractiveZone.isSupported(GestureInteractiveZone.GESTURE_PINCH)) {
           // Gesture is supported - register class as listener
           GestureRegistrationManager.setListener(this, this);
           // Register for pinch gesture
           gestureZone = new GestureInteractiveZone(GestureInteractiveZone.GESTURE_PINCH);
           GestureRegistrationManager.register(this, gestureZone);
       }


11      © 2012 Nokia Java ME Touch v1.3.0 June 27, 2012 Andreas Jakl
EXAMPLE: OPTIONAL MULTITOUCH
• Encapsulate API using code to separate class
      public class MultitouchManager implements MultipointTouchListener {

          public MultitouchManager(MainCanvas canvas) {
              MultipointTouch mpt = MultipointTouch.getInstance();                              Hint: only handle
              mpt.addMultipointTouchListener(this);                                             Canvas.pointerPressed()
          }                                                                                     on single touch phones

          public void pointersChanged(int[] pointerIds) { /* ... */ }       protected void pointerPressed(int x, int y) {
      }                                                                         if (!useMultitouch) {
                                                                                    // Handle touch event
                                                                                    // on single-touch phone
                                                                                }
• Check support and instantiate on demand                                   }
      if (System.getProperty("com.nokia.mid.ui.multipointtouch.version") != null) {
          // API is supported: Can implement multipoint touch functionality
          multiManager = new MultitouchManager(this);
                                                                                                In MainCanvas class
          useMultitouch = true;
      }
                                                                                                (extends Canvas)

 12          © 2012 Nokia Java ME Touch v1.3.0 June 27, 2012 Andreas Jakl
EXAMPLE: API AVAILABILITY
• No System property for the API version?
     –Check Class availability
     –ClassNotFoundException? → API not supported
       // Virtual keyboard support
       try {
           // Check if class is available
           Class.forName("com.nokia.mid.ui.VirtualKeyboard");
           vkbManager = new VkbManager(this);
           useVkb = true;
       } catch (ClassNotFoundException e) {
           // Class not available: running app on Java Runtime < 2.0.0 phone.
           // -> no Virtual Keyboard API support.
           useVkb = false;
       } catch (Exception e) { }


13      © 2012 Nokia Java ME Touch v1.3.0 June 27, 2012 Andreas Jakl
» For multiple builds targeting multiple devices currently NetBeans provides
  simplest and hassle free solution.
» Use NetBeans “Configurations” when targeting multiple devices / SDKs, for
  example Nokia SDK for Java 1.1 (Touch & Type) and Nokia SDK for Java 2.0 (Full
  Touch).
» Live Demo
» If you are watching this slides on SlideShare, next part is live coding
  demonstration.You can see video recording from the link in the comments
  section. Link should appear within week after live webinar.
› Topics related to today’s webinar:
› Porting from BlackBerry to Series 40 Wiki article:
› http://www.developer.nokia.com/Community/Wiki/Porting_from
  _BlackBerry_to_Series_40
› Porting from Android to Series 40 Guide:
› http://www.developer.nokia.com/Resources/Library/Porting_to_
  Series_40/#!porting-from-android-to-series-40.html
› Java for Mobile Devices:
  New Horizons with Fantastic
  New Devices
   › Monday, Oct 1, 8:30AM
   › Notel Nikko – Monterey I/II
Thank you!




  @MichaelSamarin
http://www.futurice.com

Más contenido relacionado

La actualidad más candente

Windows phone 8 overview
Windows phone 8 overviewWindows phone 8 overview
Windows phone 8 overviewcodeblock
 
Installing And Configuring Java Me Tools
Installing And Configuring Java Me ToolsInstalling And Configuring Java Me Tools
Installing And Configuring Java Me ToolsJussi Pohjolainen
 
Basic android development
Basic android developmentBasic android development
Basic android developmentUpanya Singh
 
Android Seminar || history || versions||application developement
Android Seminar || history || versions||application developement Android Seminar || history || versions||application developement
Android Seminar || history || versions||application developement Shubham Pahune
 
What's new in Android Pie
What's new in Android PieWhat's new in Android Pie
What's new in Android PieHassan Abid
 
Html5 investigation
Html5 investigationHtml5 investigation
Html5 investigationoppokui
 
Android complete basic Guide
Android complete basic GuideAndroid complete basic Guide
Android complete basic GuideAKASH SINGH
 
Android Development Workshop
Android Development WorkshopAndroid Development Workshop
Android Development WorkshopPeter Robinett
 
Os eclipse-androidwidget-pdf
Os eclipse-androidwidget-pdfOs eclipse-androidwidget-pdf
Os eclipse-androidwidget-pdfweerabahu
 
Role of java in android app development
Role of java in android app developmentRole of java in android app development
Role of java in android app developmentRahul Rana
 
Android Programming Basic
Android Programming BasicAndroid Programming Basic
Android Programming BasicDuy Do Phan
 
Dori waldman android _course_2
Dori waldman android _course_2Dori waldman android _course_2
Dori waldman android _course_2Dori Waldman
 
Android development - the basics, MFF UK, 2014
Android development - the basics, MFF UK, 2014Android development - the basics, MFF UK, 2014
Android development - the basics, MFF UK, 2014Tomáš Kypta
 
Tech days faridabad
Tech days  faridabadTech days  faridabad
Tech days faridabadAnkur Mishra
 
Android Programming Basics
Android Programming BasicsAndroid Programming Basics
Android Programming BasicsEueung Mulyana
 
Android Crash Course Lunch and Learn
Android Crash Course Lunch and LearnAndroid Crash Course Lunch and Learn
Android Crash Course Lunch and LearnPaul Irwin
 

La actualidad más candente (20)

Windows phone 8 overview
Windows phone 8 overviewWindows phone 8 overview
Windows phone 8 overview
 
Installing And Configuring Java Me Tools
Installing And Configuring Java Me ToolsInstalling And Configuring Java Me Tools
Installing And Configuring Java Me Tools
 
Basic android development
Basic android developmentBasic android development
Basic android development
 
Android Seminar || history || versions||application developement
Android Seminar || history || versions||application developement Android Seminar || history || versions||application developement
Android Seminar || history || versions||application developement
 
Android Programming
Android ProgrammingAndroid Programming
Android Programming
 
What's new in Android Pie
What's new in Android PieWhat's new in Android Pie
What's new in Android Pie
 
Html5 investigation
Html5 investigationHtml5 investigation
Html5 investigation
 
Android complete basic Guide
Android complete basic GuideAndroid complete basic Guide
Android complete basic Guide
 
Android Development Workshop
Android Development WorkshopAndroid Development Workshop
Android Development Workshop
 
Os eclipse-androidwidget-pdf
Os eclipse-androidwidget-pdfOs eclipse-androidwidget-pdf
Os eclipse-androidwidget-pdf
 
Role of java in android app development
Role of java in android app developmentRole of java in android app development
Role of java in android app development
 
Android Development Tutorial V3
Android Development Tutorial   V3Android Development Tutorial   V3
Android Development Tutorial V3
 
Android tutorial1
Android tutorial1Android tutorial1
Android tutorial1
 
Android Programming Basic
Android Programming BasicAndroid Programming Basic
Android Programming Basic
 
Dori waldman android _course_2
Dori waldman android _course_2Dori waldman android _course_2
Dori waldman android _course_2
 
Android development - the basics, MFF UK, 2014
Android development - the basics, MFF UK, 2014Android development - the basics, MFF UK, 2014
Android development - the basics, MFF UK, 2014
 
Tech days faridabad
Tech days  faridabadTech days  faridabad
Tech days faridabad
 
Android Programming Basics
Android Programming BasicsAndroid Programming Basics
Android Programming Basics
 
Android Crash Course Lunch and Learn
Android Crash Course Lunch and LearnAndroid Crash Course Lunch and Learn
Android Crash Course Lunch and Learn
 
Android seminar ppt
Android seminar pptAndroid seminar ppt
Android seminar ppt
 

Destacado

User interface adaptation based on user feedback and machine learning
User interface adaptation based on user feedback and machine learningUser interface adaptation based on user feedback and machine learning
User interface adaptation based on user feedback and machine learningNesrine Mezhoudi
 
Intro to Nokia X software platform 2.0 and tools
Intro to Nokia X software platform 2.0 and toolsIntro to Nokia X software platform 2.0 and tools
Intro to Nokia X software platform 2.0 and toolsMicrosoft Mobile Developer
 
5 Annoying Excel Pivot Table Problems
5 Annoying Excel Pivot Table Problems5 Annoying Excel Pivot Table Problems
5 Annoying Excel Pivot Table ProblemsDebra Dalgleish
 

Destacado (6)

User interface adaptation based on user feedback and machine learning
User interface adaptation based on user feedback and machine learningUser interface adaptation based on user feedback and machine learning
User interface adaptation based on user feedback and machine learning
 
Healthcare apps for Nokia X and Nokia Asha
Healthcare apps for Nokia X and Nokia AshaHealthcare apps for Nokia X and Nokia Asha
Healthcare apps for Nokia X and Nokia Asha
 
Push notifications on Nokia X
Push notifications on Nokia XPush notifications on Nokia X
Push notifications on Nokia X
 
Nokia Asha from idea to app - Imaging
Nokia Asha from idea to app - ImagingNokia Asha from idea to app - Imaging
Nokia Asha from idea to app - Imaging
 
Intro to Nokia X software platform 2.0 and tools
Intro to Nokia X software platform 2.0 and toolsIntro to Nokia X software platform 2.0 and tools
Intro to Nokia X software platform 2.0 and tools
 
5 Annoying Excel Pivot Table Problems
5 Annoying Excel Pivot Table Problems5 Annoying Excel Pivot Table Problems
5 Annoying Excel Pivot Table Problems
 

Similar a Adapting Series 40 touch and type apps to the full-touch UI

Java Is A Programming Dialect And Registering Stage Essay
Java Is A Programming Dialect And Registering Stage EssayJava Is A Programming Dialect And Registering Stage Essay
Java Is A Programming Dialect And Registering Stage EssayLiz Sims
 
600.250 UI Cross Platform Development and the Android Security Model
600.250 UI Cross Platform Development and the Android Security Model600.250 UI Cross Platform Development and the Android Security Model
600.250 UI Cross Platform Development and the Android Security ModelMichael Rushanan
 
Understanding XCUITest Framework Your Guide to Efficient iOS Testing.pdf
Understanding XCUITest Framework Your Guide to Efficient iOS Testing.pdfUnderstanding XCUITest Framework Your Guide to Efficient iOS Testing.pdf
Understanding XCUITest Framework Your Guide to Efficient iOS Testing.pdfpCloudy
 
ANDROID presentation prabal
ANDROID presentation prabalANDROID presentation prabal
ANDROID presentation prabalPrabal Tyagi
 
Flutter technology Based on Web Development
Flutter technology Based on Web Development Flutter technology Based on Web Development
Flutter technology Based on Web Development divyawani2
 
Introduction to MonoTouch
Introduction to MonoTouchIntroduction to MonoTouch
Introduction to MonoTouchJonas Follesø
 
EasyJPJ : Mobile Application Slide
EasyJPJ : Mobile Application SlideEasyJPJ : Mobile Application Slide
EasyJPJ : Mobile Application SlideRazinRashid1
 
Meego Italian Day 2011 – Andrea Grandi
Meego Italian Day 2011 – Andrea GrandiMeego Italian Day 2011 – Andrea Grandi
Meego Italian Day 2011 – Andrea GrandiFrancesco Baldassarri
 
SWE-401 - 8. Software User Interface Design
SWE-401 - 8. Software User Interface DesignSWE-401 - 8. Software User Interface Design
SWE-401 - 8. Software User Interface Designghayour abbas
 
Mobile applications and automation testing
Mobile applications and automation testingMobile applications and automation testing
Mobile applications and automation testingDipesh Bhatewara
 
Introduction to micro-services @DevOps pune Meetup
Introduction to micro-services @DevOps pune Meetup Introduction to micro-services @DevOps pune Meetup
Introduction to micro-services @DevOps pune Meetup Rahul Khengare
 
MTJ Taking Mobile Java Developers to the Next Level
MTJ Taking Mobile Java Developers to the Next LevelMTJ Taking Mobile Java Developers to the Next Level
MTJ Taking Mobile Java Developers to the Next Levelgustavoeliano
 
Creating Great Apps with MOTODEV Studio for Android
Creating Great Apps with MOTODEV Studio for AndroidCreating Great Apps with MOTODEV Studio for Android
Creating Great Apps with MOTODEV Studio for AndroidMotorola Mobility - MOTODEV
 
Meego의 현재와 미래(2)
Meego의 현재와 미래(2)Meego의 현재와 미래(2)
Meego의 현재와 미래(2)mosaicnet
 
Guide presentation aegis-fp7-projects-round_table_2011-11-30_v0.1
Guide presentation aegis-fp7-projects-round_table_2011-11-30_v0.1Guide presentation aegis-fp7-projects-round_table_2011-11-30_v0.1
Guide presentation aegis-fp7-projects-round_table_2011-11-30_v0.1AEGIS-ACCESSIBLE Projects
 
Ionic App Platform Overview
Ionic App Platform Overview Ionic App Platform Overview
Ionic App Platform Overview Ionic Framework
 
Selenium in the palm of your hand: Appium and automated mobile testing
Selenium in the palm of your hand: Appium and automated mobile testingSelenium in the palm of your hand: Appium and automated mobile testing
Selenium in the palm of your hand: Appium and automated mobile testingIsaac Murchie
 

Similar a Adapting Series 40 touch and type apps to the full-touch UI (20)

Java Is A Programming Dialect And Registering Stage Essay
Java Is A Programming Dialect And Registering Stage EssayJava Is A Programming Dialect And Registering Stage Essay
Java Is A Programming Dialect And Registering Stage Essay
 
600.250 UI Cross Platform Development and the Android Security Model
600.250 UI Cross Platform Development and the Android Security Model600.250 UI Cross Platform Development and the Android Security Model
600.250 UI Cross Platform Development and the Android Security Model
 
09 gui 13
09 gui 1309 gui 13
09 gui 13
 
01 gui 01
01 gui 0101 gui 01
01 gui 01
 
Understanding XCUITest Framework Your Guide to Efficient iOS Testing.pdf
Understanding XCUITest Framework Your Guide to Efficient iOS Testing.pdfUnderstanding XCUITest Framework Your Guide to Efficient iOS Testing.pdf
Understanding XCUITest Framework Your Guide to Efficient iOS Testing.pdf
 
ANDROID presentation prabal
ANDROID presentation prabalANDROID presentation prabal
ANDROID presentation prabal
 
Flutter technology Based on Web Development
Flutter technology Based on Web Development Flutter technology Based on Web Development
Flutter technology Based on Web Development
 
Introduction to MonoTouch
Introduction to MonoTouchIntroduction to MonoTouch
Introduction to MonoTouch
 
EasyJPJ : Mobile Application Slide
EasyJPJ : Mobile Application SlideEasyJPJ : Mobile Application Slide
EasyJPJ : Mobile Application Slide
 
Meego Italian Day 2011 – Andrea Grandi
Meego Italian Day 2011 – Andrea GrandiMeego Italian Day 2011 – Andrea Grandi
Meego Italian Day 2011 – Andrea Grandi
 
SWE-401 - 8. Software User Interface Design
SWE-401 - 8. Software User Interface DesignSWE-401 - 8. Software User Interface Design
SWE-401 - 8. Software User Interface Design
 
Mobile applications and automation testing
Mobile applications and automation testingMobile applications and automation testing
Mobile applications and automation testing
 
Introduction to micro-services @DevOps pune Meetup
Introduction to micro-services @DevOps pune Meetup Introduction to micro-services @DevOps pune Meetup
Introduction to micro-services @DevOps pune Meetup
 
MTJ Taking Mobile Java Developers to the Next Level
MTJ Taking Mobile Java Developers to the Next LevelMTJ Taking Mobile Java Developers to the Next Level
MTJ Taking Mobile Java Developers to the Next Level
 
Creating Great Apps with MOTODEV Studio for Android
Creating Great Apps with MOTODEV Studio for AndroidCreating Great Apps with MOTODEV Studio for Android
Creating Great Apps with MOTODEV Studio for Android
 
Meego의 현재와 미래(2)
Meego의 현재와 미래(2)Meego의 현재와 미래(2)
Meego의 현재와 미래(2)
 
Introduction to Nokia Asha Touch UI
Introduction to Nokia Asha Touch UIIntroduction to Nokia Asha Touch UI
Introduction to Nokia Asha Touch UI
 
Guide presentation aegis-fp7-projects-round_table_2011-11-30_v0.1
Guide presentation aegis-fp7-projects-round_table_2011-11-30_v0.1Guide presentation aegis-fp7-projects-round_table_2011-11-30_v0.1
Guide presentation aegis-fp7-projects-round_table_2011-11-30_v0.1
 
Ionic App Platform Overview
Ionic App Platform Overview Ionic App Platform Overview
Ionic App Platform Overview
 
Selenium in the palm of your hand: Appium and automated mobile testing
Selenium in the palm of your hand: Appium and automated mobile testingSelenium in the palm of your hand: Appium and automated mobile testing
Selenium in the palm of your hand: Appium and automated mobile testing
 

Más de Microsoft Mobile Developer

Location based services for Nokia X and Nokia Asha using Geo2tag
Location based services for Nokia X and Nokia Asha using Geo2tagLocation based services for Nokia X and Nokia Asha using Geo2tag
Location based services for Nokia X and Nokia Asha using Geo2tagMicrosoft Mobile Developer
 
Lumia App Labs: Lessons learned from 50 windows phone 8 design consultations
Lumia App Labs: Lessons learned from 50 windows phone 8 design consultationsLumia App Labs: Lessons learned from 50 windows phone 8 design consultations
Lumia App Labs: Lessons learned from 50 windows phone 8 design consultationsMicrosoft Mobile Developer
 
Windows Phone 8 speech: parliamo con la nostra app
Windows Phone 8 speech: parliamo con la nostra appWindows Phone 8 speech: parliamo con la nostra app
Windows Phone 8 speech: parliamo con la nostra appMicrosoft Mobile Developer
 
La pubblicazione di un'applicazione sullo store
La pubblicazione di un'applicazione sullo storeLa pubblicazione di un'applicazione sullo store
La pubblicazione di un'applicazione sullo storeMicrosoft Mobile Developer
 
Il pattern mvvm come strutturare al meglio il vostro progetto
Il pattern mvvm come strutturare al meglio il vostro progettoIl pattern mvvm come strutturare al meglio il vostro progetto
Il pattern mvvm come strutturare al meglio il vostro progettoMicrosoft Mobile Developer
 
Lens app trasformare il telefono in una fotocamera
Lens app trasformare il telefono in una fotocameraLens app trasformare il telefono in una fotocamera
Lens app trasformare il telefono in una fotocameraMicrosoft Mobile Developer
 
Nokia Asha webinar: Developing health-care applications for Nokia Asha phones
Nokia Asha webinar: Developing health-care applications for Nokia Asha phonesNokia Asha webinar: Developing health-care applications for Nokia Asha phones
Nokia Asha webinar: Developing health-care applications for Nokia Asha phonesMicrosoft Mobile Developer
 

Más de Microsoft Mobile Developer (20)

Lumia App Labs: Lumia SensorCore SDK beta
Lumia App Labs: Lumia SensorCore SDK betaLumia App Labs: Lumia SensorCore SDK beta
Lumia App Labs: Lumia SensorCore SDK beta
 
DIY Nokia Asha app usability studies
DIY Nokia Asha app usability studiesDIY Nokia Asha app usability studies
DIY Nokia Asha app usability studies
 
Lessons learned from Nokia X UI reviews
Lessons learned from Nokia X UI reviewsLessons learned from Nokia X UI reviews
Lessons learned from Nokia X UI reviews
 
Location based services for Nokia X and Nokia Asha using Geo2tag
Location based services for Nokia X and Nokia Asha using Geo2tagLocation based services for Nokia X and Nokia Asha using Geo2tag
Location based services for Nokia X and Nokia Asha using Geo2tag
 
HERE Maps for the Nokia X platform
HERE Maps for the Nokia X platformHERE Maps for the Nokia X platform
HERE Maps for the Nokia X platform
 
Nokia In-App Payment - UX considerations
Nokia In-App Payment - UX considerationsNokia In-App Payment - UX considerations
Nokia In-App Payment - UX considerations
 
Introduction to Nokia Asha SDK 1.2 (beta)
Introduction to Nokia Asha SDK 1.2 (beta)Introduction to Nokia Asha SDK 1.2 (beta)
Introduction to Nokia Asha SDK 1.2 (beta)
 
UX considerations when porting to Nokia X
UX considerations when porting to Nokia XUX considerations when porting to Nokia X
UX considerations when porting to Nokia X
 
Kids' games and educational app design
Kids' games and educational app designKids' games and educational app design
Kids' games and educational app design
 
Nokia X: opportunities for developers
Nokia X: opportunities for developersNokia X: opportunities for developers
Nokia X: opportunities for developers
 
Lumia App Labs: Nokia Imaging SDK 1.1
Lumia App Labs: Nokia Imaging SDK 1.1Lumia App Labs: Nokia Imaging SDK 1.1
Lumia App Labs: Nokia Imaging SDK 1.1
 
Intro to Nokia X software platform and tools
Intro to Nokia X software platform and toolsIntro to Nokia X software platform and tools
Intro to Nokia X software platform and tools
 
Lumia App Labs: Lessons learned from 50 windows phone 8 design consultations
Lumia App Labs: Lessons learned from 50 windows phone 8 design consultationsLumia App Labs: Lessons learned from 50 windows phone 8 design consultations
Lumia App Labs: Lessons learned from 50 windows phone 8 design consultations
 
Windows Phone 8 speech: parliamo con la nostra app
Windows Phone 8 speech: parliamo con la nostra appWindows Phone 8 speech: parliamo con la nostra app
Windows Phone 8 speech: parliamo con la nostra app
 
La pubblicazione di un'applicazione sullo store
La pubblicazione di un'applicazione sullo storeLa pubblicazione di un'applicazione sullo store
La pubblicazione di un'applicazione sullo store
 
Il pattern mvvm come strutturare al meglio il vostro progetto
Il pattern mvvm come strutturare al meglio il vostro progettoIl pattern mvvm come strutturare al meglio il vostro progetto
Il pattern mvvm come strutturare al meglio il vostro progetto
 
Lens app trasformare il telefono in una fotocamera
Lens app trasformare il telefono in una fotocameraLens app trasformare il telefono in una fotocamera
Lens app trasformare il telefono in una fotocamera
 
NFC, Bluetooth e comunicazione tra app
NFC, Bluetooth e comunicazione tra appNFC, Bluetooth e comunicazione tra app
NFC, Bluetooth e comunicazione tra app
 
Nokia Asha webinar: Developing health-care applications for Nokia Asha phones
Nokia Asha webinar: Developing health-care applications for Nokia Asha phonesNokia Asha webinar: Developing health-care applications for Nokia Asha phones
Nokia Asha webinar: Developing health-care applications for Nokia Asha phones
 
Connettersi al Cloud Azure Mobile Services
Connettersi al Cloud Azure Mobile ServicesConnettersi al Cloud Azure Mobile Services
Connettersi al Cloud Azure Mobile Services
 

Último

Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 

Último (20)

Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 

Adapting Series 40 touch and type apps to the full-touch UI

  • 1. Series 40 Developer Training Adapting Series 40 Touch and Type apps to full-touch UI Michael Samarin, Ph.D Director, Developer Training and Evangelism Futurice Oy @MichaelSamarin
  • 2. › Brief Full Touch Devices Overview Agenda for today’s › UI Style Guides webinar › Adapting Touch & Type apps › Demonstrations with NetBeans and Nokia SDKs Don’t forget to take a look at previously recorded webinars: http://www.developer.nokia.com/Resources/Multimedia/Webinars.xhtml#Webinar
  • 3. Devices are released and in consumer hands today: Asha 305 306 311
  • 4. › Codebase on Full Touch is backward compatible Existing Touch & › Older Midlets “just work” Type or Non Touch › Of course UI requires apps tweaking and remodeling to utilize new UI paradigm Best help in understanding new UI - Series 40 Full Touch Design Guidelines: http://www.developer.nokia.com/Resources/Library/Full_Touch/#!index.html
  • 5. › Single build for multiple target devices Strategies for › Code level configurations targeting Touch & Type and › Multiple builds for multiple target devices Full Touch › IDE level configurations – NetBeans
  • 6. » For single build targeting multiple devices checkout porting part of webinar: » Andreas Jakl, Nokia › Introduction to Nokia Series 40 Full Touch UI › http://www.slideshare.net/nokia-developer/introduction-to-series-40-full-touch-ui › http://forumnokia.adobeconnect.com/p3yw0g4jz6f/ » Following slides are extracts
  • 7. COMPATIBILITY? • Source & binary compatible – xx years old Java ME apps run on full touch phones! • Downwards compatibility – Check API support of target phones – Lowest common denominator: → Nokia Java SDK 2.0 compiled app runs on old phones 7 © 2012 Nokia Java ME Touch v1.3.0 June 27, 2012 Andreas Jakl
  • 8. PORTING TO TOUCH • All Java ME apps should run on full touch phone – High-Level UI – Adapts automatically – Components include touch-support – Check layout – New UI components (CategoryBar, etc.) don’t have to be used – Low-Level UI – New screen size & aspect ratio (but: most Java apps already flexible here) – Touch supported in Java ME since many years – Basic key simulation with drag gestures for non-touch apps • New APIs for Multitouch, Pinch, CategoryBar & Sensors – Only work on FT phones – Careful app design even keeps downwards compatibility 8 © 2012 Nokia Java ME Touch v1.3.0 June 27, 2012 Andreas Jakl
  • 9. PORTING Touch and type Non-touch app with high-level UI (LCDUI): Automatically adapts to touch Non-touch 9 © 2012 Nokia Java ME Touch v1.3.0 June 27, 2012 Andreas Jakl Full touch
  • 10. DYNAMIC API USAGE • Single code base for different phones –Code that uses new APIs –Externalize to extra class –Check API support at runtime –Instantiate class if supported –Different methods for checking available 10 © 2012 Nokia Java ME Touch v1.3.0 June 27, 2012 Andreas Jakl
  • 11. EXAMPLE: PINCH GESTURE • Gesture API –Available in Touch & Type –Full Touch adds Pinch gesture –Query support at runtime // Pinch gesture if (GestureInteractiveZone.isSupported(GestureInteractiveZone.GESTURE_PINCH)) { // Gesture is supported - register class as listener GestureRegistrationManager.setListener(this, this); // Register for pinch gesture gestureZone = new GestureInteractiveZone(GestureInteractiveZone.GESTURE_PINCH); GestureRegistrationManager.register(this, gestureZone); } 11 © 2012 Nokia Java ME Touch v1.3.0 June 27, 2012 Andreas Jakl
  • 12. EXAMPLE: OPTIONAL MULTITOUCH • Encapsulate API using code to separate class public class MultitouchManager implements MultipointTouchListener { public MultitouchManager(MainCanvas canvas) { MultipointTouch mpt = MultipointTouch.getInstance(); Hint: only handle mpt.addMultipointTouchListener(this); Canvas.pointerPressed() } on single touch phones public void pointersChanged(int[] pointerIds) { /* ... */ } protected void pointerPressed(int x, int y) { } if (!useMultitouch) { // Handle touch event // on single-touch phone } • Check support and instantiate on demand } if (System.getProperty("com.nokia.mid.ui.multipointtouch.version") != null) { // API is supported: Can implement multipoint touch functionality multiManager = new MultitouchManager(this); In MainCanvas class useMultitouch = true; } (extends Canvas) 12 © 2012 Nokia Java ME Touch v1.3.0 June 27, 2012 Andreas Jakl
  • 13. EXAMPLE: API AVAILABILITY • No System property for the API version? –Check Class availability –ClassNotFoundException? → API not supported // Virtual keyboard support try { // Check if class is available Class.forName("com.nokia.mid.ui.VirtualKeyboard"); vkbManager = new VkbManager(this); useVkb = true; } catch (ClassNotFoundException e) { // Class not available: running app on Java Runtime < 2.0.0 phone. // -> no Virtual Keyboard API support. useVkb = false; } catch (Exception e) { } 13 © 2012 Nokia Java ME Touch v1.3.0 June 27, 2012 Andreas Jakl
  • 14. » For multiple builds targeting multiple devices currently NetBeans provides simplest and hassle free solution. » Use NetBeans “Configurations” when targeting multiple devices / SDKs, for example Nokia SDK for Java 1.1 (Touch & Type) and Nokia SDK for Java 2.0 (Full Touch). » Live Demo » If you are watching this slides on SlideShare, next part is live coding demonstration.You can see video recording from the link in the comments section. Link should appear within week after live webinar.
  • 15. › Topics related to today’s webinar: › Porting from BlackBerry to Series 40 Wiki article: › http://www.developer.nokia.com/Community/Wiki/Porting_from _BlackBerry_to_Series_40 › Porting from Android to Series 40 Guide: › http://www.developer.nokia.com/Resources/Library/Porting_to_ Series_40/#!porting-from-android-to-series-40.html
  • 16. › Java for Mobile Devices: New Horizons with Fantastic New Devices › Monday, Oct 1, 8:30AM › Notel Nikko – Monterey I/II
  • 17. Thank you! @MichaelSamarin http://www.futurice.com