40
Best Practices in mobile cross platform development @wolframkriesing @uxebu Donnerstag, 11. November 2010

Best Practices - Mobile Developer Summit

Embed Size (px)

DESCRIPTION

I am trying to show some useful tricks and tips when developing mobile web apps.

Citation preview

Page 1: Best Practices - Mobile Developer Summit

Best Practicesin mobile cross platform development

@wolframkriesing@uxebu

Donnerstag, 11. November 2010

Page 2: Best Practices - Mobile Developer Summit

We open the mobile web.

Donnerstag, 11. November 2010

Page 3: Best Practices - Mobile Developer Summit

http://www.flickr.com/photos/andresrueda/2276197032/

Donnerstag, 11. November 2010

Page 4: Best Practices - Mobile Developer Summit

Donnerstag, 11. November 2010

Page 5: Best Practices - Mobile Developer Summit

Donnerstag, 11. November 2010

Page 6: Best Practices - Mobile Developer Summit

Donnerstag, 11. November 2010

Page 7: Best Practices - Mobile Developer Summit

JavaScript

Donnerstag, 11. November 2010

Page 8: Best Practices - Mobile Developer Summit

ONLY

Donnerstag, 11. November 2010

Page 9: Best Practices - Mobile Developer Summit

Use Namespaces!

• globals suck

• objects as namespace

• easy mapping

• directory structure comes by itself

Donnerstag, 11. November 2010

Page 10: Best Practices - Mobile Developer Summit

Use Namespaces!

shop.page.cart.getItems() javascript

http://shop.de/api/cart/items/ URL

(r'^cart/items/$', views.cart.get_items), mapper

def get_items(request): item_ids = request.POST.list("ids")

code

Donnerstag, 11. November 2010

Page 11: Best Practices - Mobile Developer Summit

Patterns

• solve your problem

• solve it again

• copy+paste•

• you got a pattern

• abstract it

• reuse the pattern

AJAX

Donnerstag, 11. November 2010

Page 12: Best Practices - Mobile Developer Summit

Let's code together!

Donnerstag, 11. November 2010

Page 13: Best Practices - Mobile Developer Summit

for (var i=0; i<s.length; i++)if (i%2) node.innerHTML = „is even“else node.innerHTML = „is odd“;

for (var i=0, len=s.length; i<len; i++){ if (i%2){ node.innerHTML = „is even“; } else { node.innerHTML = „is odd“; }}

for (var i=0; i<s.length; i++) if (i%2==0) node.innerHTML = „is even“; else node.innerHTML = „is odd“;

for (var i=0; i<s.length; i++) node.innerHTML = i%2 ? „is even“ : „is odd“;

Donnerstag, 11. November 2010

Page 14: Best Practices - Mobile Developer Summit

Coding Style, etc.

• less to think

• all code looks the same

• do code, don‘t style

• stay focused

Donnerstag, 11. November 2010

Page 15: Best Practices - Mobile Developer Summit

But!

Donnerstag, 11. November 2010

Page 16: Best Practices - Mobile Developer Summit

d.declare(obj, null, {func1:function(){}

});

var obj = {};obj.func1 = function(){}

var obj = new Object();Object.prototype.func1 = function(){}

var obj = new function(){ arguments.callee.prototype.func1 = function(){}}

Donnerstag, 11. November 2010

Page 17: Best Practices - Mobile Developer Summit

Code Folding

Donnerstag, 11. November 2010

Page 18: Best Practices - Mobile Developer Summit

Template

Donnerstag, 11. November 2010

Page 19: Best Practices - Mobile Developer Summit

Templates

• faster

• no typos

• for the whole team

• docs built in

• copy with pride

Donnerstag, 11. November 2010

Page 20: Best Practices - Mobile Developer Summit

Comment out

Donnerstag, 11. November 2010

Page 21: Best Practices - Mobile Developer Summit

Comment out

Donnerstag, 11. November 2010

Page 22: Best Practices - Mobile Developer Summit

JSLint

• finds IE traps (trailing comma)

• gives JS insight (parseInt, ===, ...)

• understand type coercion

• finds missing var statements

• undefined vars, typos (myVar vs. myvar)

http://jslint.com

http://wolfram.kriesing.de/blog/index.php/2007/understanding-jslint-output

http://www.danhulton.com/blog/2008/01/16/integrate-js-lint-into-komodo-edit/

Donnerstag, 11. November 2010

Page 23: Best Practices - Mobile Developer Summit

Try it first (1)

d.query("h2") .style({color:"red"}) .anim({left:300}, 500)

Are you sure this works?

d.query("h2") .style({position:"absolute", color:"red"}) .anim({left:300}, 500)

NO

save one reload!

Donnerstag, 11. November 2010

Page 24: Best Practices - Mobile Developer Summit

Try it first (2)

• try the code in FireBug first

• learn more about your library

• play with the code

• find better ways?

Donnerstag, 11. November 2010

Page 25: Best Practices - Mobile Developer Summit

alert, console.log

• alert hell? use confirm!

• numbered console.log

Donnerstag, 11. November 2010

Page 26: Best Practices - Mobile Developer Summit

*.toString()

Donnerstag, 11. November 2010

Page 27: Best Practices - Mobile Developer Summit

debugger;

Donnerstag, 11. November 2010

Page 28: Best Practices - Mobile Developer Summit

Best Practices• test on the desktop

• test on the desktop

• test on the desktop

• try-catch a lot

• alert() IS your friend!

• simplify your CSS

Donnerstag, 11. November 2010

Page 29: Best Practices - Mobile Developer Summit

EventNinja

Donnerstag, 11. November 2010

Page 30: Best Practices - Mobile Developer Summit

Permissions

Donnerstag, 11. November 2010

Page 31: Best Practices - Mobile Developer Summit

Extend

Donnerstag, 11. November 2010

Page 32: Best Practices - Mobile Developer Summit

First Version

Donnerstag, 11. November 2010

Page 33: Best Practices - Mobile Developer Summit

Backend

Donnerstag, 11. November 2010

Page 34: Best Practices - Mobile Developer Summit

Object Browser

Donnerstag, 11. November 2010

Page 35: Best Practices - Mobile Developer Summit

Donnerstag, 11. November 2010

Page 36: Best Practices - Mobile Developer Summit

Donnerstag, 11. November 2010

Page 37: Best Practices - Mobile Developer Summit

Donnerstag, 11. November 2010

Page 38: Best Practices - Mobile Developer Summit

Open Source

•a developer must have

•developer.vodafone.comhttp://developer.vodafone.com/object-browser

•githubhttp://github.com/wolframkriesing/object-browser

Donnerstag, 11. November 2010

Page 39: Best Practices - Mobile Developer Summit

Other sources

• google your problem

• talk to a colleague

• sleep over it

Donnerstag, 11. November 2010

Page 40: Best Practices - Mobile Developer Summit

Wolfram Kriesing

http://apparat.io

http://embedjs.org

Thank you

Donnerstag, 11. November 2010