SlideShare uma empresa Scribd logo
1 de 21
The Ultimate Android Lock Screen Alberto Fonseca Founder -
Agenda What is GOTO? Feature Overview Demo Lessons Learned Q&A Copyright © 2010 InnoWeb Tech, LLC
What is GOTO? Copyright © 2010 InnoWeb Tech, LLC Android 1.5
What is GOTO? Copyright © 2010 InnoWeb Tech, LLC Android 2.0
What is GOTO? Copyright © 2010 InnoWeb Tech, LLC GOTO UI
Features Notification Previews App shortcuts Weather Copyright © 2010 InnoWeb Tech, LLC
Features Notification Previews Copyright © 2010 InnoWeb Tech, LLC
Features Notification Previews App shortcuts Copyright © 2010 InnoWeb Tech, LLC
Features Notification Previews App shortcuts Weather Copyright © 2010 InnoWeb Tech, LLC
DEMO Copyright © 2010 InnoWeb Tech, LLC
Lessons Learned Unsupported API’s – Don’t try this at home Supporting Android 1.5 – 2.2 Testing on real hardware Copyright © 2010 InnoWeb Tech, LLC
Lessons Learned Unsupported API’s – Don’t try this at home Maintenance and internal API changes Device implementations not consistent Very time consuming Copyright © 2010 InnoWeb Tech, LLC
Lessons Learned Unsupported API’s – Don’t try this at home Supporting Android 1.5 – 2.2 Copyright © 2010 InnoWeb Tech, LLC http://developer.android.com/resources/dashboard/platform-versions.html Data collected during two weeks ending on August 2, 2010
Lessons Learned Unsupported API’s – Don’t try this at home Supporting Android 1.5 – 2.2 Android Manifest MinSDK version 3 TargetSDK version 8 Reflection Initialization on demand holder pattern Copyright © 2010 InnoWeb Tech, LLC
GoogleAccountsWrapper public abstract classGoogleAccountsWrapper { public staticGoogleAccountsWrappergetInstance() { if (Integer.parseInt(Build.VERSION.SDK) < 5) { returnPreEclair.Holder.instance; } else { returnEclairPlus.Holder.instance; } } public abstract voidinitGMailAccount(Activity activity); //… Copyright © 2010 InnoWeb Tech, LLC
private static class PreEclair extends GoogleAccountsWrapper { private static class Holder { 	private static finalPreEclair instance = new PreEclair(); } /** * Retrieve GMail account info and save it in NotificationInfo * Note: We are relying on an older version of* GoogleLoginServiceHelper linked here via the framework.jar * library and calling it's getAccount() method. */ @Override public voidinitGMailAccount(Activity activity)  { com.google.android.googlelogin.GoogleLoginServiceHelper.getAccount(activity, Goto.REQUEST_GET_ACCOUNT, true); } } Copyright © 2010 InnoWeb Tech, LLC
private static classEclairPlus extends GoogleAccountsWrapper { private static class Holder { 	private static finalEclairPlusinstance = newEclairPlus(); } @Override public voidinitGMailAccount(Activity context)  { AccountManageraccountManager = AccountManager.get(context); Account[] accounts = accountManager.getAccountsByType("com.google"); if (accounts.length > 0) { NotificationInfo.googleAccount= accounts[0].name; } } } } Copyright © 2010 InnoWeb Tech, LLC
// Initialize GMail account info GoogleAccountsWrappergoogleAccounts = GoogleAccountsWrapper.getInstance(); googleAccounts.initGMailAccount(this); Copyright © 2010 InnoWeb Tech, LLC
Lessons Learned Unsupported API’s – Don’t try this at home Supporting Android 1.5 – 2.2 Testing on real hardware Networking with other Android users/devs DeviceAnywhereservice http://www.deviceanywhere.com Copyright © 2010 InnoWeb Tech, LLC
Questions? Copyright © 2010 InnoWeb Tech, LLC
Contact Alberto FonsecaAvailable for consulting/project managementE-mail: afonseca@innowebtech.comBlog: www.innowebtech.com/blogTwitter: @innowebtech GOTOAvailable in the Android MarketplaceWeb: www.gotoandroidapp.com Copyright © 2010 InnoWeb Tech, LLC

Mais conteúdo relacionado

Semelhante a GOTO - The Ultimate Android Lock Screen

YouTube APIs presentation at Facultad de Ciencias, Universidad Nacional Autón...
YouTube APIs presentation at Facultad de Ciencias, Universidad Nacional Autón...YouTube APIs presentation at Facultad de Ciencias, Universidad Nacional Autón...
YouTube APIs presentation at Facultad de Ciencias, Universidad Nacional Autón...Jarek Wilkiewicz
 
Встреча Google Post IO ( Владимир Иванов, Катерина Заворотченко и Сергей Комлач)
Встреча Google Post IO ( Владимир Иванов, Катерина Заворотченко и Сергей Комлач)Встреча Google Post IO ( Владимир Иванов, Катерина Заворотченко и Сергей Комлач)
Встреча Google Post IO ( Владимир Иванов, Катерина Заворотченко и Сергей Комлач)Alina Vilk
 
JMP103 : Extending Your App Arsenal With OpenSocial
JMP103 : Extending Your App Arsenal With OpenSocialJMP103 : Extending Your App Arsenal With OpenSocial
JMP103 : Extending Your App Arsenal With OpenSocialRyan Baxter
 
IBM Connect 2014 - JMP103: Extending Your Application Arsenal With OpenSocial
IBM Connect 2014 - JMP103: Extending Your Application Arsenal With OpenSocialIBM Connect 2014 - JMP103: Extending Your Application Arsenal With OpenSocial
IBM Connect 2014 - JMP103: Extending Your Application Arsenal With OpenSocialIBM Connections Developers
 
Testing android apps with espresso
Testing android apps with espressoTesting android apps with espresso
Testing android apps with espressoÉdipo Souza
 
Building Video Applications with YouTube APIs
Building Video Applications with YouTube APIsBuilding Video Applications with YouTube APIs
Building Video Applications with YouTube APIsJarek Wilkiewicz
 
What's New with Perfecto? - May 2017
What's New with Perfecto? - May 2017What's New with Perfecto? - May 2017
What's New with Perfecto? - May 2017Lizzy Guido (she/her)
 
Lecture 12 - Maps, AR_VR_aaaaHardware.pptx
Lecture 12 - Maps, AR_VR_aaaaHardware.pptxLecture 12 - Maps, AR_VR_aaaaHardware.pptx
Lecture 12 - Maps, AR_VR_aaaaHardware.pptxNgLQun
 
Android - Open Source Bridge 2011
Android - Open Source Bridge 2011Android - Open Source Bridge 2011
Android - Open Source Bridge 2011sullis
 
The Google App Engine Oil Framework
The Google App Engine Oil FrameworkThe Google App Engine Oil Framework
The Google App Engine Oil FrameworkEric ShangKuan
 
How to develop nice portlet with Juzu framework
How to develop nice portlet with Juzu frameworkHow to develop nice portlet with Juzu framework
How to develop nice portlet with Juzu frameworkNguyễn Tuyến
 
Joget Workflow v6 Training Slides - 18 - Integrating with External System
Joget Workflow v6 Training Slides - 18 - Integrating with External SystemJoget Workflow v6 Training Slides - 18 - Integrating with External System
Joget Workflow v6 Training Slides - 18 - Integrating with External SystemJoget Workflow
 
How to add your own OpenSocial Gadgets to IBM Connections
How to add your own OpenSocial Gadgets to IBM ConnectionsHow to add your own OpenSocial Gadgets to IBM Connections
How to add your own OpenSocial Gadgets to IBM ConnectionsIBM Connections Developers
 
Google analytics
Google analyticsGoogle analytics
Google analyticsSean Tsai
 
Android 5.0 internals and inferiority complex droidcon.de 2015
Android 5.0 internals and inferiority complex droidcon.de 2015Android 5.0 internals and inferiority complex droidcon.de 2015
Android 5.0 internals and inferiority complex droidcon.de 2015Aleksander Piotrowski
 
Simple stock market analysis
Simple stock market analysisSimple stock market analysis
Simple stock market analysislynneblue
 
A gently introduction to AngularJS
A gently introduction to AngularJSA gently introduction to AngularJS
A gently introduction to AngularJSGregor Woiwode
 

Semelhante a GOTO - The Ultimate Android Lock Screen (20)

YouTube APIs presentation at Facultad de Ciencias, Universidad Nacional Autón...
YouTube APIs presentation at Facultad de Ciencias, Universidad Nacional Autón...YouTube APIs presentation at Facultad de Ciencias, Universidad Nacional Autón...
YouTube APIs presentation at Facultad de Ciencias, Universidad Nacional Autón...
 
Встреча Google Post IO ( Владимир Иванов, Катерина Заворотченко и Сергей Комлач)
Встреча Google Post IO ( Владимир Иванов, Катерина Заворотченко и Сергей Комлач)Встреча Google Post IO ( Владимир Иванов, Катерина Заворотченко и Сергей Комлач)
Встреча Google Post IO ( Владимир Иванов, Катерина Заворотченко и Сергей Комлач)
 
JMP103 : Extending Your App Arsenal With OpenSocial
JMP103 : Extending Your App Arsenal With OpenSocialJMP103 : Extending Your App Arsenal With OpenSocial
JMP103 : Extending Your App Arsenal With OpenSocial
 
IBM Connect 2014 - JMP103: Extending Your Application Arsenal With OpenSocial
IBM Connect 2014 - JMP103: Extending Your Application Arsenal With OpenSocialIBM Connect 2014 - JMP103: Extending Your Application Arsenal With OpenSocial
IBM Connect 2014 - JMP103: Extending Your Application Arsenal With OpenSocial
 
Testing android apps with espresso
Testing android apps with espressoTesting android apps with espresso
Testing android apps with espresso
 
Building Video Applications with YouTube APIs
Building Video Applications with YouTube APIsBuilding Video Applications with YouTube APIs
Building Video Applications with YouTube APIs
 
Sst hackathon express
Sst hackathon expressSst hackathon express
Sst hackathon express
 
What's New with Perfecto? - May 2017
What's New with Perfecto? - May 2017What's New with Perfecto? - May 2017
What's New with Perfecto? - May 2017
 
Lecture 12 - Maps, AR_VR_aaaaHardware.pptx
Lecture 12 - Maps, AR_VR_aaaaHardware.pptxLecture 12 - Maps, AR_VR_aaaaHardware.pptx
Lecture 12 - Maps, AR_VR_aaaaHardware.pptx
 
Android - Open Source Bridge 2011
Android - Open Source Bridge 2011Android - Open Source Bridge 2011
Android - Open Source Bridge 2011
 
The Google App Engine Oil Framework
The Google App Engine Oil FrameworkThe Google App Engine Oil Framework
The Google App Engine Oil Framework
 
How to develop nice portlet with Juzu framework
How to develop nice portlet with Juzu frameworkHow to develop nice portlet with Juzu framework
How to develop nice portlet with Juzu framework
 
Joget Workflow v6 Training Slides - 18 - Integrating with External System
Joget Workflow v6 Training Slides - 18 - Integrating with External SystemJoget Workflow v6 Training Slides - 18 - Integrating with External System
Joget Workflow v6 Training Slides - 18 - Integrating with External System
 
How to add your own OpenSocial Gadgets to IBM Connections
How to add your own OpenSocial Gadgets to IBM ConnectionsHow to add your own OpenSocial Gadgets to IBM Connections
How to add your own OpenSocial Gadgets to IBM Connections
 
Multi-OS Engine Technology Overview
Multi-OS Engine Technology OverviewMulti-OS Engine Technology Overview
Multi-OS Engine Technology Overview
 
Google analytics
Google analyticsGoogle analytics
Google analytics
 
Android 5.0 internals and inferiority complex droidcon.de 2015
Android 5.0 internals and inferiority complex droidcon.de 2015Android 5.0 internals and inferiority complex droidcon.de 2015
Android 5.0 internals and inferiority complex droidcon.de 2015
 
Study Jam Session 2
Study Jam Session 2Study Jam Session 2
Study Jam Session 2
 
Simple stock market analysis
Simple stock market analysisSimple stock market analysis
Simple stock market analysis
 
A gently introduction to AngularJS
A gently introduction to AngularJSA gently introduction to AngularJS
A gently introduction to AngularJS
 

Último

Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Zilliz
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...apidays
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024The Digital Insurer
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfOverkill Security
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWERMadyBayot
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
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
 

Último (20)

Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
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)
 

GOTO - The Ultimate Android Lock Screen

  • 1. The Ultimate Android Lock Screen Alberto Fonseca Founder -
  • 2. Agenda What is GOTO? Feature Overview Demo Lessons Learned Q&A Copyright © 2010 InnoWeb Tech, LLC
  • 3. What is GOTO? Copyright © 2010 InnoWeb Tech, LLC Android 1.5
  • 4. What is GOTO? Copyright © 2010 InnoWeb Tech, LLC Android 2.0
  • 5. What is GOTO? Copyright © 2010 InnoWeb Tech, LLC GOTO UI
  • 6. Features Notification Previews App shortcuts Weather Copyright © 2010 InnoWeb Tech, LLC
  • 7. Features Notification Previews Copyright © 2010 InnoWeb Tech, LLC
  • 8. Features Notification Previews App shortcuts Copyright © 2010 InnoWeb Tech, LLC
  • 9. Features Notification Previews App shortcuts Weather Copyright © 2010 InnoWeb Tech, LLC
  • 10. DEMO Copyright © 2010 InnoWeb Tech, LLC
  • 11. Lessons Learned Unsupported API’s – Don’t try this at home Supporting Android 1.5 – 2.2 Testing on real hardware Copyright © 2010 InnoWeb Tech, LLC
  • 12. Lessons Learned Unsupported API’s – Don’t try this at home Maintenance and internal API changes Device implementations not consistent Very time consuming Copyright © 2010 InnoWeb Tech, LLC
  • 13. Lessons Learned Unsupported API’s – Don’t try this at home Supporting Android 1.5 – 2.2 Copyright © 2010 InnoWeb Tech, LLC http://developer.android.com/resources/dashboard/platform-versions.html Data collected during two weeks ending on August 2, 2010
  • 14. Lessons Learned Unsupported API’s – Don’t try this at home Supporting Android 1.5 – 2.2 Android Manifest MinSDK version 3 TargetSDK version 8 Reflection Initialization on demand holder pattern Copyright © 2010 InnoWeb Tech, LLC
  • 15. GoogleAccountsWrapper public abstract classGoogleAccountsWrapper { public staticGoogleAccountsWrappergetInstance() { if (Integer.parseInt(Build.VERSION.SDK) < 5) { returnPreEclair.Holder.instance; } else { returnEclairPlus.Holder.instance; } } public abstract voidinitGMailAccount(Activity activity); //… Copyright © 2010 InnoWeb Tech, LLC
  • 16. private static class PreEclair extends GoogleAccountsWrapper { private static class Holder { private static finalPreEclair instance = new PreEclair(); } /** * Retrieve GMail account info and save it in NotificationInfo * Note: We are relying on an older version of* GoogleLoginServiceHelper linked here via the framework.jar * library and calling it's getAccount() method. */ @Override public voidinitGMailAccount(Activity activity) { com.google.android.googlelogin.GoogleLoginServiceHelper.getAccount(activity, Goto.REQUEST_GET_ACCOUNT, true); } } Copyright © 2010 InnoWeb Tech, LLC
  • 17. private static classEclairPlus extends GoogleAccountsWrapper { private static class Holder { private static finalEclairPlusinstance = newEclairPlus(); } @Override public voidinitGMailAccount(Activity context) { AccountManageraccountManager = AccountManager.get(context); Account[] accounts = accountManager.getAccountsByType("com.google"); if (accounts.length > 0) { NotificationInfo.googleAccount= accounts[0].name; } } } } Copyright © 2010 InnoWeb Tech, LLC
  • 18. // Initialize GMail account info GoogleAccountsWrappergoogleAccounts = GoogleAccountsWrapper.getInstance(); googleAccounts.initGMailAccount(this); Copyright © 2010 InnoWeb Tech, LLC
  • 19. Lessons Learned Unsupported API’s – Don’t try this at home Supporting Android 1.5 – 2.2 Testing on real hardware Networking with other Android users/devs DeviceAnywhereservice http://www.deviceanywhere.com Copyright © 2010 InnoWeb Tech, LLC
  • 20. Questions? Copyright © 2010 InnoWeb Tech, LLC
  • 21. Contact Alberto FonsecaAvailable for consulting/project managementE-mail: afonseca@innowebtech.comBlog: www.innowebtech.com/blogTwitter: @innowebtech GOTOAvailable in the Android MarketplaceWeb: www.gotoandroidapp.com Copyright © 2010 InnoWeb Tech, LLC