Login now

Not your profile? Login and get free access to your reports and analysis.

Tags

Sign in

The following tags have been added by users of CircleCount.com.
You can login on CircleCount to add more tags here.

  • Android
  • Developers
  • SEO

Are you missing a tag in the list of available tags? You can suggest new tags here.

Login now

Do you want to see a more detailed chart? Check your settings and define your favorite chart type.

Or click here to get the detailed chart only once.

Android Developers has been at 22 events

HostFollowersTitleDateGuestsLinks
Android Developers774,747Submit questions here: https://goo.gl/5zGQ2E Last month at #io15  we announced a number of new Android courses with @116286004036789369492, including Advanced Android App Development. This course is designed to teach you how to make your apps production-ready, and covers advanced tools and concepts, including material design approaches, image handling, performance profiling and more! To help you learn more about the course, we're hosting our second "Ask the Experts" live streamed session! In this episode, join course instructors Dan Galpin, Ian Lake and Joanna Smith, in conversation with veteran instructor Reto Meier, to learn more about the origins of the course, benefits to developers, and how to get started.  Live stream here: http://www.youtube.com/watch?v=M9AfkPhL5G4Advanced Android App Development "Ask the Experts"2015-06-23 23:00:00302  
Android Developers774,747Join @118292708268361843293, @103125970510649691204 and @113735310430199015092 as they discuss various elements of Android Design. This week, we'll share a collection of tips for presenting photos and thumbnails in your apps. #AndroidDesign #ADiAAndroid Design in Action: Images2013-10-22 16:30:00272  
Android Developers774,747Join @118292708268361843293, @103125970510649691204 and @113735310430199015092 as they discuss various elements of Android Design. This week, we'll recap a number of best practices for allowing users to consume and manipulate collections of objects. #ADiA #AndroidDesignAndroid Design in Action: Collections2013-10-01 16:30:00342  
Android Developers774,747Join the #ADLplus  team for part 2 of their coverage of the Maps API v2. URL: https://developers.google.com/events/ahNzfmdvb2dsZS1kZXZlbG9wZXJzcg4LEgVFdmVudBiewoUXDA/Android Developer Lab+ - Maps API v2 part 22013-01-24 06:00:00238  
Android Developers774,747The Android Developer Relations team discusses "Multi-Versioning UI and UI Navigation" with special guests Adam Powell, and Richard Fulcher.Android Developer Office Hours: Multi-Versioning UI and UI Navigation2012-08-29 23:00:00203  
Android Developers774,747Join @105593270217665985575 and @108883891787213220896  as they a take you on a mind bending trip through some challenging Brain and Puzzle titles. If you've got suggestions for titles they should be looking at, click on over to the moderator page on the main site. The Friday Games Review: Brain and Puzzle Games2012-08-24 23:00:00102  
Android Developers774,747@111169963967137030210  and @109486821799932251955  are going to dissect Music Player apps on this week's Clinic. The Friday App Clinic: Music Players2012-08-24 22:00:00129  
Android Developers774,747This is the APAC timezone friendly edition of Android Developers Live.  Join in the Live G+ Hangout to ask questions, or via the Google Moderator page on the main site below. Android Developer Lab+2012-08-23 16:00:0074  
Android Developers774,747The Android Developer Relations team goes live on air via a YouTube LiveStream and a G+ Hangout simultaneously to answer any burning questions you Android Developers have got.  As usual you can ask us any questions at all in the comments below or via Google Moderator on the main page. Android Developer Office Hours: Developer Q&A2012-08-22 23:00:00195  
Android Developers774,747Join the Android Developer Relations team for a live Google Hangout. This is the EMEA timezone friendly event.  Don't forget to ask your questions via the moderator page at the main site, or join in live to ask them yourself!Android Developer Office Hours (EMEA Edition)2012-08-22 06:00:0055  
Android Developers774,747Join your always ebullient host @105593270217665985575  and special host @117622962140266781206 for this week's review of ARPGs. Post your questions below or at the moderator page on our main site at https://developers.google.com/live/shows/ahNzfmdvb2dsZS1kZXZlbG9wZXJzcg4LEgVFdmVudBjwwa0DDA/The Friday Games Review: ARPGs2012-08-17 23:00:0074  
Android Developers774,747Join @111169963967137030210 and @109486821799932251955  as they discuss this week's topic Financial Apps! As usual, you can post your questions here or on the moderator page listed on our main website at https://developers.google.com/live/shows/ahNzfmdvb2dsZS1kZXZlbG9wZXJzcg4LEgVFdmVudBie8qIDDA/ Just scroll down to the bottom of the main page.The Friday App Clinic: Finance2012-08-17 22:00:00100  
Android Developers774,747Android Developers Live (Brasil)2012-08-17 00:00:0040  
Android Developers774,747The APAC team returns this week for more Q&A. Post your questions beforehand at http://www.google.com/moderator/#15/e=1fa566&t=1fa566.48&v=5 You can watch and/or join the live hangout at https://developers.google.com/live/shows/ahNzfmdvb2dsZS1kZXZlbG9wZXJzcg4LEgVFdmVudBia17MDDA/Android APAC Developer Office Hours2012-08-16 08:00:0059  
Android Developers774,747Join the Android Developer Relations team as they discuss "Low-Level Media APIs" with special guest James Dong. We'll be answering general questions as usual, but this is a good opportunity to ask some questions about Low-Level Media APIs! Ask your questions here, or in the moderator page in the linked Google Developers Live event.Android Developer Office Hours: Low-Level Media APIs2012-08-15 23:00:00141  
Android Developers774,747Your brilliant hosts @109486821799932251955  and @105593270217665985575  review some Sports titles!The Friday Review of Games: Sports2012-08-10 23:00:0042  
Android Developers774,747Join @111169963967137030210  and @112600205125796554588  as they discuss this week's topic: the exciting and competitive world of Podcast Players. Have you ever said to yourself, "gee, I wish I could play some killer podcasts on my Android device," and then downloaded some random podcast player, only to be bitterly disappointed? Us too! Do us a favor and suggest some really good podcast apps on our page at https://developers.google.com/live/shows/ahNzfmdvb2dsZS1kZXZlbG9wZXJzcg4LEgVFdmVudBiMqagDDA/. Scroll down to the bottom to see the voting area. The Friday App Clinic: Podcast Players2012-08-10 22:00:0088  
Android Developers774,747Hangout with APAC Android Developers for Q&A. Please submit your questions before hand at https://developers.google.com/events/ahNzfmdvb2dsZS1kZXZlbG9wZXJzcg4LEgVFdmVudBiazKQDDA/ (you need to scroll down past the video). You can also join the hangout at the link above when we are on air.Android APAC Developer Office Hours2012-08-09 08:00:0075  
Android Developers774,747Join us this week for an NFC themed Q&A when we invite the speakers from #IO12 sessions "NFC and Android Beam" with Martijn Coenen and Robert Hamilton  to join the Android Developer Relations team. We'll be answering any Android development questions, but we've got the NFC and Android Beam experts on hand, so this will be the best time to ask those questions specifically! Ask your questions here, or in the moderator page in the linked Google Developers Live event.Android Developer Office Hours: NFC2012-08-08 23:00:0093  
Android Developers774,747Join us to discuss Android Development. *Official site*: https://developers.google.com/live/shows/ahNzfmdvb2dsZS1kZXZlbG9wZXJzcg4LEgVFdmVudBiX4q8DDA/Android Developer Office Hours - EMEA2012-08-08 14:00:0044  
Android Developers774,747This Friday @109486821799932251955 and @105593270217665985575 pay tribute to driving games of all sortsThe Friday Review of Games: Driving2012-08-03 23:00:0067  
Android Developers774,747Join Ian Ni-Lewis and hat guy Dan Galpin for a review of some of Android's best games. This week's topic is Tower Defense games.  To watch the show or vote on games to be featured, go here: https://developers.google.com/events/ahNzfmdvb2dsZS1kZXZlbG9wZXJzcg4LEgVFdmVudBia_Z4DDA/The Friday Review of Games2012-07-27 23:00:0088  

Shared Circles including Android Developers

Shared Circles are not available on Google+ anymore, but you can find them still here.

The Google+ Collections of Android Developers

Activity

Average numbers for the latest posts (max. 50 posts, posted within the last 4 weeks)

10
comments per post
51
reshares per post
170
+1's per post

889
characters per posting

Top posts in the last 50 posts

Most comments: 48

posted image

2015-08-14 16:05:23 (48 comments, 28 reshares, 169 +1s)Open 

What’s #Android M gonna be? We all have our guesses… g.co/go/NLwhatsM #natandlo

Most reshares: 327

posted image

2015-08-17 17:24:48 (40 comments, 327 reshares, 933 +1s)Open 

M is For Android Marshmallow. Time to enjoy another tasty treat from the Android team. The official Android 6.0 SDK is live for app developers! #AndroidDev #AndroidMarshmallow

http://goo.gl/bhaZqd


Most plusones: 933

posted image

2015-08-17 17:24:48 (40 comments, 327 reshares, 933 +1s)Open 

M is For Android Marshmallow. Time to enjoy another tasty treat from the Android team. The official Android 6.0 SDK is live for app developers! #AndroidDev #AndroidMarshmallow

http://goo.gl/bhaZqd


Latest 50 posts

2015-08-27 18:38:12 (33 comments, 109 reshares, 275 +1s)Open 

Preferences Support Library: Preference Fragments for API 7+, no matter the Activity
Pro-tip by +Ian Lake

Creating your preferences from XML files means less code and a consistent user experience across apps. However, this required that you use PreferenceActivity and even then you could only use PreferenceFragment on API 11+ devices. Well, no more: the Preferences Support v7 Library (http://goo.gl/BPE0M1) makes it possible to use any Activity class (such as an AppCompatActivity) with PreferenceFragmentCompat (http://goo.gl/kKXszC) and add preferences using the same preference XML files (http://goo.gl/wOcIxI), while adding support for elements such as SwitchPreference (previously only available on API 14+ devices) to all API 7+ devices.

A simple implementation would include a PreferenceFragmentCompat such as:
public class PreferencesFragment extends... more »

Preferences Support Library: Preference Fragments for API 7+, no matter the Activity
Pro-tip by +Ian Lake

Creating your preferences from XML files means less code and a consistent user experience across apps. However, this required that you use PreferenceActivity and even then you could only use PreferenceFragment on API 11+ devices. Well, no more: the Preferences Support v7 Library (http://goo.gl/BPE0M1) makes it possible to use any Activity class (such as an AppCompatActivity) with PreferenceFragmentCompat (http://goo.gl/kKXszC) and add preferences using the same preference XML files (http://goo.gl/wOcIxI), while adding support for elements such as SwitchPreference (previously only available on API 14+ devices) to all API 7+ devices.

A simple implementation would include a PreferenceFragmentCompat such as:
public class PreferencesFragment extends PreferenceFragmentCompat {
 @Override
  public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
    addPreferencesFromResource(R.xml.preferences);
  }
}

You’ll also need to set preferenceTheme in your theme:
<style name="AppTheme" parent="@style/Theme.AppCompat.Light">
  <!-- Set colorPrimary, colorPrimaryDark, colorAccent, etc →
  <item name="preferenceTheme">@style/PreferenceThemeOverlay</item>
</style>

Customizing the preferenceTheme allows for increased control over the styling and layouts used for each preference type without affecting other parts of your Activity.

Even better, PreferenceFragmentCompat uses RecyclerView for showing the list of preferences, allowing you to integrate scrolling techniques (http://goo.gl/119brU) with the help of the Android Design Support Library (http://goo.gl/8LN2Aj).

One thing you’ll note isn’t in here is preference headers and you’d be totally right. However, that doesn’t mean a single list of preferences need to span a 10” tablet screen. Instead, your Activity can implement OnPreferenceStartFragmentCallback (http://goo.gl/IZWZBP) to handle preferences with an app:fragment attribute or OnPreferenceStartScreenCallback (http://goo.gl/CFp5Cr) to handle PreferenceScreen preferences. This allows you to construct a ‘header’ style PreferenceFragmentCompat in one pane and use those callbacks to replace a second pane without working in two separate types of XML files.

So what about the preferences-v14 library? You’ll find it offers the same API as the preferences-v7 library, but built on framework Fragments and DialogFragments.

If you’re building apps for Android TV, you’ll find the preference-v17 library (http://goo.gl/i2A1zF) incredibly helpful - providing an optimized Leanback version of preferences via LeanbackPreferenceFragment (http://goo.gl/eLqNEv) built on top of these preference APIs.

#BuildBetterApps___

posted image

2015-08-27 17:45:43 (6 comments, 74 reshares, 216 +1s)Open 

Try the Android Auto Desktop Head Unit
Are you an #AndroidAuto developer? Try the Desktop Head Unit (https://goo.gl/vjonWt). The DHU enables your workstation to act as an Android Auto head unit that emulates the in-car experience for testing purposes.

http://goo.gl/SigSwR

Try the Android Auto Desktop Head Unit
Are you an #AndroidAuto developer? Try the Desktop Head Unit (https://goo.gl/vjonWt). The DHU enables your workstation to act as an Android Auto head unit that emulates the in-car experience for testing purposes.

http://goo.gl/SigSwR___

posted image

2015-08-27 16:59:10 (29 comments, 81 reshares, 259 +1s)Open 

Building better apps with Runtime Permissions
Android 6.0 Marshmallow introduces runtime permissions, giving your app control over when and with what context you ask for dangerous permissions and making installing and updating your app even easier. With the help of our newly released permissions design guidelines, learn how runtime permissions work, the tools to integrate them into your app, and the best practices around building a great user experience. #BuildBetterApps

http://goo.gl/ZlfEf3

Building better apps with Runtime Permissions
Android 6.0 Marshmallow introduces runtime permissions, giving your app control over when and with what context you ask for dangerous permissions and making installing and updating your app even easier. With the help of our newly released permissions design guidelines, learn how runtime permissions work, the tools to integrate them into your app, and the best practices around building a great user experience. #BuildBetterApps

http://goo.gl/ZlfEf3___

posted image

2015-08-26 18:25:58 (2 comments, 13 reshares, 64 +1s)Open 

KINTSUKUROI, a game of Japanese tradition. An Android Experiment by Chelsea Saunders. https://goo.gl/TlyjDE

Source code available at https://goo.gl/iGmk5Z

#AndroidExperiments

KINTSUKUROI, a game of Japanese tradition. An Android Experiment by Chelsea Saunders. https://goo.gl/TlyjDE

Source code available at https://goo.gl/iGmk5Z

#AndroidExperiments___

posted image

2015-08-26 16:25:34 (10 comments, 61 reshares, 310 +1s)Open 

New in the Google Play Developer Console: Know where your most valuable users come from.

Developers will now get new performance data on how all their user acquisition channels are performing on the User Acquisition tab in the Developer Console. You'll see how people are finding your Play Store listing, how many install your app, and how many go on to make purchases. Check it out in the Developer Console: http://g.co/play/developerconsole.

New in the Google Play Developer Console: Know where your most valuable users come from.

Developers will now get new performance data on how all their user acquisition channels are performing on the User Acquisition tab in the Developer Console. You'll see how people are finding your Play Store listing, how many install your app, and how many go on to make purchases. Check it out in the Developer Console: http://g.co/play/developerconsole.___

2015-08-25 17:27:03 (16 comments, 49 reshares, 152 +1s)Open 

Prefer static handler classes and Android protip from +Boris Farber

All right, let's say that we have the following (pretty common) scenario: a handler inside the Activity. As you know, the hander API, is a service to deliver messages to various threads:

public class MainActivity extends Activity {
   // ...
   Handler handler;
   @Override
   protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // ...
        handler = new Handler() {
           @Override
            public void handleMessage(Message msg) {

             }
        };
   // ...

That looks fine, however what if we have the following code:

handler.postDelayed(...)

This means that the handler object,including its message, will not be garbage c... more »

Prefer static handler classes and Android protip from +Boris Farber

All right, let's say that we have the following (pretty common) scenario: a handler inside the Activity. As you know, the hander API, is a service to deliver messages to various threads:

public class MainActivity extends Activity {
   // ...
   Handler handler;
   @Override
   protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // ...
        handler = new Handler() {
           @Override
            public void handleMessage(Message msg) {

             }
        };
   // ...

That looks fine, however what if we have the following code:

handler.postDelayed(...)

This means that the handler object, including its message, will not be garbage collected. And because the handler is a non-static inner class, the enclosing activity will not be garbage collected as well (even though it might not used). This results in a huge leak!

How do you sort this out? We need to use a static inner class with a weak reference. If you recall, a weak reference is a reference that anyone can clean, as long as the weak reference is the only reference. Here is the code that explains how to use it:

private static class MyHandler extends Handler {
   private final WeakReference<MainActivity> mActivity;
   // ...
   public MyHandler(MainActivity activity) {
       mActivity = new WeakReference<MainActivity>(activity);
       // ...
   }

   @Override
   public void handleMessage(Message msg) {
   }
   // ...
}

Check out more tips like this at www.api-solutions.com and here on Android Design Patterns: http://goo.gl/XbUVOq___

posted image

2015-08-25 17:22:23 (2 comments, 4 reshares, 15 +1s)Open 

100 days of Google Dev, Episode 86/100

So what’s the deal with using ENUMs on Android? Some people say it’s bad, other people say it’s not a problem. What gives, and what are the reasons?

To clear up some confusion, Colt McAnlis takes a look at the effect that enums have on your Android code size, memory footprint, and runtime performance.

#GoogleDev100

https://goo.gl/HPKBUw

100 days of Google Dev, Episode 86/100

So what’s the deal with using ENUMs on Android? Some people say it’s bad, other people say it’s not a problem. What gives, and what are the reasons?

To clear up some confusion, Colt McAnlis takes a look at the effect that enums have on your Android code size, memory footprint, and runtime performance.

#GoogleDev100

https://goo.gl/HPKBUw___

posted image

2015-08-25 17:21:34 (7 comments, 25 reshares, 129 +1s)Open 

100 days of Google Dev, Episode 86/100

So what’s the deal with using ENUMs on Android? Some people say it’s bad, other people say it’s not a problem. What gives, and what are the reasons?

To clear up some confusion, Colt McAnlis takes a look at the effect that enums have on your Android code size, memory footprint, and runtime performance.

#GoogleDev100

https://goo.gl/HPKBUw

100 days of Google Dev, Episode 86/100

So what’s the deal with using ENUMs on Android? Some people say it’s bad, other people say it’s not a problem. What gives, and what are the reasons?

To clear up some confusion, Colt McAnlis takes a look at the effect that enums have on your Android code size, memory footprint, and runtime performance.

#GoogleDev100

https://goo.gl/HPKBUw___

posted image

2015-08-25 16:00:13 (7 comments, 15 reshares, 72 +1s)Open 

Here’s some important insight from App Developer Alliance on how a more unified +Android ecosystem benefits for both developers and consumers.

Here’s some important insight from App Developer Alliance on how a more unified +Android ecosystem benefits for both developers and consumers.___

posted image

2015-08-24 16:52:09 (5 comments, 21 reshares, 76 +1s)Open 

Get the Do’s and Don’ts for Notifications from Game Developer Seriously

Notifications on Android let you send timely, relevant, and actionable information to your users' devices. When used correctly, notifications can increase the value of your app or game and drive ongoing engagement.

Seriously [https://goo.gl/c5qI7f] is a Finnish mobile game developer focused on creating entertaining games with quality user experiences. They use push notifications to drive engagement with their players, such as helping players progress to the next level when they’ve left the app after getting stuck.

Reko Ukko [https://twitter.com/rekotin], VP of Game Design at Seriously, shared his tips with us on how to use notifications to increase the value of your game and drive ongoing engagement.

Read more on the Android Developers Blog.

Get the Do’s and Don’ts for Notifications from Game Developer Seriously

Notifications on Android let you send timely, relevant, and actionable information to your users' devices. When used correctly, notifications can increase the value of your app or game and drive ongoing engagement.

Seriously [https://goo.gl/c5qI7f] is a Finnish mobile game developer focused on creating entertaining games with quality user experiences. They use push notifications to drive engagement with their players, such as helping players progress to the next level when they’ve left the app after getting stuck.

Reko Ukko [https://twitter.com/rekotin], VP of Game Design at Seriously, shared his tips with us on how to use notifications to increase the value of your game and drive ongoing engagement.

Read more on the Android Developers Blog.___

posted image

2015-08-21 20:31:03 (29 comments, 38 reshares, 264 +1s)Open 

We've just released Android Studio 1.3.2 to the beta channel (and 1.4 Preview 3 to the canary channel) with a handful of fixes and additional Android Marshmallow support.

http://tools.android.com/recent/androidstudio132and14preview3available

We've just released Android Studio 1.3.2 to the beta channel (and 1.4 Preview 3 to the canary channel) with a handful of fixes and additional Android Marshmallow support.

http://tools.android.com/recent/androidstudio132and14preview3available___

posted image

2015-08-21 18:52:58 (0 comments, 3 reshares, 12 +1s)Open 

The Big Android BBQ (http://goo.gl/AKWeJJ) is almost here, and we'll be there serving up a healthy portion of best practices for Android development and performance! #BABBQ will be held at the Hurst Convention Center in Dallas in Ft.Worth, Texas on October 22-23, 2015.

Register here (https://goo.gl/mzDItm) through August 25th and you will get 25% off when you use the promotional code "ANDROIDDEV25."

Now, sit back, and enjoy this video of some Android cowfolk preparing for this year’s BBQ!

https://goo.gl/wfdy3U

#PerfMatters #BuildBetterApps

The Big Android BBQ (http://goo.gl/AKWeJJ) is almost here, and we'll be there serving up a healthy portion of best practices for Android development and performance! #BABBQ will be held at the Hurst Convention Center in Dallas in Ft.Worth, Texas on October 22-23, 2015.

Register here (https://goo.gl/mzDItm) through August 25th and you will get 25% off when you use the promotional code "ANDROIDDEV25."

Now, sit back, and enjoy this video of some Android cowfolk preparing for this year’s BBQ!

https://goo.gl/wfdy3U

#PerfMatters #BuildBetterApps___

posted image

2015-08-21 16:34:12 (10 comments, 43 reshares, 121 +1s)Open 

The Big Android BBQ (http://goo.gl/AKWeJJ) is almost here, and we'll be there serving up a healthy portion of best practices for Android development and performance! #BABBQ will be held at the Hurst Convention Center in Dallas in Ft.Worth, Texas on October 22-23, 2015.

Register here (https://goo.gl/mzDItm) through August 25th and you will get 25% off when you use the promotional code "ANDROIDDEV25."

Now, sit back, and enjoy this video of some Android cowfolk preparing for this year’s BBQ!

https://goo.gl/wfdy3U

#PerfMatters #BuildBetterApps

The Big Android BBQ (http://goo.gl/AKWeJJ) is almost here, and we'll be there serving up a healthy portion of best practices for Android development and performance! #BABBQ will be held at the Hurst Convention Center in Dallas in Ft.Worth, Texas on October 22-23, 2015.

Register here (https://goo.gl/mzDItm) through August 25th and you will get 25% off when you use the promotional code "ANDROIDDEV25."

Now, sit back, and enjoy this video of some Android cowfolk preparing for this year’s BBQ!

https://goo.gl/wfdy3U

#PerfMatters #BuildBetterApps___

2015-08-21 00:43:11 (1 comments, 12 reshares, 74 +1s)Open 

Episode #33 of the Android Developers Backstage Podcast is now available.

In this episode, +Chet Haase and +Tor Norbye chat with Ben Poiesz, a product manager on the Android framework, about the exciting new Permissions model in Android M.

http://androidbackstage.blogspot.com/2015/08/episode-33-permission-mission.html

Episode #33 of the Android Developers Backstage Podcast is now available.

In this episode, +Chet Haase and +Tor Norbye chat with Ben Poiesz, a product manager on the Android framework, about the exciting new Permissions model in Android M.

http://androidbackstage.blogspot.com/2015/08/episode-33-permission-mission.html___

posted image

2015-08-20 18:35:15 (2 comments, 5 reshares, 20 +1s)Open 

Get the right messages across with the Google beacon platform
+Hoi Lam shares some of his experience using the beacon platform, the best practices when adding beacon attachments in Proximity Beacon API and retrieving them using Nearby Messages API in Android and iOS. #GoogleBeaconPlatform http://goo.gl/M32UBO

Get the right messages across with the Google beacon platform
+Hoi Lam shares some of his experience using the beacon platform, the best practices when adding beacon attachments in Proximity Beacon API and retrieving them using Nearby Messages API in Android and iOS. #GoogleBeaconPlatform http://goo.gl/M32UBO___

2015-08-20 18:09:43 (34 comments, 198 reshares, 465 +1s)Open 

Percentage Based Dimensions and Margins with the Percent Support Library
Pro-tip by +Joanna Smith

There are a lot of options to help you position your Views just right. But adding a LinearLayout to your beautiful RelativeLayout just to gain access to layout_weight for that perfect positioning is ridiculous. And we hear you on that. Which is why Android introduced the new Percent Support Library (https://goo.gl/XTOD5G). Its PercentFrameLayout and PercentRelativeLayout provide an easy way to specify View dimensions and margins in terms of a percentage of the overall size.

That means if you want a view to take up exactly 50% of the available width and height, you’d use a layout such as
<android.support.percent.PercentRelativeLayout>
 <ImageView
  android:id=”@+id/centered_image”
  android:layout_gravity=”center”  app:layo... more »

Percentage Based Dimensions and Margins with the Percent Support Library
Pro-tip by +Joanna Smith

There are a lot of options to help you position your Views just right. But adding a LinearLayout to your beautiful RelativeLayout just to gain access to layout_weight for that perfect positioning is ridiculous. And we hear you on that. Which is why Android introduced the new Percent Support Library (https://goo.gl/XTOD5G). Its PercentFrameLayout and PercentRelativeLayout provide an easy way to specify View dimensions and margins in terms of a percentage of the overall size.

That means if you want a view to take up exactly 50% of the available width and height, you’d use a layout such as
<android.support.percent.PercentRelativeLayout>
 <ImageView
  android:id=”@+id/centered_image”
  android:layout_gravity=”center”
  app:layout_widthPercent="50%"
  app:layout_heightPercent="50%" />
 <TextView
  android:id=”@+id/caption”
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:layout_below=”@id/centered_image”
  android:layout_gravity=”center_horizontal”
  app:layout_marginStartPercent=”25%”
  app:layout_marginEndPercent=”25%” />
</android.support.percent.PercentRelativeLayout>

Note that we use layout_marginStartPercent/EndPercent to set a margin based on a percentage of the total width.

Fun fact: if the percentage you set is more of a guideline than hard limit, you can also set layout_width/height=”wrap_content” in addition to layout_widthPercent/heightPercent and Views larger than the allowed percentage value will instead be resized using wrap_content rules.

So check out the Percent library today and use this efficient layout to #BuildBetterApps  ___

posted image

2015-08-20 16:32:42 (5 comments, 69 reshares, 223 +1s)Open 

A new update to Android Wear is rolling out that adds an interactive watch face API, and Wi-Fi for LG G Watch R! Check out the blog post by +Wayne Piekarski at http://goo.gl/trbUpu

#AndroidWear #AndroidDev

A new update to Android Wear is rolling out that adds an interactive watch face API, and Wi-Fi for LG G Watch R! Check out the blog post by +Wayne Piekarski at http://goo.gl/trbUpu

#AndroidWear #AndroidDev___

posted image

2015-08-19 18:24:03 (3 comments, 24 reshares, 127 +1s)Open 

INKSPACE, a rotation based 3D drawing experiment, by Zach Lieberman. The first of our weekly Android Experiments to share with you. Explore, or submit your own. https://goo.gl/4JnJbp

Source code available too: https://goo.gl/kt6bj5

#AndroidExperiments

INKSPACE, a rotation based 3D drawing experiment, by Zach Lieberman. The first of our weekly Android Experiments to share with you. Explore, or submit your own. https://goo.gl/4JnJbp

Source code available too: https://goo.gl/kt6bj5

#AndroidExperiments___

posted image

2015-08-18 17:14:37 (3 comments, 4 reshares, 18 +1s)Open 

100 days of Google Dev, Episode 79/100

In this video, Colt McAnlis, introduces the SparseArray family of containers. They look and act just like HashMaps, but don’t have the Autoboxing overhead.

#GoogleDev100

https://goo.gl/AD6HyJ

100 days of Google Dev, Episode 79/100

In this video, Colt McAnlis, introduces the SparseArray family of containers. They look and act just like HashMaps, but don’t have the Autoboxing overhead.

#GoogleDev100

https://goo.gl/AD6HyJ___

posted image

2015-08-18 17:13:57 (11 comments, 30 reshares, 149 +1s)Open 

100 days of Google Dev, Episode 79/100

In this video, Colt McAnlis, introduces the SparseArray family of containers. They look and act just like HashMaps, but don’t have the Autoboxing overhead.

#GoogleDev100

https://goo.gl/AD6HyJ

100 days of Google Dev, Episode 79/100

In this video, Colt McAnlis, introduces the SparseArray family of containers. They look and act just like HashMaps, but don’t have the Autoboxing overhead.

#GoogleDev100

https://goo.gl/AD6HyJ___

posted image

2015-08-17 17:24:48 (40 comments, 327 reshares, 933 +1s)Open 

M is For Android Marshmallow. Time to enjoy another tasty treat from the Android team. The official Android 6.0 SDK is live for app developers! #AndroidDev #AndroidMarshmallow

http://goo.gl/bhaZqd


M is For Android Marshmallow. Time to enjoy another tasty treat from the Android team. The official Android 6.0 SDK is live for app developers! #AndroidDev #AndroidMarshmallow

http://goo.gl/bhaZqd
___

posted image

2015-08-14 22:36:18 (2 comments, 10 reshares, 51 +1s)Open 

We've released Android Studio 1.4 Preview 2 to the canary channel, which fixes a critical bug when using input methods to enter text in the source editor (along with a few other crashes reported in Preview 1). 

http://tools.android.com/recent/androidstudio14preview2available

We've released Android Studio 1.4 Preview 2 to the canary channel, which fixes a critical bug when using input methods to enter text in the source editor (along with a few other crashes reported in Preview 1). 

http://tools.android.com/recent/androidstudio14preview2available___

posted image

2015-08-14 22:36:04 (3 comments, 17 reshares, 36 +1s)Open 

We've released Android Studio 1.4 Preview 2 to the canary channel, which fixes a critical bug when using input methods to enter text in the source editor (along with a few other crashes reported in Preview 1). 

http://tools.android.com/recent/androidstudio14preview2available

We've released Android Studio 1.4 Preview 2 to the canary channel, which fixes a critical bug when using input methods to enter text in the source editor (along with a few other crashes reported in Preview 1). 

http://tools.android.com/recent/androidstudio14preview2available___

posted image

2015-08-14 17:28:10 (18 comments, 104 reshares, 413 +1s)Open 

Learn from +Laurence Moroney how the Barcode Scanner API in #GooglePlayservices 7.8 can detect and parse barcodes.

http://goo.gl/gnqAq7

Learn from +Laurence Moroney how the Barcode Scanner API in #GooglePlayservices 7.8 can detect and parse barcodes.

http://goo.gl/gnqAq7___

posted image

2015-08-14 16:05:23 (48 comments, 28 reshares, 169 +1s)Open 

What's #Android  M gonna be??

What’s #Android M gonna be? We all have our guesses… g.co/go/NLwhatsM #natandlo___What's #Android  M gonna be??

posted image

2015-08-13 22:51:10 (30 comments, 148 reshares, 470 +1s)Open 

Learn from +Laurence Moroney about how the Face API in #GooglePlayservices 7.8 can detect faces and expressions.

http://goo.gl/0xM2q3

Learn from +Laurence Moroney about how the Face API in #GooglePlayservices 7.8 can detect faces and expressions.

http://goo.gl/0xM2q3___

posted image

2015-08-13 22:28:26 (7 comments, 23 reshares, 84 +1s)Open 

100 days of Google Dev, Episode 74/100

Google Play Services 7.8 is here, and it brings two new shining APIs to help you BUILD BETTER APPS!

#GoogleDev100

https://www.youtube.com/watch?v=nZjY_DPO1qs&list=PLOU2XLYxmsIJDPXCTt5TLDu67271PruEk&index=74

100 days of Google Dev, Episode 74/100

Google Play Services 7.8 is here, and it brings two new shining APIs to help you BUILD BETTER APPS!

#GoogleDev100

https://www.youtube.com/watch?v=nZjY_DPO1qs&list=PLOU2XLYxmsIJDPXCTt5TLDu67271PruEk&index=74___

posted image

2015-08-13 21:55:46 (0 comments, 43 reshares, 224 +1s)Open 

Android Studio 1.4 Preview 1 is now available in the canary channel, with a number of new features - a new theme editor, network and GPU monitors,  a vector icon wizard, new lint checks, new quickfixes, etc.

For more information, see the release announcement:
http://tools.android.com/recent/androidstudio14preview1incanarychannel

Android Studio 1.4 Preview 1 is now available in the canary channel, with a number of new features - a new theme editor, network and GPU monitors,  a vector icon wizard, new lint checks, new quickfixes, etc.

For more information, see the release announcement:
http://tools.android.com/recent/androidstudio14preview1incanarychannel___

posted image

2015-08-13 21:55:30 (7 comments, 141 reshares, 86 +1s)Open 

Android Studio 1.4 Preview 1 is now available in the canary channel, with a number of new features - a new theme editor, network and GPU monitors,  a vector icon wizard, new lint checks, new quickfixes, etc.

For more information, see the release announcement:
http://tools.android.com/recent/androidstudio14preview1incanarychannel

Android Studio 1.4 Preview 1 is now available in the canary channel, with a number of new features - a new theme editor, network and GPU monitors,  a vector icon wizard, new lint checks, new quickfixes, etc.

For more information, see the release announcement:
http://tools.android.com/recent/androidstudio14preview1incanarychannel___

2015-08-13 18:47:05 (9 comments, 47 reshares, 135 +1s)Open 

Use ShareCompat to easily build and read incoming share intents Pro-tip by +Ian Lake

The ‘share’ action is an iconic part of Android apps, providing a standard way of sending and receiving data from other apps - be it a simple text string, an image, any arbitrary content (say, a file from your app), or even multiple items. Constructing and reading these Intents requires either knowing the exact constants to use or using ShareCompat (http://goo.gl/WDegTC).

ShareCompat.IntentBuilder provides a fluent API for constructing ACTION_SEND (http://goo.gl/XTuFzv) and ACTION_SEND_MULTIPLE (http://goo.gl/QVzeg8) intents.

Constructing a simple share intent with text then becomes:
Intent shareIntent = ShareCompat.IntentBuilder.from(activity)
  .setType(“text/plain”)
  .setText(shareText)
  .getIntent();
// AvoidActivityNot... more »

Use ShareCompat to easily build and read incoming share intents Pro-tip by +Ian Lake

The ‘share’ action is an iconic part of Android apps, providing a standard way of sending and receiving data from other apps - be it a simple text string, an image, any arbitrary content (say, a file from your app), or even multiple items. Constructing and reading these Intents requires either knowing the exact constants to use or using ShareCompat (http://goo.gl/WDegTC).

ShareCompat.IntentBuilder provides a fluent API for constructing ACTION_SEND (http://goo.gl/XTuFzv) and ACTION_SEND_MULTIPLE (http://goo.gl/QVzeg8) intents.

Constructing a simple share intent with text then becomes:
Intent shareIntent = ShareCompat.IntentBuilder.from(activity)
  .setType(“text/plain”)
  .setText(shareText)
  .getIntent();
// Avoid ActivityNotFoundException
if (intent.resolveActivity(getPackageManager()) != null) {
  startActivity(shareIntent);
}

You’ll also find methods for setting the subject, email to/cc/bcc addresses, and an HTML version of your text.

Sharing an image is similar:
Intent shareIntent = ShareCompat.IntentBuilder.from(activity)
  .setType(“image/png”)
  .setStream(uriToImage)
  .getIntent();

Preferably using a URI generated from a FileProvider (https://goo.gl/wdBrnk) to ensure all apps can access the file even if they don’t have storage permissions.

On the receiving side, ShareCompat.IntentReader can be used to retrieve the information from intents:

ShareCompat.IntentReader intentReader = ShareCompat.IntentReader.from(activity);
if (intentReader.isShareIntent()) {
  String[] emailTo = intentReader.getEmailTo();
  String subject = intentReader.getSubject();
  String text = intentReader.getHtmlText();
  // Compose an email
}

While not guaranteed from a security or verification perspective, using ShareCompat also includes information on the sending application which the receiving application can take advantage of through IntentReader.getCallingPackage() or the convenience methods such as getCallingApplicationIcon() and getCallingApplicationLabel() allowing your app to attribute shared content if that data is present.

#BuildBetterApps  ___

posted image

2015-08-13 18:26:10 (4 comments, 7 reshares, 28 +1s)Open 

Learn how Korean Games developers Zabob Studio and Buff Studio have overcome challenges faced by start-ups to remain competitive, reach global users, and increase sales revenue through the help of Google Play services and the Developer Console.

We’re also pleased to share that Android Developer Stories such as these will now come with translated subtitles on YouTube in popular languages around the world. Find out how to turn on YouTube captions (https://support.google.com/youtube/answer/100078?hl=en-GB).

#GooglePlay #AndroidDevStory #PlayStore #AndroidGames #GooglePlayservices #Devconsole



https://goo.gl/2WaJAi

Learn how Korean Games developers Zabob Studio and Buff Studio have overcome challenges faced by start-ups to remain competitive, reach global users, and increase sales revenue through the help of Google Play services and the Developer Console.

We’re also pleased to share that Android Developer Stories such as these will now come with translated subtitles on YouTube in popular languages around the world. Find out how to turn on YouTube captions (https://support.google.com/youtube/answer/100078?hl=en-GB).

#GooglePlay #AndroidDevStory #PlayStore #AndroidGames #GooglePlayservices #Devconsole



https://goo.gl/2WaJAi___

posted image

2015-08-12 16:42:09 (12 comments, 151 reshares, 304 +1s)Open 

Introducing #AndroidExperiments - a celebration of creativity and code on Android. Explore, and submit your own. https://goo.gl/EhLZi4 www.AndroidExperiments.com

Introducing #AndroidExperiments - a celebration of creativity and code on Android. Explore, and submit your own. https://goo.gl/EhLZi4 www.AndroidExperiments.com___

posted image

2015-08-11 16:50:07 (6 comments, 14 reshares, 92 +1s)Open 

100 days of Google Dev, Episode 72/100

Autoboxing is a great language feature; until you realize how much of your performance is being lost to its convenience. Colt McAnlis pulls back the curtain to reveal a quintessential example of how a small thing can add up to a big problem: Simple autoboxing operations can easily tear through your App’s memory.

#GoogleDev100

https://goo.gl/HkDp99

100 days of Google Dev, Episode 72/100

Autoboxing is a great language feature; until you realize how much of your performance is being lost to its convenience. Colt McAnlis pulls back the curtain to reveal a quintessential example of how a small thing can add up to a big problem: Simple autoboxing operations can easily tear through your App’s memory.

#GoogleDev100

https://goo.gl/HkDp99___

posted image

2015-08-11 16:50:00 (0 comments, 2 reshares, 15 +1s)Open 

100 days of Google Dev, Episode 72/100

Autoboxing is a great language feature; until you realize how much of your performance is being lost to its convenience. Colt McAnlis pulls back the curtain to reveal a quintessential example of how a small thing can add up to a big problem: Simple autoboxing operations can easily tear through your App’s memory.

#GoogleDev100

https://goo.gl/HkDp99

100 days of Google Dev, Episode 72/100

Autoboxing is a great language feature; until you realize how much of your performance is being lost to its convenience. Colt McAnlis pulls back the curtain to reveal a quintessential example of how a small thing can add up to a big problem: Simple autoboxing operations can easily tear through your App’s memory.

#GoogleDev100

https://goo.gl/HkDp99___

posted image

2015-08-11 16:49:21 (4 comments, 14 reshares, 101 +1s)Open 

100 days of Google Dev, Episode 72/100

Autoboxing is a great language feature; until you realize how much of your performance is being lost to its convenience. Colt McAnlis pulls back the curtain to reveal a quintessential example of how a small thing can add up to a big problem: Simple autoboxing operations can easily tear through your App’s memory.

#GoogleDev100

https://goo.gl/HkDp99

100 days of Google Dev, Episode 72/100

Autoboxing is a great language feature; until you realize how much of your performance is being lost to its convenience. Colt McAnlis pulls back the curtain to reveal a quintessential example of how a small thing can add up to a big problem: Simple autoboxing operations can easily tear through your App’s memory.

#GoogleDev100

https://goo.gl/HkDp99___

posted image

2015-08-10 17:30:05 (6 comments, 16 reshares, 130 +1s)Open 

What's actually inside your phone?

Check out our Developer Advocate +Dan Galpin breaking apart a Nexus 5 in this #NatandLo episode.

What's actually inside your phone?

Check out our Developer Advocate +Dan Galpin breaking apart a Nexus 5 in this #NatandLo episode.___

posted image

2015-08-10 17:00:10 (4 comments, 38 reshares, 155 +1s)Open 

How to deal with permission denial on Android M
Pro-tip by +Wojtek Kaliciński

M Developer Preview 2 now includes a new method for Runtime Permissions: Activity.shouldShowRequestPermissionRationale().
It informs your app if it should display an explanation for the permission it is requesting before actually showing the permission dialog.

On a fresh app install, the method returns false, so you can ask for any required permissions straight away. If the user previously declined a permission, the method will return true. In that case you should consider displaying an explanation before invoking the permission dialog again. You should only do it if the permission is not self-explanatory.

Finally, if the app has no chance of having the permission granted, calls to shouldShowRequestPermissionRationale() will return false. This can happen for several... more »

How to deal with permission denial on Android M
Pro-tip by +Wojtek Kaliciński

M Developer Preview 2 now includes a new method for Runtime Permissions: Activity.shouldShowRequestPermissionRationale().
It informs your app if it should display an explanation for the permission it is requesting before actually showing the permission dialog.

On a fresh app install, the method returns false, so you can ask for any required permissions straight away. If the user previously declined a permission, the method will return true. In that case you should consider displaying an explanation before invoking the permission dialog again. You should only do it if the permission is not self-explanatory.

Finally, if the app has no chance of having the permission granted, calls to shouldShowRequestPermissionRationale() will return false. This can happen for several reasons, such as the user selecting ""do not show again"" in the permission dialog. A false result means it doesn’t make sense to show any additional prompts with explanations.

Please note that, due to a bug, Fragment.shouldShowRequestPermissionRationale() always returns false on the M Developer Preview 2. This will be fixed in a future release. You can use getActivity().shouldShowRequestPermissionRationale() from Fragments in the meantime.

Check out our sample showing Runtime Permissions in action: https://goo.gl/9xpwqN"___

posted image

2015-08-10 13:09:04 (8 comments, 48 reshares, 160 +1s)Open 

Introducing Vulkan - a new 3D rendering API

This week at SIGGRAPH 2015, we will present our efforts to bring a new 3D rendering API, Vulkan, to Android, with the goal of helping address some of the sources of CPU overhead and provide developers with more explicit control over rendering. Like OpenGL ES, Vulkan is an open standard maintained by Khronos.

Read more here: http://goo.gl/2lZKSn

Introducing Vulkan - a new 3D rendering API

This week at SIGGRAPH 2015, we will present our efforts to bring a new 3D rendering API, Vulkan, to Android, with the goal of helping address some of the sources of CPU overhead and provide developers with more explicit control over rendering. Like OpenGL ES, Vulkan is an open standard maintained by Khronos.

Read more here: http://goo.gl/2lZKSn___

posted image

2015-08-08 17:00:07 (5 comments, 17 reshares, 108 +1s)Open 

Gene Trinks introduces Android for Work, a way to use your Android phone or tablet for both work and personal activities and keep all the data separated and secure. #GoogleDev100

Gene Trinks introduces Android for Work, a way to use your Android phone or tablet for both work and personal activities and keep all the data separated and secure. #GoogleDev100___

posted image

2015-08-07 21:25:59 (9 comments, 30 reshares, 205 +1s)Open 

We've just released Android Studio 1.3.1 to the beta channel, fixing a handful of bugs reported against 1.3.0:

http://tools.android.com/recent/androidstudio131inthebetachannel

We've just released Android Studio 1.3.1 to the beta channel, fixing a handful of bugs reported against 1.3.0:

http://tools.android.com/recent/androidstudio131inthebetachannel___

2015-08-07 18:45:50 (4 comments, 12 reshares, 69 +1s)Open 

Getting notified when a full-data restore happens
Pro-tip by +Wojtek Kaliciński 

Developers don’t have to write a single line of code to make use of Auto Backup for Apps in Android M. There are situations however when you want to get notified about a restore operation happening and do some processing on the restored data.

Just as with key/value backups, you can implement your own BackupAgent [1] and override the onRestoreFinished() method to get a callback after a successful restore takes place. The trick is to add the new android:fullBackupOnly=”true” attribute to your AndroidManifest.xml in addition to android:backupAgent. This indicates that even though the application provides a BackupAgent, only full-data backup operations are to be performed on M+ devices.

This is a handy technique when you only need to exclude some keys from SharedPreferences (suchas a GC... more »

Getting notified when a full-data restore happens
Pro-tip by +Wojtek Kaliciński 

Developers don’t have to write a single line of code to make use of Auto Backup for Apps in Android M. There are situations however when you want to get notified about a restore operation happening and do some processing on the restored data.

Just as with key/value backups, you can implement your own BackupAgent [1] and override the onRestoreFinished() method to get a callback after a successful restore takes place. The trick is to add the new android:fullBackupOnly=”true” attribute to your AndroidManifest.xml in addition to android:backupAgent. This indicates that even though the application provides a BackupAgent, only full-data backup operations are to be performed on M+ devices.

This is a handy technique when you only need to exclude some keys from SharedPreferences (such as a GCM registration token). Instead of restructuring your app to partition SharedPreferences into multiple files, simply remove the keys at restore time when onRestoreFinished is called. Remember though, you shouldn't do that with sensitive user data (e.g. credentials), as they shouldn't be stored in the backup in the first place.

Please note that, due to a bug, onRestoreFinished() is not getting called on M Developer Preview 2. This will be fixed in a future release.

[1] http://goo.gl/eaaLRg___

2015-08-07 17:07:41 (14 comments, 33 reshares, 136 +1s)Open 

Don't forget to unregister your listeners - posted by +Boris Farber

Memory leaks, and Activity leaks in particular, are extremely dangerous. Activity holds its layout which in turn holds its views. This which results in a lot of objects in memory. Holding references to unused Activity may quickly drain your app memory, especially on older devices with fragmented heap.

This is the most common leak type I have seen:

public class LeakActivity extends Activity {
// ...
   @Override
   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      NastyManager.getInstance().addListener(this);
// ...

Why? Because the listener is never unregistered, and as long as the listener is alive, the Activity is alive as well

@Override
public void onDestroy() {
  super.onD... more »

Don't forget to unregister your listeners - posted by +Boris Farber

Memory leaks, and Activity leaks in particular, are extremely dangerous. Activity holds its layout which in turn holds its views. This which results in a lot of objects in memory. Holding references to unused Activity may quickly drain your app memory, especially on older devices with fragmented heap.

This is the most common leak type I have seen:

public class LeakActivity extends Activity {
// ...
   @Override
   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      NastyManager.getInstance().addListener(this);
// ...

Why? Because the listener is never unregistered, and as long as the listener is alive, the Activity is alive as well

@Override
public void onDestroy() {
   super.onDestroy();

   NastyManager.getInstance().removeListener(this);
}


What you can do is consider using event buses to decouple senders and listeners. Always unregister listeners and prefer static inner classes over non static classes.

The best way I have found memory leaks was by doing extensive code reviews. Doing code reviews also helps you understand your app structure, in addition consider using tools (MAT ...), and last but not least, add log statements on callbacks.

You can find more here www.api-solutions.com

#BuildBetterApps___

posted image

2015-08-06 18:09:03 (17 comments, 54 reshares, 243 +1s)Open 

Choose a snackbar over a toast to make your users happy
Pro-tip by +Joanna Smith

Toasts are great for giving the user a simple message. But they don’t really do anything other than exist: they just appear on the screen, linger for a bit, and then fade away. Generally, this is fine, but if you’re using a toast to communicate with your users often, it can get annoying.

Instead, consider a Snackbar (http://goo.gl/nwRGer). Snackbars also appear at the bottom of the screen and eventually fade away. But unlike a toast, a snackbar can be dismissed with a swipe. This is pretty great when you want to inform the user that an action has completed, because they can read the message and then swipe it away when they’re done - giving users like me a chance to control exactly how long it remains on screen.

But snackbars aren’t just dismissable toasts. Snackbarscan be ... more »

Choose a snackbar over a toast to make your users happy
Pro-tip by +Joanna Smith

Toasts are great for giving the user a simple message. But they don’t really do anything other than exist: they just appear on the screen, linger for a bit, and then fade away. Generally, this is fine, but if you’re using a toast to communicate with your users often, it can get annoying.

Instead, consider a Snackbar (http://goo.gl/nwRGer). Snackbars also appear at the bottom of the screen and eventually fade away. But unlike a toast, a snackbar can be dismissed with a swipe. This is pretty great when you want to inform the user that an action has completed, because they can read the message and then swipe it away when they’re done - giving users like me a chance to control exactly how long it remains on screen.

But snackbars aren’t just dismissable toasts. Snackbars can be enhanced to offer an action to the user. Consider a photo deletion, where you were using a toast to say “Photo deleted!” and causing me to wait for 15 seconds before getting those pixels back. With a snackbar confirmation instead, you can still use the bottom of the screen to say “Photo deleted!” but you can also make me happy by letting me swipe it away. You can even prevent the “NO!” moment when I tried to tap “Share” and hit the trash can icon instead. Because you can add an “UNDO” action to that snackbar, offering me a chance to immediately correct my mistake instead of growling at your app (or interrupting me with a confirmation dialog every time). Now look at what a happy user I am!

To add an action to a snackbar, simply call setAction() with your action string and a click event listener, and you’re all set.

It’s these minor adjustments that can fill your app with magic moments and anticipate your users’ needs. That is what makes the difference between an app users love and rate, and an app users uninstall and forget about. So check the design docs on snackbars and toasts to learn more about how and when to use each component. Then add the Android Design Support Library (http://goo.gl/Xf7Jp6) to your project to start using Snackbars. And, of course, don’t forget to #BuildBetterApps.___

posted image

2015-08-06 17:45:07 (0 comments, 12 reshares, 41 +1s)Open 

Watch App-etizers, Bite-Sized Insights for App Developers

This week +AdMob launched the first episodes of a new Video series called App-etizers -- bite-sized insights for app developers. For this first episode, watch Max (Google AdMob Specialist) share the secret to growing your mobile app.

To learn more about app growth, download our eBook, The No-Nonsense Guide to Growing Your Mobile App: https://goo.gl/MW6Vj8 Until next time, be sure to stay connected on all things AdMob by following their Twitter [https://goo.gl/6Lr0up] and Google+ page [https://goo.gl/cg9mXW].

Watch App-etizers, Bite-Sized Insights for App Developers

This week +AdMob launched the first episodes of a new Video series called App-etizers -- bite-sized insights for app developers. For this first episode, watch Max (Google AdMob Specialist) share the secret to growing your mobile app.

To learn more about app growth, download our eBook, The No-Nonsense Guide to Growing Your Mobile App: https://goo.gl/MW6Vj8 Until next time, be sure to stay connected on all things AdMob by following their Twitter [https://goo.gl/6Lr0up] and Google+ page [https://goo.gl/cg9mXW].___

posted image

2015-08-05 16:32:44 (3 comments, 3 reshares, 37 +1s)Open 

We have sourced insights from seasoned educators for Android developers in our new Tech Tips from Teachers series.

Teacher Insights for Impactful Education Apps

Classroom technology is revolutionizing the way that students learn and Android developers are playing a key role in this shift. But what, exactly, makes an app one that teachers and students want to use over and over? To answer this, we went sourced insights from seasoned educators and are bringing this knowledge straight to Android developers with our new video series, Tech Tips from Teachers.

Tech Tips from Teachers is a video series that brings classroom insights directly from educators to Android developers. See the full playlist of Tech Tips from Teachers here: https://goo.gl/h5dPEH___We have sourced insights from seasoned educators for Android developers in our new Tech Tips from Teachers series.

posted image

2015-08-05 16:32:44 (1 comments, 5 reshares, 44 +1s)Open 

We have sourced insights from seasoned educators for Android developers in our new Tech Tips from Teachers series.

Teacher Insights for Impactful Education Apps

Classroom technology is revolutionizing the way that students learn and Android developers are playing a key role in this shift. But what, exactly, makes an app one that teachers and students want to use over and over? To answer this, we went sourced insights from seasoned educators and are bringing this knowledge straight to Android developers with our new video series, Tech Tips from Teachers.

Tech Tips from Teachers is a video series that brings classroom insights directly from educators to Android developers. See the full playlist of Tech Tips from Teachers here: https://goo.gl/h5dPEH___We have sourced insights from seasoned educators for Android developers in our new Tech Tips from Teachers series.

posted image

2015-08-04 19:07:09 (2 comments, 3 reshares, 35 +1s)Open 

#perfmatters  

100 days of Google Dev, Episode 65/100

Android Performance Patterns Season 3 is here!!!

No one wants to be stuck inside all day, debugging the performance of their app; So Android Performance Patterns is here to get you back in the sun!

+Colt McAnlis has 12 great new episodes covering topics like Enums, Shared Memory, and Networking Performance.

It's like a summer pool party, but for performance... and also you don't have to deal with 1/2 lbs of leftover guacamole... (seriously.. what are we supposed to do with this stuff?)

https://goo.gl/qHoY0D

#GoogleDev100 / #PERFMATTERS___ #perfmatters  

posted image

2015-08-04 19:06:19 (5 comments, 29 reshares, 149 +1s)Open 

100 days of Google Dev, Episode 65/100

Android Performance Patterns Season 3 is here!!!

No one wants to be stuck inside all day, debugging the performance of their app; So Android Performance Patterns is here to get you back in the sun!

+Colt McAnlis has 12 great new episodes covering topics like Enums, Shared Memory, and Networking Performance.

It's like a summer pool party, but for performance... and also you don't have to deal with 1/2 lbs of leftover guacamole... (seriously.. what are we supposed to do with this stuff?)

https://goo.gl/qHoY0D

#GoogleDev100 / #PERFMATTERS

100 days of Google Dev, Episode 65/100

Android Performance Patterns Season 3 is here!!!

No one wants to be stuck inside all day, debugging the performance of their app; So Android Performance Patterns is here to get you back in the sun!

+Colt McAnlis has 12 great new episodes covering topics like Enums, Shared Memory, and Networking Performance.

It's like a summer pool party, but for performance... and also you don't have to deal with 1/2 lbs of leftover guacamole... (seriously.. what are we supposed to do with this stuff?)

https://goo.gl/qHoY0D

#GoogleDev100 / #PERFMATTERS___

posted image

2015-08-04 17:01:44 (25 comments, 239 reshares, 650 +1s)Open 

Android Testing Blueprint

Automated testing of Android applications should be part of any developer's workflow. However putting all the testing-related bits and pieces together can be challenging at times. To improve this experience we've created a brand-new template project called the Android Testing Blueprint (ATBP).

In a nutshell the ATBP is a Github repository which contains a template for end-to-end integration of Google’s testing frameworks and tools. This repository will make it easy to get you started with test integration in existing and new projects. It will also help you master more advanced configurations like Modules, Flavors and ProGuard.

ATBP is available now on the android-testing-templates repository [https://goo.gl/eSd8wC] on Github. After cloning the repository please make sure you look at the “Getting Started Guide” first toget a... more »

Android Testing Blueprint

Automated testing of Android applications should be part of any developer's workflow. However putting all the testing-related bits and pieces together can be challenging at times. To improve this experience we've created a brand-new template project called the Android Testing Blueprint (ATBP).

In a nutshell the ATBP is a Github repository which contains a template for end-to-end integration of Google’s testing frameworks and tools. This repository will make it easy to get you started with test integration in existing and new projects. It will also help you master more advanced configurations like Modules, Flavors and ProGuard.

ATBP is available now on the android-testing-templates repository [https://goo.gl/eSd8wC] on Github. After cloning the repository please make sure you look at the “Getting Started Guide” first to get a glimpse of the project structure and how to run tests for each module.

Please let us know what you think by dropping us a comment below.

Have fun and Happy Testing

+Stephan Linzner and +Jose Alcérreca on behalf of the ATSL team.

Android Testing Templates on Github - https://goo.gl/gCfqVh___

2015-07-31 22:08:05 (13 comments, 18 reshares, 72 +1s)Open 

Android Developers Backstage podcast episode 32: Leak Canary.

In this episode, +Chet Haase and +Tor Norbye chat with
Pierre Yves Ricau from Square about his Leak Canary tool,  presenting, dependency injection, and crash reporting.

http://androidbackstage.blogspot.com/2015/07/episode-32-leak-canary.html

Android Developers Backstage podcast episode 32: Leak Canary.

In this episode, +Chet Haase and +Tor Norbye chat with
Pierre Yves Ricau from Square about his Leak Canary tool,  presenting, dependency injection, and crash reporting.

http://androidbackstage.blogspot.com/2015/07/episode-32-leak-canary.html___

Buttons

A special service of CircleCount.com is the following button.

The button shows the number of followers you have directly in a small button. You can add this button to your website, like the +1-Button of Google or the Like-Button of Facebook.






You can add this button directly in your website. For more information about the CircleCount Buttons and the description how to add them to another page click here.

Android DevelopersCircloscope