• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
The Mobile Development Landscape
 

The Mobile Development Landscape

on

  • 1,546 views

A talk I was asked to give on the various options for building mobile applications / getting content onto mobile devices....

A talk I was asked to give on the various options for building mobile applications / getting content onto mobile devices.

I chose to organize it as gradient surveying the spectrum from web to native, all the stuff in between. Unfortunately for native I've only had experience with iOS so I couldn't really speak towards the other platforms.

I do think that non native solutions can take care of 95% of the use cases, and this gap will only narrow as time goes on - I'm thinking back to early 2010 when cross platform SDKs like Appcelerator Titanium came onto the scene and how much has changed.

Statistics

Views

Total Views
1,546
Views on SlideShare
1,545
Embed Views
1

Actions

Likes
1
Downloads
28
Comments
0

1 Embed 1

https://twitter.com 1

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • There’s a whole gamut of different ways to put your “thing” onto someone’s mobile device. Continuum stretches from a plain website to fully native apps with lots in between With native I’ll focus on iOS since I only know that
  • A lot of sites have been redesigned to actually just work better on mobile It gets hard to maintain completely separate sites, especially if you’re trying to iterate or rip out and put in new features. This was the initial approach I took, ba big headache very quickly
  • Important distinction has to be made here – what’s the endgoal product functionality?
  • When a client is making an HTTP request, it sends metadata in the header, one of which is user-agent, indicating what type of browser it is. Differentiates both vendors and mobile/desktop You might have gone to a site on your phone and saw a popup “hey! Check our app in the appstore!” Well, this is how they do it
  • Flip a phone or tablet in landscape, lots of horizontal real estate so maybe you have a sidebar with navigation Then vertical, less horizontal real estate, maybe you want to cluster the navigation at the top
  • The point is that you can not only move things around, but apply all the other CSS properties (images, background, etc.) according to media queries
  • Fluid vs. Fixed: when you resize your browser you might have noticed that some site expand and collapse, others have this fixed width on a background, cuts off when you get too narrow In this case for > 980px when we’re talking about a desktop, we probably want to have a fixed width container centered (margin-left/right) in the middle of the page
  • Remember that mobile browsers need to look at pages that were designed for desktop Notice that if you go to some mobile websites you can’t zoom in and you can’t scroll right, or maybe scroll down – that’s because they’ve laid out the site to fit mobile devices and then set the viewport property in their HTML
  • Weinre is a Node.js application, you include some javascript from the server and point your phone to a website, then open a /client url on your desktop and you get to see what the phone sees. Cool stuff. Optimization around the HTTP request waterfall – all browsers have a cap on connections used to access resources (images, stylesheets, ajax calls) and this matters more on mobile
  • Your phone connects to the internet through many layers of indirection: cell tower, gateway, carrier internal routing, then out to internet Keeping the connection open (which drains battery) is an optimization I’m pretty sure a lot of realtime native apps (esp chat apps) use
  • The jQuery example is their “kitchen sink” – some frameworks will have “documentation for hackers” where they just expose a page with all the functionality for you to access
  • Things change so quickly in this space – Sencha Touch is commercially backed however (though it’s open source). ExtJS took the “ Mysql AB ” approach to open source It’s also different in that jQuery Mobile allows development pretty much the same as with jQuery on the desktop, plus the bindings Sencha is like Backbone.js – ExtJS had a structured all-JS dev framework too (some people like, some people hate, it’s all just a tool in the end) You’ll see Appcelerator Titanium is like this too
  • Concept of a webview: an instance of a browser spun up within a native app – more on the next slide
  • I polled game developer friends and this is the most popular way to do things at the moment
  • Joules for some of you – measure of energy, ability to produce one watt in a second. What’s a watt? The ability to expend a joule per second… So Joules = Amp hours * voltage  you’ll see a lot of batteries rated in Amperage-hours *caught up with a friend who’s a battery expert doing due diligence, I know nothing of the emerging battery techs
  • Bad British joke, “The old boy’s gone native!” We mentioned earlier that web views were slow a couple of years ago. Maybe we’ll have faster browser graphics (Google I/O in 2009 demo’d O3D in browser rendering of a rich 3D landscape)
  • Obviously this is a big topic, so I’m going to just go through an overview and give confusion points coming from other languages, esp scripting languages
  • You can imagine all the objects in memory as a tree
  • Foundation is the non-GUI base libraries that date back to the NEXT computer days (Next Step)– hence a lot of stuff begins with “NS”: NSString, NSDictionary, NSArrat

The Mobile Development Landscape The Mobile Development Landscape Presentation Transcript