SlideShare uma empresa Scribd logo
1 de 42
Baixar para ler offline
Developing cool
applications for
Asha Touch
smartphones

1   Michael Samarin, Director of Developer Training and Evangelism, Futurice
New look for LCDUI Components




2
LCDUI
                               Displayable


             Screen                                                 Canvas


Form      List         Alert      Text box            With chrome            Full screen



         Implicit choice           Exclusive choice              Non-exclusive choice




Choice   Date         Text      Gauge        String      Image       Custom        Spacer
Group
  3      Field        Field                   Item        Item        Item
Full Touch UI                                                                                     View title
                                                                                                                 Status bar
                                                                                                                 Header bar
» Screen                                                                       Action button 2
                                                                                                                 Action button 1
                                                                                      (options)
    › 240 x 400 px
    › 3:5 aspect ratio
    › Previous QVGA = 3:4                                                                                        Main content area

» New
    › Action buttons
    › Category bar
                                                                                                                 Navigation bar
    › Back button
                                                                                                  Category bar   Back button



4   Michael Samarin, Director of Developer Training and Evangelism, Futurice
IconCommand
» Extends LCDUI Command class                                                                 Action
                                                                                              button 1


    › Adds: Icon
                › Built-in system icon

                › Own icon (unselected, [selected])

    › Back button always has default icon

                › Not possible to override!                                    Category bar




5   Michael Samarin, Director of Developer Training and Evangelism, Futurice
CategoryBar
» View switching
     ›       One element always highlighted

     ›       Mandatory & automatic back button

» Icons
     ›       Max: 15 icons (+ back)

     ›       Portrait: 4 visible, landscape: 6 visible
                                                                                    44 x 44 icon
     ›       Excess (> 15) icons not shown

     ›       Size: 44 x 44 edge-to-edge. Make actual icon smaller!

 6       Michael Samarin, Director of Developer Training and Evangelism, Futurice
Demo:
Building Full Touch LCDUI




7   Michael Samarin, Director of Developer Training and Evangelism, Futurice
Series 40 UI Visualization
https://projects.developer.nokia.com/s40uivisualisation




8   Michael Samarin, Director of Developer Training and Evangelism, Futurice
Demo:
Series 40 UI Visualization




9   Michael Samarin, Director of Developer Training and Evangelism, Futurice
LWUIT
 •   Lightweight UI Toolkit - as read in LWUIT Developer Guide: “widget library inspired by
     Swing but designed for constrained devices such as mobile phones and set-top boxes”.

 •   Comprehensive UI Library - rich set of easily customizable UI components, such as
     Lists, Table, Calendar etc.

 •   Pluggable and customizable look&feel with Themes.

 •   Transitions, animations, layout management

 •   Scalability and portability across platforms

 •   http://www.oracle.com/technetwork/java/javame/javamobile/download/lwuit/index.html


10   Michael Samarin, Director of Developer Training and Evangelism, Futurice
LWUIT for Series 40
•        https://projects.developer.nokia.com/LWUIT_for_Series_40

• Changes and optimizations for Series 40:
          • TextArea, TextField, List, Button, Form, new components

          • MenuBar – softkeys behavior in full touch, touch & type, non touch

          • Nokia UI Guestures, Themes

          • Comprehensive developer’s guide and examples

          • http://www.developer.nokia.com/Resources/Library/LWUIT
    11     Michael Samarin, Director of Developer Training and Evangelism, Futurice
12   Michael Samarin, Director of Developer Training and Evangelism, Futurice
Demo:
Simple LWUIT UI




13   Michael Samarin, Director of Developer Training and Evangelism, Futurice
LWUIT Examples Projects for Series 40
•    LWUIT Slide Puzzle:

•    https://projects.developer.nokia.com/LWUIT_Puzzle

•    LWUIT Tourist Attractions:

•    https://projects.developer.nokia.com/LWUIT_TouristAttractions

•    LWUIT CategoryBar Demo:

•    http://projects.developer.nokia.com/LWUIT_CategoryBarDemo




14    Michael Samarin, Director of Developer Training and Evangelism, Futurice
Demo:
LWUIT Slide Puzzle




15   Michael Samarin, Director of Developer Training and Evangelism, Futurice
Demo:
All LWUIT Examples
     http://youtu.be/xu0UNJJPdYU




16      Michael Samarin, Director of Developer Training and Evangelism, Futurice
Porting Resources at Nokia Developer

Porting and Guide for Android Developers:
     • http://www.developer.nokia.com/Develop/Porting




17    Michael Samarin, Director of Developer Training and Evangelism, Futurice
Ranges and Differences
Feature                        Android Phone                   Asha Touch Phone
CPU                            600+ MHz                        200-1000 MHz
Display tech                   Capacitive                      Resistive or Capacitive
Touch interaction              Multi-point touch               Single-touch and Multi-point touch

Display resolution             240x320 upwards                 240x320, 240x400
Sensors                        GPS, Proximity, Acceleration    GPS, Acceleration
Multitasking                   Yes                             No
Background processing          Yes                             No
Low-level API access           Yes                             Limited
UI Definition                  Declarative or programmatical   Programmatical
Ready-to-use UI components Android UI                          Standard LCDUI, LWUIT

Battery life                   Fair                            Excellent
Development platforms          Windows, Mac, Linux             Windows
IDEs                           Eclipse                         Eclipse, Netbeans
Application size limitations   50MB + 4GB                      2MB + Persistent Storage
Memory Considerations
•        On Series 40 Memory Limitations:
          •     Application JAR file size can’t exceed 2 MB.

          •     Java Heap Size is 2 or 4 MB.

          •     Use Nokia Device Matrix for checking:
                http://www.developer.nokia.com/Devices/Device_specifications/

•        Brings challenging decisions, especially to visually rich games, with many bundled
         graphical resources.
•        Option: post-download of needed resources and caching in RMS.

    19        Michael Samarin, Director of Developer Training and Evangelism, Futurice
Apps particularly favorable for porting include
•        Content-intensive applications, showing lots of textual content and making use of
         vertical scrolling.
•        Single-purpose tools utilizing network connectivity: Content aggregators,
         RSS/News readers; Location-aware applications featuring maps.
•        Various business applications.
•        Casual games (puzzle, 2D arcade), children's apps (drawing, coloring, touch
         interaction, soundboards).



    20     Michael Samarin, Director of Developer Training and Evangelism, Futurice
Application                                              Portability and considerations
category

Games: Arcade,     Generally portable. Certain touch interactions might need to be redesigned. Use of images for graphics
Action, Racing,    might need to be optimized. Many of these games can also be ported for non-touch devices: also lower-
Sports             resolution ones, by downscaling the graphics.

Games: Brain,      Generally portable. As these games are not usually graphically intensive, porting would be mostly
Puzzle, Cards,     converting the game logic and adjusting graphics for new resolutions. Depending on the type of the
Casual             game, a wide range of Series 40 devices can be targeted, including non-touch ones.


Books, Comics, Generally portable. Biggest challenge is likely scaling the graphical content. While a wide range of
Education,     devices can be targeted, a particularly sweet spot for these applications would be the full touch devices
News/Magazines with lots of screen estate.


Business, Finance, Generally portable, except for productivity tools related to platform personalisation. These applications
Productivity       can be made to work on a wide variety of screen sizes and input types. Porting is mostly adjusting views
                   and converting the application logic. Also adjusting to non-touch devices is usually possible.



Communication,     Generally not portable: VoIP, tethering, ringtone and caller ID applications not feasible in Series 40.
Social             Messenger applications are limited to foreground processing.
Application category                                      Portability and considerations


Entertainment, Health, Generally portable. Applications can be made to work on a number of screen sizes and non-touch
Lifestyle, Medical,    devices. Most porting work is done with adjusting the UI and converting application logic.
Shopping, Sports       Background processing is not available to e.g. record GPS location on the background.


Media & Video          Generally not portable. Simple video playback possible, but support varies across devices. See
                       Video Formats in the Developer Wiki.
Music & Audio          Generally portable, e.g. streaming music from online, with the exception of lack of background
                       processing. Online streaming services generally work well where good network connetions are
                       available, regardless of the input paradigm used. Porting work is required for application UI and
                       audio streaming code.

Photography            Portable, with reservations: camera accessible via JSR-234, no access to native code might make
                       filters difficult to implement. This category is best viewed on the larger screen sizes, i.e. touch and
                       type and full touch devices.

Tools, Widgets, Live   Generally not portable: replacements for platform functionalities, virus scanners etc. not relevant in
Wallpapers,            Series 40.
Personalisation,
Libraries
Navigation Logic:
Android to Asha
Tabs, Dashboard,
Back
Porting
• Consider Co-Development, instead of classic “porting”
• Make clear separation between business logic and UI
• It is possible to make libs reusable between platforms
• JARs from Series 40 with platform independent Java code
  are reusable directly on Android
• Understand difference in application life cycle: Android
  “Activity” vs. Midlet; Android Background Execution vs.
  Midlet instant kill


24   Michael Samarin, Director of Developer Training and Evangelism, Futurice
Examples:




• Tantalum Cross Platform Library
• http://projects.developer.nokia.com/Tantalum


25   Michael Samarin, Director of Developer Training and Evangelism, Futurice
Demo:
Android porting Frozen
Bubble



26   Michael Samarin, Director of Developer Training and Evangelism, Futurice
Series 40 Graphics APIs
•        2D Game Development

          •       Game API, part of the MIDP 2.0 standard, java package: javax.microedition.lcdui.game

          •       http://www.developer.nokia.com/Resources/Library/Java/#!developers-guides/ui-and-
                  graphics/game-api.html

•        3D Game Development

          •       Mobile 3D Graphics API, optional JSR-184 also known as M3G

          •       http://www.developer.nokia.com/Resources/Library/Java/#!developers-guides/ui-and-
                  graphics/mobile-3d-graphics.html



    27        Michael Samarin, Director of Developer Training and Evangelism, Futurice
Game API Package (MIDP)

• javax.microedition.lcdui.game
      •   GameCanvas
      •   Layer
      •   LayerManager
      •   Sprite
      •   TiledLayer




 28       Michael Samarin, Director of Developer Training and Evangelism, Futurice
•GameCanvas
     • Double buffered
     • Convenient for minimizing code of
       game loop
     • Methods for querying status of keys




29    Michael Samarin, Director of Developer Training and Evangelism, Futurice
Demo:
     2D GameBuilder Plugin




30    Michael Samarin, Director of Developer Training and Evangelism, Futurice
Demo:
     DrumKit Coding




31    Michael Samarin, Director of Developer Training and Evangelism, Futurice
Demo:
     DrumKit Full Video
     http://youtu.be/41xQTfNWQeI




32     Michael Samarin, Director of Developer Training and Evangelism, Futurice
Demo:
     CarRacing




33    Michael Samarin, Director of Developer Training and Evangelism, Futurice
• Object-Oriented 3D
                                                                                • Scene Graph based
     Mobile 3D Graphics API                                                     • Optional MIDP JSR
           JSR-184 or M3G                                                       • Very compact API
                                                                                • Very fast development
                                                                                • Optimized for small memory
                                                                                  and budget CPU
                                                                                • Excellent implementation on
                                                                                  Series 40
34   Michael Samarin, Director of Developer Training and Evangelism, Futurice
Lightweight API, only 30 classes

     AnimationController                                          IndexBuffer        RayIntersection
     AnimationTrack                                               KeyframeSequence   SkinnedMesh
     Appearance                                                   Light              Sprite3D
     Background                                                   Loader             Texture2D
     Camera                                                       Material           Transform
     CompositingMode                                              Mesh               Transformable
     Fog                                                          MorphingMesh       TriangleStripArray
     Graphics3D                                                   Node               VertexArray
     Group                                                        Object3D           VertexBuffer
     Image2D                                                      PolygonMode        World



35     Michael Samarin, Director of Developer Training and Evangelism, Futurice
• Immediate mode
                                                                                • Similar to OpenGL ideology
                                                                     • Retained mode
                  Modes                                                         • Scene Graph based
                                                                                • Entire Scene Graph can be
                                                                                  restored from file
                                                                                • Well defined M3G format
                                                                     • Can be freely mixed


36   Michael Samarin, Director of Developer Training and Evangelism, Futurice
Scene Graph

                                   Background                                    Mesh


                                         Group                         Morphing Mesh


     World                                                              Skinned Mesh
                                                                                          Sprite 3D
                                                                                 Group
                                                                                          Sprite 3D   User Object
                                         Group                                   Camera


                                                                                  Light
37    Michael Samarin, Director of Developer Training and Evangelism, Futurice
Demo:
     Monkey Face




38    Michael Samarin, Director of Developer Training and Evangelism, Futurice
Demo:
     3D Racing and Sensors




39    Michael Samarin, Director of Developer Training and Evangelism, Futurice
Demo:
     3D Maze
     http://youtu.be/6WZcW_tD35U




40    Michael Samarin, Director of Developer Training and Evangelism, Futurice
Demo:
     All Games
     http://youtu.be/NHhkFgxKX2g




41     Michael Samarin, Director of Developer Training and Evangelism, Futurice
Thank you!




42   Michael Samarin, Director of Developer Training and Evangelism, Futurice

Mais conteúdo relacionado

Mais 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
 
Nokia Asha webinar: Add VoIP services to your Nokia Asha apps
Nokia Asha webinar: Add VoIP services to your Nokia Asha appsNokia Asha webinar: Add VoIP services to your Nokia Asha apps
Nokia Asha webinar: Add VoIP services to your Nokia Asha appsMicrosoft Mobile Developer
 
LUMIA APP LABS #18: INTRODUCING NOKIA IMAGING SDK 1.0
LUMIA APP LABS #18: INTRODUCING NOKIA IMAGING SDK 1.0LUMIA APP LABS #18: INTRODUCING NOKIA IMAGING SDK 1.0
LUMIA APP LABS #18: INTRODUCING NOKIA IMAGING SDK 1.0Microsoft Mobile Developer
 
Nokia Asha webinar: Developing location-based services for Nokia Asha phones ...
Nokia Asha webinar: Developing location-based services for Nokia Asha phones ...Nokia Asha webinar: Developing location-based services for Nokia Asha phones ...
Nokia Asha webinar: Developing location-based services for Nokia Asha phones ...Microsoft Mobile Developer
 

Mais de Microsoft Mobile Developer (20)

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
 
Nokia Asha webinar: Add VoIP services to your Nokia Asha apps
Nokia Asha webinar: Add VoIP services to your Nokia Asha appsNokia Asha webinar: Add VoIP services to your Nokia Asha apps
Nokia Asha webinar: Add VoIP services to your Nokia Asha apps
 
LUMIA APP LABS #18: INTRODUCING NOKIA IMAGING SDK 1.0
LUMIA APP LABS #18: INTRODUCING NOKIA IMAGING SDK 1.0LUMIA APP LABS #18: INTRODUCING NOKIA IMAGING SDK 1.0
LUMIA APP LABS #18: INTRODUCING NOKIA IMAGING SDK 1.0
 
Nokia Asha webinar: Developing location-based services for Nokia Asha phones ...
Nokia Asha webinar: Developing location-based services for Nokia Asha phones ...Nokia Asha webinar: Developing location-based services for Nokia Asha phones ...
Nokia Asha webinar: Developing location-based services for Nokia Asha phones ...
 

Último

How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesThousandEyes
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationKnoldus Inc.
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Mark Goldstein
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 

Último (20)

How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog Presentation
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 

How to develop cool apps for Nokia Asha smartphones

  • 1. Developing cool applications for Asha Touch smartphones 1 Michael Samarin, Director of Developer Training and Evangelism, Futurice
  • 2. New look for LCDUI Components 2
  • 3. LCDUI Displayable Screen Canvas Form List Alert Text box With chrome Full screen Implicit choice Exclusive choice Non-exclusive choice Choice Date Text Gauge String Image Custom Spacer Group 3 Field Field Item Item Item
  • 4. Full Touch UI View title Status bar Header bar » Screen Action button 2 Action button 1 (options) › 240 x 400 px › 3:5 aspect ratio › Previous QVGA = 3:4 Main content area » New › Action buttons › Category bar Navigation bar › Back button Category bar Back button 4 Michael Samarin, Director of Developer Training and Evangelism, Futurice
  • 5. IconCommand » Extends LCDUI Command class Action button 1 › Adds: Icon › Built-in system icon › Own icon (unselected, [selected]) › Back button always has default icon › Not possible to override! Category bar 5 Michael Samarin, Director of Developer Training and Evangelism, Futurice
  • 6. CategoryBar » View switching › One element always highlighted › Mandatory & automatic back button » Icons › Max: 15 icons (+ back) › Portrait: 4 visible, landscape: 6 visible 44 x 44 icon › Excess (> 15) icons not shown › Size: 44 x 44 edge-to-edge. Make actual icon smaller! 6 Michael Samarin, Director of Developer Training and Evangelism, Futurice
  • 7. Demo: Building Full Touch LCDUI 7 Michael Samarin, Director of Developer Training and Evangelism, Futurice
  • 8. Series 40 UI Visualization https://projects.developer.nokia.com/s40uivisualisation 8 Michael Samarin, Director of Developer Training and Evangelism, Futurice
  • 9. Demo: Series 40 UI Visualization 9 Michael Samarin, Director of Developer Training and Evangelism, Futurice
  • 10. LWUIT • Lightweight UI Toolkit - as read in LWUIT Developer Guide: “widget library inspired by Swing but designed for constrained devices such as mobile phones and set-top boxes”. • Comprehensive UI Library - rich set of easily customizable UI components, such as Lists, Table, Calendar etc. • Pluggable and customizable look&feel with Themes. • Transitions, animations, layout management • Scalability and portability across platforms • http://www.oracle.com/technetwork/java/javame/javamobile/download/lwuit/index.html 10 Michael Samarin, Director of Developer Training and Evangelism, Futurice
  • 11. LWUIT for Series 40 • https://projects.developer.nokia.com/LWUIT_for_Series_40 • Changes and optimizations for Series 40: • TextArea, TextField, List, Button, Form, new components • MenuBar – softkeys behavior in full touch, touch & type, non touch • Nokia UI Guestures, Themes • Comprehensive developer’s guide and examples • http://www.developer.nokia.com/Resources/Library/LWUIT 11 Michael Samarin, Director of Developer Training and Evangelism, Futurice
  • 12. 12 Michael Samarin, Director of Developer Training and Evangelism, Futurice
  • 13. Demo: Simple LWUIT UI 13 Michael Samarin, Director of Developer Training and Evangelism, Futurice
  • 14. LWUIT Examples Projects for Series 40 • LWUIT Slide Puzzle: • https://projects.developer.nokia.com/LWUIT_Puzzle • LWUIT Tourist Attractions: • https://projects.developer.nokia.com/LWUIT_TouristAttractions • LWUIT CategoryBar Demo: • http://projects.developer.nokia.com/LWUIT_CategoryBarDemo 14 Michael Samarin, Director of Developer Training and Evangelism, Futurice
  • 15. Demo: LWUIT Slide Puzzle 15 Michael Samarin, Director of Developer Training and Evangelism, Futurice
  • 16. Demo: All LWUIT Examples http://youtu.be/xu0UNJJPdYU 16 Michael Samarin, Director of Developer Training and Evangelism, Futurice
  • 17. Porting Resources at Nokia Developer Porting and Guide for Android Developers: • http://www.developer.nokia.com/Develop/Porting 17 Michael Samarin, Director of Developer Training and Evangelism, Futurice
  • 18. Ranges and Differences Feature Android Phone Asha Touch Phone CPU 600+ MHz 200-1000 MHz Display tech Capacitive Resistive or Capacitive Touch interaction Multi-point touch Single-touch and Multi-point touch Display resolution 240x320 upwards 240x320, 240x400 Sensors GPS, Proximity, Acceleration GPS, Acceleration Multitasking Yes No Background processing Yes No Low-level API access Yes Limited UI Definition Declarative or programmatical Programmatical Ready-to-use UI components Android UI Standard LCDUI, LWUIT Battery life Fair Excellent Development platforms Windows, Mac, Linux Windows IDEs Eclipse Eclipse, Netbeans Application size limitations 50MB + 4GB 2MB + Persistent Storage
  • 19. Memory Considerations • On Series 40 Memory Limitations: • Application JAR file size can’t exceed 2 MB. • Java Heap Size is 2 or 4 MB. • Use Nokia Device Matrix for checking: http://www.developer.nokia.com/Devices/Device_specifications/ • Brings challenging decisions, especially to visually rich games, with many bundled graphical resources. • Option: post-download of needed resources and caching in RMS. 19 Michael Samarin, Director of Developer Training and Evangelism, Futurice
  • 20. Apps particularly favorable for porting include • Content-intensive applications, showing lots of textual content and making use of vertical scrolling. • Single-purpose tools utilizing network connectivity: Content aggregators, RSS/News readers; Location-aware applications featuring maps. • Various business applications. • Casual games (puzzle, 2D arcade), children's apps (drawing, coloring, touch interaction, soundboards). 20 Michael Samarin, Director of Developer Training and Evangelism, Futurice
  • 21. Application Portability and considerations category Games: Arcade, Generally portable. Certain touch interactions might need to be redesigned. Use of images for graphics Action, Racing, might need to be optimized. Many of these games can also be ported for non-touch devices: also lower- Sports resolution ones, by downscaling the graphics. Games: Brain, Generally portable. As these games are not usually graphically intensive, porting would be mostly Puzzle, Cards, converting the game logic and adjusting graphics for new resolutions. Depending on the type of the Casual game, a wide range of Series 40 devices can be targeted, including non-touch ones. Books, Comics, Generally portable. Biggest challenge is likely scaling the graphical content. While a wide range of Education, devices can be targeted, a particularly sweet spot for these applications would be the full touch devices News/Magazines with lots of screen estate. Business, Finance, Generally portable, except for productivity tools related to platform personalisation. These applications Productivity can be made to work on a wide variety of screen sizes and input types. Porting is mostly adjusting views and converting the application logic. Also adjusting to non-touch devices is usually possible. Communication, Generally not portable: VoIP, tethering, ringtone and caller ID applications not feasible in Series 40. Social Messenger applications are limited to foreground processing.
  • 22. Application category Portability and considerations Entertainment, Health, Generally portable. Applications can be made to work on a number of screen sizes and non-touch Lifestyle, Medical, devices. Most porting work is done with adjusting the UI and converting application logic. Shopping, Sports Background processing is not available to e.g. record GPS location on the background. Media & Video Generally not portable. Simple video playback possible, but support varies across devices. See Video Formats in the Developer Wiki. Music & Audio Generally portable, e.g. streaming music from online, with the exception of lack of background processing. Online streaming services generally work well where good network connetions are available, regardless of the input paradigm used. Porting work is required for application UI and audio streaming code. Photography Portable, with reservations: camera accessible via JSR-234, no access to native code might make filters difficult to implement. This category is best viewed on the larger screen sizes, i.e. touch and type and full touch devices. Tools, Widgets, Live Generally not portable: replacements for platform functionalities, virus scanners etc. not relevant in Wallpapers, Series 40. Personalisation, Libraries
  • 23. Navigation Logic: Android to Asha Tabs, Dashboard, Back
  • 24. Porting • Consider Co-Development, instead of classic “porting” • Make clear separation between business logic and UI • It is possible to make libs reusable between platforms • JARs from Series 40 with platform independent Java code are reusable directly on Android • Understand difference in application life cycle: Android “Activity” vs. Midlet; Android Background Execution vs. Midlet instant kill 24 Michael Samarin, Director of Developer Training and Evangelism, Futurice
  • 25. Examples: • Tantalum Cross Platform Library • http://projects.developer.nokia.com/Tantalum 25 Michael Samarin, Director of Developer Training and Evangelism, Futurice
  • 26. Demo: Android porting Frozen Bubble 26 Michael Samarin, Director of Developer Training and Evangelism, Futurice
  • 27. Series 40 Graphics APIs • 2D Game Development • Game API, part of the MIDP 2.0 standard, java package: javax.microedition.lcdui.game • http://www.developer.nokia.com/Resources/Library/Java/#!developers-guides/ui-and- graphics/game-api.html • 3D Game Development • Mobile 3D Graphics API, optional JSR-184 also known as M3G • http://www.developer.nokia.com/Resources/Library/Java/#!developers-guides/ui-and- graphics/mobile-3d-graphics.html 27 Michael Samarin, Director of Developer Training and Evangelism, Futurice
  • 28. Game API Package (MIDP) • javax.microedition.lcdui.game • GameCanvas • Layer • LayerManager • Sprite • TiledLayer 28 Michael Samarin, Director of Developer Training and Evangelism, Futurice
  • 29. •GameCanvas • Double buffered • Convenient for minimizing code of game loop • Methods for querying status of keys 29 Michael Samarin, Director of Developer Training and Evangelism, Futurice
  • 30. Demo: 2D GameBuilder Plugin 30 Michael Samarin, Director of Developer Training and Evangelism, Futurice
  • 31. Demo: DrumKit Coding 31 Michael Samarin, Director of Developer Training and Evangelism, Futurice
  • 32. Demo: DrumKit Full Video http://youtu.be/41xQTfNWQeI 32 Michael Samarin, Director of Developer Training and Evangelism, Futurice
  • 33. Demo: CarRacing 33 Michael Samarin, Director of Developer Training and Evangelism, Futurice
  • 34. • Object-Oriented 3D • Scene Graph based Mobile 3D Graphics API • Optional MIDP JSR JSR-184 or M3G • Very compact API • Very fast development • Optimized for small memory and budget CPU • Excellent implementation on Series 40 34 Michael Samarin, Director of Developer Training and Evangelism, Futurice
  • 35. Lightweight API, only 30 classes AnimationController IndexBuffer RayIntersection AnimationTrack KeyframeSequence SkinnedMesh Appearance Light Sprite3D Background Loader Texture2D Camera Material Transform CompositingMode Mesh Transformable Fog MorphingMesh TriangleStripArray Graphics3D Node VertexArray Group Object3D VertexBuffer Image2D PolygonMode World 35 Michael Samarin, Director of Developer Training and Evangelism, Futurice
  • 36. • Immediate mode • Similar to OpenGL ideology • Retained mode Modes • Scene Graph based • Entire Scene Graph can be restored from file • Well defined M3G format • Can be freely mixed 36 Michael Samarin, Director of Developer Training and Evangelism, Futurice
  • 37. Scene Graph Background Mesh Group Morphing Mesh World Skinned Mesh Sprite 3D Group Sprite 3D User Object Group Camera Light 37 Michael Samarin, Director of Developer Training and Evangelism, Futurice
  • 38. Demo: Monkey Face 38 Michael Samarin, Director of Developer Training and Evangelism, Futurice
  • 39. Demo: 3D Racing and Sensors 39 Michael Samarin, Director of Developer Training and Evangelism, Futurice
  • 40. Demo: 3D Maze http://youtu.be/6WZcW_tD35U 40 Michael Samarin, Director of Developer Training and Evangelism, Futurice
  • 41. Demo: All Games http://youtu.be/NHhkFgxKX2g 41 Michael Samarin, Director of Developer Training and Evangelism, Futurice
  • 42. Thank you! 42 Michael Samarin, Director of Developer Training and Evangelism, Futurice