Category Archives: iphone

Fast Gaussian Blur alogrithm (on iPhone)

I had to implement a Gaussian Blur for an ihpone project, and the direct approach was really slow. For each point, you compute a rxrx4 pixels for each point (r is that rayon of the blur).

I’ve tried several other approach, but I found the stackblur alorgirthm. The idea of the stackblur is instead of recomputed all the neighbouround points for each new points, you juste maintain a stack of value, and remove/add value on the fly.

The source code is availabe on git hub with a sample project:
https://github.com/tomsoft1/StackBluriOS

The source code is adpated from the Mario Kingemann algorithm, check his web site, full of good stuff

Diawi : Easy upload of iPhone App


One feature that I’ve totally missed on iPhone4, was the ability to download an .ipa other the air. You can now easily download an app if you specify a link. The requirement, is that your application need to have a valid certificate for this device.

So it’s not possible to download your app on any device, as it will require Apple signature, but it can be done for AdHoc release for instance (developer releases). But the management of the certificate, device id, and so on is usually a pain.

There is a simple service that do it very well: diawi . Just upload your zip or ipa, and then you’ll get back a link that you can forward to all your tester, with an optional password

Note: this works only on iOS4….

Gret service

TvTweet: Real time Twitt about Tv Shows

I’ll present you a small side project, named “TvTweet“. Basically, the idea of TvTweet is to be able to check real time what are the discussion in twitter about TvChannel. And even better, to help you if you see something interesting and hot happening on a channel.

You can also react on Tv Shows, by sending Tweets.

Here are some screen shots:




Unfortunately, the App is only available in French and for French channels, but anybody interested by a converstion for US or UK channels (or other countries) is welcome.

There is a nice server part, “TvTweet.fr” where you can see the tweets, and also the statistics. The application is mostly client side, but the initial idea of the server side was to get statistics, like this one:

It was done quite rapidly and this was fun to create. Was build of course in Coca on the iPhone side, and using several technologies on the server side:
* Ruby On Rails for the server front end
* Node.js for a server side dispatcher, allowing you to follow real time twitter stream without being authentified.
* php for the server side stream tracker

So what I’ve learned:

* Node.js is definitvely too young, it was hard to make something work as expected , but the principle was nice. But thanks to node.js, I’ve take a deeper look to EventMachine for Ruby, and it’s probable that this part will be rewrite using rails

So last reminder: Download TvTweet for iPhone now!

AlertMachine 1.5 is out: real time push notification for everyone

AlertMachine icon

We just release “AlertMachine” on iPhone, the latest iteration of our product. It was previously named “iFlow”, but “AlertMachine” is more self explenatory.
Basically, with Alert Machine, you can be notified in real time of any “events” hapenning on the internet and easily manage these event and notifications. You can be notified of:

  • New RSS article (for instance, each time that techrunch is posting a new article)
  • Twitter notification or direct message
  • Facebook event
  • etc….

There is no limitation on the number of feed/event that you can follow.

An API is available if you want to create your own Alerts for this product, more detail soon.

You can download AlertMachine from the AppStor here.

Know all about your app: Flurry analytics

Flurry, an early developer of mobile mail client for J2me seems to be reborn as a great analytic tools. This tool is available for four platforms: J2ME, iPhone, Android and Blackberry.

I’ve tested the J2me and iPhone version, and it’s one of the best tool I’ve found so far. Before, I’ve used “mobileZoo” from Stephane, and do the job, but started to be slow.

Flurry follow the same principle: you get stats about your users, their mobile, where do they come from, but give you much more details:

  • session length,
  • http usage (number of requests, time spent/request, data downloaded and received)…
  • number of canvas displayed
  • etc…

One of the coolest feature, is the notion of “events”. You can track events within your app (with a maximum of 100 events).
In J2ME, adding events is dead simple: whe you upload your jar file, flurry introspect it and you can select which procedure you want to track. If your binary is obfuscated, you can send the mapping file generated by the obfuscator. And then, by miracle, all calls to a specfific function are send back to the server.

Here is an exemple of two events that I’ve added in the 8Motions app:

Want to know if this feature is used or not in your app? Want to know the user path within it, want to track error generated…All of this is possible quite easily.

What is missing: the good thing for J2ME is it’s not a library, but it’s also a bad thing. I can not regenerate a new binary without manual interaction with Flurry. I would like to see a lib, like the iPhone version, that could be embeeded n my J2me app during the build process. Also, this could be used to add more details to event reporting, like additional parameters (this s what is done in iPhone version).

But it’s a very good product, and I strongly recomment any serious developper to check Flurry !

What future for J2ME?

Waow, what a big year, with several new platforms (Androïd, iPhone, JavaFX) , the move of Symbian to OpenSource?

Everybody these days is talking only of OpenOS (which in fact are not so open, but anyway) and the reborn of mobile applications.

So what happens to j2me, which is still the most important technology to deploy applications onhundreds of millions of handsets

The good thing, thanks to the push of these OpenOS is that application are now seen as a viable alternative to browser only, and a viable revenue stream.

But J2me seems to be out of the race. Why:

  • Where’s the AppStore? Still none of the MIDP2 handset have a good equivalent of the AppStore, an easy to use discovery and download mechanism. And even worst, once downloaded, the application are usually hidden in one of the numerous sub menus of the phone. And there is NO WAY to create your own AppStore in J2me using standard API.

  • MIDP3 is too late: MIDP3 phones, which should have been an answer to many of the MIDP2 lacks (background processing, multitasking, improved UI, etc…) is late. No phone hit yet the market, and even, MIDP3 as a standard is already below the market. MIDP3 is two years too late.
  • Why JavaFX? Sun introduced JavaFX trying to compete with Adobe AIR, and Silverlight. Mistake.  As I already explained (“JavaFX, the missed opportunity of Sun“), they are not good at this. Why Sun did not invest instead to provide an embeed VM into iPhone for instance?
  • Fragmentation: one of the biggest historical issue of J2me. Something that new platform don’t have yet, due to their short life. But when we will have tenth of manufacturers doing Androïd phones, I guess that there will be fragmentation too.

So this seems to be a pessimistic article about J2me, especially regarding the fact that I invested so much in this technology (I’ve been in MIDP2 expert group, as well as MIDP3 one). Again, J2me is still the leading technlogy in terms of installed base, but in  term of usage and application, the gap is not as big. So the game is quite open, iPhone/Androïd deployment will increase this year, and I am sure that others technology will emerge.

Reblog this post [with Zemanta]

Complete howto list to create self signed application on iPhone2.1

iPhone Software Development
I’ve played a little bit this week end with the iPhone SDK, which is good on some point, but a nightmare on others. Maybe I’ll do a post on this topic later on, but my main point know is to help others on how to do self signed application running on a real device. It tooks me several hours to find the right informations, several test and try, so here is the result:

1) Jailbreak your phone. You probably already know how to do it.

2) Install a patched “MobileInstallation” file. But when moving to V2.1, I had some problems: the phone does not wanted to reboot and was vibrating every 2 to 3 seconds. To correct, this I had to do the following steps: (even if
the phone is vibrating and the boot was not finished, you still can connect to it using ssh)

 * chmod 775 to the MobileInstallation file (as before)

 But also:

cd /private/var/mobile
chmod 777 Applications
cd /private/var/mobile/Applications/
mkdir Documents
cdmod 777 Documents

3) Create a self signed certificate, named “iPhone Pwned Developer” (see apple documentation to create a self signed certificate)

4) In your project settings, add the following:

for Code Signed Identity, put “iPhone Pwned Developer” (the name of the certificate you just created)

In the general configuration set the values of PROVISONING_PROFILE_ALLOWED and PROVISIONING_PROFILE_REQUIRED to NO
(you can also do this by doing “sudo vi /Developer/Platforms/iPhoneOS.platform/Info.plist” and modifiy these two values)

In the Info.plist of your project, add the following:

for the key: SignerIdentity  add the value: Apple iPhone OS Application Signing

and you’ve done…You can install your self signed application from XCode

Note that for further project, you just need no to add the SignerIdentity key in the Info.plist and the Code Signed Identity in your poriject settings. The iphonesdkdev blog seems to also provides template for this now….

Sources:
http://www.demonoid.com/files/details/1621027 for correct V2.1 installation of MobileInstallation (but I did not had to do all the indicated steps)
http://iphonesdkdev.blogspot.com/2008/09/xcode-template-for-pwned-iphone-device.html
  for SDK installation

Got my 3G iPhone!

Just got my 3G iphone: a 100€ deal for a 16G one thanks to Orange incredible offer (and I still keep my old one!). Nice object, but screen look not as good as first generation, and I am encoutering a lot of random crash…. But the AppStore is a very good app, and show how the discovery part is important. Up to now, most of the mobile discovery systems where browser based, which does not give the feeling that applications are high values which was a problem mainly for games. With the AppStore, both the discovery and the payment are easy to do (and that was one of the problem that In-Fusio solved since 2000, by providing and embeeded while upgreadable discovery with an easy to use payment system! ;-) )
For more interesting comment on this, check CEO post: “Who said local apps are RIP? It is about ease of discovery

Related to the iPhone, two interesting things:

A great blog post, on the 15 risks that Apple had to fight with the iPhone: iPhone: The bet Steve Jobs didn’t decline.

And I must agree with the first comment: I was also very doubtful about the Apple ability to enter this complex and closed market, but they’ve done it!

Shazam - experience music
The second cool thing is “Shazam“, a very nice free application, downloadable from the AppStore: this app allows you to “tag” any song by recorgin a about 20 seconds of it, and magically, Shazam will show you the title, artist, and even for most of them some related links to the iTune store to buy it, or view a video from YouTube. Great app and perfect realisation! This is similar to TrackID, implemented on some phone, but here, the user experience is close to perfect.

Androïd and the iPhone?

Would it make sense for Google to provide an Androïd version for the iPhone? Of course, not the complete stack, but just the development framework. Most of the people and especially developers don’t really care about the full stack, but about the interesting part which is of the development framework, as long as it’s well integrated with the rest of the phone.
I am not an Androïd expert, but it seems possible for me to adapt this on the iPhone.

Why:

  • It could be the first Androïd platform
  • It could provide an easy way to develop applications for the iPhone
  • This would solve one of the fragmentation issue

Why not:

  • Because Apple don’t want it?
  • Because Google don’t want it?
  • The google and Apple gadget are not the same. They both choosen different look and feel for the UI (which is understandable). So which one should we choose for an Androïd on IPhone?
  • It might be not possible to reach the same level of integration between the application framework and the core system.

This seems possible to me from the technical point of view. First, google could do it. If it’s not Google, some external developer could do it. Of course, we don’t have detailled spec of Google Dalik VM, but it’s not a big issue: we could use an open source JavaVM, and just run some plain Java Code with the Android Framework? It seems that people already started to work on standard VM  porting, with this VM porting on iPhone. A good first step, but Androïd on an iPhone could be the toy of 2008 for developprs…

Identificateurs Technorati : , ,

Two extraordinay iPhone apps…

Just played with these two great apps, showing the potential of the iPhone and especially the multitouch screen and the accelerators.
The first one is in fact a multi touch demo, quite simple, from cedsoft: it allows to play with a satellite picture and zoom it, move it and rotate it. You could say that GoogleMap is already doing it on the iPhone, but the rotation add a lot of novelty. It pave the way to more complex application, like photo editing tools, or productivity tools with a different UI.

To install it, use the http://prog.cedsoft.free.fr/ repository

The second one is iPhysics (a port of CrayonPhysics). It’s a very simple idea, but hard to describe. The objective is to push a ball to a certain place, but based on physics interaction. You can not move the ball directly, but you can create object by just drawing them on screen, and then these object interacts with the world. Very addictive and innovative
.

To add it, just add this repository in the installer: http://iphone.r4m0n.net/repos

Some remarks:

  • Hopefully the iPhone has been unlocked, and will be soon officially. Without this, I think that such app would have been really hard to exist
  • Sometime, it’s good to exit from the “Ajax” reign. It would have been if not impossible quite difficult to create these app with a browser only.
  • The development chain for iPhone is -in my view- way too complicated! So I give full respect to these early pionner, but I would like to see an easy way to develop complex app for iPHone. I think that Java would have been the best candidate for this. I am dreaming of an Androïd port for iPhone…

There is a lot of potential for iPhone games, thanks to the combination of nice things:

  • multi touch screen
  • portable device
  • High surface screen
  • Connectivity
  • Sensor
  • Camera

For instance, I am dreaming (or hoping that people will port it) some of this games:

  • Catapult , a game originally created for the Gizmondo, a cool augmented reality game
  • Some nice billard game
  • A marble madness port with acclerometer


Identificateurs Technorati : , , ,