SlideShare ist ein Scribd-Unternehmen logo
1 von 31
Downloaden Sie, um offline zu lesen
<Insert Picture Here>




Beyond Smartphones:
Rich Applications and Services for the Mobile Masses
Terrence Barr
Senior Technologist, Mobile & Embedded
Important Note


 "THE FOLLOWING IS INTENDED TO OUTLINE OUR
  GENERAL PRODUCT DIRECTION. IT IS INTENDED
FOR INFORMATION PURPOSES ONLY, AND MAY NOT
BE INCORPORATED INTO ANY CONTRACT. IT IS NOT
A COMMITMENT TO DELIVER ANY MATERIAL, CODE,
 OR FUNCTIONALITY, AND SHOULD NOT BE RELIED
   UPON IN MAKING PURCHASING DECISION. THE
   DEVELOPMENT, RELEASE, AND TIMING OF ANY
  FEATURES OR FUNCTIONALITY DESCRIBED FOR
   ORACLE'S PRODUCTS REMAINS AT THE SOLE
            DISCRETION OF ORACLE."
Goals Of This Talk


Java ME has all the tools to build rich and compelling
          smartphone-like applications -
Learn how to build the basics of a cool, good-looking
            social networking mash-up

                          Note:
Due to time constraints we will glance over many details.
 More info and full source code will be online for further
                        learning.
Program Agenda

• Rich Applications for Mass Markets                  <Insert Picture Here>

• Quick Intros
  • UI (LWUIT - Lightweight User Interface Toolkit)
  • Search + Map (Mobile Ajax for Java ME)
  • Twitter (Twitter API ME + OAuth)
• Demo Scenario and Flows
• Code!
• Appendix
• Q&A
Rich Applications for the Mass Market
 User Experience Drives Emotion, Satisfaction

• User Experience Matters
   • Smartphones have raised the bar
   • In todays market, applications and content
     must be visually rich and engaging
   • Good design drives users satisfaction,
     productivity, and ultimately, value
• Going after the numbers
  • Java ME-based deployments (~3 billion)
    dwarf smartphones
  • For many content developers this is where
    the bulk of the revenue is
• Java ME lets you deliver to billions
What is LWUIT?
 Lightweight User Interface Toolkit

• Advanced, lightweight UI library
• Compelling UI
   • Consistent across different devices
• For todays handsets (and more ...)
• Portable
   • MIDP, Blackberry, Android, CDC, SE, TV, ...
• Inspired by Swing
• Tools support
• Open Source!
  • GPLv2 + Classpath Exception, free for commercial use
  • Active community
Demo
Rich Mobile Java with LWUIT
LWUIT
 Key Benefits

• Rapid development
   • Familiar API
   • Clean & simple
• Easy deployment
   • One jar, many devices
• Consistent & flexible
   • Customizable, extendable
• “Filthy Rich” UI
• Brand-able
• Designed for mass market devices
   • Tested on broad range of hardware
LWUIT
 Key Features

• Swing-like MVC
• Layouts
• Fonts
• Rich widgets
• 3D & SVG integration
• Touch screen support
• Animations & transitions
• Pluggable Look & Feel, theming
• I18N/L10N support
• ... more
Cross-Platform Content
 LWUIT handles many device-specific details

• Identical application code, multiple platforms




   Mobile Emulator   Sony Ericsson G705   HTC Touch Diamond
LWUIT application skeleton

VKBImplementationFactory.init();
Display.init(this);
….
Resources res = Resources.open(“/businessTheme.res");
UIManager.getInstance().setThemeProps(res.getTheme(…));
….
Form searchForm = new SearchForm(…);
searchForm.addCommand(new Command("Search") {
      public void actionPerformed(ActionEvent ev) {
          showMap(…);
      }
});
Mobile Ajax for Java ME
 RESTful Web Services For Your Applications

• RESTful Web Services made easy
   • Easily consume and integrate RESTful
     web services into your mobile app
   • Open sourced under BSD license
• Mobile Ajax Libraries
   • Streaming atom, JSON,
     expression language, async I/O, blog
     reading, and more
• Sample Applications
   • GPS client, Flickr client, Yahoo! Local
     search & mapping, Twitter access,
     more
Twitter API ME + OAuth
 Easy access to Twitter services

• Application authentication and authorization
   • OAuth: Open protocol for flexible and secure authentication
     and authorization to Internet services
   • Increasingly used across the web (Twitter, Facebook,
     Yahoo, ...)
• However, an OAuth client is non-trivial to implement
• Twitter API ME makes building Twitter clients easy
   • Simple API for Java ME, Android, and BlackBerry platforms
   • Register your app with Twitter
   • Use the Twitter API ME to log into Twitter and access
     authorized resources with a few lines of code
Demo
Device & Web Services Mash-Up
Demo Scenario
 “Meet Me For Dinner”

• Goal: Build a social networking & LBS mash-up
  • Combines several popular web services and device features
    (GPS, camera, address book) + compelling UI
• Scenario
   • User is in the city, wants to meet up with friends for dinner
   • Chooses highly rated restaurant convenient for everyone
   • Map
      • Current user location
      • The locations of nearby friends
      • Restaurants in the vicinity
   • Directions to selected restaurant overlaid on map
   • Send out a geo-located Tweet with restaurant information
   • (Optional) Post camera pic, send SMS
Demo Functionality
High-Level Application Flow

1. Get current location of user via device built-in GPS
2. Get current locations of friends via 3rd party server
3. Do local business search with keyword
4. Get and display map with markers: user, friends, restaurants
5. Let user browse restaurant details and select a restaurant
6. Get directions to restaurant and overlay in map
7. (Optional) User takes picture of restaurant
8. Tweet “Meet me for dinner” (with optional URL to picture)
9. (Optional) Access device address book and send SMS to
  friend(s) without Twitter access
Map Screen

• Get locations
  • Device location via built-in GPS (JSR 172)
  • Friend locations via 3rd party service
  • Business POIs via local business search
• Get map centered on user location
  • Create LWUIT image from map png, use
    as background via custom painter
• For each location create a marker
   • Translate lat/long coordinates into pixel
     positions in map
   • Position marker images (LWUIT labels) in
     map using CoordinateLayout
• Display map in LWUIT form
Get current location

//Option 1: JSR-179
LocationProvider lp = LocationProvider.getInstance(null);
Location loc = lp.getLocation(10);
QualifiedCoordinates qc = loc.getQualifiedCoordinates();


//Option 2: by CellID (eg Nokia, SEMC, Samsung, OJWC etc)
String cellid = System.getProperty(X_CELLID_PROP_KEY);
restUrl = http://www.opencellid.org/cell/get? [params]
//Send and parse response


//Option 3: Network APIs, provider specific
Search business
private static final String APPID = ...
private static String LOCAL_BASE =
      "http://local.yahooapis.com/LocalSearchService/V3/localSearch
...
Arg[] args = new Arg[] { ... }; // json, appid, lat, lon, ...
Response response = Request.get(LOCAL_BASE, args, ...);
Result result = response.getResult();
for (i < resultCount) {
      poi.address =
            result.getAsString("ResultSet.Result["+i+"].Address");
      poi.title = ...
      ...
}
Getting the map

private static final String MAP_BASE =
      "http://maps.google.com/maps/api/staticmap";
...
String loc = MAP_BASE + "?" + “center=” +
      lat + “,” + lon + “&zoom=” + zoom + ... <params> ;
HttpConnection conn = HttpConnection)Connector.open(loc);
InputStream is = conn.openInputStream();
Image mapImage = Image.createImage(is);
Pop-Up Dialogs

• Improving the user experience
   • Point-and-click access to all relevant information
     within Map Screen
   • Reduce number of screen transitions
   • Transparency maintains visual relationship to map
• LWUIT Dialog
   • Modal
   • Partly transparent
   • Smooth fade-in and fade-out transitions
   • Automatic timeout reduces number of user clicks
   • Slightly customized (added timeout callback)
POI List Screen

• Scrollable list of POIs
• Vertical LWUIT list
   • Custom fish-eye renderer
   • Unselected item: Single line POI name
   • Selected item: Expands to picture, POI
     name, and additional info
   • “Bevel-raised” border
   • Scrolling behavior is “one margin from the
     edge” for better legibility
• Smooth pixel-based & kinetic scrolling
  out of the box
POI Selection and Directions in Map

• When user clicks on restaurant
 marker set label state to “selected”
  • Show restaurant pop-up, allow user to
    select POI
• Get map with directions
  • Get route from user to POI, save returned
    list of path segments
  • Get map image as before, but with
    embedded route using path segments
• Update on-screen form
   • Replace background map with new map
   • Existing markers remain in place
Announce Screen

• Pre-populate announcement text
  with restaurant details
• User enters meeting time
   • Pop up virtual keyboard
• Tweet using Twitter API ME
   • Secure log in and authentication (https)
   • Post geo-located tweet
• (Optional) Tweet with picture
   • Allow user to take picture of restaurant
     using JSR 135 (MMAPI)
   • Post picture to web service, add URL to
     tweet
Tweet
private final String ...   //0Auth keys and secrets
...
Token token = new Token(oauth_token, oauth_token_secret);
Credential crd = new Credential(key, secret, token);
UserAccountManager uam = UserAccountManager.getInstance(crd)
uam.verifyCredential();
...
TweetER tweeter = TweetER.getInstance(userAccMgr);
Tweet tweet = new Tweet(message, tweetLocation);
tweeter.post(tweet);
(Optional) Send SMS

• Friends might not have Twitter access
   • Use SMS as notification mechanism
• Access phone book to get phone numbers of friends
   • Using JSR 75 (PIM)
• Send SMS with info similar to tweet
   • Use JSR 205 (WMA)
Additional Ideas
    Spice it up!

• Splash screen, animations (marker selection, pop-up
    animation, POI details bubble, list scrolling, ...)
•   Map zooming and scrolling
•   Moving map (real-time tracking of user location)
•   Integration with HTML/XHTML content
•   Integration with other web services (fire eagle,
    foursquare, etc)
•   Integrate with payment, advertising
•   Deeper integration with platform features (e.g. Nokia
    gesture API, SonyEricsson JSR-211/CHAPI, etc)
•   ...
Summary
    It's not always about smartphones

• The Mass Market is where the numbers and the
    revenue for many developers are
•   You can deliver smartphone-like applications and user
    experiences to mass market phones
•   LWUIT makes creating and deploying rich and
    compelling user interfaces easy
•   Mobile Ajax libraries enable you to access and
    consume a variety of popular web services easily
•   Twitter API ME makes building Twitter clients a snap
•   Get started today!
Where To Find Out More
 Resources

• Full project sources on my blog:
    http://terrencebarr.wordpress.com/2011/05/06/beyond-
  smartphones-source-code-video-released/
  (or search for “Beyond Smartphones”)
• LWUIT article and info:
   http://tinyurl.com/2erwc3x
• Mobile Ajax project:
   http://meapplicationdevelopers.dev.java.net/mobileajax.html
• Twitter API ME:
   http://kenai.com/projects/twitterapime/pages/Home
Thank You!
 Q&A




PS: Thanks to
  • Ernandes Mourão Júnior for Twitter API ME
  • Ronan O. Ciosoig for review and input
Terence Barr  - beyond smartphones - 24mai2011

Weitere ähnliche Inhalte

Andere mochten auch

CecBank - 07oct2010
CecBank - 07oct2010CecBank - 07oct2010
CecBank - 07oct2010Agora Group
 
Microsoft - Programatica2010
Microsoft - Programatica2010Microsoft - Programatica2010
Microsoft - Programatica2010Agora Group
 
CecBank - 18nov2010
CecBank - 18nov2010CecBank - 18nov2010
CecBank - 18nov2010Agora Group
 
Acceleris+ +centre+de+date+-++12mai2010
Acceleris+ +centre+de+date+-++12mai2010Acceleris+ +centre+de+date+-++12mai2010
Acceleris+ +centre+de+date+-++12mai2010Agora Group
 
Raportul Cisco de securitate pentru anul 2014
Raportul Cisco de securitate pentru anul 2014Raportul Cisco de securitate pentru anul 2014
Raportul Cisco de securitate pentru anul 2014Agora Group
 
Agora Securitate yugo neumorni
Agora Securitate yugo neumorniAgora Securitate yugo neumorni
Agora Securitate yugo neumorniAgora Group
 

Andere mochten auch (6)

CecBank - 07oct2010
CecBank - 07oct2010CecBank - 07oct2010
CecBank - 07oct2010
 
Microsoft - Programatica2010
Microsoft - Programatica2010Microsoft - Programatica2010
Microsoft - Programatica2010
 
CecBank - 18nov2010
CecBank - 18nov2010CecBank - 18nov2010
CecBank - 18nov2010
 
Acceleris+ +centre+de+date+-++12mai2010
Acceleris+ +centre+de+date+-++12mai2010Acceleris+ +centre+de+date+-++12mai2010
Acceleris+ +centre+de+date+-++12mai2010
 
Raportul Cisco de securitate pentru anul 2014
Raportul Cisco de securitate pentru anul 2014Raportul Cisco de securitate pentru anul 2014
Raportul Cisco de securitate pentru anul 2014
 
Agora Securitate yugo neumorni
Agora Securitate yugo neumorniAgora Securitate yugo neumorni
Agora Securitate yugo neumorni
 

Ähnlich wie Terence Barr - beyond smartphones - 24mai2011

Visual Mobile Applications with Netbeans 6.0 - Cédric Tabin - February 2008
Visual Mobile Applications with Netbeans 6.0 - Cédric Tabin - February 2008Visual Mobile Applications with Netbeans 6.0 - Cédric Tabin - February 2008
Visual Mobile Applications with Netbeans 6.0 - Cédric Tabin - February 2008JUG Lausanne
 
The Mobile Web Revealed For The Java Developer
The Mobile Web Revealed For The Java DeveloperThe Mobile Web Revealed For The Java Developer
The Mobile Web Revealed For The Java Developerbalunasj
 
Modeveast Appcelerator Presentation
Modeveast Appcelerator PresentationModeveast Appcelerator Presentation
Modeveast Appcelerator PresentationAaron Saunders
 
S#01 김영욱
S#01 김영욱 S#01 김영욱
S#01 김영욱 codercay
 
2015.04.23 Azure Mobile Services
2015.04.23 Azure Mobile Services2015.04.23 Azure Mobile Services
2015.04.23 Azure Mobile ServicesMarco Parenzan
 
Programming iOS in C#
Programming iOS in C#Programming iOS in C#
Programming iOS in C#Frank Krueger
 
PaaS + Appcelerator = WIN
PaaS + Appcelerator = WINPaaS + Appcelerator = WIN
PaaS + Appcelerator = WINAaron Saunders
 
Win j svsphonegap-damyan-petev-mihail-mateev
Win j svsphonegap-damyan-petev-mihail-mateevWin j svsphonegap-damyan-petev-mihail-mateev
Win j svsphonegap-damyan-petev-mihail-mateevMihail Mateev
 
Xamarin 9/10 San Diego Meetup
Xamarin 9/10 San Diego MeetupXamarin 9/10 San Diego Meetup
Xamarin 9/10 San Diego MeetupSeamgen
 
Developing windows phone 7 application with silverlight
Developing windows phone 7 application with silverlightDeveloping windows phone 7 application with silverlight
Developing windows phone 7 application with silverlightTung Nguyen Thanh
 
Windows Azure Mobile Services at ReBOOT Cloud Camp , Bangalore
Windows Azure Mobile Services at ReBOOT Cloud Camp , BangaloreWindows Azure Mobile Services at ReBOOT Cloud Camp , Bangalore
Windows Azure Mobile Services at ReBOOT Cloud Camp , BangaloreSenthil Kumar
 
Your last mile to SOA and Web 2.0- Lotus Expeditor for Devices - Eric MF Hsu,...
Your last mile to SOA and Web 2.0- Lotus Expeditor for Devices - Eric MF Hsu,...Your last mile to SOA and Web 2.0- Lotus Expeditor for Devices - Eric MF Hsu,...
Your last mile to SOA and Web 2.0- Lotus Expeditor for Devices - Eric MF Hsu,...mfrancis
 
Mobile Web Development with HTML5
Mobile Web Development with HTML5Mobile Web Development with HTML5
Mobile Web Development with HTML5Roy Clarkson
 
Medium TechTalk — iOS
Medium TechTalk — iOSMedium TechTalk — iOS
Medium TechTalk — iOSjimmyatmedium
 
Mobile services on windows azure (part2)
Mobile services on windows azure (part2)Mobile services on windows azure (part2)
Mobile services on windows azure (part2)Radu Vunvulea
 
#Techorama belgium 2018 vincent biret deep dive with the #MicrosoftGraph
#Techorama belgium 2018 vincent biret deep dive with the #MicrosoftGraph#Techorama belgium 2018 vincent biret deep dive with the #MicrosoftGraph
#Techorama belgium 2018 vincent biret deep dive with the #MicrosoftGraphVincent Biret
 
Azure Bot Services - Malaysia
Azure Bot Services - MalaysiaAzure Bot Services - Malaysia
Azure Bot Services - MalaysiaCheah Eng Soon
 
Mobile App Development
Mobile App DevelopmentMobile App Development
Mobile App DevelopmentChris Morrell
 

Ähnlich wie Terence Barr - beyond smartphones - 24mai2011 (20)

Visual Mobile Applications with Netbeans 6.0 - Cédric Tabin - February 2008
Visual Mobile Applications with Netbeans 6.0 - Cédric Tabin - February 2008Visual Mobile Applications with Netbeans 6.0 - Cédric Tabin - February 2008
Visual Mobile Applications with Netbeans 6.0 - Cédric Tabin - February 2008
 
The Mobile Web Revealed For The Java Developer
The Mobile Web Revealed For The Java DeveloperThe Mobile Web Revealed For The Java Developer
The Mobile Web Revealed For The Java Developer
 
Modeveast Appcelerator Presentation
Modeveast Appcelerator PresentationModeveast Appcelerator Presentation
Modeveast Appcelerator Presentation
 
S#01 김영욱
S#01 김영욱 S#01 김영욱
S#01 김영욱
 
2015.04.23 Azure Mobile Services
2015.04.23 Azure Mobile Services2015.04.23 Azure Mobile Services
2015.04.23 Azure Mobile Services
 
Programming iOS in C#
Programming iOS in C#Programming iOS in C#
Programming iOS in C#
 
PaaS + Appcelerator = WIN
PaaS + Appcelerator = WINPaaS + Appcelerator = WIN
PaaS + Appcelerator = WIN
 
Win j svsphonegap-damyan-petev-mihail-mateev
Win j svsphonegap-damyan-petev-mihail-mateevWin j svsphonegap-damyan-petev-mihail-mateev
Win j svsphonegap-damyan-petev-mihail-mateev
 
Xamarin 9/10 San Diego Meetup
Xamarin 9/10 San Diego MeetupXamarin 9/10 San Diego Meetup
Xamarin 9/10 San Diego Meetup
 
Android quick talk
Android quick talkAndroid quick talk
Android quick talk
 
Developing windows phone 7 application with silverlight
Developing windows phone 7 application with silverlightDeveloping windows phone 7 application with silverlight
Developing windows phone 7 application with silverlight
 
Windows Azure Mobile Services at ReBOOT Cloud Camp , Bangalore
Windows Azure Mobile Services at ReBOOT Cloud Camp , BangaloreWindows Azure Mobile Services at ReBOOT Cloud Camp , Bangalore
Windows Azure Mobile Services at ReBOOT Cloud Camp , Bangalore
 
Your last mile to SOA and Web 2.0- Lotus Expeditor for Devices - Eric MF Hsu,...
Your last mile to SOA and Web 2.0- Lotus Expeditor for Devices - Eric MF Hsu,...Your last mile to SOA and Web 2.0- Lotus Expeditor for Devices - Eric MF Hsu,...
Your last mile to SOA and Web 2.0- Lotus Expeditor for Devices - Eric MF Hsu,...
 
Mobile Web Development with HTML5
Mobile Web Development with HTML5Mobile Web Development with HTML5
Mobile Web Development with HTML5
 
Medium TechTalk — iOS
Medium TechTalk — iOSMedium TechTalk — iOS
Medium TechTalk — iOS
 
Mobile services on windows azure (part2)
Mobile services on windows azure (part2)Mobile services on windows azure (part2)
Mobile services on windows azure (part2)
 
2015 5-7-slide
2015 5-7-slide2015 5-7-slide
2015 5-7-slide
 
#Techorama belgium 2018 vincent biret deep dive with the #MicrosoftGraph
#Techorama belgium 2018 vincent biret deep dive with the #MicrosoftGraph#Techorama belgium 2018 vincent biret deep dive with the #MicrosoftGraph
#Techorama belgium 2018 vincent biret deep dive with the #MicrosoftGraph
 
Azure Bot Services - Malaysia
Azure Bot Services - MalaysiaAzure Bot Services - Malaysia
Azure Bot Services - Malaysia
 
Mobile App Development
Mobile App DevelopmentMobile App Development
Mobile App Development
 

Mehr von Agora Group

How to Digitally Transform and Stay Competitive with a Zero-code Digital Busi...
How to Digitally Transform and Stay Competitive with a Zero-code Digital Busi...How to Digitally Transform and Stay Competitive with a Zero-code Digital Busi...
How to Digitally Transform and Stay Competitive with a Zero-code Digital Busi...Agora Group
 
Microservicii reutilizabile in arhitecturi bazate pe procese
Microservicii reutilizabile in arhitecturi bazate pe proceseMicroservicii reutilizabile in arhitecturi bazate pe procese
Microservicii reutilizabile in arhitecturi bazate pe proceseAgora Group
 
The role of BPM in Paradigms Shift
The role of BPM in Paradigms ShiftThe role of BPM in Paradigms Shift
The role of BPM in Paradigms ShiftAgora Group
 
Prezentare Ensight_BPM-20171004
Prezentare Ensight_BPM-20171004Prezentare Ensight_BPM-20171004
Prezentare Ensight_BPM-20171004Agora Group
 
Curs Digital Forensics
Curs Digital ForensicsCurs Digital Forensics
Curs Digital ForensicsAgora Group
 
The next generation of Companies management: state of the art in BPM
The next generation of Companies management: state of the art in BPMThe next generation of Companies management: state of the art in BPM
The next generation of Companies management: state of the art in BPMAgora Group
 
Speed Dialing the Enterprise
Speed Dialing the EnterpriseSpeed Dialing the Enterprise
Speed Dialing the EnterpriseAgora Group
 
Arhitectura proceselor în Sistemul Informațional de Sănătate
Arhitectura proceselor în Sistemul Informațional de SănătateArhitectura proceselor în Sistemul Informațional de Sănătate
Arhitectura proceselor în Sistemul Informațional de SănătateAgora Group
 
IBM’s Smarter Process Reinvent Business
IBM’s Smarter Process Reinvent BusinessIBM’s Smarter Process Reinvent Business
IBM’s Smarter Process Reinvent BusinessAgora Group
 
eHealth 2014_Radu Dop
eHealth 2014_Radu DopeHealth 2014_Radu Dop
eHealth 2014_Radu DopAgora Group
 
Importanța registrelor pentru pacienți
Importanța registrelor pentru paciențiImportanța registrelor pentru pacienți
Importanța registrelor pentru paciențiAgora Group
 
CYBERCRIME AND THE HEALTHCARE INDUSTRY: Sistemul de sănătate, noua țintă a at...
CYBERCRIME AND THE HEALTHCARE INDUSTRY: Sistemul de sănătate, noua țintă a at...CYBERCRIME AND THE HEALTHCARE INDUSTRY: Sistemul de sănătate, noua țintă a at...
CYBERCRIME AND THE HEALTHCARE INDUSTRY: Sistemul de sănătate, noua țintă a at...Agora Group
 
Perspective naționale și internaționale ale informaticii și standardelor medi...
Perspective naționale și internaționale ale informaticii și standardelor medi...Perspective naționale și internaționale ale informaticii și standardelor medi...
Perspective naționale și internaționale ale informaticii și standardelor medi...Agora Group
 
UTI_Dosarul electronic de sanatate
UTI_Dosarul electronic de sanatateUTI_Dosarul electronic de sanatate
UTI_Dosarul electronic de sanatateAgora Group
 
Class IT - Enemy inside the wire
Class IT - Enemy inside the wireClass IT - Enemy inside the wire
Class IT - Enemy inside the wireAgora Group
 
Infologica - auditarea aplicatiilor mobile
Infologica - auditarea aplicatiilor mobileInfologica - auditarea aplicatiilor mobile
Infologica - auditarea aplicatiilor mobileAgora Group
 
Security threats in the LAN
Security threats in the LANSecurity threats in the LAN
Security threats in the LANAgora Group
 
Sprint backlog specified by example
Sprint backlog specified by exampleSprint backlog specified by example
Sprint backlog specified by exampleAgora Group
 

Mehr von Agora Group (20)

How to Digitally Transform and Stay Competitive with a Zero-code Digital Busi...
How to Digitally Transform and Stay Competitive with a Zero-code Digital Busi...How to Digitally Transform and Stay Competitive with a Zero-code Digital Busi...
How to Digitally Transform and Stay Competitive with a Zero-code Digital Busi...
 
Microservicii reutilizabile in arhitecturi bazate pe procese
Microservicii reutilizabile in arhitecturi bazate pe proceseMicroservicii reutilizabile in arhitecturi bazate pe procese
Microservicii reutilizabile in arhitecturi bazate pe procese
 
The role of BPM in Paradigms Shift
The role of BPM in Paradigms ShiftThe role of BPM in Paradigms Shift
The role of BPM in Paradigms Shift
 
Prezentare Ensight_BPM-20171004
Prezentare Ensight_BPM-20171004Prezentare Ensight_BPM-20171004
Prezentare Ensight_BPM-20171004
 
Curs OSINT
Curs OSINTCurs OSINT
Curs OSINT
 
Curs Digital Forensics
Curs Digital ForensicsCurs Digital Forensics
Curs Digital Forensics
 
The next generation of Companies management: state of the art in BPM
The next generation of Companies management: state of the art in BPMThe next generation of Companies management: state of the art in BPM
The next generation of Companies management: state of the art in BPM
 
Speed Dialing the Enterprise
Speed Dialing the EnterpriseSpeed Dialing the Enterprise
Speed Dialing the Enterprise
 
ABPMP Romania
ABPMP RomaniaABPMP Romania
ABPMP Romania
 
Arhitectura proceselor în Sistemul Informațional de Sănătate
Arhitectura proceselor în Sistemul Informațional de SănătateArhitectura proceselor în Sistemul Informațional de Sănătate
Arhitectura proceselor în Sistemul Informațional de Sănătate
 
IBM’s Smarter Process Reinvent Business
IBM’s Smarter Process Reinvent BusinessIBM’s Smarter Process Reinvent Business
IBM’s Smarter Process Reinvent Business
 
eHealth 2014_Radu Dop
eHealth 2014_Radu DopeHealth 2014_Radu Dop
eHealth 2014_Radu Dop
 
Importanța registrelor pentru pacienți
Importanța registrelor pentru paciențiImportanța registrelor pentru pacienți
Importanța registrelor pentru pacienți
 
CYBERCRIME AND THE HEALTHCARE INDUSTRY: Sistemul de sănătate, noua țintă a at...
CYBERCRIME AND THE HEALTHCARE INDUSTRY: Sistemul de sănătate, noua țintă a at...CYBERCRIME AND THE HEALTHCARE INDUSTRY: Sistemul de sănătate, noua țintă a at...
CYBERCRIME AND THE HEALTHCARE INDUSTRY: Sistemul de sănătate, noua țintă a at...
 
Perspective naționale și internaționale ale informaticii și standardelor medi...
Perspective naționale și internaționale ale informaticii și standardelor medi...Perspective naționale și internaționale ale informaticii și standardelor medi...
Perspective naționale și internaționale ale informaticii și standardelor medi...
 
UTI_Dosarul electronic de sanatate
UTI_Dosarul electronic de sanatateUTI_Dosarul electronic de sanatate
UTI_Dosarul electronic de sanatate
 
Class IT - Enemy inside the wire
Class IT - Enemy inside the wireClass IT - Enemy inside the wire
Class IT - Enemy inside the wire
 
Infologica - auditarea aplicatiilor mobile
Infologica - auditarea aplicatiilor mobileInfologica - auditarea aplicatiilor mobile
Infologica - auditarea aplicatiilor mobile
 
Security threats in the LAN
Security threats in the LANSecurity threats in the LAN
Security threats in the LAN
 
Sprint backlog specified by example
Sprint backlog specified by exampleSprint backlog specified by example
Sprint backlog specified by example
 

Kürzlich hochgeladen

Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
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 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
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
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
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
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
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfhans926745
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 

Kürzlich hochgeladen (20)

Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
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 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
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
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
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
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
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 

Terence Barr - beyond smartphones - 24mai2011

  • 1. <Insert Picture Here> Beyond Smartphones: Rich Applications and Services for the Mobile Masses Terrence Barr Senior Technologist, Mobile & Embedded
  • 2. Important Note "THE FOLLOWING IS INTENDED TO OUTLINE OUR GENERAL PRODUCT DIRECTION. IT IS INTENDED FOR INFORMATION PURPOSES ONLY, AND MAY NOT BE INCORPORATED INTO ANY CONTRACT. IT IS NOT A COMMITMENT TO DELIVER ANY MATERIAL, CODE, OR FUNCTIONALITY, AND SHOULD NOT BE RELIED UPON IN MAKING PURCHASING DECISION. THE DEVELOPMENT, RELEASE, AND TIMING OF ANY FEATURES OR FUNCTIONALITY DESCRIBED FOR ORACLE'S PRODUCTS REMAINS AT THE SOLE DISCRETION OF ORACLE."
  • 3. Goals Of This Talk Java ME has all the tools to build rich and compelling smartphone-like applications - Learn how to build the basics of a cool, good-looking social networking mash-up Note: Due to time constraints we will glance over many details. More info and full source code will be online for further learning.
  • 4. Program Agenda • Rich Applications for Mass Markets <Insert Picture Here> • Quick Intros • UI (LWUIT - Lightweight User Interface Toolkit) • Search + Map (Mobile Ajax for Java ME) • Twitter (Twitter API ME + OAuth) • Demo Scenario and Flows • Code! • Appendix • Q&A
  • 5. Rich Applications for the Mass Market User Experience Drives Emotion, Satisfaction • User Experience Matters • Smartphones have raised the bar • In todays market, applications and content must be visually rich and engaging • Good design drives users satisfaction, productivity, and ultimately, value • Going after the numbers • Java ME-based deployments (~3 billion) dwarf smartphones • For many content developers this is where the bulk of the revenue is • Java ME lets you deliver to billions
  • 6. What is LWUIT? Lightweight User Interface Toolkit • Advanced, lightweight UI library • Compelling UI • Consistent across different devices • For todays handsets (and more ...) • Portable • MIDP, Blackberry, Android, CDC, SE, TV, ... • Inspired by Swing • Tools support • Open Source! • GPLv2 + Classpath Exception, free for commercial use • Active community
  • 8. LWUIT Key Benefits • Rapid development • Familiar API • Clean & simple • Easy deployment • One jar, many devices • Consistent & flexible • Customizable, extendable • “Filthy Rich” UI • Brand-able • Designed for mass market devices • Tested on broad range of hardware
  • 9. LWUIT Key Features • Swing-like MVC • Layouts • Fonts • Rich widgets • 3D & SVG integration • Touch screen support • Animations & transitions • Pluggable Look & Feel, theming • I18N/L10N support • ... more
  • 10. Cross-Platform Content LWUIT handles many device-specific details • Identical application code, multiple platforms Mobile Emulator Sony Ericsson G705 HTC Touch Diamond
  • 11. LWUIT application skeleton VKBImplementationFactory.init(); Display.init(this); …. Resources res = Resources.open(“/businessTheme.res"); UIManager.getInstance().setThemeProps(res.getTheme(…)); …. Form searchForm = new SearchForm(…); searchForm.addCommand(new Command("Search") { public void actionPerformed(ActionEvent ev) { showMap(…); } });
  • 12. Mobile Ajax for Java ME RESTful Web Services For Your Applications • RESTful Web Services made easy • Easily consume and integrate RESTful web services into your mobile app • Open sourced under BSD license • Mobile Ajax Libraries • Streaming atom, JSON, expression language, async I/O, blog reading, and more • Sample Applications • GPS client, Flickr client, Yahoo! Local search & mapping, Twitter access, more
  • 13. Twitter API ME + OAuth Easy access to Twitter services • Application authentication and authorization • OAuth: Open protocol for flexible and secure authentication and authorization to Internet services • Increasingly used across the web (Twitter, Facebook, Yahoo, ...) • However, an OAuth client is non-trivial to implement • Twitter API ME makes building Twitter clients easy • Simple API for Java ME, Android, and BlackBerry platforms • Register your app with Twitter • Use the Twitter API ME to log into Twitter and access authorized resources with a few lines of code
  • 14. Demo Device & Web Services Mash-Up
  • 15. Demo Scenario “Meet Me For Dinner” • Goal: Build a social networking & LBS mash-up • Combines several popular web services and device features (GPS, camera, address book) + compelling UI • Scenario • User is in the city, wants to meet up with friends for dinner • Chooses highly rated restaurant convenient for everyone • Map • Current user location • The locations of nearby friends • Restaurants in the vicinity • Directions to selected restaurant overlaid on map • Send out a geo-located Tweet with restaurant information • (Optional) Post camera pic, send SMS
  • 16. Demo Functionality High-Level Application Flow 1. Get current location of user via device built-in GPS 2. Get current locations of friends via 3rd party server 3. Do local business search with keyword 4. Get and display map with markers: user, friends, restaurants 5. Let user browse restaurant details and select a restaurant 6. Get directions to restaurant and overlay in map 7. (Optional) User takes picture of restaurant 8. Tweet “Meet me for dinner” (with optional URL to picture) 9. (Optional) Access device address book and send SMS to friend(s) without Twitter access
  • 17. Map Screen • Get locations • Device location via built-in GPS (JSR 172) • Friend locations via 3rd party service • Business POIs via local business search • Get map centered on user location • Create LWUIT image from map png, use as background via custom painter • For each location create a marker • Translate lat/long coordinates into pixel positions in map • Position marker images (LWUIT labels) in map using CoordinateLayout • Display map in LWUIT form
  • 18. Get current location //Option 1: JSR-179 LocationProvider lp = LocationProvider.getInstance(null); Location loc = lp.getLocation(10); QualifiedCoordinates qc = loc.getQualifiedCoordinates(); //Option 2: by CellID (eg Nokia, SEMC, Samsung, OJWC etc) String cellid = System.getProperty(X_CELLID_PROP_KEY); restUrl = http://www.opencellid.org/cell/get? [params] //Send and parse response //Option 3: Network APIs, provider specific
  • 19. Search business private static final String APPID = ... private static String LOCAL_BASE = "http://local.yahooapis.com/LocalSearchService/V3/localSearch ... Arg[] args = new Arg[] { ... }; // json, appid, lat, lon, ... Response response = Request.get(LOCAL_BASE, args, ...); Result result = response.getResult(); for (i < resultCount) { poi.address = result.getAsString("ResultSet.Result["+i+"].Address"); poi.title = ... ... }
  • 20. Getting the map private static final String MAP_BASE = "http://maps.google.com/maps/api/staticmap"; ... String loc = MAP_BASE + "?" + “center=” + lat + “,” + lon + “&zoom=” + zoom + ... <params> ; HttpConnection conn = HttpConnection)Connector.open(loc); InputStream is = conn.openInputStream(); Image mapImage = Image.createImage(is);
  • 21. Pop-Up Dialogs • Improving the user experience • Point-and-click access to all relevant information within Map Screen • Reduce number of screen transitions • Transparency maintains visual relationship to map • LWUIT Dialog • Modal • Partly transparent • Smooth fade-in and fade-out transitions • Automatic timeout reduces number of user clicks • Slightly customized (added timeout callback)
  • 22. POI List Screen • Scrollable list of POIs • Vertical LWUIT list • Custom fish-eye renderer • Unselected item: Single line POI name • Selected item: Expands to picture, POI name, and additional info • “Bevel-raised” border • Scrolling behavior is “one margin from the edge” for better legibility • Smooth pixel-based & kinetic scrolling out of the box
  • 23. POI Selection and Directions in Map • When user clicks on restaurant marker set label state to “selected” • Show restaurant pop-up, allow user to select POI • Get map with directions • Get route from user to POI, save returned list of path segments • Get map image as before, but with embedded route using path segments • Update on-screen form • Replace background map with new map • Existing markers remain in place
  • 24. Announce Screen • Pre-populate announcement text with restaurant details • User enters meeting time • Pop up virtual keyboard • Tweet using Twitter API ME • Secure log in and authentication (https) • Post geo-located tweet • (Optional) Tweet with picture • Allow user to take picture of restaurant using JSR 135 (MMAPI) • Post picture to web service, add URL to tweet
  • 25. Tweet private final String ... //0Auth keys and secrets ... Token token = new Token(oauth_token, oauth_token_secret); Credential crd = new Credential(key, secret, token); UserAccountManager uam = UserAccountManager.getInstance(crd) uam.verifyCredential(); ... TweetER tweeter = TweetER.getInstance(userAccMgr); Tweet tweet = new Tweet(message, tweetLocation); tweeter.post(tweet);
  • 26. (Optional) Send SMS • Friends might not have Twitter access • Use SMS as notification mechanism • Access phone book to get phone numbers of friends • Using JSR 75 (PIM) • Send SMS with info similar to tweet • Use JSR 205 (WMA)
  • 27. Additional Ideas Spice it up! • Splash screen, animations (marker selection, pop-up animation, POI details bubble, list scrolling, ...) • Map zooming and scrolling • Moving map (real-time tracking of user location) • Integration with HTML/XHTML content • Integration with other web services (fire eagle, foursquare, etc) • Integrate with payment, advertising • Deeper integration with platform features (e.g. Nokia gesture API, SonyEricsson JSR-211/CHAPI, etc) • ...
  • 28. Summary It's not always about smartphones • The Mass Market is where the numbers and the revenue for many developers are • You can deliver smartphone-like applications and user experiences to mass market phones • LWUIT makes creating and deploying rich and compelling user interfaces easy • Mobile Ajax libraries enable you to access and consume a variety of popular web services easily • Twitter API ME makes building Twitter clients a snap • Get started today!
  • 29. Where To Find Out More Resources • Full project sources on my blog: http://terrencebarr.wordpress.com/2011/05/06/beyond- smartphones-source-code-video-released/ (or search for “Beyond Smartphones”) • LWUIT article and info: http://tinyurl.com/2erwc3x • Mobile Ajax project: http://meapplicationdevelopers.dev.java.net/mobileajax.html • Twitter API ME: http://kenai.com/projects/twitterapime/pages/Home
  • 30. Thank You! Q&A PS: Thanks to • Ernandes Mourão Júnior for Twitter API ME • Ronan O. Ciosoig for review and input