SlideShare a Scribd company logo
Fake It ‘til
You Make It
creating mobile apps that
feel like native apps
Fake It ‘til
You Make It
creating mobile apps that
feel like native apps
What I won’t be
talking about.
Who cares about
feature phones?
Fake it 'til you make it
Fake it 'til you make it
75% developing for
 iOS and Android
Fake it 'til you make it
Mobile Safari
Mobile Safari
 Local Storage
Mobile Safari
 Local Storage
 CSS3 features like transforms, transitions and
 animations
Mobile Safari
 Local Storage
 CSS3 features like transforms, transitions and
 animations
 Geolocation
Mobile Safari
 Local Storage
 CSS3 features like transforms, transitions and
 animations
 Geolocation
 HTML5 forms support for search, number and
 email field types.
Mobile Safari
 Local Storage
 CSS3 features like transforms, transitions and
 animations
 Geolocation
 HTML5 forms support for search, number and
 email field types.
 SVG on the iPhone but not on Android or webOS
Mobile Safari
 Local Storage
 CSS3 features like transforms, transitions and
 animations
 Geolocation
 HTML5 forms support for search, number and
 email field types.
 SVG on the iPhone but not on Android or webOS
 Access to some hardware acceleration
Why Web over Native?
Why Web over Native?
 don’t need access to device APIs
Why Web over Native?
 don’t need access to device APIs
  most apps don’t
Why Web over Native?
 don’t need access to device APIs
  most apps don’t
 need quick iteration without app store approval
 process
Could be a Web App
 Calculators (CalcBot)
 Twitter
 Things.app
 Epicurious
 Weather Apps
 UI Sketcher
37Signals: Chalk
37Signals: Chalk
http://chalk.37signals.com/
Could be a Web App
 Words With Friends/Scrabble
 Angry Birds
 Canabalt
 Bejeweled
 Ramp Champ
ConvertBot
Demo at
http://snook.ca/testing/convertbot/
Detecting within Browser
if(window.navigator.standalone)
{


//
run
code
in
“app”
mode
}
else
{


//
run
code
in
mobile
safari
mode
}
Home Screen Icon
<link
rel="apple‐touch‐icon"
href="images/
icon.png">
<link
rel="apple‐touch‐icon"
sizes="72x72"

href="touch‐icon‐ipad.png">
<link
rel="apple‐touch‐icon"
sizes="114x114"

href="touch‐icon‐iphone4.png">


rel="apple‐touch‐icon‐precomposed"
Start-up Image
<link
rel="apple‐touch‐startup‐image"
href="/
startup.png">
Start-up Image
 No apparent support for horizontal image
 When loading in landscape, the status bar
 creates a gap to one edge of the loading screen.
Going “Full screen”
<meta
name="apple‐mobile‐web‐app‐capable"

content="yes">
Status Bar
<meta
name="apple‐mobile‐web‐app‐status‐bar‐
style"
content="black">


default
black‐translucent
Viewport
<meta
name="viewport"
content="width=device‐
width">
<meta
name="viewport"
content="width=590">
<meta
name="viewport"
content="initial‐scale=

1.0">
<meta
name="viewport"
content="initial‐scale=

2.3,
user‐scalable=no">
Don’t Need a Framework!
Don’t Need a Framework!
 DOM APIs in newer browsers quite capable
Don’t Need a Framework!
 DOM APIs in newer browsers quite capable
 ConvertBot demo is 9k
Don’t Need a Framework!
 DOM APIs in newer browsers quite capable
 ConvertBot demo is 9k
  uncompressed.
Don’t Need a Framework!
 DOM APIs in newer browsers quite capable
 ConvertBot demo is 9k
  uncompressed.
  ungzipped.
Don’t Need a Framework!
 DOM APIs in newer browsers quite capable
 ConvertBot demo is 9k
  uncompressed.
  ungzipped.
  including CSS.
Don’t Need a Framework!
 DOM APIs in newer browsers quite capable
 ConvertBot demo is 9k
  uncompressed.
  ungzipped.
  including CSS.
  including JavaScript.
HTML Prototypes
HTMLElement.prototype.__defineSetter__("ontap
",
function(func){

});


document.getElementById('keypad').ontap
=

function(){



alert('just
the
keypad');
};
HTML Prototypes
HTMLElement.prototype.switchClass
=

function(fromClass,
toClass){


if(this.className
==
fromClass)
{






this.className
=
toClass;


}
else
{






this.className
=
fromClass;


}
 

}


document.getElementById('spinner‐
shell').switchClass('collapsed',
'expanded');
querySelector(All)
document.querySelector('.active');
//
one
el
document.querySelectorAll('.active');
//
all
But I WANT jQUERY!
function
$(selector){


return
document.querySelector(selector);
}
Looping
[3,2,1].forEach(function(itm,
idx){
 

console.log(itm,
idx);
//
3,0
|
2,1
|
1,2
})
Demo at
http://snook.ca/testing/convertbot/demo/
Use CSS for UI
#units
div:nth‐child(2)
{
‐webkit‐transform:rotate(45deg);
}
#units
div:nth‐child(3)
{
‐webkit‐transform:rotate(90deg);
}
#units
div:nth‐child(4)
{
‐webkit‐transform:rotate(135deg);
}
#units
div:nth‐child(5)
{
‐webkit‐transform:rotate(180deg);
}
#units
div:nth‐child(6)
{
‐webkit‐transform:rotate(225deg);
}
#units
div:nth‐child(7)
{
‐webkit‐transform:rotate(270deg);
}
#units
div:nth‐child(8)
{
‐webkit‐transform:rotate(315deg);
}
Use Transitions
‐webkit‐transition‐property:
‐webkit‐transform;

‐webkit‐transition‐duration:
.5s;


el.style.webkitTransform
=
'rotate('+pos+'deg)';
Webkit Animations
@‐webkit‐keyframes
{


0%
{
background‐position‐y:
0;
}


100%
{
background‐position‐y:
‐100%;
}
}


body
{


background‐image:url("canvas‐crumpled.jpeg");


‐webkit‐animation:
bg
3s
linear
infinite;
}
Touch vs Click
 Using touch events can make the app feel faster
 than click events.
 You can customize tap hightlight colour
Touch vs Click
‐webkit‐tap‐highlight‐color:rgba(200,0,0,0.4);
Input Features
<input
autocorrect="on">
<!‐‐
or
“off”
‐‐>
<input
placeholder="Example
Text">
<input
type="email">
<input
type="url">
<input
type="number">
<input
type="search">
Fake it 'til you make it
Locking Orientation
window.addEventListener('orientationchange',
function(){


if(window.orientation
==
‐90)
{




document.getElementById('orient').className
=
'orientright';


}


if(window.orientation
==
90)
{




document.getElementById('orient').className
=
'orientleft';


}


if(window.orientation
==
0)
{




document.getElementById('orient').className
=
'';


}
},
true);
Locking Orientation
.orientleft
#shell
{

‐webkit‐transform:
rotate(‐90deg);


‐webkit‐transform‐origin:160px
160px;

}


.orientright
#shell
{


‐webkit‐transform:
rotate(90deg);


‐webkit‐transform‐origin:230px
230px;

}



Locking Orientation
Performance
 Use CSS instead of JavaScript for Animations
  use CSS Transitions
  use CSS Animations
  use 2D and 3D transforms to force hardware
  acceleration
Hardware Acceleration
 2D and 3D transforms may be hardware
 accelerated
 use translateX/Y instead of top/left
 use rotateX(0) to push items with heavy CSS to
 use hardware acceleration
   (it’s like IE’s zoom:1 to force hasLayout)
Wait, what about Android
       and webOS?
Testing Environments
Testing Environments
 Android emulator is slow
Testing Environments
 Android emulator is slow
 webOS runs on Virtual Box
Testing Environments
 Android emulator is slow
 webOS runs on Virtual Box
Testing Environments
 Android emulator is slow
 webOS runs on Virtual Box


 Best to test on device
Testing Environments
 Android emulator is slow
 webOS runs on Virtual Box


 Best to test on device
 For multi-touch testing, must do on the device.
Testing Environments
 Android emulator is slow
 webOS runs on Virtual Box


 Best to test on device
 For multi-touch testing, must do on the device.
   pinch/zoom, rotate possible in iOS simulator
webOS 2.1
 No support for touch events
 has “2-finger” gesture support such as pinch/
 zoom
 rendering issues
Fake it 'til you make it
Mobile Web Frameworks
Mobile Web Frameworks
 jQTouch
 jQuery Mobile
 Sencha Touch
jQTouch
 Targetted for iOS
 Makes web app feel like native app with controls
 and list views
 http://jqtouch.com/
The Two Hour App
 Frameworks allow for rapid development
Demo at
http://pushups.snook.ca/
Local Storage
JSON.parse(localStorage.getItem('pdata'));
localStorage.setItem('pdata',

JSON.stringify(items));
jQuery Mobile
 Designed for iPhone, Android, webOS
  plus bada, Meego, Windows Mobile and more
 Includes touch and gesture support
 http://jquerymobile.com/
Sencha Touch
 Designed for iPhone and Android
 Includes enhanced touch events
 Allows for rapid development
 http://www.sencha.com/products/touch/
Going Native
Why Native over Web?
 Access to native hardware and other applications
 Camera, Address Book, Filesystem
 Streamlined Revenue Process
Meet in the middle
 Many apps take advantage of native WebView to
 load application components from remote server
  allows for iteration of some app components
  without requiring complete approval process
  from app store
PhoneGap and Titanium
 Titanium Mobile targets iPhone and Android
 PhoneGap targets iPhone, Android, Palm,
 Symbian and Blackberry.
 http://www.appcelerator.com/
 http://www.phonegap.com/
“I really like my work and
     I try really hard.”
@snookca
http://snook.ca

More Related Content

What's hot (20)

クロージャデザインパターン
クロージャデザインパターンクロージャデザインパターン
クロージャデザインパターン
Moriharu Ohzu
 
さくらのVPS で IPv4 over IPv6ルータの構築
さくらのVPS で IPv4 over IPv6ルータの構築さくらのVPS で IPv4 over IPv6ルータの構築
さくらのVPS で IPv4 over IPv6ルータの構築
Tomocha Potter
 
リアルタイムサーバー 〜Erlang/OTPで作るPubSubサーバー〜
リアルタイムサーバー 〜Erlang/OTPで作るPubSubサーバー〜 リアルタイムサーバー 〜Erlang/OTPで作るPubSubサーバー〜
リアルタイムサーバー 〜Erlang/OTPで作るPubSubサーバー〜
Yugo Shimizu
 
ゲームAIの基礎と事例
ゲームAIの基礎と事例ゲームAIの基礎と事例
ゲームAIの基礎と事例
Tomoaki TSUCHIE
 
Samba4を「ふつうに」使おう!
Samba4を「ふつうに」使おう!Samba4を「ふつうに」使おう!
Samba4を「ふつうに」使おう!
基信 高橋
 
MAP 実装してみた
MAP 実装してみたMAP 実装してみた
MAP 実装してみた
Masakazu Asama
 
YJTC19 B-6 Yahoo! JAPANの巨大インフラの運用と展望 #yjtc
YJTC19 B-6 Yahoo! JAPANの巨大インフラの運用と展望 #yjtcYJTC19 B-6 Yahoo! JAPANの巨大インフラの運用と展望 #yjtc
YJTC19 B-6 Yahoo! JAPANの巨大インフラの運用と展望 #yjtc
Yahoo!デベロッパーネットワーク
 
【CEDEC2018】Scriptable Render Pipelineを使ってみよう
【CEDEC2018】Scriptable Render Pipelineを使ってみよう【CEDEC2018】Scriptable Render Pipelineを使ってみよう
【CEDEC2018】Scriptable Render Pipelineを使ってみよう
Unity Technologies Japan K.K.
 
静的解析を使った開発ツールの開発
静的解析を使った開発ツールの開発静的解析を使った開発ツールの開発
静的解析を使った開発ツールの開発
Takuya Ueda
 
Apache Arrow - データ処理ツールの次世代プラットフォーム
Apache Arrow - データ処理ツールの次世代プラットフォームApache Arrow - データ処理ツールの次世代プラットフォーム
Apache Arrow - データ処理ツールの次世代プラットフォーム
Kouhei Sutou
 
「ネットワーク超入門 IPsec VPN編」
「ネットワーク超入門 IPsec VPN編」「ネットワーク超入門 IPsec VPN編」
「ネットワーク超入門 IPsec VPN編」
富士通クラウドテクノロジーズ株式会社
 
Logstashを愛して5年、370ページを超えるガチ本を書いてしまった男の話.
Logstashを愛して5年、370ページを超えるガチ本を書いてしまった男の話.Logstashを愛して5年、370ページを超えるガチ本を書いてしまった男の話.
Logstashを愛して5年、370ページを超えるガチ本を書いてしまった男の話.
Hibino Hisashi
 
すごいConstたのしく使おう!
すごいConstたのしく使おう!すごいConstたのしく使おう!
すごいConstたのしく使おう!
Akihiro Nishimura
 
CSS3 Layout
CSS3 LayoutCSS3 Layout
CSS3 Layout
Zoe Gillenwater
 
「Diameter勉強会 3」講義用スライド配布用 20141020
「Diameter勉強会 3」講義用スライド配布用 20141020「Diameter勉強会 3」講義用スライド配布用 20141020
「Diameter勉強会 3」講義用スライド配布用 20141020
マジセミ by (株)オープンソース活用研究所
 
go + swaggerでAPIサーバーを作ってみる
go + swaggerでAPIサーバーを作ってみるgo + swaggerでAPIサーバーを作ってみる
go + swaggerでAPIサーバーを作ってみる
虎の穴 開発室
 
Goss入門
Goss入門Goss入門
Goss入門
ShuyaMotouchi1
 
(책 소개) 가상 면접 사례로 배우는 대규모 시스템 설계 기초
(책 소개) 가상 면접 사례로 배우는 대규모 시스템 설계 기초(책 소개) 가상 면접 사례로 배우는 대규모 시스템 설계 기초
(책 소개) 가상 면접 사례로 배우는 대규모 시스템 설계 기초
Jay Park
 
Mixed Reality Toolkit 3 のチュートリアル「Zappy’s Playground」の紹介
Mixed Reality Toolkit 3 のチュートリアル「Zappy’s Playground」の紹介Mixed Reality Toolkit 3 のチュートリアル「Zappy’s Playground」の紹介
Mixed Reality Toolkit 3 のチュートリアル「Zappy’s Playground」の紹介
Takahiro Miyaura
 
ネットワーク機器のAPIあれこれ入門 (NetOpsCoding#2)
ネットワーク機器のAPIあれこれ入門(NetOpsCoding#2)ネットワーク機器のAPIあれこれ入門(NetOpsCoding#2)
ネットワーク機器のAPIあれこれ入門 (NetOpsCoding#2)
Kentaro Ebisawa
 
クロージャデザインパターン
クロージャデザインパターンクロージャデザインパターン
クロージャデザインパターン
Moriharu Ohzu
 
さくらのVPS で IPv4 over IPv6ルータの構築
さくらのVPS で IPv4 over IPv6ルータの構築さくらのVPS で IPv4 over IPv6ルータの構築
さくらのVPS で IPv4 over IPv6ルータの構築
Tomocha Potter
 
リアルタイムサーバー 〜Erlang/OTPで作るPubSubサーバー〜
リアルタイムサーバー 〜Erlang/OTPで作るPubSubサーバー〜 リアルタイムサーバー 〜Erlang/OTPで作るPubSubサーバー〜
リアルタイムサーバー 〜Erlang/OTPで作るPubSubサーバー〜
Yugo Shimizu
 
ゲームAIの基礎と事例
ゲームAIの基礎と事例ゲームAIの基礎と事例
ゲームAIの基礎と事例
Tomoaki TSUCHIE
 
Samba4を「ふつうに」使おう!
Samba4を「ふつうに」使おう!Samba4を「ふつうに」使おう!
Samba4を「ふつうに」使おう!
基信 高橋
 
MAP 実装してみた
MAP 実装してみたMAP 実装してみた
MAP 実装してみた
Masakazu Asama
 
【CEDEC2018】Scriptable Render Pipelineを使ってみよう
【CEDEC2018】Scriptable Render Pipelineを使ってみよう【CEDEC2018】Scriptable Render Pipelineを使ってみよう
【CEDEC2018】Scriptable Render Pipelineを使ってみよう
Unity Technologies Japan K.K.
 
静的解析を使った開発ツールの開発
静的解析を使った開発ツールの開発静的解析を使った開発ツールの開発
静的解析を使った開発ツールの開発
Takuya Ueda
 
Apache Arrow - データ処理ツールの次世代プラットフォーム
Apache Arrow - データ処理ツールの次世代プラットフォームApache Arrow - データ処理ツールの次世代プラットフォーム
Apache Arrow - データ処理ツールの次世代プラットフォーム
Kouhei Sutou
 
Logstashを愛して5年、370ページを超えるガチ本を書いてしまった男の話.
Logstashを愛して5年、370ページを超えるガチ本を書いてしまった男の話.Logstashを愛して5年、370ページを超えるガチ本を書いてしまった男の話.
Logstashを愛して5年、370ページを超えるガチ本を書いてしまった男の話.
Hibino Hisashi
 
すごいConstたのしく使おう!
すごいConstたのしく使おう!すごいConstたのしく使おう!
すごいConstたのしく使おう!
Akihiro Nishimura
 
go + swaggerでAPIサーバーを作ってみる
go + swaggerでAPIサーバーを作ってみるgo + swaggerでAPIサーバーを作ってみる
go + swaggerでAPIサーバーを作ってみる
虎の穴 開発室
 
(책 소개) 가상 면접 사례로 배우는 대규모 시스템 설계 기초
(책 소개) 가상 면접 사례로 배우는 대규모 시스템 설계 기초(책 소개) 가상 면접 사례로 배우는 대규모 시스템 설계 기초
(책 소개) 가상 면접 사례로 배우는 대규모 시스템 설계 기초
Jay Park
 
Mixed Reality Toolkit 3 のチュートリアル「Zappy’s Playground」の紹介
Mixed Reality Toolkit 3 のチュートリアル「Zappy’s Playground」の紹介Mixed Reality Toolkit 3 のチュートリアル「Zappy’s Playground」の紹介
Mixed Reality Toolkit 3 のチュートリアル「Zappy’s Playground」の紹介
Takahiro Miyaura
 
ネットワーク機器のAPIあれこれ入門 (NetOpsCoding#2)
ネットワーク機器のAPIあれこれ入門(NetOpsCoding#2)ネットワーク機器のAPIあれこれ入門(NetOpsCoding#2)
ネットワーク機器のAPIあれこれ入門 (NetOpsCoding#2)
Kentaro Ebisawa
 

Viewers also liked (20)

Rating Butler
Rating ButlerRating Butler
Rating Butler
Tommy Chan
 
Responsive Images and Video
Responsive Images and VideoResponsive Images and Video
Responsive Images and Video
Jason Grigsby
 
Romania Timisoara
Romania   TimisoaraRomania   Timisoara
Romania Timisoara
lumik
 
DeustoSTART: de la teoría a la práctica. Cómo ayudar a la persona emprendedor...
DeustoSTART: de la teoría a la práctica. Cómo ayudar a la persona emprendedor...DeustoSTART: de la teoría a la práctica. Cómo ayudar a la persona emprendedor...
DeustoSTART: de la teoría a la práctica. Cómo ayudar a la persona emprendedor...
Garazi_Az
 
Populis - NOAH13 London
Populis - NOAH13 LondonPopulis - NOAH13 London
Populis - NOAH13 London
NOAH Advisors
 
Estetica
EsteticaEstetica
Estetica
stylework
 
Open Source Everything manifesto @ Liberation Technology NYC
Open Source Everything manifesto @ Liberation Technology NYCOpen Source Everything manifesto @ Liberation Technology NYC
Open Source Everything manifesto @ Liberation Technology NYC
Robert David Steele Vivas
 
eFaber en 5 minutos
eFaber en 5 minutoseFaber en 5 minutos
eFaber en 5 minutos
Svet Ivantchev
 
Igualdad
Igualdad Igualdad
Igualdad
Daniela Arboleda
 
EXCON 2-6.10.2012 Fira a Perú
EXCON 2-6.10.2012 Fira a PerúEXCON 2-6.10.2012 Fira a Perú
EXCON 2-6.10.2012 Fira a Perú
coacnet
 
El Proyecto Matriz #80. ECHELON. FELIZ 1984
El Proyecto Matriz #80. ECHELON. FELIZ 1984El Proyecto Matriz #80. ECHELON. FELIZ 1984
El Proyecto Matriz #80. ECHELON. FELIZ 1984
Proyecto Matriz
 
Industria contenidos digitales. Crowdsourcing. SELA 2012
Industria contenidos digitales. Crowdsourcing. SELA 2012Industria contenidos digitales. Crowdsourcing. SELA 2012
Industria contenidos digitales. Crowdsourcing. SELA 2012
Sybil Caballero
 
Turismo MU Iñaki Lakarra Reputacion Online Como Innovacion Turismo
Turismo MU Iñaki Lakarra Reputacion Online Como Innovacion TurismoTurismo MU Iñaki Lakarra Reputacion Online Como Innovacion Turismo
Turismo MU Iñaki Lakarra Reputacion Online Como Innovacion Turismo
Iñaki Lakarra
 
Portafolio de evaluacion (lorenia cantu)
Portafolio de evaluacion (lorenia cantu)Portafolio de evaluacion (lorenia cantu)
Portafolio de evaluacion (lorenia cantu)
Lorenia Cantu
 
0191_MadisonNeighbors_OCT16
0191_MadisonNeighbors_OCT160191_MadisonNeighbors_OCT16
0191_MadisonNeighbors_OCT16
Briana Benn-Mirandi
 
Televisión de alta definición
Televisión de alta definiciónTelevisión de alta definición
Televisión de alta definición
Yesica Ferro
 
Johana llorente
Johana llorenteJohana llorente
Johana llorente
johana llorente blanco
 
Hayedo de Montejo de la Sierra
Hayedo de Montejo de la SierraHayedo de Montejo de la Sierra
Hayedo de Montejo de la Sierra
qomolangmanu
 
Liquidity planner mundo sap
Liquidity planner mundo sapLiquidity planner mundo sap
Liquidity planner mundo sap
Iván Cosco Ashtu
 
Responsive Images and Video
Responsive Images and VideoResponsive Images and Video
Responsive Images and Video
Jason Grigsby
 
Romania Timisoara
Romania   TimisoaraRomania   Timisoara
Romania Timisoara
lumik
 
DeustoSTART: de la teoría a la práctica. Cómo ayudar a la persona emprendedor...
DeustoSTART: de la teoría a la práctica. Cómo ayudar a la persona emprendedor...DeustoSTART: de la teoría a la práctica. Cómo ayudar a la persona emprendedor...
DeustoSTART: de la teoría a la práctica. Cómo ayudar a la persona emprendedor...
Garazi_Az
 
Populis - NOAH13 London
Populis - NOAH13 LondonPopulis - NOAH13 London
Populis - NOAH13 London
NOAH Advisors
 
Open Source Everything manifesto @ Liberation Technology NYC
Open Source Everything manifesto @ Liberation Technology NYCOpen Source Everything manifesto @ Liberation Technology NYC
Open Source Everything manifesto @ Liberation Technology NYC
Robert David Steele Vivas
 
EXCON 2-6.10.2012 Fira a Perú
EXCON 2-6.10.2012 Fira a PerúEXCON 2-6.10.2012 Fira a Perú
EXCON 2-6.10.2012 Fira a Perú
coacnet
 
El Proyecto Matriz #80. ECHELON. FELIZ 1984
El Proyecto Matriz #80. ECHELON. FELIZ 1984El Proyecto Matriz #80. ECHELON. FELIZ 1984
El Proyecto Matriz #80. ECHELON. FELIZ 1984
Proyecto Matriz
 
Industria contenidos digitales. Crowdsourcing. SELA 2012
Industria contenidos digitales. Crowdsourcing. SELA 2012Industria contenidos digitales. Crowdsourcing. SELA 2012
Industria contenidos digitales. Crowdsourcing. SELA 2012
Sybil Caballero
 
Turismo MU Iñaki Lakarra Reputacion Online Como Innovacion Turismo
Turismo MU Iñaki Lakarra Reputacion Online Como Innovacion TurismoTurismo MU Iñaki Lakarra Reputacion Online Como Innovacion Turismo
Turismo MU Iñaki Lakarra Reputacion Online Como Innovacion Turismo
Iñaki Lakarra
 
Portafolio de evaluacion (lorenia cantu)
Portafolio de evaluacion (lorenia cantu)Portafolio de evaluacion (lorenia cantu)
Portafolio de evaluacion (lorenia cantu)
Lorenia Cantu
 
Televisión de alta definición
Televisión de alta definiciónTelevisión de alta definición
Televisión de alta definición
Yesica Ferro
 
Hayedo de Montejo de la Sierra
Hayedo de Montejo de la SierraHayedo de Montejo de la Sierra
Hayedo de Montejo de la Sierra
qomolangmanu
 

Similar to Fake it 'til you make it (20)

Mobile Java with GWT: Still "Write Once, Run Everywhere"
Mobile Java with GWT: Still "Write Once, Run Everywhere"Mobile Java with GWT: Still "Write Once, Run Everywhere"
Mobile Java with GWT: Still "Write Once, Run Everywhere"
Alex Theedom
 
Web app and more
Web app and moreWeb app and more
Web app and more
faming su
 
Web Apps and more
Web Apps and moreWeb Apps and more
Web Apps and more
Yan Shi
 
Web app
Web appWeb app
Web app
조 용구
 
Multi screen HTML5
Multi screen HTML5Multi screen HTML5
Multi screen HTML5
Ron Reiter
 
Web app
Web appWeb app
Web app
조 용구
 
Mobile Apps with PhoneGap and jQuery Mobile
Mobile Apps with PhoneGap and jQuery MobileMobile Apps with PhoneGap and jQuery Mobile
Mobile Apps with PhoneGap and jQuery Mobile
Terry Ryan
 
Html5 on Mobile(For Developer)
Html5 on Mobile(For Developer)Html5 on Mobile(For Developer)
Html5 on Mobile(For Developer)
Adam Lu
 
Responsive web design & mobile web development - a technical and business app...
Responsive web design & mobile web development - a technical and business app...Responsive web design & mobile web development - a technical and business app...
Responsive web design & mobile web development - a technical and business app...
Atos_Worldline
 
Skill Session - Web Multi Device
Skill Session - Web Multi DeviceSkill Session - Web Multi Device
Skill Session - Web Multi Device
filirom1
 
Creating Rajanikant Powered Site
Creating Rajanikant Powered SiteCreating Rajanikant Powered Site
Creating Rajanikant Powered Site
markandey
 
Dreamweaver CS6, jQuery, PhoneGap, mobile design
Dreamweaver CS6, jQuery, PhoneGap, mobile designDreamweaver CS6, jQuery, PhoneGap, mobile design
Dreamweaver CS6, jQuery, PhoneGap, mobile design
Dee Sadler
 
Adobe & HTML5
Adobe & HTML5Adobe & HTML5
Adobe & HTML5
Terry Ryan
 
Mobile App Development
Mobile App DevelopmentMobile App Development
Mobile App Development
Chris Morrell
 
Intro to PhoneGap and PhoneGap Build
Intro to PhoneGap and PhoneGap BuildIntro to PhoneGap and PhoneGap Build
Intro to PhoneGap and PhoneGap Build
Chris Griffith
 
phonegap with angular js for freshers
phonegap with angular js for freshers    phonegap with angular js for freshers
phonegap with angular js for freshers
dssprakash
 
Mobile for web developers
Mobile for web developersMobile for web developers
Mobile for web developers
Jon Arne Sæterås
 
Plattformübergreifende App-Entwicklung (ein Vergleich) - MobileTechCon 2010
Plattformübergreifende App-Entwicklung (ein Vergleich) - MobileTechCon 2010Plattformübergreifende App-Entwicklung (ein Vergleich) - MobileTechCon 2010
Plattformübergreifende App-Entwicklung (ein Vergleich) - MobileTechCon 2010
Heiko Behrens
 
HTML5 on Mobile
HTML5 on MobileHTML5 on Mobile
HTML5 on Mobile
Adam Lu
 
Building a Simple Mobile-optimized Web App Using the jQuery Mobile Framework
Building a Simple Mobile-optimized Web App Using the jQuery Mobile FrameworkBuilding a Simple Mobile-optimized Web App Using the jQuery Mobile Framework
Building a Simple Mobile-optimized Web App Using the jQuery Mobile Framework
St. Petersburg College
 
Mobile Java with GWT: Still "Write Once, Run Everywhere"
Mobile Java with GWT: Still "Write Once, Run Everywhere"Mobile Java with GWT: Still "Write Once, Run Everywhere"
Mobile Java with GWT: Still "Write Once, Run Everywhere"
Alex Theedom
 
Web app and more
Web app and moreWeb app and more
Web app and more
faming su
 
Web Apps and more
Web Apps and moreWeb Apps and more
Web Apps and more
Yan Shi
 
Multi screen HTML5
Multi screen HTML5Multi screen HTML5
Multi screen HTML5
Ron Reiter
 
Mobile Apps with PhoneGap and jQuery Mobile
Mobile Apps with PhoneGap and jQuery MobileMobile Apps with PhoneGap and jQuery Mobile
Mobile Apps with PhoneGap and jQuery Mobile
Terry Ryan
 
Html5 on Mobile(For Developer)
Html5 on Mobile(For Developer)Html5 on Mobile(For Developer)
Html5 on Mobile(For Developer)
Adam Lu
 
Responsive web design & mobile web development - a technical and business app...
Responsive web design & mobile web development - a technical and business app...Responsive web design & mobile web development - a technical and business app...
Responsive web design & mobile web development - a technical and business app...
Atos_Worldline
 
Skill Session - Web Multi Device
Skill Session - Web Multi DeviceSkill Session - Web Multi Device
Skill Session - Web Multi Device
filirom1
 
Creating Rajanikant Powered Site
Creating Rajanikant Powered SiteCreating Rajanikant Powered Site
Creating Rajanikant Powered Site
markandey
 
Dreamweaver CS6, jQuery, PhoneGap, mobile design
Dreamweaver CS6, jQuery, PhoneGap, mobile designDreamweaver CS6, jQuery, PhoneGap, mobile design
Dreamweaver CS6, jQuery, PhoneGap, mobile design
Dee Sadler
 
Mobile App Development
Mobile App DevelopmentMobile App Development
Mobile App Development
Chris Morrell
 
Intro to PhoneGap and PhoneGap Build
Intro to PhoneGap and PhoneGap BuildIntro to PhoneGap and PhoneGap Build
Intro to PhoneGap and PhoneGap Build
Chris Griffith
 
phonegap with angular js for freshers
phonegap with angular js for freshers    phonegap with angular js for freshers
phonegap with angular js for freshers
dssprakash
 
Plattformübergreifende App-Entwicklung (ein Vergleich) - MobileTechCon 2010
Plattformübergreifende App-Entwicklung (ein Vergleich) - MobileTechCon 2010Plattformübergreifende App-Entwicklung (ein Vergleich) - MobileTechCon 2010
Plattformübergreifende App-Entwicklung (ein Vergleich) - MobileTechCon 2010
Heiko Behrens
 
HTML5 on Mobile
HTML5 on MobileHTML5 on Mobile
HTML5 on Mobile
Adam Lu
 
Building a Simple Mobile-optimized Web App Using the jQuery Mobile Framework
Building a Simple Mobile-optimized Web App Using the jQuery Mobile FrameworkBuilding a Simple Mobile-optimized Web App Using the jQuery Mobile Framework
Building a Simple Mobile-optimized Web App Using the jQuery Mobile Framework
St. Petersburg College
 

More from Jonathan Snook (9)

CSS3 Takes on the World
CSS3 Takes on the WorldCSS3 Takes on the World
CSS3 Takes on the World
Jonathan Snook
 
Mobile Web Development
Mobile Web DevelopmentMobile Web Development
Mobile Web Development
Jonathan Snook
 
Mix10 final snook_ds15
Mix10 final snook_ds15Mix10 final snook_ds15
Mix10 final snook_ds15
Jonathan Snook
 
The Type We Want (MIX10)
The Type We Want (MIX10)The Type We Want (MIX10)
The Type We Want (MIX10)
Jonathan Snook
 
Presentation on Presentations
Presentation on PresentationsPresentation on Presentations
Presentation on Presentations
Jonathan Snook
 
RIAs
RIAsRIAs
RIAs
Jonathan Snook
 
The Type We Want
The Type We WantThe Type We Want
The Type We Want
Jonathan Snook
 
Building On The Shoulders
Building On The ShouldersBuilding On The Shoulders
Building On The Shoulders
Jonathan Snook
 
Working With Ajax Frameworks
Working With Ajax FrameworksWorking With Ajax Frameworks
Working With Ajax Frameworks
Jonathan Snook
 

Recently uploaded (20)

Leveraging Knowledge Graphs for RAG: A Smarter Approach to Contextual AI Appl...
Leveraging Knowledge Graphs for RAG: A Smarter Approach to Contextual AI Appl...Leveraging Knowledge Graphs for RAG: A Smarter Approach to Contextual AI Appl...
Leveraging Knowledge Graphs for RAG: A Smarter Approach to Contextual AI Appl...
All Things Open
 
Windows Client Privilege Escalation-Shared.pptx
Windows Client Privilege Escalation-Shared.pptxWindows Client Privilege Escalation-Shared.pptx
Windows Client Privilege Escalation-Shared.pptx
Oddvar Moe
 
SAP Business Data Cloud: Was die neue SAP-Lösung für Unternehmen und ihre Dat...
SAP Business Data Cloud: Was die neue SAP-Lösung für Unternehmen und ihre Dat...SAP Business Data Cloud: Was die neue SAP-Lösung für Unternehmen und ihre Dat...
SAP Business Data Cloud: Was die neue SAP-Lösung für Unternehmen und ihre Dat...
IBsolution GmbH
 
Don't just talk to AI, do more with AI: how to improve productivity with AI a...
Don't just talk to AI, do more with AI: how to improve productivity with AI a...Don't just talk to AI, do more with AI: how to improve productivity with AI a...
Don't just talk to AI, do more with AI: how to improve productivity with AI a...
All Things Open
 
TrustArc Webinar: Strategies for Future-Proofing Privacy for Healthcare
TrustArc Webinar: Strategies for Future-Proofing Privacy for HealthcareTrustArc Webinar: Strategies for Future-Proofing Privacy for Healthcare
TrustArc Webinar: Strategies for Future-Proofing Privacy for Healthcare
TrustArc
 
How to Optimize Your AWS Environment for Improved Cloud Performance
How to Optimize Your AWS Environment for Improved Cloud PerformanceHow to Optimize Your AWS Environment for Improved Cloud Performance
How to Optimize Your AWS Environment for Improved Cloud Performance
ThousandEyes
 
UiPath Automation Developer Associate Training Series 2025 - Session 8
UiPath Automation Developer Associate Training Series 2025 - Session 8UiPath Automation Developer Associate Training Series 2025 - Session 8
UiPath Automation Developer Associate Training Series 2025 - Session 8
DianaGray10
 
Cloud Computing The Future of Technology
Cloud Computing The Future of TechnologyCloud Computing The Future of Technology
Cloud Computing The Future of Technology
joelmcapg
 
Artificial Intelligence Needs Community Intelligence - Sriram Raghavan, IBM R...
Artificial Intelligence Needs Community Intelligence - Sriram Raghavan, IBM R...Artificial Intelligence Needs Community Intelligence - Sriram Raghavan, IBM R...
Artificial Intelligence Needs Community Intelligence - Sriram Raghavan, IBM R...
All Things Open
 
Hands-on Tutorial: Building an Agent to Reason about Private Data with OpenAI...
Hands-on Tutorial: Building an Agent to Reason about Private Data with OpenAI...Hands-on Tutorial: Building an Agent to Reason about Private Data with OpenAI...
Hands-on Tutorial: Building an Agent to Reason about Private Data with OpenAI...
Zilliz
 
Fine-Tuning Large Language Models with Declarative ML Orchestration - Shivay ...
Fine-Tuning Large Language Models with Declarative ML Orchestration - Shivay ...Fine-Tuning Large Language Models with Declarative ML Orchestration - Shivay ...
Fine-Tuning Large Language Models with Declarative ML Orchestration - Shivay ...
All Things Open
 
RBM - PIXIAGE - AskPixi Page - Inpixon-MWC 2025.pptx
RBM - PIXIAGE - AskPixi Page - Inpixon-MWC 2025.pptxRBM - PIXIAGE - AskPixi Page - Inpixon-MWC 2025.pptx
RBM - PIXIAGE - AskPixi Page - Inpixon-MWC 2025.pptx
quinlan4
 
Open-Source GenAI vs. Enterprise GenAI: Navigating the Future of AI Innovatio...
Open-Source GenAI vs. Enterprise GenAI: Navigating the Future of AI Innovatio...Open-Source GenAI vs. Enterprise GenAI: Navigating the Future of AI Innovatio...
Open-Source GenAI vs. Enterprise GenAI: Navigating the Future of AI Innovatio...
All Things Open
 
DON’T PANIC: AI IS COMING – The Hitchhiker’s Guide to AI - Mark Hinkle, Perip...
DON’T PANIC: AI IS COMING – The Hitchhiker’s Guide to AI - Mark Hinkle, Perip...DON’T PANIC: AI IS COMING – The Hitchhiker’s Guide to AI - Mark Hinkle, Perip...
DON’T PANIC: AI IS COMING – The Hitchhiker’s Guide to AI - Mark Hinkle, Perip...
All Things Open
 
From native code gems to Java treasures with jextract
From native code gems to Java treasures with jextractFrom native code gems to Java treasures with jextract
From native code gems to Java treasures with jextract
Ana-Maria Mihalceanu
 
Delivering your own state-of-the-art enterprise LLMs
Delivering your own state-of-the-art enterprise LLMsDelivering your own state-of-the-art enterprise LLMs
Delivering your own state-of-the-art enterprise LLMs
AI Infra Forum
 
Revolutionizing GPU-as-a-Service for Maximum Efficiency
Revolutionizing GPU-as-a-Service for Maximum EfficiencyRevolutionizing GPU-as-a-Service for Maximum Efficiency
Revolutionizing GPU-as-a-Service for Maximum Efficiency
AI Infra Forum
 
The Best of Both Worlds: Hybrid Clustering with Delta Lake
The Best of Both Worlds: Hybrid Clustering with Delta LakeThe Best of Both Worlds: Hybrid Clustering with Delta Lake
The Best of Both Worlds: Hybrid Clustering with Delta Lake
carlyakerly1
 
AI Revolution unleashed with AI Foundry at AI Tour Brussels
AI Revolution unleashed with AI Foundry at AI Tour BrusselsAI Revolution unleashed with AI Foundry at AI Tour Brussels
AI Revolution unleashed with AI Foundry at AI Tour Brussels
Nathan Bijnens
 
UiPath Automation Developer Associate Training Series 2025 - Session 7
UiPath Automation Developer Associate Training Series 2025 - Session 7UiPath Automation Developer Associate Training Series 2025 - Session 7
UiPath Automation Developer Associate Training Series 2025 - Session 7
DianaGray10
 
Leveraging Knowledge Graphs for RAG: A Smarter Approach to Contextual AI Appl...
Leveraging Knowledge Graphs for RAG: A Smarter Approach to Contextual AI Appl...Leveraging Knowledge Graphs for RAG: A Smarter Approach to Contextual AI Appl...
Leveraging Knowledge Graphs for RAG: A Smarter Approach to Contextual AI Appl...
All Things Open
 
Windows Client Privilege Escalation-Shared.pptx
Windows Client Privilege Escalation-Shared.pptxWindows Client Privilege Escalation-Shared.pptx
Windows Client Privilege Escalation-Shared.pptx
Oddvar Moe
 
SAP Business Data Cloud: Was die neue SAP-Lösung für Unternehmen und ihre Dat...
SAP Business Data Cloud: Was die neue SAP-Lösung für Unternehmen und ihre Dat...SAP Business Data Cloud: Was die neue SAP-Lösung für Unternehmen und ihre Dat...
SAP Business Data Cloud: Was die neue SAP-Lösung für Unternehmen und ihre Dat...
IBsolution GmbH
 
Don't just talk to AI, do more with AI: how to improve productivity with AI a...
Don't just talk to AI, do more with AI: how to improve productivity with AI a...Don't just talk to AI, do more with AI: how to improve productivity with AI a...
Don't just talk to AI, do more with AI: how to improve productivity with AI a...
All Things Open
 
TrustArc Webinar: Strategies for Future-Proofing Privacy for Healthcare
TrustArc Webinar: Strategies for Future-Proofing Privacy for HealthcareTrustArc Webinar: Strategies for Future-Proofing Privacy for Healthcare
TrustArc Webinar: Strategies for Future-Proofing Privacy for Healthcare
TrustArc
 
How to Optimize Your AWS Environment for Improved Cloud Performance
How to Optimize Your AWS Environment for Improved Cloud PerformanceHow to Optimize Your AWS Environment for Improved Cloud Performance
How to Optimize Your AWS Environment for Improved Cloud Performance
ThousandEyes
 
UiPath Automation Developer Associate Training Series 2025 - Session 8
UiPath Automation Developer Associate Training Series 2025 - Session 8UiPath Automation Developer Associate Training Series 2025 - Session 8
UiPath Automation Developer Associate Training Series 2025 - Session 8
DianaGray10
 
Cloud Computing The Future of Technology
Cloud Computing The Future of TechnologyCloud Computing The Future of Technology
Cloud Computing The Future of Technology
joelmcapg
 
Artificial Intelligence Needs Community Intelligence - Sriram Raghavan, IBM R...
Artificial Intelligence Needs Community Intelligence - Sriram Raghavan, IBM R...Artificial Intelligence Needs Community Intelligence - Sriram Raghavan, IBM R...
Artificial Intelligence Needs Community Intelligence - Sriram Raghavan, IBM R...
All Things Open
 
Hands-on Tutorial: Building an Agent to Reason about Private Data with OpenAI...
Hands-on Tutorial: Building an Agent to Reason about Private Data with OpenAI...Hands-on Tutorial: Building an Agent to Reason about Private Data with OpenAI...
Hands-on Tutorial: Building an Agent to Reason about Private Data with OpenAI...
Zilliz
 
Fine-Tuning Large Language Models with Declarative ML Orchestration - Shivay ...
Fine-Tuning Large Language Models with Declarative ML Orchestration - Shivay ...Fine-Tuning Large Language Models with Declarative ML Orchestration - Shivay ...
Fine-Tuning Large Language Models with Declarative ML Orchestration - Shivay ...
All Things Open
 
RBM - PIXIAGE - AskPixi Page - Inpixon-MWC 2025.pptx
RBM - PIXIAGE - AskPixi Page - Inpixon-MWC 2025.pptxRBM - PIXIAGE - AskPixi Page - Inpixon-MWC 2025.pptx
RBM - PIXIAGE - AskPixi Page - Inpixon-MWC 2025.pptx
quinlan4
 
Open-Source GenAI vs. Enterprise GenAI: Navigating the Future of AI Innovatio...
Open-Source GenAI vs. Enterprise GenAI: Navigating the Future of AI Innovatio...Open-Source GenAI vs. Enterprise GenAI: Navigating the Future of AI Innovatio...
Open-Source GenAI vs. Enterprise GenAI: Navigating the Future of AI Innovatio...
All Things Open
 
DON’T PANIC: AI IS COMING – The Hitchhiker’s Guide to AI - Mark Hinkle, Perip...
DON’T PANIC: AI IS COMING – The Hitchhiker’s Guide to AI - Mark Hinkle, Perip...DON’T PANIC: AI IS COMING – The Hitchhiker’s Guide to AI - Mark Hinkle, Perip...
DON’T PANIC: AI IS COMING – The Hitchhiker’s Guide to AI - Mark Hinkle, Perip...
All Things Open
 
From native code gems to Java treasures with jextract
From native code gems to Java treasures with jextractFrom native code gems to Java treasures with jextract
From native code gems to Java treasures with jextract
Ana-Maria Mihalceanu
 
Delivering your own state-of-the-art enterprise LLMs
Delivering your own state-of-the-art enterprise LLMsDelivering your own state-of-the-art enterprise LLMs
Delivering your own state-of-the-art enterprise LLMs
AI Infra Forum
 
Revolutionizing GPU-as-a-Service for Maximum Efficiency
Revolutionizing GPU-as-a-Service for Maximum EfficiencyRevolutionizing GPU-as-a-Service for Maximum Efficiency
Revolutionizing GPU-as-a-Service for Maximum Efficiency
AI Infra Forum
 
The Best of Both Worlds: Hybrid Clustering with Delta Lake
The Best of Both Worlds: Hybrid Clustering with Delta LakeThe Best of Both Worlds: Hybrid Clustering with Delta Lake
The Best of Both Worlds: Hybrid Clustering with Delta Lake
carlyakerly1
 
AI Revolution unleashed with AI Foundry at AI Tour Brussels
AI Revolution unleashed with AI Foundry at AI Tour BrusselsAI Revolution unleashed with AI Foundry at AI Tour Brussels
AI Revolution unleashed with AI Foundry at AI Tour Brussels
Nathan Bijnens
 
UiPath Automation Developer Associate Training Series 2025 - Session 7
UiPath Automation Developer Associate Training Series 2025 - Session 7UiPath Automation Developer Associate Training Series 2025 - Session 7
UiPath Automation Developer Associate Training Series 2025 - Session 7
DianaGray10
 

Fake it 'til you make it

Editor's Notes