Planet Android Headlines

↑ Grab this Headline Animator

September 02, 2014

Fix KitKat WiFi Drops on Your Own

wifi_bug

Despite introducing many useful features and overall great performance and enhancements, Android 4.4 KitKat is not without its flaws. For many, it’s not quite the most stable OS released by Google, and one of the “features” that drive people crazy is the intermittent WiFi drop. It unfortunately hasn’t been fixed in the various releases since KitKat’s original unveiling.

If you suffer from intermittent WiFi connection drops, XDA Recognized Developer M_J_Nazari provides a solution for this rather frustrating situation. In many cases, the whole issue is caused by nothing other than the OS checking for the connectivity status of our devices. When the client can’t be reached, the connection is reset. This can be fixed with a simple trick in your router’s configuration or WiFi settings on your Android device.

It’s still a bit of a shame that Google hasn’t managed to fix this issue in their product, despite how many other hotfixes have been released. Hopefully the upcoming Android L(emon Meringue Pie) will finally resolve all these problems related to connectivity, since it’s one of the critical functions for any mobile device.

While we all wait for an official fix, you can fix your own WiFi drop issues by following the instructions provided in the WiFi Drop Fix guide thread.

The post Fix KitKat WiFi Drops on Your Own appeared first on xda-developers.

by Tomek Kondrat at September 02, 2014 03:30 AM

September 01, 2014

Bring Back Tablet UI on KitKat

Tablet UI Xposed

Google presented their brand new UI for tablets alongside the release of Android 3.0 Honeycomb back in early 2011. It was widely used on many devices with Ice Cream Sandwich and Jelly Bean 4.1, at which point Google finally decided to end this project. The UI was replaced by the Phablet layout in Android 4.2. This Phablet UI is basically the phone layout stretched to match the tablet size.

Google went even further and removed the Tablet UI from source code in Android 4.4, so it’s very difficult to bring it back even by modifying the code. However, XDA Forum Member Exalm gives us an easy opportunity to get the Tablet UI back on your device. This modification comes in the form of an Xposed Framework module that works with the vast majority of AOSP-based ROMs. But due to some changes in the code, this module doesn’t work well with OmniROM and CyanogenMod.

In the current form, this module offers a fully working System Bar, Notification and Quick Settings Pop Up, IME switcher, as well as fully supported Immersive mode and transparency.

For some of you, the Tablet UI might simply be more functional and space efficient than the Phablet layout. If you want to bring back tablet UI layout to your AOSP-based tablet, go to the Tablet UI Xposed module thread give this piece of development a shot.

The post Bring Back Tablet UI on KitKat appeared first on xda-developers.

by Tomek Kondrat at September 01, 2014 11:00 PM

August 28, 2014

The Walking Dead comes to Zen Pinball HD today as a new table

Zen Studios has released a new table for their Zen Pinball platform which is themed around The Walking Dead franchise. Just like the original games, this new pinball table will actually have moral choices you need to make as your progress through the game. This is done by hitting certain areas in the table to make your choices. This is easier said then done of course.

This pinball table is based off of the popular game series by Telltale Games and not the television show. It features areas and characters from the Walking Dead universe as well as choices that need to be made throughout your journey. As you make different choices, different outcomes will happen.

Of course The Walking Dead pinball table comes with all the features and plenty of animation to enjoy, just like any other pinball table by Zen Studios. If you want to grab this new table, you can do so within the Zen Pinball HD platform as an in-app purchase. If you don't have Zen Pinball HD, you can grab that off of Google Play for free.

August 28, 2014 10:48 PM

Fostering Innovation

This month was about playing hard and working hard. We held our first company-wide day of innovation, kicked off emerging tech panels for next year’s SXSW, and further explored the Internet of Things. After a month of forward-thinking, we’re excited to look back and share in this issue of the Roundup.

Monthly Spotlight

We Made It Blend

What comes out of pure brainstorming and creation? We call this experiment Blend Day, and shut down operations for a day to let everyone collaborate on voted passion projects. In the end, we had nine prototypes, one rousing game of Family Feud, and an office full of happy people.

Featured Client

Union Bank Spurs Youth Financial Literacy

Union Bank came to us with a vision to teach financial literacy to children. Together we built Yuby, a convenient and interactive tool that uses “virtual” money to instill the fundamentals of responsible spending, saving, budgeting and giving.

The post Fostering Innovation appeared first on Mutual Mobile.

by Kaely Coon at August 28, 2014 09:00 PM

Brainstorming. Team building. Blend Day!

Post_20140827_BlendDay_Header

Innovation is like a smoothie, it’s always better when you combine a variety of ingredients. At Mutual Mobile, we decided to mix our brilliant developers, expert strategists, obsessive designers, meticulous project managers, and multitude of passionate professionals together for an innovative occasion we’ve dubbed, Blend Day.

Blend Day? It sounds delicious, but what is it?

Blend Day is a special time when we ask our employees to put aside their day-to-day assignments, get to know their colleagues a little better, and tackle some problems in need of creative solutions. Everyone from coders to the finance department join forces for eight hours of brainstorming, camaraderie, and an outrageous after party.

How does it work?

1) Breakfast debriefing

Post_20140827_BlendDay_Breakfast

The day began in the break room, where all Mutual Mobile employees were invited to feast on breakfast tacos and an assortment of Jamba Juice smoothies. Once the crinkling of tin-foil wrappers and slurping of straws had lessened to a dull roar, it was time for everyone to break into teams.

2) Teams unite

Post_20140827_BlendDay_Teams

The teams were divided amongst topics submitted by our employees: connected home devices, pet and kid trackers, music apps, amusement parks, and even innovations in ping pong, to name a few. After employees found their team, it was time to begin the Design Studio portion of the day.

3) Design studio

Post_20140827_BlendDay_DesignStudio

The Design Studio process usually takes around three hours and results in hundreds of great ideas, giving the teams plenty to think about as they munched on their lunches. With bellies full of deli sandwiches and brains full of creative concepts, it was time to begin the hackathon portion of the day.

4) Hack attack

Post_20140827_BlendDay_HackAttak

During the hackathon, developers, designers, marketers, strategists, and employees from every department rolled up their sleeves and helped bring the best ideas from the Design Studio to life. From functional prototypes to pitch decks worthy of the hit ABC TV show Shark Tank, everyone got their hands dirty.

5) Relax

Post_20140827_BlendDay_Relax

After employees put their brains through the grinder, they were rewarded with an after party full of gourmet food, chilled beverages, and a variety of entertainment to get their weekends off on the right foot.

What’s the main takeaway?

During the two weeks after Blend Day, teams periodically meet to polish their prototypes and put the finishing touches on their presentations. Then it’s time for the Town Hall, where each team shares their invention with the entire company.

From the communal breakfast, to the final pitch, Blend Day proved to be a great way to protect what makes our company great: our people, our culture, and the never-ending pursuit for compelling, innovative work.

Post_20140827_BlendDay_GoTeam

The post Brainstorming. Team building. Blend Day! appeared first on Mutual Mobile.

by Jen Quinlan at August 28, 2014 09:00 PM

Activision releases Wipeout 2 onto Android, complete with more big balls to play with

Activision has released a sequel to Wipeout onto Android today. Appropriately named Wipeout 2, this new sequel features plenty of big balls for everyone to play with. Well to be honest there is more to this sequel than balls.

Just like the original game, Wipeout 2 features new courses for you to transverse, avoiding different hazards and obstacles along the way while trying to get the best time possible... or at least make it to the end of the course. If you miss a jump, hit a hazard, or generally mess up, you will fall to your doom and die. Just kidding. You'll fall into water and get soaked as well as have more time added to your current one.

Wipeout 2 Features:

• COMPETE AGAINST FRIENDS: Watch your progress on the social map and leaderboards to see how you stack up against your friends.
• CRASH, BASH AND DASH THROUGH THE COURSE OF THE DAY: Try your hand at new daily courses to unlock special rewards!
• ADD FUN UPGRADES AND ABILITIES: Customize your character with performance enhancing costumes and abilities like rewind, teleport, and speed boost.
• BIG BALL WORTHY DAILY REWARDS: Receive a variety of rewards, including coins and power-ups!

Players can choose from 10 different playable character which included themed character such as a Zombie, Pirate and Popstar. All of the characters can be upgraded, customized and have new special abilities that you can use to try and get the best time on each course.

For those of you interested in picking up Wipeout 2, you can do so off of Google Play for free.

August 28, 2014 07:27 PM

Harman/Kardon Onyx Studio Review

Harman/Kardon Onyx Studio Review

Introduction

I embarked on a quest to find the best multipurpose bluetooth speaker available. The criteria was it had to be somewhat portable, have decent battery life, and killer sound. As this speaker would be used for my home computer and all of the mobile devices in the house, it had to be top notch. After trying at least a dozen different bluetooth speakers, I settled on what I believe is the absolute best available: The Harman/Kardon Onyx Studio.

Build & Aesthetics

The Onyx Studio is composed of durable quality parts and has looks to kill. The front grille of the speaker is composed of hard plastic with what seems to be a million little holes to make a mesh. The plastic grille is covered with a premium fabric as you’d find in a high quality home speaker. A round frame encircles the enclosure which is covered in durable non-slip rubber. This coating feels very durable, and doubles as insurance the speaker won’t be shaking all over whatever surface you place it on. Weighing in at 280mm x 161mm x 260mm, this isn’t the smallest unit available, however the size is important to speaker sizes and configuration of this enclosure.

Around back is where one of the 3″ woofers lives (see video) in the center of the unit. There is a carry handle up on top and two feet project from the bottom. Each of the feet is shiny chrome plastic and is coated in a rubber on the bottom that feels exactly the same as the rubber on the outer ring. Connections for power and microUSB are also on the rear of the Onyx Studio.

All of this creates a visual and tactile feel that screams premium. There were no other big round speakers among the competition which gives the Onyx Studio a unique look. It looks great, feels great, and lives up to the Harman/Kardon brand in every possible way.

Operation

There are four buttons along the top rim of the Onyx Studio. Power obviously turns on and shuts off the unit. Two volume buttons (+ and -) change the volume directly on the speaker. There is also a bluetooth button which is mainly used to “unpair” from a connected device. The power and bluetooth buttons double as indicator lights for errors and operational notifications (bluetooth connection, low battery, etc.)

Connectivity

The Onyx Studio is designed to be used as a bluetooth speaker. As such, it lacks a 3.5mm jack for connectivity. This would seem to be a bad point, however I, and many other people simply have no need for it. Every device I would wish to use with my speaker all support Bluetooth. Charging is accomplished by a 19V 2A connector located on the back of the unit. A micro-USB is next to the charging port for service use.

Transducers

One of the two 3″ woofers is visible on the back of the unit. The other woofer is located inside the enclosure facing forward. Also inside are two 3/4″ tweeters producing the highs. The biggest feature of the Onyx Studio are the two passive radiators. They are responsible for producing deep lows.

All of the speakers are collectively rated as 4x15W totaling 60W with a 4ohm impedance. The frequency response is the standard 60Hz – 20kHz with a frequency range of 2402MHz – 2480MHz. A rating for maximum SPL (the highest output before damage will occur) is provided as 95dB @ 1m.

Audio Quality

This is the real meat and potatoes of this review. One can have a speaker that looks and feels great while suffering in quality of what it was made to do. This is simply not the case with the Onyx Studio. I listened to this speaker side by side with the Bose Soundlink II and there wasn’t even a real competition. The Harman/Kardon blew it away in almost every way.

This is easily the absolute loudest bluetooth speaker available. Ideally I was looking for something that filled a room with sound. Having that expectation the Bose offering managed to do that and perhaps a little more at top setting. The Onyx Studio filled my whole house with sound. Every room. I took it outside with me on a few occasions and the Harman/Kardon filled the outside with sound as well. If you don’t believe that, you can ask my local law enforcement.

Aside from sheer volume the overall quality of the audio produced is equally impressive. Lows are low, highs are highs. Mids are more than acceptable. I listened to all sorts of music such as Blues, Jazz, Hip-Hop, Dubstep and several other types of electronic music, classical, classic rock, metal and more. There was nothing to be disappointed in no matter what genre came on. I will say the Soundlink II was a bit better in the mids, but having deeper lows and crisper highs without distortion at any volume allows the Onyx Studio to outshine it’s biggest competitor.

This is the reason you should buy any speaker, and as such this category is weighted more heavily than any others in the review. Assuming having something more compact is not an absolute necessity, nothing beats the Onyx Studio. There is simply no better sounding bluetooth speaker on the market at all volumes.

Battery Life

The user’s manual and box both state the Harman/Kardon Onyx Studio is capable of 5 hours of battery life. From my examination, this is very accurate at most volumes. I did crank it to maximum volume for a longevity test and only got 4 to 4.5 hours out of the battery. At those volumes that shouldn’t be surprising. Overall I found the battery life to be sufficient for my needs, though some may see this as a shortcoming if the use-case dictates very long battery life.

Price

The MSRP on the Onyx Studio is $400 US. Coming in at $100 more than the Bose Soundlink II, it’s easily the most expensive speaker around. It really is a $400 speaker based on audio quality and volume and I would not feel poorly to pick it up at full price. It should be noted this enclosure is often 50% off on Amazon (on sale for $155.99 at the time of this writing) and Best Buy ($199.99 at current).

Conclusion

There is simply no better bluetooth speaker enclosure available on the market. Many folks will balk at the larger size and lower battery life available. When push comes to shove, if you want a good sound you need a bigger size. Further the louder it gets the faster the battery drains. Taking that into account and hearing what is produced these are fair factors.

If you need a compact speaker with 7+ hours of battery life, look elsewhere. The Onyx Studio is designed to provide amazing sound at very high volumes and that’s exactly what you get. If size and top-class battery life aren’t necessary it’s a no brainer. Go find this speaker on sale and buy it. I promise you will not be disappointed.

 

DSC00116 DSC00219 DSC00117 DSC00220

Land of Droid -

by Scott Kenyon at August 28, 2014 05:58 PM

August 26, 2014

Defending Against "Camera Peeking" Attacks

Yesterday, I blogged about a research paper describing various attacks. In yesterday’s post, I covered defending against another activity popping up and masquerading one of your critical activities.

Another attack outlined by the paper is easier for an attacker to use… but is also easier to defend against. The paper’s authors refer to it as the “camera peeking” attack.

A camera, as identified by an instance of android.hardware.Camera, can only be used by one app at a time. The attack is simple:

  • monitor for when an app that might use the camera for something important comes to the foreground

  • at that point, start watching for the Camera object to become unavailable

  • once the Camera is unavailable, then available again, grab the Camera and take a picture, in hopes that the camera is still pointing at the confidential information

The example cited by the paper’s authors is to watch for a banking app taking a photo of a check, to try to take another photo of the check to send to those who might use the information for various types of fraud.

Polling for camera availability is slow, simply because the primary way to see if the camera is available is to open() it, and that takes hundreds of milliseconds. The paper’s specific technique helped to minimize the polling, by knowing when the right activity was in the foreground and therefore the camera was probably already in use. Then, it would be a matter of polling until the camera is available again and taking a picture. Even without the paper’s specific attack techniques, this general attack is possible, and it would not surprise me if there are more efficient ways to see if the camera is in use.

On the other hand, the defense is simple: if your app is taking pictures, and those pictures may be of sensitive documents, ask the user to point the camera somewhere else before you release the Camera object. So long as you have exclusive control over the camera, nothing else can use it, including any attackers.

A sophisticated implementation of this might use image-recognition techniques to see, based upon preview frames plus the taken picture, if the camera is pointing somewhere else. For example, a banking app offering check-scanning might determine if the dominant color in the camera field significantly changes, as that would suggest that the camera is no longer pointed at a check, since checks are typically fairly monochromatic.

Or, just ask the user to point the camera somewhere else, then release the Camera object after some random number of seconds.

General-purpose camera apps might offer an “enhanced security” mode that does this sort of thing, but having that on by default might annoy the user trying to take pictures at the zoo, or at a sporting event. However, document-scanning apps might want to have this mode on by default, and check-scanning apps might simply always use this mode.

by Mark Murphy at August 26, 2014 09:52 PM

August 25, 2014

Powerful New Messaging Features with GCM

By Subir Jhanb, Google Cloud Messaging team

Developers from all segments are increasingly relying on Google Cloud Messaging (GCM) to handle their messaging needs and make sure that their apps stay battery-friendly. GCM has been experiencing incredible momentum, with more than 100,000 apps registered, 700,000 QPS, and 300% QPS growth over the past year.

At Google I/O we announced the general availability of several GCM capabilities, including the GCM Cloud Connection Server, User Notifications, and a new API called Delivery Receipt. This post highlights the new features and how you can use them in your apps. You can watch these and other GCM announcements at our I/O presentation.

Two-way XMPP messaging with Cloud Connection Server

XMPP-based Cloud Connection Server (CCS) provides a persistent, asynchronous, bidirectional connection to Google servers. You can use the connection to send and receive messages between your server and your users' GCM-connected devices. Apps can now send upstream messages using CCS, without needing to manage network connections. This helps keep battery and data usage to a minimum. You can establish up to 100 XMPP connections and have up to 100 outstanding messages per connection. CCS is available for both Android and Chrome.

User notifications managed across multiple devices

Nowadays users have multiple devices and hence receive notifications multiple times. This can reduce notifications from being a useful feature to being an annoyance. Thankfully, the GCM User Notifications API provides a convenient way to reach all devices for a user and help you synchronise notifications including dismissals - when the user dismisses a notification on one device, the notification disappears automatically from all the other devices. User Notifications is available on both HTTP and XMPP.

Insight into message status through delivery receipts

When sending messages to a device, a common request from developers is to get more insight on the state of the message and to know if it was delivered. This is now available using CCS with the new Delivery Receipt API. A receipt is sent as soon as the message is sent to the endpoint, and you can also use upstream for app level delivery receipt.

How to get started

If you’re already using GCM, you can take advantage of these new features right away. If you haven't used GCM yet, you’ll be surprised at how easy it is to set up — get started today! And remember, GCM is completely free no matter how big your messaging needs are.

To learn more about GCM and its new features — CCS, user notifications, and Delivery Receipt — take a look at the I/O Bytes video below and read our developer documentation.

by Android Developers (noreply@blogger.com) at August 25, 2014 05:26 PM

Defending Against Activityjack Attacks

A number of media outlets reported on a research paper and USENIX conference presentation describing a way by which your users could be tricked into providing confidential information — passwords, credit card information, and such — to a piece of malware, rather than to your app.

The paper points out that there are ways of writing malware such that:

  • the malware can pop an activity in front of yours, and

  • do so at just the right time, to mimic one of your activities, such that the user thinks that the malware’s activity is actually yours and enters the confidential data into the malware activity

For the purposes of this blog post, I’ll refer to this as an “activityjack” attack. Just as a clickjacking attack tricks Web users into clicking on the wrong things, and just as a tapjacking attack steals Android touch events via a transparent layer on top of the screen, an activityjack attack steals input destined for your activity by interposing another activity on top of yours.

The particular means of implementing the activityjack attack outlined in the paper is a bit esoteric. What it does do, though, is illustrate that such an attack is possible. Half the battle with security is knowing what you need to defend against.

The paper outlines solutions to their particular flavor of activityjack attack that require OS modifications. That’s fine, and perhaps the Android project will implement that stuff. But it will take years for such changes to percolate through the Android device ecosystem. For example, tapjacking was “solved” in Android 4.0, but there are millions of people using devices older than that, even today. Hence, we need to think as much, if not more, about application-level solutions.


Let’s ignore the details of the particular approach from the paper. Let’s merely assume that an attacker can get their activity in front of ours at the right time, as there are less-esoteric ways of doing the same thing (e.g., via an AccessibilityService). How do we defend against that for critical activities, such as “login” activities that require the user enter a passphrase?

An activityjack attack has two key weaknesses:

  1. The attacker cannot see the screen, because on non-buggy devices, the attacker has no means of capturing a screenshot of our activity as it comes into the foreground. Hence, while the attacker can create an activity that tries to mimic ours, they can only do so statically, analyzing our activity’s UI on their development machine and creating their own lookalike.

  2. We know that our activity has left the foreground, as we are called with onPause() (and perhaps other lifecycle methods, depending upon the nature of the attacker).

Hence, one defense can be to include in our activity a secure element that cannot be mimicked ahead of time, then hide that element (or our whole UI) when we are no longer in the foreground.

This concept of a secure element is not new. Some financial services Web sites have taken this approach. As part of the user setting up their online banking account, the user chooses an image from a collection of clipart. On the Web page that collects the user’s passphrase, the page also shows this secure element. The user is taught that if they do not see their chosen image, then the Web page they are looking at is not really from their bank, and therefore they should not type in their passphrase.

This is not that hard to implement in Android. You too would allow the user to choose a piece of clipart, displaying that in an ImageView on your secure activity in onResume(). In onPause() you would hide that ImageView via setVisibility(View.INVISIBLE). That way:

  • Since the image is chosen by the user, the attacker is unlikely to mimic the same image

  • Since you are hiding the image when you are not in the foreground, the attacker cannot use a transparent region in their activity to have your image “peek through” their attacking activity

As a result, if the user is paying attention, the user should see either the wrong image or no image at all, and the user should realize that they are being activityjacked and therefore fail to proceed.

You might be tempted to do something else in response to your secure activity being replaced in the foreground by another app’s activity, such as pop up a warning dialog. However, there are plenty of valid scenarios when this would occur, such as an incoming phone call, and you have no reliable means of whitelisting all possible valid scenarios. There will be a high incidence of false positives, and that may not help the user. Having this as an user-selectable option is fine, but I would not go this route by default.

With luck, somebody will come up with a better defense, one that makes it more likely that the user will not provide confidential information to the attacker, yet not be so onerous that they get fed up with your app and uninstall you. However, this approach should be reasonably easy to implement and help defend your users from activityjacking attacks in critical activities.

by Mark Murphy at August 25, 2014 12:40 PM

August 23, 2014

I hate missions! What’s in this update for me?

All is on track for the release of the tech mine expansion pack tomorrow. Even if you don’t play the missions, there are plenty of changes to look forward to in the update (these affect the whole game, not just the new levels):

  • much quicker level generation and startup
  • you can now check objectives when outside of the camp by tapping on the stars in the corner
  • subtle character animations added, such as blinking
  • the cracks created when digging have been redrawn and have more stages, so you get more feedback when digging tough ground
  • lots of sprites retouched or redrawn
  • added a small element of randomness to the digging, so it doesn’t always take the same number of hits for a particular ore
  • less memory usage, less battery usage, better performance
  • removed annoying bat poop sound
  • lifts arrive slightly faster
  • added more detail to the map screen
  • silenced the low health warning when on the surface
  • fixed restart logo sometimes appearing in wrong ratio
  • fixed character “running on the spot” when returning to the game
  • fixed the characters in a conversation sometimes disappearing rather than sliding in/out
  • fixed a bug where the map markers could appear in the wrong location
  • fixed the saving spinner hanging around when it shouldn’t when in the shop or camp
  • fixed progress on hidden objectives animating when it shouldn’t
  • fixed an odd fade effect when stepping up a block that causing colour wierdness

by Psym at August 23, 2014 10:36 AM

August 21, 2014

Piper Home Security Review

Piper Home Security Review

Introduction

The Piper Home security camera is a security device with a few smart extras in its arsenal. Using Z Wave technology the Piper doubles as a home automation hub along with its security skills.

Build & Aesthetics

The Piper is a really good looking security camera. It comes in either glossy black or glossy white and while the black is my favourite it is a finger magnet of the highest order, although once you have it set in place you really shouldn’t need to touch it again. While the motion sensor on the front is a little blatant the whole device including the solid metal stand, is top notch when it comes to build quality, although I did think the door sensors are a little flimsy.

Security

With a 1080p camera up front and a clever fish eye lens, the Piper security system is actually pretty neat. from the app you are able to see four separate parts of the room at the same time with a clever split system which allows you to zoom in on specific areas, such  as windows or doors. The package I received came with 1 window/door sensor which was run by 1 AA battery. Using Zwave to connect to the Piper it will notify you if the sensor is tripped.

Interestingly, as well as having the above mentioned motion sensor it will also inform you if there is a loud noise or a change in temperature. These things only happen if you tell it to of course. Don’t worry, you don’t get informed of loud noises or motion while you are sitting in the room, only when you turn on each section of the app. Speaking of loud noises the 105 db siren is, how can i put this, really effing loud. The piercing sound is almost painful, which is kind of the point I suppose. One of the benefits of the speakers is the ability to have two way sound. Someone robbing your house? you get to call them a dick and tell them they are being filmed. The Piper also has a battery backup so even if they pull the plug they will still get caught on camera.

The one niggle I have with the security system is the lack of night vision. Piper say that with the home automation side of the device available to turn lights on, a night vision light was not needed but as I didn’t get an home automation plug in the review device and it doesn’t seem to be in the retail version, i cant test that theory. A night camera is extremely important in my eyes and the guys at Piper did say they will be looking into accessories at a later date. At £119 the device is cheap enough that you could buy an extra light and it would still be a good deal.

Home Automation

The Piper has a neat party favour, home automation. Because the Piper uses Zwave, a popular wireless protocol, it is compatible with a lot of home automation gadgets. The device I saw at the launch was a plug that lets you turn any socket into a smart socket. The robust app and a clever scheduling system these devices can use the onboard sensors from the piper to turn things on automagically. For example you can set the piper to turn on a fan when the temperature reaches a certain height or, as the Piper team said, turn on a light when the the window sensor is broken.

There a lot of opportunities to make the piper the centre of your connected home and I hope to see a lot more accessories in the future. We all want to live in Bill Gates house after all.

The App

The Piper app is a very helpful and pretty app. Even though it takes its design cues from iOS it still looks clean and fresh. The dashboard gives you at a glance info as well as four schedule choice buttons which let you turn them on and off very easily. The Home Vitals screen is probably my favourite in the app. It shows you the internal and external temperature as well the humidity, loudness, motion, and even the brightness of the room. All of these stats can be used in the rules tab to make specific scenarios for when the piper should record or when it should use some of its home automation skills.

The live feed tab is really where the magic happens though. From here you can pan and zoom on the four different quadrants of the room or have it on one big screen as well as use the two-way speaker system to scare people. There is also a quick Zwave accessory button which allows you to turn on a device straight from that screen. The video feed is very good on WiFi and you can set the quality on 3g/4g to conserve bandwidth while still getting a good quality picture.

Conclusion

Overall, the Piper Home Security device is great. Starting at £119 for the base model, the Piper offers a low price entry point into home security and home automation. Along with beautiful curves and a professional finish, the Piper offers a solid product with room to expand it into a central Hub for all your connected needs.

If you are considering home security I can certainly recommend this as a place to start.

piperapp piperzwave pipersplit _MG_2171 piperstart

 

Land of Droid -

by James Bricknell at August 21, 2014 09:37 PM

August 19, 2014

Better Code Review

Software peer review is essential on a modern development team. Learn how to keep your code healthy, and your people happy in this 15 minute talk from Forward JS.

by Max Walker at August 19, 2014 11:57 PM

August 18, 2014

Read This: Designer's Guide to DPI


Sebastien Gabriel from Google's UX team has written a comprehensive article about designing for different screen densities.

This article is worth reading if you're a designer and worth sharing to your designers if you're a developer. This post will help designers (even without Android understanding) to understand how to create assets supporting different screen densities.

Read the full article here:
http://sebastien-gabriel.com/designers-guide-to-dpi/home

by Juhani Lehtimäki (noreply@blogger.com) at August 18, 2014 09:24 AM

August 11, 2014

Read this: androiduiux.com - Crafting the Unclouded Experience

Taylor Ling has written yet another post that is absolutely worth your time. In the latest post Taylor describes the process behind crafting the user experience for the Unclouded app.


Read the full post here:
http://androiduiux.com/2014/08/12/crafting-the-unclouded-experience/

by Juhani Lehtimäki (noreply@blogger.com) at August 11, 2014 09:04 PM

August 08, 2014

Tridroid Presentation: In-App Purchases for an Android Game

I gave a presentation on August 7 to my local Android developers' Meetup group, Tridroid. The presentation was on in-app purchases. The following topics were covered. ... In-App Purchases example: Trivial Drive ... Different revenue models for apps ... In-App Billing for Android ... What you should consider for in-app purchases ... How in-app purchases are handled in other apps (Angry Birds, Temple Run, Candy Crush Saga) ... In-app purchases in Double Star ... How many in-app items should you have? ... How do you call the player's attention to them? ... Pricing considerations ... How to implement In-App Billing ... TrivialDrive example app ... Adapting example to your own app ... Download. If you'd like to download the presentation, the link is in the full article. Continue reading

by Bill Lahti at August 08, 2014 11:47 AM

August 05, 2014

Material design in the 2014 Google I/O app

By Roman Nurik, lead designer for the Google I/O Android App

Every year for Google I/O, we publish an Android app for the conference that serves two purposes. First, it serves as a companion for conference attendees and those tuning in from home, with a personalized schedule, a browsing interface for talks, and more. Second, and arguably more importantly, it serves as a reference demo for Android design and development best practices.

Last week, we announced that the Google I/O 2014 app source code is now available, so you can go check out how we implemented some of the features and design details you got to play with during the conference. In this post, I’ll share a glimpse into some of our design thinking for this year’s app.

On the design front, this year’s I/O app uses the new material design approach and features of the Android L Developer Preview to present content in a rational, consistent, adaptive and beautiful way. Let’s take a look at some of the design decisions and outcomes that informed the design of the app.

Surfaces and shadows

In material design, surfaces and shadows play an important role in conveying the structure of your app. The material design spec outlines a set of layout principles that helps guide decisions like when and where shadows should appear. As an example, here are some of the iterations we went through for the schedule screen:

First iteration
Second iteration
Third iteration

The first iteration was problematic for a number of reasons. First, the single shadow below the app bar conveyed that there were two “sheets” of paper: one for the app bar and another for the tabs and screen contents. The bottom sheet was too complex: the “ink” that represents the contents of a sheet should be pretty simple; here ink was doing too much work, and the result was visual noise. An alternative could be to make the tabs a third sheet, sitting between the app bar and content, but too much layering can also be distracting.

The second and third iterations were stronger, creating a clear separation between chrome and content, and letting the ink focus on painting text, icons, and accent strips.

Another area where the concept of “surfaces” played a role was in our details page. In our first release, as you scroll the details screen, the top banner fades from the session image to the session color, and the photo scrolls at half the speed beneath the session title, producing a parallax effect. Our concern was that this design bent the physics of material design too far. It’s as if the text was sliding along a piece of paper whose transparency changed throughout the animation.

A better approach, which we introduced in the app update on June 25th, was to introduce a new, shorter surface on which the title text was printed. This surface has a consistent color and opacity. Before scrolling, it’s adjacent to the sheet containing the body text, forming a seam. As you scroll, this surface (and the floating action button attached to it) rises above the body text sheet, allowing the body text to scroll beneath it.

This aligns much better with the physics in the world of material design, and the end result is a more coherent visual, interaction and motion story for users. (See the code: Fragment, Layout XML)

Color

A key principle of material design is also that interfaces should be “bold, graphic, intentional” and that the foundational elements of print-based design should guide visual treatments. Let’s take a look at two such elements: color and margins.

In material design, UI element color palettes generally consist of one primary and one accent color. Large color fields (like the app bar background) take on the main 500 shade of the primary color, while smaller areas like the status bar use a darker shade, e.g. 700.

The accent color is used more subtly throughout the app, to call attention to key elements. The resulting juxtaposition of a tamer primary color and a brighter accent, gives apps a bold, colorful look without overwhelming the app’s actual content.

In the I/O app, we chose two accents, used in various situations. Most accents were Pink 500, while the more conservative Light Blue 500 was a better fit for the Add to Schedule button, which was often adjacent to session colors. (See the code: XML color definitions, Theme XML)

And speaking of session colors, we color each session’s detail screen based on the session’s primary topic. We used the base material design color palette with minor tweaks to ensure consistent brightness and optimal contrast with the floating action button and session images.

Below is an excerpt from our final session color palette exploration file.

Session colors, with floating action button juxtaposed to evaluate contrast
Desaturated session colors, to evaluate brightness consistency across the palette

Margins

Another important “traditional print design” element that we thought about was margins, and more specifically keylines. While we’d already been accustomed to using a 4dp grid for vertical sizing (buttons and simple list items were 48dp, the standard action bar was 56dp, etc.), guidance on keylines was new in material design. Particularly, aligning titles and other textual items to keyline 2 (72dp on phones and 80dp on tablets) immediately instilled a clean, print-like rhythm to our screens, and allowed for very fast scanning of information on a screen. Gestalt principles, for the win!

Grids

Another key principle in material design is “one adaptive design”:

A single underlying design system organizes interactions and space. Each device reflects a different view of the same underlying system. Each view is tailored to the size and interaction appropriate for that device. Colors, iconography, hierarchy, and spatial relationships remain constant.

Now, many of the screens in the I/O app represent collections of sessions. For presenting collections, material design offers a number of containers: cards, lists, and grids. We originally thought to use cards to represent session items, but since we’re mostly showing homogenous content, we deemed cards inappropriate for our use case. The shadows and rounded edges of the cards would add too much visual clutter, and wouldn’t aid in visually grouping content. An adaptive grid was a better choice here; we could vary the number of columns on screen size (see the code), and we were free to integrate text and images in places where we needed to conserve space.

Delightful details

Two of the little details we spent a lot of time perfecting in the app, especially with the L Developer Preview, were touch ripples and the Add to Schedule floating action button.

We used both the clipped and unclipped ripple styles throughout the app, and made sure to customize the ripple color to ensure the ripples were visible (but still subtle) regardless of the background. (See the code: Light ripples, Dark ripples)

But one of our favorite details in the app is the floating action button that toggles whether a session shows up in your personalized schedule or not:

We used a number of new API methods in the L preview (along with a fallback implementation) to ensure this felt right:

  1. View.setOutline and setClipToOutline for circle-clipping and dynamic shadow rendering.
  2. android:stateListAnimator to lift the button toward your finger on press (increase the drop shadow)
  3. RippleDrawable for ink touch feedback on press
  4. ViewAnimationUtils.createCircularReveal for the blue/white background state reveal
  5. AnimatedStateListDrawable to define the frame animations for changes to icon states (from checked to unchecked)

The end result is a delightful and whimsical UI element that we’re really proud of, and hope that you can draw inspiration from or simply drop into your own apps.

What’s next?

And speaking of dropping code into your own apps, remember that all the source behind the app, including L Developer Preview features and fallback code paths, is now available, so go check it out to see how we implemented these designs.

We hope this post has given you some ideas for how you can use material design to build beautiful Android apps that make the most of the platform. Stay tuned for more posts related to this year’s I/O app open source release over the coming weeks to get even more great ideas for ways to deliver the best experience to your users.

by Android Developers (noreply@blogger.com) at August 05, 2014 03:30 PM

August 03, 2014

Further update on the new mission pack progress

Another season, another mission pack update…

Once again apologies for the continued delay of the new mission pack. I have been finding it hard to find free time to put into the game, but in the last 3 months a lot has been done and this is definitely the last sprint.

All missions are in place now, there is just some tidying up to do around the storyline, tweaking of difficulty, and the end cut-scene to implement. I am aiming for a release on the 23rd August.


by Psym at August 03, 2014 11:34 PM

August 02, 2014

Double Star Android Game – Beta Version

Double Star is a turn-based, single player, space war game for Android. The app is now available for prerelease testing on Android phones and tablets. If you join the Double Star Beta community on Google+, you will be able to install the app from the Google Play store. ... Storyline - Our world is under attack from an invading alien force. You want to join the fight. So you join StarFleet Academy to learn to command a starship. When training completes, you are given command of a very powerful starship. You must stop the invasion now. Multiple battles later, you stop the invaders. ... After the invasion is over, you learn that our world is safe, but the threat is still out there somewhere.Your mission then is to discover a path through the galaxy that takes you to the alien home world. You must destroy them and stop the threat once and for all. Continue reading

by Bill Lahti at August 02, 2014 03:29 PM

July 28, 2014

Download TWRP Recovery for the Galaxy Tab S

The post Download TWRP Recovery for the Galaxy Tab S appeared first on galaxytabreview.

TWRP is a recovery that can be used to flash firmwares on to the Samsung Galaxy Tab S. It can also be used for rooting the Tab S.

Here are the steps on how to download and install it on your tablet.

Play Store Link
1) Install TWRP Manager from the Play Store
2) Open TWRP Manager and provide root permissions
3) Hit Advanced->Install Recovery
4) Verify the correct device name on your screen then press Install Recovery if the correct device is showing

If you are not comfortable with the play store method, you can do a manual installation by using ODIN application. For that download the required TAR file from here.

Download TWRP Recovery galaxy tab s

Then in ODIN select the file by clicking on PDA button and flash it. Make sure you have your Tab S in recovery mode before pressing the START button. For getting your Tab into recovery, press volume up and power button down together as soon as the screen blinks blank so that it goes into recovery.

by Galaxy Tab Review at July 28, 2014 08:01 AM

July 17, 2014

Freesat Android app launched

Freesat, the vague organisation behind those TV tuners that let you get satellite TV without paying Sky any money, now has an official Android app. On a basic level it’s an EPG to tell you what’s on over the next seven days, although viewers with one of the more recent Freetime set-top boxes can pair it with their tuners and use their phones and tablets as remote controls — also triggering recordings from afar.

freesat-android-app-1

freesat-android-app-2

It is therefore quite useful if you can get it to sync and work. Check out the Freesat app here.

by Gary_C at July 17, 2014 10:41 AM

July 07, 2014

Things you should know about the Galaxy Tab S

The post Things you should know about the Galaxy Tab S appeared first on galaxytabreview.

The latest tablet from Samsung is here and it is being touted as the best Android tablet out tehre. It gives you access to loads of applications and optional 4G connectivity.

So what should you know about the Samsung Galaxy Tab S.

1. One of the best tablet screens

There is no point in getting a tablet if it does not have a crisp display. Samsung is calling it the "the industry’s best display" thanks to amazing combination of super high resolution and advanced color reproduction. It can automatically adjusts the screen mode based on whether you’re watching a film, flicking through photos or just browsing the web.

2. Thinnest and Lightest Sammy’s tablet

The Tab S comes in two sizes – 8.4 inches and 10.5 inches and both tablets are very light. The 10.5 inch tablet weighs just 465 grams. This makes it lighter than all the Android tablets out there. Also it is just 6.6mm thin and thus you will barely notice it in your bag.

3. Fingerprint reader

The Tab S comes with a fingerprint scanner built into the screen and not only does it feel cool to unlock your tablet, it also means that your private data will beas you safe and sound even if the tablet ever falls into the wrong hands.

4. Split screen multitasking

If you love split screen multitasking you will adore the Galaxy Tab S. This will allow you to be more productive as you will able to work on two windows at a time.

Things you should know about the Galaxy Tab S

5. Productivity booster

You can easily and wirelessly transfer files and information between the Tab S and a Galaxy smartphone thanks to SideSync 3.0.

6. Freebies

With the Tab S you get three months of Sky Movies from NOW TV for free, as well as 1,500 Marvel Comics and access to news and magazines through Paper garden.

by Galaxy Tab Review at July 07, 2014 08:56 AM

July 05, 2014

July 04, 2014

The 1st SWIFT Compliant Ad Network – StartApp

Swift Apple’s Worldwide Developer Conference unveiled a new C-based programming language known as Swift. This application will be able to restructure the Mac OS and iOS app development process. Swift takes high level coding language, combines it with C and provides the flexibility of Python and Node.js to create a world of applications to the developers.

The iOS developers can now enjoy the benefits of memory management system which is automated in swift and syntax which is simplified to allow less room for error. The developers will also be able to provide far better quality apps which perform exceptionally as compared to the bug-prone and time consuming ones created by Objective-C.

The Swift, as the name suggests, will be able to help the developers make apps quickly and easily by using this development process. It is not just the developers but also the users who can feel the difference between apps built on Swift and Objective-C. The graphics are much better, the applications are smoother and not to mention the annoying bugs that plague the apps from Objective-C have also been eliminated. Consumers will be able to get access to much cheaper apps that are not only helpful but also readily available.

Swift has been gaining a lot of attention even though it is a new programming language because of being endorsed by Apple.  Apple is known for the quality of their products so the developers know they have a reliable language in their hands. They not only have a trustworthy product but also ready support available from the Apple Developer Team. The Swift experience will bring a paradigm shift in the Apple Development environment being moved from Objective-C to Swift.startapp

The one thing that propels Swift in the application development is bad experience of using Objective-C. The language is not only difficult and time consuming, but there are only just a handful of highly skilled developers that are able to use it. With the coming of Swift, more developers will be able to create good quality apps which can be distributed freely or at a low cost.

Even though Swift is a fairly new language which has not been tested extensively, it already has support from one of the best ad platforms – StartApp. The iOS software development kit is now compatible with StartApp which is an ad platform supporting Apple’s new language. The one thing that made it possible was that the integration of StartApp’s iOS SDK is very simple.

It comes with the same superior banner ads and full page interstitials that are the USPs of StartApp. You can also get the additional OfferWall which provides both 2D and 3D graphic options. All the ads, regardless of the type, are optimised to suit the iOS interface which enhances the user experience. The graphics are crisp and the distortion of image has been eliminated.  The ads are available in both landscape and portrait modes.

StartApp is the only ad network that has taken the Swift language under their wings. They are 100,000 partners strong and more than 1 billion SDK’s have been downloaded because of their relentless efforts at marketing and advertising. This definitely puts Swift in good hands, despite being newly born in the iOS developer sector.

The post The 1st SWIFT Compliant Ad Network – StartApp appeared first on Android Apps.

by Gigi Fenomen at July 04, 2014 12:51 PM

June 27, 2014

Google I/O 2014: Rehash

All of the videos have been posted from the various sessions I was in this year. Here they are, along with links to the slides.

What's new in Android

A presentation with +Dan Sandler that provides a quick overview of some of the larger features and new APIs in the L Developer Preview release and other new bits in the recent Androidosphere. There's also a really good deep-dive into Notifications, since Dan's the non-local expert on the subject.



Slides (PDF)


Material science

This session, presented with +Adam Powell, provides an overview of the engineering side of the Material design system. Many of the other sessions at Google I/O this year discussed the design side; this presentation covers the technical details of the APIs and the capabilities exposed by the framework for Android developers.



Slides (PDF)


Material witness

I was happy to be joined once again by former Android developer and UI Toolkit team lead +Romain Guy for this talk on some of the new Material design elements in the L Developer Preview release. The idea behind this talk was to go a bit deeper into using and explaining the new APIs, as well as explaining how some of the features, like realtime soft shadows, work.



For slides as well as demo code, check out Romain's blog at curious-creature.org.


Android fireside chat

This session, organized and moderated by +Reto Meier, I found to be more interesting than other such panels I've seen. Often, these things tend to have a lot of awkward silences as the panelists try to figure out the most interesting way of saying "No comment" since there's a general policy on Android of not talking about future development plans. This time, there was a lot of discussion around how and why some parts of the system work, which I enjoyed as an audience member that just happened to be sitting somewhat closer to the panel.

by Chet Haase (noreply@blogger.com) at June 27, 2014 05:08 PM

Talk to Your Toaster: Bluetooth & USB for Android

The Android framework provides options for connecting external accessory devices to applications via technologies like Bluetooth and USB. Learn how to expand the reach of your Android devices.

by Evan Davis at June 27, 2014 12:07 PM

Google I/O 2014 Slides and Demo

Chet and I gave a talk entitled “Material Witness” at Google I/O today. I am happy to announce that the entire talk is now available on YouTube. I have also published the following resources:

Google I/O 2014 demo

by Romain Guy at June 27, 2014 06:39 AM

June 17, 2014

Moto Maker for Moto X hitting Germany on July 1st

After way too much time as a US-only exclusive and with the phone it pimps to the extreme already starting to show its age, Motorola’s finally ready to launch the Moto Maker customisation service for the Moto X in Europe.

According to Motorola Germany, the case modding service will launch exclusively for those who buy a phone through Phone House in the country. Phone House is the German wing of Carphone Warehouse, so here’s hoping CPW picks up the deal and launches the custom phone option here in the UK too.

moto-maker-uk

This could be the answer to the tricky “eccentric summer phone” problem we currently face. As long as it’s cheap.

Link via Androidsis.

by Gary_C at June 17, 2014 07:30 PM

June 04, 2014

Mobile Carrier Payments - Now Available via SlideME


SlideME & Fortumo









SlideME now supports the option for users to pay via Mobile carrier through our partnership with Fortumo. This is an important milestone for SlideME to bring such a payment option at the store level, as opposed to developers having to implement intruding commerce options within each of their apps. Unfortunately Mobile carrier payments, unlike traditional payment options, have different price points for each country. Such price points do not accommodate the exact set price of an app, nor is it fair to users for such an app price to be fixed to the carriers’ price points per country. This means the same app could be more expensive in one country than another. For this reason SlideME has implemented a feature where any overpayment is credited to the user’s SlideME Wallet balance, which can be used to purchase other apps (or in-app items if the app is using the recently released SlideME In-App-Payments SDK or supported Open In-App Billing).


“3rd party Android app stores are becoming increasingly popular and we are excited to work together with SlideME, one of the leaders in this space. By adding mobile payments to their apps published on SlideME, developers can now earn more revenue from almost 5 billion people who do not have or do not want to use a credit card. With carrier billing, they can now conveniently charge purchases directly to their phone bill”

- Gerri Kodres, SVP of Business Development and Carrier Relations, Fortumo


List of countries supported currently for Mobile Payments http://slideme.org/payment-methods/operator-billing-coverage New SlideME Market (SAM) ver 6 app was also released this May 2014. As always, you can download from http://slideme.org/sam.apk

read more

by SlideME at June 04, 2014 07:26 PM

June 02, 2014

May 18, 2014

April 29, 2014

The Android and iOS Rivalry – Cosmetic and Functional

Android and iOS Rivalry

Bias throws any hint of fair assessment out the window. Even with independent reviews in consideration, there’s the suspicion that not all ground has been covered, not enough to justify the verdict at the end of a review. This has been the challenge in comparisons, especially in consumer electronics. For the longest time, Sony and Nintendo were caught in a bitter console war, until Microsoft stepped into the picture and redefined the playing field. The same is true with the ongoing rivalry between Android and iOS, both with technical merits and lapses of their own. So how do you evaluate these without siding for the OS installed in your portable device? Many favor either without even giving the competition a chance to prove its worth.

Crash Test

The competing OS are only as good as their latest updates, even though many users consider earlier versions as comfort zones that will do, at least for the moment. The initial test is in the upgrade, if it fares better than its predecessors did. This is often calibrated with a crash test, maximizing use of the OS until it tanks or underperforms. The iOS 7.1 has improved over iOS 6 at a 1.7% crash rate, but this is still at a significant disadvantage to the Android Kitkat, with only 0.7% crashes (figures are based on activity logs from over a billion users).

Adoption and Upgrade Preferences

In a matter of preference, the Android and iOS camps are bitterly divided, but there’s an ongoing consensus against the Android Kitkat and its incompatibility with many third-party applications. This is understandable, though, given the plethora of Android apps available, both in their beta and final versions. An 85% adoption rate for the iOS, in comparison to Android’s 8%, is indicative of the reception for both OS, although subject to change.

android and ios

Seamless and Efficient Design

The iOS interface has been overhauled in favor of simplicity, to ensure efficient and convenient navigation. You can pull up a Control Center menu to tweak utilities and connection options, and you can always customize the icons and font to improve readability and navigation. Most of the improvements are cosmetic, but these serve the purpose of having an interface that’s more user-friendly.

In contrast, Android’s menus (settings and prompts) are still seamless and merged, allowing you to swipe towards each with ease. The home screen is still customizable, but there’s a sense that the entire setup is a bit clunky, if not strained. Android’s Kitkat offers better autocorrect functions, with several suggestions placed above the text field. iOS presents these with bubbles on top of words, but somewhat gets in the way of proper input.

Android and iOS Navigation

There’s nothing to complain about in terms of scrolling and zooming, the response is great for both the Android and iOS. There are features ported over from previous versions, though, such as the Android’s Apps Drawer and the iOS’s jump-to-top-of-page status bar. The highlight, copy, and paste commands still need tweaking, but don’t set back the improvements. You could say the changes were superficial instead of functional, but it’s a big leap just the same, and it’s possible these are market tests for compatibility, in preparation for the next wave of revolutionary devices set to roll out in the coming months.

Lionel Luigi Lopez is a business writer, entrepreneur and a musician. He is also an active blogger and marketing strategist. He runs a small business in Manila and still active in music.
Follow him on twitter @lionelluigi

The post The Android and iOS Rivalry – Cosmetic and Functional appeared first on Android Apps.

by Gigi Fenomen at April 29, 2014 02:37 AM

April 05, 2014

CyanogenMod Installer Removed from Google Play Store

Why do you hate me?

Why do you hate me?

A bit of news sure to disappoint fans of Cid, the CyanogenMod team recently took to their blog to explain the removal of the exceptionally popular “CyanogenMod Installer” from the Google Play Store. Despite being installed on more than 100,000 devices and maintaining a 4.2 star average rating, Google has decided this particular little blue guy isn’t up to snuff.

Cordial Ejection

It’s worth noting that Google didn’t pull the CM Installer from the Play Store, rather they contacted the team and asked that they voluntarily remove the application before Google themselves had to intervene.

This strikes us as a relatively classy way to tell somebody you don’t want them publishing their software in your marketplace, and it’s certainly a step up from the treatment most developers are given: your application get’s thrown out on its ass like the drunk guy who keeps making trouble.

When the CM team asked Google for clarification as to why they were being escorted out the door, they actually sent them a proper response rather than pointing them to the TOS with a canned message:

After reaching out to the Play team, their feedback was that though application itself is harmless, and not actually in violation of their Terms of Service, since it ‘encourages users to void their warranty’, it would not be allowed to remain in the store.

CM Blog

Looking Ahead

It’s hard to argue with Google’s point. While the CM installer is undoubtedly an excellent gateway to get new users in to the world of custom Android ROMs, there’s absolutely a concern about less knowledgeable users getting themselves into a bad situation with this type of software.

Of course, in the end, the Play Store is Google’s domain and they can do whatever the hell they please. It seems pretty unlikely that the CM Installer will be returning to the official Android ecosystem anytime soon, but the CM team says they’ll be looking into getting onto alternative Android repositories such as the ones offered by Amazon and Samsung, so those looking for a one-click installation of the world’s most popular community Android ROM hopefully won’t be out in the cold for too long.

by Tom Nardi at April 05, 2014 03:30 PM

Win a Free Android Game Console Courtesy of PlayMG!

Free Console???  Yep!

PlayMG, a company dedicated to Android game consoles and safety online, wants to give one lucky Powerbase reader a PlayMG Android game console.  What is a PlayMG?  Well, we spent some time with the device several months ago.  You can read our impressions here.

So, how do you win?  Easy! 

1.) Find us on Google+ or Facebook.  Share the post!

2.) Like us on Facebook or give us a +1 on Google Plus.

3.) Come back here and leave a comment stating why you should win a PlayMG game console!

That’s it!

The winner will be chosen on Nov. 26th, so make sure to keep checking back! 

 

mgspecs

PlayMG Specifications

Check out Olivia Holt and Kyrie Irving enjoying the PlayMG below.

 

Powerbase Review | PlayMG

Powerbase Interview | PlayMG’s Taylor Cavanah

 

 

by admin at April 05, 2014 03:30 PM

March 30, 2014

Maverick 2.6

Maverick 2.6 is just released with map tiles downloader. You can “paint” areas to download with one finger or select a rectangle block using multi-touch. Select on the left all zoom levels you want to download. Tap and hold to select at once all zoom levels up to the selected level.

Downloader

Download: Pro versionLite version

Related posts:

  1. MX Video Player: best AVI/MKV player for Android
  2. Neat Calendar Widget
  3. Adobe Flash Player 10.1 on Droid X

by Jeff at March 30, 2014 01:18 PM

March 11, 2014

Beyond RenderScript - parallelism with NEON


My last post about the parallel implementation of Distributed Time Warping (DTW) algorithm was a disappointment. The RenderScript runtime executed the parallel implementation significantly slower than the single-core implementation (also implemented with RenderScript). It turned out that parallelizing the processing of 10000-50000 element vectors on multiple cores were not worth the cost of the multi-thread processing and all the overhead that comes with it (threads, semaphores, etc.). One core must be allocated a significantly larger workload but our DTW algorithm is not able to generate such a large, independent workload because rows of the DTW matrix depend on each other. So in order to exploit RenderScript multi-core support, it is best to have an algorithm where the output depends on only the input and not on some intermediate result because this type of algorithm can be sliced up easily to multiple cores.

It would have been such a waste to discard our quite complicated parallel processing DTW algorithm so I turned to other means of parallel execution. Multi-core is one option but the ARM processors in popular Android devices have another parallel execution engine, internal to the core, the NEON execution engine. One NEON instruction is able to process 4 32-bit integers in parallel (see picture below). Can we speed up DTW fourfold with this option?



NEON is actually quite an old technology, even Nexus One was equipped with it. It is much more widely deployed therefore than multi-core CPUs. While ordinary applications can take advantage of multi-core CPUs (e.g. two processes can execute in parallel on two cores), NEON programs are difficult to write. Although some compilers claim the ability to generate NEON code and template libraries are available, the experience is that the potential performance benefits cannot be exploited without hand-coding in assembly and that's not for the faint hearted.

The example program is attached at the end of this post. You have to be logged to the Sfonge site to access it.

The relevant functions are in jni/cpucore.c. There are 3 implementations, processNativeSlow, processNative and processNativeNEON, each is progressively more optimized than the previous one. The processNativeSlow and processNative functions are in C, in processNativeNEON the most time-critical loop ("tight loop") is entirely implemented in mixed ARM/NEON assembly. This tight loop produces 4 result elements in parallel so we expect huge performance gain over the single-core RenderScript implementation (dtw.rs).

The experience is completely different. While the NEON implementation is significantly faster on small datasets, one second of voice is 8000 samples so data sizes grow quickly. On 10 second data sets (80000 samples, 6.4 billion element DTW matrix) the simple nested loop C99 implementation and the complex, hard to understand NEON implementation produces about the same execution time.

How is this possible? Let's take an example of 10 second reference and evaluation samples. This means 80000 elements, 80000*80000=6.4 billion values to calculate. Calculating each value takes 20 bytes to access (2 input samples (2 bytes each), 3 neighbor cells (4 bytes each) and storing the result (4 bytes)). A1 SD Bench measures 800 Mbyte/sec copying performance on my Galaxy Nexus (and similar values on the two cheap Android tablets that the family has), that obviously means 2 accesses (one read and one write). For simplicity, let's assume that reads and writes take about the same time. This means that according to this very rough calculation, the memory accesses themselves take about 80 sec. The real execution time is about 120 sec, the difference can be explained by the simplifications. Cache does not really help because of the large data size. The performance is determined by the RAM speed and the simplest single-core implementation already reaches the bottleneck. All the wizardry with parallelism is futile.

Obviously the case was not helped by the selection of the DTW algorithm as benchmark which intentionally does not fit into the class of algorithms normally used to demonstrate the benefits of parallel processing. Grayscale conversion would be better (one read, one write and 3 multiplications per pixel). But this means that you actually have to be really lucky with your algorithms for these parallel options to speed up your code significantly. Even then, it is worth looking at the parallel options inside the core before going multi-core. And you definitely should not forget the auxiliary costs of parallel computation, e.g. distributing/gathering the data to/from the parallel processing units or whether other hardware (e.g. memory) is able to keep the pace with the CPU.

One wild idea at the end. Could RenderScript computation model be used to generate NEON code? With some limitations, the answer is probably yes.

by Gabor Paller (noreply@blogger.com) at March 11, 2014 08:42 PM

February 28, 2014

Publishing an Android book in the vogella book series

Since a few months I’m working on an Android book based on the popular Android online tutorials from my website.

Selection_017

On thing I learned in the past about book writing is that the process is extremely painful. Creating a consistent and almost error free description is much more work than publishing a good online tutorial. Fortunately I already have a great team of reviewer for the book, so I have high hopes that this book will be of great quality.

I plan to release early access versions of the book via Kindle and Google Play. This release process should start soon.

I want to add every month a new chapter and people which purchases the early access version can update their books. This process will continue until I finish the electronic book. The final book will be available as paper book and as ebook.

by Lars Vogel at February 28, 2014 10:17 AM

February 24, 2014

The Galaxy S5

Photos of the galaxy S5 leaked today, and let me tell you, I am not very impressed as far as the visuals go. This is a link to an album someone leaked today. The device itself doesn't look very impressive. The bezels are bigger than the S4, although the screen is bigger. A 2800mah battery with a rumored 2K screen is going to be a battery killer. The LG G2, came out 6 months ago and has a bigger battery than that, come on Samsung. I fear Samsung is falling into the same boat as Apple. Small subtle improvements each year, knowing that people will buy it because its "The Galaxy S5". I don't want that. I want something I pull out of my pocket, and people say "wow what's that!!!" Not, oh you have a galaxy? We're entering a time where phone manufacturers are all trying to make the next new fad (watches, fitbits, glasses) and unfortunately I don't see this being one of them, even though it will be. comment below on what you think about the S5!

by Captain Clyde (noreply@blogger.com) at February 24, 2014 07:21 PM

SlideME announces In-App-Payments SDK, Payouts in bitcoins, and new payment methods


SlideME has several key announcements:  

  1. Availability of the SlideME In-App-Payments (IAP) SDK
  2. Developer Payouts in bitcoins
  3. Mobile billing with many more payment methods to come
  4. Users can earn virtual currency to pay for apps or purchase in-app-items
With the release of the SlideME IAP SDK, developers can monetize their freemium apps (i.e., free to download but include the option for users to purchase in-app-items) distributed via SlideME to the many Android Open Source Project (AOSP) based devices without Google Play Services. In-app purchases for users is seamless as they can continue to use our current or new payment options, including purchasing in-app items through their existing SlideME Wallet.


The sheer volume of non-Google Play enabled devices can no longer be ignored by app publishers as more device vendors are leveraging the AOSP, which does not include the closed-source apps and services like Google Play and Google Maps. Developers should have a distribution strategy for apps being distributed to these AOSP based devices .


Today at MWC, we’re seeing Nokia releasing the Nokia X device based on the AOSP, and therefore without Google Play. SlideME as of today is present on the Nokia X, and many other device manufacturers have preloaded SlideME as a respected alternative to Google Play.





Good news for developers today from SlideME.  Developers have the option to be paid out in Bitcoins or to their Coinbase Wallet instantly.


read more

by SlideME at February 24, 2014 05:21 PM

February 08, 2014

Grails based survey system, the android app

Some time back I wrote an article describing the roosearch system I developed using grails. This is the second part, the android client, please checkout the previous article otherwise this might not make much sense! After completing the grails component, I had a RESTful API available to me, and I just needed to build an […]

by James Elsey at February 08, 2014 09:56 AM

February 07, 2014

RenderScript in Android - the parallel version

In the previous post I promised to revisit the parallel case. The big promise of RenderScript is to exploit parallelism among different CPUs, GPUs and DSPs in the device at no additional cost. Once the algorithm is properly transformed into parallel version, the RenderScript runtime grabs whatever computing devices are available and schedules the subtask automatically.

The problem with DTW is that it is not so trivial to parallelize. Each cell in the matrix depends on cells at (x-1,y), (x-1,y-1) and (x,y-1) (provided that the cell to calculate is at (x,y)). By traversing the matrix horizontally or vertically, only two rows (one horizontal and one vertical) can be evaluated in parallel.

Michael Leahy recommended a paper that solves this problem. This algorithm traverses the matrix diagonally. Each diagonal row depends on the two previous diagonal rows but cells in one diagonal row don't depend on each other. One diagonal row can be then fed to RenderScript to iterate over it. The picture below illustrates the concept.



The example program can be downloaded at the end of this post. You have to be logged to Sfonge site to access it.

You will notice that there are two parallel implementations. The findReferenceSignalC99Parallel() is the "proper" implementation that follows closely the RenderScript tutorial. Here the diagonal rows are iterated in Java and only the parallel kernel is implemented in RenderScript. This version - even though it is functional - is not invoked by default because it delivers completely inacceptable performance on my 2-core Galaxy Nexus. By looking closely at the execution times, I concluded that even though RenderScript runtime invocations ( copying into Allocations and invoking forEach) are normally fast, sometimes very innocent-looking invocations (like copying 5 integers into an Allocation) can take about a second. This completely ruined this implementation's performance.

The other parallel implementation which is actually invoked and whose performance is compared to the 1-core RenderScript implementation (the fastest one) is findReferenceSignalC99ParallelRSOnly(). This version is implemented entirely in RenderScript. Unfortunately its performance is 2-2.5 times slower than the 1-core implementation. How can it be?

First, if you compare dtw.rs and dtwparallel2.rs, you will notice that the parallel implementation is considerably more complex. Indexing out those varying-length diagonal rows takes a bit of fiddling while the 1-core implementation can take the advantage of fast pointer arithmetic to move from cell to cell sequentially. So the parallel implementation starts with a handicap. This handicap is not compensated by the 2 cores of the Galaxy Nexus.

OK, Galaxy Nexus is the stone age but what happens on a 4-core processor like on a Nexus 4? The runtime does launch with 4 cores but then the Adreno driver kicks in and the result is that the parallel implementation is about 3 times slower than the serial one. What happens in the driver, I don't know, as far as I can see, the source code is not available.

Jasons Sams recommended to disable the GPU driver with
adb shell setprop debug.rs.default-CPU-driver 1
but I decided to stop my adventures here. The conclusion I drew for myself is that RenderScript in its present form is not ready for parallel programming. Clang-LLVM is a very promising compilation technology but the parallel runtime suffers from a number of problems. IMHO, there should be a way to programmatically control the way the workloads are allocated to CPUs/GPUs. Until then, if you want to harness the power of your multicore processor, code the parallel runtime yourself. Using RenderScript for the serial code if you wish.

by Gabor Paller (noreply@blogger.com) at February 07, 2014 08:35 PM

January 21, 2014

Dragging Images When Scaling Must Be Restricted

I recently retired, but I have one more little tip to blog about. While I have a few ideas for some apps, I doubt that I’ll have to do the kind of intensive problem solving required during my job. Therefore this might be the last post.

I was involved with a suite of clients for business intelligence. The primary clients were created with Adobe Flex and ran in the browser. They provided for creating and viewing reports. The iOS and Android clients provided for viewing reports. Thus features were implemented in the Flex product first, and we who supported the mobile clients had to cope with adding them. The feature relevant to this blog entry was the ability to specify numerous scaling options for images (e.g. photos) that could be incorporated into reports. Some of these scaling options had no natural analog to the Android scaling options for images.

To support the requirement for panning and zooming images I took full advantage of the PhotoView library provided by Chris Banes. This library was a great solution for all but two of the required scaling options. Our product allowed for two rather silly options of fitting an image to the width or to the height of the viewport that the report designer drew on screen. If the other dimension of the image was greater, then part of the image would be invisible. I had to provide support for letting the user drag the image around in the viewport so that all of it could be seen.

The PhotoView library would have handled this except for the fact that we needed to set the scale type on the ImageView class to MATRIX, and PhotoView does not allow that. With no natural analogous scaling type to our “fit width” and “fit height”, I had to create a new subclass of ImageView to handle just the images requiring those types. The ReportImageView class has some code for doing the scaling needed to fit height or fit width, but I am leaving that out here so as to concentrate on the drag support.

import uk.co.senab.photoview.VersionedGestureDetector;
public class ReportImageView extends ImageView implements VersionedGestureDetector.OnGestureListener {

private VersionedGestureDetector mScaleDragDetector;

 public ReportImageView (Context context, AttributeSet attrs){
    super(context, attrs);
    mScaleDragDetector = VersionedGestureDetector.newInstance(context, this);
  }

  @Override
  public void onDrag(float dx, float dy){
     Matrix matrix = getImageMatrix();
     Matrix copy = new Matrix(matrix);
     copy.postTranslate(dx, dy);
     setImageMatrix(copy);
  }
  @Override
  public void onFling(blah, blah...){
    //no op
  }
  @Override
  public void onScale(blah, blah...){
    //no op
  }
}

The salient features are 1) make a new VersionedGestureDetector using the class provided in the PhotoView library, 2) implement the onDrag() method of the OnGestureListener interface. In onDrag() make a new matrix and post-translate it to the coordinates supplied, then set that as the image matrix.

When the scale type is “fit width” the user can drag the image up and down if the height is greater than the width. When the scale type is “fit height” the user can drag the image left or right. If you get such oddball requirements for images, try this solution.


by Todd Folsom at January 21, 2014 08:48 PM

January 05, 2014

Yota Phone – The Android Smartphone From Russia With Two Screens

Yota Phone

Let’s start with the underlying hardware. Compared to some of the flagship and high-end Android devices launched in 2013, the Yota Phone is decidedly mid-range. The Dual-Core 1.7 GHz Krait CPU has the speed and capability to run Android comfortably, but the handset doesn’t stretch the specs in the current market. It’s nice to see it comes with 2 GB of RAM, and when it was announced at CES 2013 these were cutting-edge specs, but the Android world has moved on since then.

The handset comes in just one storage memory configuration (32 GB) and unfortunately there is no SD card expansion port. Given 16 GB feels a bit tight on Android handsets today, the 32 GB option should be good for the life of the handset, and with smart use of cloud based services for storage and streaming it should suffice for the majority of use cases.

Read More from here.
http://www.forbes.com/sites/ewanspence/2014/01/04/yota-phone-review-the-android-smartphone-from-russia-with-two-screens/

by James at January 05, 2014 05:13 PM

December 18, 2013

App Translation Service Now Available to All Developers

To help developers reach users in other languages, Google launched the App Translation Service, which allows developers to purchase professional app translations through the Google Play Developer Console. This is part of a toolbox of localization features you can (and should!) take advantage of as you distribute your app around the world through Google Play.

You’ll find the App Translation Service in the Developer Console at the bottom of the APK section — you can start a new translation or manage an existing translation here. You’ll be able to upload your app’s file of string resources, select the languages you want to translate into, select a professional translation vendor, and place your order. Pro tip: you can put your store listing text into the file you upload to the App Translation Service. You’ll be able to communicate with your translator to be sure you get a great result, and download your translated string files. After you do some localization testing, you’ll be ready to publish your newly translated app update on Google Play — with localized store listing text and graphics. Be sure to check back to see the results on your user base, and track the results of marketing campaigns in your new languages using Google Analytics integration.

You can read more from here

by James at December 18, 2013 05:24 PM

December 07, 2013

Robots! Part 2, the android client

Continuing on from my previous post, I’ve created an android client that I can use to send commands to my python server. Ultimately I want to be able to control the robot remotely, the best way to do this would be to control the robot from a tablet or a phone which communicates wirelessly with […]

by James Elsey at December 07, 2013 11:01 AM

November 15, 2013

Moving An Android View By Dragging It

Yes, here is another article about moving or dragging a view with a finger, but I think I can give a complete example in one place. Most of what I read while developing a movable component did not give a fully working result. I started with the article on making sense of multitouch at the Android developers’ blog. Then I had to go search at Stackoverflow. I give some of those references in the code comments.

I had a requirement to provide a magnifier view, or jeweler’s loupe, which would provide a magnified view of a graph as the user dragged the view over the graph. The magnifier would become visible on a long press and stay visible while the user dragged it over the graph. The frame of the magnifier would display the magnified contents as provided by a helper method (not described here). Here’s a rough example from my testing app.

magnifier example

magnifier example

It shows a small bitmap (unmagnified in this test) and some bogus tooltip values to the right of the image. When this magnifier is dragged over the image (i.e. a real graph), the magnified area will update as will the tooltip information.

Let’s look at the code. Here’s the touch listener for the magnifier. It requires that the magnifier (a RelativeLayout) be passed in on the constructor.

private class TouchListener implements View.OnTouchListener{
   public TouchListener(RelativeLayout frame) {
     super();
     this.frame = frame;
   }
private float aPosX;
private float aPosY;
private float aLastTouchX;
private float aLastTouchY;
private static final int INVALID_POINTER_ID = -1;

// The active pointer is the one currently moving our object.
private int mActivePointerId = INVALID_POINTER_ID;
private RelativeLayout frame =null;

public boolean onTouch(View view, MotionEvent event) {

switch (event.getAction() & MotionEvent.ACTION_MASK) {
   case MotionEvent.ACTION_DOWN:
     //from http://android-developers.blogspot.com/2010/06/making-sense-of-multitouch.html
     Log.d(TAG, "action down");
     // Save the ID of this pointer
     mActivePointerId = event.getPointerId(0);
     final float x = event.getX(mActivePointerId);
     final float y = event.getY(mActivePointerId);
     // Remember where we started
     aLastTouchX = x;
     aLastTouchY = y;
//to prevent an initial jump of the magnifier, aposX and aPosY must
//have the values from the magnifier frame
     if (aPosX == 0){
         aPosX = frame.getX();
      }
      if (aPosY == 0){
          aPosY = frame.getY();
       }
    break;

    case MotionEvent.ACTION_UP:
      Log.d(TAG, "action up");
      reset();
    break;

    case MotionEvent.ACTION_POINTER_DOWN:
    break;

    case MotionEvent.ACTION_POINTER_UP:
      // Extract the index of the pointer that left the touch sensor
       final int pointerIndex = (event.getAction() & MotionEvent.ACTION_POINTER_INDEX_MASK) >> MotionEvent.ACTION_POINTER_INDEX_SHIFT;
      final int pointerId = event.getPointerId(pointerIndex);
      if (pointerId == mActivePointerId) {
         // This was our active pointer going up. Choose a new
         // active pointer and adjust accordingly.
         final int newPointerIndex = pointerIndex == 0 ? 1 : 0;
          mActivePointerId = event.getPointerId(newPointerIndex);
       }
  break;
  case MotionEvent.ACTION_MOVE:

     // Find the index of the active pointer and fetch its position
     final int pointerIndexMove = event.findPointerIndex(mActivePointerId);
     Log.d(TAG, "action move");
     float xMove = event.getX(pointerIndexMove);
     float yMove = event.getY(pointerIndexMove);

//from http://android-developers.blogspot.com/2010/06/making-sense-of-multitouch.html
     // Calculate the distance moved
     final float dx = xMove - aLastTouchX;
     final float dy = yMove - aLastTouchY;

     if ( Math.abs(dx) > mTouchSlop || Math.abs(dy) > mTouchSlop){
        // Move the frame
        aPosX += dx;
        aPosY += dy;

// Remember this touch position for the next move event
//no! see http://stackoverflow.com/questions/17530589/jumping-imageview-while-dragging-getx-and-gety-values-are-jumping?rq=1 and
// last comment in http://stackoverflow.com/questions/16676097/android-getx-gety-interleaves-relative-absolute-coordinates?rq=1
//aLastTouchX = xMove;
//aLastTouchY = yMove;
Log.d(TAG, "we moved");

//in this area would be code for doing something with the magnified view as the frame moves.
       frame.setX(aPosX);
       frame.setY(aPosY);
    }
    break;

    case MotionEvent.ACTION_CANCEL: {
      mActivePointerId = INVALID_POINTER_ID;
    break;
   }
  }

    return true;
}

 private void reset(){
   aPosX = 0;
   aPosY = 0;
   aLastTouchX = 0;
   aLastTouchY = 0;
   frame.setVisibility(View.INVISIBLE);

  }
}

Here is the first important point. At line 29, we see that the magnifier will initially jump from the touch point because the touch event streams relative and absolute coordinates. Prevent this by setting the aPosX and aPosY fields to the initial X and Y coordinates of the frame.

Next, look at line 76 in the case for ACTION_MOVE. The multitouch example from the Android developers’ blog would have us remember the touch position. However that causes problems, as described in the citations from Stackoverflow, so don’t remember the last touch point. If the distance moved is greater than the touchSlop (line 71), just go ahead and move the frame (lines 85 and 86).

With these two modifications to the code shown in the multitouch example you should be able to happily drag a view around to your heart’s content.


by Todd Folsom at November 15, 2013 08:08 PM

October 25, 2013

MicroConf Europe

I don't envy conference organizers these days - most of what's being said can be read the next day, for free, on line, at your own pace, from the comfort of your own home, and without spending a bundle of time and money to sleep in a far away hotel.

Competing with that is not easy, but the guys at MicroConf managed to.  I would sum up the weekend by saying that it was a "very high bandwidth experience".  Every day, from breakfast until I turned in, I was chatting with people or listening to speakers during the conference itself.  That's aproximately  16 hours of being "on", and by the time I got home to Padova, I was exhausted!  But at the end of the day, I felt like it was worth it being there in person, because of all the interaction with other people.  The speakers' talks all ended up on line, more or less, but all the chatting and discussion and getting to know everyone is the human element that is tough to replicate on line, and one of the most important reasons to attend a conference in person.  Prague is also a beautiful city - I wish I had had more time there to check it out.

Here are some highlights and notes, in no particular order:

  • Rob Walling talked about actual, concrete numbers when discussing his current project's revenues.  There's a ton of handwavy stuff out there on the internet, but real numbers are tough to beat.  What makes it especially nice is that they also felt "real": they're good numbers, no doubt about it, but not stratospheric, science fiction numbers that leave you feeling like "ok, whatever, but that's not the planet I live on".  They're numbers that make you think "maybe, if things go well, I could do that too".
  • The number of "I'm from X, but live in Y" people at the conference was high.  Irish but live in Spain, American but live in Japan.  Or maybe just noticeable because I'm in that category myself.  There were people attending from the US, Europe, Japan, South Africa, and even Australia.  Impressive!
  • Almost all of the speakers had very specific, concrete advice that I can and will apply to LiberWriter, time permitting.  I read, and have read, a lot of business books.  Most of them are kind of fluffy, truth be told, in that they've got one decent idea, and a lot of filler to turn what could have been a tight, ten-page article into a book.  This was quite different in that there were a whole lot of tips and tricks being thrown out.
  • Rob's wife Sherry gave a talk about life with an entrepreneur.  Having two kids and a wonderful wife myself, it's a point of view that I was very interested in hearing about.  Judging from the people I chatted with, this was not your typical "startup" conference with a bunch of 20-somethings with no family and no ties - a lot of the other people attending had kids to think about as they launch their ventures.  A question I asked of Rob was how much of a leap he took from consulting to working on his own products, with the answer being that he's actually pretty risk adverse.  No Silicon Valley story about betting the house and everything else on the company - apparently, revenues from the web sites and products were good enough that there wasn't even really a leap to make when he quit consulting.
  • The size of the conference was just right: enough people that I didn't quite manage to meet everyone, but not so many that it was overwhelming.  In downtime between talks, and during dinners, breakfasts, lunch and so on, the speakers were very available to chat with.
  • Patrick McKenzie seems to have stumbled into his life's calling as someone working at the border of software and marketing.  The amount of advice, anecdotes, and data that he was continually spinning off was incredible.  He comes across as being a down-to-earth, approachable, friendly person.
  • Part of the balancing act the organizers have to work with is where people are at: some people had an idea but no concrete business.  Some of us (me) make some money but not too much.  Others have viable businesses that they make enough to live off of, and then there are those who seem pretty much 'set'.  It's difficult to find people to speak to each audience without losing some of the others.
  • The thing I liked the most about a lot of what was discussed was that it seems realistic.  Few people at the conference were from Silicon Valley, and yet... they're successful!  I like hearing about success stories that work out really well for the people involved, but still feel like something attainable.  People should be looking to emulate the successful guys here, not looking at extreme outliers like Bill Gates or Mark Zuckerberg.
  • I'm used to tech conferences, where it's all about the technology.  There was very little actual tech talk at MicroConf - it seems like everyone knows their stuff and was interested in learning about marketing, sales, and so on.

However, since it was a business conference, I also have to put on my cold, hard accountant hat.  Will the conference pay for itself?  Only time will tell.  I learned a variety of interesting and useful things, many of which I think I can put into practice.  The problem is finding the time between consulting work and family, but that was a bottleneck before, too - I had, and have, more things to do than time.  Also, to be very direct about it, how much of what I learned could not have been learned by carefully reading accounts of the conference, slides, and other material published on the internet?  A lot of it.  I'm not sure I would have paid attention to all of it though, so the conference was definitely nice in that it exposed me to some talks and ideas that otherwise I might have brushed off before giving them a chance.  In terms of dollars and cents, I won't be able to say for a while whether it was a sensible investment or not.

Would I go again?  I'd like to - it was a lot of fun and the people were great.

Like I said, it's tough doing conferences because your competition is the internet!

by David N. Welton at October 25, 2013 10:21 PM

September 30, 2013

The Google LG Nexus 5, and why you should it should be your next smartphone

If you're like me, you are sitting on an upgrade, and not really sure what to do as far as picking a phone goes. I'm here too tell you, buy an iPhone 5C. Just kidding. Don't waste your money on Apple garbage that's 3 years behind every android device on the planet. I suggest to everyone, to wait for the Nexus 5 to come out in the next few months, and let me give you a few reasons why.

1. PRICE (pretty obvious)

The beautiful thing about buying Nexus devices, is you are getting top of the line hardware and specs, for almost half the cost as anyone else. The Galaxy S4 is around 700 dollars off contract, which is absolutely insane. The Nexus 5 will cost (this is an educated guess) around 300-350 dollars, which is half the price of anything else, with the same (in my opinion better) user experience.

2. UPDATES (real catch)

Buying a Nexus phone has one simple bonus. You will always (except for you Gnex verizon people) get the latest version of android, before everyone else. Who doesn't like new software as fast as possible?

3. Everything else

The Nexus 5 is going to be a 5inch 1080p screen with a snapdragon 800 processor with 2GB of ram and a 8mp shooter. Now for those of you who have no idea what I just said, I can break it down for you. Let's imagine that the phone you have in your hand right now (which im guessing is close to 1-2 years old) is the car you had when you were 16. Probably an old beater that had 200,000 miles on it that you didn't care about. The Nexus 5, is an Audi A8 with all the little extras like leather seats and air condition and the fancy GPS that you brag about to all your friends, but never really use it, because you would have your Nexus 5 navigating you around with Google Maps ;)

when it doubt, wait it out, and buy Nexus 5

by Captain Clyde (noreply@blogger.com) at September 30, 2013 10:41 PM

September 18, 2013

Wallpaper Wednesday – Schwangau

Wallpaper Wednesday - Schwangau

This week’s wallpaper is called Schwangau after the place where it was taken. I always use the wallpapers that I put up, and I hope you like it enough to use it too.

This wallpaper will work great on any Galaxy Tab or Galaxy Note. Click here to download.

by Kyle Dornblaser at September 18, 2013 07:23 PM

September 11, 2013

Wallpaper Wednesday – Prague

Wallpaper Wednesday - Prague

This week’s wallpaper is called Prague. I always use the wallpapers that I put up, and I hope you like it enough to use it too.

This wallpaper will work great on any Galaxy Tab or Galaxy Note. Click here to download.

by Kyle Dornblaser at September 11, 2013 02:37 PM

August 06, 2013

Try Some Old School Fun With 3D Snake

The old snake game has gotten a facelift and a new name. 3D Snake for Android is just what its name implies. The old school game has gone 3 dimensional, and it has never been so much fun. The premise is still the same. You are a snake eating as you crawl along in a box getting bigger and bigger as you go. If you are not fast enough to stay away from the edges, you die. It gets harder the bigger the snake gets, of course. In this newer version, you are a cute little grass snake eating bugs and growing as you go along, but if you get too big and lose control you are in trouble.

It is an analogy for life really, if you think about it. We go along our lives and our triumphs can make our pride grow and grow until we can no longer fit in the constraints of our lives or around the people in it. We can't get out of our own lives, therefore if we grow so large as to bust out, we lose it. Maybe we don't literally lose a life, but we very well could lose much of what makes up our lives as we know it.


No one wants to think about that though. The goal here is to get as big as possible and stay away from the edge, which is not as easy as it sounds. Do it well thought and watch your score climb on the Swarm leaderboards.

by Beti (noreply@blogger.com) at August 06, 2013 09:07 PM

July 30, 2013

Avoid The Mines In Minesweeper ++ Lite


Minesweeper is the classic game of "can you figure it out before you die." It is the perfect way to kill time or rest your brain with some mindless activity for just a few minutes without anyone knowing.  Countless execs over the years have utilized the game to take a break while looking busy, and now with Minesweeper ++ Lite for Android the same technique can be used by anyone anywhere on their android mobile device.

While it may take a second to catch on, once you do you will be hooked. You must "guess" where the mines are and stay away from them. This becomes easier to reduce with time and guessing is no longer necessary once you figure out what you are doing. 


What makes it even better is the ability to post scores to the Swarm leaderboards. Compare your progress and rank with players from around the world, but be certain you change your name lest anyone else lurking around the boards catch on to your sneaky break time routine. Of course, be wary of who you share your gaming name with also, but a little inner office camaraderie never hurt anyone.   Enjoy free time, or use it as a cover to make you look busy when you are not. Either way you will love the fun that Minesweeper offers.

by Beti (noreply@blogger.com) at July 30, 2013 04:48 PM

June 26, 2013

T-Mobile To Announce “Simple Choice with no credit check” plans

It seems that T-Mobile always does this. They introduce something fairly interesting, and then follow it up with something also kind of interesting, but also a little confusing. It got bad a few years ago, when they had multiple tiers of plans and it was difficult to tell the differences between them in many cases. Their latest foray piggybacks their Uncarrier campaign. “Simple Choice with no credit check” will provide the credit-challenged with access to those same Uncarrier plans.

There are many catches, of course, and the confusion of the plan might turn off consumers before they get a chance to see how it can work for them. For starters, this is advertised as, and mostly effective as, a family plan. Individual users with bad credit are better off examining T-Mobile’s traditional prepaid plans, which are pretty close to the Simple Choice plans, but with no deposit.

Yes, a deposit is required for the no credit check plans. That starts at $60 for the first line, followed by a $40 deposit for the second line, and $20 each for the next two lines. A fifth line is also a $20 deposit, but that has to be a non-phone internet device (tablet, for example). The deposit is refundable, so presumably it covers you for potential non-payment.

The biggest loss here is the lack of automatic payments. Why T-Mobile would take that away I don’t understand. Companies absolutely love autobill features, and it’s pretty standard in prepaid. (Virgin Mobile offers a $5 per month discount if you sign up for automatic payments.) Maybe it will be available in the future, but for now it’s off the table.

Combine all that with the necessity of paying for a device in full, up front, and you have a not so attractive plan. There will be many customers, for sure, who will want an option like this. But given the ease of T-Mobile’s Simple Choice plans, it seems as though this appeals only to those who absolutely cannot pass a credit check. In which case, they’re stuck with what T-Mobile offers.

Via TmoNews.com.

The post T-Mobile To Announce “Simple Choice with no credit check” plans appeared first on MobileMoo.

by Joe Pawlikowski at June 26, 2013 12:30 PM

June 21, 2013

Beat on Broken Hearts in Springloaded’s Heart Beaten for Android

heart.beaten-android

Beat on Broken Hearts in Springloaded’s Heart Beaten for Android

Most people that have been in love have had their heart broken at some point, and it always sucks. The folks at Springloaded agree, and Heart Beaten is their retro tribute to lost love and heartbreak.

Android Games

by Adam Field at June 21, 2013 02:58 PM

Monoprice 8320 Earbuds Deliver at a Low Price

20130620_180008

Earbud headphones almost always suck. At least for me, and I know plenty of others who simply cannot stand them. I remember seeing everyone walking around with the signature white iPod earbuds as I walked around New York City in the mid-00s, wondering how they found them at all comfortable. For me they alway fell out, so I had to readjust them every 30 or so seconds while walking.

A recent trend in earbuds is including three different size buds with each pair. If the default buds are too big or too small, you can change it to one of the other included sizes. This is nice in many ways — I actually have a pair rigged up with two different sized buds on each ear — but I still can’t seem to find a pair that stays in my ear while walking.

Recently I connected with Troy Redington of FatWallet, who raved about the Monoprice 8320 earbuds. At first he went on about the sound quality, how they all but eliminated outside sound. Then he went on about the price, around $8, which just blows away the cheap earbud competition. When I asked about comfort he said he had dozens of earbuds lying around, but these fit far better. So sure, send me a pair for review.

I’m not going to say that these earbuds stayed in my ear like a dream. I’m not going to say that they’re superior to the Bose over-ear headphones I have. But I will say that in terms of earbuds, they are the most comfortable I’ve worn and they do deliver on sound quality. While they’re not great for spoken-word audio, such as podcasts, they do a real good job with all styles of music I tried.

As you can see in the picture atop this post, they’re not exactly normal looking earbuds. They have something of a hook on top, which is actually great. The hook helps the buds fit snugly in your ear. It takes a little twisting, but I got them to fit very well without moving too much. The cords also wrap around your ear, rather than hanging straight down. This probably makes the greatest difference. Since using these, I started wrapping all of my earbuds around my ear like that, and it honestly does make all of them more comfortable.

Yet what stood out to me about the Monoprice buds is that they’re made of nylon, rather than the cheap plasticky, rubbery substance you see with most headphones. It’s strange, because the buds are so cheap, yet the material feels anything but. They just feel more durable, which is nice. When I buy headphones under $10 I expect to replace them pretty quickly. These feel like they’re last for a while.

You can check out the FatWallet site to get these earbuds at an insanely cheap price. They do offer cash back if you register, which is nice. Again, it’s tough to do better for $8. It’s probably tough to do better for triple that.

The post Monoprice 8320 Earbuds Deliver at a Low Price appeared first on MobileMoo.

by Joe Pawlikowski at June 21, 2013 12:30 PM

June 20, 2013

Aquaria comes to Android via the Humble Bundle 6

Screenshot_2013-06-20-01-39-00

Aquaria comes to Android via the Humble Bundle 6

Aquaria is another awesome Indie that’s just arrived on Android courtesy of the Humble Android Bundle 6. It's the second Bundle game we've covered so far, and it's unlike any platformer you've ever played.

Android Games

by Adam Field at June 20, 2013 03:48 PM

January 14, 2013

The Software Millionaire Next Door

I've been reading "The Millionaire Next Door" and have so far found it to be a pleasant book with a good message: don't waste your money on silly things and appearance (fancy suits, fancy cars, expensive boats, etc...), save what you do earn consistently and constantly, invest wisely, and so on.   Wikipedia has a good summary:


http://en.wikipedia.org/wiki/The_Millionaire_Next_Door

One of the things I like about it is that it focuses on "ordinary" wealthy people, those with a million or more in the bank, but not the Warren Buffets or Bill Gates types that are extreme statistical outliers.  There are plenty of people in the US who have done well by themselves by slowly but surely putting together enough money to be financially independent, without, however, being in the spotlight.   As the book says, these are the kind of people who maybe own a local chain of businesses doing something fairly ordinary, but doing it well enough to succeed.  They may very well not live in a fancy house, nor drive an expensive car, or otherwise outwardly draw much attention to themselves.

The world of software does not revolve around "dressing for success" (you noticed?), but we do tend to focus on the "big winners".  Gates, Jobs, Zuckerberg, Larry & Sergey, Larry Ellison, and so on are the stars of the show.  Of course, the economics of software being what they are, instances of winner-take-all markets with one big fish and a lot of also-rans are not uncommon.   However, that is not the only story, and I think it'd be interesting to know more about those in our industry who have accumulated significant wealth, yet are not the guys with more money than they could possibly ever spend on things that aren't, say, country-sized chunks of real-estate.

I'm guessing they'd fall into these categories:

  • Highly paid workers who have consistently saved over the years.  There are examples in the aforementioned book about people with relatively low salaries who happened to be very frugal and invest well (and have had some luck in their investments too).  These people would probably tend to be older, as it takes a while to save up that kind of money, and since this industry is so young with so much turnover, I would not think there would be a lot of people out there like this, but who knows, maybe there are a bunch of IBMers with this kind of story.
  • Those who got in on the right IPO, like Google or Facebook or something like that.  These events not only generate billions for those at the top of the heap, but for the right person at the right place at the right time, can mean significant wealth even without being in the upper echelons of the company.  My suspicion is that this kind of IPO, where everyone cashes out, is not common enough to have a lot of people in this category, but who knows, maybe it adds up over the years.
  • Those who own or started software firms that do something that's not very visible, but nonetheless dominates some particular niche.  This is where I'd guess most of them would be, but I certainly have no data or even anecdotes to back this up.

It'd be very interesting to gather some actual data on this, although I'm not in a position to do so myself - I wouldn't even really know where to start. 

As I age, I think the third category has begun to seem appealing in many ways - I'm simply not cut out for the Big Company life, and I'm not interested in living in Silicon Valley and going "all in" on the latest startup - I already did that, and while it was fun and I don't regret it, it's not the kind of thing I'd want to do now that I'm married and have kids.   Incidentally, this more relaxed, under the radar approach is exactly what is expoused in one of my favorite books of the past few years, Start Small, Stay Small.

Edit : I finished reading the book and reviewed it here: http://davids-book-reviews.blogspot.com/

by David N. Welton at January 14, 2013 10:23 PM

December 22, 2012

InDrive: Custom Car Home 1.0

We are pleased to announce the launch of a new Android application that may appeal to everyone who uses their phone while driving.

InDrive is a GPS-enabled application that combines the standard car home functionality with a trip computer and Poweramp support. The app makes it very easy to launch your favorite applications, directly dial numbers, view your trip information and control music playback*. It will auto launch when placed in a compatible car dock. If you don’t have a physical car dock, InDrive provides an option to force the phone into car mode, in which it will override the Home button.

  

* The music screen is designed to work in conjunction with Poweramp. Without Poweramp installed, you will only be able to do very basic controls such as switching to the next song in the default Android music player. Support for other media players is not guaranteed.

Please download the app from Google Play and tell us what you think. Your feedback is much appreciated.

Related posts:

  1. TAT Home: 3D home screen
  2. Nexus One desktop dock now available
  3. Video: Flash 10.1 and a new home screen

by Jeff at December 22, 2012 01:59 PM

July 23, 2012

Transfer of data using Intents (Part 2)

Hi everyone!

In spite of trying hard, I couldn’t prevent the delay. I am again sorry for that. Let’s move on. In the last post, I introduced the concept of transfer of data between activities. I also described the code for declaring an Intent which could help us in accomplishing the task.

Now, it’s time to look at the code of SecondActivity.java, the second activity which will help us in adding new tasks to the list. As mentioned earlier, this activity will have an EditText to allow the user to input the task name and a Button, which when clicked, will take the user back to HelloWorldActivity.java and add the task to the List. The code for the click listener for this button looks as follows:

  1. String taskName = taskEdit.getText().toString();
  2. Intent intent = this.getIntent();
  3. intent.putExtra(“task”, taskName);
  4. setResult(RESULT_OK, intent);
  5. finish();

Here, taskEdit is an object of class EditText. The first line extracts the data input to the taskEdit, converts it into string and stores it in a variable. Second line is used to grab access to the intent which called this activity. The third line is the one which actually does the job of putting the data onto the intent. intent.putExtra function used in this line basically adds the information contained in the second parameter to the intent and the first parameter provides a way to access it. We will see the use of the first parameter in a greater detail later, when we will try to access this information in HelloWorldActivity.java. I hope that the fourth and fifth lines will be pretty easy to understand. If not, please refer to the last three posts on Intents.

The above code ensures that the clicking of the button takes us back to the initial activity with an intent which contains the name of the new task that is to be added to the list.

Clearly, the callback function described in Part 1 of this post will be used to access the information carried by the intent since this function will be automatically called when the control is given back to this activity via an intent. Straight away, let’s look at the code!

String extraData=data.getStringExtra(“task”);
taskText.append(extraData+”\n”);

I think it is self-explanatory. We are extracting the information from the variable data using the value of the first parameter of the function in Line 4 above, and saving it in a variable called extraData. The second line just appends this value to the list (referred by taskText).

In this way, we received the name of the task from a different activity and display it in our main activity. This provides a clean and user-friendly interface which is the basis of a useful app.

But here, we have not taken care of the situation when the user calls the intent to SecondActivity.java but wants to cancel it later. This is not perfect programming, though it can be dealt very easily. How?

In the next post, we will finish our discussion on intent and move on to explore some new concepts in Android App Development.

Till then, BYE!


by Nikhil Gupta at July 23, 2012 12:44 PM

July 11, 2012

Transfer of data using Intents (Part 1)

Hi all!

Last time, we had looked at the most basic communication which can be achieved among activities. It allowed us to switch between activities back and forth, which is an important concept used in almost all the android apps these days.

Moving on, it’s time to look at the data transfer using Intents. Consider the case of a simple Task application, in which a To-do list is shown in one activity while another activity performs the task of adding new items to the list. So, what’s happening here?

Basically, we need to create a new task in the second Activity and somehow transfer it to the first activity so that it could add it in the existing list. Note that we are not using any database. If we do so which is done most of the times, this app will be useless in itself. But, I am still discussing this app because I feel that it’s the best in order to understand the concept of transfer of data which you may need in various other apps.

In this post, I will not go through the layout or the entire code of the app. I may go through it later. But, I hope that you will be able to do so after going through the previous posts. As a hint, we will be using a TextView (to display the list) and a Button while making the first activity, while the second Activity will have an EditText and a Button.

Assuming that we have an EditText in the second Activity and when the user presses enter, the string in the EditText is captured in a string variable called NewTask, we need to simply tranfer the contents of NewTask to the first activity.

To achieve this, we need to call the intent when the button in pressed in the first activity in such a way that the Android platform knows that some data will be coming back to this activity. Continuing with the app from the previous post by replacing the startActivity(intent); by

startActivityForResult(intent, 1);

as a parameter acts as a unique code used to distinguish data received by this intent from the data received by other intents if more intents are used. Using the above functin, we have been able to call the intent, but we have not yet accessed the data which comes back with this intent.

To achieve this, we need to use a callback function which will called automatically when the intent returns. Let’s look at the code for this function:

public void onActivityResult(int requestCode,int resultCode,Intent data)
{
          super.onActivityResult(requestCode, resultCode, data);
          if(resultCode==RESULT_OK)
          {
                      //Code to extract the required information from the variable data
          }
}

In our case, requestCode is 1. resultCode is a variable which is set to value RESULT_OK if the intent was successfully handled. data is the variable which contains the data received from the other activity.

In the next post, we will look at the code to extract the information as well as the code for the second Activity which puts the information in the intent.

Till then, BYE!


by Nikhil Gupta at July 11, 2012 05:36 AM

July 04, 2012

Planet Android summer cleaning

Blogs come and blogs go, and nowhere is this more apparent than in a fast changing technology area such as Android. Today I removed 12 feeds from PlanetAndroid that haven't had updates in a while (some since 2010). If you feel your feed was removed in error, let me know.

In a reply to a recent post, one reader said they'd like to see fewer app reviews and news articles here, and more development diaries, tutorials, and community activities. What do you think? What are your most favorite and least favorite feeds? Let me know in the comments.

by Ed Burnette (noreply@blogger.com) at July 04, 2012 03:00 AM

June 14, 2012

New PlanetAndroid feed policy

Starting today I'll be removing most feeds that include embedded ads. Currently, I pay for PlanetAndroid's upkeep out of my own pocket, with no revenue coming in from ads or donations at all. When an ad appears in one of our feeds, it takes space away from the other articles and gets clicks based on the drawing power of the whole site, including feeds with no ads. That didn't seem fair.

I grandfathered in a handful of feeds for various reasons including new sites that need the extra juice that PlanetAndroid brings to help them get started. Some sites report that being listed on PlanetAndroid has doubled their traffic! If you feel your feed was unfairly removed, or if you make a new feed without the ads and want to re-join, just let me know. Thanks for your support.

by Ed Burnette (noreply@blogger.com) at June 14, 2012 12:48 AM

June 12, 2011

Android and openness

On Thursday I gave a talk at TriLUG. The slides I used are available but will probably be rather cryptic without my accompanying commentary.

Although I understand that Google has had to contend with both the open source zealots and the closed-everything carriers, upon looking at the trend, I find Google’s actions getting more disturbing. Just as Android seems to be coming into its own and Google should have more power than ever to twist arms, Google seems to be wimping out – or turning evil. I hope I’m wrong and they’re just waiting for the right time.

One thing I completely forgot to talk about is the abandoning of the Nexus One. When it came out, it was supposed to herald a new age of cross-carrier, stock-Android phones (with a built-in connection-sharing capability, no less). Only T-Mobile really picked it up – you could use it on AT&T but without 3G. Verizon and Sprint were supposed to be coming out with support for the same concept and just a different radio, but instead they released their own phones, with the usual modifications and constraints. So why did Google let them? They didn’t have to; the Skyhook case shows that Google can essentially pull their blessing from any phone for any reason. An Android phone without the Google apps isn’t going to be very attractive to consumers. Why didn’t Google force Verizon and Sprint to kowtow to the Nexus One before allowing them to release any more Android phones?


by Luke Meyer at June 12, 2011 12:59 AM

April 01, 2011

Is this thing on? ::feedback:: ouch…

Well – I don’t want to let the *entire* month of March go by without a post. I just haven’t done much with tech this month, though. It sucked. But evidently my absence has caused a surge in popularity, according to my stats. Less is more?

If I remember correctly – is Honeycomb the first version of Android where we actually saw a preview, got to fiddle with the SDK platform preview before it was actually embodied in a device? If so, better late than never, and let’s hope it means we’re on the way to seeing more of a community effort. Hey, it took a while for Red Hat to learn with Fedora, too, and they didn’t have voracious proprietary partners to contend with.

I have a meetup or two to arrange, but I hope I get some time to work further with ORMlite shortly.

Happy April Fools Day tomorrow!


by Luke Meyer at April 01, 2011 01:01 AM