7: Neuewriter, Adobe AIR, Webkit and I walk into a bar…

On 17 February 2011 by Derek J. Kinsman

Neuewriter, Adobe AIR, Webkit and I walk into a bar… Lead Image

Lately I’ve been playing with Adobe AIR (Adobe Adobe Integrated Runtime, I know) for a few reasons. Mostly because I wanted to learn something new. But also because I already know how to write HTML, CSS, JavaScript (yes JavaScript, not just a library like jQuery — which by the way I love), and ActionScript (and the Flex framework). So the goal was to be able to use tools and technologies that I’m already familiar with and move into a desktop environment. The nice thing with AIR is that it can be run on a huge range of devices from desktop to mobile. Most people don’t realise how powerful JavaScript is when it comes to developing with it — this I attribute to libraries like jQuery or Prototype/Scriptaculous. That and all the cool kids who went to school for web design didn’t want to learn how to program because cools kids don’t program. I’m not even going to point out that if you’re an interactive designer you should probably have JavaScript in the bag. It also means I don’t have to write native code for each environment. I’m a big believer in write once send everywhere. And I’d rather not have to work with Objective-C & Cocoa. It’s actually embarrassing knowing that useless arcane badly created language. And Cocoa is even worse. It’s a shitty API for a badly thought out superset of a hugely complicated real programming language.

Okay, back to AIR. AIR doesn’t equal Flash/ActionScript. Or AIR != Flash/ActionScript. Or AIR ≠ Flash/ActionScript. AIR is more similar to a Single Serving Browser or Apple’s on Dashboard Widgets, I’m sure Windows has an equivalent to Apple’s widgets Or PhoneGap (which is a fantastic mobile framework by Nitobi, who happen to be badass Canadians, yeah). AIR lets you develop with whatever web technologies you want to use (you don’t have to use Flash if you don’t like it) and it uses Webkit as a rendering engine. So someone could say make an AIR app that mimics Photoshop functionality but renders using Webkit. There are some differences in functionality from what you might be used to if you built a web app for the browser. Which I’ll get into a bit later. But some HTML web workers are missing in favour of custom functions (localStorage and the like). There’s documentation on some of these changes, but you need to be comfortable reading JavaDocs (Adobe calls them LiveDocs, but it’s the same shit). Here’s my first real beef with AIR. Adobe is pushing AIR really goddamned hard. It’s being pushed onto as any mobile platform that’ll allow it. The majority of their apps now compile AIR apps. Which is solid gold. The problem: documentation fucking sucks worse than anything really witty that I could write here. It’s terrible. Most of the subtle differences you need to know you find because A) you broke something, B) something just doesn’t work when it should and C) you Googled it and the top links were the Adobe help & support forums. This is the single biggest hurdle for anyone that wants to start working with AIR. The docs need to be cleaned up. The examples need to have a full working example, not bite sized code snippets (sometimes this is okay because you already do it. But just getting a random snippet of code for AIR’s custom localStorage implementation is kind of ridiculous, and JavaDocs don’t help with this because, well, I’m not a Comp. Sci. major some of this stuff doesn’t make sense when it’s not in the form of a working example). You would think that Adobe would have the most usable user guides for AIR as it’s now pretty much their biggest product/platform now. This is their only foot in the mobile industry door. Flash seems to be evolving into something that’s no longer a Flash Player only object (and by the way, I still like Flash/ActionScript, I’m not a hater, but it is and needs to evolve into something more than what it is). Not having a usable guide for developing with AIR is going to shoot Adobe in the foot. Another issue I had while working with AIR is compiling the project into an AIR app. There are a crap load of settings and options that aren’t clearly defined anywhere. Once you figure it out it’ll stick with you forever, but I shouldn’t have to figure anything out. My only other issue with AIR which I’ve semi mentioned is the changes to Webkit that are seemingly for the sole purpose of locking you into a few bespoke Adobe functions.

Okay, regarding Webkit. Webkit is probably one of the most fragmented rendering engines in the industry currently. Safari (OSX & Windows) and Google Chrome (OSX, Windows & Linux) both use it. Plus a wide variety of other smaller groups making Webkit based browsers (Flock, Shiira, etc.). There’s also Safari iOS and it’s part of the library stack for Android. Before I compare Safari OSX w/ Safari iOS let’s just say that all these browsers render differently from each other and support different parts of the HTML and CSS specs and implement them kinda differently in some cases. That is a huge pain in the ass.

ASIDE: Don’t even think about hiding behind the wall of responsive design and your website doesn’t need to look the same in every browser. Personally, I think for the most part that’s a hugely misleading excuse of the lazy designer. I understand that every browser has rendering differences and that in some cases there’s nothing you can do. Responsive design should only be used for controlling the design based on the display port dimensions. Not anything else. Should websites look the same in every browser? Yes. Should I strive for pixel perfection. Probably not. But it shouldn’t feel like two different websites because it’s the browser you use and the browser the client uses. Anyway, another story another day.

Back to it: Safari OSX vs Safari iOS. They’re different. Massively different. and I feel that the iOS version has been deliberately crippled so that if you want to do something really cool for iOS you have to go up to native. That’s not cool. At all. Like for real. Apple has disabled some very critical parts of HTML. Notably things like localStorage, contentEditable, and some other useful bits of functionality. The version of Webkit on Androids does this as well. Again, there’s no reason to remove this kind of critical functionality except for getting developers to pick (and get locked into) a closed native platform. Adobe has also crippled a few bits of HTML. They had localStorage before it was introduced in HTML and they’ve decided to not add the HTML storage options and opt to use the ones they created for AIR. Fine, but don’t remove the HTML options because you want people to use your functionality. In all honesty the Adobe local SQL and data storage are pretty okay to work with once you get the hang of it. Again, I’m gonna cut this short. I’m a designer not a software engineer.

Why this all matters: Neuewriter. Neuewriter is a new app that I created along with Mark Stuckert. This evolved from another project we were working on together which we’ll probably pull off the back burner sooner or later (maybe). I was looking around at writing apps and didn’t find any I liked and hacked the other project we were working on and made it full screen. Mark redesigned it and I redid all the code. And that’s what is currently available for download. We’re actively working to get some updates in. There are a few bugs I’ve come across that I’ve already fixed. Neuewriter is an AIR based app. It’s HTML, CSS and JavaScript (JavaScript and jQuery). There’s no ActionScript anywhere. It doesn’t talk to the internet. You don’t need to save. It saves on every .keyUp() event. This way you can type OOOOOOOOOOOOOOOOOMGGGGGGGGGGGGGGGGGGGGGG and it will save on that very last G. This does slow down a bit and if you’re a really fast typer and hammer out some serious amount of text and quickly give it the old CMD-Q you might lose some text. So optimizing the code to make sure it’s super lightweight was key. That way it can stay really close behind the typing while saving. The benefit of not having to save is that you don’t have to think about it. Which, personally, I love. We wanted to create something that gets out of your way and lets you do what you want. In this case, that’s writing. Going full screen removes all the clutter of your desktop (it’s killer on my 1920 x 1200 screen). Really we’re trying to reduce the cognitive load that happens when you open a tool like Word and get scared with all the toolbar options. Again, these concepts came out of another project we were/are working on. Mark did all the design and I did all the development. Doing this in as AIR allowed me to really quickly build it out with Chrome and it’s developer tools. After that I could do a compile and see what it looked like in AIR. I spent a few hours in total getting used to working with air.encryptedLocalStore and the runtime.air.update.ApplicationUpdaterUI and the rest was stuff I already know. I fully recommend giving AIR a try. Instead of jumping into native app development. Start with what you know. Do something different with it. I’m going to keep using AIR. I hope you get a chance to use Neuewriter. I hope you like it. Above all I hope it reminds you of when you used to use a pen and pocket journal to write. Before we all had thousands of formatting options. I’ve got a bunch of fixes that will be going live soon (hopefully). If you have any feedback — positive or negative — please let us know. I live for comment and critique.

Okay, next time I swear I’ll really rip into something with lots of swearing and anger. Thanks for reading. Cheers, Derek.

Ps. I wrote this entire post using Neuewriter. =}

« »

7: Neuewriter, Adobe AIR, Webkit and I walk into a bar…

Written by Derek J. Kinsman

Published on 17 February 2011

Filed under Housekeeping.

Add this to Twitter, Facebook, Google, StumbleUpon, Digg, MySpace, Email, Print.


  1. Posted July 30, 2014 at 5:16 pm | Permalink

    Undeniably believe that which you said. Your favorite justification appeared to be on the net the easiest thing to be aware of.
    I say to you, I definitely get annoyed while people consider worries that they just do not know about.

    You managed to hit the nail upon the top and defined out the whole thing without having side-effects , people could take a signal.
    Will probably be back to get more. Thanks

  2. Posted September 5, 2014 at 6:44 pm | Permalink

    Everyone seems to love those cute hats unfortunately, it goes agnasit the core of Permadeath when you use the DDO Store to buy something that enhances your stats the way the hat does. You could wear it on another character perhaps?From the guilds rules: You may not purchase anything quest related (rez cakes, loot potions, xp potions, store hirelings, etc), nor may you purchase +1 tomes or other character enhancers. When they were selling the lucky green hat I wanted one for my permies so badly.. but It gives you a plus 1 to your will save, so I had to let it go. I compensated by buying a hat for all of my non-PD characters. Conversely, I think the three-cornered hat doesn’t do anything. I can’t tell if you are angry about the hat rule or the thread being closed. I agree that the thread should have been allowed to be debated. Debate is healthy. I am pretty sure the outcome would have been the same. The final word being no as that hat is a serious stat changer. I am sorry I didn’t notice you wearing it the day I played with you. I would have told ya.Cheers M8Lessah

  3. Posted February 20, 2015 at 9:03 pm | Permalink

    ; my father was strcuk by a spiritual force and blood was running down all over his body, also, she said again that, it maybe that my father had slept with somebody’s wife and was eventually attacked by the woman’s husband. Only God knows what has happened to him.My father refused to call me and the wife also refused to call me instead they both have to call Nigeria to relay what has happen to him. This is strange and a revelation of things to happen, as I live in the UK with my father till present but he has refused to call me to tell me what happened to him. On the 10th August 2012, I was watching the live service of Prayer Rain. As the testimony section was on, I felt my stomach cramping me and decided to ignore and continue to listen to the testimonies, but, I could not ignore it this time so, I have to use the toilet as I felt something was not right that something was about to take place. Thank God has taken away every evil poison, spell and curses from body.I thank God for everything.

  4. Posted March 24, 2015 at 7:35 pm | Permalink

    I need the God’s favour mercy and bsinseg upon my life i want to trust me with the assignment of cordinating for my ministry in Lagos Nigeria that i can assist a lot of people from Botswana who want to visit my ministry in Lagos. Please man of God pray for me so that God locate me this Dewcember when i visit my ministry in Lagos also to break every area of set back and bondeage in my life. i want my life to be transformed in a way that the enemy will find me too hot to handle let my blessings be released from heaven in Jesus name. everything shall work in my favour in the name of Jesus every marine sprit demonic power and heavenlies in the second heaven delaying my blessings shall be demolished by fire of the holy Ghost every unrepantant enemy refusing to submit to the word of God shall die by fire.

  5. Posted September 4, 2016 at 3:43 am | Permalink

    If you are interested in topic: best ways to make money on the side online – you should read about Bucksflooder

  6. ProstitutkiEi
    Posted March 27, 2019 at 7:22 am | Permalink

    … deux relationships and dating exchange for sex. Date services. Accompanying you in Kiev appealing girls fit in requital for sex. Call our convoy phone and pick yourself a prostitute.

  7. Posted June 27, 2019 at 10:19 pm | Permalink

    лучший кэшбэк сервис: https://texnoera.com/top-5-keshbek-servisov

One Trackback

  1. [...] This post was mentioned on Twitter by Derek Kinsman, markstuckert. markstuckert said: Derek on Neuewriter! The heck is a Javascript http://t.co/BaHWfG1 [...]

Post a Comment

Your email is never published nor shared. Required fields are marked *


You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>