SlideShare a Scribd company logo
1 of 25
1
Porting to Nokia X
Maciej Matyjas – Mobile Technology Lead - @matyjas
2
Porting to Nokia X
• About Me
• About Nokia X
• Secret Devices and NDAs
• Firmware Updates
• Go AOSP
• Here™ Maps for Google Maps v1
• Here™ Maps for Google Maps v2
• Analytics
• Publishing & Proguard
• Wrap up
3
About Me
• Does not work for Nokia©
• Pisces
• Shipped Meego apps
• Enjoys long walks on the beach
4
About Nokia X
• AOSP
• Plus
• Single back button
• Nokia Here Maps
• Nokia In-App Payments
• Nokia Notifications
• Fastlane UI
5
About Nokia X‟s Fastlane UI
6
About Nokia X
• No GMS
• Targets users between Asha and Lumia ranges
• Combines aspects of
• Asha
• Meego
• WinPhone
• Android
7
Secret Devices and NDAs
• Need to know basis
• Identifying allies
• Chinese walls
• Stealthy intelligence gathering
• Cloak and dagger with the Analytics team
• Is our Build Manager a double agent?
8
Firmware Updates
• Constantly updating firmware
• Reconnect to network, enable location, etc
• Always a little worried of brickwareing
• Never sure if it was something I did or the
firmware
• “Blame it on the firmware, cos the firmware don‟t
care”
9
Port that App
10
Go AOSP
• Make sure your „Project Build Target‟ is AOSP
• Ship?
11
Here Maps for Google Maps v1
• Manifest mods
• Add “com.google.android.maps.sdk.jar” from
Nokia
• Make sure its exported with your .apk file
• Ship?
12
Here Maps for Google Maps v2
• Not moving as quickly as Google‟s releases
• Same manifest mods
• Replace Google Play Services library project
with reference_v2_lib
• Add isMapsV2EquivalentAvailable() to our
GooglePlayServicesChecker.java
• Few cases where initialization order differs to
Google‟s Maps v2
13
Here Maps for Google Maps v2
public void add(GoogleMap map,
MarkerDataHolder holder) {
…
// mm:: visible region might be null if this is
// called before map is visible
if ((map.getProjection().getVisibleRegion()
!= null)
&& (map.getProjection().getVisibleRegion()
.latLngBounds.contains(position))) {
markers.add(
map.addMarker(holder.getMarkerOpts()));
}
}
14
Here Maps for Google Maps v2
// mm:: particularly insidious since on bg
if (map.getProjection().getVisibleRegion()
!= null) {
LatLngBounds bounds =
map.getProjection()
.getVisibleRegion()
.latLngBounds;
…
}
15
Here Maps for Google Maps v2
@Override
public View getInfoWindow(Marker marker) {
…
// mm:: this works around an issue
// rendering InfoWindows on Here maps
mContents.setLayoutParams(
new ViewGroup.LayoutParams(
LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT));
return mContents;
}
16
Here Maps for Google Maps v2
• That is it!
• Lets demo
17
Here Maps for Google Maps v2
18
Here Maps for Google Maps v2
19
Here Maps for Google Maps v2
20
Analytics
1. Debrei Tamás: open config.xml in hotels-logic-
library
2. Debrei Tamás: <confvalue key =
"APP_STORE_NAME" value = "GOOGLE"/>
3. Debrei Tamás: replace GOOGLE with
NONBRAND
21
Publishing & Proguard
• A little tricky due to maps wrappers
• Couldn‟t exactly Google for „Nokia secret
Android platform maps wrapper Proguard setup‟
• Or ask on Stack Overflow
• But Nokia support was terrific
22
Publishing & Proguard
# here maps
-keep class com.nokia.** { *; }
-keep interface com.nokia.** { *; }
-dontwarn com.nokia.**
-keep class com.here.** { *; }
-keep interface com.here.** { *; }
-dontwarn com.here.**
# u might also need to tell Proguard to leave the wrapper API intact w/:
-keep class com.google.android.gms.maps.** { *; }
-keep interface com.google.android.gms.maps.** { *; }
-dontwarn com.google.android.gms.maps.**
# here maps v1
-keep public class com.google.android.maps.Projection
-dontwarn com.google.android.maps.PixelConverter
-dontwarn com.google.android.maps.MapView
-keep class com.google.**
-dontwarn com.google.**
23
Wrap Up
• Easiest is if you have no Google dependencies
• Easy if you just use Google Maps v1
• Maps v2 makes it a bit harder
• Probably harder still the tighter you are tied to
Google
• Consider a generic maps solution
24
Questions?
Maciej Matyjas – Mobile Technology Lead - @matyjas
25

More Related Content

Viewers also liked

Designing for Immediacy
Designing for ImmediacyDesigning for Immediacy
Designing for ImmediacyAndy Braxton
 
Online Travel Landscape by Mozio
Online Travel Landscape by MozioOnline Travel Landscape by Mozio
Online Travel Landscape by Moziodlitwak1
 
How we optimise content on Hotels.com apps
How we optimise content on Hotels.com appsHow we optimise content on Hotels.com apps
How we optimise content on Hotels.com appsAndy Braxton
 
2016 Travel Predictions by Hotels.com
2016 Travel Predictions by Hotels.com2016 Travel Predictions by Hotels.com
2016 Travel Predictions by Hotels.comhotelsdotcom
 
Expedia at London Technology Week 2015
Expedia at London Technology Week 2015Expedia at London Technology Week 2015
Expedia at London Technology Week 2015Open Destinations
 
Expedia presentation
Expedia presentationExpedia presentation
Expedia presentationeqc3w
 
Value Chain Analysis of Hotels.com and Booking.com
Value Chain Analysis of Hotels.com and Booking.comValue Chain Analysis of Hotels.com and Booking.com
Value Chain Analysis of Hotels.com and Booking.comcagankoc
 
Expedia company presentation
Expedia company presentationExpedia company presentation
Expedia company presentationNicole Grieble
 

Viewers also liked (12)

Designing for Immediacy
Designing for ImmediacyDesigning for Immediacy
Designing for Immediacy
 
Online Travel Landscape by Mozio
Online Travel Landscape by MozioOnline Travel Landscape by Mozio
Online Travel Landscape by Mozio
 
How we optimise content on Hotels.com apps
How we optimise content on Hotels.com appsHow we optimise content on Hotels.com apps
How we optimise content on Hotels.com apps
 
2016 Travel Predictions by Hotels.com
2016 Travel Predictions by Hotels.com2016 Travel Predictions by Hotels.com
2016 Travel Predictions by Hotels.com
 
Expedia at London Technology Week 2015
Expedia at London Technology Week 2015Expedia at London Technology Week 2015
Expedia at London Technology Week 2015
 
Expedia presentation
Expedia presentationExpedia presentation
Expedia presentation
 
Value Chain Analysis of Hotels.com and Booking.com
Value Chain Analysis of Hotels.com and Booking.comValue Chain Analysis of Hotels.com and Booking.com
Value Chain Analysis of Hotels.com and Booking.com
 
Booking.com: Best in Class Case Study
Booking.com: Best in Class Case StudyBooking.com: Best in Class Case Study
Booking.com: Best in Class Case Study
 
Expedia company presentation
Expedia company presentationExpedia company presentation
Expedia company presentation
 
Expedia case study
Expedia case studyExpedia case study
Expedia case study
 
OTA Models
OTA ModelsOTA Models
OTA Models
 
The Power of Online Travel Agencies (OTA): Results of an Online Survey on Hot...
The Power of Online Travel Agencies (OTA): Results of an Online Survey on Hot...The Power of Online Travel Agencies (OTA): Results of an Online Survey on Hot...
The Power of Online Travel Agencies (OTA): Results of an Online Survey on Hot...
 

Similar to Porting Hotels.com to Nokia X

Performance and Scalability for Maps API Sites (Dev Fest '10 Mexico)
Performance and Scalability for Maps API Sites (Dev Fest '10 Mexico)Performance and Scalability for Maps API Sites (Dev Fest '10 Mexico)
Performance and Scalability for Maps API Sites (Dev Fest '10 Mexico)Ossama Alami
 
Building Mobile Cross-Platform Geospatial Apps, Nick Landry
Building Mobile Cross-Platform Geospatial Apps, Nick LandryBuilding Mobile Cross-Platform Geospatial Apps, Nick Landry
Building Mobile Cross-Platform Geospatial Apps, Nick LandryXamarin
 
Location and API Maps in Windows Phone 8
Location and API Maps in Windows Phone 8Location and API Maps in Windows Phone 8
Location and API Maps in Windows Phone 8Antonio Pelleriti
 
Drupal and the GeoSpatial Web
Drupal and the GeoSpatial WebDrupal and the GeoSpatial Web
Drupal and the GeoSpatial WebAndrew Turner
 
OpenStreetMap in 3D - current developments
OpenStreetMap in 3D - current developmentsOpenStreetMap in 3D - current developments
OpenStreetMap in 3D - current developmentsvirtualcitySYSTEMS GmbH
 
Act 00085 i towns, nouveau framework pour la visualisation 3d web
Act 00085 i towns, nouveau framework pour la visualisation 3d webAct 00085 i towns, nouveau framework pour la visualisation 3d web
Act 00085 i towns, nouveau framework pour la visualisation 3d webACSG Section Montréal
 
Act 00085 i towns, nouveau framework pour la visualisation 3d web
Act 00085 i towns, nouveau framework pour la visualisation 3d webAct 00085 i towns, nouveau framework pour la visualisation 3d web
Act 00085 i towns, nouveau framework pour la visualisation 3d webACSG - Section Montréal
 
Beyond Pretty Pictures: Topographic Labels in 3D Maps of High Terrain
Beyond Pretty Pictures: Topographic Labels in 3D Maps of High TerrainBeyond Pretty Pictures: Topographic Labels in 3D Maps of High Terrain
Beyond Pretty Pictures: Topographic Labels in 3D Maps of High TerrainOndřej Procházka
 
The User-participated Geospatial Web as Open Platform
The User-participated Geospatial Web as Open PlatformThe User-participated Geospatial Web as Open Platform
The User-participated Geospatial Web as Open PlatformChanny Yun
 
Spatial functions in MySQL 5.6, MariaDB 5.5, PostGIS 2.0 and others
Spatial functions in  MySQL 5.6, MariaDB 5.5, PostGIS 2.0 and othersSpatial functions in  MySQL 5.6, MariaDB 5.5, PostGIS 2.0 and others
Spatial functions in MySQL 5.6, MariaDB 5.5, PostGIS 2.0 and othersHenrik Ingo
 
Current State of mago3D, an Open Source Based Digital Twin Platform
Current State of mago3D, an Open Source Based Digital Twin PlatformCurrent State of mago3D, an Open Source Based Digital Twin Platform
Current State of mago3D, an Open Source Based Digital Twin PlatformSANGHEE SHIN
 
OpenStreetMap : Open Licensed GeoData
OpenStreetMap : Open Licensed GeoDataOpenStreetMap : Open Licensed GeoData
OpenStreetMap : Open Licensed GeoDatagssg
 
OpenStreetMap : Open Licensed GeoData
OpenStreetMap : Open Licensed GeoDataOpenStreetMap : Open Licensed GeoData
OpenStreetMap : Open Licensed GeoDataHarry Wood
 
A Vision-Based Mobile Platform for Seamless Indoor/Outdoor Positioning
A Vision-Based Mobile Platform for Seamless Indoor/Outdoor PositioningA Vision-Based Mobile Platform for Seamless Indoor/Outdoor Positioning
A Vision-Based Mobile Platform for Seamless Indoor/Outdoor PositioningGuillaume Gales
 
Introduction of super map gis 10i(2020) (1)
Introduction of super map gis 10i(2020) (1)Introduction of super map gis 10i(2020) (1)
Introduction of super map gis 10i(2020) (1)GeoMedeelel
 
Synthetic Data and Graphics Techniques in Robotics
Synthetic Data and Graphics Techniques in RoboticsSynthetic Data and Graphics Techniques in Robotics
Synthetic Data and Graphics Techniques in RoboticsPrabindh Sundareson
 
Welsh Conference 2023 - The Road Ahead
Welsh Conference 2023 - The Road AheadWelsh Conference 2023 - The Road Ahead
Welsh Conference 2023 - The Road AheadEsri UK
 
LSIVIEWER 2.0-A CLIENT-ORIENTED ONLINE VISUALIZATION TOOL FOR GEOSPATIAL VECT...
LSIVIEWER 2.0-A CLIENT-ORIENTED ONLINE VISUALIZATION TOOL FOR GEOSPATIAL VECT...LSIVIEWER 2.0-A CLIENT-ORIENTED ONLINE VISUALIZATION TOOL FOR GEOSPATIAL VECT...
LSIVIEWER 2.0-A CLIENT-ORIENTED ONLINE VISUALIZATION TOOL FOR GEOSPATIAL VECT...Manikanta Kondeti
 

Similar to Porting Hotels.com to Nokia X (20)

Performance and Scalability for Maps API Sites (Dev Fest '10 Mexico)
Performance and Scalability for Maps API Sites (Dev Fest '10 Mexico)Performance and Scalability for Maps API Sites (Dev Fest '10 Mexico)
Performance and Scalability for Maps API Sites (Dev Fest '10 Mexico)
 
Building Mobile Cross-Platform Geospatial Apps, Nick Landry
Building Mobile Cross-Platform Geospatial Apps, Nick LandryBuilding Mobile Cross-Platform Geospatial Apps, Nick Landry
Building Mobile Cross-Platform Geospatial Apps, Nick Landry
 
Location and API Maps in Windows Phone 8
Location and API Maps in Windows Phone 8Location and API Maps in Windows Phone 8
Location and API Maps in Windows Phone 8
 
Drupal and the GeoSpatial Web
Drupal and the GeoSpatial WebDrupal and the GeoSpatial Web
Drupal and the GeoSpatial Web
 
OpenStreetMap in 3D - current developments
OpenStreetMap in 3D - current developmentsOpenStreetMap in 3D - current developments
OpenStreetMap in 3D - current developments
 
Act 00085 i towns, nouveau framework pour la visualisation 3d web
Act 00085 i towns, nouveau framework pour la visualisation 3d webAct 00085 i towns, nouveau framework pour la visualisation 3d web
Act 00085 i towns, nouveau framework pour la visualisation 3d web
 
Act 00085 i towns, nouveau framework pour la visualisation 3d web
Act 00085 i towns, nouveau framework pour la visualisation 3d webAct 00085 i towns, nouveau framework pour la visualisation 3d web
Act 00085 i towns, nouveau framework pour la visualisation 3d web
 
Beyond Pretty Pictures: Topographic Labels in 3D Maps of High Terrain
Beyond Pretty Pictures: Topographic Labels in 3D Maps of High TerrainBeyond Pretty Pictures: Topographic Labels in 3D Maps of High Terrain
Beyond Pretty Pictures: Topographic Labels in 3D Maps of High Terrain
 
The User-participated Geospatial Web as Open Platform
The User-participated Geospatial Web as Open PlatformThe User-participated Geospatial Web as Open Platform
The User-participated Geospatial Web as Open Platform
 
Spatial functions in MySQL 5.6, MariaDB 5.5, PostGIS 2.0 and others
Spatial functions in  MySQL 5.6, MariaDB 5.5, PostGIS 2.0 and othersSpatial functions in  MySQL 5.6, MariaDB 5.5, PostGIS 2.0 and others
Spatial functions in MySQL 5.6, MariaDB 5.5, PostGIS 2.0 and others
 
Current State of mago3D, an Open Source Based Digital Twin Platform
Current State of mago3D, an Open Source Based Digital Twin PlatformCurrent State of mago3D, an Open Source Based Digital Twin Platform
Current State of mago3D, an Open Source Based Digital Twin Platform
 
OpenStreetMap : Open Licensed GeoData
OpenStreetMap : Open Licensed GeoDataOpenStreetMap : Open Licensed GeoData
OpenStreetMap : Open Licensed GeoData
 
OpenStreetMap : Open Licensed GeoData
OpenStreetMap : Open Licensed GeoDataOpenStreetMap : Open Licensed GeoData
OpenStreetMap : Open Licensed GeoData
 
A Vision-Based Mobile Platform for Seamless Indoor/Outdoor Positioning
A Vision-Based Mobile Platform for Seamless Indoor/Outdoor PositioningA Vision-Based Mobile Platform for Seamless Indoor/Outdoor Positioning
A Vision-Based Mobile Platform for Seamless Indoor/Outdoor Positioning
 
Introduction of super map gis 10i(2020) (1)
Introduction of super map gis 10i(2020) (1)Introduction of super map gis 10i(2020) (1)
Introduction of super map gis 10i(2020) (1)
 
Synthetic Data and Graphics Techniques in Robotics
Synthetic Data and Graphics Techniques in RoboticsSynthetic Data and Graphics Techniques in Robotics
Synthetic Data and Graphics Techniques in Robotics
 
Advanced Maps on Apps for Series 40
Advanced Maps on Apps for Series 40Advanced Maps on Apps for Series 40
Advanced Maps on Apps for Series 40
 
Welsh Conference 2023 - The Road Ahead
Welsh Conference 2023 - The Road AheadWelsh Conference 2023 - The Road Ahead
Welsh Conference 2023 - The Road Ahead
 
@Ionic native/google-maps
@Ionic native/google-maps@Ionic native/google-maps
@Ionic native/google-maps
 
LSIVIEWER 2.0-A CLIENT-ORIENTED ONLINE VISUALIZATION TOOL FOR GEOSPATIAL VECT...
LSIVIEWER 2.0-A CLIENT-ORIENTED ONLINE VISUALIZATION TOOL FOR GEOSPATIAL VECT...LSIVIEWER 2.0-A CLIENT-ORIENTED ONLINE VISUALIZATION TOOL FOR GEOSPATIAL VECT...
LSIVIEWER 2.0-A CLIENT-ORIENTED ONLINE VISUALIZATION TOOL FOR GEOSPATIAL VECT...
 

Recently uploaded

Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS:  6 Ways to Automate Your Data IntegrationBridging Between CAD & GIS:  6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integrationmarketing932765
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructureitnewsafrica
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Mark Goldstein
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...itnewsafrica
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024TopCSSGallery
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Nikki Chapple
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 

Recently uploaded (20)

Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS:  6 Ways to Automate Your Data IntegrationBridging Between CAD & GIS:  6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 

Porting Hotels.com to Nokia X

  • 1. 1 Porting to Nokia X Maciej Matyjas – Mobile Technology Lead - @matyjas
  • 2. 2 Porting to Nokia X • About Me • About Nokia X • Secret Devices and NDAs • Firmware Updates • Go AOSP • Here™ Maps for Google Maps v1 • Here™ Maps for Google Maps v2 • Analytics • Publishing & Proguard • Wrap up
  • 3. 3 About Me • Does not work for Nokia© • Pisces • Shipped Meego apps • Enjoys long walks on the beach
  • 4. 4 About Nokia X • AOSP • Plus • Single back button • Nokia Here Maps • Nokia In-App Payments • Nokia Notifications • Fastlane UI
  • 5. 5 About Nokia X‟s Fastlane UI
  • 6. 6 About Nokia X • No GMS • Targets users between Asha and Lumia ranges • Combines aspects of • Asha • Meego • WinPhone • Android
  • 7. 7 Secret Devices and NDAs • Need to know basis • Identifying allies • Chinese walls • Stealthy intelligence gathering • Cloak and dagger with the Analytics team • Is our Build Manager a double agent?
  • 8. 8 Firmware Updates • Constantly updating firmware • Reconnect to network, enable location, etc • Always a little worried of brickwareing • Never sure if it was something I did or the firmware • “Blame it on the firmware, cos the firmware don‟t care”
  • 10. 10 Go AOSP • Make sure your „Project Build Target‟ is AOSP • Ship?
  • 11. 11 Here Maps for Google Maps v1 • Manifest mods • Add “com.google.android.maps.sdk.jar” from Nokia • Make sure its exported with your .apk file • Ship?
  • 12. 12 Here Maps for Google Maps v2 • Not moving as quickly as Google‟s releases • Same manifest mods • Replace Google Play Services library project with reference_v2_lib • Add isMapsV2EquivalentAvailable() to our GooglePlayServicesChecker.java • Few cases where initialization order differs to Google‟s Maps v2
  • 13. 13 Here Maps for Google Maps v2 public void add(GoogleMap map, MarkerDataHolder holder) { … // mm:: visible region might be null if this is // called before map is visible if ((map.getProjection().getVisibleRegion() != null) && (map.getProjection().getVisibleRegion() .latLngBounds.contains(position))) { markers.add( map.addMarker(holder.getMarkerOpts())); } }
  • 14. 14 Here Maps for Google Maps v2 // mm:: particularly insidious since on bg if (map.getProjection().getVisibleRegion() != null) { LatLngBounds bounds = map.getProjection() .getVisibleRegion() .latLngBounds; … }
  • 15. 15 Here Maps for Google Maps v2 @Override public View getInfoWindow(Marker marker) { … // mm:: this works around an issue // rendering InfoWindows on Here maps mContents.setLayoutParams( new ViewGroup.LayoutParams( LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); return mContents; }
  • 16. 16 Here Maps for Google Maps v2 • That is it! • Lets demo
  • 17. 17 Here Maps for Google Maps v2
  • 18. 18 Here Maps for Google Maps v2
  • 19. 19 Here Maps for Google Maps v2
  • 20. 20 Analytics 1. Debrei Tamás: open config.xml in hotels-logic- library 2. Debrei Tamás: <confvalue key = "APP_STORE_NAME" value = "GOOGLE"/> 3. Debrei Tamás: replace GOOGLE with NONBRAND
  • 21. 21 Publishing & Proguard • A little tricky due to maps wrappers • Couldn‟t exactly Google for „Nokia secret Android platform maps wrapper Proguard setup‟ • Or ask on Stack Overflow • But Nokia support was terrific
  • 22. 22 Publishing & Proguard # here maps -keep class com.nokia.** { *; } -keep interface com.nokia.** { *; } -dontwarn com.nokia.** -keep class com.here.** { *; } -keep interface com.here.** { *; } -dontwarn com.here.** # u might also need to tell Proguard to leave the wrapper API intact w/: -keep class com.google.android.gms.maps.** { *; } -keep interface com.google.android.gms.maps.** { *; } -dontwarn com.google.android.gms.maps.** # here maps v1 -keep public class com.google.android.maps.Projection -dontwarn com.google.android.maps.PixelConverter -dontwarn com.google.android.maps.MapView -keep class com.google.** -dontwarn com.google.**
  • 23. 23 Wrap Up • Easiest is if you have no Google dependencies • Easy if you just use Google Maps v1 • Maps v2 makes it a bit harder • Probably harder still the tighter you are tied to Google • Consider a generic maps solution
  • 24. 24 Questions? Maciej Matyjas – Mobile Technology Lead - @matyjas
  • 25. 25