Apple decided to take out the restrictions introduced in the iOS Developer Program earlier this year making Monotouch a "SAFE" environment to develop apps for iOS. Novell is celebrating this decision by offering a 15% discount on Monotouch for the next two weeks. If you are interested just use the discount code "MONO-331" on http://monotouch.net/Store
Friday, September 10, 2010
Friday, September 3, 2010
I hate marketing people
This post was not planned, but I have to write about it. The only reason I am not buying the iPhone 4 is the price. Today, watching the Apple presentation from 1st of September, got another confirmation. The new iPod Touch 32GB, that even Steve Jobs calls an iPhone without the phone and seems to have the exact same hardware of the iPhone, costs (in Italy) 309 Euros. The iPhone4 on the other hand 32GB costs 779 Euro, so 479 Euro for the Skyworks SKY77541/42 GSM module. That's why I hate marketing people: they decide. If they say the product will sell for that much that will be the price, but if you pass on the excitement of having a "cool" gadget you realize it doesn't worth the money. So I guess I will buy an iPod Touch for development and debugging.
P.S. Microsoft should be careful and react fast cause they are completely loosing a market on which they had some shares (that would be the PDA without a phone). The devices are still widely used (especially for restaurants) and will be used for gaming, apps. The iPod Touch is not only music anymore. Again Microsoft will have to choose a name for the OS because Windows Phone 7 without a phone it would be Windows 7 :) which is not the best choice. They've changed so many time the name of the mobile OS so one more won't count. Anyway a Windows Phone 7 without a phone makes a lot of sense to me
NAMASTE
C# for Mobile Development
A long time without blogging but I have some ideas for my next two posts (will be on Windows Mobile). Today I wanted to talk about developing on mobile platforms. Two weeks ago I joined the Monodroid preview version. So in this moment a C# developer is able to develop on all 3 major mobile platforms (Microsoft, Apple and Google).
My personal opinion on each of the development platforms:
I will start with Android and Monodroid which is the newest arrived. The integration with Visual Studio 2010 is fabulous (they plan to integrate with MonoDevelop also). I was impressed of the "activity" on the Monodroid list since launching of the preview (I have almost 500 messages in 2 weeks and it's not a preview opened to everybody) and even if it's a really early version and most of the things don't work (I've tried to use threading and sqlite library to do some comparative tests but nothing worked) there are already good ideas and a lot of interest to develop on this platform. One of the most "nasty" aspects of Android is developing the UI but Daniel Cazzulino from Clarius Consulting proposed to realize a "fake" WPF UI control just to leverage the designer, and then have a custom serialization that would transform the XAML to the android markup (this way it would be possible to use Blend too). Another aspect about Monodroid that doesn't convince me is the fact that almost everything is a "proxy" to the correspondent Java object so when you run your program every object creates another object in Java and of course this influences on memory requirements and performance. I wanted to test the Sqlite library because is not a Java wrapper and I could have a speed comparison between the Java program and the same Monodroid program (when Sqlite will work I will post the results). Then there is the runtime which has to be installed on the device. So for now I would not pay for Monodroid just to be able to write code in C# which is linked to Java (of course personal opinion and a lot of things can change when they release the first version of Monodroid) .
Then there is iOS and Monotouch. This a "mature" platform arrived at version 3.0. I love the fact that in the end the code is compiled to native code so you won't loose performance. The developer designs the interface with Apple tools and then link them to C#. You have access to feautures missing in WP 7 v1 like sockets, database and the newest one that will come to iOS 4.2 is PRINTING (if you read my blog you probably know that I am pretty "obsessed" with database and printing). Let's hope Microsoft will take Apple example and implement missing features really fast (I am referring at games for mobile where Microsoft is ahead of everyone but Apple just announced on the 1st of September the Game center and my feeling is that Google is preparing something similar for Android 3.0 for the end of the year). I think Monotouch worth every penny the only doubt remains if Apple will ever "block" the apps developed in Monotouch (they don't have any reason, but I've seen some prepotent behavior from Apple lately). You will need a MAC for developing.
The last but not least is WP7. It's is the most integrated development platform. It has everything a developer needs for development (I am not referring to the missing features of WP7) and it's FREE. I am waiting for the first devices to hit the market and "play" some more (I would have loved to have a "test" device and blog about the experience with the phone from usability to development).
In the following weeks I will also test and blog about the new controls from Resco for WP7 and Monotouch.
NAMASTE
Friday, August 13, 2010
Smartphone Market
I saw today the Gartner chart with the smartphone market shares for the Q2 2010. What really impressed me was the "jump" Android did:

What it is interesting is that the iOS won 1% which I think it's the 1% RIM lost but everyone else lost market shares in favor of Google. Looks like it doesn't matter if you have the best OS on the market today(iOs) , but it's better to be "open" - good adoption from the hardware makers, a lot of developers/fans porting/improving/updating Android OS on hardware already on the market (almost every WM owner hopes for an Android port for their devices), wide range of prices for the hardware and developers that have almost everything that they need (multitasking, access to all the resources of the device, error reporting of the applications).
In fact I still don't understand why Microsoft "blocked" the multitasking in favor of battery life. Let full multitasking and then implement a mechanism inside the OS which warns/reports to the user how much an application "eats" in terms of processor/battery. The user can than decide if he sacrifices or not battery life for a certain application. It's always better to warn and let the owner decide than to decide for them. A lot of developers at WP7 Lab in Milano did not agreed with the new tombstoning mechanism but developers obey the rules which might not the case for the owners.
I expected/wanted so bad WP 7 to be perfect, complete from the beginning to have every functionality that it had but with the new UI/programming model instead now it has what it was missing before and misses what it already had. There is still much to be done to get back Microsoft back do to where it was two years ago in the smartphone market.

What it is interesting is that the iOS won 1% which I think it's the 1% RIM lost but everyone else lost market shares in favor of Google. Looks like it doesn't matter if you have the best OS on the market today(iOs) , but it's better to be "open" - good adoption from the hardware makers, a lot of developers/fans porting/improving/updating Android OS on hardware already on the market (almost every WM owner hopes for an Android port for their devices), wide range of prices for the hardware and developers that have almost everything that they need (multitasking, access to all the resources of the device, error reporting of the applications).
In fact I still don't understand why Microsoft "blocked" the multitasking in favor of battery life. Let full multitasking and then implement a mechanism inside the OS which warns/reports to the user how much an application "eats" in terms of processor/battery. The user can than decide if he sacrifices or not battery life for a certain application. It's always better to warn and let the owner decide than to decide for them. A lot of developers at WP7 Lab in Milano did not agreed with the new tombstoning mechanism but developers obey the rules which might not the case for the owners.
I expected/wanted so bad WP 7 to be perfect, complete from the beginning to have every functionality that it had but with the new UI/programming model instead now it has what it was missing before and misses what it already had. There is still much to be done to get back Microsoft back do to where it was two years ago in the smartphone market.
NAMASTE!
Saturday, August 7, 2010
WP7 Device Tests
No I didn't got lucky to have a dev device of my own. Last Wednesday I attended the WP7 Lab event in Milano and everyone wanted a dev device. We even tried to bribe Lorenzo to "forget" some devices in the bar, but as there was only 3 devices available and he had the same event the next day in Rome we didn't got lucky. Anyway I've spent some quality time meeting new people and testing the Samsung and LG dev. phones.
The first project that I've tested was the SqliteClient. Could be my impression, but there is a big difference between how an application looks&feels on the device and on the emulator (it looks a lot better on the device). On the speed part I did some tests on insert (the select/delete work almost identically) and here are some results:
Inserting 2200 Rows with transaction:
Emulator: 0.622 sec
L.G.: 3.35 sec
SAMSUNG: 3.244 sec
Inserting 600 Rows without transaction
Emulator: 7.067 sec
L.G.: 29.054 sec
SAMSUNG: 21.676 sec
On the beta release the device it's 4-5 times slower than the emulator. The Samsung it's faster as it has the storage on a microSd compared to the LG that has it on internal flash.
The other project that I've tested was the barcode reader. On both devices the test samples worked the same as on the emulator. When it comes to the integrated camera this is where the things get a little complicated. The camera app is one of those apps that the hardware manufacture will customize. None of the drivers had a macro function. The Samsung device had no settings to set, and the focus was pretty bad. The LG had the settings menu implemented and a better focus. Without the macro function it was hard to take a "clean" picture of a barcode but when the image was good the library works really fast and precise. I expect a lot on the camera part from HTC. I have to wait October and see.
One thing that got me thinking is when I've asked if Nokia is preparing a WP7 device they didn't say yes, but didn't say no also. It would be a nice achievement for both companies because Nokia does great hardware, but I've never liked Symbian and looking at the market shares they could take WP7 into consideration.
Namaste
Sunday, August 1, 2010
WP7 ZXing Barcode
First of all I want to express my regret that I am not one of the 3.000 developers that received a WP 7 developer device (I read somewhere that there are more than 3.000 users that use Facebook from WP7). I really hoped to have a "real" device, but that's the way the cookie crumbles...
This weekend I had two days of WP 7 fun. What I've wanted to see was the use of ZXing in WP 7. There is already a C# port of the library in the ZXing trunk. Porting it to Silverlight it is quite simple (just have to replace ArrayList with generics lists and HashTable with Dictionary) more details here. So I've downloaded the latest csharp source code from ZXing trunk and compiled the library. This was the simple part because I wanted a "nice" test project. I've used the test images from the ZXing source zip as embedded resources and the gesture recognizer from Clarity Consulting this way the user is able to flick both direction between the test images. It was a project based learning because I've used MVVM and the application was following the pattern till I've ruined it with the CameraCaptureTask and PhotoChooserTask (I was not able to get them in the View Model because I don't receive the notification after I choose/capture a photo but if anyone of you can do it please enlighten me how it's done )
I cannot test CameraCaptureTask and PhotoChooserTask but maybe some of you, lucky enough to have a test device, can test it and let me know how/if it works (even in the beta dev tools the camera is poorly integrated with the apps - you will have to run again the app after selecting camera or photo and you should be able to see the selected photo in the central image of my app this way you can press the Decode button).
This is how the test project looks (don't forget to flick the image)

Here is the source code
Have a look also at this new post
NAMASTE
Friday, July 23, 2010
WP7 SqliteClient with transaction support
I've updated the preview and implemented the transaction-commit-rollback mechanism.
For 1050 rows the results are:
Without transaction: 13.088 sec
Using transaction: 0.474 sec
For more rows you will get even better results.
The link to the project is the one from the previous post
Enjoy the update
NAMASTE
Subscribe to:
Posts (Atom)