SlideShare a Scribd company logo
Honeycomb Highlights


Romain Guy          @romainguy
Chet Haase          @chethaase
May 10, 2011


Questions http://goo.gl/mod/8NZp
Feedback http://goo.gl/hD5M9
Hashtags #io2011, #Android
Honeycomb Highlights
      Honeycomb and Get It

Romain Guy          @romainguy
Chet Haase          @chethaase
May 10, 2011


Questions http://goo.gl/mod/8NZp
Feedback http://goo.gl/hD5M9
Hashtags #io2011, #Android
Honeycomb
• The tablet release
• User improvements
• Developer improvements
The Tablet Release
• Tablet != Phone
• Screen size
• Input
• More memory, faster CPU, multi-core
  – But more pixels...
• GPU!
Honeycomb
• The tablet release
• User improvements
• Developer improvements
UI Improvements
• Home screen, new ‘Holo’ theme
• Keyboard
• Text selection
• USB device connectivity
• Action Bar, System Bar
• Recent Apps
New and Improved Applications
• New
 – Books
 – Movie Studio
• Improved
 – Market
 – Browser
 – Contacts
 – Music
 – Gmail
 – ...
New Widgets
• Richer
• More interactive
• Books, Bookmarks, Gmail, Calendar, ...
Demo
Honeycomb
• The tablet release
• User improvements
• Developer improvements
Fragments
• Like mini-activities
• For flexible screen format situations
  – landscape vs. portrait
  – large vs. small
Fragments
Fragments
• Single activity, multiple fragments
Fragments
• Separate activities
Fragments: For More Info
• Read Dianne Hackborn’s The Android 3.0 Fragments API
 – android-developers.blogspot.com
• Get “Android Compatibility package” in the SDK Updater
 – Fragments now available in 1.6+ !!!!
System Bar
System Bar
System Bar
System Bar
System Bar: Always On
System Bar: Always On
Action Bar



Home/Up   Navigation          Actions




                       Text
                                        Actions
Action Bar



Home/Up   Navigation          Actions      Overflow




                       Text
                                        Actions
Action Bar



Home/Up   Navigation          Actions




                       Text
                                        Actions
Action Bar



             Contextual ActionBar




                    Text
                                    Actions
Action Bar



     @Override
     public boolean onCreateOptionsMenu(Menu menu) {
         MenuInflater inflater = getMenuInflater();
         inflater.inflate(R.menu.actions, menu);
         return true;
     }
Action Bar

 <menu>

   <item android:id="@+id/action_edit"
         android:icon="@android:drawable/ic_menu_edit"
         android:showAsAction="always"
         android:title="@string/action_bar_edit" />

   <item android:id="@+id/action_share"
         android:icon="@android:drawable/ic_menu_share"
         android:showAsAction="ifRoom"
         android:title="@string/action_bar_share" />

 </menu>
Action Bar

 <menu>

   <item android:id="@+id/action_edit"
         android:icon="@android:drawable/ic_menu_edit"
         android:showAsAction="always"
         android:title="@string/action_bar_edit" />

   <item android:id="@+id/action_share"
         android:icon="@android:drawable/ic_menu_share"
         android:showAsAction="ifRoom"
         android:title="@string/action_bar_share" />

 </menu>
Renderscript
• Native code for fast graphics, computation
• Platform-independent
• Syntax based on C99
• Uses GPU, CPU, multi-core
• Used in Books, YouTube, Live Wallpapers
Renderscript: HelloWorldRS.java

  public class HelloWorldRS {

      private ScriptC_helloworld mScript;

      public void init(RenderScriptGL rs, Resources res) {
          mScript = new ScriptC_helloworld(rs, res,
              R.raw.helloworld);
          rs.bindRootScript(mScript);
      }

      public void onActionDown(int x, int y) {
          mScript.set_gTouchX(x);
          mScript.set_gTouchY(y);
      }

  }
Renderscript: helloworld.rs

     int gTouchX;
     int gTouchY;

     void init() {
         gTouchX = 50.0f;
         gTouchY = 50.0f;
     }

     int root(int launchID) {

         rsgClearColor(0.0f, 0.0f, 0.0f, 0.0f);
         rsgFontColor(1.0f, 1.0f, 1.0f, 1.0f);
         rsgDrawText("Hello World!", gTouchX, gTouchY);

         return 20;
     }
Renderscript
• Read Jason Sams’s Renderscript articles
 – android-developers.blogspot.com
• Play with the SDK Renderscript samples
Graphics Acceleration
• OpenGL acceleration for most graphics operations
  – Canvas.drawLine(), Canvas.drawBitmap(), ...
• Used in Launcher, Gmail, Contacts, Calendar, YouTube, Browser,
  Maps, Settings, ...
Acceleration: The Complex API Details
Acceleration: The Complex API Details



 <application android:hardwareAccelerated=”true”>
Acceleration: The Complex API Details



 <application android:hardwareAccelerated=”true”>


  • Opt-in via AndroidManifest.xml
  • Selectively disable at Activity, Window, or View level
More Details
• Come to Accelerated Android Rendering
 – Tomorrow 10:45
• Read Android 3.0 Hardware Acceleration
 – android-developers.blogspot.com
Animation Framework
• New system built on “property animation”
 – Any object, any property, any type
• New properties on View
 – alpha, translationX/Y, scaleX/Y, rotation, ...
Animation Framework
• New system built on “property animation”
 – Any object, any property, any type
• New properties on View
 – alpha, translationX/Y, scaleX/Y, rotation, ...



ObjectAnimator.ofFloat(target, “alpha”, 0f).start();
Demo
PhotoAlbum Animations




 if (mPanelVisible) {
     mPanelAnimator = ObjectAnimator.ofFloat(mPanel, "x", 0.0f);
 } else {
     mPanelAnimator = ObjectAnimator.ofFloat(mPanel, "x", -mPanel.getWidth());
 }
 mPanelAnimator.start();
PhotoAlbum Animations



 mPanel.setLayerType(View.LAYER_TYPE_HARDWARE, null);

 if (mPanelVisible) {
     mPanelAnimator = ObjectAnimator.ofFloat(mPanel, "x", 0.0f);
 } else {
     mPanelAnimator = ObjectAnimator.ofFloat(mPanel, "x", -mPanel.getWidth());
 }
 mPanelAnimator.start();

 mPanelAnimator.addListener(new AnimatorListenerAdapter() {
     @Override
     public void onAnimationEnd(Animator animation) {
         mPanel.setLayerType(View.LAYER_TYPE_NONE, null);
     }
 });
PhotoAlbum Animations
 if (mPanelAnimator != null && mPanelAnimator.isRunning()) {
     mPanelAnimator.reverse();
     return;
 }
 mPanel.setLayerType(View.LAYER_TYPE_HARDWARE, null);

 if (mPanelVisible) {
     mPanelAnimator = ObjectAnimator.ofFloat(mPanel, "x", 0.0f);
 } else {
     mPanelAnimator = ObjectAnimator.ofFloat(mPanel, "x", -mPanel.getWidth());
 }
 mPanelAnimator.start();

 mPanelAnimator.addListener(new AnimatorListenerAdapter() {
     @Override
     public void onAnimationEnd(Animator animation) {
         mPanel.setLayerType(View.LAYER_TYPE_NONE, null);
     }
 });
For More Information
• Read Animation in Honeycomb
 – android-developers.blogspot.com
• Check out the animation demos in the SDK
And Much, Much More...
• Clipboard
• Drag and Drop
• HTTP Live Streaming
• Pluggable DRM framework
• Encrypted storage
• New/improved components
  – DatePicker, NumberPicker, StackView, CalendarView, ...
• Tools
  – UI Builder, code completion, ...
  – Android Development Tools, Wednesday@3
More in Android 3
More in Android 3.1

                   Ne
USB: Beyond keyboards
                      w     !
External camera support
   Resizable widgets
        RTP API
Performance optimizations
  ViewPropertyAnimator
The Future
• Honeycomb was optimized for tablets
  – But we’re working on bringing the Honeycomb UI and
    functionality to smaller screen devices
• More, better, fancier, faster, lovelier
For More Information
• At Google IO
 – Android USB Accessory Mode: Tuesday 1:15
 – Fireside Chat: Tuesday 2:30
 – Android UIs for Phones and Tablets: Wednesday 12:30
 – Android Development Tools: Wednesday 3:00
 – Memory Management for Android Apps: Wednesday 4:15


• After Google IO
 – Android Developers Blog: android-developers.blogspot.com
 – Romain’s blog: curious-creature.org
 – Chet’s blog: graphics-geek.blogspot.com
Questions http://goo.gl/mod/8NZp
Q&A     Feedback http://goo.gl/hD5M9
          Hashtags #io2011, #Android
Google I/O 2011, Android Honeycomb Highlights

More Related Content

Viewers also liked

Google I/O 2011, Android Accelerated Rendering
Google I/O 2011, Android Accelerated RenderingGoogle I/O 2011, Android Accelerated Rendering
Google I/O 2011, Android Accelerated RenderingRomain Guy
 
Introduction to fragments in android
Introduction to fragments in androidIntroduction to fragments in android
Introduction to fragments in android
Prawesh Shrestha
 
Android - Working with Fragments
Android - Working with FragmentsAndroid - Working with Fragments
Android - Working with Fragments
Can Elmas
 
BRAND COMMUNITY & CUSTOMMER LOYALTY - Phần 1
BRAND COMMUNITY & CUSTOMMER LOYALTY - Phần 1BRAND COMMUNITY & CUSTOMMER LOYALTY - Phần 1
BRAND COMMUNITY & CUSTOMMER LOYALTY - Phần 1
Nguyễn Thắng
 
Fragment
Fragment Fragment
solution fluid mechanics problem
solution fluid mechanics problemsolution fluid mechanics problem
solution fluid mechanics problem
Abdulhaq Alhaddad
 
Introduction to Android Fragments
Introduction to Android FragmentsIntroduction to Android Fragments
Introduction to Android Fragments
Sergi Martínez
 
Android App Development - 06 Fragments
Android App Development - 06 FragmentsAndroid App Development - 06 Fragments
Android App Development - 06 Fragments
Diego Grancini
 
Android Fragment
Android FragmentAndroid Fragment
Android Fragment
Kan-Han (John) Lu
 
Solution manual fundamentals of fluid mechanics (4th edition)
Solution manual   fundamentals of fluid mechanics (4th edition)Solution manual   fundamentals of fluid mechanics (4th edition)
Solution manual fundamentals of fluid mechanics (4th edition)
Guilherme Gonçalves
 
Solution manual fundamentals of fluid mechanics, 6th edition by munson (2009)
Solution manual fundamentals of fluid mechanics, 6th edition by munson (2009)Solution manual fundamentals of fluid mechanics, 6th edition by munson (2009)
Solution manual fundamentals of fluid mechanics, 6th edition by munson (2009)
Thắng Nguyễn
 
State of the Word 2011
State of the Word 2011State of the Word 2011
State of the Word 2011
photomatt
 
2015 Upload Campaigns Calendar - SlideShare
2015 Upload Campaigns Calendar - SlideShare2015 Upload Campaigns Calendar - SlideShare
2015 Upload Campaigns Calendar - SlideShare
SlideShare
 
What to Upload to SlideShare
What to Upload to SlideShareWhat to Upload to SlideShare
What to Upload to SlideShare
SlideShare
 
Getting Started With SlideShare
Getting Started With SlideShareGetting Started With SlideShare
Getting Started With SlideShare
SlideShare
 

Viewers also liked (15)

Google I/O 2011, Android Accelerated Rendering
Google I/O 2011, Android Accelerated RenderingGoogle I/O 2011, Android Accelerated Rendering
Google I/O 2011, Android Accelerated Rendering
 
Introduction to fragments in android
Introduction to fragments in androidIntroduction to fragments in android
Introduction to fragments in android
 
Android - Working with Fragments
Android - Working with FragmentsAndroid - Working with Fragments
Android - Working with Fragments
 
BRAND COMMUNITY & CUSTOMMER LOYALTY - Phần 1
BRAND COMMUNITY & CUSTOMMER LOYALTY - Phần 1BRAND COMMUNITY & CUSTOMMER LOYALTY - Phần 1
BRAND COMMUNITY & CUSTOMMER LOYALTY - Phần 1
 
Fragment
Fragment Fragment
Fragment
 
solution fluid mechanics problem
solution fluid mechanics problemsolution fluid mechanics problem
solution fluid mechanics problem
 
Introduction to Android Fragments
Introduction to Android FragmentsIntroduction to Android Fragments
Introduction to Android Fragments
 
Android App Development - 06 Fragments
Android App Development - 06 FragmentsAndroid App Development - 06 Fragments
Android App Development - 06 Fragments
 
Android Fragment
Android FragmentAndroid Fragment
Android Fragment
 
Solution manual fundamentals of fluid mechanics (4th edition)
Solution manual   fundamentals of fluid mechanics (4th edition)Solution manual   fundamentals of fluid mechanics (4th edition)
Solution manual fundamentals of fluid mechanics (4th edition)
 
Solution manual fundamentals of fluid mechanics, 6th edition by munson (2009)
Solution manual fundamentals of fluid mechanics, 6th edition by munson (2009)Solution manual fundamentals of fluid mechanics, 6th edition by munson (2009)
Solution manual fundamentals of fluid mechanics, 6th edition by munson (2009)
 
State of the Word 2011
State of the Word 2011State of the Word 2011
State of the Word 2011
 
2015 Upload Campaigns Calendar - SlideShare
2015 Upload Campaigns Calendar - SlideShare2015 Upload Campaigns Calendar - SlideShare
2015 Upload Campaigns Calendar - SlideShare
 
What to Upload to SlideShare
What to Upload to SlideShareWhat to Upload to SlideShare
What to Upload to SlideShare
 
Getting Started With SlideShare
Getting Started With SlideShareGetting Started With SlideShare
Getting Started With SlideShare
 

Similar to Google I/O 2011, Android Honeycomb Highlights

Whats New in Android
Whats New in AndroidWhats New in Android
Whats New in Android
donnfelker
 
MOPCON 2014 - Best software architecture in app development
MOPCON 2014 - Best software architecture in app developmentMOPCON 2014 - Best software architecture in app development
MOPCON 2014 - Best software architecture in app development
anistar sung
 
Fake it 'til you make it
Fake it 'til you make itFake it 'til you make it
Fake it 'til you make it
Jonathan Snook
 
jQTouch – Mobile Web Apps with HTML, CSS and JavaScript
jQTouch – Mobile Web Apps with HTML, CSS and JavaScriptjQTouch – Mobile Web Apps with HTML, CSS and JavaScript
jQTouch – Mobile Web Apps with HTML, CSS and JavaScriptPhilipp Bosch
 
Supercharge your ui
Supercharge your uiSupercharge your ui
Supercharge your ui
Dominik Helleberg
 
Plattformübergreifende App-Entwicklung (ein Vergleich) - MobileTechCon 2010
Plattformübergreifende App-Entwicklung (ein Vergleich) - MobileTechCon 2010Plattformübergreifende App-Entwicklung (ein Vergleich) - MobileTechCon 2010
Plattformübergreifende App-Entwicklung (ein Vergleich) - MobileTechCon 2010
Heiko Behrens
 
Android Jumpstart Jfokus
Android Jumpstart JfokusAndroid Jumpstart Jfokus
Android Jumpstart Jfokus
Lars Vogel
 
Getting Started With Material Design
Getting Started With Material DesignGetting Started With Material Design
Getting Started With Material Design
Yasin Yildirim
 
Android Workshop
Android WorkshopAndroid Workshop
Android Workshop
Junda Ong
 
Firefox OS, HTML5 to the next level - Python Montreal - 2014-05-12
Firefox OS, HTML5 to the next level - Python Montreal - 2014-05-12Firefox OS, HTML5 to the next level - Python Montreal - 2014-05-12
Firefox OS, HTML5 to the next level - Python Montreal - 2014-05-12
Frédéric Harper
 
jQuery Mobile
jQuery MobilejQuery Mobile
jQuery Mobilemowd8574
 
Android ActionBar Navigation reloaded
Android ActionBar Navigation reloadedAndroid ActionBar Navigation reloaded
Android ActionBar Navigation reloaded
Dominik Helleberg
 
mobl
moblmobl
mobl
zefhemel
 
Firefox OS, fixing the mobile web - FITC Toronto - 2014-04-28
Firefox OS, fixing the mobile web - FITC Toronto - 2014-04-28Firefox OS, fixing the mobile web - FITC Toronto - 2014-04-28
Firefox OS, fixing the mobile web - FITC Toronto - 2014-04-28
Frédéric Harper
 
Android 3
Android 3Android 3
Android 3
Robert Cooper
 
Selendroid - Selenium for Android
Selendroid - Selenium for AndroidSelendroid - Selenium for Android
Selendroid - Selenium for Android
Dominik Dary
 
APIs for modern web apps
APIs for modern web appsAPIs for modern web apps
APIs for modern web apps
Chris Mills
 

Similar to Google I/O 2011, Android Honeycomb Highlights (20)

Whats New in Android
Whats New in AndroidWhats New in Android
Whats New in Android
 
MOPCON 2014 - Best software architecture in app development
MOPCON 2014 - Best software architecture in app developmentMOPCON 2014 - Best software architecture in app development
MOPCON 2014 - Best software architecture in app development
 
Fake it 'til you make it
Fake it 'til you make itFake it 'til you make it
Fake it 'til you make it
 
Intro to appcelerator
Intro to appceleratorIntro to appcelerator
Intro to appcelerator
 
jQTouch – Mobile Web Apps with HTML, CSS and JavaScript
jQTouch – Mobile Web Apps with HTML, CSS and JavaScriptjQTouch – Mobile Web Apps with HTML, CSS and JavaScript
jQTouch – Mobile Web Apps with HTML, CSS and JavaScript
 
Supercharge your ui
Supercharge your uiSupercharge your ui
Supercharge your ui
 
Web app
Web appWeb app
Web app
 
Plattformübergreifende App-Entwicklung (ein Vergleich) - MobileTechCon 2010
Plattformübergreifende App-Entwicklung (ein Vergleich) - MobileTechCon 2010Plattformübergreifende App-Entwicklung (ein Vergleich) - MobileTechCon 2010
Plattformübergreifende App-Entwicklung (ein Vergleich) - MobileTechCon 2010
 
Android Jumpstart Jfokus
Android Jumpstart JfokusAndroid Jumpstart Jfokus
Android Jumpstart Jfokus
 
Getting Started With Material Design
Getting Started With Material DesignGetting Started With Material Design
Getting Started With Material Design
 
Web app
Web appWeb app
Web app
 
Android Workshop
Android WorkshopAndroid Workshop
Android Workshop
 
Firefox OS, HTML5 to the next level - Python Montreal - 2014-05-12
Firefox OS, HTML5 to the next level - Python Montreal - 2014-05-12Firefox OS, HTML5 to the next level - Python Montreal - 2014-05-12
Firefox OS, HTML5 to the next level - Python Montreal - 2014-05-12
 
jQuery Mobile
jQuery MobilejQuery Mobile
jQuery Mobile
 
Android ActionBar Navigation reloaded
Android ActionBar Navigation reloadedAndroid ActionBar Navigation reloaded
Android ActionBar Navigation reloaded
 
mobl
moblmobl
mobl
 
Firefox OS, fixing the mobile web - FITC Toronto - 2014-04-28
Firefox OS, fixing the mobile web - FITC Toronto - 2014-04-28Firefox OS, fixing the mobile web - FITC Toronto - 2014-04-28
Firefox OS, fixing the mobile web - FITC Toronto - 2014-04-28
 
Android 3
Android 3Android 3
Android 3
 
Selendroid - Selenium for Android
Selendroid - Selenium for AndroidSelendroid - Selenium for Android
Selendroid - Selenium for Android
 
APIs for modern web apps
APIs for modern web appsAPIs for modern web apps
APIs for modern web apps
 

Recently uploaded

The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
Neo4j
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
Matthew Sinclair
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
Alpen-Adria-Universität
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
Neo4j
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
mikeeftimakis1
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
DianaGray10
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
Quotidiano Piemontese
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
Neo4j
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptxSecstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
nkrafacyberclub
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
Dorra BARTAGUIZ
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
Uni Systems S.M.S.A.
 

Recently uploaded (20)

The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptxSecstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
 

Google I/O 2011, Android Honeycomb Highlights

  • 1.
  • 2. Honeycomb Highlights Romain Guy @romainguy Chet Haase @chethaase May 10, 2011 Questions http://goo.gl/mod/8NZp Feedback http://goo.gl/hD5M9 Hashtags #io2011, #Android
  • 3. Honeycomb Highlights Honeycomb and Get It Romain Guy @romainguy Chet Haase @chethaase May 10, 2011 Questions http://goo.gl/mod/8NZp Feedback http://goo.gl/hD5M9 Hashtags #io2011, #Android
  • 4. Honeycomb • The tablet release • User improvements • Developer improvements
  • 5. The Tablet Release • Tablet != Phone • Screen size • Input • More memory, faster CPU, multi-core – But more pixels... • GPU!
  • 6. Honeycomb • The tablet release • User improvements • Developer improvements
  • 7. UI Improvements • Home screen, new ‘Holo’ theme • Keyboard • Text selection • USB device connectivity • Action Bar, System Bar • Recent Apps
  • 8. New and Improved Applications • New – Books – Movie Studio • Improved – Market – Browser – Contacts – Music – Gmail – ...
  • 9. New Widgets • Richer • More interactive • Books, Bookmarks, Gmail, Calendar, ...
  • 10. Demo
  • 11. Honeycomb • The tablet release • User improvements • Developer improvements
  • 12. Fragments • Like mini-activities • For flexible screen format situations – landscape vs. portrait – large vs. small
  • 14. Fragments • Single activity, multiple fragments
  • 16. Fragments: For More Info • Read Dianne Hackborn’s The Android 3.0 Fragments API – android-developers.blogspot.com • Get “Android Compatibility package” in the SDK Updater – Fragments now available in 1.6+ !!!!
  • 23. Action Bar Home/Up Navigation Actions Text Actions
  • 24. Action Bar Home/Up Navigation Actions Overflow Text Actions
  • 25. Action Bar Home/Up Navigation Actions Text Actions
  • 26. Action Bar Contextual ActionBar Text Actions
  • 27. Action Bar @Override public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.actions, menu); return true; }
  • 28. Action Bar <menu> <item android:id="@+id/action_edit" android:icon="@android:drawable/ic_menu_edit" android:showAsAction="always" android:title="@string/action_bar_edit" /> <item android:id="@+id/action_share" android:icon="@android:drawable/ic_menu_share" android:showAsAction="ifRoom" android:title="@string/action_bar_share" /> </menu>
  • 29. Action Bar <menu> <item android:id="@+id/action_edit" android:icon="@android:drawable/ic_menu_edit" android:showAsAction="always" android:title="@string/action_bar_edit" /> <item android:id="@+id/action_share" android:icon="@android:drawable/ic_menu_share" android:showAsAction="ifRoom" android:title="@string/action_bar_share" /> </menu>
  • 30. Renderscript • Native code for fast graphics, computation • Platform-independent • Syntax based on C99 • Uses GPU, CPU, multi-core • Used in Books, YouTube, Live Wallpapers
  • 31. Renderscript: HelloWorldRS.java public class HelloWorldRS { private ScriptC_helloworld mScript; public void init(RenderScriptGL rs, Resources res) { mScript = new ScriptC_helloworld(rs, res, R.raw.helloworld); rs.bindRootScript(mScript); } public void onActionDown(int x, int y) { mScript.set_gTouchX(x); mScript.set_gTouchY(y); } }
  • 32. Renderscript: helloworld.rs int gTouchX; int gTouchY; void init() { gTouchX = 50.0f; gTouchY = 50.0f; } int root(int launchID) { rsgClearColor(0.0f, 0.0f, 0.0f, 0.0f); rsgFontColor(1.0f, 1.0f, 1.0f, 1.0f); rsgDrawText("Hello World!", gTouchX, gTouchY); return 20; }
  • 33. Renderscript • Read Jason Sams’s Renderscript articles – android-developers.blogspot.com • Play with the SDK Renderscript samples
  • 34. Graphics Acceleration • OpenGL acceleration for most graphics operations – Canvas.drawLine(), Canvas.drawBitmap(), ... • Used in Launcher, Gmail, Contacts, Calendar, YouTube, Browser, Maps, Settings, ...
  • 36. Acceleration: The Complex API Details <application android:hardwareAccelerated=”true”>
  • 37. Acceleration: The Complex API Details <application android:hardwareAccelerated=”true”> • Opt-in via AndroidManifest.xml • Selectively disable at Activity, Window, or View level
  • 38. More Details • Come to Accelerated Android Rendering – Tomorrow 10:45 • Read Android 3.0 Hardware Acceleration – android-developers.blogspot.com
  • 39. Animation Framework • New system built on “property animation” – Any object, any property, any type • New properties on View – alpha, translationX/Y, scaleX/Y, rotation, ...
  • 40. Animation Framework • New system built on “property animation” – Any object, any property, any type • New properties on View – alpha, translationX/Y, scaleX/Y, rotation, ... ObjectAnimator.ofFloat(target, “alpha”, 0f).start();
  • 41. Demo
  • 42. PhotoAlbum Animations if (mPanelVisible) { mPanelAnimator = ObjectAnimator.ofFloat(mPanel, "x", 0.0f); } else { mPanelAnimator = ObjectAnimator.ofFloat(mPanel, "x", -mPanel.getWidth()); } mPanelAnimator.start();
  • 43. PhotoAlbum Animations mPanel.setLayerType(View.LAYER_TYPE_HARDWARE, null); if (mPanelVisible) { mPanelAnimator = ObjectAnimator.ofFloat(mPanel, "x", 0.0f); } else { mPanelAnimator = ObjectAnimator.ofFloat(mPanel, "x", -mPanel.getWidth()); } mPanelAnimator.start(); mPanelAnimator.addListener(new AnimatorListenerAdapter() { @Override public void onAnimationEnd(Animator animation) { mPanel.setLayerType(View.LAYER_TYPE_NONE, null); } });
  • 44. PhotoAlbum Animations if (mPanelAnimator != null && mPanelAnimator.isRunning()) { mPanelAnimator.reverse(); return; } mPanel.setLayerType(View.LAYER_TYPE_HARDWARE, null); if (mPanelVisible) { mPanelAnimator = ObjectAnimator.ofFloat(mPanel, "x", 0.0f); } else { mPanelAnimator = ObjectAnimator.ofFloat(mPanel, "x", -mPanel.getWidth()); } mPanelAnimator.start(); mPanelAnimator.addListener(new AnimatorListenerAdapter() { @Override public void onAnimationEnd(Animator animation) { mPanel.setLayerType(View.LAYER_TYPE_NONE, null); } });
  • 45. For More Information • Read Animation in Honeycomb – android-developers.blogspot.com • Check out the animation demos in the SDK
  • 46. And Much, Much More... • Clipboard • Drag and Drop • HTTP Live Streaming • Pluggable DRM framework • Encrypted storage • New/improved components – DatePicker, NumberPicker, StackView, CalendarView, ... • Tools – UI Builder, code completion, ... – Android Development Tools, Wednesday@3
  • 48. More in Android 3.1 Ne USB: Beyond keyboards w ! External camera support Resizable widgets RTP API Performance optimizations ViewPropertyAnimator
  • 49. The Future • Honeycomb was optimized for tablets – But we’re working on bringing the Honeycomb UI and functionality to smaller screen devices • More, better, fancier, faster, lovelier
  • 50. For More Information • At Google IO – Android USB Accessory Mode: Tuesday 1:15 – Fireside Chat: Tuesday 2:30 – Android UIs for Phones and Tablets: Wednesday 12:30 – Android Development Tools: Wednesday 3:00 – Memory Management for Android Apps: Wednesday 4:15 • After Google IO – Android Developers Blog: android-developers.blogspot.com – Romain’s blog: curious-creature.org – Chet’s blog: graphics-geek.blogspot.com
  • 51. Questions http://goo.gl/mod/8NZp Q&A Feedback http://goo.gl/hD5M9 Hashtags #io2011, #Android

Editor's Notes

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. Romain + Chet\nShow home screen, launcher, basic UI\nDemos of honeycomb apps: gmail, contacts, books, music, etc.\nWidgets: show widget list, show bookmarks, books, youtube, calendar, gmail, ...\n(choreograph)\n
  11. \n
  12. \n
  13. Larger devices may be able to fit what might otherwise be multiple activities\n
  14. One activity, single layout with both fragments\n
  15. two activities, each with fragment\n
  16. \n
  17. Buttons: Home, back, Recent apps\nNotifications\nCustomized notifications with Notification.Builder\n
  18. Buttons: Home, back, Recent apps\nNotifications\nCustomized notifications with Notification.Builder\n
  19. Buttons: Home, back, Recent apps\nNotifications\nCustomized notifications with Notification.Builder\n
  20. Buttons: Home, back, Recent apps\nNotifications\nCustomized notifications with Notification.Builder\n
  21. Lights-out\n
  22. Lights-out\n
  23. Lights-out\n
  24. Lights-out\n
  25. Lights-out\n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n
  31. \n
  32. \n
  33. \n
  34. \n
  35. \n
  36. \n
  37. \n
  38. \n
  39. \n
  40. \n
  41. \n
  42. \n
  43. \n
  44. \n
  45. \n
  46. \n
  47. \n
  48. \n
  49. view properties: cheap to change transform/alpha properties with layers or display lists\n
  50. Romain (photo app) + Chet (API demos)\nPhoto app: animation and hardware support for layers\n
  51. \n
  52. \n
  53. \n
  54. \n
  55. \n
  56. \n
  57. \n
  58. \n
  59. USB: New USB stack for arbitrary device handling, new input events for keyboards and pointers\nCamera: MTP Media Transfer Protocol API for device detection and storage\nWigets: resizable by users, attribute flag in widget declaration\nRTP: Real Time Protocol, for audio streaming, VOIP, conferencing\nOptimizations: more Framework stuff to make rendering faster\n
  60. USB: New USB stack for arbitrary device handling, new input events for keyboards and pointers\nCamera: MTP Media Transfer Protocol API for device detection and storage\nWigets: resizable by users, attribute flag in widget declaration\nRTP: Real Time Protocol, for audio streaming, VOIP, conferencing\nOptimizations: more Framework stuff to make rendering faster\n
  61. USB: New USB stack for arbitrary device handling, new input events for keyboards and pointers\nCamera: MTP Media Transfer Protocol API for device detection and storage\nWigets: resizable by users, attribute flag in widget declaration\nRTP: Real Time Protocol, for audio streaming, VOIP, conferencing\nOptimizations: more Framework stuff to make rendering faster\n
  62. \n
  63. \n
  64. \n
  65. \n