2. Nokia X From low-end to the future
Nokia X
Access to the
world of
Android apps
+
Nokia X
Smoother,
faster flow
between your
favourite
apps
+
Nokia X
Standout
Design that’s
built to last
4. Nokia X Technical Specifications
Nokia X+Nokia X Nokia XL
4” screen (800*480)
1GHz Dual core CPU
3MP camera
7.2Mbps 3G
100 Mbps Wi-Fi
Fastlane UI
4GB internal memory,
512MB RAM, 32GB Micro SD slot
API level 16 (Android version 4.1.2)
4” screen (800*480)
1GHz Dual core CPU
3MP camera
7.2Mbps 3G
100 Mbps Wi-Fi
Fastlane UI
4GB internal memory, 768MB RAM,
32GB Micro SD slot
API level 16 (Android version 4.1.2)
5” screen (800*480)
1GHz Dual core CPU
5MP AF camera
1MP front facing camera
7.2Mbps 3G
100 Mbps Wi-Fi
Fastlane UI
4GB/768MB memory
API level 16 (Android version 4.1.2)
5. Nokia X software Platform
Anewplatform built with Android OpenSource Project atitscore.. Itcombines apopular smartphone
software base with Nokia’s global reachand strength tocreate new opportunities for your apps.
5
Android Open Source Project
4.1.2 (API level 16)
Android 3rd party
applications
Nokia X
software Platform 1.0 Nokia
Store
Nokia
UX
In-App
Payment
API
HERE
API
Nokia
Notifications
API
6. Nokia X What is it all about
Nokia X = Android – Google Services + Nokia X Services
API level 16 Google Play Services
Google+
GCM
Google Maps
Google
Nokia In-app Payment
HERE Maps
Nokia Push Notifications
7. Nokia X APIs
Anewplatform built with Android OpenSource Project atitscore.. Itcombines apopular smartphone
software base with Nokia’s global reachand strength tocreate new opportunities for your apps.
HERE Maps Nokia Push Notifications Nokia In-App Payments
HERE maps provides
complete offline
experiences like no other
maps service.
Simple yet powerful
notifications service.
World’s largest operator
billing network.
8. Nokia X 100 000+ Android applications tested
Anewplatform built with Android OpenSource Project atitscore.. Itcombines apopular smartphone
software base with Nokia’s global reachand strength tocreate new opportunities for your apps.
75% Android applications work unmodified
25% require
small changes
Nokia X service APIs
Nokia In-App Payment
HERE Maps
Nokia Notifications
(replace Google APIs)
Application ready to publish in Nokia Store.
No porting, no coding just publish!
9. Nokia X Analyser
developer.nokia.com
Submit .apk to
Nokia Store
75% work
unmodified
Port using
Nokia X
Services SDK
25% need
a little retouch
Up to
8h porting*
Nokia X Compatibility, it’s a no brainer
Nokia testing hasshown that about 75% of Android appswill runproperly without anymodifications.
Plus we give youeasy touse online andoffline tools tocheck your applications within seconds.
*For most apps, depending on application complexity and number of used APIs that need porting
10. Publish to Nokia Store – its FREE
24.3.2014 10
$0
There is no registration fee to publish an app.
It is free!!
11. Nokia X Porting workflow
• Verify general compatibility (Nokia X Analyser)
• Install Nokia X services SDK
• Adapting to Nokia Services
• Polish and UI considerations
• Check application in Nokia X Emulator
• Check application with Remote Device Access
• Check application locally
• Publish
• Reap the rewards (Profit!)
12. Nokia X Verify general compatibility
Check if yourAndroid app iscompatible with Nokia Xsoftware platform INSECONDS.
Provide quick and easy porting steps highlights common failure cases for easy porting.
Nokia X Analyser engine is verified with 10K Android apps with 99% accuracy!
Nokia X Analyser scans the standard Android
application packages (apk files) for the usage of
• Unsupported Google service APIs ( maps,
notifications and in-app billing)
• NFC
• Minimum API version required
Based on the above APIs’ usage, the application is
flagged as compatible or not.
Failure cases are surfaced to developers with pointers
to fix using SDK plugins
NFC API Level
Analyser Rules Engine
Analyser UI
Android app (.apk) parser
G maps to
HERE maps
G notifications to
NNA
G billing to
NIAP
13. Nokia X Install the Nokia X Services SDK
• Plugins/Extensions to Google’s ADT environment to
enable Nokia X app development from Eclipse IDE.
• Nokia differentiation services targeted – In App Payment
(NIAP), Notifications (NNA), HERE maps
Nokia X
Differentiator
Plugins
• AVD support for Nokia X device in Android SDK so that
testing/debugging can be done in the emulator
Nokia X
Device
Emulation
14. Nokia X Emulator
AnAPI level 16Android Virtual Device (AVD) with the Nokia Xservices enabled
BothARM &X86 images (really fast!)
Works with ADB!
15. Nokia X Adapting to Nokia Services / Porting
Baseline Platform
Android 4.1
-------------------------------
Nokia X Software Platform 1.0
based on AOSP V 4.1
Google Maps
Google
In-App Billing
Google
Cloud Messaging
16. Nokia X One APK approach
• The Google and Nokia services can coexist in the applications
• Make sure you fail gracefully!
• You can load and use the one that is present at runtime
• A one time investment in terms of developer effort
• Allows submission of same APK to Google Play and the Nokia Store
• Address more users with a single release
• Simultaneous release of same version (QA permitting) in all stores
17. Nokia X HERE Maps API
HERE MapsisNokia Maps offering available with Nokia Xservices. It offers similar functionality asthe
Google MapsAPI, with improved offline functionality.
HERE Maps requires:
• OpenGL ES 2.0 support
• HERE App ID & Token
• SD card to be present (emulator)
• Internet connection (emulator)
Note that map tiles will be cached, thus you need to
load them only once.
18. Nokia X HERE Maps API Key
To obtain the key
• Go to http://publish.nokia.com
• Create new content item
• Request new HERE Maps API key
19.
20. Nokia X HERE Maps. STEP1 Configure project
Edit the “AndroidManifest.xml” file.
• Add the following tag inside the application tag:
<uses-library android:name="com.here.android" />
• Make sure that the following permissions are included:
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
• Set android:minSdkVersion to 11 inside the uses-sdk tag.
• Also remember the Map
21. Nokia X HERE Maps. STEP2 Add map UI element
Add the map as MapFragment UI element into your layout, for example:
<!-- Map Fragment embedded with the map object -->
<fragment
class="com.here.android.mapping.MapFragment"
android:id="@+id/mapfragment"
android:layout_width="match_parent"
android:layout_height="match_parent" />
Before using the Map control, you need to initialize it
mapFragment = (MapFragment) getFragmentManager().findFragmentById(R.id.mapfragment);
mapFragment.init(new FragmentInitListener() {
@Override
public void onFragmentInitializationCompleted(InitError error) {
if (error == InitError.NONE) {
// retrieve a reference of the map from the map fragment
map = mapFragment.getMap();
//Start using the Map functions
} else {
System.out.println("ERROR: Cannot initialize Map Fragment");
}
}});
22. Nokia X In App Payment (NIAP)
Benefits
• Familiar, safe & localized purchasing experience
• Easy to port to, integrate and maintain (quote from portathon participant)
• Single click payment using Operator billing
• True 70/30 split (Gross not net!)
• Advanced transaction analytics integrated into your Nokia Store Dashboard
Available now!
23. Nokia X In App Payment broadest reach
■Full Country coverage
■Partial Country coverage
Live Operators
■No Country coverage 60 Markets / 160+ Operators!
24. Nokia X In App Payment API
Nokia In-App Payment offers simple, seamless integration of a payment event
into an app published on Nokia Store. The key features of it are:
• Requesting details of purchasable products.
• Initiating the purchase flow.
• Marking products as consumed from the app.
• Requesting details of already purchased products.
NIAP system is made from 3 parts:
• Nokia In-App Payment interface handles the communication between the app and the Nokia In-App
Payment Enabler.
• The Nokia In-App Payment Enabler is responsible for the payment processing and interaction with Nokia
Store. It also implements all UIs for payment transactions.
• Nokia Store provides the repository with product details and the mechanism for making the payment
through operator billing.
25. Nokia X In App Payment flow example
• App sends isBillingSupported request to INokiaIAPService to determine
whether the billing is supported on the device
• App checks Nokia Store for details on which products are available for
purchase from the app.
• If there are products which are not already owned by the user, then the App
can initiate In-App Payment for them
• Consume the product, if the product is meant to be consumable e.g. in
game currency
• Once the process has completed, it is the app's responsibility to unlock or
download, persistently store, and protect the purchased product
27. Nokia X Adding NIAP to your project
• Prepare the environment:
Add the INokiaIAPService.aidl into the project
Add the "com.nokia.payment.BILLING", permission into the manifest file
• Get the NIAP content Ids for the Nokia Store
• Code in the NIAP usage into the application
Create a ServiceConnection and bind it to INokiaIAPService
Use functions provided by the API
• Handle in-app purchase responses from the Nokia Store.
28. Nokia X Testing NIAP
For testing, you can use special test IDs which are not causing real payments,
but enable full interaction with the Nokia Store server.
Test Product id Title Description Outcome
1023608 nPay Level 1 NPayDemoLevel_1 success
1023609 nPay Level 2 NPayDemoLevel_2 success
1023610 nPay Level 3 NPayDemoLevel_3 success
1023611 - 20 nPay Level 4-13 NPayDemoLevel_4 .. _13 success
1023621 nPay Level 14 NPayDemoLevel_14 success
1023622 nPay Level 15 NPayDemoLevel_15 success
1023623 nPay Level 16 NPayDemoRestorable restore
1023624 nPay Level 17 NPayDemoRestorationDeviceLimitExceeded fail
1023625 nPay Level 18 NPayDemoUnknownProduct fail
1023626 nPay Level 19 NPayDemoFail fail
29. Nokia X Notifications API
• The Nokia Notifications API (NNA) in Nokia X provides a subset ofGoogle's
Cloud to Device Messaging (C2DM) and Google Cloud Message (GCM)
features
• Nearly GCM-identical API (except for the namespace)
• Client features:
• Registering and unregistering to receive notifications
• Receiving notifications with payload
• Before you can start using Nokia Push Notifications API, you need to register a
Sender ID from Nokia Push Notification developer console at :
https://console.push.nokia.com
30. Nokia X Notifications API (NNA). Testing the service
• Go to the Nokia Push Notification developer console
• Create new Sender ID and add use in in your
application.
• Select the Sender ID in the developer console to
open the sending view for the Sender ID
• Copy the Registration ID to the input box
• you got this with the application when you
registered it with the Sender ID .
• Add payload.
• Click ”Push” to send the notification message.
31. Nokia X NNA. STEP1 Modify the manifest file
<manifest …>
...
<permission android:name="com.nokia.pushnotifications.gcmdemo.permission.C2D_MESSAGE" android:protectionLevel="signature" />
<uses-permission android:name="com.nokia.pushnotifications.gcmdemo.permission.C2D_MESSAGE" />
<uses-permission android:name="com.nokia.pushnotifications.permission.RECEIVE" />
<!-- Main activity. -->
<application
…
<receiver
android:name="com.google.android.gcm.GCMBroadcastReceiver"
android:permission="com.nokia.pushnotifications.permission.SEND" >
<intent-filter>
<!-- Receives the actual messages. -->
<action android:name="com.nokia.pushnotifications.intent.RECEIVE" />
<!-- Receives the registration id. -->
<action android:name="com.nokia.pushnotifications.intent.REGISTRATION" />
<category android:name="com.nokia.pushnotifications.gcmdemo" />
</intent-filter>
</receiver>
<service android:name="com.nokia.pushnotifications.gcmdemo.GCMIntentService" />
</application>
</manifest>
32. Nokia X NNA. STEP2 Add the wrapper
• Include the source codes for the “com.google.android.gcm” package in your
project.
• Import General Filesystem, and browse from the samples folder
(push_gcm_testcomgoogleandroidgcm).
• Rename the package to “com.google.android.gcm”, if needed.
• The Classes provided in the Wrapper are:
• com.google.android.gcm.GCMBaseIntentService
• com.google.android.gcm.GCMBroadcastReceiver
• com.google.android.gcm.GCMConstants
• com.google.android.gcm.GCMRegistrar
33. Nokia X NNA. STEP3 Replace sender ID
• Replace the Sender ID with the Application ID associated with your NNA
service at https://console.push.nokia.com
• Naturally you do also need to make any necessary changes so that your
backend service can use the NNA
34. Nokia X NNA. API namespace and classes
• Nokia Notifications Server API 2.0 is a downstream (service-to-client) only
service, supporting HTTP connection method and providing a subset of GCM
features
• Only HTTP POST requests are supported. Address to send the requests to is
https://nnapi.ovi.com/nnapi/2.0/send
• Data field size is limited to a maximum length of 4096 bytes; other field sizes
are not limited
• Valid character set are all characters allowed in the XML 1.0 specification, in
UTF-8 format (see W3C recommendation for details)
35. Nokia X Polish and UI considerations
Adopting Android UI to Nokia X UI requires tests and one icon
37. Nokia X UI fonts
Different font (like Nokia Pure) might mean different text length
38. Nokia X UI Slightly different notifications area
39. Nokia X UI Menu
Android’s Menu (3.0 and older) is replaced by Nokia’s Options
menu.
40. Nokia X UI Icon
Plain glyph as launcher icon to fit platform design
41. Nokia X Remote Device Access (RDA)
• Browser based service for developers to test their apps and services
remotely in wide range of real, physical Nokia devices
• Natural extension for development and testing done with SDK and
emulator
• FREE of charge
• ~150 devices in the service, from low to high end
• Supported platforms:
• Nokia X Software Platform
• Windows Phone 8
• Asha Software Developer Platform / Series 40
42. Nokia X Summary
Nokia X is Nokia’s new platform with Android at it’s core
Nokia X porting is easy and fast
Nokia X opens new markets to your existing apps