Another 3rd-party iPhone SDK: Corona
Corona: Another 3rd-party iPhone development SDK is now open to developers for pre-beta testing.
One thing that sets this SDK apart: The engineers are “former Adobe mobile software veterans” who worked on the mobile Flash ecosystem.
And no, the programming language is not ActionScript or JavaScript, but is Lua - a simple scripting language that should be easy for ActionScript developers to pickup. One thing uncertain to me is whether Corona is generating native Objective-C code from Lua code, or simply interprets the Lua code at runtime (I certainly hope it’s not the latter).
At the moment, there is no public distribution build. The only way to test a project is by using the Corona Simulator that comes with the SDK. Corona is still at its early stage, and the final product is targeting end of Q3 2009.
As Apple has been known to reject apps for unknown reasons, many PhoneGap developers have encountered the most-feared notice that their app is rejected. One possible reason is PhoneGap relies on the Safari JavaScript engine, and JavaScript code is interpreted at runtime, which is not allowed by the Apple SDK agreement.
For me, there are some important questions:
- Does Corona generate native Objective-C code or interprets Lua code at runtime?
- How much does the final distribution license cost?
- How stable is the final code?
- Is memory management handled efficiently?
Nevertheless, it is good to see more 3rd-party tools and SDKs for iPhone development.
Update: Today (June 24), this article talks about Corona. “When the developer has his Lua code the way he wants it, he submits it to the Ansca Web site, where it will be compiled into an iPhone application ready to submit to Apple’s App Store.”
Even though it seems to simplify the workflow, this may not be ideal because:
- the complete project and code is submitted to Ansca
- sounds like the developer does not get any Objective-C code for tweaking
- developer is locked into Ansca’s terms for future deployment
Hopefully Ansca would address these concerns in their FAQ or forum soon.
6 comments360 | iDev conference at eBay in San Jose
After coming back from Seoul for less than a week, I was in San Jose for the 360|iDev iPhone conference. To keep this short, the conference was really great – not only was it affordable, the sessions were informative, and it was a great community event for networking too. In many other conferences, companies spend considerable efforts in pitching their products or services; I saw a lot less fluff at 360|iDev, and a lot more substance.
It was also great to meet my old friend Sam Wan again. He found out about the conference only a few days before it started from my twitter, and decided to join. You can read about his comments at his new blog.
Another person I met was Rob Toole, who is also a Flash mobile developer, now developing a financial app for the iPhone. Rob invited me and a few other folks to talk about mobile development, the conference, and has posted it as a podcast on iTunes.
A big surprise was from Bill Perry, ex-Adobe mobile evangelist who now works at Nokia in Mountain View. It was good to see Bill again. And who would expect to receive a 5800 XpressMusic phone at an iPhone conference? Thanks Bill for the first S60 5th edition touchscreen phone, so I can start developing for it.
Another ex-Adobe friend I met was Sumi Lim, who now works at Samsung just down the road from eBay where the conference was held. It was really great to chat with Sumi outside of conferences. She’s now working on the Samsung Mobile Innovator program for Windows Mobile. Check it out!
What I got from this conference was more than the technical, but also the marketing and distribution of iPhone applications and games, and met with fellow developers. Needless to say, I can’t recommend this conference enough. Keep an eye on their next event!
1 commentTrip to Seoul
For those who haven’t been following my twits, my flights from Toronto to Seoul via Chicago started with long delays on the runway due to snowstorm in Toronto, and the plane had to be de-iced twice before it was safe for takeoff. Instead of departing at 7:50am, it got off just after 10:00am.
The connecting flight in Chicago was to depart at 11:20am, by the time I stepped off the plane it was already 11:13, with 7 minutes left to go from one terminal to another by monorail. Thinking there was no way I could catch the second flight (which required check-in again at another airline), I walked quickly towards the next terminal. Then I saw a few people running, and they all looked like they were catching the same flight. By the time I arrived at the check-in counter, the staff were calling the plane to wait for us. Then we all ran through customs and to the gate, and got on the connecting flight to Seoul. That was quite an exercise running through two terminals after a sleepless night!
By the time I arrived in Seoul another 14+ hours later, my lugguage was nowhere to be found. Well, not just mine but all those who were coming from the same flight in Toronto. So I’m now without luggage, tired and ready to sleep after 28 hours of traveling, waiting, more traveling… There’s a full day ahead starting early in the morning. Time to rest.
No commentsAdded iPhone plug-in to this blog
Just added the iWPhone Wordpress plug-in to this blog. Will test and see if it’s worth keeping (not sure if I like the styles). What it does is detect the iPhone / iPod Touch Safari browser and use specific CSS templates. That’s all.
Update: Disabled due to incompatible commenting.
No commentsGoogle Chrome & Mobile
Since reading the Google Chrome comic, the possibility of running a new class of (web) applications in this new browser is exciting, especially considering that it’d most likely be part of Android in the future. With this new browser from Google, it’s not only re-igniting the browser war (mostly with Microsoft’s Internet Explorer), but also a step towards OS-independent applications that can run either online or offline. It’s another strike at Microsoft’s OS market share (something that Adobe has been achieving with the Flash Platform, except this time, Google is making it with a larger footprint). Chrome is in effect an operating system in its own sandboxed world. 
Here are some of the more interesting features of Chrome:
- uses the open source WebKit – the browser engine used by Safari (Mac OS, iPhone/iPod Touch, Windows), Adobe AIR (Windows, Mac, Linux), S60 (e.g. Nokia browser) and many more
- in return Google Chrome is also open source
- a new JavaScript Virtual Machine (V8) that compiles JavaScript to native machine code when interpreted, with the goal to improve JavaScript speed for complex applications
- separate process and sandbox for each tab
- Google Gears is built-in (GeoLocation API would be especially useful for mobile devices)
One logical direction for Chrome is to have it run on devices. With Android devices coming out soon, it’d be interesting to see where and how new applications will be deployed and developed if Chrome takes off and becomes a relevant platform.
Download Google Chrome Beta (for Windows).
2 commentsSony Ericsson – The new Flash Lite developer platform?
Flash Magazine has a story on Sony Ericsson’s upcoming SWF2Jar Flash Lite wrapper and API. PC World also has a similar coverage. Exciting news for Flash Lite developers!
Update: This is called Project Capuchin, more info at Sony Ericsson’s news site.
No commentsFlash on the Beach
Brighton is a nice little town by the sea in southern England. This is my first Flash on the Beach conference, and it’s been great so far…except a few hiccups.
Haven’t had time to sight-see yet, as I had to look for a doctor yesterday (woke up with painful red eye). Of course, if I were in Canada, it’d be much simpler. My first thought was to go to the local pharmacy and pick up some eye drop; unfortunately, they wouldn’t sell it without a prescription. They referred me to a nearby doctor (GP), but when I got there, I learned that the GPs don’t accept Canadians as patients. I was then referred to a local medical chamber, who told me they don’t have an eye doctor. After going to five different clinics, I finally found a private doctor who would take a look. He looked at my eye and gave me a prescription. I went to a pharmacy and was told the prescription is similar to an off-the-counter eye drop, and asked if I would choose the lower cost eye drop instead. Long story short, I wasted yesterday looking for eye drop.
Today was presentation day. I went to the Pavilion Theatre an hour early to set thing up. When I got there, the theatre was almost full. It was time for my presentation! What happened? Turns out the clock on my computer was adjusted automatically when Toronto changed the time on the weekend, and I wasn’t looking at the time on the phone (which gets its time from the wireless carrier here). Panic. As I had a lot of devices, DV camera, computer, power transformer, power bar…etc. to set up, it took quite a while to get everything going. The other issue (which I didn’t encounter during tech check) was the technician couldn’t get the video out signal from my Nokia N95. This was a bit of a problem because many of my demos were to be projected to the big screen directly from the phone! Instead, I had to hold up the phone and asked the audience to look at it instead. Glad there were a few laughs or I’d have fainted with these two incidents.
Anyway, the presentation went along and ended at exactly 2:30pm. I managed to cover everything except a demo with a Wii Remote controlling the phone. But the software is free and source code is included; so it’s easy for anyone to go pick it up and perhaps adapt it for Flash Lite using something like KunerLite.
For those who asked for my presentation, you can download it here.
It’s time to eat dinner with the other speakers, and hopefully will enjoy Brighton in post-presentation mode…
P.S. Thanks to Bill Perry from Adobe for providing the Flash Media Server streaming service for my demo of live video streaming to the phone.
7 commentsGetting to the end of spams
After installing Vista on the laptop (XP had problem with some hardware device on this particular computer), I forgot to activate a email account that catches spams. After close to one and a half month, I got notification from the email server that this account was full. Checking the account revealed 5586 email stuck on the server. It took all night and morning to clear them up.
No commentsCrazy weekend of spam
Never had I experienced spoofed email bounce like I did this past weekend. It started on Friday evening, and I received about 7000 bounced email that were spoofed using my quantumwave.com domain.
The problem was, the hosting company did not have SPF (Sender Policy Framework) set up, and I had a catch-all email account that accepted *@quantumwave.com. All the spoofed email were sent using some random account names selling illegitimate software or other goods.
I contacted the hosting company and they suggested that I turn off my catch-all email account and activate SPF on the email server.
One little problem with the catch-all account: Whenever I register email at a website, I usually use their domain name as my email account (e.g. at somecompany.com I’d use somecompany@quantumwave.com as my registration email). This made it easy for me to filter email, track the source of spam and know which company distributes email to third parties (I was surprised by a few big name corporations doing that).
Anyhow, before I could terminate the catch-all account, I had to set up all previously known email aliases I registered at every website I used. The last count is 330 aliases; so it took some time to track all those down and add them to the server. After that was done, I terminated the catch-all account and it was back to normal.
I’m sure I’ve missed some email aliases and those accounts will no longer work (senders will get notification that those email accounts do not exist). A rough estimate of the time I spent on this madness is approximately 5 hours (racing with/deleting incoming email, adding aliases, setting up server-side filters).
One important piece of information I learned: Activate SPF on the email server.
2 comments

