Rabu, 21 Oktober 2015

New Courses -- Developing Watch Apps for Android Wear

Posted by Wayne Piekarski, Developer Advocate



We recently released a new Udacity course on Ubiquitous Computing with Android Wear, built as a collaboration between Udacity and Google. Android Wear watches allow users to get access to their information quickly, with just a glance, using an always-on display. By taking this course, you will learn everything you need to know to reach your users with notifications, custom watch faces, and even full apps.



Designed by Developer Advocates from Google, the course is a practical approach to getting started with Android Wear. It takes you through code snippets, and deep dives into sample code, showing you how easy it is to extend your existing Android apps to work on Android Wear. It also covers how to design user interfaces and great experiences for this unique wearable platform, which is important because the interface of the watch needs to be glanceable and unobtrusive for all day use.








This class is part of our larger series on Ubiquitous Computing across Google platforms, such as Android Wear, Android Auto, Android TV, and Google Cast. Designed as short, standalone courses, you can take any course on its own, or take them all! The Android Wear platform is a great opportunity to add functionality that will distinguish your app from others; and this Udacity course will get you up to speed quickly and easily.



Get started now and try it out at no cost, your users are waiting!



Selasa, 20 Oktober 2015

Daftar Laptop Toshiba Harga 10 Jutaan Berkualitas Terbaru 2016

Laptop Toshiba Harga 10 Jutaan - Daftar Laptop Toshiba Harga 10 Jutaan Berkualitas Terbaru 2016 - Laptop sudah menjadi kebutuhan kita saat ini, perkembangan zaman membuat semua kebutuhan juga ikut terganti dan semakin berkembang, baik itu kebutuhan pokok ataupun kebutuhan lainnya, Nah laptop sendiri sangat dibutuhkan hampir semua orang yang beraktifitas, apalagi yang berhubungan dengan dunia komputer, laptop merupakan suatu kewajiban.

Nah Setelah kemarin kita telah membahas laptop toshiba harga 9 jutaan dan laptop toshiba harga 8 jutaan, pada kesempatan kali ini saya akan membahas sedikit informasi mengenaik laptop toshiba harga 10 jutaan, Nah Spesifikasi laptop toshiba harga 10 jutaan ini sangat mumpuni dengan berbagai fiturnya yang banyak dan beragam.

Desain, model dan bentuk dari laptop toshiba harga 10 jutaan ini sangat menarik perhatian mata dari pandangan lain, warnanya yang dibuat soft membuat tatapan mata terhadap laptop menjadi sangat nyaman, tentu saja ini merupakan salah satu kelebihan yang sangat menarik, Jika anda tertarik dengan laptop toshiba harga 10 jutaan, anda tidak usah mencari harga kemana-mana, karena kami telah menyediakan beberapa daftar laptop tohiba harga 10 jutaan dengan lengkap, Berikut.

Daftar Laptop Toshiba Harga 10 Jutaan



Tipe Laptop
TOSHIBA Satellite P745-1017U
Rp 10.018.200
TOSHIBA Satellite U840W-1000
Rp 10.458.000
TOSHIBA Satellite U840-1001U
Rp 10.591.900

Baca Juga:
Oke mungkin hanya sekian informasi daftar laptop toshiba harga 10 jutaan yang dapat saya sampaikan semoga bermanfaat dan bisa menjadi referensi bagi anda, Nah jika anda ingin menyimpan daftar laptop 10 jutaan diatas anda dapat menekan tombol CTRL+D, atau jika anda punya pertanyaan silahkan kirim di kolom komentar dibawah yang telah tersedia, Terima kasih.

Daftar Laptop Toshiba Harga 9 Jutaan Terbaru 2016

Laptop Toshiba Harga 9 Jutaan - Daftar Laptop Toshiba Harga 9 Jutaan Terbaru 2016 - Laptop Toshiba saat ini sudah sangat familiar dan kosumennya sangat banyak di indonesia, lataran spesifikasi dan harga yang diberikan sangat beragam dan tergolong murah, walaupun kebanyakan laptop toshiba agak berat tapi jika dilihat dari spesifikasinya juga sangat mumpuni serta fiturnya yang sangat banyak.

Nah setelah kemarin kita telah membahas laptop toshiba harga 8 jutaan dan laptop toshiba harga 7 jutaan, pada kesempatan kali ini saya akan membahas sedikit seputar daftar laptop harga 9 jutaan yang sangat mumpuni baik dari segi processor, ram dan komponen hardware penting lainnya, Terutama media tempat penyimpanan yang besar berkisar antara 500GB-1TB yang dapat menampung semua file anda, jadi anda tidak perlu lagi repot-repot membeli harddisk eksternal untuk memenuhi kebutuhan anda.

Nah dari segi desain dan arsitektunya, sangat bagus apalagi strukturnya yang sangat kokoh dan kuat, tak jarang kita melihat laptop toshib yang tahan lama, Jika anda tertarik dengan daftar laptop harga 9 jutaan ini anda tidak usah khawatir karena kami telah menyediakan beberapa laptop toshiba harga 9 jutaan yang mungkin bisa menjadi referensi bagi anda yang membutuhkan, oke langsung saja kita simak laptop toshiba harga 9 jutaan berikut.

Daftar Laptop Toshiba Harga 9 Jutaan



Tipe Laptop
TOSHIBA Portege R830
Rp 9.150.000
TOSHIBA Satellite L840-1003
Rp 9.382.950
TOSHIBA Satellite L745-1105U
Rp 9.535.257
TOSHIBA Portege R835-P56X
Rp 9.800.000
TOSHIBA Satellite L735-1099U
Rp 9.962.847

Baca Juga :
Laptop Toshiba Harga 8 Jutaan
Laptop Toshiba Harga 7 Jutaan
Oke mungkin hanya sekian yang dapat kami sampaikan, semoga bermanfaat dan jangan lupa untuk membagikan informasi laptop toshiba harga 9 jutaan ini kepada teman teman anda,Nah Jika anda ingin menyimpan daftar laptop toshiba harga 9 jutaan diatas anda bisa menekan tombol CTRL+D, Sekian dan Terima kasih.

Android Developer Story: RogerVoice takes advantage of beta testing to launch its app on Android first

Posted by Lily Sheringham, Google Play team



RogerVoice is an app which enables people who are hearing impaired to make phone calls through voice recognition and text captions. Founded by Olivier Jeannel, who grew up with more than 80 percent hearing loss, the company successfully raised $35,000 through Kickstarter to get off the ground. Today the team publicly released the app on the Android platform first.



The team behind RogerVoice talk about how material design and beta testing helped them create an interface which is accessible and intuitive to navigate for users.







Learn more about how RogerVoice built its app with the help of Google Play features:



  • Material Design: How Material Design helps you create beautiful, engaging apps.

  • Beta testing: Learn more about using beta testing on Google Play for your app.

  • Developer Console: Make the most of the Google Play Developer Console to publish your apps and grow and engage your user base.

Senin, 19 Oktober 2015

Introducing the Tech Entrepreneur Nanodegree

Originally posted on Google Developers Blog


Posted by Shanea King-Roberson, Program Manager



As a developer, writing your app is important. But even more important is getting it into the hands of users. Ideally millions of users. To that end, you can now learn what it takes to design, validate, prototype, monetize, and market app ideas from the ground up and grow them into a scalable business with the new Tech Entrepreneur Nanodegree.



Designed by Google in partnership with Udacity, the Tech Entrepreneur Nanodegree, takes 4-7 months to complete. We have teamed up with most successful thought leaders in this space to provide students with a unique and battle-tested perspective. You’ll meet Geoffrey Moore, author of “Crossing the Chasm”, Pete Koomen, co-founder of Optimizely; Aaron Harris and Kevin Hale, Partners at Y-Combinator; Nir Eyal, author of the book “Hooked: How to build habit forming products” and co-founder of Product Hunt; Steve Chen, Co-Founder of YouTube, rapid prototyping company InVision and many more.



All of the content that make up this nanodegree is available online for free at udacity.com/google. In addition, Udacity provides paid services, including access to coaches, guidance on your project, help staying on track, career counseling, and a certificate when you complete the nanodegree.








The Tech Entrepreneur offering will consist of the following courses:




  • Product Design: Learn Google’s Design Sprint methodology, Ideation & Validation, UI/UX design and gathering the right metrics.

  • Prototyping: Experiment with rapid-low and high-fidelity prototyping on mobile and the web using online tools.

  • Monetization: Learn how to monetize your app and how to set up an effective payment funnel.

  • App Marketing: Understand your market, analyze competition, position your product, prepare for launch, acquire customers and learn growth hacks.

  • How to get your startup started: Find out whether you really need venture capital funding, evaluate build vs. buy, and learn simple ways to monitor and maintain your startup business effectively.




Pitch your ideas in front of Venture Capitalists



Upon completion, students will receive a joint certificate from Udacity and Google. The top graduates will also be invited to an exclusive pitch event, where they will have the opportunity to pitch their final product to venture capitalists at Google.

Daftar Laptop Toshiba Harga 8 Jutaan Terbaru 2016

Laptop Toshiba Harga 8 Jutaan - Daftar Laptop Toshiba Harga 8 Jutaan Terbaru 2016 - Laptop saat ini sudah menjadi kebutuhan yang sangat banyak digunakan dan hampir setiap orang menggunakan laptop untuk memenuhi kebutuhan sehari-hari, nah setelah kemarin kita telah membahas laptop toshiba harga 7 jutaan dan laptop toshiba harga 6 jutaan, pada kesempatan kali ini saya akan memberikan beberapa referensi laptop toshiba harga 8 jutaan.

Spesifikasi laptop toshiba harga 8 jutaan ini tentu saja sangat mumpuni dengan minimal processor intel core i5 ataupun i7 yang dapat menjalankan berbagai program sekaligus dengan sangat lancar, Selain itu Ram pada laptop toshiba harga 8 jutaan ini berkisar antara 2-8gb yang sangat memperngaruhi kinerja dan kecepatan pada laptop, Media tempat penyimpanan pada laptop toshiba harga 8 jutaan ini tergolong sangat besar berkisar antara 500GB-1TB yang dapat menyimapan berbagai macam file ataupun dokumen anda.

Desain dari laptop toshiba harga 8 jutaan ini memiliki bentuk dan model yang sangat menawan untuk dipandang dan tidak bosan ketika kita melihatnya, desainnya yang soft membuat kita semakin nyaman menggunakan laptop toshiba harga 8 jutaan ini, Nah jika anda tertarik dengan laptop toshiba harga 8 jutaan ini tenang saja karena kami telah menyediakan beberapa daftar harga laptop toshiba 8 jutaan, oke langsung saja kita simak, berikut.

Daftar Laptop Toshiba Harga 8 Jutaan

Laptop Toshiba Harga 8 Jutaan


Tipe Laptop
TOSHIBA Portege R830-2018UB
Rp 8.000.000
TOSHIBA Satellite L745-1196U
Rp 8.385.147
TOSHIBA Portege R830-2005UB
Rp 8.500.000
TOSHIBA Satellite L40-AS107
Rp 8.600.000
TOSHIBA Satellite L645
Rp 8.743.500


Baca Juga :
Laptop Toshiba Harga 7 Jutaan
Laptop Toshiba Harga 6 Jutaan
Sebagai catatan perlu anda ketahui juga bahwa laptop toshiba harga 8 jutaan diatas dapat sewaktu-waktu berubah sesuai dengank kondisi dan daerah tempat tinggal anda, Terima kasih telah berkunjung di Hargalaptop99 dan membaca artikel Daftar laptop toshiba harga 8 jutaan terbaru.

Sabtu, 17 Oktober 2015

Daftar Laptop Toshiba Harga 7 Jutaan Terbaru 2016

Laptop Toshiba Harga 7 Jutaan - Daftar Laptop Toshiba Harga 7 Jutaan Terbaru 2016 - Nah setelah kemarin kita telah membahas lengkap laptop toshiba dengan harga 6 jutaan dan laptop toshiba harga 5 jutaan, Pada kesempatan kali ini saya akan membahas laptop toshiba dengan harga 7 jutaan baik itu dari spesifikasi model laptop dan bentuk laptop toshiba ini.

Dilihat dari spesifikasi Laptop toshiba dengan harga 7 jutaan terbilang memiliki spesifikasi yang sangat mumpuni dengan Minimal Processor Intel Core i3, i5 atau bahkan Intel Core i7 yang tentu saja dengan processor yang canggih dapat memberikan perintah komputer dengan tepat dan prosesnya juga jadi lebih cepat, sehingga menjalankan suatu program atau game adalah hal yang sangat mudah dilakukan, Selain itu Ram pada laptop toshiba harga 7 jutaan ini berkisar antara kurang lebih 4-8GB yang sangat memperngaruhi kecepatan suatu laptop anda.

Nah dari desain sendiri laptop toshiba harga 7 jutaan ini terlihat lebih stylish dan sangat menawan untuk dipandang, selain itu bahan yang kuat dan kokoh telah ditanamkan pada laptop toshiba harga 7 jutaan ini, Nah jika anda tertarik dengan laptop toshiba ini tenang saja karena kami telah menyediakan beberapa daftar laptop harga 7 jutaan yang mungkin bisa menjadi refensi anda, Oke langsung saja kita simak berikut.

Daftar Laptop Toshiba Harga 7 Jutaan



Tipe Laptop
TOSHIBA Satellite L635-1066XW
Rp 7.900.000
TOSHIBA Satellite L840-1045
Rp 7.755.000
TOSHIBA Satellite L840-1015
Rp 7.669.000
TOSHIBA Satellite L840-1006XW
Rp 7.497.600
TOSHIBA Satellite L745-1114XW
Rp 7.334.575
TOSHIBA Satellite L735-1007XB
Rp 7.334.575
TOSHIBA Satellite M840-1047
Rp 7.332.360
TOSHIBA Satellite L40-AS117
Rp 7.125.000

Baca Juga : 
Laptop Toshiba Harga 6 Jutaan
Laptop Toshiba Harga 5 Jutaan
Oke cukup sekian informasi yang dapat kami sampaikan kurang dan lebihnya mohon dimaafkan, semoga bermanfaat buat anda dan terima kasih telah berkunjung di Hargalaptop99.blogspot.com pada artikel daftar laptop harga 7 jutaan terbaru.

Daftar Laptop Toshiba Harga 6 Jutaan Terlengkap dan Terbaru 2016

Laptop Toshiba Harga 6 Jutaan - Daftar Laptop Toshiba Harga 6 Jutaan Terlengkap dan Terbaru 2016 - Nah setelah kemarin kita telah membahas laptop toshiba dengan harga 5 jutaan dan laptop toshiba dengan harga 4 jutaan, pada kesempatan kali ini HargaLaptop99.blogspot.com akan membahas laptop toshiba dengan harga 6 jutaan baik itu dari spesifikasi model dan bentuk laptop toshiba tersebut.

Spesifikasi laptop toshiba harga 6 jutaan ini tergolong memiliki spesifikasi yang mumpuni dengan min processor core i3 anda sudah dapat menjalankan berbagai program aplikasi dengan lancar tanpa ada hambatan sedikit pun, selain itu Ram pada laptop toshiba harga 6 jutaan ini berkisar antara 2-8GB yang sangat berpengaruh terhadap kecepatan laptop toshiba ini, Nah jika anda tipe orang yang suka menggunakan dan menyimpan berbagai program atau game dengan berukuran besar mungkin laptop ini sangat cocok buat anda, pasalnya pada laptop toshiba harga 6 jutaan ini disediakan media tempat penyimpanan data yang cukup besar antara 500GB - 1TB.

Nah jika anda tertarik dengan harga laptop toshiba diatas anda tidak perlu khawatir karena kami telah menyediakan beberapa daftar laptop toshiba dengan harga 6 jutaan yang mungkin bisa menjadi referensi bagi anda.

Daftar Laptop Toshiba Harga 6 Jutaan



Tipe Laptop
Toshiba Satellite U945-S4110
Rp 6,000,000
Toshiba Satellite NB10T-A100S
Rp 6,060,000
Toshiba Satellite C40-A135X
Rp 6,100,000
Toshiba Satellite L510-P4019
Rp 6,100,000
Toshiba Satellite L50
Rp 6,150,000

Baca Juga :
Laptop Toshiba Harga 5 Jutaan
Laptop Toshiba Harga 4 Jutaan

Oke cukup sekian infromasi laptop toshiba harga 6 jutaan yang dapat saya sampaikan, semoga bermanfaat dan mohon maaf jika ada kesalahan dari kalimat atau kata yang tercetak, dan terima kasih telah berkunjung dan membaca artikel Daftar Laptop Toshiba Harga 6 Jutaan.

Jumat, 16 Oktober 2015

Game Performance: Vertex Array Objects

Posted by Shanee Nishry



Previously, we showed how you can use vertex layout qualifiers to increase the performance and determinism of your OpenGL application. In this post, we’ll show another useful technique that will help you produce increased performance and cleaner code when drawing objects.



Binding the vertex buffer



Before drawing onto the screen, you need to bind your vertex data (e.g. positions, normals, UVs) to the corresponding vertex shader attributes. To do that, you need to bind the vertex buffer, enable the generic vertex attribute, and use glVertexAttribPointer to describe the layout of the buffer.



Therefore, a draw call might look like this:



const GLuint ATTRIBUTE_LOCATION_POSITIONS   = 0;
const GLuint ATTRIBUTE_LOCATION_TEXTUREUV = 1;
const GLuint ATTRIBUTE_LOCATION_NORMALS = 2;

// Bind shader program, uniforms and textures
// ...

// Bind the vertex buffer
glBindBuffer( GL_ARRAY_BUFFER, vertex_buffer_object );

// Set the vertex attributes
glEnableVertexAttribArray( ATTRIBUTE_LOCATION_POSITIONS );
glVertexAttribPointer( ATTRIBUTE_LOCATION_POSITIONS, 3, GL_FLOAT, GL_FALSE, 32, 0 );

glEnableVertexAttribArray( ATTRIBUTE_LOCATION_TEXTUREUV );
glVertexAttribPointer( ATTRIBUTE_LOCATION_TEXTUREUV, 2, GL_FLOAT, GL_FALSE, 32, 12 );

glEnableVertexAttribArray( ATTRIBUTE_LOCATION_NORMALS );
glVertexAttribPointer( ATTRIBUTE_LOCATION_NORMALS, 3, GL_FLOAT, GL_FALSE, 32, 20 );

// Draw elements
glDrawElements( GL_TRIANGLES, count, GL_UNSIGNED_SHORT, 0 );


There are several reasons why we might not like this code very much. The first is that we need to cache the layout of the vertex buffer to enable and disable the right attributes before drawing. This means we are either hard-coding or saving some amount of data for a nearly meaningless task.



The second reason is performance. Having to tell the drivers which attributes to individually activate is suboptimal. It would be best if we could precompile this information and deliver it all at once.



Lastly, and purely for aesthetics, our draw call is cluttered by long boilerplate code. It would be nice to get rid of it.








Did you know there is another reason why someone might frown on this code? The code is making use of layout qualifiers which is great! But, since it’s already using OpenGL ES 3+, it would be even better if the code also used Geometry Instancing. By batching many instances of a mesh into a single draw call, you can really boost performance.




So how can we improve on the above code?



Vertex Array Objects (VAOs)



If you are using OpenGL ES 3 or higher, you should use Vertex Array Objects (or "VAOs") to store your vertex attribute state.



Using a VAO allows the drivers to compile the vertex description format for repeated use. In addition, this frees you from having to cache the vertex format needed for glVertexAttribPointer, and it also results in less per-draw boilerplate code.



Creating Vertex Array Objects



The first thing you need to do is create your VAO. This is created once per mesh, alongside the vertex buffer object and is done like this:



const GLuint ATTRIBUTE_LOCATION_POSITIONS   = 0;
const GLuint ATTRIBUTE_LOCATION_TEXTUREUV = 1;
const GLuint ATTRIBUTE_LOCATION_NORMALS = 2;

// Bind the vertex buffer object
glBindBuffer( GL_ARRAY_BUFFER, vertex_buffer_object );

// Create a VAO
GLuint vao;
glGenVertexArrays( 1, &vao );
glBindVertexArray( vao );

// Set the vertex attributes as usual
glEnableVertexAttribArray( ATTRIBUTE_LOCATION_POSITIONS );
glVertexAttribPointer( ATTRIBUTE_LOCATION_POSITIONS, 3, GL_FLOAT, GL_FALSE, 32, 0 );

glEnableVertexAttribArray( ATTRIBUTE_LOCATION_TEXTUREUV );
glVertexAttribPointer( ATTRIBUTE_LOCATION_TEXTUREUV, 2, GL_FLOAT, GL_FALSE, 32, 12 );

glEnableVertexAttribArray( ATTRIBUTE_LOCATION_NORMALS );
glVertexAttribPointer( ATTRIBUTE_LOCATION_NORMALS, 3, GL_FLOAT, GL_FALSE, 32, 20 );

// Unbind the VAO to avoid accidentally overwriting the state
// Skip this if you are confident your code will not do so
glBindVertexArray( 0 );


You have probably noticed that this is very similar to our previous code section except that we now have the addition of:



// Create a vertex array object
GLuint vao;
glGenVertexArrays( 1, &vao );
glBindVertexArray( vao );


These lines create and bind the VAO. All glEnableVertexAttribArray and glVertexAttribPointer calls after that are recorded in the currently bound VAO, and that greatly simplifies our per-draw procedure as all you need to do is use the newly created VAO.



Using the Vertex Array Object



The next time you want to draw using this mesh all you need to do is bind the VAO using glBindVertexArray.



// Bind shader program, uniforms and textures
// ...

// Bind Vertex Array Object
glBindVertexArray( vao );

// Draw elements
glDrawElements( GL_TRIANGLES, count, GL_UNSIGNED_SHORT, 0 );


You no longer need to go through all the vertex attributes. This makes your code cleaner, makes per-frame calls shorter and more efficient, and allows the drivers to optimize the binding stage to increase performance.








Did you notice we are no longer calling glBindBuffer? This is because calling glVertexAttribPointer while recording the VAO references the currently bound buffer even though the VAO does not record glBindBuffer calls on itself.



Want to learn more how to improve your game performance? Check out our Game Performance article series. If you are building on Android you might also be interested in the Android Performance Patterns.



Kamis, 15 Oktober 2015

Android Support Library 23.1

Posted by Ian Lake, Developer Advocate



The Android Support Library is a collection of libraries available on a wide array of API levels that help you focus on the unique parts of your app, providing pre-built components, new functionality, and compatibility shims.



With the latest release of the Android Support Library (23.1), you will see improvements across the Support V4, Media Router, RecyclerView, AppCompat, Design, Percent, Custom Tabs, Leanback, and Palette libraries. Let’s take a closer look.



Support V4



The Support V4 library focuses on making supporting a wide variety of API levels straightforward with compatibility shims and backporting specific functionality.



NestedScrollView is a ScrollView that supports nested scrolling back to API 4. You’ll now be able to set a OnScrollChangeListener to receive callbacks when the scroll X or Y positions change.



There are a lot of pieces that make up a fully functioning media playback app, with much of it centered around MediaSessionCompat. A media button receiver, a key part to handling playback controls from hardware or bluetooth controls, is now formalized in the new MediaButtonReceiver class. This class makes it possible to forward received playback controls to a Service which is managing your MediaSessionCompat, reusing the Callback methods already required for API 21+, centralizing support on all API levels and all media control events in one place. A simplified constructor for MediaSessionCompat is also available, automatically finding a media button receiver in your manifest for use with MediaSessionCompat.



Media Router



The Media Router Support Library is the key component for connecting and sending your media playback to remote devices, such as video and audio devices with Google Cast support. It also provides the mechanism, via MediaRouteProvider, to enable any application to create and manage a remote media playback device connection.



In this release, MediaRouteChooserDialog (the dialog that controls selecting a valid remote device) and MediaRouteControllerDialog (the dialog to control ongoing remote playback) have both received a brand new design and additional functionality as well. You’ll find the chooser dialog sorts devices by frequency of use and includes a device type icon for easy identification of different devices while the controller dialog now shows current playback information (including album art).





To feel like a natural part of your app, the content color for both dialogs is now based on the colorPrimary of your alert dialog theme:



<!-- Your app theme set on your Activity -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="colorPrimary">@color/primary</item>
<item name="colorPrimaryDark">@color/primaryDark</item>
<item name="alertDialogTheme">@style/AppTheme.Dialog</item>
</style>


<!-- Theme for the dialog itself -->
<style name="AppTheme.Dialog" parent="Theme.AppCompat.Light.Dialog.Alert">
<item name="colorPrimary">@color/primary</item>
<item name="colorPrimaryDark">@color/primaryDark</item>
</style>



RecyclerView



RecyclerView is an extremely powerful and flexible way to show a list, grid, or any view of a large set of data. One advantage over ListView or GridView is the built in support for animations as items are added, removed, or repositioned.



This release significantly changes the animation system for the better. By using the new ItemAnimator’s canReuseUpdatedViewHolder() method, you’ll be able to choose to reuse the existing ViewHolder, enabling item content animation support. The new ItemHolderInfo and associated APIs give the ItemAnimator the flexibility to collect any data it wants at the correct point in the layout lifecycle, passing that information into the animate callbacks.



Note that this new API is not backward compatible. If you previously implemented an ItemAnimator, you can instead extend SimpleItemAnimator, which provides the old API by wrapping the new API. You’ll also notice that some methods have been entirely removed from ItemAnimator. For example, if you were calling recyclerView.getItemAnimator().setSupportsChangeAnimations(false), this code won’t compile anymore. You can replace it with:



ItemAnimator animator = recyclerView.getItemAnimator();
if (animator instanceof SimpleItemAnimator) {
((SimpleItemAnimator) animator).setSupportsChangeAnimations(false);
}


AppCompat



One component of the AppCompat Support Library has been in providing a consistent set of widgets across all API levels, including the ability to tint those widgets to match your branding and accent colors.



This release adds tint aware versions of SeekBar (for tinting the thumb) as well as ImageButton and ImageView (providing backgroundTint support) which will automatically be used when you use the platform versions in your layouts. You’ll also find that SwitchCompat has been updated to match the styling found in Android 6.0 Marshmallow.



Design



The Design Support Library includes a number of components to help implement the latest in the Google design specifications.



TextInputLayout expands its existing functionality of floating hint text and error indicators with new support for character counting.



AppBarLayout supports a number of scroll flags which affect how children views react to scrolling (e.g. scrolling off the screen). New to this release is SCROLL_FLAG_SNAP, ensuring that when scrolling ends, the view is not left partially visible. Instead, it will be scrolled to its nearest edge, making fully visible or scrolled completely off the screen. You’ll also find that AppBarLayout now allows users to start scrolling from within the AppBarLayout rather than only from within your scrollable view - this behavior can be controlled by adding a DragCallback.



NavigationView provides a convenient way to build a navigation drawer, including the ability to creating menu items using a menu XML file. We’ve expanded the functionality possible with the ability to set custom views for items via app:actionLayout or using MenuItemCompat.setActionView().



Percent



The Percent Support Library provides percentage based dimensions and margins and, new to this release, the ability to set a custom aspect ratio via app:aspectRatio. By setting only a single width or height and using aspectRatio, the PercentFrameLayout or PercentRelativeLayout will automatically adjust the other dimension so that the layout uses a set aspect ratio.



Custom Tabs



The Custom Tabs Support Library allows your app to utilize the full features of compatible browsers including using pre-existing cookies while still maintaining a fast load time (via prefetching) and a custom look and actions.



In this release, we’re adding a few additional customizations such as hiding the url bar when the page is scrolled down with the new enableUrlBarHiding() method. You’ll also be able to update the action button in an already launched custom tab via your CustomTabsSession with setActionButton() - perfect for providing a visual indication of a state change.



Navigation events via CustomTabsCallback#onNavigationEvent() have also been expanded to include the new TAB_SHOWN and TAB_HIDDEN events, giving your app more information on how the user interacts with your web content.



Leanback



The Leanback library makes it easy to build user interfaces on TV devices. This release adds GuidedStepSupportFragment for a support version of GuidedStepFragment as well as improving animations and transitions and allowing GuidedStepFragment to be placed on top of existing content.



You’ll also be able to annotate different types of search completions in SearchFragment and staggered slide transition support for VerticalGridFragment.



Palette



Palette, used to extract colors from images, now supports extracting from a specific region of a Bitmap with the new setRegion() method.



SDK available now!



There’s no better time to get started with the Android Support Library. You can get started developing today by updating the Android Support Repository from the Android SDK Manager.



For an in depth look at every API change in this release, check out the full API diff.



To learn more about the Android Support Library and the APIs available to you through it, visit the Support Library section on the Android Developer site.