Local Engineer’s cool Pen

A couple of months ago I was given a PressurePen by Chuck N, from the local Triangle Mac Users Group. The idea was to play with it and write up a blog entry. I had been running iOS7 most of the summer, and the app didn’t seem to work with iOS 7 on either my iPad or my iPhone. So It’s taken me a while to write up this post. Having said that, I’ve now had some fun playing with this pen, enabled via a Kickstarter.

Let’s begin with the device itself, it is a set of open source designs that allows you to print our a shell for a pressure pen. A pressure pen is used by artists to behave much more like a real pen or brush. Applications sense the amount of pressure being applied to the pen and translate that into things like the width of the stroke, the amount of “paint” being applied, and how fast the “paint” is used up from the brush. The goal is to make the process of creating digital art, more like traditional art.

I’ve tested the pen on three different devices and two different apps. Due to the iOS7 problems, Charles Mangin (the creator) suggested I test on my Android tablet (a Samsung Tab 2) with Infinite Painter app or if I wanted to test on iOS that I use an app called Pen & Paper. Both of these apps worked fine. My artistic skills are bad, so I won’t post any pictures of any of my “art”. If you want to use the Pressure Pen app on iOS7, it currently does not recognize the pressure off the pen. Charles does not have an iOS device, so there may be a delay on support. I have offered to test it for him, if there are others who would test, comment on this post and perhaps we can help Charles update this app.

So how does the PressurePen work? The pen is battery powered, so don’t forget to turn it on. The novel idea is the Pen plugs into your audio jack on your device and uses that to send the pressure levels to the tablet. Pretty simple. To that end I found the pressure to be a little less response than I expected, however, as I am not a digital artist, it may be that I’ve not yet trained myself to understand the limitations of this medium over pen and paper.

Overall, I think this is a very cool idea and I wish more apps supported this type of pressure pen. I find it would make a great addition to a photo manipulation application. What do you think? Go pick one up, it’s designs are open source and most of the parts a very inexpensive (there’s a kit available for $35 at the Pressure Pen website – http://pressurepen.net) or you can get a preassembled Pen for $65.

Android – Root or wait?

For my Android needs, I currently have an Galaxy Tab 2 (10 inch). It is running Android 4.2.1 and I have been wanting to install the latest version of Android, but Samsung has yet to roll the update out for my device. I have read that they are rolling it out around the world, but those reports tend to be a bit confusing. I could root the device and do the update myself, but due to my day job’s policy at IBM this is prohibited on any device that accesses my corporate resources. I currently use the Tab 2 to get my corporate email and instant messaging (using Lotus Traveler and Lotus Sametime for Android). I had these both on my iPhone and iPad, but since, as a developer, I tend to run pre-released and unsupported operating systems I decided to only run corporate software on my Android device.

I guess I could buy another Tab, perhaps the 7 inch, and another iPad (perhaps the mini) and only do upgrades on one device, keeping one device in compliance with corporate policies. What do you think? Do you invest in multiple devices for all of your development environments? One for personal/development use, and one for production use?

Google Developer’s Conference

*** It seems that this post didn’t go up when I thought it would..not sure what happened (I am sure it is a users/poster error).

I was lucky enough to have a very long drive during the Google IO keynote so I had time to listen to the livestream of all three hours while driving down the highway. There were a couple of key items that I found very cool and I’d like to share them now..

1) Google is finally getting social right. Their use of Google Now, Google Hangouts, and their new features of Maps are all great examples of how they are leveraging social and location data to create incredibly cool results.
2) Google is making a great play for the education market. One of the things that Apple has been historically good at, is addressing the K-12 markets, but their premium pricing have become a bit of a challenge in today’s highly sensitive budgetary environments. The Google Play store for education sounds amazing: teachers able to push apps to their students, centralized financial control, but teacher lead purchases, and many other features.
3) Larry’s speech was amazing. I am sure part of it was the tenor of his voice driven by his vocal chord paralysis. His vision of the value of technology and engineering and how we all as developers are going to change the world, was not only compelling, but also inspiring. Yes, I can easily point out the self serving nature of some of his platform comments. Yes, I can talk about how his “open” comments are again a bit disingenuous. But it still was a great speech.

The net was, I can’t believe I didn’t order my Google Glass last year, I will have to do it when they become more generally available.

What did you find interesting?

Where does your App make it’s money

This week has been just as crazy as any other week, but I guess that’s a good thing. Had a great time this week at my first every iOS Meetup (a sister group of TMUG). While the group was small, we had a great time sharing new apps and ideas about using our respective devices. This got me thinking about all the cool apps I’ve been using on my iPhone and iPad, and how over time I keep rotating which apps I use. I’ve tried multiple news readers (Flipboard, Feedly, and others), but always come back to Reeder. I’ve played with multiple Podcast players, but alwayes come back to Downcast. I play so many games, but pretty much always come back to a variant of Angry Birds.

And so, as a developer I wonder how do others make their decisions on whether to create a new app verses upgrading their existing apps. New Apps, tend to mean new revenue, while updates are free on iOS. I recently picked up an Android device, and have yet to buy any apps on it, but I am loading many of the same apps that I use on iOS. I am betting; however, that on Android you will be able to paid upgrades in the long term, without having to release a new app name. The reason I think this will be the case is that we are starting to see parity in the number of apps between platforms. But iOS still makes app developers more money. Developers will not be content to give out free versions of their app and the upgrade path on iOS will not allow your to access your data between versions; making it even more difficult for your users to experience a seamless upgrade.

A recent story on TechCrunch shows that for now iOS is still the dominate platform for developers to make money. While more and more developers are working on multiple versions of their app (across platform), Android will need to do something to help developer make more money on that platform if app parity is to continue. Right now developers are investing in market reach, but unless that reach is profitable, that investment should end.

What version of Android should you support?

During today’s flight to MacWorld/iWorld the Boeing 757 I was on, had to reboot their in flight entertainment system multiple times. These planes have been in service for some time. But the seats look to have been updated within the last 5 or so. I wasn’t surprised to see the Linux penguin during the boot sequence. As a matter of fact, a friend of mine has been leading the development team for one plane which recently rolled out to their customers, and they are using Android for their inflight entertainment system. The part that is surprising is that they are using Android 2.2 for their operating system. It seems that in some of these embedded systems they are not as current as the latest mobile phone.

This all got me thinking, for android apps, do you go for the largest potential customers, knowing that you will be 2-3 years out of date on operating system features? Or do you go for the new and cool features, knowing that you will have the potential for longer life for your app?

Appcelerator’s Quarterly Survey Results show iOS dominant in the Enterprise

For all the talk about how Apple is not enterprise friendly, I was surprised to find the news that more than 50% of enterprise app developers want to target iOS in the quarterly survey that Appcelerator runs.

Survey Results

From Appcelerator’s quarterly survey

This shift from Android to iOS continues to reflect, in my opinion, the challenges of targeting Android’s plethora of form factors, and the continued dominance of the iPad in the enterprise for tablets.  I am not sure that this result will last too long, given the amazing popularity of the Nexus tablet, and the continued lack of a 7 inch iPad option.

The other big potential monkey wrench is Windows 8 and its support of both Desktop and Tablets in one package.  This should make for some interesting times for App developers over the next year.

Cross platform vs. Performance

I’ve been working with a small team to build a cross platform game leveraging the Cocos2D gaming engine on iOS. I chose this platform for a few reasons:
1) There is a really good book explaining the basics of game programming and the libraries.
2) There seems to be a good number of other people using this engine
3) The game I am working on is a turn based strategy game and this engine seems to support that
4) I wanted to create a hex based map and had read that Cocos2d supported this
5) I had heard that it is cross platform capable with Cocos2d-X

Given those four reasons I have started looking around on StackoverFlow for more information on the cross platform nature of the libraries. Previously I had only found a single wiki that talked about cocos2d-x. So I was a bit worried already.

After a bit of reading, I didn’t feel any better or any worse for that matter. The biggest concerns that I have found in my readings are as follows:
1) Cocos2d doesn’t really support hex based maps (so I’ll change my design)
2) Cocos2d-x is really a C++ wrapper which requires that you code in C++ for iOS too (doesn’t seem too painful yet)
3) Like all cross platform development this is going to be hard (and will probably take a performance hit!)

Given those three findings, I am trying to decide, is it worth starting from scratch with a cross platform game and design? Will I learn enough, so even if the game is a bomb, the overhead will be worth it?

What do you think? Do you code for multiple environments upfront, or port your app once you have a success?

Android ice cream sandwich

Yesterday, as I went thru my rss feeds, I saw the list of devices getting the update for ice cream sandwich – here.

This notice got me thinking, how much will ice cream sandwich impact game development on android. I do not have an android device, but the adoption of android is taking off. Enterprises which are being invaded by hordes of iOS wielding uses, are looking for ways to stave off this invasion. I believe they will turn more and more to android. Many businesses already have people comfortable developing for Linux. Many corporate web apps are written in JavaScript. The transition to android for enterprise apps is a natural transition.

The big question will be, will their users support it? If you are allowed, no encouraged to supply the company with usage of your mobile device, how much influence will you have on the platform your company supports?

Data Persistence Across Platforms

We are currently looking at Android for a version of WastedTime…Today when you purchase the iPhone app, you get a fully functioning iPad app two, not some cheap pixel doubling app.  Given this, you may find yourself, like I do, having to chose between the iPhone and the iPad version for all your meetings during a week.  This is because the current version of WastedTime stores it’s persistent data in the iOS’s NSUserDefaults.  Meaning that it is not shared across devices.  

Do you think that it would make more sense to have a data store in the cloud which would automatically sync up when you start the app?  We do want to add a mashup of wasted time around the globe, but did not want to store any specific data.  If we have data persistence across devices, you could show total global wasted time within the app itself.  What do you think of this idea?