Saturday, September 29, 2012

Thoughts: HTC's Windows 8 phones

HTC announced them some time ago now, but as you know, I've been on vacation, so now I'm finally able to write about those new devices. The devices I'm talking about are HTC's Windows Phone 8 devices called 8X and 8S.

Starting with the design: they look great. We're already used to beautiful devices by HTC – even though most of the time not everything is perfect. This time is looks like they found the perfect right way – camera is flush (not like the HTC One X/S/V's ugly cameras) and the form factor is as always great.
The colors they are using are nice too, even though they remind me of Nokia's Windows Phone devices and not of any HTC devices – looks like they tried something new with WP ;)

It looks like with the HTC WP 8X, the iPhone's Retina-display is not the greatest any more – there are some other reports of better screens, but I have to admit I can't remember one of those (refresh my mind if you know something!).

I think we don't have to talk about the specifications because as usual, they are out there all over the net and most recent devices have similar specifications. Let's just hope the battery life will be better than what they did with their other HTC devices. Unfortunately most of the time they are not that great.
The HTC WP 8X comes with NFC, which is great, the WP 8S unfortunately not :(

Let's compare the devices to the devices Nokia announced: not much to compare here. They are pretty similar – as I already mentioned, they also come in multiple colors. Compared to the Windows Phone 8 devices, Samsung announced last month, there is also not much to compare, because they are also quite similar. This time there are no colors available, so for people who like color will definitely go with a Nokia or HTC device – those who like something robust out of metal, will choose Samsung's device ;)

Finally, both both devices look nice, the specification is also not bad and prices for the HTC devices are also quite reasonable – definitely something for Windows Phone (8) fans.

Labels: , ,

Thursday, September 13, 2012

Thoughts: the (new) iPhone (5)

Today, the (new) iPhone (5) was revealed by Apple. I think there's not a lot to talk about, because the only thing most people have to think is the same I think: disappointing.
No NFC is the biggest no-go for me. Apple used to be great but to be honest, since Steve Job left, it's going down – the new iPhone is just embarrassing. There are no big new features – the only things are a better battery (or some software update that improves the battery life), LTE (which I don't need because it's not yet available where I need it), a new proprietary connector (which is stupid, because why not just use micro USB) and a bigger screen. Only because Apple calls something amazing/awesome/magical, it doesn't have to be that – and unfortunately now it isn't any more.

The new iPods nano is nice and I could imagine buying a new one, except I don't need a mp3 player because I have my smartphone. We're already used to Apple changing the design of the iPod nano a lot of times so it's no surprise there's a new one; and it looks just like a Nokia Lumia – maybe Nokia should sue them over a design patent ;)
I won't talk about the iPod touch because for me it's just an iPhone without the radio. The new EarPods (because they are not earphones any more ;) are ugly, just ugly. They really look like pods – maybe a rescue pod from Star Wars or similar.

The next generation iTunes will be interesting because it has a new interface. I can't imagine yet that it's better because I really like the textual representation, so for now, I will wait for the update and maybe tell you later what I think.
And yes, it looks like I only criticize, but apparently some new technology released lately is not as awesome as the companies claim they are.

PS. Is it the "iPhone 5" because the "new iPhone" would have been predictable? ;)

Labels: , , , , , , , , , ,

Wednesday, September 12, 2012

Thoughts: Amazon's new Kindle

It's a little bit late but I didn't have enough time to blog over the last couple of days because as you probably know I'm on vacation in Canada ;)
Here's just a quick thought on the new Kindle ebook reader Amazon announced some days ago. I thing they are really nice, as all the previous versions have been. The new tablet, Kindle Fire HD, as well as the updated Kindle Fire are also nice and I guess are a quite good alternative to Google's Asus Nexus 7. I think again, that I don't have to tell you more about the device specifications because you should be able to find enough information on the internet ;)

The Amazon devices are really good integrated into the whole Amazon ecosystem, which is really nice, but Google's Android services (if available in your country) are also really good integrated. This does not make a big difference because both companies don't offer their services to all countries.
Really great is of course Amazon's Whispersync, but again, nothing unique, but still, works great. I also miss the NFC sensor, because as you know I'm really into NFC ;)
What I don't like about the new Kindle devices is, that they won't be available in Austria – at least not from the start. And of course: Amazon's version of Android is nothing I ever had the possibility to test, but as a developer I think it's too proprietary/closed.

This article also reminds me to tell you that I really like the new amazon.at design – finally the awesome design US customers enjoyed for some time now!

PS. Don't worry, I'll continue the NFC and cross-platform development series soon – but definitely not before I'm back from my vacation ;)

Labels: , , , , , ,

Thursday, September 6, 2012

Thoughts: Nokia Lumia 820 and 920

Yesterday was a big day for Nokia: they announced their new Windows Phone 8 flagships, the Lumia 820 and 920. From what I have seen so far the devices look quite nice and robust, just as we are used to from Nokia produkt – they really know how to develop great hardware. I'm not impressed by the features itself, the camera is pretty standard (besides the PureView stuff which we don't really know about because Nokia faked the advertisement ;).

Otherwise there's not much to say. We don't know a lot about the Software, Windows Phone 8, because even though Windows showcased it and told us the new features, there's no SDK yet (and apparently it will be delayed). So I can just say that the devices look great and the software could or could not be nice ;)
Let's wait for the release dates of all the WP8 phones and see – Samsung also announced some great Window Phone 8 device, even though I miss the beautiful and bright colors, the Lumia devices come with! And Nokia's advantage is Microsoft support for them, which seems almost unfair to other WP8 adopters.

Labels: , , ,

Wednesday, September 5, 2012

Thoughts: Patents in the US

Last year I was planing on writing something about the US patent system – I guess mainly because of all those nonsense trials that started during that time. After one of the biggest trials (Apple vs. Samsung of course) recently ended, I decided to finally write about it.
I'm no expert on patents and especially no expert on the US legal or patent system but I think as a consumer and developer I have my share of thoughts on the things that are currently happening.

Let me start by saying that I don't think that patents are something evil or that there shouldn't be any patents at all. That's not at all what I mean. It's really important to have some system to protect ones ideas and especially if those ideas is some (non trivial) technology never seen before and it took the patent holder/applicant months or even better years to develop it – and of course spend a lot of money (a lot of money compared to the money available to that person).
Okey, that's what the patent system is here for and what I see in Europe, that works quite well (except some courts in Germany) – even though it's not that easy to get a patent if your not a big company with lots of money.

But apparently the whole system doesn't work in the United States (of America). Just look at the trial between Apple and Samsung I mentioned in the beginning: Samsung apparently violates three patents (D618667D593087 and D604305), two of them concerning the rounded shape of edges and backs of the device and the third one concerning the way icons are arranged in a grid. Why are those things even patents?
I think especially the third patent is nonsense. As long as I can remember, Nokia Symbian (Series 60) phones arranged their icons in a grid (or alternatively as a list). And it's also quite trivial, because how else should I arrange something? The only thing natural is the list or a grid (or something unnatural which I have never seen yet).
And what about the design patents? Same trivial thing. Phones have always had rounded edges and some devices even had rounded backs – and even if they had not, it's just a natural way for humans to design things: rectangular but still with rounded edges or whatever. And the worst thing is: those ideas didn't take people long to invent, so it's nothing incredible (maybe for Apple; but for them there is magic all around their products) or expensive.

I think everyone should see how unnecessary those patent claims are (not only by Apple, others too, but Apple has been in the media recently). Companies should invent great new stuff and apply for patents for those things, not for trivial things, babies could and definitely invent.
Maybe it's also the US patent system that's wrong. As far as I read, they accept all patents without even checking if it's already prior art or not – that's different in Europe, which could make a difference (when it comes to unnecessary claims and trials).

Let's come to an end. You know my thoughts now and I hope you agree with me, that there's something wrong with the whole patent system (also because Apple lost with the same claims in other countries) and the only winner is the patent holder. Everyone else is a loser – including the consumer who can't buy the smartphone (or any other technical device) they like because it's banned due to trivial patent claims or because cheap devices don't exist any more because the manufacturers have to pay for licenses for (again trivial) patents.
Many important people in the business already want an overhauled (US) patent system and I think you should too! ;)

Labels: , , , ,

Tuesday, September 4, 2012

Mobile cross-platform: Appcelerator Titanium Mobile

As a mobile developer (and also because it's the topic for my master thesis) I'm really interested in developing an app once for all or at least more than one platform. A big problem with developing cross-platform apps is the different APIs the mobile platforms have, especially when it comes to user interface components.
There are some possibilities to solve this problem:
  • develop using HTML and style your components depending on which platform the app runs (e.g. using PhoneGap as a native app wrapper),
  • develop using a framework that creates an abstraction above the native APIs and dynamically (during compile- or runtime) creates user interface components,
  • and definitely some other techniques I'm not going to introduce right now.
In this blog post I'd like to focus on the second solution: using an abstraction layer above the native APIs, or even more specific: the Titanium mobile SDK by appcelerator. Their approach is to let you develop using JavaScript and during runtime, create a native interface by mapping API calls to Titanium's API to native API calls.
I really like this approach, even though the way Titanium works is a little bit too complicated, compared to real native development. Maybe it's just the quick look at the tutorials when starting to develop that makes the architecture of an app fell kind of weird.

What's really nice about Titanium mobile is, that there are not only user interface classes that are similar in both Android and iOS (when I started developing, their IDE called Titanium Studio only allowed me to select those two). If there are Android or iOS specific user interface components, it's possible to just use a condition that checks for the platform and you can use those components.
Also, their SDK does not only offer  user interface components, but also allows you to develop Android services, for example. And what is also really nice is that the local database, SQLite, that is available on Android and iOS uses the same interface!

One thing I really dislike is that the Android style is still Android 2.x and not the modern Android 4 style but as far as I read, the next release of the SDK (which should be Titanium mobile 2.2?!) does support the ActionBar, which is the thing I really miss ;)
There is an ActionBar module for Titanium, but it only supports tabs and is not a real native component (even though I already extended it to support a title as well as a menu).

Last but not least a small "Hello, World!"-code snipped with Titanium mobile:

var win = Ti.UI.createWindow({ title: 'My Awesome App' });
var view = Ti.UI.createView({ layout: 'horizontal' });
win.add(view); var lbl = Ti.UI.createLabel({ text: 'Hello, World!' });
view.add(lbl); var btn = Ti.UI.createLabel({ text: 'Click me!', left: 5 });
btn.addEventListener('click', function(e) {
  lbl.setText('Hello, User!');

});
view.add(btn);


This example opens a window, adds a view with an automatic vertical layout and adds a label as well as a button to that view. Clicking the button will change the label's text. As you can see, this is really only JavaScript, even the event is registered using addEventListener.
I won't post a screenshot because I think you can imagine how this will look on Android and iOS (don't forget, it's really native!).
If you want to start developing using Titanium mobile or just explore it some more, they have a quite good documentation.

Next time when I revisit the cross-platform topic I will tell you more about PhoneGap, which I worked extensively with during my internship this summer.

Labels: , , , , , , , ,

Monday, September 3, 2012

Tip: Theme friendly UI for WP7

For some upcoming changes to the Geocaching Helper for WP7 I encountered a situation where images wouldn't be displayed correctly when the user changes the theme of their WP7 device. Depending on the theme, the background of your app will also change to white or black (if you didn't customize the whole app theme).
Now one solution would be to create white icons for the black theme and black ones for the black theme, but that's not a solution I wanted to accept. It's just too much work, maintaining two versions of icons.
So I researched the topic a little more and found this really helpful blog post. I'll try to explain the core idea of the approach and if you want to know more, just follow the link ;)

Every UIElement has a property named OpacityMask. This OpacityMask maps it's content to the element or visual you're using it on. It will ignore the actual color of the content and just uses the content's opacity and apply it to the element/visual.

Here's an example in XAML to visualize it. When applying the OpacityMask to the Rectangle element, only the used image of the ImageBrush will be visible inside the Rectangle.

<Rectangle Fill="#FFFFFF" Height="116" Stroke="Black"  Width="115">    <Rectangle.OpacityMask>
        <ImageBrush Stretch="Fill" ImageSource="icons/appbar.delete.rest.png"/>
    </Rectangle.OpacityMask>
</Rectangle>


The images below show a real example of how I use this .NET feature for the Geocaching Helper (and hints a new feature for the app ;). I only created the dashboard images once and the OpacityMask does the rest.

Labels: , , , ,

Thoughts: FirefoxOS

I recently tested FirefoxOS (previously known as Boot2Gecko), the new mobile operating system, Mozilla is working on. Similar to webOS it is only based on web technologies and as with webOS, I have mixed feelings about it. On the one hand, the web is really great and easy enough to develop for, especially the next generations of HTML, CSS and JavaScript (we could maybe call it HTML5). On the other hand, if you compare JavaScript and "native" programming languages (e.g. Java on Android, Objective-C on iOS or C++ on BlackBerry 10), JavaScript is extremely slow – especially when you have a look at animations.
Each time I start a WebWorks app on my BlackBerry PlayBook I could start crying when something is animated (most of the time, screen transitions). And also if you have a look at webOS, most of the time you know it's only a browser because many apps just take too long to finally start up.

Let's hope Mozilla is doing it better and the whole OS will be more stable and faster than other HTML-OS-experiments. Either that or using really good hardware should help – but as they want to debut in South America, I can't imagine that the devices can or should be too expensive.

I already tested one of the first nightlies some weeks ago and again today and it didn't even run that smooth in an optimized browser window. I know it's still in alpha (or even earlier stage), but there's still a lot work to do. When the first devices are going to be released (and maybe some developer devices given away ;), I'm definitely going to have a closer look and maybe some of my apps are going to be ported!

Labels: , , , , , , , , ,

Sunday, September 2, 2012

Open webOS: First beta is here

Today, HP announced on their Open webOS blog, that the first beta version of Open webOS is ready. Eight months ago HP announced that webOS is going to be Open Source to offer an alternative to Android and iOS (and Windows Phone I guess). Releasing this first beta version shows, that they were and are serious and I'm looking forward to what's coming next – there are rumors that new webOS devices will be released :).

As you probably know, I'm the proud owner of one of the last HP TouchPads running the original webOS 3.0. I really like the device, although the hardware was never up2date. I also really liked webOS, because it had all most of the features you need and developing using the Enyo framework was really nice (even though it's JavaScript).

Even though HP won't release a working version for the TouchPad, I can't wait for the first adaption because I'm sure that the community won't hesitate and port Open webOS on their own. Maybe this Open webOS will work better on the TouchPad than the original webOS and Android.
For those who don't know: I'm currently running Android via CyanogenMod on my TouchPad and even though Android (based on ICS) itself is great, the battery suffers and some features are still missing (e.g. camera).

Labels: , , , , , , ,

NFC: It powers (smart)phones

Two days ago I wrote the first about NFC and how to find tags to experiment with. Today it's time to find out more about phones – not just about any phone, but about phones (and especially smartphones) which are NFC enabled. Of course there are other devices like USB enabled readers but it wouldn't make much sense for a Mobile Computing Master student (and mobile device loving developer ;) to write about those, if there are (smart)phones that support NFC.
It won't be possible for me to list all phones that support NFC, but I'm going to go through a short list of interesting operating systems that support NFC – of course only if devices running that OS exist. If you only want a list with all the NFC enabled phones, you can just skip to this link – it's updated regularly and should help you decide which device to get.

Let's start with the company that first introduced NFC phones: Nokia with the Nokia 6131 (running Nokia Series 40). This OS is irrelevant now but I think it's worth mentioning. Back in the days (only about 6 years ago), you had to use the Contactless Communication API (JSR-257) with JavaME. If you're still interested, the SDK download for the Nokia 6131 is still available.
Nokia continued adding NFC to their phones so if you're a fan of discontinued operating systems, you can develop for the Nokia Symbian^3 or MeeGo. It's great that they added NFC technology but unfortunately the whole Nokia ecosystem (except of course the Microsoft influenced Lumias) is kind of outdated.

On to the next OS: RIM's BlackBerry 7. Even though the OS and the devices running BB7 are not that old (released only last year), they are already outdated, now that RIM has announced BlackBerry 10. But still, you can develop NFC enabled BB7 apps with the BlackBerry Java SDK 7.
And if you don't want to develop for a soon discontinued operating system, you can also use the new BlackBerry 10 SDK which fortunately also supports NFC. I'm really happy about this because I think, BB10 has potential and with NFC on board it's even better ;)

What about Windows Phone 7 and 8? There is a version of the Nokia Lumia 610 which supports NFC but the Open NFC libraries for Windows Phone are not publicly available (and why develop for Windows Phone 7 when 8 is coming soon). And for Windows Phone 8 we only know that it will support NFC but the SDK hasn't been released yet.

Another interesting OS would be iOS but due to all the NDA stuff and Apple trying to keep everything secret, we (or at least I) know nothing.

Let's come to the last (interesting) operating system that supports NFC: Android. It's not discontinued and apparently has the highest market share and there are a lot of devices out there that include a NFC chip and more will come. NFC is supported since Android 2.3 and if you want to start developing, just head over to the developer site or wait for my next blog posts.

That was it with the mobile operating systems I think could be interesting to develop for (including some features based on NFC). Next time it will be more technical: I will finally start adding some small examples how to actually develop NFC enabled apps. I hope this articled didn't strike you as "everything but Android (and maybe BB10) is bad"-post but you can see for your self: Android is currently the only widely used OS that supports NFC – the first BB10 devices are still half a year away, WP8 will not be released for another two months (according to some rumors) and nobody really knows what the next iPhone will bring.
This is why for now(!), I will only include Android and BB10 in the upcoming NFC experiments ;)

So stay tuned and until next time.

Labels: , , , , ,