21 November 2012

Got my windows phone 8 dev fees refund

I received yesterday the 91% refund of my windows phone 8 dev fees.
While I was afraid to receive it in 2013, Microsoft was not so slow on this one.
I still don't understand why I didn't pay 8$ only, without the need for a refund. Perhaps to select who can register..?
Or to avoid to handle different price for different people ?

Anyway, it's now time to make my vmware image of Windows 8.
I hope VS and the emulator will support it.

16 November 2012

SmartTV, NetTV and others...

On a previous post, I talked about Global User eXperience (GUX) on phone, tablet, pc ....and TV.
In fact, I have almost no experience on TV so I thought it was the time for some research.

We all heard about GoogleTV and AppleTV but in fact, companies like Samsung, LG and others already made some unique connected TV back in 2009.

According Wikipedia, connected TV is now commonly called smart TV (like for smart phone?).
What I also learnt is that a smart TV could be smart by 2 ways : internal or external.
Internal means a TV with wifi/LAN and UI (Samsung TV, LG TV...)
External means a box of any kind with HDMI and Wifi/LAN (GoogleTV, AppleTV, Samsung BluRay player, LG BluRay player,...)

I first thought external box was crap. We almost all have a DSL/cable box which already do what a smartTV box could do.

I then looked for what is important for us : how develop (and monetize this development) for smartTV ? And this is where the nightmare began.

There is almost no standard.
Philips (NetTV), LG, Sharp and some others works together to try to define a standard but they only found Html5 !
Apart the way I dislike (hate ?) webapps, I was unable to find informations of what is really supported (which video tag for example, the more important tag for a TV no ?).
Samsung gives a little more information : 2011 Tv support css2, 2012 support css3.
Great ... But js engine isn't the same on all tv and...what are the exact devices of 2011 and ones of 2012 ?!
In phones, we had the same problem and the only way to solve it was (and still is) throught user-agent.
What about smartTV ?!

In 2010, 2011 and 2012, Adobe made a lot of fuzz in MAX about their works with Samsung and LG.
Today, some TV supports Flash in browser, Flash (lite) standalone SWF and/or AIR for TV. Which ones ? Which versions ? It's almost impossible to get the informations.
Samsung and LG talk about Flash and AIR on their dev doc but it's almost impossible to know the exact support (version, api, ...) of a specific device.
A side note about AIR, if you ever find informations about native extension, on device side, so from manufacters...send me mail ! While there is full part on the LiveDocs and a doc full of details about native extension development for TV (for linux), nothing on Samsung nor LG side, while they are premium partners.

Then comes the OS. This time, they all agreed to use Linux 2.6....but which distro, which drivers, which options ?
Don't dream, you won't be able to make TVLinux.
What about the UI ? Proprietary.
Some use Android, but 3.x only and it is so bad on TV than LG is moving to webOS (yes, the dead OS of HP)

The only positive point is the eco system : stores are ready and packagind/delivery process are in place. Everything is ready to make money.

So, is it a good thing to develop for smartTV ?
Well, in fact, I should had started by the beginning : what are the customers ? Are they ready to view in-app ads or pay for a TV app ?
Everywhere on the net, smartTV is seen as... crap !
Buggy UI, UX from middle age, too expensive... Consumers prefers their laptop or PS3 to (not so) smart TV.

After all I read, while I was about to buy a Samsung smartTV and a LG bluray player, I'm now looking to device like the mk42.

So, to summarize :
No standard
No useable system info
No more service than a cheaper device you already had (dsl box, ps3, laptop...)
Good dedicated store
No consumers

You should urgently...wait !
...or take the bus for an undefined destination : success or fail

14 November 2012

Can't set javadoc of Android Dependencies libraries

If you add a jar in libs folder, it's automatically add in the Android Dependencies.
Great no ? nothing else to do !

 Ok, now try to add javadoc and source attachment like usual...
Project Properties > Java Build Path > Libraries then Android Dependencies > mylib.jar ....
errr... wait a minute...non modifiable
WTF ?!
you can't set doc and source of an auto linked library.

After some googling/stackoverflowing I finally found the answer

To summarize, you should add a mylib.jar.properties file
In this file write 2 lines :
src=<path to mylib-sources.jar>
doc=<path to mylib-javadoc.jar>

Hint : don't forget to close / reopen the project to update Android Dependencies

For Temporary Mail, my libs folder is now

and so Android Dependencies is now filled

It's still non modifiable but I don't care : I have my source and doc while debugging !

Another hour lost trying to do something basic.

09 November 2012

Finally, Windows Phone 8 is perhaps a good thing

Friday, I was at the Windows 8 dev camp in Microsoft's French office.
I went because I was looking for an answer to this question : why does Microsoft made something like Windows 8 ?

I think I came back with an answer : they're trying to mix PC, tablet and mobile.
When I say to mix I mean to keep the same UX on both.

I like this idea.

I also like the fact they're working with manufacturers so they move this idea to hardware : you can now buy TRUE tablets, not only gadget like the ipad.

So what ? Tablet PC isn't a new thing.
Yes, of course. But this time, it's tablet with the power of a pc, not a pc with a touch screen, a device with OS made for touch screen (and keyboard/mouse) not touch adapted to OS.

We talk here of what could be called Global User eXperience.

Apple made a (really good) work to give user a great experience on macbook, they also made the same kind of great work on ux with iThing but they didn't think global : MacOSX is not iOS and iOS isn't MacOSX.

For Google, they missed to make GoogleOS another global success. It's a shame because they won't be able to fight with the same weapons.

So I think Microsoft have now the capabilities to fight hard with Android.
Apple will soon fall because hype won't be enought on the coming years.

Don't take it wrong, I'm not saying Microsoft will be the next winner.
I said that, at this point, we have 2 competitors.
The winner isn't known yet and challengers could (re)appear to trouble the game.

Google fights with an messy OS available on a lot of devices including tablet, phone, notebook and TV but not PC in work office.
Microsoft fights with a OS for dummy, hiding a true OS you can switch to when needed, available on tablet, phone, notebook and PC but not TV.
So who is the leader ?
Google could clean their os to be as simple as iOS while Microsoft could move to TV (with the help of the next xbox ? Xbox and TV on a same device ?).

I see here a war between home (android) and office (windows).
It's a challenge because "basic" home consumers changed the world some times ago buying a mass of iOS devices, and killing RIM and Symbian.

I can't wait to see who will move first !
A very interesting year is coming and, yes, you have to count now with Windows Phone 8.

06 November 2012

Framework linkage configuration for ANE library

When you create a Flex library project, the default configuration is to mark framework linkage as external.
This make sense if you add the library project on another project, since this project will include the framework classes the library will use.

Three reasons to mark framework linkage as merged into code are
1/ framework-independant SWC, to avoid future changes in framework which could break code
2/ code loaded as module
3/ AIR Native Extension

On previous versions of Flash Builder, you had to link on ANE's SWC and to make the magic works, you had to use external link type.
So, I assume it's still doing the same behind the scene on Flash Builder 4.6+
If it uses external linking, the SWC will work as a standalone library so you need to include any (sub)classes used ...hence the framework classes used must be included.

04 November 2012

Understand Flex Build Packaging : Native Entensions message

After a bad experience with WP8, I came back to my current experiment : Native Extension.
I won't explain you what is an AIR Native Extension, look at the dedidacted page from Adobe but more how to read the message on the Native Extension property page.

I almost lost 2 hours because I didn't understand why the default and not the native extension was used so let me share with you how I fixed it and what I discovered at the same time.

When you want to include an ANE on your mobile/desktop AIR project, you first had to include it on Flex Build Path / Native extensions

Doing this, Flex checks the targets (at least 2 : default and 1 native) and  the AIR version needed.
If it's ok, it adds the extension ID on the app.xml even if, from what I read on the net but didn't check by myself) it seems it sometimes failed to do it...

On my current ANE, I only did default and android native at the moment.
So, Android Native will be used for Android deployment and Android on device debug while the default will be used for android simulator debug, desktop and any other devices deployment.

Well...it's what I thought (and read)...but in fact, there is another step to check.
I don't know if it's because I updated a lot my ANE or it wasn't done by default but, in fact, doing thing tell Flex to use the default (actionscript) extension anywhere.
So ALWAYS open the Flex Build Packaging property of your project and check the Native Extensions page.
By default, I discover the Package checkbox wasn't checked (again, I don't why and when it was unchecked but not by me !)

I so checked the Package checkbox and it finally used my native code, not my actionscript code.

I then wanted to check the iOS, using only actionscript code.
According asdoc, default is used for any platform without native code.
I checked the Package checkbox on the iOS part and got an strange red cross icon

I compared with Android part

If you read carefully, you'll see this on the iOS part
This ANE does not support iOS platform in red with a red cross icon (which usually means ERROR)
but, 4 lines after, you could also read
Apple iOS Supported : Yes

Errr...Supported or not ?!! Probably not since I have one big red cross icon !
In fact, you should read the first line as
This ANE does not support iOS platform NATIVELY
and the 4th line is correct.

In this case, the ANE doesn't include iOS native code but, since there is a valid default platform, iOS is supported.
Adobe added an Microsoft error (you know, error which is not an error)

So, always check if the Package checkbox is selected and don't take care of the icon.

First day with Windows Phone 8

This week, Microsoft made Windows Phone 8 public.
After a private WP8 SDK which was badly received in september, the official public SDK is now available.

I so thought it was the good time to start exploring Windows Phone dev world.
I tried some weeks ago, to be ready for public release but it was almost impossible to find info on WP8.
So, to be true, my first attempt gave me a bad feeling : Microsoft is now ruled by market people, no tech people....else how do you explain they retain information "to generate as much Windows Phone 8 excitement as possible" (cf blog post)...Cool the new WP8 is so much fun but...wait ? where are the apps ? there are coming soon because developers discovered the app at the same time that the normal user/consumer !

Anyway, I tried again...because I learnt from my past bad feeling (iOS), you coud finally find something great under the black curtain.

Step 1 : Register
So I registered as the Individual developer, for only 8$ and using Paypal (great !)
Well..it's not really 8$...it's 99$ and Microsoft will give you back 91$ later ....when ? I don't know ... why not directly pay only 8$ ? I don't know....Why only for new devers and not previous ? I don't know
Ask Microsoft....
I also must be careful because it's seen the renewal is automatic so if WP8 isn't interesting, I should find how to stop this automatic access to my paypal account.
Oh, and if you're looking for the rules about the 8$ registration, follow this link, because it's not easy to find on WP8 home page...

Step 2 : Download the SDK
The SDK is available, as usual with Microsoft, is available like a small .MSI or a full .ISO
It's great because you could download the full ISO to keep it somewhere (keeping older versions of SDK is a must do !)
BUT, like for iOS, you should upgrade your OS...yes, you need Windows 8
And here comes my first problem : like everyone knows, a Microsoft OS is usable only from the SP1 version...so it's just not possible I install Windows 8 beta public release on ly system...and lost all my programs and drivers
But wait, I need a new PC because my old one isn't strong enought for WP8 dev : 4Go RAM, 64bit OS and CPU which support SLAT (for emulation I suppose)
So 8$ to register + 1000$ for a PC ? Better than Apple but still a robbery
So I donwloaded SDK for 7.1 ... but it still waiting for installation since I don't see the point to use it (perhaps to gain at least 8$?)

Step 3 : Create a seller account
If you want to sell app on the WPStore, you have to create a seller account or, to be more exact, submit a tax profile form.
Honestly, I tried...but the form crashes every 2 attempts and, in final, I wasn't able to valid because it asked for a U.S. taxpayer identification number
1 - I'm not from USA
2 - I'm filling a non-US seller form
3 - the 'see instructions' just points nowhere
So I can't sell anything on Windows Phone Store....but perhaps I missed something because this form is just to legal for me (I'm a developer, not a lawyer!)

Step 4 : Create an in-app ads account
It's not clear if you could only use Microsoft Ads systems or not (will my apps be refused if I use Adfonic ?), so I tried to register to pubCenter.
This was easy but I soon discover another no-go details : while you can pay using Paypal to register as a developer, while you can receive your money using Paypal if you're an app seller...you can't receive mony throught Paypal using Microsoft's pubCenter.
Only check and bank wire...sorry but check don't work in France and I hate giving my bank info to someone like Microsoft or Apple.

So....I paid 8$, I downloaded a SDK I can't use to make app I can't sell or earn money from....
VERY VERY VERY bad start !

note : I make it late at night so perhaps I missed some points but, in that case, there were none clearly available

24 October 2012

Who try to clone who ?

This week-end I made something interesting : i activated my iPhone and updated my nexus to ics at the same time.
While discovering the new ics, i also discovered how they cloned iOs.
Every change made from 2.2 to 4.0 are only from iOs. It was a very bad discovery....

03 October 2012

Finally, it's my turn to follow Apple law...

After many years trying to avoid Apple and every iThings, I finally had to move on the Apple train.
I'm very late but, after some interviews, I finally realized it costs me a lot to blacklist Apple.

I so followed last week a 5 days training on iOS development.
It was great because I met some great people but the iOS ecosystem is still, for me, anti-freedom.

Of course, I realized what people may like on iOS, how easy it is to navigate, to swipe, to tap, to scroll...
Of course, I confirmed an iPhone is easier to use than an Android phone.
But seriously, anything you want to do, even as a developper, has to be validated by Apple.
For exemple, even to distribute an app for review to your client, the guy who pay this app, you need to register your client's device to Apple.
And I won't talk about guidelines which change each version.
And how you can't develop for older versions (yeah sorry, 3GS users, your 400$ phone is now good for trash because noone could develop for it anymore)

He Apple, do you remember I PAID for an iThing, a MacBook, an entreprise license ... ?
so please, let me do what I want !

I also learnt how fast you could create a first version of your app using XCode and Interface Builder :
it's just 3 times faster than for Android.
It's more difficult to be professonial (no doc generation, fake MVC, just awfuly difficult to reuse custom UI components...) but you could create a prototype in few hours

Anyway, I already reached my first goal : I'm now able to write ANE for any platform which is a good thing !
I can't wait for the last part of the training, in 2 weeks (about iCloud, private appStore, core data, ...), to reach my second goal : be able to answer any iQuestion of my clients about iThings or, at least, to know where to ask or find the answers

07 March 2012

92% of Market users can launch AIR apps

According to last Android Market Google Play stats, only 7.8% of the users are still using an Android OS version less than 2.2

It's a good news for AIR and its 2.2 requirement !

05 January 2012

Generate your own PKCS12 certificate for AIR

I know... it's another one about certificate but perhaps you'll need this like I did.
If you follow this blog, you know I'm in need for a +30years certificate.

Flash Builder wizard generate 25 years certificate only

generate the certificate myself!

Again, thanks to keytool :

keytool.exe -genkey -keyalg RSA -storetype pkcs12 -alias <your_key_alias> -keystore <certificate_file>.p12 -validity 12000

Enter your password when requested only and fill the questions to complete

Note the -validity value is waiting for a number of days (not years!) so 12000 is about 32 years