SlideShare une entreprise Scribd logo
1  sur  42
Télécharger pour lire hors ligne
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

Contenu connexe

Plus 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
 

Plus 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 ...
 

Dernier

Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
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
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - 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
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
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
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
[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
 

Dernier (20)

Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
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
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - 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
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
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
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
[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
 

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