This webinar presentation takes you through the features of the Series 40 platform for Asha smartphones, which enable the coolest apps to be developed. To start, the features of the UI based on either LCDUI or LWUIT for Java are reviewed. Then there is a discussion on how you port apps from Android — looking at the key issues you need to consider. The presentation then concludes by reviewing the options for 2D and 3D graphics, in particular how they help develop outstanding games. Numerous demonstrations are included, along with links to the source code and installation files, so you can try the apps yourself and use the code in your own apps.
Join the next session: 4 April - 8 a.m. London; 12:30 p.m. New Delhi; 3 p.m. Singapore - http://forumnokia.adobeconnect.com/cool-asha-ssn2/event/event_info.html
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
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
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
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