SlideShare ist ein Scribd-Unternehmen logo
1 von 31
Downloaden Sie, um offline zu lesen
Google
Integration in
Android Apps
Ronan Schwarz and Friedger Müffke

Moosecon - 8 March 2013
Android and Google
● Android Open
  Source Project (AOSP)
  all, cheap, free

● Open Handset Alliance
  84 companies, Google governance

● Android Update Alliance
  promise to update

● Google User Experience
  CTS and relevance
Google for developers so far
● Some Content Provider API,
  e.g. calendar contract

● Intents to launch apps
  e.g. Navigation

● Java libs and Web APIs
  e.g gdata client lib to connect to Google
  Docs
Google Play Framework (gms)




● Requires Android 2.2 and Google Play

● APK that provides APIs to Google services

● Service APK will and must be installed
  automatically
Google Play Framework (gms)




         Requires real device
Helper methods

● Always check for availability first!

● Use isGooglePlayServicesAvailable() in
  onResume

● Give the user a chance to install the missing
  file with getErrorDialog()

● getOpenSourceSoftwareLicenseInfo()
Authentication




  http://www.flickr.com/photos/carlosluzz/
Authentication


● OAuth2 through GoogleAuthToken class
● get the Google Account(s) by
  ○   AccountManager
  ○ AccountPicker.newIntent()
● Email needed for retrieving auth token
● getToken() for UI components
● getTokenWithNotification() for Services
Authentication Error Handling
● User Recoverable Error
  ○ UserRecoverableAuthException
  ○ GooglePlayServicesAvailabilityException
  ○ UserRecoverableNotifiedException



● Non-Recoverable Error
  ○ GoogleAuthException
Google Plus
Google Plus




● Updated on 26 February 2013

● Policy
  ○ not to misuse personal data and +1 links
  ○ only use Google provided branding
  ○ provide means to revoke authorization
Google Plus: Setup




Services
OAuth2 client
Google Plus: Setup

Identify
each client
PlusClient: initialize
PlusClient.Builder()...build()

PlusClient.connected() and .disconnected()
within component lifecycle

All calls are asyncronous .onConnected() and .
onDisconnected()
PlusClient: Sign-In

● Visual user consent <com.google.android.gms.
   common.SignInButton
    android:id="@+id/sign_in_button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />


● startResolutionForResult() on click

● optional sign-out button
● required revoke method with deletion of data
PlusClient: Social Graph
● Profile of the user
  mPlusClient.loadPerson(this, "me"); // or "108591961893121462921"



● People in the circles of the user
  mPlusClient.loadPeople(this, Person.Collection.VISIBLE);



● Email address (PlusClient.getAccountName())
  requires additional permission
  GET_ACCOUNTS
PlusClient: App Activities

● Moments: "possibility to   AddActivity
  share what user has done   BuyActivity
  in the app"                CheckInActivity
                             CommentActivity
                             CreateActivity
● Prepare snippet            DiscoverActivity
  (or let prepare)
                             ListenActivity
                             ReserveActivity
● writeMoment(moment)
                             ReviewActivity
                             WantActivity
● removeMoement(moment)
● listMoments()
PlusShare: Share Content
● Simple share intent
   PlusShare.Builder.getIntent()

● Deep linking
   setContentDeepLinkId()
   setContentUrl()

● Interactive posts
   addCallToAction()

● Can be ActionBar or (standard) Button
● Breaks ShareActionProvider
PlusShare: Deep Linking
● Intent filter in Manifest
<activity android:name=".ParseDeepLinkActivity">
  <intent-filter>
     <action android:name="com.google.android.apps.plus.VIEW_DEEP_LINK" />
     <data android:scheme="vnd.google.deeplink" />
     <category android:name="android.intent.category.DEFAULT" />
     <category android:name="android.intent.category.BROWSABLE" />
  </intent-filter>
</activity>


● Extract deep link id
  PlusShare.getDeepLinkId(this.getIntent());
PlusOneButton: Recommendations
● Add a +1 Button to anything
 <com.google.android.gms.plus.PlusOneButton
   xmlns:plus=
    "http://schemas.android.com/apk/lib/com.google.android.gms.plus"
   plus:size="standard"/>

● One URL per button
  mPlusOneButton.initialize(mPlusClient, URL);

● No Meta-Data
Over-the-air install (7 March)
● Setup web client

● Sign-in Button + app package name

● Quality control by
  Google (?)
Google Maps: V2
Google Maps: V2


● Fragments!
● Fragments for older Devices!
● Views!
● Activities ?
● Breaks compatibility.
Google Maps: Camera


● 2-Axis Rotation
● Perspective View
● Zoom
● Move
● Target
Google Maps: Markers
● Default Markers
● Customize
  Appearance
● Show InfoWindow
● InfoWindow != View
● Add/Remove
  Markers manually
Google Maps: Custom Drawing
● Lines
● Circles
● Polygons
● Points are Lat,Long points
Polygon polygon = map.addPolygon(
    new PolygonOptions()
     .add(new LatLng(0, 0), new LatLng(0, 5), new LatLng(3,
5))
     .strokeColor(Color.RED)
     .fillColor(Color.BLUE));
Goodies




    http://www.flickr.com/photos/g-alain/
ImageManager
● Load Images from an external resource in
  the background
● Can specify a default resource for errors etc
● As easy as loadImage(ImageView,Uri,defaultResId)
● Only G+ URL's
● For everything else use the novoda
  ImageLoader on github.com/novoda
PanoramaClient




● Load from URL
● Load from ContentProvider
● Zoom and Rotate
Hints
● Debug
adb shell setprop log.tag.GooglePlusPlatform VERBOSE



● Lot's of example codes and documentation at
https://developer.android.com/google/play-services/index.html



● G+ Bootcamp for companies
http://googleplusplatform.blogspot.de/2013/03/global-google-sign-in-bootcamps.
html

                      Berlin, Germany - March 18th - March 22nd



More to come...
Questions




            Ronan Schwarz
            Friedger Müffke

            novoda.com
            @novoda
            #moosecon

Weitere ähnliche Inhalte

Was ist angesagt?

Was ist angesagt? (6)

Drupal content automation with migrate 2.6
Drupal content automation with migrate 2.6Drupal content automation with migrate 2.6
Drupal content automation with migrate 2.6
 
Ppt 2 android_basics
Ppt 2 android_basicsPpt 2 android_basics
Ppt 2 android_basics
 
Android Components & Manifest
Android Components & ManifestAndroid Components & Manifest
Android Components & Manifest
 
The Glass Class - Tutorial 3 - Android and GDK
The Glass Class - Tutorial 3 - Android and GDKThe Glass Class - Tutorial 3 - Android and GDK
The Glass Class - Tutorial 3 - Android and GDK
 
Android应用开发简介
Android应用开发简介Android应用开发简介
Android应用开发简介
 
DIY Uber
DIY UberDIY Uber
DIY Uber
 

Ähnlich wie Mooscon 2013 cebit - google integration in android apps (1)

Google Cloud Messaging
Google Cloud MessagingGoogle Cloud Messaging
Google Cloud Messaging
Ashiq Uz Zoha
 
Intents: Talking to your neighbors
Intents: Talking to your neighborsIntents: Talking to your neighbors
Intents: Talking to your neighbors
cketti
 
Google Plus SignIn : l'Authentification Google
Google Plus SignIn : l'Authentification GoogleGoogle Plus SignIn : l'Authentification Google
Google Plus SignIn : l'Authentification Google
Mathias Seguy
 

Ähnlich wie Mooscon 2013 cebit - google integration in android apps (1) (20)

Using Google (Cloud) APIs
Using Google (Cloud) APIsUsing Google (Cloud) APIs
Using Google (Cloud) APIs
 
OpenCms Days 2014 - User Generated Content in OpenCms 9.5
OpenCms Days 2014 - User Generated Content in OpenCms 9.5OpenCms Days 2014 - User Generated Content in OpenCms 9.5
OpenCms Days 2014 - User Generated Content in OpenCms 9.5
 
Image archive, analysis & report generation with Google Cloud
Image archive, analysis & report generation with Google CloudImage archive, analysis & report generation with Google Cloud
Image archive, analysis & report generation with Google Cloud
 
Google Analytics for Developers
Google Analytics for DevelopersGoogle Analytics for Developers
Google Analytics for Developers
 
Exploring Google (Cloud) APIs with Python & JavaScript
Exploring Google (Cloud) APIs with Python & JavaScriptExploring Google (Cloud) APIs with Python & JavaScript
Exploring Google (Cloud) APIs with Python & JavaScript
 
Nicolas Embleton, Advanced Angular JS
Nicolas Embleton, Advanced Angular JSNicolas Embleton, Advanced Angular JS
Nicolas Embleton, Advanced Angular JS
 
Power your apps with Gmail, Google Drive, Calendar, Sheets, Slides & more
Power your apps with Gmail, Google Drive, Calendar, Sheets, Slides & morePower your apps with Gmail, Google Drive, Calendar, Sheets, Slides & more
Power your apps with Gmail, Google Drive, Calendar, Sheets, Slides & more
 
Google Analytics for Developers
Google Analytics for DevelopersGoogle Analytics for Developers
Google Analytics for Developers
 
google drive and the google drive sdk
google drive and the google drive sdkgoogle drive and the google drive sdk
google drive and the google drive sdk
 
Android N Highligts
Android N HighligtsAndroid N Highligts
Android N Highligts
 
Advanced Dagger talk from 360andev
Advanced Dagger talk from 360andevAdvanced Dagger talk from 360andev
Advanced Dagger talk from 360andev
 
Google Cloud Messaging
Google Cloud MessagingGoogle Cloud Messaging
Google Cloud Messaging
 
Android Data Binding
Android Data BindingAndroid Data Binding
Android Data Binding
 
Intents: Talking to your neighbors
Intents: Talking to your neighborsIntents: Talking to your neighbors
Intents: Talking to your neighbors
 
Integrating Google Play Games
Integrating Google Play GamesIntegrating Google Play Games
Integrating Google Play Games
 
Delegating user tasks in applications
Delegating user tasks in applicationsDelegating user tasks in applications
Delegating user tasks in applications
 
Introduction to google glass
Introduction to google glassIntroduction to google glass
Introduction to google glass
 
Android Made Simple
Android Made SimpleAndroid Made Simple
Android Made Simple
 
DevFest Kuala Lumpur - Implementing Google Analytics - 2011-09-29.ppt
DevFest Kuala Lumpur - Implementing Google Analytics - 2011-09-29.pptDevFest Kuala Lumpur - Implementing Google Analytics - 2011-09-29.ppt
DevFest Kuala Lumpur - Implementing Google Analytics - 2011-09-29.ppt
 
Google Plus SignIn : l'Authentification Google
Google Plus SignIn : l'Authentification GoogleGoogle Plus SignIn : l'Authentification Google
Google Plus SignIn : l'Authentification Google
 

Mehr von Heinrich Seeger

Hasan hosgel moosecon_2013_customers_choice fullsize
Hasan hosgel moosecon_2013_customers_choice fullsizeHasan hosgel moosecon_2013_customers_choice fullsize
Hasan hosgel moosecon_2013_customers_choice fullsize
Heinrich Seeger
 
Moosecon rcs for developers
Moosecon   rcs for developersMoosecon   rcs for developers
Moosecon rcs for developers
Heinrich Seeger
 
Mobile apps on the big screen
Mobile apps on the big screenMobile apps on the big screen
Mobile apps on the big screen
Heinrich Seeger
 
Push notification generaltalk
Push notification generaltalkPush notification generaltalk
Push notification generaltalk
Heinrich Seeger
 
Backendasaservice apiomat
Backendasaservice apiomatBackendasaservice apiomat
Backendasaservice apiomat
Heinrich Seeger
 
Push notification technicaltalk
Push notification technicaltalkPush notification technicaltalk
Push notification technicaltalk
Heinrich Seeger
 
Crowdshare, Secure Resource Sharing in Mobile Crowds
Crowdshare, Secure Resource Sharing in Mobile CrowdsCrowdshare, Secure Resource Sharing in Mobile Crowds
Crowdshare, Secure Resource Sharing in Mobile Crowds
Heinrich Seeger
 
Moosecon native apps_blackberry_10-optimized
Moosecon native apps_blackberry_10-optimizedMoosecon native apps_blackberry_10-optimized
Moosecon native apps_blackberry_10-optimized
Heinrich Seeger
 
Dev mobile apps ent it final
Dev mobile apps ent   it finalDev mobile apps ent   it final
Dev mobile apps ent it final
Heinrich Seeger
 

Mehr von Heinrich Seeger (12)

Dennis hoppe droidcon_2014_slide_deck_screen
Dennis hoppe droidcon_2014_slide_deck_screenDennis hoppe droidcon_2014_slide_deck_screen
Dennis hoppe droidcon_2014_slide_deck_screen
 
Hasan hosgel moosecon_2013_customers_choice fullsize
Hasan hosgel moosecon_2013_customers_choice fullsizeHasan hosgel moosecon_2013_customers_choice fullsize
Hasan hosgel moosecon_2013_customers_choice fullsize
 
Moosecon rcs for developers
Moosecon   rcs for developersMoosecon   rcs for developers
Moosecon rcs for developers
 
Mobile apps on the big screen
Mobile apps on the big screenMobile apps on the big screen
Mobile apps on the big screen
 
Push notification generaltalk
Push notification generaltalkPush notification generaltalk
Push notification generaltalk
 
Backendasaservice apiomat
Backendasaservice apiomatBackendasaservice apiomat
Backendasaservice apiomat
 
Paypal
PaypalPaypal
Paypal
 
Push notification technicaltalk
Push notification technicaltalkPush notification technicaltalk
Push notification technicaltalk
 
Crowdshare, Secure Resource Sharing in Mobile Crowds
Crowdshare, Secure Resource Sharing in Mobile CrowdsCrowdshare, Secure Resource Sharing in Mobile Crowds
Crowdshare, Secure Resource Sharing in Mobile Crowds
 
Moosecon native apps_blackberry_10-optimized
Moosecon native apps_blackberry_10-optimizedMoosecon native apps_blackberry_10-optimized
Moosecon native apps_blackberry_10-optimized
 
Key2 share moosecon
Key2 share mooseconKey2 share moosecon
Key2 share moosecon
 
Dev mobile apps ent it final
Dev mobile apps ent   it finalDev mobile apps ent   it final
Dev mobile apps ent it final
 

Kürzlich hochgeladen

Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
panagenda
 
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptxHarnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
FIDO Alliance
 

Kürzlich hochgeladen (20)

FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...
 
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
 
Your enemies use GenAI too - staying ahead of fraud with Neo4j
Your enemies use GenAI too - staying ahead of fraud with Neo4jYour enemies use GenAI too - staying ahead of fraud with Neo4j
Your enemies use GenAI too - staying ahead of fraud with Neo4j
 
Oauth 2.0 Introduction and Flows with MuleSoft
Oauth 2.0 Introduction and Flows with MuleSoftOauth 2.0 Introduction and Flows with MuleSoft
Oauth 2.0 Introduction and Flows with MuleSoft
 
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdfLinux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
 
Google I/O Extended 2024 Warsaw
Google I/O Extended 2024 WarsawGoogle I/O Extended 2024 Warsaw
Google I/O Extended 2024 Warsaw
 
Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...
Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...
Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...
 
1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT
1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT
1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT
 
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdfSimplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
 
2024 May Patch Tuesday
2024 May Patch Tuesday2024 May Patch Tuesday
2024 May Patch Tuesday
 
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
 
The Metaverse: Are We There Yet?
The  Metaverse:    Are   We  There  Yet?The  Metaverse:    Are   We  There  Yet?
The Metaverse: Are We There Yet?
 
Working together SRE & Platform Engineering
Working together SRE & Platform EngineeringWorking together SRE & Platform Engineering
Working together SRE & Platform Engineering
 
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptxHarnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
 
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
 
Intro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджераIntro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджера
 
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdfHow Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
 
Microsoft CSP Briefing Pre-Engagement - Questionnaire
Microsoft CSP Briefing Pre-Engagement - QuestionnaireMicrosoft CSP Briefing Pre-Engagement - Questionnaire
Microsoft CSP Briefing Pre-Engagement - Questionnaire
 
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
 
Continuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
Continuing Bonds Through AI: A Hermeneutic Reflection on ThanabotsContinuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
Continuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
 

Mooscon 2013 cebit - google integration in android apps (1)

  • 1. Google Integration in Android Apps Ronan Schwarz and Friedger Müffke Moosecon - 8 March 2013
  • 2. Android and Google ● Android Open Source Project (AOSP) all, cheap, free ● Open Handset Alliance 84 companies, Google governance ● Android Update Alliance promise to update ● Google User Experience CTS and relevance
  • 3. Google for developers so far ● Some Content Provider API, e.g. calendar contract ● Intents to launch apps e.g. Navigation ● Java libs and Web APIs e.g gdata client lib to connect to Google Docs
  • 4. Google Play Framework (gms) ● Requires Android 2.2 and Google Play ● APK that provides APIs to Google services ● Service APK will and must be installed automatically
  • 5. Google Play Framework (gms) Requires real device
  • 6. Helper methods ● Always check for availability first! ● Use isGooglePlayServicesAvailable() in onResume ● Give the user a chance to install the missing file with getErrorDialog() ● getOpenSourceSoftwareLicenseInfo()
  • 8. Authentication ● OAuth2 through GoogleAuthToken class ● get the Google Account(s) by ○ AccountManager ○ AccountPicker.newIntent() ● Email needed for retrieving auth token ● getToken() for UI components ● getTokenWithNotification() for Services
  • 9. Authentication Error Handling ● User Recoverable Error ○ UserRecoverableAuthException ○ GooglePlayServicesAvailabilityException ○ UserRecoverableNotifiedException ● Non-Recoverable Error ○ GoogleAuthException
  • 11. Google Plus ● Updated on 26 February 2013 ● Policy ○ not to misuse personal data and +1 links ○ only use Google provided branding ○ provide means to revoke authorization
  • 14. PlusClient: initialize PlusClient.Builder()...build() PlusClient.connected() and .disconnected() within component lifecycle All calls are asyncronous .onConnected() and . onDisconnected()
  • 15. PlusClient: Sign-In ● Visual user consent <com.google.android.gms. common.SignInButton android:id="@+id/sign_in_button" android:layout_width="wrap_content" android:layout_height="wrap_content" /> ● startResolutionForResult() on click ● optional sign-out button ● required revoke method with deletion of data
  • 16. PlusClient: Social Graph ● Profile of the user mPlusClient.loadPerson(this, "me"); // or "108591961893121462921" ● People in the circles of the user mPlusClient.loadPeople(this, Person.Collection.VISIBLE); ● Email address (PlusClient.getAccountName()) requires additional permission GET_ACCOUNTS
  • 17. PlusClient: App Activities ● Moments: "possibility to AddActivity share what user has done BuyActivity in the app" CheckInActivity CommentActivity CreateActivity ● Prepare snippet DiscoverActivity (or let prepare) ListenActivity ReserveActivity ● writeMoment(moment) ReviewActivity WantActivity ● removeMoement(moment) ● listMoments()
  • 18. PlusShare: Share Content ● Simple share intent PlusShare.Builder.getIntent() ● Deep linking setContentDeepLinkId() setContentUrl() ● Interactive posts addCallToAction() ● Can be ActionBar or (standard) Button ● Breaks ShareActionProvider
  • 19. PlusShare: Deep Linking ● Intent filter in Manifest <activity android:name=".ParseDeepLinkActivity"> <intent-filter> <action android:name="com.google.android.apps.plus.VIEW_DEEP_LINK" /> <data android:scheme="vnd.google.deeplink" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> </intent-filter> </activity> ● Extract deep link id PlusShare.getDeepLinkId(this.getIntent());
  • 20. PlusOneButton: Recommendations ● Add a +1 Button to anything <com.google.android.gms.plus.PlusOneButton xmlns:plus= "http://schemas.android.com/apk/lib/com.google.android.gms.plus" plus:size="standard"/> ● One URL per button mPlusOneButton.initialize(mPlusClient, URL); ● No Meta-Data
  • 21. Over-the-air install (7 March) ● Setup web client ● Sign-in Button + app package name ● Quality control by Google (?)
  • 23. Google Maps: V2 ● Fragments! ● Fragments for older Devices! ● Views! ● Activities ? ● Breaks compatibility.
  • 24. Google Maps: Camera ● 2-Axis Rotation ● Perspective View ● Zoom ● Move ● Target
  • 25. Google Maps: Markers ● Default Markers ● Customize Appearance ● Show InfoWindow ● InfoWindow != View ● Add/Remove Markers manually
  • 26. Google Maps: Custom Drawing ● Lines ● Circles ● Polygons ● Points are Lat,Long points Polygon polygon = map.addPolygon( new PolygonOptions() .add(new LatLng(0, 0), new LatLng(0, 5), new LatLng(3, 5)) .strokeColor(Color.RED) .fillColor(Color.BLUE));
  • 27. Goodies http://www.flickr.com/photos/g-alain/
  • 28. ImageManager ● Load Images from an external resource in the background ● Can specify a default resource for errors etc ● As easy as loadImage(ImageView,Uri,defaultResId) ● Only G+ URL's ● For everything else use the novoda ImageLoader on github.com/novoda
  • 29. PanoramaClient ● Load from URL ● Load from ContentProvider ● Zoom and Rotate
  • 30. Hints ● Debug adb shell setprop log.tag.GooglePlusPlatform VERBOSE ● Lot's of example codes and documentation at https://developer.android.com/google/play-services/index.html ● G+ Bootcamp for companies http://googleplusplatform.blogspot.de/2013/03/global-google-sign-in-bootcamps. html Berlin, Germany - March 18th - March 22nd More to come...
  • 31. Questions Ronan Schwarz Friedger Müffke novoda.com @novoda #moosecon