Saturday, February 9, 2013

Taking pride in your work as a developer

What type of developer are you? One who takes pride in every last step of the process or one who just says "Tell me what to do and I will do it?". The world needs both types but I happen to fall into the camp of taking pride in every last bit of my work. At some companies this can make things rather interesting.

I am working on a contract currently where they developed an iPhone app first to prove out the server side API. There are 6 developers on the iOS side of the house. They brought in me and another Android developer that I had worked with in the past making for a pretty solid team right off the bat. They expected us to be 3 months behind the iOS team as we are out numbered 3 to 1 giving them plenty of time to shake out all the issues and solidify the core design.

We have run into a multiple issues. First we have already caught up with the iOS team. Most on that team were C# developers reassigned to Objective C. The other Android developer and I came in with a decent background in Android development. Of course that allowed us to quickly catch up as we are not learning Java and the Android SDK, we just need to buckle down and code. 

Since I have also done iOS development and I have access to the Objective C code base I have looked it over. The code does not look like Objective C. It looks like someone tried to force fit one language, C# in this case, into another language. Macros to emulate methods of C#,  no method definitions in the .H files, everything stuffed into dictionaries when other collections make more sense and a number of other issues that would drive a person who lives in Xcode bonkers. The code is very hard to read as it is not what you expect to see when you view Objective C code.

One of the steps we took in the process was to print out the screen shots, four to a page, from the user stories and cut them out. We saved paper but still gave us enough room to make notes. This allowed us to see the big picture of the project and divvy up the work of creating the screens in XML. The best thing it allowed us to do was find inconsistencies in the layouts. Did the date appear above the amount on one screen but below it on another? That happened in various places. Was it called Transaction ID here and Confirmation ID there? Yes it was.

We were also able to find screen layout patterns and create generic layouts in code. We grouped all the screen shots of like type together and decided where we could use a generic layout to handle things. This let us start with a solid initial set of activities and fragments. We also looked for areas to share Action Bar code. We were able to quickly get fragments and activities in place.

What happened next is where things did not work out. Even though the company follows a flavor of Agile we were stuck in Waterfall. The product manager did not want to change any of the user stories on the iOS side even though he admitted they are wrong. He just wanted the Android team to follow the iOS design, inconsistent as it is, because if he changed a story he got in trouble.

There are various aspects of the project that look like this is the first attempt of a web designer on a mobile device and this is exactly what happened. Another reassigned person who did not put in the effort to really learn the new platform they were tasked to work on. The project looks ugly and out of place on the iPhone and even worse on the Android as it got a second level of ugly being a basic conversion from the iPhone. We were able to argue and remove the iPhone specific look and make it at least appear to be an Android application but we are struggling to get them to fix the consistency issues and to remove unneeded screens via a much cleaner interface. 

Yes, they see and agree with our suggestions but they don't want to take the time to update the iOS user stories and screen shots or have that team change the code. The iOS team is willing to put in the work. The project is no where near shipping as the server side API is not finished. In fact it is all still mock data. The server is not talking end to end to the real data providers yet so this is the perfect time to clean up the user interface on both applications.

When I speak with the iOS team they admit they gave up long ago. Just code and layout what was given to them by the UI team. In the Sprint meetings they did not bring up all the areas they felt were wrong on the iOS design. Dialogs that are justified to the top of the screen instead of centered. Hand drawn buttons where the iOS button looked nearly the same, extra screens and taps to get the where you needed to be, data displayed in the wrong order. They have been at the company for so long they just accept and do what is told of them. 

There are so many other things wrong on the iOS side I can barely stand to run the app. The keyboard covers the entry field so you can't even see what you are typing. I have no idea how this made it past QA let alone how the developer thought something that basic was good enough to toss over the wall to QA. Table data was hand laid out in Interface Builder and they did not space it evenly. A label is not base aligned with the data to its right. The don't have the back button on all screens. They don't support landscape except on one screen where they manually rotate the objects they paint to make it look landscape even though it really is not and you can tell that by the look of the main status bar.

I do run the iOS app as I want to make sure we are not missing a screen or dialog on the Android side. I have found various areas that are not in sync because it was not called out in our user stories. The user were copied over from the iOS Sprints to the Android Sprints. This means the iOS QA team also did not report issues when doing their work.

Luckily for us we have an Android QA person that also cares and calls out the issues and wants this to look as nice as possible on the Android platform. That is a huge help. Since we are highly outnumbered it is good to have one more in our camp.

Another issue we have is QA is under one manager. Development under another and Product Management / UI under yet another. All we can do as developers is make suggestions to our boss to make suggestions to QA and PM bosses to try and fix things. There is no accountability in place and things are falling apart. The UI and product manager have been with the company the longest and are very closed to suggestions.

To me the product manager should have the most pride in the application. He should want it to look the best on both platforms and fight to the bitter end to see that happen. Instead he just shrugs his shoulders and gives up. It is very sad indeed. He has put the Android team into waterfall mode, don't question anything, just do what they did on the iOS side, as long as they match it is easy to support. I know it does not look like an Android or an iOS app but it is better than the previous release which was a WebView wrapper around the main web site. That part is true, it does look a ton better than it used to but with some small tweaks it could be a stellar application.

I did get the PM to agree to a number of consistency changes. Then he came back in and told me to back out all of those changes to make it match the iOS side even though he knows that side is wrong. This is the part that is killing me as a developer that takes pride in his work. Look, the code changes are not tough to reverse but that is not the point. I know I will be releasing at some point in the future an inferior product. I am a contractor, I will have to do what the company wants but boy does it hurt. 

The next and final missing Android area of the product I will be working on hits sizing meetings next week. I am dreading these meetings as we have a new design in mind that eliminates 3 of the 7 screens in the current iOS design. The design we are suggesting makes it work like the Google supplied application on every Android phone. I sat down with the iOS team that wrote that area and they really like the new design. They are more than willing to change the iOS side to match it and agree it will match what an iOS user would expect to do instead of the web interface look that was provided by the UI and PM teams. I have a feeling I just get to shut up and roll over on Monday. Add to the fact one of the iOS developers who worked on this area resigned last week. While I have not had the chance to speak with him directly my guess is he was sorely disappointed with how the company operates too. He converted from contractor to perm employee just over a month back.

They don't want an architect or a leader. They want a faithful dog. I am not a dog. They pitched the position as an architect position where I was Android voice for the company. All I can hope for is my next stint does not have all of these issues, that they follow a truer flavor of agile or at least stick with one design pattern. I was told I was brought on to do the best Android product possible but that simply is not the case. It is such a struggle to not be true to myself when I am developing this code. I will do the absolute best I can for as long as I am there, that is who I am.

Saturday, February 2, 2013

My Note 2

I have had my Note 2 for a couple of weeks. It is an excellent phone, game unit and media consumption device. I pretty much like everything about it.

First it is not as big as you think it is. The sites that complain about that appear to have not taken the time to really use the device. Yes, it is bigger than pretty much any other phone out there but not 2x the size.

Second the battery life has been wonderful. Charge it every other day if you don't play a pile of games. I don't do that much calling or get very many texts so it is generally not busy doing much. It has never left me in the weeds for battery needs.

I am using Llama on the phone so it knows when I am at work turning off WiFi (they don't have it at my job which is another issue) and turning down the main speaker sound. At home it cranks up the sound so I can hear it in the house when I lay it down someplace and it connects to my WiFi. I have the sound muted at night. Works like a champ and is a great free program.

For games this is a perfect size. I have a Xoom tablet where I played most of my games in the past as the phone was too small. Not anymore. This really is a great gaming size. I have pretty much normal sized hands, not little lady hands or big basketball player hands. I would say just average for at 6 foot tall person. The games I have played seem to work the best on this phone over any other device I have used. Everything is in reach and the touch zones are the right size.

For IM this phone is awesome. I get to use Swype when I want or pull out the stylus and write. The hand writing recognition has been spot on. Nice job Samsung. Using Swype on this size of device is so much easier. Even just typing each letter works great. Keyboard is the right size and having the numeric entry area above the alpha part is super handy. I always need to type a number and not needing to switch keyboard layout is darn handy.

I have used the paint program to draw various things including screen wire frames for work. The stylus is very responsive. I need to practice my drawing skills and having this device in my pocket at all times is pushing me to do that. I don't find the stylus to be a gimmick.

The Calendar app is very usable. My wife and I have our shared calendars along with those of the kids and their school activities. Having the snap shot calendar widget on my home screen is super helpful and then using the Calendar app to dig into details or look farther into the future is really easy.

Web browsing shines on this thing in landscape mode. I generally request all pages as desktop pages. Landscape gives the proper width and font size to make it all very easy to use. Thanks to Google and Chrome and I have my bookmarks linked. I can quickly check out action on my favorite sites. Searching is easy with the various entry flavors.

I have used the dual screen mode. I don't use it often but when I need it the ability to have two apps open it is awesome. I was doing some research and needed to copy URLs from the browser to an email. I split the screen and had Chrome and GMail open at the same time. I sized them for Chrome to be 75% of the screen and could quickly copy and paste the links right into the email. This rocks! Sure I will find other uses for it too.

I don't feel I have figured out as many of the cool features as I could use on this device. I am working as a contractor so my time has been dedicated to that area right now. I am trying to scan more Note related websites to pick up new tips. So much of what this thing can do is a mystery and I want to learn all the short cuts and cool features to get the most out of it.

Really people, go to your provider and give this phone a shot. It really takes the smart phones paradigm to a new level. It has replaced my need to grab the tablet when I am at home. I type more and do more everyday. Heck I hardly fire up my desktop anymore expect to type in something super long such as this post.

I have to use the iPhone at work as a comparison device as I am writing the Android version of our software. That phone feels so tiny in my hand. My fingers want to wrap around it and hide the screen. Everything about it is tiny. You can barely see anything on a web page. Books have pitiful amounts of text. A map barely shows any farther than you can throw a rock with any sort of detail. Each screen has just a snippet of information on it. I can't go back to that size of phone for sure.

Sunday, January 27, 2013

Family help desk then and now

I have been doing family help desk support for a long time. Once people in the family know you have any sort of computer expertise you become the help desk. That role has changed a lot over the years.

It used to be about installing printers. Every printer did something weird and had to have special drivers. Now they pretty much install by themselves. Everything is USB making it so much easier.

Occasional someone would branch out to a scanner. Again USB could save the day but there was generally a driver to find, testing to do and configuration to be done so they did not scan at a super high DPI making for massive images.

You got to install a new version of Windows every so often. Plus you had to manually install updates to drivers - sound, printer, video and other hardware. You also had to install updates to software manually too.

Now no one changes Windows versions unless they upgrade their machine. When I say they I mean you as they call your for a recommendation on a new machine usually when they are standing in Best Buy, Sams Club, Costco or someplace you would never by a machine from. You would generally do some research and find the proper machine but today it is a "hey, this one is on sale, should we get it moment?" and you know you can't talk them out of it.

I have noticed people don't even ask about new versions of Windows. Not a single family member has asked about Windows 8. None of them care. What they have for hardware runs just fine. They hardly ever install a new program but instead spend most of their time on the web. Instead of installing something they open a new tab. They use Word and Excel but really the web browser has become the only piece of software they need with the requirement of an occasional plug-in to support something.

In the past a newly purchased machine was pretty clean. You got their existing hardware to work and it was done. Now you need a couple of hours to get past the first boot and to kill all the stupid crap that loads on the box eating up all the RAM just starting up. Man I hate this process. Really HP, Dell, ASUS and others - just screw you. You are not adding value, you are adding pain. Your machines take forever to boot. You are not adding to the user experience you are ruining it. After I dump all that crap that machine it not too bad. Then I have to go about updating Windows and updating all the software they actually use. I keep a list of things to install like a PDF reader, Flash, Shockwave, QuickTime, 7Zip, Java, Notepad++, Picasa and Paint.NET to name a few. Just saves me the time of waiting for them to visit a web site that needs one of these and confuses them.

Speaking of allowing a family member the gift of installing a required web program themselves - NEVER DO THIS. They will always click through everything and get 10,000 toolbars installed. If you are a programmer who codes this up or the person who originally thought of this I F'ING HATE YOU! Look everyone does this, you are all scum, with 20 toolbars running they don't use ANY OF THEM. The battle is over, STOP IT NOW. You can't be getting hits off this crap. But I hate ever last one of you and refuse to use any of your crap and tell every family member how much I hate your guts any chance I get. Great marketing on your part isn't it? This is a total failure. Every time I visit a family member I have to clean up more of this crap. They hate it but are too stupid to avoid it no matter how hard I try to train them. Burn in hell the lot of you.

Everyone and their pet cow has a smartphone now. Guess who is the new help desk for that? Yep it is you again. To add to the fun there is a new group of people to hate. The bloatware that is installed by Verizon, T-Mobile, AT&T and Sprint to every phone. Unlike the PC you can't uninstall this junk. Seems the same set of a-holes are in charge here. I don't want nor will never use any of this crap. It clutters every phone out there. Just to add insult to injury the stupid crap wants to update all the time too.

Just when you thought you were done learning all sorts of weirdness about about PCs you get to learn all sorts of weirdness about smart phones. iOS does it this way, Android that way, Blackberry some other way that makes no sense at all.

When it all came to a head I got to learn how to root a phone. Since Android phone manufactures don't update to the latest from Google because the bastardized it so bad. They refuse to atone for their shoddy skills and let you suffer. Guess what you get for doing this to me T-Mobile and Samsung? You get to lose every single piece of that bloatware. And you lose it from now and into the future. Once you forced me to root I phone that means I will keep doing it forever. I see no need to stick with your crap.

This came up when my niece was unable to run her banking software because Samsung and T-Mobile did not support updating her phone. I rooted it and went from Eclair (shudder) to JellyBean. She can now run everything and does not have stupid junk on her phone. I rooted and updated my son's phone and my wife's phone too. I got to kill tons of stupid programs and the movie Avatar off the phone. Not a one of us ever watched that movie on the phone. Who thought that was a good tie in? A 3D movie on a phone? Thanks for wasting space on my device for a couple of years.

Everyone is very happy with the rooted phone. It is like a new device. Tons of new features to explore and it runs faster. Now they brag up the Samsung again. Not that Samsung deserves this as they blocked me from improving their hardware until I rooted things.

Now we get back to help desk support. Family installs Gmail, Calendars, FaceBook, Words with Friends, Hanging with Friends and all sorts of programs that want to notify you every second of every day that there is an update. They all want to light up the LED, vibrate and play a sound. You never get a moments rest. All of this is enabled by default. I have to go in and shut off half this crap just so the battery is not eaten in 3 seconds after a recharge. Some apps suck so bad you can't control individual notifications - sound, vibrate, LED - but it is all or nothing. They want to be notified but by vibration only. So I get no real solution to these very popular but poorly written applications. If you are a developer that cheats and does the all or nothing setting then get the hell back in there and fix it!

A PC has your attention while you are sitting at it. The cell phone is on you at all time. Now all these crazy bastards want our attention all the time 24x7. This is getting crazy.  I have a life, I don't want to be uninterrupted by my phone all the time. I don't have a Facebook account nor do I play any of the games associated to it. I have a couple of email accounts and a calendar. I try to reply to text messages because they generally have a short answer. Only my immediate family contacts me that way so those don't happen very often. I don't know how some of these people live with the constant be-boop and vibration of the phone. Most hate it so I help them disable what I can.

Everything is enabled by default of course. They want you on their site all the time. It is getting to the point you overwhelmed them and now they hate you and want to kill and your alerts. These vendors have gone too far and there is a backlash against it. Just means they will find some other way to annoy us, they don't stop, they just get worse. People get fired because they don't do their real job. If some one does not have a job they can't have a phone and wont have your stupid apps. You are destroying your user base for short term attention. These games are free so you are getting false profits from ad viewing. This can't keep going.

Some of the apps don't even use the standard menu buttons to show an options menu allowing you to kill this. Instead they hide it somewhere in their interface. Screw you bastards. If you want to be on the Android then be a good Android citizen. I have had to find all kinds of bizarre ways to get to settings menus. Thanks for wasting my time!

Yep, I am pissed off at all of this crap and I have the right to be. I get hauled into long sessions of fixing things because some marketing jerk off decided all of this was a good idea. It is not, you are pissing off your clients and you are pissing me off so I find ways to totally kill everything about your app.

Being the family help desk is getting harder. I have to support the PC and the smartphone. I have to clean up tons of stupid crap instead of solving real problems. I have to make things work faster by killing programs that do nothing. None of us own anything anymore. Everyone tries to get a piece of the pie by installing something that just annoys us. I am rarely installing something that helps out a family member, I just spend time removing crap. Computers were meant to make our life easier but that is not happening. Instead they are getting in the way and eating up time for non-useful activities.

Saturday, January 19, 2013

Root 'n ROM a Samsung Vibrant

I got a new Samsung Note 2 for myself. That means family trickle down for old devices. My son got my original Samsung Galaxy S Vibrant. On the same day he got the phone my niece asked why her Samsung Galaxy Vibrant could not see her online banking application in the Play Store while her old phone could.

I explained how Samsung was a group of weasels and did not upgrade the original S past 2.2 Froyo but you could root and install a new ROM to fix that. She asked the risks and I explained them. I had been thinking of rooting and installing a ROM on the S when I had it but did not want to go through the hassle. Now that she was asking and my wife, who also has an S, was complaining about various issues that have been fixed post 2.2 and I had a basically virgin phone on my hands I figured what the heck.

What the heck indeed. It took me 7 hours of searching the web and trying all sorts of things to finally get it rooted with a ROM on it. That got my son up to Chimera / Jellybean. It took another couple of hours because I had not take good enough notes to get my niece's device updated then another couple of hours to do my wife's phone. Actually this should all take under 1/2 an hour if you have all the right tools. I hope I can lay out what I did to help others. I don't have a phone that I want to redo to try all these steps again thus I plan to layout why you need each piece to help you trouble shoot an installation.

First up, am I happy with the results? Generally yes, the phone is so much more functional and configurable. All software now runs on it. There is one BIG issue, the speakerphone is useless. Just static and noise. Very disappointed in that. I hope they fix this soon. It was not an issue in older versions but now is. In the end it really feels like a totally new phone and I wish I had done it while I still was the primary user. I don't plan to root and update the Note 2 as I use the stylus and other features plus the Android version is really new. That phone rocks without needed to do this.

From this point on I take no responsibility to what happens to your phone. While I was able to Root 'n ROM three devices without issue you may brick your phone making it totally unusable.

PROCEED AT YOUR OWN RISK!


Software you MUST have to pull this off

Superuser from the play store

https://play.google.com/store/search?q=superuser

If you don't have this some of the other software will fail with less than useful error messages.

ROM Manager from the play store

https://play.google.com/store/apps/details?id=com.koushikdutta.rommanager&feature=search_result#?t=W251bGwsMSwyLDEsImNvbS5rb3VzaGlrZHV0dGEucm9tbWFuYWdlciJd

This allows you to install a custom ROM after your phone is rooted. It requires SuperUser to be installed.

SuperOneClick rooting software 

Officially here http://shortfuse.org/

That seems to be down more than up so try here
http://download.cnet.com/SuperOneClick/3000-2094_4-75447027.html

This allows you to root the phone

Root Browser Lite

From the play store
https://play.google.com/store/apps/details?id=com.jrummy.root.browserfree&feature=search_result#?t=W251bGwsMSwxLDEsImNvbS5qcnVtbXkucm9vdC5icm93c2VyZnJlZSJd

You will need extra space on the phone for the ROM manager to run. You use this to delete that crappy bloatware on your phone to make space to install the new ROM.

3E Recovery Installer

From the XDA developers forums
http://forum.xda-developers.com/showthread.php?t=1243106

With out this you will see installer failure error messages when you boot into the special phone menu. You will only need this if you are on the 3E ROM on your phone.

Root Check Basic

From the Play Store
https://play.google.com/store/apps/details?id=com.joeykrim.rootcheck&feature=search_result#?t=W251bGwsMSwxLDEsImNvbS5qb2V5a3JpbS5yb290Y2hlY2siXQ..

Not technically required but it will tell you if your phone is actually rooted saving you from attempting to move on installing a ROM which will fail if the phone is not rooted.

Rooting your phone

Without rooting you can't install a new ROM. This is the part that took me the longest to research and get working fully but really should not take very long at all especially with all the proper software loaded.

On your phone
  1. Install SuperUser from the play store. Lots of other pieces depend on this being installed.
  2. Install Root Browser Lite. You will need to delete system files to make room.
  3. Install Root Check Basic. Sanity checker used in a minute.
On your PC
  1. Download 3E recovery
  2. Download SuperOneClick
Configure your phone for USB Debugging. Usually under Settings -> Applications -> Developer Options -> USB Debugging. This must be enabled for the next items to work.

Unzip and run SuperOneClick and choose to root the phone. It will run ADB commands to get things rolling and root the phone.

Unzip and run 3E recovery install.bat from a command line window if you have a Samsung Phone with 2.2 installed. The next steps will fail with crappy error messages if you don't do this.
  1. Power off your phone.
  2. Power your phone back on. It should be rooted. You must do this reboot for the root to "take".
Run the Root Check Basic app on your phone. Verify it is rooted by pressing the Verify Root button. If not redo the steps above. Your phone might be rooted here but if you did not install SuperUser this step will fail but not really tell you why. You must be fully rooted for the next area to work.

DON'T DO THE FOLLOWING IF YOU REQUIRE SPEAKERPHONE FUNCTIONALITY

Installing Chimera Jelly Bean ROM

Back up everything on your phone. Do this over USB or install and run AirDroid from the Play Store if you have a wireless network. This makes copying files to and from the device super easy.


If you don't back it up / copy it off the phone, especially if it resides in internal memory, you WILL lose it when you install the new ROM. You have been warned.

We need to delete some files off the phone to make room for the custom ROM to run. We will start with deleting bloatware installed by your wonderful wireless provider. 

Start the Root Browser Lite app and navigate into the System / Apps directory. Here you will see a number of APK files. Long press on one and select Delete. Super User will prompt if it should allow this action. If it does not then you are not rooted or forgot to install Super User. 

I removed Avatar files, never did watch that movie and did not care to see it on that screen, the Amazon MP3 player and the MobiTV player which gave me enough room. You may need to delete more or you may need to delete camera images / movies from the DCIM directory. If you have had an SD memory card in your phone the whole time you owned it you probably don't have images or videos stored in internal memory.

Run the RomManager app on your phone. Choose the option Flash Clockwork ROM Recovery. Pick your exact phone from the list then have it download and install itself. If will then user the SuperUser program you installed before to prove it ran properly. SuperUser should pop-up on your device asking for permission to perform a super user operation. If it does not then you did not install the program, which I said you had to, or your phone is not properly rooted. If it does install ask it to reboot into recovery mode.

If you don't reboot into recovery you will need to get into that mode yourself. With the phone powered off, press and hold the power + volume up + volume down buttons as same time until the word Vibrant appears on screen. Release them. If you did this right, and it make take a couple of attempts, your phone will show a text based menu.

Once you see the yellow text based menu we are nearing the land of no going back. We are going to wipe out data on your phone. You will lose contacts not stored in the Google Cloud. You will lose images and videos installed on the internal memory.

ROM Time


Watch this video as it does a great job covering what I explained above (but it does miss steps to verify the root which I provide and never talks about installing SuperUser which caused me no end of trouble). It shows the steps it takes to boot into recovery and to get a new ROM installed. Much easier than my typing it all back in.

Keep in mind:
  1. The phone must be properly rooted to install the ROM
  2. You need to update to Passion / ICS first then to Chimera / Jellybean second
  3. Once the phone is rooted you have done the hard part
  4. Follow all the steps to clear cache etc. for things to work
  5. Enjoy your phone with the super speedy and feature rich Jellybean installed
I hope something I covered here makes your Root 'n ROM life easier. Heck maybe I talked you out of doing it because you must have the speakerphone or maybe you did all the steps but one and I save you a ton of hassle.

Let me know if I missed something critical so I can update the steps.

Sunday, January 6, 2013

Ordered a Note 2

I have owned a Samsung Vibrant for the past couple of years. It has been a solid phone but Samsung never updated it past 2.2. At my current job the server certificate vendor being used, GeoTrust, is not trusted by my phone. I have been unable to use my device to run the software I am currently writing.

Face it 2.2 is pretty old and very few devices on the Play Store are using it. Most people update their phone every couple of years so they move beyond it. As a developer you need to stay a bit on the cutting edge too. I am a cheap person by default so I hate to buy stuff just to have it. There was a sale on the phone this weekend so I decide to take the dive.

Why the Note 2? Didn't Samsung hose me over by never updating it during its life with me? Very true but it has been a rock solid phone. I could have rooted it if I wanted to lose functionality. Seems like the various ROMs have some sort of issue. Can't use the camera or something with the audio is messed up. No thanks.

I am not using the heck out of the phone as it is. Yes I do some text messages, get calls from my wife and kids and play a few games. Other than that I am not playing with it all day long. I am coding for it. Now I need something new to code against.

We have a Note as a test device at work. I have found it to be a nice phone. People say it is huge but I don't find that to be the case. It is about the right size to do what I want. Big enough to read web pages but still small enough to fit in the pocket. I got a lot of use out of the Note when I took it home on different nights.

Samsung does very nice screens. Bright colors, easy to read text. The addition of the stylus appeals to me too. On top of coding I do a bit of graphics work. I want to practice drawing more often. Now I can do that anyplace I have a bit of free time. I type very fast on a computer keyboard. I really like the Swype keyboard. I tried the handwriting side and it seemed to work very well. The Note needed to be faster to keep up with my writing and drawing.

Another guy at work bought the Note 2 so I got to try it out for just a little bit. The stylus was able to keep up with my drawing. This appears to be a really fast phone. I will finally get JellyBean on a device that I have on me all the time. I have a Xoom at home with JB on it so I know my way around.

Curious to see how the dual app stuff will work. I think my wife would like it as she plays Words with Friends and uses some website to help her look up words. Right now she will have the phone in one hand and the tablet in the other to look up words. Doing it with one device would be very useful to her.  I don't play WWF but I hope to find other areas this would be handy.

The local libraries just sent a note they are now supporting e-books. I really want to try that out. I would love to try out some other authors but just downloading a book, no gas wasted, book on me all the time. I also want to keep up on some other technology websites while watching TV etc. I know I was able to do that when I had the Note at home.

All very exciting. Should arrive by the end of the week. My son will inherit my old phone giving him is first smartphone. He is totally pumped for that to happen. It will help him keep track of his schedule with Google Calendar and GMail. I hope it helps him track his own schedule better so my wife and I can stop doing that. Upgrades all around. I will post a review once I have the actual device in hand.

Friday, January 4, 2013

Spinner being different ICS and later - a fix

We are using the Android Spinner control with an ArrayAdapter. On my 2.2 phone everything was great. I tap the Spinner and I get a list of items with text to the left and a radio button on the right. But on Ice Cream Sandwich and above the radio button did not appear.

I was using:

logAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

Changed to:
logAdapter.setDropDownViewResource(android.R.layout.simple_list_item_single_choice);

Now I have the same look on older and newer versions of the Android SDK. I want the radio button to appear showing the last selected item in the list always.

Wednesday, December 26, 2012

Useful tool for getting Android crash logs - free

One of our QA staff had loaded our Android APK that is still in the testing phase and was getting a crash. This means nothing is being sent to the Google Play Store. Previously I would have them set up the Android SDK on their box and grab the crash or just drop by my office. This person works remotely. I needed a new solution. I found the following app on the Play store:

https://play.google.com/store/apps/details?id=yuku.logviewer&feature=nav_result#?t=W251bGwsMSwxLDMsInl1a3UubG9ndmlld2VyIl0.

It is called Log Viewer and will let you view the log on the device or email it to someone. Turns out she had an out of date APK and the issue had already been fixed. Easy this time but next time...

We do have another remote device that is crashing much later during the app run. I am going to have them install this and get me the report so I can track that down. Very handy tool. I installed it on my phone too as there are times I am demoing something I am working on and it never fails I will crash it in some very odd manner. Now I can just email myself the crash and deal with it later.