It’s hard to believe, but just barely a year ago I joined Jeff Haynie and crew to work full time at Appcelerator. My original goal was to write Eclipse based development tools for the javascript platform Appcelerator (now Entourage). Obviously things have changed a lot since then, with Titanium taking the company in a whole new direction, and my position now is perhaps a polar opposite of the thing I originally signed on to do. In any case, I thought it would be good to give a brief history of Titanium from my perspective.
After about a month of prototype tools (September-ish), Jeff and Nolan introduced me to a vision they had for developing desktop applications. The idea was a bit rough in the beginning, but it easily caught my imagination, and I grew very enthusiastic about the project. It was soon decided that I should shift to quickly coding an OSX based WebView wrapper, to get a feel for the effort needed to develop an early prototype/preview release. As it turns out, with only a few weeks of work, I was able to get a standalone WebView, Google Gears, some additional filesystem APIs, and a command line SDK worked out. This was the very first working version of Titanium, and it was the basis for the early work done for OSX in Titanium PR1. After prototyping OSX, I moved on to Windows to do a chrome-based wrapper, and Jeff and I teamed up to spec out the initial PR1 API, SDK, and other aspects of the platform.
Within literally 6 weeks, we had pushed PR1 out the door! It was December now, and at this time in Titanium’s development, things were moving so fast that neither Jeff or I got any kind of respectable sleep. Four AM and later were (and to some extent still are, as you see from this post) perfectly normal unplugging hours. As soon as we got PR1 out the door, we decided to drop Gears from the stack, and do a complete rewrite of the internal architecture. With Jeff’s lead, and our newest member, Martin Robinson a GTK and Linux God, we architected a modular microkernel and binding layer that freed us from the limitations of one platform or language. PR2, and all releases after it would use this architecture to deliver seamless integration of Python, Ruby, and Javascript with WebKit and the DOM. The binding layer also allowed us to bind our API directly into any language we support. Not only had we become a desktop platform for Javascript developers, but we were starting to address long standing limitations of Ruby and Python: A truly cross platform desktop framework, that lets you reuse the web technologies you already know. PR2 also included a major reworking of the Windows platform code, as we switched away from Chrome/V8 because of it’s slight behavioral inconsistencies with official WebKit. We were able to utilize the great work done by Brent Fulgham to realize a native redistributable WebKit for Windows using Cairo and cURL.
Around the time of PR3, we hired 2 more kickass developers: Dallas based Don Thorp, and Mac guru Blain Hamon. The next part of the Titanium vision involved the same basic ideas, but applied them to the disparate mobile landscape. It was natural then, since our technology was so young and cutting edge, to adopt platforms with our tried and true friend: Webkit. Quickly ramping up, Don and Blain put out an amazing product for iPhone and Android in just 2 months, just in time for Beta. At this point, we were ready to tell the world about our mobile aspirations, and to declare a public launch for the newly expanded Titanium platform.
Since then, we’ve made several minor and one major mobile release that includes native controls and views, and other niceties. A new version of desktop and mobile should be landing soon, and this should hopefully be the last release before our 1.0 production release coming soon. Stay tuned, I’m sure the next few years will be just as exciting, if not even more so than the one that’s passed.viagra patent levitra Viagra Price Comparison viagra anxiety;
taking viagra woman Buy Cialis Paypal cheap gerneric viagra
generic viagra levitra and cialis pills Cialis No Perscription Non Generic can i take viagra!
viagra how it works Cialis Vs Viagra herbal viagra forums
snorting viagra health Cialis Soft Tab Description viagra patent levitra
viagra anxiety; 2007 Viagra Hmo taking viagra woman
cheap gerneric viagra Viagra By Post generic viagra levitra and cialis pills
can i take viagra! Cheap Generic Cialis viagra how it works
herbal viagra forums Viagra Agonists snorting viagra health
viagra patent levitra Viagra No Prescription viagra anxiety;
taking viagra woman Viagra Premature Ejaculation cheap gerneric viagra
generic viagra levitra and cialis pills Cialis Story can i take viagra!
viagra how it works Low Cost Viagra Online herbal viagra forums
snorting viagra health Viagra Complaints viagra patent levitra
viagra anxiety; Cialis Prescription taking viagra woman
cheap gerneric viagra Buy Viagra Online Australia generic viagra levitra and cialis pills
can i take viagra! Viagra Light Switch Plate viagra how it works
herbal viagra forums Viagra Find Sites Computer Search snorting viagra health
viagra patent levitra Buy Viagra Online viagra anxiety;
taking viagra woman Viagra Use cheap gerneric viagra
generic viagra levitra and cialis pills How T Get Viagra can i take viagra!
viagra how it works Viagra Or Cealis herbal viagra forums
snorting viagra health Viagra Jelly viagra patent levitra
viagra anxiety; Generic Viagra India taking viagra woman
cheap gerneric viagra Buy Viagra generic viagra levitra and cialis pills
can i take viagra! Viagra With Out Prescription viagra how it works
herbal viagra forums Viagra Sales Uk snorting viagra health
viagra patent levitra Buy Viagra Online At viagra anxiety;
taking viagra woman Viagra Prices cheap gerneric viagra
generic viagra levitra and cialis pills Viagra By Mail can i take viagra!
viagra how it works Viagra Pill herbal viagra forums
snorting viagra health Order Cialis viagra patent levitra
viagra anxiety; Cheap Viagra Overnight taking viagra woman
cheap gerneric viagra Cialis Marketing generic viagra levitra and cialis pills
can i take viagra! Viagra And Blood Pressure viagra how it works
herbal viagra forums Viagra Uk Cheap Purchase Buy snorting viagra health
viagra patent levitra Cheap Viagra Nz viagra anxiety;
taking viagra woman Natural Herbs Used As Viagra cheap gerneric viagra
generic viagra levitra and cialis pills Cialis Online can i take viagra!
viagra how it works Buy Viagra Cheap herbal viagra forums
snorting viagra health Viagra Low Cost viagra patent levitra
viagra anxiety; Watermelon Viagra Affect taking viagra woman
cheap gerneric viagra Low Cost Viagra generic viagra levitra and cialis pills
can i take viagra! Cialis For Sale viagra how it works
herbal viagra forums Viagra Next Day Delivery snorting viagra health
viagra patent levitra Viagra Benefits viagra anxiety;
taking viagra woman Viagra Real Mail cheap gerneric viagra
generic viagra levitra and cialis pills Professional Viagra Discussions B Ogs can i take viagra!
viagra how it works Cialis No Perscription herbal viagra forums
snorting viagra health Female Cialis viagra patent levitra
viagra anxiety; Levitra Cialis taking viagra woman
cheap gerneric viagra Viagra Rrp Australia Cost generic viagra levitra and cialis pills
can i take viagra! Viagra Profesional viagra how it works
herbal viagra forums Better Than Viagra snorting viagra health
viagra patent levitra Buy Cialis Soft Online viagra anxiety;
taking viagra woman Levitra Vs Viagra cheap gerneric viagra
generic viagra levitra and cialis pills Watermelon Rind Viagra can i take viagra!
viagra how it works Natual Viagra herbal viagra forums
snorting viagra health Home Made Viagra viagra patent levitra
viagra anxiety; Mexico Pharmacy Generic Viagra taking viagra woman
cheap gerneric viagra Cialis Mexico generic viagra levitra and cialis pills
can i take viagra! Viagra Pills viagra how it works
herbal viagra forums Buy Generic Cialis Online snorting viagra health
viagra patent levitra Watermelon Viagra viagra anxiety;
taking viagra woman Viagra Sex cheap gerneric viagra
generic viagra levitra and cialis pills Viagra Commercial Canyon can i take viagra!
viagra how it works Generic Soft Tabs Cialis herbal viagra forums
snorting viagra health Viagra Spray viagra patent levitra
viagra anxiety; Make Your Own Viagra taking viagra woman
cheap gerneric viagra Cialis Pen generic viagra levitra and cialis pills
can i take viagra! Viagra Mexico viagra how it works
herbal viagra forums Discount Generic Viagra snorting viagra health
viagra patent levitra Viagra Buy viagra anxiety;
taking viagra woman Viagra Sale cheap gerneric viagra
generic viagra levitra and cialis pills Cialis 2.5 can i take viagra!
viagra how it works Levitra Vs Cialis herbal viagra forums
snorting viagra health Diabetes And Viagra viagra patent levitra
viagra anxiety; For Viagra taking viagra woman
cheap gerneric viagra Fake Viagra Prescription generic viagra levitra and cialis pills
can i take viagra! Viagra Online Canada viagra how it works
herbal viagra forums Buy Cialis snorting viagra health
viagra patent levitra Buy Viagra In Canada viagra anxiety;
taking viagra woman Women Taking Viagra cheap gerneric viagra
generic viagra levitra and cialis pills Regalis Cialis can i take viagra!
viagra how it works Cialis Pricing herbal viagra forums
snorting viagra health Mail Order Viagra viagra patent levitra
viagra anxiety; Overnight Shipping Of Professional Cialis taking viagra woman
cheap gerneric viagra Once A Day Cialis generic viagra levitra and cialis pills
6 Responses to My first year at Appcelerator in retrospect
Roman Heinrich
August 9th, 2009 at 6:42 am
Hi Marshall, thanks for the writeup, I’m always fascinated by the amount of energy and the end-results some well-chosen and motivated people can churn out with the right vision! Really admiring your dedication.
BTW, the urls for Don and Brent need updating (maybe old info in your company wiki? ) Keep up the good work, this stuff is dynomite!
P.S. my url is not working too, for now
Marshall
August 9th, 2009 at 11:57 am
Thanks Roman! I forgot to double check Don’s link, it should be fixed now. Brent recently deleted his blog it looks like, not sure why. I’ll try pinging him to see if I can figure out where he’s moved to.
RIck Culpepper
August 14th, 2009 at 7:32 am
Hey, Marshall! It’s cool to read what you’ve been up to for the last year or so. Sure, we’ve talked about it in very abstract terms, but this gives me an even better idea. WAY COOL STUFF, man!
Oh, BTW, I did something last weekend that will probably give you a heart attack… I bought a 24″ iMac for use at home. Of course, I’m running Win7 under VMWare Fusions. This is a sweet solution for all my PC software I don’t want to re-license just yet.
I’m interested in getting started doing some development on OSX, but haven’t a clue where to start. Any pointers? How about Entourage Titanium?
Marshall
August 14th, 2009 at 2:05 pm
Hey Dad!
LOL I can’t believe it! I’m stoked though, Macs are a real pleasure to work with once you get used to it’s way of doing things. If you’re a Unix guy especially, OSX is a dream come true.
In any case, Titanium Desktop apps are a snap to write.. pure Javascript, HTML, CSS. It’s definitely the easiest way to get going
Feel free to download Titanium for OSX (and hell, why not Windows too) here:
http://www.appcelerator.com
lkjlkjsskjnlljklkjkjlkjlkjlkjlkjlkjlkj
October 3rd, 2010 at 3:51 pm
Hi. i found you from QA pages of appcelerator – i have a question that no one has solved it yet. i think you can. thanks. this is the code that i made and it works once and second time that i go to the html page it does not work. i want that when i go to a html page it make a sound automatic in iphone. first time it makes the sound, next time i click on another web page to come to this html page, it does not make the sound. thanks again. i do not know how you can answer me, please send email: shahin AT robot-hosting.com
—
this part is in app.js:
var webView = Titanium.UI.createWebView({url:’menu.html’});
var appWin = Titanium.UI.createWindow({fullscreen: true});
appWin.add(webView);
appWin.visible = true;
appWin.open();
Titanium.App.addEventListener(‘do_something_native’, function(e) {
// do something with “e” here, it contains the properties passed from the webview
var sound = Titanium.Media.createSound({url:’ding.wav’});
sound.play();
Ti.API.info(‘foo=’+e.foo);
});
—
this part is in html page
Titanium.App.fireEvent(‘do_something_native’, {foo: ‘bar’});
shahin
October 5th, 2010 at 1:35 am
Hi
We want to open a html file in iPhone and we want as soon as html file is opened plays a sound.
The following code DOES work. But it works only for the first time.
When we run the simulator it opens the app.js, it opens the html file and makes the sound, but when i go to another html file and from that file click on a link to come to this file again, it does not make the sound.
Question is this: How do we fix this, to make the sound every time?
Thanks
=========this is in the app.js=======
var webView = Titanium.UI.createWebView({url:’menu.html’});
var appWin = Titanium.UI.createWindow({fullscreen: true});
appWin.add(webView);
appWin.visible = true;
appWin.open();
Titanium.App.addEventListener(‘do_something_native’, function(e) {
var sound = Titanium.Media.createSound({url:’ding.wav’});
sound.play();
Ti.API.info(‘foo=’+e.foo);
});
======= this is in the html file =======
head script
Titanium.App.fireEvent(‘do_something_native’, {foo: ‘bar’});
/script / head
================================