Planet Android Headlines

↑ Grab this Headline Animator

January 31, 2015

Introversion Software's Prison Architect will be coming to Android soon

Introversion Software has done pretty well for itself with their Prison Architect on Steam for PC gamers. You may be familiar with the company's hacking themed game Uplink which landed on Android some time ago. Well it looks like Prison Architect will be making the jump from PC to mobile devices and this includes Android.

For those of you not familiar with this game, Prison Architect is a prison management sim game where players essentially build and run their own prisons. This also means you will have to deal with all the problems big prisons deal with as well. Everything is in a top-down perspective as well and you will literally be building your prison from a small facility to a massive penitentiary while populating it with criminals and staff.


Screenshot from PC version

According to Introversion, the mobile version of Prison Architect will be as close to the PC version as possible. There may be some concessions such as a population cap but this would be more for lower powered tablets than because it can't fit into the game. As of right now, it isn't known if Prison Architect will be strictly for tablets or if there will be phone optimization as well. For right now though we are going to say it is tablet-only until it is confirmed for phones as well.

In regards to a release date and price, nothing has been announced as of yet. We are going to reach out to Introversion to see if we can't more details and when we do, we will post an update.

Trailer is from the PC version.

Official Website: Prison Architect

Website Referenced: PocketGamer

January 31, 2015 05:01 AM

More details regarding the upcoming Duke Nukem 3D: Hail to the King Collection

We have dug up some additional details regarding the upcoming Duke Nukem 3D: Hail to the King Collection from Voidpoint that will be landing onto Google Play sometime in Q1 2015. As we mentioned in our original article, Voidpoint hasn't come up with a specific price point yet for the collection but we do now have confirmation that there will not, at all, be any IAPs. We did mention that the entire collection would be included in the launch but considering the amount of games in it, we wanted to make sure it would be available for one price.

For those of you curious about Google Play integration, Duke Nukem 3D: Hail to the King Collection will actually not have that when it launches. However, Google Play integration will be added post-launch. We also asked about achievements because some console versions actually come with those. We actually got a bit bigger of an answer regarding this:

Achievements...  Excellent question.  Just a brief history on this version of Duke3D - this is as pure and as close to the original experience and you can achieve - many console versions with achievements have been ports or iterations - this is more in line with a fresh build.  So if something fun or interesting occurs to us to do with achievements, then we'll add them in.  But there are no plans to copy over achievements from the console versions.

So there you have it. Some answers to (hopefully) some questions you may have had. We are actually going to try and sit down and have a much bigger interview with Voidpoint in the very near future so stay tuned for that! If you missed our original article you can check that out here which, if you're a fan of Duke Nukem, you should probably do.

January 31, 2015 04:12 AM

AT&T snags valuable spectrum from FCC auction

AT&T snags valuable spectrum from FCC auction

AT&T has acquired some pretty valuable spectrum today from the FCC. How valuable do you ask? 18.2 billion dollars valuable. The licenses for the AWS-3 10×10 spectrum are nearly nationwide.

ns_att_building_logo

What does the acquisition of this J-block spectrum mean for customers? Speaking about today, nothing. Updating the infrastructure takes time. In a couple of years, however, this will allow more throughput on the mobile network. Having a “fatter pipe” per se allows for more network traffic and faster speeds for more customers. This is a good thing for AT&T subscribers.

AT&T is expecting to begin putting the new spectrum to use beginning in 2017 – 2018. They need to get on board with the device OEMs, network standards bodies, government agencies and network suppliers to ensure end to end functionality. In the beginning this will be supplemental downlink for users. Full uplink functionality will take a bit longer.

Source: AT&T

Land of Droid -

by Scott Kenyon at January 31, 2015 04:09 AM

Aqua Dark Material Theme for CM12

A1J37ma

XDA Senior Member Simix93 prepared a nice looking theme changing the original colors into shades of green. Elegance, as the name suggests, is a nice way to make your CyanogenMod 12 look elegant. Check it out!

The post Aqua Dark Material Theme for CM12 appeared first on xda-developers.

by Tomek Kondrat at January 31, 2015 04:02 AM

Fonts Collection for CyanogenMod 12

device-2015-01-30-220236

Check out this collection of amazing fonts ready to make your CyanogenMod 12 ROM even more beautiful. They are made by XDA Senior Member xdagee and ready to be installed onto your device. Head over to the thread to find more!

The post Fonts Collection for CyanogenMod 12 appeared first on xda-developers.

by Tomek Kondrat at January 31, 2015 03:27 AM

Send Links to Any Nearby Device with CaastMe

CaastMe

There already are many solutions on the Google Play store if you want to send a link to one of your devices — but what if you wanted to do it quickly without having to install any software or logging in to a website on the recipient end? Most apps require you to do either or both, which can be a hassle (or even a security risk) in some cases.

Luckily, XDA Forum Member wyemun has developed CaastMe. Inspired by how WeChat and WhatsApp use QR codes, the developer took it up as a challenge to code the website and Android app in less than a day. Don’t be fooled by the short time it took, though, as CaastMe is actually very polished and simple to use.

You probably want to know how it works at this point. After you’ve installed CaastMe, only two steps are actually required:

  • First, go to http://caast.me/ (this works on desktop browsers as well as some mobile browsers, although you may need to enable the “View desktop site” option if you have any display problems). A QR code will appear on your screen.
  • From your mobile, share the link you want to CaastMe. This will instantly open your camera, allowing you to scan the QR code. As soon as you do that, you’ll be redirected to the link you just shared.

You can also view the screencast below if you’d like to see it in action. If that’s not enough, you’ll be pleased to know that sharing other data (such as images) is planned for the future.

If you’re looking for a hassle free way to share links that doesn’t involve installing software everywhere or dealing with logins, head over to the CaastMe forum thread now to grab it and give it a try.

The post Send Links to Any Nearby Device with CaastMe appeared first on xda-developers.

by GermainZ at January 31, 2015 02:29 AM

January 30, 2015

Meet the Relativity watch face for Android Wear

Post_20150130_Relativity-Header

When visual designer Ryan Considine saw the first wave of watch faces for Android Wear devices, he was less than impressed with the selection at his disposal. A born problem solver, Ryan teamed up with Android engineer Elliott Chenger to create a watch face that was worthy of our wearables. They called the result, Relativity, and it can now be downloaded for free on the Google Play store.

As the Google Play description states:

Relativity is a simple yet precise way to see your relative progress through the week. It’s a completely new way to see and think about time. And although it is fundamentally new in concept, it still looks and feels at home on your wrist.

Progress Through the Day The longest marks represent midnight of each day, while the other marks represent 3am, 6am, 9am, noon, 3pm, 6pm, and 9pm throughout the day.

Progress Through the Week As the hand passes around the face it passes through each day, starting with Sunday at the top, and conveniently passing through Wednesday at the halfway point: halfway through the week.

Time and Date at a Glance Although the progression of the hand around the face is a unique and interesting way to read the time and day, we included glanceable read-outs as well—in formats you’re used to—so you can find that information in a second.

But talk is cheap. The best way to discover Relativity is to download it and wear it around for a little while. There’s no better time to try it out than now.

The post Meet the Relativity watch face for Android Wear appeared first on Mutual Mobile.

by Mark Killian at January 30, 2015 09:53 PM

One Billion Android Smartphones Shipped Worldwide in 2014

android

Android running smartphones are entering legendary territory. Why, you may ask? Well, the open source mobile OS is boasting with an impressive figure : over 1,000,000,000 units shipped worldwide in 2014, all of them running on Android! That’s something, don’t you think?

According to Strategy Analytics, the smartphone market grew with ~30% in 2014 (compared to last year’s figures), to 1.3 billion smartphones sold in 2014 from which 1 billion + were droids.

That makes for 81% market share for Android, a VERY impressive figure. The huge leap of over 30% was due to emerging markets, like Indonesia and China (these countries together have like one third of the world’s population if memory serves), being immense consumer markets which drove the smartphone industry’s growth in 2014 and it seems 2015 will be just the same.

Basically, Android is on its right track  with no visible enemy on the horizon and I can’t wait  to see my favorite smartphone brand (Nokia, that is) launching droids in the near future (after the unholy alliance with Microsoft).

After only 800 million units sold in 2013, Android became the first mobile OS in the world to ship over one billion (in 2014). In terms of sales figures, Apple is playing in the little league and that’s music to my ears. Apple’s iOS manage to ship 192.7 million units worldwide in 2014 and that’s actually a respectable figure  for just one manufacturer with only one or two new models every year.

Microsoft’s OS is virtually off the radar, with only 38.8 million smartphones sold globally last year (2014) making for a mere 3% market share

 

The post One Billion Android Smartphones Shipped Worldwide in 2014 appeared first on Android Apps.

by Chris at January 30, 2015 04:56 PM

Future High-End Droid Samsung Galaxy S6 Details Leaked

galaxy s6

All droid heads are eagerly waiting for the new high-end flagship from the Korean manufacturer, namely the soon-to-be-the-next-most-desired Android smartphone in the world, Samsung Galaxy S6 ladies and gents.

Even if the info I’ll share with you must be taken with a grain of salt, i.e. in the rumor department, along with some renderings presented just a few days ago, now we have a clear and undeniable set of let’s say “drawings”, revealing the actual size/dimensions of the next Galaxy S6.

 

 

These schematics clearly show that the next Galaxy flagship will not “boldly step where no other Galaxy S did it before”, in the phablet territory that is. I mean, some folks feared that the next gen flagship from Samsung will be so big and heavy that you’ll require steroids and supplements in order to use it properly. Rest assured, since we know the actual dimensions and they’re pretty okay : 143.5 x 70.7 x 7.2mm vs the actual S5′s 142 x 72.5 x 8.1mm. The S6 will be pretty decent in this regard. The only difference will be felt due to the extra 1mm of thickness, but I think that’s livable.

Another thing revealed by these “schematics” are the large camera objective and the usual set of sensors, all in good ol’Samsung tradition.

Since we already have three concurring/similar leaks (see the inserted links in the second paragraph) we may safely assume that the Galaxy S6 is already in the works and the rumors are pretty solid.

 

Stay tuned for “moar” news as they develop and fingers crossed for Samsung!

 

 

The post Future High-End Droid Samsung Galaxy S6 Details Leaked appeared first on Android Apps.

by Chris at January 30, 2015 04:05 PM

January 29, 2015

Let’s put CES to rest

Yes, CES just happened. And as always, there were a lot of technological innovations on display. Let’s take a final look at some of the cutting-edge consumer electronics that made their debut in Vegas, and start thinking about how they will impact us in the future.

MONTHLY SPOTLIGHT

Hour of Code Children are the future (devs)

Mutual Mobile was pleased to participate in the latest Hour of Code initiative by sending iOS engineers Conrad Stoll and Rene Cacheaux to Dripping Springs Elementary School to teach some bright, young minds how to use Swift. The lesson was such a huge success, Conrad wrote an entertaining and insightful article about the experience. Read it here.

PODCAST SPOTLIGHT

The post Let’s put CES to rest appeared first on Mutual Mobile.

by Jon Hutchison at January 29, 2015 10:00 PM

January 28, 2015

Android Development: Lotsa Links

This is meant to be a living archive of Android presentations, articles, videos, whatever that I've presented, co-presented, written, been a witness to, or simply enjoyed and learned from. People ask for this stuff occasionally ("Where can I learn more about performance tuning on Android?" or "Where can I see more videos of Romain? He's so dreamy, with that almost-real French accent!"), so I thought it would be worth recording the links somewhere where I can add new ones over time as stuff comes online (and delete old ones as they become obsolete).

I'll attempt to categorize things, but there is overlap on these topics. So the studious developer will, of course, watch and read everything. Twice.

The links are presented in rough reverse-chronological order in each section. Some talks date way back to 2010, but they're still relevant today (the advantage of APIs that don't go away...).

General Android Development

Android Developers Backstage (Tor Norbye, Chet Haase, and guests)
Tor and I interview other Android developers to talk about whatever it is that they do to help developers better understand how that stuff works.

Performance

Android Performance Workshop, Part 1 (Devoxx 2013) (Romain Guy & Chet Haase)
This presentation is all about memory on Android: how the system works, things to think about to avoid garbage collection, and tools to use to help detect and debug problems.

Android Performance Workshop, Part 2 (Devoxx 2013) (Romain Guy & Chet Haase)
This talk covers some platform improvements, performance tips, and case studies of chasing and fixing performance issues.

Android Graphics Performance (Google I/O 2013) (Romain Guy & Chet Haase)
More performance tips with demos of using the tools to find and fix problems.

Android Performance Case Study (Romain Guy)
This article from Romain shows how he used many of Android's performance tools to debug performance issues like overdraw on a real world app.

For Butter or Worse (Google I/O 2012) (Romain Guy & Chet Haase)
Romain and I discussed the graphics architecture of Android, along with various tips for achieving better performance.

Important Android Stuff, Part 2 (Devoxx 2012) (Romain Guy & Chet Haase)
More performance tips, more tools usage, more finding and fixing performance problems. More, more, more.

Android Tools (Devoxx 2011) (Romain Guy & Chet Haase)
A talk about some of the tools and techniques used for finding and fixing performance problems.

Android Performance Patterns (Colt McAnlis)
This series of videos from Colt helps you understand how things work and what you need to know to write better performing Android apps.

Graphics & Animation

Material Design (Devoxx 2014 keynote) (Nick Butcher & Chet Haase)
This talk is a combination of the design underpinnings of Material Design and some the platform API details for writing Material Design applications on both Android and Polymer.

Material Witness (Devoxx 2014) (Romain Guy & Chet Haase)
A talk about some of the Material Design APIs and techniques in the Android 5.0 Lollipop release, showing how they are used in a couple of sample applications.
This talk overlaps with a talk by the same name at Google I/O 2014, but this version is updated to the final APIs (the Google I/O talk was based on the APIs in the L Developer Preview release).

Material Science (Google I/O 2014) (Adam Powell & Chet Haase)
This is a talk on writing Material Design applications. Some of the API details have changed since this presentation, since it was based on the L Developer Preview release, but the underlying ideas of developing for Material Design is the same.

Important Android Stuff, Part 1 (Devoxx 2012) (Romain Guy & Chet Haase)
An overview of the Animation APIs, both pre-3.0 (the android.view.animation classes) and post-3.0 (the android.animation classes, Object Animator, etc.).

Curved Motion in Android (Chet Haase)
New APIs in Android 5.0 Lollipop make this much easier (and built into the platform), but this article explains how to use ObjectAnimator and TypeEvaluator to make your animations curve on earlier releases.

Android Graphics and Animation (Devoxx 2010) (Romain Guy & Chet Haase)
Romain and I talk about the general process of rendering Views on Android, graphics APIs for achieving various graphical effects, and the pre-3.0 Animation APIs.

Dive Into Android, Part 1 (Devoxx 2010) (Romain Guy)
Romain talks about the broader concepts of layout on Android, and the various built-in layout classes to use. He then steps through an example of creating a simple custom layout, to explain the process of measurement and layout that such a subclass must handle.

Dive Into Android, Part 2 (Devoxx 2010) (Romain Guy & Chet Haase)
Tips and techniques for creating graphical effects in Android applications.

Writing Custom Views for Android (Google I/O 2013) (Romain Guy & Adam Powell)
Romain and Adam Powell talk about custom views.

Stick GUIs (Romain Guy & Chet Haase)
Romain and I talk about various rich graphical effects for Android applications.

Android's Font Renderer (Romain Guy)
Romain's article about how Android renders text using the GPU.

DevBytes (Chet Haase & many others)
It's definitely worth checking out the DevBytes playlist. The content there is diverse, but it's clear to tell from the title whether it's something that you're interested in, and they all provide a quick deep dive into their topic of choice. There are a bunch of videos specific to animation and graphical effects, but there are many more videos on a wide range of Android topics.


by Chet Haase (noreply@blogger.com) at January 28, 2015 02:46 PM

January 27, 2015

App Indexing: Blurring the Lines Between Your App and Your Website

Take advantage of two great Android technologies, Deep Linking and App Indexing, that can significantly improve how your users experience your service on their Android phone.

by Juan Gomez at January 27, 2015 09:38 PM

Android Wear & QR Code: Putting Users through the Fast Track

Posted by Hoi Lam, Developer Advocate

Rushing onto a train, entering a concert, or simply ordering a coffee, we have all seen users (or ourselves) rummaging through their wallets or mobile app trying to get the right boarding pass, ticket or loyalty card. With Android Wear and a few lines of code in your mobile app, this can all work like magic.

What’s new in the Android Support Library

While QR Code images could be attached to a notification since the first release of the Android Wear platform, developers have asked about two situations which they would like to see improve:

  1. With circular displays, it is hard for developer to know if the QR code is displayed in it’s entirety and not cropped.
  2. To conserve battery, Android Wear switches off the screen after five seconds of inactivity. However, this makes it hard for the user to ensure that the QR code is still displayed on their wrist when they reach the front of the queue.

With the latest support library, we have added two additional methods to WearableExtender to give developers more control over how background images are displayed in notifications. These new APIs can be used in a number of scenarios, we will focus on the QR code use case in this post:

  • Ensure the image is not cropped - setHintAvoidBackgroundClipping(true)
  • With this new method, developers can ensure that the entire QR code is always visible.
    Wrong:
    setHintAvoidBackgroundClipping (false)
    // this is the Default
    Right:
    setHintAvoidBackgroundClipping (true)
  • Ensure the QR code is still displayed when the user gets to the front of the queue - setHintScreenTimeout(timeInMS)
  • This new method enables developers to set a timeout that makes sense for their specific use case.

Design Best Practices

We have experimented with a number of customization options with QR codes and here are some of the lessons learnt:

Dos

  • Do test with your equipment - Before deploying, test with your QR code readers to ensure that the QR code displayed on the wearable works with your equipment.
  • Do use black and white QR codes - This ensures maximum contrasts and makes it easier for the reader to read the information.
  • Do display only the core information in the text notification - Remember that less is more. Glanceability is important for wearables.
  • Do test with both round and square watches - The amount of text can be displayed on the notification varies especially dependent on the form factor (square and circular).
  • Do brand with icon - On the main notification in the Android Wear stream, developers can set a full color icon using setLargeIcon to brand your notification.
  • Do convey additional information using background - To achieve an even better result, consider setting context sensitive backgrounds through setBackground, such as a photo of the destination for the train or a picture of the stadium.
  • Do use QR codes which are 400x400 pixels or larger - In line with other background images, the recommended minimum size for QR code is 400x400 pixels.

Don'ts

  • Do not brand the QR code - The screen real estate is limited on Android Wear and using some of this for branding may result in the QR code not working correctly.
  • Do not use anything other than grey or default theme color for notification text - Although Android Wear notifications support basic text formatting such as setting text color, this should be used in moderation with the color set to default or grey. The reason is that the Holo theme for Android 4.x has a default background of black whereas Material Design theme for Android 5+ including Android Wear has a white background. This makes it hard for the colour to work for both themes. Bold and Italic are fine formatting choices.

Android Wear is for people on the move

Using QR codes on Android Wear is a very delightful experience. The information that the user needs is right on their wrist at the right time in the right place. With the new APIs, you can now unlock more doors than ever before and give users an easier time with check in on the go.

Sample code can be downloaded from this repository.

Join the discussion on

+Android Developers

by Android Developers (noreply@blogger.com) at January 27, 2015 12:13 PM

January 23, 2015

Dive into the Gradle-based Android Build System

Take an in-depth tour of the new Android build system, Gradle, by the two gentleman who play the most considerable role in its development.

by Evan Davis at January 23, 2015 11:15 AM

January 22, 2015

Webinars for Meetups

While I am still on my presentation sabbatical, there are still ways that I can help your meetup, GDG, or similar collection of Android developers: webinars.

I hold webinars several times a month, each usually lasting an hour. While there is a nominal fee for attending, that fee is per connection, not per person. A collection of people are welcome to attend via some shared connection to the Dozeo web conference, whether that collection represents a team at a firm in a conference room or an independent group like a meetup in an, um, larger conference room. :-)

For groups, I can schedule additional webinars — on current or past topics — at times that fit your group’s schedule. So, for example, if your meetup meets on the third Tuesday of every month, we can set up a webinar fitting that time slot. Times from 8am to 8pm (US Eastern) are available.

If you are interested in scheduling a webinar as part of an event for your group, contact me and we can work out the details.

by Mark Murphy at January 22, 2015 02:46 PM

January 21, 2015

A word on mobile advertising

A word on mobile advertising

Mobile advertising is a double-edged sword. Developers need to make money. Many end users outright refuse to purchase apps. This is why mobile advertising exists. When it comes to me, I buy as many apps that I feel are worthwhile or innovative as I can. Devs need to eat so they don’t starve to death. If they starve to death we get no new things. While there are others with my mindset many are against buying apps, or simply cannot afford them. No matter which camp you belong to I’m sure we can all agree anything is better than the awful freemium model.

All of that aside, if you are a developer and you decide to offer a free app with mobile advertising, there are two ways to do it. The right way and the wrong way. I mostly only download free apps when there is no paid version available. When done correctly the ads don’t bother me. I understand the need to monetize content. It’s when they’re done poorly that the experience suffers or someone might get outright offended.

mobilead

Would ya look at that? I mean just look at it. The image depicts an elderly woman who possibly just got a bingo. She seems pretty happy about something. I’m willing to bet she’s not that elated about her life insurance policy. I’ve had conversations about life insurance plenty of times. Never once has anyone been that excited about the conversation that they raise their hand and thank God for their insurance policy. This is where mobile advertising gets it all wrong.

What’s more, this ad was found in a solitaire game. Not to stereotype, but plenty of older folks love to play solitaire. What bothers me so about it (aside from the overall lack of design in the ad itself, sans content) is the content is outright offensive to me. The idea that someone’s grandma grabs their Samsung Galaxy Tab to play a game of solitaire for relaxation and is confronted with what amounts to “I’m going to die soon” is quite poor in my opinion. Surely whoever generates these ads could be more creative and not remind people about how there is a terminus to our lives. Furthermore, the app developer should do some quality assurance to make sure the content of their advertisements isn’t completely rubbish. Just like this.

I would very much prefer to see an ad that has some style to it and content that targets people correctly without being quite so offensive. If you’re creative enough to come up with an app and code it, you should be creative enough to find an advertising method that syncs with your creativity. It should not be too difficult.

Please, developers, please use better ads. Use companies that have solid ads to target your demographic that look nice and don’t remind people about dying. I think the user base as a whole would appreciate that.

And don’t even get me started on tapjoy……

Land of Droid -

by Scott Kenyon at January 21, 2015 06:37 PM

January 20, 2015

The Busy Coder's Guide to Android Development Version 6.4 Released

Subscribers now have access to the latest release of The Busy Coder’s Guide to Android Development, known as Version 6.4, in all formats. Just log into your Warescription page and download away, or set up an account and subscribe!

This update is focused on a bunch of TV-related stuff that I had worked on prior to Android Studio 1.0 shipping, causing the TV stuff to get put aside temporarily. The TV material includes:

  • Preliminary coverage of the leanback-v17 library, focused on BrowseFragment for providing a two-dimensional, D-pad-friendly navigation option for browsing a content catalog

  • A chapter on Android TV, converted from the Google TV chapter

  • Mention of the Fire TV Stick in the coverage of Fire TV

  • A new chapter reviewing a large sample app, Decktastic, which presents conference-style presentations using an external display (HDMI, MHL, Miracast, etc.), Chromecast (and other RemotePlaybackDevice devices), and direct-to-TV devices (Android TV, Fire TV, etc.)

This update also contains:

  • A new chapter on AndroidJUnitRunner and JUnit4 support. Espresso support should be covered in some future edition of the book.

  • A revised VideoList sample in the chapter on the MediaStore, switching out SmartImageView with the Universal Image Loader for asynchronously loading video thumbnails.

  • A merged chapter on the basics of Gradle and the manifest, as having those spread over two chapters was too confusing.

  • Updated material on publishing AARs, focusing now on the official maven plugin.

  • Various bug fixes and such.

The next update is tentatively slated for mid-March 2015.

by Mark Murphy at January 20, 2015 01:48 PM

January 18, 2015

Game Difficulty Setting for Double Star

The latest version of Double Star, an Android space war app, allows you to set game difficulty on the Settings screen. In the EASY game, there are fewer alien starships, and the enemy are less aggressive. Continue reading

by Bill Lahti at January 18, 2015 09:33 PM

January 15, 2015

How Google Analytics helps you make better decisions for your apps

Posted by Russell Ketchum, Lead Product Manager, Google Analytics for Mobile Apps

Knowing how your customers use your app is the foundation to keeping them happy and engaged. It’s important to track downloads and user ratings, but the key to building a successful business is using data to dive deeper into understanding the full acquisition funnel and what makes users stick around.

Google Analytics is the easiest way to understand more about what your users are doing inside your app on Google Play, while also simultaneously tracking your users across the web and other mobile platforms. To show how Google Analytics can help, we've created a new "Analyze" section on the Android Developers website for you to check out. We provide guidance on how to design a measurement plan and implement effective in-app analytics – and take advantage of features only available between Google Play and Google Analytics.

The Google Play Referral Flow in Analytics

Google Analytics for mobile apps provides a comprehensive view into your app’s full user lifecycle, including user acquisition, composition, in app behavior, and key conversions. Our Analytics Academy course on mobile app analytics is also a great resource to learn the fundamentals.

Eltsoft LLC, a foreign language learning and education app developer for Android, recognized early on how impactful Google Analytics would have on the company's ability to quickly improve on its apps and meet user needs.

Analytics has really helped us to track the effectiveness of the changes to our app. I would say six months ago, that our success was a mystery. The data said we were doing well, but the whys were not clear. Therefore, we couldn’t replicate or push forward. But today, we understand what’s happening and can project our future success. We have not only the data, but can control certain variables allowing us to understand that data. - Jason Byrne, Eltsoft LLC

Here are some powerful tips to make the most of Google Analytics:

  1. Understand the full acquisition funnel
  2. Uniquely integrated with the Google Play Developer Console, Google Analytics gives you a comprehensive view of the Google Play Referral Flow. By linking Analytics to the Developer Console, you can track useful data on how users move through the acquisition flow from your marketing efforts to the Google Play store listing to the action of launching the app. If you find that a significant number of users browse your app in Google Play, but don’t install it, for example, you can then focus your efforts on improving your store listing.
  3. Unlock powerful insights on in-app purchases
  4. Monitoring in-app purchases in the Google Play Developer Console will show you the total revenue your app is generating, but it does not give you the full picture about your paying users. By instrumenting your app with the Google Analytics ecommerce tracking, you’ll get a fuller understanding of what paying users do inside your app. For example, you can find out which acquisition channels deliver users who stay engaged and go on to become the highest value users.
  5. Identify roadblocks and common paths with the Behavior Flow
  6. Understanding how users move through your app is best done with in-app analytics. With Google Analytics, you can easily spot if a significant percentage of users leave your app during a specific section. For example, if you see significant drop off on a certain level of your game, you may want to make that level easier, so that more users complete the level and progress through the game. Similarly, if you find users who complete a tutorial stay engaged with your app, you might put the tutorial front and center for first-time users.
  7. Segment your audience to find valuable insights
  8. Aggregated data can help you answer questions about overall trends in your app. If you want to unlock deeper insights about what drives your users’ behavior, you can slice and dice your data using segmentation, such as demographics, behavior, or install date. If something changes in one of your key metrics, segmentation can help you get to the root of the issue -- for example, was a recent app update unpopular with users from one geographic area, or were users with a certain device or carrier affected by a bug?
  9. Use custom data to measure what matters for your business
  10. Simply activating the Google Analytics library gives you many out-of-the-box metrics without additional work, such as daily and monthly active users, session duration, breakdowns by country, and many more variables. However, it’s likely that your app has many user actions or data types that are unique to it, which are critical to building an engaged user base. Google Analytics provides events, custom dimensions, and custom metrics so you can craft a measurement strategy that fits your app and business.
  11. No more one-size-fits-all ad strategy
  12. If you’re a developer using AdMob to monetize your app, you can now see all of your Analytics data in the AdMob dashboard. Running a successful app business is all about reaching the right user with the right ad or product at the right time. If you create specific user segments in Google Analytics, you can target each segment with different ad products. For example, try targeting past purchasers with in-app purchase ads, while monetizing users who don’t purchase through targeted advertising.

By measuring your app performance on a granular level, you will be able to make better decisions for your business. Successful developers build their measurement plan at the same time as building their app in order to set goals and track progress against key success metrics, but it’s never too late to start.

Choose the implementation that works best for your app to get started with Google Analytics today and find out more about what you can do in the new “Analyze” section of developers.android.com.

Join the discussion on

+Android Developers

by Android Developers (noreply@blogger.com) at January 15, 2015 08:12 PM

January 09, 2015

How We Created Scalable UI - A Case Study

I rarely get to write about projects I've been involved with myself so writing this one makes for a pleasant change. For more than a year I've been working as a consultant embedded as a part of a very talented Android design and dev team at Onefootball. Onefootball, an awesome startup based in Berlin, have been developing apps for multiple platforms to bring football (soccer for my American readers) news, statistics and results to their users.

Download the app for free from Google Play

As a company, Onefootball has great ambition to do things right and be the best football app on every platform. This ambition is found from the management to the design and development team. A bit more than a year ago it started to become clear that an Android app wasn't good unless it utilised larger screens as well. That is when I joined the team.


The app is extremely rich with content. The amount of leagues and competitions available to users to browse for is mind boggling. Each of the competitions comes with massive amount of data complete with full season history, match data, team compositions, player statistics for each player and news related to teams and competitions.

Scalable Design

Arranging this amount of information is not easy. Creating responsive UI to accommodate all the different data display variations required us to use multiple different approaches. In this article I want to introduce few of the solutions we used to a create scalable UI that works seamlessly across a broad range if Android devices.


From tabs to columns


A lot of the app's content is split into multiple content sections that exist at the same level of the information hierarchy. On a smaller screen the natural component to use is a tab bar. For example the match screen shows things like the match overview, live ticker, line-up and stats.

Each tab's content is created as a flexible screen that spans the width of the screen on most phone sizes.

To get the match screen ready for larger screens the approach we chose to take was to remove the tabs altogether and show the tabs as columns which forms horizontally scrolling content. This created a display that easily scaled up to any tablet size and utilised the available screen space without feeling like the components information was cramped or constrained by space.



Tabs to tabs


On other screens with a similar structure we went a different way. This was when the content of the tabs itself was nicely scalable and was able to utilise the available screen real estate.

Many screens like the match screen were perfect for this. The content of each tab was already using card-style layouts and simple reorganising the way the cards are laid out in the screen allowed us to utilise the full screen on larger devices.

In some cases we also adapted the content of the cards to limit the amount of information shown when space is more limited. In this case, for example, the number of teams shown in the competition table is only three when on a smaller screen device and on larger screens we can show more. The full table is only a tap away for the users who want the complete information.


Cards are flexible

It's not an accident that a lot of Android apps use card-style visuals to show their content. Cards are easily arranged into flexible layouts and scalable UI forms itself nearly automatically.

Content like news articles with rich visuals and mixed sources create a great opportunity to use staggered list-style approach to create visually pleasing, content rich screens.



In some cases simply arranging the cards wasn't possible. If the cards used are different in size and must maintain strict chronological order using a staggered list is not the right way to display them. For us, the solution was to break some of the cards into smaller content components and show them as a grid.


In some cases the smaller screens displayed the content in a simple list while for larger screens we utilised grid-like layouts. This is something Google advises against in the Material Design guidelines but in this case we decided to break from the guidelines as this created the best possible scalable result.




Viewpager is easy to adapt

Viewpager is a very powerful component. On the team screen we wanted to show recent and upcoming matches.

For smaller screen widths we only show one match and a small slice of the next one to communicate to the users that there's something more just a swipe away.


When there's enough screen width to fit more than one match comfortably we adapt the viewpager to show two or three pages to reveal more information to the user.



Adaptive navigation

In some cases we chose to change the navigation hierarchy slightly when user was on a larger device. 

For example in case of the list of matches, we made the selection in the mast screen open a quick view of the match instead of navigating directly to the match page (like it does on smaller devices). This allows users to browse multiple matches more easily while still making it easy to jump into the full match page when the user desires. 


On the competition stats detail page we improved navigation between the different stat details on larger screens. Larger screens meant there was empty space on both sides of the list and it felt like a natural place to place quick navigation to the other details pages.


For the competition matchday list we ended up using a dropdown navigation on smaller screens but larger screens have room to show the matchday list on the side allowing user to jump between the matchdays more easily.




User Delight

Going for good app to a great app requires more than just nice scalable UI. You need to delight your users. In case of Onefootball a lot of details were added to the app to push it from being good to great.

In a football app the right place to start making users delighted is the team page. Onefootball app affords each team a fully themed page. A fan of any team will immediately recognise the colour theme and prominent team logo.


The team page was also improved with subtle but meaningful behaviour. The header of the page transforms into toolbar when scrolled. Lollipop's activity transitions were also spot on for this content. The hero element transition is both delightful as well as helpful.



Conclusion

The Onefootball was great fun. Working with a company that wants to do Android right is rewarding. The results are something I can be very proud to have been part of. Elegant Android scalability can be challenging but approaching it the right way makes it possible to get great results. There are pitfalls but they are avoidable. In our case the app ended up being featured multiple times - most recently as the Editor's Choice in the Google Play Store and in the Google's 2014 Best Apps List.



If you are interested in working with the Onefootball to create the best football app ever made I can wholeheartedly recommend the company. Check out their website for open positions here: http://www.onefootball.com/careers.html.



If your company is interested in getting your app built the right way and pushed to the next level don't hesitate to contact us, at Fat Robot. We can help you. We know how to build Android the right way.


http://fatrobot.io/
juhani@fatrobot.io













by Juhani Lehtimäki (noreply@blogger.com) at January 09, 2015 12:43 PM

December 30, 2014

Integrating an Android smartphone application with the BLED112 module

My conclusion with the RFDuino adventures was that RFDuino is a perfect platform to start familiarizing with the Bluetooth Low Energy (BLE) technology. BLE programming was made so simple with RFDuino that it provides quick success. Simplification comes with limitations, however, and eventually time has come for me to step further toward a more flexible BLE platform. Bluegiga's BLE121LR long range module seems to have outstanding range but first I tried a piece of hardware that is equivalent from the API point of view with the BLE121LR but is easier to start with and that is Bluegiga's BLED112 USB dongle.


The BLED112 implements the same API (called BGAPI, check out Bluetooth Smart Software API reference) that other Bluegiga BLE modules do but there's no need to buy the pricey DKBLE development board or build any hardware. It plugs neatly into the USB port and is functional without any additional piece of hardware. From the serious BLE application development perspective it has drawbacks too. Firstly, its USB interface is drawing a constant 5mA current so this solution is not very much "low energy". Second disadvantage is that its single USB interface is shared between the BGAPI API and the programming interface so installing scripts into the BLED112 is a risky enterprise. If the script running on the BLED112 occupies the USB port, there's no way to update it so the module is essentially bricked. Hence in this exercise we will keep the BLE application logic on the PC hosting the module and talk to the module with BGAPI. This is very similar setup when the application logic is running on a microcontroller or embedded PC.

Click here to download the Android client and the PC server example programs.

In this exercise, we will implement the Current Time Service (CTS) and access this service from an Android application. CTS is a standard Bluetooth service. The PC application will fetch the current time from its clock and will update the characteristic exposed by the BLED112. The Android application will detect the advertised CTS service, connect to it, retrieve the time and display it to the user. The Android application will also subscribe to time changes demonstrating the notification feature of BLE GATT.

Let's start with the PC part. Unpack the cts_example.zip file and inside there are a set of C files belonging to the PC application in the root directory. I developed and tested the application on Ubuntu 14.10 so if you use a similar system, you have good chances that you just type "make" and it will compile. Preparing the BLED112 dongle is more complicated, however and this is the result of the quite cumbersome Bluegiga tool chain. Any change to the GATT services (read this presentation if you don't know what GATT is) requires a firmware update of the BLED112. This sounds scary but it is not too complicated if you have a Windows system. Bluegiga SDK supports only Windows and there is one element of the tool chain, the firmware downloader that does not run on emulated Windows either - you need the real thing. So the steps are the following:

  • Grab a Windows machine, download the Bluegiga SDK and install it.
  • Get the content of the config subdirectory in cts_example.zip and copy somewhere in the Windows directory system. Then generate the new firmware with the <bluegigasdk_install_location>\bin\bgbuild.exe cts_gattBLED112_project.bgproj command. The output will be the cts_BLED112.hex file which is the new firmware. We could have placed application logic into the firmware with a script but as I said, it is a bit risky with the BLED112 so this time the new firmware contains only the GATT database for the CTS service.
  • Launch the BLE GUI application, select the BLED112 port and try to connect by clicking the "Attach" button. If all goes well, you will see green "Connected" message. Then select Commands/DFU menu item, select the HEX file we have just generated, click on the "Boot into DFU mode" button. One pecularity of the BLED112 that in DFU mode it becomes logically another USB device so the main window will display red "Disconnected" message.  Then click "Upload". If the upload counter reaches 100% and you see the "Finished" message, the firmware update is done.
At this point we are finished with Windows and can start the serious business. Plug the dongle into the Ubuntu machine and check out its port.

dmesg | tail
...
usb 3-2: Product: Low Energy Dongle
usb 3-2: Manufacturer: Bluegiga
usb 3-2: SerialNumber: 1
cdc_acm 3-2:1.0: ttyACM0: USB ACM device


So this time the dongle is mapped to /dev/ttyACM0. Launch the BLE server with the following command:


./conn_example /dev/ttyACM0


The server is ready, let's see the Android client. Import the Android project in CTS.zip into Android Studio. Note that I am still baffled by the fact that this shiny new IDE does not have a project export command so I had to zip part of the project's directory tree manually. Once you launch the Android application, you will see a screen like this:




The device named "test" is our device and the CTS service is identified by the UUID of 0x1805. The other entry is just another BLE device that I threw in for demonstration. Click on the device name and you get the time emitted by the BLE dongle:


The current time is also updated every second demonstrating that the client successfully subscribed to the changes.





On the server side, it is important to note that the BGAPI protocol is defined in terms of byte arrays sent and received over the serial port (which is mapped to USB in the case of BLED112). The BGAPI support library coming from Bluegiga that I used in this demo is just a wrapper over this interface so it can be replaced with an optimized implementation if the library is too heavy for the application platform (e.g. for a microcontroller) or is not implemented in the desired language (e.g. in Python). On the Android client side, it is interesting to note how the BLE advertisement parser library I presented in this post is used to figure out, whether the device advertises the CTS service we are interested in.

by Gabor Paller (noreply@blogger.com) at December 30, 2014 10:42 PM

December 19, 2014

Parsing BLE advertisement packets

Ever since I created the Gas Sensor demo (post here, video here, presentation here), I had the feeling of an unfinished business. That demo sent the sensor data in BLE advertisement packets so the client never connected to the sensor but received data from the sensor in a broadcast-like fashion. The implementation looked like this:

        public void onLeScan(final BluetoothDevice device, int rssi, byte[] scanRecord) {
            String deviceName = device.getName();
...
                int addDataOffs = deviceName.length() + 16;
                int siteid = ((int)scanRecord[addDataOffs]) & 0xFF;
                int ad1 = ((int)scanRecord[addDataOffs+1]) & 0xFF;

This was a quick & dirty solution that remained there from my earliest prototypes. It sort of assumes that the structure of the BLE advertisement packet is fixed so the sensor data can always be found at fixed locations of the advertisement packet. This does not have to be the case, Bluetooth 4.0 Core Specification, Part C, Appendix C (or Core Specification Supplement in case of 4.2 version) describes, how the fields of the advertisement packets look like. It just so happens that with the given version of the RFDuino BLE module, the Manufacturer Specific Data field where RFDuino puts the user data for the advertisement packet can always be found at a specific location.

The proper way is of course to parse this data format according to the referred appendix of the specification and in this post I will show you how I implemented it.

The example programs are attached to the end of this post. You have to be logged to Sfonge site to access them.

Let's see first the BLEScan project. The parser code is under the hu.uw.pallergabor.ble.adparser package. Then you just give the scanRecord array to AdParser's parseAdData method like this:

            ArrayList<AdElement> ads = AdParser.parseAdData(scanRecord);

and then you get an array of objects, each describing an element in the scan record. These objects can also produce printable representation like this:



Now let's see the revised GasSensorDemo project, how the gas sensor measurement is properly parsed out of the scan record. First we parse the scan packet fields:

                ArrayList<AdElement> ads = AdParser.parseAdData(scanRecord);

Then we look for a TypeManufacturerData element which corresponds to a Manufacturer Specific Data field in BLE. We make an extra check to make sure that the manufacturer field in the Manufacturer Specific Data is 0x0000 because RFDuino always creates a Manufacturer Specific Data field like that if the application programmer specifies additional advertisement data.

                    AdElement e = ads.get(i);
                    if( e instanceof TypeManufacturerData ) {
                        TypeManufacturerData em = (TypeManufacturerData)e;
                        if( em.getManufacturer() == 0x0000) {


It would be tempting to use a custom manufacturer field or better, a Service Data field. But then we run into another limitation of RFDuino because RFDuino with its default firmware is only able to create advertisement packets like in the previous example. This is not bad because it allows the programmer to achieve quick success but later on, we will need more flexibility and that will need another BLE module.

by Gabor Paller (noreply@blogger.com) at December 19, 2014 04:38 PM

December 17, 2014

Thinking About Stories

I have been thinking about stories lately and what makes a great story. I hope that learning about good stories will help me as I work on my space war app. Two good TED videos: (1) The Clues to a Great Story, by Andrew Stanton; (2) The Mystery Box, by J. J. Abrams. Continue reading

by Bill Lahti at December 17, 2014 10:44 PM

December 14, 2014

A Simple Chat Application in Android Using GCM and Server Side – PHP.

Hi all,

In Today’s Tutorial I will help you to make a simple chat application in Android using Google Cloud Messaging. I am using PHP as server side script.

Here are the things you need to follow to make this application.

1. You need to register to Google for GCM.
2. You need a server where your script resides.[We will use our own system as Server in this application].

Please read this before starting with the application
After reading the above link, you will get a API key and Sender ID , which distinguishes your application.
So you will need it in the code, keep it somewhere safe.

You need to change the API Key inside Android source code in the sample Provided below.
Your API Key and SENDER ID will look something similar to this.

 
 String SENDER_ID = "243750827028";
 String API_KEY   = "AIzaSyCBI_c2izVrEPcJ509uZGVLdfWUAW-rg48";
	

Next Go through this link, till step 2 in that page because I have provided the source code below.

The usual flow of a simple GCM application is like this

1. User launches your application for the first time.
2. Your application will call “register” to register with GCM.
3. Google will send you back a “Registration ID” which will be unique for that device.
But beware these “Registration ID’s” will change when you update the application or reinstall it after uninstalling. So don’t use it to uniquely identify a user. A username/password combination or a Phone Number usually does the trick.

4. The device gets the “Registration ID” and store it locally, so that the device don’t need to register again each time the user run the
application.
5. Send this registration ID to your server and Store it there along with a unique identifier for the user. [Here we will use ‘username’ for the time being].
6. When the user taps send message button you need to call a server side script that will communicate with GCM server which will
send this message to corresponding device.
ie. User taps the button -> send the device_reg_id and message to your server -> send these parameters from your server to GCM
-> GCM send the message to Device identified by reg id.

So I am not going to paste the whole code here.
You can directly download it from below links

Client Complete Android source code.

PHP server side source code.

Here I have used a simple database structure for simplicity.
I am using username for identifying each user.

You need to make the same structure for the below sample to work.

GCM Sample DB structure

GCM Sample DB structure

For Server Side I am using XAMPP for Mac.
You can download the Server side source code and put it inside htdocs folder inside XAMPP/Applications.

Start your servers.

Please check the Screenshot below.

GCM Sample DB structure

Then Go to your browser and type “localhost”. if your server is running, then you will see “phpMyAdmin” Page.

For testing it in your system and in your device, Both should be in the same network, for example : both should be in the same WIFI netwrok of your home.
Please type “ifconfig” for Mac in terminal and check inside “en0″ or “en1″ to get your sytem IP. For Windows type “ipconfig”.

Before running the application change the “IP” in the Utils file.

I am not going to the Android source code because Complete source is already provided.

How to test?

1. Change the API Key and Sender ID in the application.

2. Make sure server side is set up. copy php code to your local server as described above.
Make sure you have sql tables set up.

3. Make sure your servers are running.

4. Your testing devices and Your server should be on the same network, otherwise you have to host an online server. You can use the Emulator also as one device, but it should be an emulator with “Google Play Services”. Android 5.0 is good to go.

5. Change the IP address in “Utils.java” to your system IP address.

Please leave your comments if you have problems understanding the above article.

by James at December 14, 2014 02:00 PM

December 07, 2014

How to connect Localhost in your MAC or Windows to your Android Device OR Android Emulator ?

The name “localhost” is just a loopback to your own computer.

1. ACCESSING LOCALHOST ON ANDROID DEVICE.

To access it on your Android Device, you need to find the computer’s IP address.

  • The most general way of finding this info, which works on both Mac and Linux, is to go into the Terminal and type “ifconfig” AND for Windows type “ipconfig” in the command prompt.
  • Look for either “en0″ or “en1″, and under that entry look for the “inet” listing. It will be something along the lines of “192.168.1.100”.
  • When you find that address, that’s what you’ll want to put in your browser’s address bar or the URL in the code you want to call your MAC’s/Windows’ localhost.
  • On a Mac specifically,

    Go to System preferences/sharing OR just search on right top – remote management

    Make sure remote management is checked

Note : MAKE SURE THAT YOUR ANDROID DEVICE AND YOUR MAC/WINDOWS ARE ON THE SAME NETWORK OTHERWISE IT WILL NOT WORK. [EG : SAME WIFI NETWORK].

For Example in the Android code you can use like below and call a webservice that is residing in your local server, i.e your localhost.

 new HttpPost("http://192.168.0.101/your_localhost_folder/your_localhost_file.php");

2. ACCESSING LOCALHOST ON ANDROID EMULATOR.

You can have the same thing as described above for Android Emulator also as long as they are in same network.

But there are other options too…

You can check it in the post here.

by James at December 07, 2014 06:06 PM

November 20, 2014

Droid Turbo Review

Let me tell you that first of all the Droid Turbo's definitely amazing phone. I personally was going to hold up the Nexus 6 but then I got cold feet and decided to pull the trigger on this phone and have not been disappointed. So far the battery is definitely the most impressive feature. Basically the Nexus and the Turbo are basically the same they have the same processor the Nexus has the ISO camera clocking in at 13 megapixels and the turbo has a 20 megapixel camera with no ISO however coming from a G2 the pictures are definitely fine and dandy. The screen is extremely awesome except that YouTube for some god awful reason doesn't have 1440p or 1080p support which is super annoying. Another thing that I would like to point out about the turbo is it the battery literally is incredible I would definitely consider myself a power user in this phone easily and I mean easily last a day and a half to two days there have been several times where I fell asleep without charging my phone woke up with 20 percent and it got me through about 10 hours or so but that's with me probably only being on it for about an hour but even still that's impressive. The battery is good now so we can only imagine what kind of improvements will see when lollipop rolls out which I'm hoping will be soon the camera should also improve with that considering google rolling out their new API for photography. Overall I'd say that between the Nexus and the turbo its more of just if you want a 6 screen or 5.2 inch screen. If you have any questions or concerns please feel add comment on this post and I will get back to you soon as possible thank you for reading

by Captain Clyde (noreply@blogger.com) at November 20, 2014 03:37 AM

November 16, 2014

HTC Re first look

HTC Re first look

I’ve put off the real first look post on this camera until I had the finished product in my hands. I did have a video and post ready to go after the Double Exposure event. I didn’t post it, not because the hardware and software were bad, but because they weren’t finished. Seeing an unfinished product doesn’t help anyone decide to buy said product.

Before I continue, it should be noted this is only after a few hours of owning it and a bunch of sampling. A full review will be forthcoming. I’m having some fun with it so far, so let’s see what this little thing is all about.

DSC00455

I felt it was my duty to pick up the blue Re. I am a Maple Leafs fan after all! It almost matches my Reimer sweater. It measures a hair under four inches tall, an inch and a half between the edge of the lens and the edge of the capture button and the barrel diameter is 3/4 of an inch wide (Metric: ~10 x 3.81 x 1.905cm). There are only two buttons, a shutter button and a slow motion button. The micro-USB for charging and micro-SD slot are both on the bottom.

I purchased a 32GB card for the Re, as 8GB isn’t a hell of a lot for video. I’m not sure yet how I’ll be using this, but there are some truths that always apply: You can never have enough SD cards and it’s better safe than sorry. Changing the card involves removing the waterproof cover, giving the card a push and pulling it out. In practice this isn’t a lot of fun. The cover is continually in the way as it’s tethered to the bottom of the camera and the card doesn’t eject far enough for me. Tweezers would have helped, but I got it eventually.

Sample Photos

Rather than make a usual gallery I’m going to post a couple and talk about them a bit. Context is important in this part.

Normal Stills


RE CameraRE Camera

 

It seems a little hit and miss here. The first photo is the Re taking a picture of the live view on my HTC M8. That one came out a bit fuzzy and off. The latter, however, is of acceptable quality. If you’re expecting full frame or APS-C quality out of a camera with a f/2.8 16 megapixel sensor, prepare to be disappointed.

Ultra Wide Angle

RE Camera RE Camera RE Camera

 

Of the last two photos, one is with wide angle and one isn’t. Can you guess which one? This ultra wide angle setting was something I was eager to test and left me wanting in the end. All my test shots leave a huge fisheye effect on the photo. The picture of the bench seat shows just how exacerbated it can be. In the Re app, it is possible to turn a wide angle shot into a regular shot, but something curious happens there:

Screenshot (01_27PM, Nov 16, 2014)

It is actually named “defisheye”. I’m not saying this is a bad thing. I’m saying know what’s going on here with the wide angle shots. There are surely some really creative people out there who could use this to their artistic advantage. That or make every iPhone bend…

Video

 

 

I would be remiss in my duties if I didn’t admit my stupidity here. I never turned ultra wide angle off before I shot this video. I’ll do a proper comparison for the full review, but the big takeaway here (aside from dat fisheye) is the audio is actually quite good. The microphone is essentially a pinhole affair atop the camera. As I walked through those crisp New York Autumn leaves, you can hear the crunch really well. I’m not disappointed at all with the Re video functionality.

I realize there is a lot missing here. It is important to remember this is not the full review. This is playtime for us, and in a week or so of actually using the Re properly there will be much much more to say. Stay tuned for that fun!

Land of Droid -

by Scott Kenyon at November 16, 2014 07:37 PM

The State of Android Hardware Companion Apps

 - Doing Android wrong makes me distrust your product's future.

Time after time I keep running to this same issue: hardware companies don't get Android. Companies building expensive products are either completely failing in their mobile app strategy across the board or put all their efforts to their iOS app effectively making their Android apps an afterthought.

But what does it matter as long as it works (on some level)?
Trust. It's all about trust.

I simply don't trust companies who don't seem to care about Android users. I've been burned too many times before. And I don't think I'm the only one.

Because of past bad experiences my shopping decision now includes looking up the Android app of the product I'm considering purchasing and seeing if it looks like an Android app and if it seems to be built the right way (scalable, uses notifications correctly, etc basic Android platform knowledge).

If I see things like use of the menu-button-of-shame, strange notification use, use of iOS UI components or UI structure etc. I know that the company is not regarding Android as a first class citizen in their own ecosystem.

When the platform I'm using is clearly at the end of the priority queue of the company whose products I'm considering buying it tells me few things based on my past experience. The UX of the mobile app is likely to be subpar. I'm likely going to get a feature limited version of the software and all new and improved features are going to arrive to me much later than if I was using iOS. Still... I'm paying the same price for the hardware product.

I simply do not trust that the device is worth the money if the company doesn't think that it's worth their time to look into the most used mobile platform of the world.

No thank you!

Cross-platform disasters

Some companies building high-end (or at least expensive) products like BOSE seem to be completely failing to understand the importance of creating mobile user experiences. With their SoundTouch Controller (iOS) product they seem to have gone the route of ignoring all platforms and build an app with some cross-platform tool and the results are as expected.

There's no way I'll put my money into your product if you don't understand how to build mobile apps. It might be that use of the mobile app is just a secondary way of controlling the system and "an additional feature" but if this is the quality of your product I doubt I'll enjoy the rest of it either!




iOS-first (only?) approach

Now, this might be justified on some level but there's limits. Making hardware that talks to mobile devices is difficult. Bluetooth as a technology sucks big time but that's unfortunately what we have to use (at least for now). It probably makes sense for companies to pick the largest segment of their market to target first when building software to their hardware which is relatively standards and least fragmented.

After the start I'd expect to see the Android support added relatively quickly. It's a massive market. Let's say that you decide to target just couple of the top-end Android phones in the first iteration you will likely target a very similarly sized audience. While you might encounter some issue with some devices you can start ironing out the issues one-by-one.

But seeing something like this in an online store of bleeding edge hardware maker a year after the device release causes problems. As customer shopping in the Runtastic store this makes me pause. I will think twice buying any of the hardware that is compatible with Android as I'm not sure where my platform fits in their corporate strategy?


In case of Runtastic this becomes even worse. With Runtastic I'm not only buying their hardware to use. I'm also buying into their ecosystem. I'll be uploading my info to their systems, using their exercise apps and so on. If I subscribe to their ecosystem will I be treated on the same level as people using iOS devices?

Direct iOS ports

Then there's something that I don't understand at all. This should never be done by anyone. A company that takes time to make their hardware compatible with Android but for some unfathomable reason decides to port their iOS app directly to Android without looking into Android platform guidelines, UX etc. I cannot understand how this still happens in 2014.

Building Android apps right way is much easier than trying to make your apps look and function like iOS apps. Still. Some companies insisting doing this in the way we in Finland call "climbing a tree ass first" ("perse edellä puuhun).

Parrot's Flower Power is an interesting product that monitors how your flowers are doing. But what they've done with their Android app is beyond belief. It is a 1-to-1 direct port of their iOS app. From the minute you open the app on your Android device you feel like it is not built for you.

The app uses iOS bottom tabs which immediately make the app navigation not functional when combined with the Android back button. It's also style-wise mostly just confusing to all Android users. Tabs in screens don't work as expected (where's my swipe gesture), the whole font throughout the app is strange, it's full of custom controls that don't belong to the platform and they've even implemented features that you really don't need to implement on Android as the platform gives them to you for free. And top of everything the app is, of course, locked into one orientation (a sure tell that the design is not flexible).

I simply cannot understand what made them to do this? Are there no Android users in the company management? Is there no designers using Android at all in the company? This app is very confusing, ugly and doesn't belong on Android. There's no way I will buy hardware that is supported this poorly on my platform.


iOS-only marketing

Another thing with hardware manufacturers that I fail to understand is the lack of Android presence on their websites. Maybe the most striking example of this is Parrot Zik 2.0 website. Take a look at the site. Would you imagine that you could use the headphones with Android as well? On the surface no. Every single image on the site is an iPhone running their software. There's even sentences like "They are made for iPhone, iPod, iPad.".


These things are not cheap. The Zik 2.0 costs almost $400 in Amazon.com by the time of writing this.


Scanning the Parrot website for compatibility there's, in fact, exactly one mention of "Android" and it is this: "Free app compatible with smartphones running on iOS, Android".

Anyone wanna take a guess how good their Android app is?

This $400 headset comes with a companion app that looks like absolute crap. It's, of course, exact clone of the iOS app but in this case it's bad on both platforms.

The app is locked on in portrait on phones and to landscape on tablets. It also fails in some very basic UI design things like using margins and alignment. It also has reinvented all the controls.

The best of all it has a menu-button-of-shame. This is such a direct proof that this app was built without any knowledge of the Android platform.


The app also immediately adds a persistent notification to your status bar when you open it. The notification content simply baffles me. And maybe not a big surprise that the notification's priority is set incorrectly so it's always fully visible.


There's a lot more I could point out in the app as issues but I think I've made my point. Do I want to pay $400 for headphones if this is the quality I can expect? Hell no!

Crowdfunding projects

Kickstarter and indiegogo are both full of tech projects looking for funding. More often than not you see these small startups fighting for funding completely fail to understand that platform differences matter. You see pitches in Kickstarter that claim support for iOS and Android but they only show iOS devices in their campaign page (or even worse, some strange abominations like below).


As Android community, we're already getting burned very often by large manufacturers and it's making us careful. When you choose to show only iOS devices on your campaign page it tells us that if I back your project I'll likely have to wait for features iOS users will get earlier. Personally, I'm not backing projects like that anymore.

Self-fulfilling prophecy

Android users don't spend money. iOS users are where the money is. - You've probably heard this statement before. If this is true you can hardly blame the manufacturers for putting their efforts into iOS and then doing something half-arsed to tick the box for having an Android app later if they get around to it.

I would not be surprised if this attitude in the industry was the cause for Android users not spending the money to these products. It's quite natural. If you show that you don't care about my UX I'm not going to give my money to you.

If you think that Android users would not buy your products maybe the fault lies with you and not with Android users? Are you creating products worth buying? Can you really afford to ignore 80% of the potential market?

Conclusion, TL;DR

This post turned out to be a bit more whiny than I intended it to be but I think the point becomes clear. While in many areas Android has finally became a first class platform in hardware companion apps there's a lot of space for improvement.

While there are hardware manufacturers who are already pushing quality of their mobile software they're more of an exception than a rule. I see this as a lot of unused potential. A manufacturer doing their Android apps right can differentiate positively from the crowd. Any takers?

by Juhani Lehtimäki (noreply@blogger.com) at November 16, 2014 05:03 PM

October 31, 2014

Chrome Beta easter egg game

Chrome Beta easter egg game

Ever wanted to see a dinosaur jump over a cactus? No, well me either but Google has made it into a game of sorts. The new easter egg in chrome beta allows you to play that game. Just turn on airplane mode, go to the chrome beta, type in google.com, and click on that dinosaur.

Warning: My phone opens chrome beta in quite a weird way I am using a oneplus one with mahdi rom but I wanted to show off the easter egg anyways. 

Reddit

Land of Droid -

by Tyler Maciaszek at October 31, 2014 12:06 PM

October 12, 2014

CM11 ported to Galaxy Tab Pro 12.2 SM-T900

The post CM11 ported to Galaxy Tab Pro 12.2 SM-T900 appeared first on galaxytabreview.

It took Cyanogen mod guys some time to bring it to the SM-T900 but it is finally here. The cm-11 ROM is very snappy and responsive, there is no reason not to use it as a daily driver. Before flashing it’s recommended to update to TWRP 2.8.0.0.

Note:

- IR blaster problem apparently solved with Bonuzzz’s new kernel, non-verified
- Lid sensor – solved with Bonuzzz’s new kernel, verified.

The boot image will stay idle for a couple of minutes at start-up, just be patient, once the cm logo is seen it will run smooth. Xposed Framework might need re-initialization after each boot, which is common for all CyanogenMod ROM’s.

This is an AOKP ROM, why you also need to install gapps (set of packages – full, mini, micro, nano, pico).

CM11 ported to Galaxy Tab Pro 12.2 SM-T900

by Galaxy Tab Review at October 12, 2014 11:21 AM

The Samsung Galaxy Tab Active has weird design

The post The Samsung Galaxy Tab Active has weird design appeared first on galaxytabreview.

Samsung has rolled out its rugged tablet called Galaxy Tab Active in USA. It is already up for preorder and Sammy is targeting business and enterprise users with it. It features 8 inch display backed by 16 gigabytes of storage. It is certified by SAP and Citrix and comes preloaded with Knox enterprise security solution which first made its debut in Galaxy S4.

The Samsung Galaxy Tab Active has rugged design and is quite chunky to hold. On the brighter side you get water resistant and anti shock casing which makes it great for outdoor activities.

Samsung Galaxy Tab Active review

Samsung says that it is especially effective for use in rough workplaces that involve proximate outdoor use. This implies that the company is targeting business houses that tablets are used outdoors, for instance construction and shipping.

by Galaxy Tab Review at October 12, 2014 11:12 AM

October 07, 2014

New Tech mine hard difficulty

Another update went live in the market last night. This one fixes various issues introduced in the last update, but the biggest change is to add a hard difficulty to the tech mine.

Hard levels are variations on the normal set, but… harder. In some cases this just means that there are fewer ores, but in others there are subtle differences, large layout changes or even objective changes in place. If it is popular I’ll try and do the same for the rainforest pack.

You can also now play tech mine in freeplay mode (although there is a bug that means you need to go into the mission pack level select screen first, otherwise you’ll get a crash when starting the level – this will be fixed in the net update).

Other changes:

- Fixed visibility beaneath miner when near an edge (the tile beneath you now reveals where approaching an edge)
– Fixed pro/extreme difficulty mix up
– Made objective stars harder to click accidentally
– Improved some menu layouts
– Fixed some bugs in the map screen
– Fixed signs not appearing
– Fixed harold short changing you when he buys multiple items
– Fixed various bugs with photography in tech mine
– Performance improvements


by Psym at October 07, 2014 11:06 PM

September 28, 2014

Reimagining Play: Interview with PlayMG’s Taylor Cavanah

Last month, we brought you a review of the MG, an Android powered handheld gaming system designed for casual games. The combination of vanilla Android and the MG’s custom parental controls made the device a compelling option for gamers young and old alike, and its comparatively low price combined with the vast Android software library offered an unbeatable value.

The team behind the MG had obviously done their homework and targeted the product to a very specific market which was otherwise being ignored. Rather than throwing out a half-realized device that didn’t resonate with any particular use case, the team engineered the hardware and software experience to their target audience to great effect.

Taylor Cavanah

Taylor Cavanah

To learn more about the focus and vision which made the device a reality, we got in touch with MG’s physicist turned meta-gamer Taylor Cavanah.

Creating the MG

The Powerbase: Taylor, thanks for taking the time to talk with us. Can you start by telling our readers a bit about yourself and your background?

Taylor: I’m a physicist and started my career in Nanotechnology at Zyvex.  After finding some success in developing the nanoprobing market for the semiconductor industry I decided to strike out on my own.  My buddies and I started our own software company – Locai – and a year ago we combined forces with the hardware and business guys from ACTScom to launch PlayMG.

The Powerbase: What exactly is your role at PlayMG? What are your day to day responsibilities like?

Taylor: My specific role involves game/app design, platformsoftware design, business development, innovation, and as is the case with all start ups – many more roles.  Day to day I was either talking with game houses, working with the hardware guys to design the user experience, writing the story behind our game within the gaming device app Origins, looking for interesting apps to work with, working with marketing to craft the messaging behind these features we were building, and testing devices in every possible way.

The Powerbase: PlayMG has no qualms about the fact it has targeted the MG to younger gamers. Why do you think the younger gamer is so important? What makes the MG a better option than, say, mom’s old smartphone?

Taylor: Every one has a slightly different opinion on this but for me the younger gamers make the most sense because they can’t have phones.  Whether their parents don’t want them or can’t afford the data plans, there are a lor of younger gamers who love apps but can’t get access to them.  The “hand me down” argument is definitely valid.  I can hand down my phone and just remove the plan and then they have a smart device.  That’s where our added benefits factor in to the equation.  You can’t get Family Collaboration, SpendSmart, or the Origins game in a hand me down.  And sometimes more importantly, you can’t get that “awe” moment when your son or daughter opens up your repackaged device from 2 years ago.

Android and the MG

The Powerbase: Its differences aside, the majority of the MG’s software is straight Android. Would it be safe to say that, if it wasn’t for the open nature of Android, the MG wouldn’t exist in its current form? Would have putting this same hardware out with a proprietary operating system have gotten you as far as Android has?

Taylor: There is no way we would exist without Android.  The barrier of entry previously was just too high.  We got a solid and awe inspiring product to market in 9 months.  Core to that was not having to build an entire OS.  Not just in terms of getting something to market but that greatly helped us focus our time and money where it mattered – on the added benefits like Family Collaboration and Origins.  This is what I love about open source – you get to make products with extremely well designed experiences where it matters.

The Powerbase: One of the biggest selling points early on was that the MG would be a vanilla Android device, meaning it would be as close to AOSP as possible. In the end the MG delivered on that promise, and is one of the few non-Nexus devices available running stock Android. Why was running stock Android so important for the MG?

Taylor: Part of that answer has to do with my previous answer – it’s just easier to not build stuff you don’t need.  I think everyone can point to some larger companies that have large engineering staffs that have to build stuff because those salaries are being spent no matter what.  Then you get a lot of customization away from stock.  But most of that is useless and provides no value to the customer experience.  A lot of engineers also like the job security that building all of this custom stuff gives them.  They will always be needed because only they know how this version of flavored Android operates.  For us it was exactly that overhead that we didn’t want.  If we build our own flavor of Android then every new app or platform we create down the road has to take that into account.  We had to keep our focus on what mattered for the end user.

The Powerbase: From a development perspective, stock Android is generally preferable to manufacturer modified builds, but what about the end user? It’s no secret that the most popular Android devices (such as Samsung’s Galaxy line) make use of manufacturer modifications to their interface and applications, so the public doesn’t seem to mind. Do you ever worry that shipping with stock Android rather than a build with more visual flair and streamlined functionality pleases the developers at the expense of the end users?

Taylor: I have never believed that popularity of a device has anything to do with how well it is designed or received by customers.  The large software guys have proven time and again that being big in a space and having a ton of money can make up for a lot of deficiencies.  I say this because I don’t believe customers buy the Galaxy line because of the manufacturer improvements – most customers have never seen stock Android so they don’t know any better.  My guess is the commercial bashing the iPhone (hilariously with the parents in line) did a lot more than the user experience.  From what I’ve seen all of the added modifications make little difference to the real end users (not us tech types who are too deep in the space).  We found you could do an amazing amount of things just using the widget system in Android to change the user experience – without huge teams to build and then manage modifications.

The Powerbase:  Some would say that shipping the device with vanilla Android only makes sense if it’s kept up to date with AOSP (such as the Nexus line), but the MG is still on 4.0.4. Why hold the MG back? Are there plans on updating to Jelly Bean (and beyond)?

Taylor: We will update to Jelly Bean.  But with such a low saturation of Jelly Bean and many apps still not upgraded for the experience it doesn’t make sense to expend the effort.  Again we’ve got to focus on that end user experience and the only people ever asking for Jelly Bean are analysts or the random parent who just saw some article that mentioned the new Jelly Bean thingy for Android.

Expanding Android Gaming

The Powerbase: One of the best features of the MG, at least for parents, is unquestionably the Family Collaboration System. While it currently sets the MG apart from the competition, would PlayMG consider bringing it to generic Android devices? Perhaps charging a monthly subscription fee when used on non-MG hardware?

Taylor: We are always weighing the pros and cons of releasing some of the proprietary apps to the Play Store.  Right now we only have to manage one device, we get to ignore fragmentation, and we have a competitive advantage.  I don’t see us releasing the apps until we are much more established.

The Powerbase: An advantage of putting out an Android based gaming system is, of course, that you aren’t responsible for developing or publishing games for it (unlike traditional game consoles). That said, are there plans to talk to developers about MG optimized games? Is that already happening?

Taylor: Nothing that I can talk about but we definitely have plans and some preliminary talks about using our PlayMG IP to create games.  Any game developers interested (especially if they want to do something outside of the normal bounds of gaming) should get in touch with us.

The Powerbase: You can’t talk about Android gaming anymore without mentioning the OUYA; while it’s aiming for a completely different market than the MG, are there any parallels you draw between them? Do you see families owning both devices in the future?

Taylor: Mine arrives in 3 weeks (if I had more time and money I would have gotten a developer version).  I would love to work with OUYA in the future and I do believe that console gaming and portable gaming will always be with us.  Where the hardware, software, and interfaces end up who knows but for now there are many opportunities that could be explored between the two companies.  For the next year though I’m guessing both of us will be too busy to pursue them.

Looking Ahead

The Powerbase: A common criticism of the MG is that it lacks physical controls. This was a design decision based on the intended userbase for the MG, but it’s also undeniable that there are hardcore gamers out there that would appreciate an MG-like device with physical input. Is this a challenge PlayMG might take up in the future? Perhaps a device like the Sony Xperia Play, but in a non-contract form like the MG?

Taylor: I don’t see that happening.  Our target user is not hardcore and in fact probably did not grow up with a game system that had controllers.  But at an even deeper philosophical level (get ready for the fan boy to come out) I think the portable gaming systems with controls aren’t just missing the mark but don’t really have a mark to hit.  Portable gaming is about the casual experience on the go or that little block of entertainment that you carry around in your pocket.  I have so many different serious game devices where I can have mind blowingly immersive experiences – but that’s not what you want in a portable gaming device.  At the end of the day we talked to a bunch of “gamers” in our demographic and they wanted a device they could put in their pocket versus a device that let them play games designed for pre-touch devices.

The Powerbase: If it’s not giving too much away, what can you say about the future of PlayMG and the MG itself? Anything current or future owners should be looking out for?

Taylor: We have some great plans for the Family Collaboration System – making it much more collaborative.  A lot of parents and even kids have asked for expanded features here.  I’m most excited about expanding the portable fun in the device.  The entire industry as a whole is barely scratching the surface of what you can do with portable gaming.  We have some very interesting things planned for making shared portable gaming experiences like no one has seen before.  Unfortunately I can’t say much more than that.

Thanks to Taylor and the entire PlayMG team for their assistance and professionalism while we worked on the original hardware review and this interview. We’re very interested in seeing where the future takes PlayMG, keep an eye out here on The Powerbase for future coverage of this unique company and its products.

by Tom Nardi at September 28, 2014 06:47 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 September 28, 2014 06:47 PM

September 24, 2014

Devoxx 2013 Presentations

All of the talks from Devoxx 2013 are now freely available on the parleys.com website. This includes all of the talks that I did with Romain Guy on Android:
Filthy Rich [Android] Clients
What's New in Android
Android Performance Workshop Part 1
Android Performance Workshop Part 2

There's also an interview about the new features in KitKat.

Then there's this somewhat less relevant Patterns, Shmatterns talk I did about software design patterns.

All of the slides from the Android talks are posted on Romain's blog.

by Chet Haase (noreply@blogger.com) at September 24, 2014 01:37 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

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 eur0b0t at July 17, 2014 10:41 AM

June 27, 2014

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 eur0b0t at June 17, 2014 07:30 PM

June 02, 2014

May 18, 2014

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

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

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

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

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() &amp; 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() &amp; MotionEvent.ACTION_POINTER_INDEX_MASK) &gt;&gt; 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) &gt; mTouchSlop || Math.abs(dy) &gt; 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 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

April 08, 2013

Switch The Party On with Native Union’s Bluetooth Speaker

With Native Union’s SWITCH Bluetooth wireless speaker, you’ll be able to share your favorite music with everyone in the room. It’s also a great way to amplify games and movies from Bluetooth-enabled devices, and it can be used as a professional conference call solution with its full duplex microphone.

amwiblog nativeunion switch beach sm Switch The Party On with Native Unions Bluetooth SpeakerDesigned by professional sound engineers to ensure exceptional sound and optimal clarity throughout the frequency range, the SWITCH features three powerful speakers — including an active sub-woofer and has an enhanced bass-reflex system. Featuring an intuitive volume control the SWITCH also enables you to effortlessly alternate between music and calls for up to 14 hours at a time. The battery is so powerful, the SWITCH can also function as a power bank for your mobile devices.

The SWITCH can be used either vertically or horizontally, and it features a soft touch exterior that’s available in multiple colors. Check it out today, and get your party started.

April 08, 2013 01:00 AM

March 26, 2013

Jabra Adds a New Dimension of Sound

Delivering state-of-the-art design, ease-of-use, and outstanding sound quality, Jabra’s newest corded and wireless stereo headphones are perfect for hard-wearing, everyday use and portability. The lineup includes the over-the-head Jabra Revo — available in corded and Wireless versions — and the small but tough in-ear Jabra Vox.

amwiblog jabra revowireless sm Jabra Adds a New Dimension of Sound

The Jabra Revo Wireless

Jabra has upped the ante sonically with the addition of Dolby Digital Plus technology for all three models. With Jabra’s exclusive Sound App for iOS and Android devices, you’ll enjoy a richer and fuller sound that is often missing in digitally compressed audio, breathing new life into your favorite music while giving it extra depth and dimension.

Jabra Revo Corded and Wireless

Both the Jabra Revo Wireless (a 2013 red dot design award winner) and Jabra Revo corded headphones (the latter available in gray and white) are solidly constructed using an aluminium frame, steel hinges, and a shatter-proof headband for extreme flexibility. Both the corded and Wireless versions are super comfortable with a padded headband and plush, memory foam ear cups. They feature a foldable design for quick, compact storage and come with a detachable cord and USB charging for convenience.

Play or pause music, skip tracks, and take calls with ease by using in-line controls on the corded version instead of searching around for your phone. The Revo Wireless utilizes both Bluetooth and Near Field Communication (NFC) technologies to pair with your device, and its Turntable Touch Control allows you to easily play, skip, or pause your music while also managing calls.

amwiblog jabra vox sm Jabra Adds a New Dimension of Sound

The corded Jabra Vox


Jabra Vox

Size matters… especially when earphones so small command massive sound like Jabra Vox. Optimized for superior sound and performance with portable devices, the Jabra Vox really packs a punch. Get the perfect fit with specially designed ColorCore EarGels for enhanced comfort and deep sound. Vox’s earbuds are engineered to rest comfortably for extended use. The Vox also includes in-line controls for playing or pausing music as well as taking calls.

Dolby Digital Plus

With Jabra’s exclusive Sound App (available for iOS and Android devices), Dolby Digital Plus adds that extra depth and dimension to your music — extending bass performance and enhancing high frequencies so your music retains its clarity.

The Jabra Sound App automatically identifies your music files so it’s easy to get started. Simply download the App, and you’re ready to go. Use the App to create and browse through playlists, share music on Facebook or Twitter and adjust the graphic equalizer so you can play your tracks as you want to hear them.

Find the right headphone for your needs today, whether it be the corded in-ear Vox, corded over-the-head Revo (in gray and white), or the Revo Wireless for the ultimate in freedom.

March 26, 2013 03:56 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.

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 26, 2012

Kikoriki: The Beginning

Kikoriki: The Beginning [by HeroCraft] is yet another arcade adventure android game from the people that brought you Dragon and Dracula. The game is based on the Russian cartoon series “Smeshariki”, but the show is known by different names in other countries.

Kikoriki - GameplayKikoriki - Gameplay

The characters of the animated series become superheroes in this adventure, which is always fun for kids and adults. Children will probably enjoy it more than adults due to the excruciatingly child friendly atmosphere of the game. However, some grown-ups might give it a go just to try out the various super powers each hero possesses.

Kikoriki - GameplayKikoriki - Gameplay

Your mission is to vanquish evil and thus save the boring grown up world from destruction. How does one do that? Well, by working together of course, just like best friends should! The power of friendship is demonstrated in the game by allowing the player to switch between two characters during gameplay and use their individual super powers to solve puzzles, defeat bosses and do anything to complete the level.

Kikoriki - GameplayKikoriki - Gameplay

The three chapters of the story take you from the happy land of Kikoriki to the boring grey Megapolis. Each chapter tells a different story and allows you to play various characters. The game has brightly colored, simple and yet well drawn cartoon style graphics with smooth animation. The controls might take a bit of getting used to, the joystick in particular. I do like the soundtrack, which reminded me of the music from good old cartoons like Tom & Jerry. Kikoriki will only set you back $1, unless you don’t really love your children that much, in which case you can opt for the lite version. Either way, the game will help keep your kids preoccupied and will not only help them learn about friendship and growing up, but will also teach them that if you touch purple butterflies it will make you sneeze stars.

by Gamer-K at June 26, 2012 04:44 PM

Dragon and Dracula

Dragon and Dracula [by HeroCraft] is a fun and challenging arcade android game that is sure to touch the hearts of the Mario and Spyro the Dragon generation. It takes the jumping, coin collecting and shrooms – the inspiration for many 90’s games – from Mario, giving the role of the hero to an increasingly awesome dragon, whose job is to defeat Dracula.

Dragon and Dracula - GameplayDragon and Dracula - Gameplay

The fact that you start the game with just a little baby dragon that jumps can be disappointing, at first. However, as you progress through the 25 levels of the game, learning new skills, collecting artifacts and battling enemies, you will see the little guy go through three stages of evolution. With every new form the dragon grows, acquiring fire breathing, flying, climbing and head bashing abilities, not to mention a mean look.

Dragon and Dracula - GameplayDragon and Dracula - Gameplay

The dragon’s natural abilities are enhanced with the always popular temporary perks such as invulnerability, increased speed, regeneration and many more. They will be of great help on the quest to destroy the Dark Lord’s minions and defeat the legendary vampire that is Dracula. Gamers who find the adventure to be unfulfilling can enjoy some mini games that are unlocked during gameplay.

Dragon and Dracula - Gameplay

Controls might take a couple of deaths to get used to and actually made me play with my tongue out, which I have not done in a while. The menu is very well thought through, easy to navigate and has all the information on game controls, settings, stats and sharing options. Thanks to the simple yet visually pleasing and familiar graphics, the gameplay is smooth. Not a fan of the soundtrack though, which sounds like old Japanese game techno music. For only $1 Dragon and Dracula has a lot to offer with tricky levels, epic boss fights, addictive mini games and main character customizations. If you are just looking for a fun adventure or want to prove yourself on a global scale, this is the bargain to go for.

by Gamer-K at June 26, 2012 04:33 PM

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