LightBlog

jeudi 4 août 2016

Fix the Nexus Launcher force close bug with this wallpaper app

Nexus Launcher wallpaper picker

If you were keen on the Nexus Launcher but not too excited about the force close issue when trying to launch the wallpaper picker, you're in luck. The wallpaper picker APK has appeared that adds the wallpaper app to your device and instantly fixes the force close issue. You don't have to flash it via custom recovery or anything either, just install as you would any other app and you're golden.

imageSee also: Download these beautiful Nexus 2016 wallpapers13

Once installed, when you long press the home screen with the Nexus Launcher installed, you'll be able to tap Wallpapers and bring up the standard Nexus Launcher wallpaper menu. You'll have access to your local photo albums and wallpaper files and get a few very nicely curated wallpaper collections. Best of all though is the option to turn on Daily Wallpapers in those collections for a new wallpaper every single day.

Nexus Launcher wallpaper picker APK fix

Of course, we can't vouch for the security of this app, so install it at your own risk, but I expect it was simply pulled from the previous ZIP file. I can tell you that it works as expected though. Check out our Nexus launcher hands-on video to get a feel for it in action.

To install it, you just need to hit your Security settings and enable Unknown sources, hit the button below to download the APK and install it from the notifications shade. It will work instantly. (There's no fix for accessing Google Now with a swipe on the Nexus Launcher unless you flash the original zip file though).

Because this is also a standalone app, you can install it and use it normally even without the Nexus Launcher installed. It won't show up in your app drawer, but you'll be able to access it from the standard wallpaper picker on your device. Just swipe past the normal wallpapers until you see a circular icon with the Google 'G' above two mountain peaks.

GET WALLPAPER PICKER APK

Are you enjoying the new Nexus Launcher? What do you think of the new daily wallpapers?



from Android Authority http://ift.tt/2aULk4u
via IFTTT

1Password introduces $3 per month individual subscriptions

1password splash

Popular password management app 1Password has released a new individual subscription service for its app suite today. The new plans costs $2.99 per month for full access across multiple platforms. This is cheaper than the $5 per month family plan introduced earlier in the year and brings 1Password at least a little closer to matching the price point of LastPast Premium, which costs $12 per year.

While almost $36 per year might sounds like a lot for managing passwords, 1Password has introduced a few handy extra features this year to justify the price. The app's fingerprint scanner integration has been improved, there's a new multi-factor security system, and customers can store up to 1GB of documents online securely. Subscribers also receive all future app updates and upgrades, unlike those who opt for the one-off license option.

As a bonus, new signups and existing customers who switch plans before September 21st 2016 will receive 6 months free. You don't even need to put a credit card on file, so the company is basically offering a free trial of the software. If you're interested, hit up this link so sign up.

Get it now from Google Play


from Android Authority http://ift.tt/2aKKvYQ
via IFTTT

Building multiple flavors of an Android app

Multiple flavors app

Before we discuss how to build multiple flavors of an app, it's important to understand why and when you might need multiple flavors. As an app developer, you can run into the "not so unique" situation where you (or your team) would like to release a given app using a new brand name, logo and/or theme, along with some minor feature differences. Assuming you intend to maintain the different apps, and release them on Google's Play Store, this can turn into a major maintenance headache very quickly.

The naive way to do this might involve having a base/core project and separate projects for each version, which is far from ideal, and will lead to errors and projects not having the complete new changes.

Another way to achieve this can involve building the core of the project as a library, and then creating different projects that reference the library core. While this will theoretically work, it would be very difficult to achieve, since what you will be doing is actually trying to build an app as a library.

Thankfully, there is an easier and completely painless way to build and maintain multiple versions of an app as described above, and it is built into Android Studio and Gradle by default. This is called "flavors." Using multiple flavors, a developer/team can easily build different versions of a single app, but easily customized to keep similarities and allow divergence as and when necessary. In this tutorial, we are going to design and build a single application with multiple flavors, that can each be pushed to the Play Store and deployed on the same device simultaneously.

In addition to flavors, there is another very important concept regarding building android apps, called "build types". A build type applies settings relating to the build and packaging of the app, such as if it's debuggable and the signing keys. The default build types are debug and release. In contrast, a flavor can specify features, device and API requirements (such as custom code, layout and drawables), and minimum and target API levels among others. The combination of build types and flavors forms a "Build Variant". There is a build variant for every defined flavor/build type combination. Hence, if you have two flavors, called blueberry and raspberry, and two build types called debug and release, the Build Variants will be:

  1. blueberryDebug
  2. blueberryRelease
  3. raspberryDebug
  4. raspberryRelease

We are going to create a simple app with multiple flavors, and discuss the different options we have for customization. We will also show how to build a Build Variant, resulting in the final apk for upload to the Play Store. For a more in-depth and technical description of Build Variants, check out the Android Studio Build Variant user guide

Initialize Project

While we used Android Studio 2.1.2 with gradle version 2.10 for this tutorial, the methods described should hold true for previous (and future) versions.

You do not need any special setup when creating your app project. Create as normal. For this tutorial, we create a new Android Studio project, called MultipleFlavorSample. On successful creation, you should have a screen similar to that below.

Adding a new Flavor

Click on Build – Edit Flavors

Edit Flavors

You can edit the flavor name, applicationID, and add a new signing config, among others. Click OK when you are done. A gradle sync should occur, and when it's finished, you have successfully setup a new flavor for your app. Take special note of the applicationID. The applicationID is the app identifier on Google's Play Store, and on android devices. No two apps can have the same applicationID on a single device, so, simply using different applicationIDs on your different flavors ensures that all flavors can be installed simultaneously on the same device. For more information about applicationID and package name, check out the Android Studio technical documentation.

On first look, it appears that nothing has changed. However, click on the build variants tab, or click on Build – Select Build Variant.

Build Variants

At this point, you have successfully setup your project to use a flavor. If you do not define a flavor, you can build a default flavorless app, however, when you define a single flavor, you will then be unable to build a flavorless app. You must then define new flavors for each configuration you require. You can define a flavor with no changes from the default. For our sample app, we have defined three flavors, blueberry, chocolate and raspberry. To see the definitions of each flavor, open your app build.gradle file.

      productFlavors {          blueberry {              minSdkVersion 21              applicationId 'com.sample.foo.blueberry'              targetSdkVersion 23              versionCode 1              versionName '1.0'          }          chocolate {              minSdkVersion 19              applicationId 'com.sample.foo.chocolate'              targetSdkVersion 24              versionCode 1              versionName '1.0'          }          raspberry {              minSdkVersion 19              applicationId 'com.sample.foo.multipleflavorsample.raspberry'              targetSdkVersion 23              versionCode 1              versionName '1.0'          }      }  

We have changed the applicationID, so all three flavors can exist on the same device at the same time, as well as modified the minimum and target SDK versions.

Now create your activity as normal. You can add flavors after developing your app, or before beginning development. It doesn't really matter either way.

Note: If you check your folder structure, you can see that there is a main folder under src. This is (as its name implies) the folder that contains your main or core project files. Flavor specific files will go into each flavor specific folder. Each flavor folder structure should be identical to the main folder structure. An interesting consequence of this , is that each flavor can define it's own AndroidManifest.xml file.

Separate flavor resources

For our demo app, we have created an activity_main.xml layout file. You can override this default (main) layout file, for a given flavor, by defining a layout file with the same name for the flavor. Simply specify the source set as shown below.

New Fflavor layout

You can also specify the target flavor when creating icons.

New flavor icon

If you have created flavor specific resources, pay attention to the folder structure within the src directory. The main directory structure is as follows:

  ->main  ->java  ->/*Java class files*/  ->res  ->layout  ->mipmap(s)  ->values  

Each flavor directory structure mimics exactly the main directory structure, with the base name (main) changed to the flavor name. Hence, blueberry sub folders will be:

  ->blueberry  ->java  ->/*blueberry specific Java class files, if any*/  ->res  ->layout  ->mipmap(s)  ->values  

So, if you already have your drawables created elsewhere, you can simply create the appropriate folders for the flavor, and paste in there.

Separating values

Unlike layouts and drawables discussed above, value files are not replaced outright by similarly named flavor specific value files. Rather they are merged, and the replacement is done per value. If your main strings.xml defines the following

  <resources>      <string name="app_name">MultipleFlavorSample</string>      <string name="flavor_name">Default Flavor</string>  </resources>  

and blueberry strings.xml defines the following

  <resources>      <string name="flavor_name">Blueberry Flavor</string>      <string name="blueberry_unique">Just for blueberry flavor</string>  </resources>  

The gradle build system will merge both strings.xml when building a blueberry variant, and replace the main flavor_name with the blueberry variant, as well as add the blueberry_unique string.

An easy tip, to help with project and flavor maintenance, is to create a new values file, for resources that are unique to each flavor, such as flavor_strings.xml. All strings that are similar across flavors will remain in strings.xml, while strings that could be unique go to flavor_strings.xml. This way, when you create a new flavor, you simply copy flavor_strings from an existing flavor and can immediately see all the strings and values that need to be customized.

To build and run (or debug) any of the multiple flavors, Click the Build Variants tab, or select Build – Select Build Variant, and select the desired variant.

Flavor specific code files

While building multiple flavors, you might come across a situation where each flavor will require its own specific code file. While, ideally, this should be very rare, it could happen. Unlike layouts, you cannot simply define a flavor specific class with the same name as the main class. This is because, during compile, all code files are combined together. If you want to have flavor specific files, you will have to omit the file from main, and add it to each flavors source directory directly.

To ensure that all flavor code files maintain the same method contracts and methods, it is a good idea to define either an interface or abstract class in main, and ensure all flavor specific classes inherit from that.

Directing code flow per flavor

There is a special class created automatically for each Build Variant by gradle. This class is called BuildConfig, and it contains information and data relating to the Build Variant. The BuildConfig for the blueberryDebug variant for example is shown below.

  /**   * Automatically generated file. DO NOT MODIFY   */  package com.sample.foo.multipleflavorsample;    public final class BuildConfig {    public static final boolean DEBUG = Boolean.parseBoolean("true");    public static final String APPLICATION_ID = "com.sample.foo.blueberry";    public static final String BUILD_TYPE = "debug";    public static final String FLAVOR = "blueberry";    public static final int VERSION_CODE = 1;    public static final String VERSION_NAME = "1.0";    // Fields from product flavor: blueberry    public static final int FOO = 42;  }  

To direct code flow depending on a flavor, you can branch using the BuildConfig.Flavor value

  if(BuildConfig.Flavor.equals("blueberry")) {  }  else if(BuildConfig.Flavor.equals("raspberry")) {  }  

You can also define new BuildConfig variables in your app build.gradle file.

  android {      buildTypes {          blueberry {              buildConfigField "int", "FOO", "42"              buildConfigField "String", "FOO_STRING", "\"foo\""              buildConfigField "boolean", "LOG", "true"          }            raspberry {              buildConfigField "int", "FOO", "52"              buildConfigField "String", "FOO_STRING", "\"bar\""              buildConfigField "boolean", "LOG", "false"          }      }  }  

You can also add resource values directly to your build.gradle file, if you feel that's more convenient. If you have only a few strings that change based on the flavor, you might prefer this method to reduce the number of files to worry about. As with all resources, any resource defined here is also available to use in your xml files.

  android {    buildTypes {      blueberry {        resValue "string", "app_name", "My App Name Debug"      }      raspberry {        resValue "string", "app_name", "My App Name"      }    }  }  

Don't forget the comma in each buildConfigField and resValue line above. I may or may not be speaking from experience, but you would get an error without the comma. As with most things developing applications, syntax syntax syntax.

You must be careful to ensure that all flavors define the flavor specific resources and BuildConfig fields. However, it's most likely that missing resources and buildConfigField values that you attempt to use will be caught during compile time.

Flavor specific app signing

As discussed above, each app on an Android device is identified with its applicationID, and apps released to the Play Store must be signed with a key that cannot be changed throughout the lifetime of that app. Having a unique key for each flavor is simply a matter of defining signing configuration, and selecting the appropriate one for each flavor.

App Signing

Build your multiple flavors

If your separate apps require minor customization and theme changes, but are really the same base app, multiple flavors is definitely the way to go. However, if both apps require a lot of custom code differences, you might want to rethink using multiple flavors strategy.

Also, take notice of the difference between flavors and build types. Use flavors for situations where you might need different versions of the same app in the Play Store, for example, free and pro, or for situations where you are customizing the same app for multiple clients. Use build types to differentiate between dev, debug and production builds. For example, debug builds might test against a local or privately controlled server, while release builds contact the release server.

As always, the complete source for the sample app built for this article is available on GitHub, and can be used by all. The sample shows all the different concepts discussed above among others. Happy coding.



from Android Authority http://ift.tt/2aWzfs4
via IFTTT

Alto’s Adventure hits Android TV and NVIDIA Shield, for a price

Alto_SHIELD_Facebook

If you've ever played Alto's Adventure you'll know just how addictive a single button game can be. Once to jump and hold to backflip as you snowboard your way down scenic peaks. That may not sound like much but it's the perfect recipe to make Alto's Adventure the ideal on-the-go mobile game. Alto maker Noodlecake Studios is now placing bets on that recipe successfully transitioning to the big screen, having just announced a launch on Android TV and NVIDIA Shield. But will it pay off?

best endless runner gamesSee also: 10 best endless runner games for Android8

In one sense of the word, yes. Because Noodlecake also announced Alto's Adventure for Shield TV and Android TV will see a return to the premium model the title first launched with on iOS. While mobile Android players fortunately got the game for free, if you want to enjoy it on larger screens you'll have to fork over $2.99.

While there's something inherently 'acceptable' about paying for a title you'll be playing on a large screen, there's also the possibility that adding a price tag will cause some fans to just stick with the mobile version. Or the existing Alto fanbase might jump at the chance to drop Noodlecake a few bucks for their efforts. I certainly wouldn't mind paying for the endless fun I've had on Alto's Adventure.

alto's adventure 1

But I also suspect that Alto's seemingly infinite replay value comes from its gameplay being perfect for short waits at the bus stop or in the back of a taxi. I don't know if I'd want to play Alto for hours while sitting on my couch with a real game controller in my hand. Or if I could be bothered setting it up for a quick five minute session. The game will be available today in Google Play.

BUY ON GOOGLE PLAY

Note: If the app is not live yet, just revisit the Play Store link later in the day.

Will you play Alto's Adventure on the big screen? Are you happy to pay to do so?



from Android Authority http://ift.tt/2aKF9Nl
via IFTTT

Iris scanning eventually heading to mid-range Galaxy phones

Samsung-Galaxy-Note-7-hands-on-first-batch-AA-(18-of-47)

It might not be surprising to hear that the new Galaxy Note 7 will be just the first Samsung handset to spot iris scanning technology, but the company's mobile division president, DJ Koh, is already thinking ahead about mid-range smartphones that could include iris scanners as well.

Speaking at the sidelines of the Unpacked event in New York, Koh revealed a little about the company's grander plans for iris scanning technology. In the future, not only will our eyes be used to unlock our smartphones, the plan is to integrate the technology for use with banking apps and other pieces of secure software. Koh was not specific about any other parties that Samsung is working with right now, but an API is already confirmed to be in the works. Samsung took a similar approach to increase development support for its wearables through a dedicated SDK.

"We did not put iris scanning in the flagship model just to do 'unlock'. In the long run, through third parties and API, we want to connect it with apps. For mobile banking, we are thinking of applying iris scanning for large transactions, and are already talking with banks in some countries … We have a road map for the technology and moving accordingly." – president of Samsung's mobile division, DJ Koh

For third party developers to really get behind the technology, clearly iris scanning technology will need to be in the hands of many more consumers, and not just those willing to spend the cash on cutting edge technology. Koh believes that the usual falling prices of components will be the key to bringing the technology to mid-range phones. It may take a while before we see this in a Galaxy A series or similar handset, but that very much seems to be the plan.

"Through continued cost cutting, iris scanning can trickle down to mid-end models … There is a view that Android is weak in security compared to its competitor and we want to expand software security that can overcome this image." – Koh

Do you believe that the future of mobile security lies in iris scanning, or are fingerprints and passwords a;ready enough for you?

note-7-irisSee also: Samsung Galaxy Note 7 iris scanner: here is how it works6


from Android Authority http://ift.tt/2axojC2
via IFTTT

The LG V20 will launch on September 6 in San Francisco

lg v20 launch

LG already confirmed that the V10's successor will arrive in September, but now we know exactly when to expect it.

The Korean giant sent out invites for a press event scheduled for September 6. The presser will take place in San Francisco, a slightly unusual choice for LG, who picked New York or the big electronics trade shows for its recent launches. A separate event will be held on September 7 for the Korean press in Seoul.

The taglines of the event – "The second story begins, LG V20" and "Play more" – don't give out much about the device. The playful theme matches the tone of the LG G5's launch campaign, though that doesn't necessarily mean there will be any similarities between the two phones.

LG revealed that the V20 will sport the two signature features of its predecessor, the dual selfie camera and the dual screen. What's more important is that the V20 will be the first smartphone to run Android 7.0 Nougat out of the box. Google has typically earmarked this honor for its own Nexus line, so winning the first Nougat phone is a real coup for LG. And the stakes are high: LG's mobile unit is bleeding money, following the poor reception of the G5. The V20 could be LG's saving grace in 2016.

The San Francisco event will coincide with the final days of IFA 2016. It's hard to say why LG's going for a standalone event instead of taking advantage of the media gathering in Berlin, but it wouldn't be the first time this happens – for instance, Motorola did something similar with the 2014 Moto X.

Read next: IFA 2016: what to expect from Europe's largest tech show

What do you hope to see in the LG V20?



from Android Authority http://ift.tt/2aQAT0w
via IFTTT

mercredi 3 août 2016

Apple Music for Android moves past beta period, growing pains linger

Apple Music AndroidShutterstock

Its public beta period behind it, Apple Music for Android has just been updated to version 1.0 and it has brought along a set of equalizer settings to mark the milestone. There are also a ton of performance improvements, but Apple may have a hard time convincing early adopters of that.

The equalizer settings likely took longer to arrive on Android because they had to be built into the Apple Music app, while the iOS version of the app has the controls baked right into the Settings menu.

Apple Music vs Spotify vs Google Play MusicSee also: Apple Music vs Spotify vs Google Play Music85

The Apple Music team indicated that it has imparted the Android app with a host of playback, performance and stability enhancements. The team didn't detail those improvements in the app's release notes.

Apparently those improvements haven't been enough for many Android users, as the app's aggregate score from over 88,000 reviews sits at a 3.3 out of 5. Reviewers have been venting about the app's performance and decrying the lack of features such as the ability to conserve data with lo-fi streaming options.

While off to a strong start, Apple still has a lot of ground to cover in catching up with rival Spotify. Google's Play Music appears to be in the streaming music market for the long haul, and France's Deezer just made landfall in the US late last month.

On top of that, Apple's iTunes app is no stranger to performance issues of its own. A few months ago, iOS users were accusing the company of programming Apple Music to delete DRM-free music from iTunes libraries and replacing them with protected copies of the tracks it erased.

How has your experience with Apple Music been? If you've been plagued by performance issues, have you noticed any improvements after updating to version 1.0?



from Android Authority http://ift.tt/2awuvx0
via IFTTT