SlideShare a Scribd company logo
Please enable JavaScript
                 to view this page properly




Saturday, May 14, 2011
Bruno Oliveira
                         @abstractj




             http://gitshelf.com



Saturday, May 14, 2011
Desenvolvimento
        Indolor com JQuery
              Mobile
Saturday, May 14, 2011
Obrigado!



Saturday, May 14, 2011
Mobilidade




Saturday, May 14, 2011
~ 205 M
                         de aparelhos celulares
                               ~ 85 M
                           de computadores
                               (teleco/sercomtel)




Saturday, May 14, 2011
Valor agregado



Saturday, May 14, 2011
Plataformas



Saturday, May 14, 2011
O cowboy!


               Java      Windows   Android   iOS
                ME        Mobile




Saturday, May 14, 2011
Java ME




                         JavaFX #FAIL


Saturday, May 14, 2011
Windows Mobile




Saturday, May 14, 2011
Saturday, May 14, 2011
Android




Saturday, May 14, 2011
DOX
                         Desenvolvimento
                            Orientado
                                a
                               XML
Saturday, May 14, 2011
iOS




Saturday, May 14, 2011
#comofaz?




                                     FAX?!

Saturday, May 14, 2011
Objective C




Saturday, May 14, 2011
Simples?!
#import <Foundation/Foundation.h>

int main(int argc, const char argv[])
{
! NSAutoreleasePool *anAutoreleasePool = [[NSAutoreleasePool alloc]
init];
!
! NSLog(@"Hello World");
!
! [anAutoreleasePool drain];
! return 0;
}




Saturday, May 14, 2011
Problemas?



Saturday, May 14, 2011
$$$$$$$$$$$$$$$$$$$$$$$$$$




Saturday, May 14, 2011
Saturday, May 14, 2011
Saturday, May 14, 2011
Entregar valor > preciosimo




Saturday, May 14, 2011
Wizards são tão
                            simples!


Saturday, May 14, 2011
As aparências
                           enganam!




Saturday, May 14, 2011
Alguém precisa pensar
            por você?


Saturday, May 14, 2011
Solução?!




Saturday, May 14, 2011
Pra que aplicações
                          nativas?


Saturday, May 14, 2011
Call me
                    JQuery   titanium
                    Rocks!      guy!




Saturday, May 14, 2011
O que todo celular
                          tem em comum?


Saturday, May 14, 2011
Browser



Saturday, May 14, 2011
Safari      Opera




              Android
                            Browser           BlackBerry




                         Palm      Symbian




Saturday, May 14, 2011
Saturday, May 14, 2011
JavaScript

Saturday, May 14, 2011
MVC



Saturday, May 14, 2011
MVC



Saturday, May 14, 2011
MVC



Saturday, May 14, 2011
Não seja cowboy!




Saturday, May 14, 2011
JQuery Mobile




Saturday, May 14, 2011
Desenvolvedores




                             29 devs JQuery
Saturday, May 14, 2011
Saturday, May 14, 2011
O que eu preciso?
                              JQuery 86 KB (minified)



                         JQuery Mobile JS 66 KB (minified)



                         JQuery Mobile CSS 45 KB (minified)



                                  Total = 197 KB




Saturday, May 14, 2011
Multiplataforma
                          Cross Device


Saturday, May 14, 2011
Estrutura básica
<!DOCTYPE html>
<meta charset="utf-8">
<head>
! <title>Brazil JS</title>
! <link rel="stylesheet" href="http://code.jquery.com/mobile/1.0a4.1/
jquery.mobile-1.0a4.1.min.css" />
! <script type="text/javascript" src="http://code.jquery.com/
jquery-1.5.min.js"></script>
! <script type="text/javascript" src="http://code.jquery.com/mobile/
1.0a4.1/jquery.mobile-1.0a4.1.min.js"></script>
! <script type="text/javascript" src="experiments/themeswitcher/
jquery.mobile.themeswitcher.js"></script>
</head>



Saturday, May 14, 2011
Estrutura básica
<!DOCTYPE html>
<meta charset="utf-8">
<head>
! <title>Brazil JS</title>
! <link rel="stylesheet" href="http://code.jquery.com/mobile/1.0a4.1/
jquery.mobile-1.0a4.1.min.css" />
! <script type="text/javascript" src="http://code.jquery.com/
jquery-1.5.min.js"></script>
! <script type="text/javascript" src="http://code.jquery.com/mobile/
1.0a4.1/jquery.mobile-1.0a4.1.min.js"></script>
! <script type="text/javascript" src="experiments/themeswitcher/
jquery.mobile.themeswitcher.js"></script>
</head>



Saturday, May 14, 2011
Estrutura básica
<!DOCTYPE html>
<meta charset="utf-8">
<head>
! <title>Brazil JS</title>
! <link rel="stylesheet" href="http://code.jquery.com/mobile/1.0a4.1/
jquery.mobile-1.0a4.1.min.css" />
! <script type="text/javascript" src="http://code.jquery.com/
jquery-1.5.min.js"></script>
! <script type="text/javascript" src="http://code.jquery.com/mobile/
1.0a4.1/jquery.mobile-1.0a4.1.min.js"></script>
! <script type="text/javascript" src="experiments/themeswitcher/
jquery.mobile.themeswitcher.js"></script>
</head>



Saturday, May 14, 2011
Estrutura básica
<!DOCTYPE html>
<meta charset="utf-8">
<head>
! <title>Brazil JS</title>
! <link rel="stylesheet" href="http://code.jquery.com/mobile/1.0a4.1/
jquery.mobile-1.0a4.1.min.css" />
! <script type="text/javascript" src="http://code.jquery.com/
jquery-1.5.min.js"></script>
! <script type="text/javascript" src="http://code.jquery.com/mobile/
1.0a4.1/jquery.mobile-1.0a4.1.min.js"></script>
! <script type="text/javascript" src="experiments/themeswitcher/
jquery.mobile.themeswitcher.js"></script>
</head>



Saturday, May 14, 2011
Saturday, May 14, 2011
Corpo da página




Saturday, May 14, 2011
Corpo da página

!   <body>
!   ! <div data-role="page" id="foo">
!   ! !
!   ! ! <div data-role="header">
!   ! ! ! <h1>Header</h1>
!   ! ! </div>
!   ! !
!   ! ! <div data-role="content">!
!   ! ! ! <p>Conteúdo</p>! !
!   ! ! </div>
!   ! !
!   ! ! <div data-role="footer">
!   ! ! ! <h4>Footer</h4>
!   ! ! </div>
!   ! </div>! !
!   </body>

Saturday, May 14, 2011
Corpo da página

!   <body>
!   ! <div data-role="page" id="foo">
!   ! !
!   ! ! <div data-role="header">
!   ! ! ! <h1>Header</h1>
!   ! ! </div>
!   ! !
!   ! ! <div data-role="content">!
!   ! ! ! <p>Conteúdo</p>! !
!   ! ! </div>
!   ! !
!   ! ! <div data-role="footer">
!   ! ! ! <h4>Footer</h4>
!   ! ! </div>
!   ! </div>! !
!   </body>

Saturday, May 14, 2011
Corpo da página

!   <body>
!   ! <div data-role="page" id="foo">
!   ! !
!   ! ! <div data-role="header">
!   ! ! ! <h1>Header</h1>
!   ! ! </div>
!   ! !
!   ! ! <div data-role="content">!
!   ! ! ! <p>Conteúdo</p>! !
!   ! ! </div>
!   ! !
!   ! ! <div data-role="footer">
!   ! ! ! <h4>Footer</h4>
!   ! ! </div>
!   ! </div>! !
!   </body>

Saturday, May 14, 2011
Corpo da página

!   <body>
!   ! <div data-role="page" id="foo">
!   ! !
!   ! ! <div data-role="header">
!   ! ! ! <h1>Header</h1>
!   ! ! </div>
!   ! !
!   ! ! <div data-role="content">!
!   ! ! ! <p>Conteúdo</p>! !
!   ! ! </div>
!   ! !
!   ! ! <div data-role="footer">
!   ! ! ! <h4>Footer</h4>
!   ! ! </div>
!   ! </div>! !
!   </body>

Saturday, May 14, 2011
Corpo da página

!   <body>
!   ! <div data-role="page" id="foo">
!   ! !
!   ! ! <div data-role="header">
!   ! ! ! <h1>Header</h1>
!   ! ! </div>
!   ! !
!   ! ! <div data-role="content">!
!   ! ! ! <p>Conteúdo</p>! !
!   ! ! </div>
!   ! !
!   ! ! <div data-role="footer">
!   ! ! ! <h4>Footer</h4>
!   ! ! </div>
!   ! </div>! !
!   </body>

Saturday, May 14, 2011
Touch Layout




Saturday, May 14, 2011
<!DOCTYPE html>
<meta charset="utf-8">
! <html>
! ! <head>
! ! ! <title>Brazil JS</title>
! ! ! <link ... />
! ! ! <script src="..."></script>
! ! </head>
! ! <body>
! ! ! <div data-role="header" data-theme="b">
! ! ! ! <h1>Sábado</h1>
! ! ! </div>
! ! ! <div data-role="page" id="listing">
! ! ! !
! ! ! ! <div data-role="content">
! ! ! ! ! <ol data-role="listview">
! ! ! ! ! ! <li>7h00! Credenciamento</li>
! ! ! ! ! ! <li>7h50! Abertura</li>
! ! ! ! ! ! <li>8h00! Keynote David Herman </li>
! ! ! ! ! ! <li>9h00! Keynote Marcelo Campos - Rocha Conhecendo o
Engine, o servidor Javascript do ERP da UNUM.</li>
! ! ! ! ! ! <li>10h00!Coffee Break</li>
! ! ! ! ! ! ! ! ....
! ! ! ! ! </ol>
! ! ! ! </div>
! ! ! </div>
Saturday, May 14, 2011
<!DOCTYPE html>
<meta charset="utf-8">
! <html>
! ! <head>
! ! ! <title>Brazil JS</title>
! ! ! <link ... />
! ! ! <script src="..."></script>
! ! </head>
! ! <body>
! ! ! <div data-role="header" data-theme="b">
! ! ! ! <h1>Sábado</h1>
! ! ! </div>
! ! ! <div data-role="page" id="listing">
! ! ! !
! ! ! ! <div data-role="content">
! ! ! ! ! <ol data-role="listview">
! ! ! ! ! ! <li>7h00! Credenciamento</li>
! ! ! ! ! ! <li>7h50! Abertura</li>
! ! ! ! ! ! <li>8h00! Keynote David Herman </li>
! ! ! ! ! ! <li>9h00! Keynote Marcelo Campos - Rocha Conhecendo o
Engine, o servidor Javascript do ERP da UNUM.</li>
! ! ! ! ! ! <li>10h00!Coffee Break</li>
! ! ! ! ! ! ! ! ....
! ! ! ! ! </ol>
! ! ! ! </div>
! ! ! </div>
Saturday, May 14, 2011
<!DOCTYPE html>
<meta charset="utf-8">
! <html>
! ! <head>
! ! ! <title>Brazil JS</title>
! ! ! <link ... />
! ! ! <script src="..."></script>
! ! </head>
! ! <body>
! ! ! <div data-role="header" data-theme="b">
! ! ! ! <h1>Sábado</h1>
! ! ! </div>
! ! ! <div data-role="page" id="listing">
! ! ! !
! ! ! ! <div data-role="content">
! ! ! ! ! <ol data-role="listview">
! ! ! ! ! ! <li>7h00! Credenciamento</li>
! ! ! ! ! ! <li>7h50! Abertura</li>
! ! ! ! ! ! <li>8h00! Keynote David Herman </li>
! ! ! ! ! ! <li>9h00! Keynote Marcelo Campos - Rocha Conhecendo o
Engine, o servidor Javascript do ERP da UNUM.</li>
! ! ! ! ! ! <li>10h00!Coffee Break</li>
! ! ! ! ! ! ! ! ....
! ! ! ! ! </ol>
! ! ! ! </div>
! ! ! </div>
Saturday, May 14, 2011
Forms




Saturday, May 14, 2011
!   !      !      !      <div data-role="content">
!   !      !      !      !
!   !      !      !      ! <form id="frmLogin">
!   !      !      !      ! ! <div data-role="fieldcontain">
!   !      !      !      ! ! ! <label for="email">
!   !      !      !      ! ! ! ! <em>* </em> Email: </label>
!   !      !      !      ! ! ! <input type="text" id="email"
!   !      !      !      ! ! ! name="email" class="required email" />
!   !      !      !      ! ! </div>
!   !      !      !      ! !
!   !      !      !      ! ! <div data-role="fieldcontain">
!   !      !      !      ! ! ! <label for="password">
!   !      !      !      ! ! ! ! <em>* </em>Senha: </label>
!   !      !      !      ! ! ! <input type="password" id="password"
!   !      !      !      ! ! ! name="password" class="required" />
!   !      !      !      ! ! </div>
!   !      !      !      ! !
!   !      !      !      ! ! <div class="ui-body ui-body-b">
!   !      !      !      ! ! ! <button class="btnLogin" type="submit"
!   !      !      !      ! ! ! ! data-theme="a">Login</button>
!   !      !      !      ! ! </div>
!   !      !      !      ! </form>
!   !      !      !      !
!   !      !      !      </div>

Saturday, May 14, 2011
!   !      !      !      <div data-role="content">
!   !      !      !      !
!   !      !      !      ! <form id="frmLogin">
!   !      !      !      ! ! <div data-role="fieldcontain">
!   !      !      !      ! ! ! <label for="email">
!   !      !      !      ! ! ! ! <em>* </em> Email: </label>
!   !      !      !      ! ! ! <input type="text" id="email"
!   !      !      !      ! ! ! name="email" class="required email" />
!   !      !      !      ! ! </div>
!   !      !      !      ! !
!   !      !      !      ! ! <div data-role="fieldcontain">
!   !      !      !      ! ! ! <label for="password">
!   !      !      !      ! ! ! ! <em>* </em>Senha: </label>
!   !      !      !      ! ! ! <input type="password" id="password"
!   !      !      !      ! ! ! name="password" class="required" />
!   !      !      !      ! ! </div>
!   !      !      !      ! !
!   !      !      !      ! ! <div class="ui-body ui-body-b">
!   !      !      !      ! ! ! <button class="btnLogin" type="submit"
!   !      !      !      ! ! ! ! data-theme="a">Login</button>
!   !      !      !      ! ! </div>
!   !      !      !      ! </form>
!   !      !      !      !
!   !      !      !      </div>

Saturday, May 14, 2011
!   !      !      !      <div data-role="content">
!   !      !      !      !
!   !      !      !      ! <form id="frmLogin">
!   !      !      !      ! ! <div data-role="fieldcontain">
!   !      !      !      ! ! ! <label for="email">
!   !      !      !      ! ! ! ! <em>* </em> Email: </label>
!   !      !      !      ! ! ! <input type="text" id="email"
!   !      !      !      ! ! ! name="email" class="required email" />
!   !      !      !      ! ! </div>
!   !      !      !      ! !
!   !      !      !      ! ! <div data-role="fieldcontain">
!   !      !      !      ! ! ! <label for="password">
!   !      !      !      ! ! ! ! <em>* </em>Senha: </label>
!   !      !      !      ! ! ! <input type="password" id="password"
!   !      !      !      ! ! ! name="password" class="required" />
!   !      !      !      ! ! </div>
!   !      !      !      ! !
!   !      !      !      ! ! <div class="ui-body ui-body-b">
!   !      !      !      ! ! ! <button class="btnLogin" type="submit"
!   !      !      !      ! ! ! ! data-theme="a">Login</button>
!   !      !      !      ! ! </div>
!   !      !      !      ! </form>
!   !      !      !      !
!   !      !      !      </div>

Saturday, May 14, 2011
Saturday, May 14, 2011
Validação




Saturday, May 14, 2011
Validação
                            $("#formLogin").validate({
!                          submitHandler: function(form) {
! !                           //Chamada pra alguma action
!                          }
                         });




Saturday, May 14, 2011
Sliders




Saturday, May 14, 2011
<div data-role="fieldcontain">
! <label for="slider2">Beer mode:</label>
!
! <select name="slider2" id="slider2" data-role="slider">
! ! <option value="off">Off</option>
! ! <option value="on">On</option>
! </select>
</div>

<div data-role="fieldcontain">
! <label for="search">Search beer:</label>
! <input type="search" name="search" id="search" value=""   />
</div>


<div data-role="fieldcontain">
! <label for="slider">Grau alcoólico:</label>
!
! <input type="range" name="slider" id="slider" value="0" min="0"
max="100" />
</div>



Saturday, May 14, 2011
<div data-role="fieldcontain">
! <label for="slider2">Beer mode:</label>
!
! <select name="slider2" id="slider2" data-role="slider">
! ! <option value="off">Off</option>
! ! <option value="on">On</option>
! </select>
</div>

<div data-role="fieldcontain">
! <label for="search">Search beer:</label>
! <input type="search" name="search" id="search" value=""   />
</div>


<div data-role="fieldcontain">
! <label for="slider">Grau alcoólico:</label>
!
! <input type="range" name="slider" id="slider" value="0" min="0"
max="100" />
</div>



Saturday, May 14, 2011
<div data-role="fieldcontain">
! <label for="slider2">Beer mode:</label>
!
! <select name="slider2" id="slider2" data-role="slider">
! ! <option value="off">Off</option>
! ! <option value="on">On</option>
! </select>
</div>

<div data-role="fieldcontain">
! <label for="search">Search beer:</label>
! <input type="search" name="search" id="search" value=""   />
</div>


<div data-role="fieldcontain">
! <label for="slider">Grau alcoólico:</label>
!
! <input type="range" name="slider" id="slider" value="0" min="0"
max="100" />
</div>



Saturday, May 14, 2011
Transição de
                            páginas
<div data-role="content">
! !         <a href="transition-success.html" data-role="button" data-
rel="dialog" data-transition="slide">slide</a>
</div>




Saturday, May 14, 2011
Saturday, May 14, 2011
slidedown               slideup   fade   flip   pop



Saturday, May 14, 2011
Thumbnails
<div data-role="content">
! <ul data-role="listview">
! ! <li><a href="index.html">
! ! ! <img src="images/album-bb.jpg" />
! ! ! <h3>Broken Bells</h3>
! ! ! <p>Broken Bells</p>
! ! </a></li>
! </ul>
</div>



Saturday, May 14, 2011
Thumbnails
<div data-role="content">
! <ul data-role="listview">
! ! <li><a href="index.html">
! ! ! <img src="images/album-bb.jpg" />
! ! ! <h3>Broken Bells</h3>
! ! ! <p>Broken Bells</p>
! ! </a></li>
! </ul>
</div>



Saturday, May 14, 2011
Experimentais




Saturday, May 14, 2011
Datepicker




Saturday, May 14, 2011
Google Maps




Saturday, May 14, 2011
Obrigado!
                             @abstractj
                         http://gitshelf.com




Saturday, May 14, 2011

More Related Content

PDF
让开发也懂前端
PDF
开放式类库的构建
PDF
SeaJS - 跨环境模块化开发实践
PDF
Opera Mobile HTML5 CSS3 Standards
PDF
TorqueBox - Ultrapassando a fronteira entre Java e Ruby
PDF
Qconsp domesticando dragoes com soluções escaláveis
PDF
Torquebox - O melhor dos dois mundos
PPT
Flight
让开发也懂前端
开放式类库的构建
SeaJS - 跨环境模块化开发实践
Opera Mobile HTML5 CSS3 Standards
TorqueBox - Ultrapassando a fronteira entre Java e Ruby
Qconsp domesticando dragoes com soluções escaláveis
Torquebox - O melhor dos dois mundos
Flight

Similar to Desenvolvimento Indolor com JQuery Mobile (20)

PDF
Rendering Views in JavaScript - "The New Web Architecture"
PDF
Introduction to JavaScriptMVC
PDF
Koss, How to make desktop caliber browser apps
PDF
YOU WILL REGRET THIS
PDF
Discussing Java's Future
PDF
The Hitchhiker's guide to mobile development
PDF
Edted 2010 Dicas de Web
KEY
Building Mobile Apps using HTML CSS & Javascript
PDF
Building Mobile Apps in WordPress - WordCamp Toronto 2011
PDF
JavaScript por debaixo dos panos
PDF
DevOps Introduction @Cegeka
PDF
2011 The Year of Web apps
PDF
Accessibility Lightning Talk
PDF
MILOFest 2010
PDF
Beginning Android Development
PDF
Velocity2011 chef-workshop
PDF
Movable Type 5 Smartphone Option
DOCX
Resume.docx
PDF
Wordpress accessibility enhancements
PDF
Wordpress accessibility enhancements
Rendering Views in JavaScript - "The New Web Architecture"
Introduction to JavaScriptMVC
Koss, How to make desktop caliber browser apps
YOU WILL REGRET THIS
Discussing Java's Future
The Hitchhiker's guide to mobile development
Edted 2010 Dicas de Web
Building Mobile Apps using HTML CSS & Javascript
Building Mobile Apps in WordPress - WordCamp Toronto 2011
JavaScript por debaixo dos panos
DevOps Introduction @Cegeka
2011 The Year of Web apps
Accessibility Lightning Talk
MILOFest 2010
Beginning Android Development
Velocity2011 chef-workshop
Movable Type 5 Smartphone Option
Resume.docx
Wordpress accessibility enhancements
Wordpress accessibility enhancements
Ad

Recently uploaded (20)

PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
gpt5_lecture_notes_comprehensive_20250812015547.pdf
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PPTX
Machine Learning_overview_presentation.pptx
PPTX
MYSQL Presentation for SQL database connectivity
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Assigned Numbers - 2025 - Bluetooth® Document
PPTX
A Presentation on Artificial Intelligence
PDF
Network Security Unit 5.pdf for BCA BBA.
PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Unlocking AI with Model Context Protocol (MCP)
PPTX
Big Data Technologies - Introduction.pptx
DOCX
The AUB Centre for AI in Media Proposal.docx
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Digital-Transformation-Roadmap-for-Companies.pptx
gpt5_lecture_notes_comprehensive_20250812015547.pdf
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
Machine Learning_overview_presentation.pptx
MYSQL Presentation for SQL database connectivity
Encapsulation_ Review paper, used for researhc scholars
Advanced methodologies resolving dimensionality complications for autism neur...
“AI and Expert System Decision Support & Business Intelligence Systems”
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Assigned Numbers - 2025 - Bluetooth® Document
A Presentation on Artificial Intelligence
Network Security Unit 5.pdf for BCA BBA.
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
Dropbox Q2 2025 Financial Results & Investor Presentation
Unlocking AI with Model Context Protocol (MCP)
Big Data Technologies - Introduction.pptx
The AUB Centre for AI in Media Proposal.docx
Ad

Desenvolvimento Indolor com JQuery Mobile

  • 1. Please enable JavaScript to view this page properly Saturday, May 14, 2011
  • 2. Bruno Oliveira @abstractj http://gitshelf.com Saturday, May 14, 2011
  • 3. Desenvolvimento Indolor com JQuery Mobile Saturday, May 14, 2011
  • 6. ~ 205 M de aparelhos celulares ~ 85 M de computadores (teleco/sercomtel) Saturday, May 14, 2011
  • 9. O cowboy! Java Windows Android iOS ME Mobile Saturday, May 14, 2011
  • 10. Java ME JavaFX #FAIL Saturday, May 14, 2011
  • 14. DOX Desenvolvimento Orientado a XML Saturday, May 14, 2011
  • 16. #comofaz? FAX?! Saturday, May 14, 2011
  • 18. Simples?! #import <Foundation/Foundation.h> int main(int argc, const char argv[]) { ! NSAutoreleasePool *anAutoreleasePool = [[NSAutoreleasePool alloc] init]; ! ! NSLog(@"Hello World"); ! ! [anAutoreleasePool drain]; ! return 0; } Saturday, May 14, 2011
  • 23. Entregar valor > preciosimo Saturday, May 14, 2011
  • 24. Wizards são tão simples! Saturday, May 14, 2011
  • 25. As aparências enganam! Saturday, May 14, 2011
  • 26. Alguém precisa pensar por você? Saturday, May 14, 2011
  • 28. Pra que aplicações nativas? Saturday, May 14, 2011
  • 29. Call me JQuery titanium Rocks! guy! Saturday, May 14, 2011
  • 30. O que todo celular tem em comum? Saturday, May 14, 2011
  • 32. Safari Opera Android Browser BlackBerry Palm Symbian Saturday, May 14, 2011
  • 40. Desenvolvedores 29 devs JQuery Saturday, May 14, 2011
  • 42. O que eu preciso? JQuery 86 KB (minified) JQuery Mobile JS 66 KB (minified) JQuery Mobile CSS 45 KB (minified) Total = 197 KB Saturday, May 14, 2011
  • 43. Multiplataforma Cross Device Saturday, May 14, 2011
  • 44. Estrutura básica <!DOCTYPE html> <meta charset="utf-8"> <head> ! <title>Brazil JS</title> ! <link rel="stylesheet" href="http://code.jquery.com/mobile/1.0a4.1/ jquery.mobile-1.0a4.1.min.css" /> ! <script type="text/javascript" src="http://code.jquery.com/ jquery-1.5.min.js"></script> ! <script type="text/javascript" src="http://code.jquery.com/mobile/ 1.0a4.1/jquery.mobile-1.0a4.1.min.js"></script> ! <script type="text/javascript" src="experiments/themeswitcher/ jquery.mobile.themeswitcher.js"></script> </head> Saturday, May 14, 2011
  • 45. Estrutura básica <!DOCTYPE html> <meta charset="utf-8"> <head> ! <title>Brazil JS</title> ! <link rel="stylesheet" href="http://code.jquery.com/mobile/1.0a4.1/ jquery.mobile-1.0a4.1.min.css" /> ! <script type="text/javascript" src="http://code.jquery.com/ jquery-1.5.min.js"></script> ! <script type="text/javascript" src="http://code.jquery.com/mobile/ 1.0a4.1/jquery.mobile-1.0a4.1.min.js"></script> ! <script type="text/javascript" src="experiments/themeswitcher/ jquery.mobile.themeswitcher.js"></script> </head> Saturday, May 14, 2011
  • 46. Estrutura básica <!DOCTYPE html> <meta charset="utf-8"> <head> ! <title>Brazil JS</title> ! <link rel="stylesheet" href="http://code.jquery.com/mobile/1.0a4.1/ jquery.mobile-1.0a4.1.min.css" /> ! <script type="text/javascript" src="http://code.jquery.com/ jquery-1.5.min.js"></script> ! <script type="text/javascript" src="http://code.jquery.com/mobile/ 1.0a4.1/jquery.mobile-1.0a4.1.min.js"></script> ! <script type="text/javascript" src="experiments/themeswitcher/ jquery.mobile.themeswitcher.js"></script> </head> Saturday, May 14, 2011
  • 47. Estrutura básica <!DOCTYPE html> <meta charset="utf-8"> <head> ! <title>Brazil JS</title> ! <link rel="stylesheet" href="http://code.jquery.com/mobile/1.0a4.1/ jquery.mobile-1.0a4.1.min.css" /> ! <script type="text/javascript" src="http://code.jquery.com/ jquery-1.5.min.js"></script> ! <script type="text/javascript" src="http://code.jquery.com/mobile/ 1.0a4.1/jquery.mobile-1.0a4.1.min.js"></script> ! <script type="text/javascript" src="experiments/themeswitcher/ jquery.mobile.themeswitcher.js"></script> </head> Saturday, May 14, 2011
  • 50. Corpo da página ! <body> ! ! <div data-role="page" id="foo"> ! ! ! ! ! ! <div data-role="header"> ! ! ! ! <h1>Header</h1> ! ! ! </div> ! ! ! ! ! ! <div data-role="content">! ! ! ! ! <p>Conteúdo</p>! ! ! ! ! </div> ! ! ! ! ! ! <div data-role="footer"> ! ! ! ! <h4>Footer</h4> ! ! ! </div> ! ! </div>! ! ! </body> Saturday, May 14, 2011
  • 51. Corpo da página ! <body> ! ! <div data-role="page" id="foo"> ! ! ! ! ! ! <div data-role="header"> ! ! ! ! <h1>Header</h1> ! ! ! </div> ! ! ! ! ! ! <div data-role="content">! ! ! ! ! <p>Conteúdo</p>! ! ! ! ! </div> ! ! ! ! ! ! <div data-role="footer"> ! ! ! ! <h4>Footer</h4> ! ! ! </div> ! ! </div>! ! ! </body> Saturday, May 14, 2011
  • 52. Corpo da página ! <body> ! ! <div data-role="page" id="foo"> ! ! ! ! ! ! <div data-role="header"> ! ! ! ! <h1>Header</h1> ! ! ! </div> ! ! ! ! ! ! <div data-role="content">! ! ! ! ! <p>Conteúdo</p>! ! ! ! ! </div> ! ! ! ! ! ! <div data-role="footer"> ! ! ! ! <h4>Footer</h4> ! ! ! </div> ! ! </div>! ! ! </body> Saturday, May 14, 2011
  • 53. Corpo da página ! <body> ! ! <div data-role="page" id="foo"> ! ! ! ! ! ! <div data-role="header"> ! ! ! ! <h1>Header</h1> ! ! ! </div> ! ! ! ! ! ! <div data-role="content">! ! ! ! ! <p>Conteúdo</p>! ! ! ! ! </div> ! ! ! ! ! ! <div data-role="footer"> ! ! ! ! <h4>Footer</h4> ! ! ! </div> ! ! </div>! ! ! </body> Saturday, May 14, 2011
  • 54. Corpo da página ! <body> ! ! <div data-role="page" id="foo"> ! ! ! ! ! ! <div data-role="header"> ! ! ! ! <h1>Header</h1> ! ! ! </div> ! ! ! ! ! ! <div data-role="content">! ! ! ! ! <p>Conteúdo</p>! ! ! ! ! </div> ! ! ! ! ! ! <div data-role="footer"> ! ! ! ! <h4>Footer</h4> ! ! ! </div> ! ! </div>! ! ! </body> Saturday, May 14, 2011
  • 56. <!DOCTYPE html> <meta charset="utf-8"> ! <html> ! ! <head> ! ! ! <title>Brazil JS</title> ! ! ! <link ... /> ! ! ! <script src="..."></script> ! ! </head> ! ! <body> ! ! ! <div data-role="header" data-theme="b"> ! ! ! ! <h1>Sábado</h1> ! ! ! </div> ! ! ! <div data-role="page" id="listing"> ! ! ! ! ! ! ! ! <div data-role="content"> ! ! ! ! ! <ol data-role="listview"> ! ! ! ! ! ! <li>7h00! Credenciamento</li> ! ! ! ! ! ! <li>7h50! Abertura</li> ! ! ! ! ! ! <li>8h00! Keynote David Herman </li> ! ! ! ! ! ! <li>9h00! Keynote Marcelo Campos - Rocha Conhecendo o Engine, o servidor Javascript do ERP da UNUM.</li> ! ! ! ! ! ! <li>10h00!Coffee Break</li> ! ! ! ! ! ! ! ! .... ! ! ! ! ! </ol> ! ! ! ! </div> ! ! ! </div> Saturday, May 14, 2011
  • 57. <!DOCTYPE html> <meta charset="utf-8"> ! <html> ! ! <head> ! ! ! <title>Brazil JS</title> ! ! ! <link ... /> ! ! ! <script src="..."></script> ! ! </head> ! ! <body> ! ! ! <div data-role="header" data-theme="b"> ! ! ! ! <h1>Sábado</h1> ! ! ! </div> ! ! ! <div data-role="page" id="listing"> ! ! ! ! ! ! ! ! <div data-role="content"> ! ! ! ! ! <ol data-role="listview"> ! ! ! ! ! ! <li>7h00! Credenciamento</li> ! ! ! ! ! ! <li>7h50! Abertura</li> ! ! ! ! ! ! <li>8h00! Keynote David Herman </li> ! ! ! ! ! ! <li>9h00! Keynote Marcelo Campos - Rocha Conhecendo o Engine, o servidor Javascript do ERP da UNUM.</li> ! ! ! ! ! ! <li>10h00!Coffee Break</li> ! ! ! ! ! ! ! ! .... ! ! ! ! ! </ol> ! ! ! ! </div> ! ! ! </div> Saturday, May 14, 2011
  • 58. <!DOCTYPE html> <meta charset="utf-8"> ! <html> ! ! <head> ! ! ! <title>Brazil JS</title> ! ! ! <link ... /> ! ! ! <script src="..."></script> ! ! </head> ! ! <body> ! ! ! <div data-role="header" data-theme="b"> ! ! ! ! <h1>Sábado</h1> ! ! ! </div> ! ! ! <div data-role="page" id="listing"> ! ! ! ! ! ! ! ! <div data-role="content"> ! ! ! ! ! <ol data-role="listview"> ! ! ! ! ! ! <li>7h00! Credenciamento</li> ! ! ! ! ! ! <li>7h50! Abertura</li> ! ! ! ! ! ! <li>8h00! Keynote David Herman </li> ! ! ! ! ! ! <li>9h00! Keynote Marcelo Campos - Rocha Conhecendo o Engine, o servidor Javascript do ERP da UNUM.</li> ! ! ! ! ! ! <li>10h00!Coffee Break</li> ! ! ! ! ! ! ! ! .... ! ! ! ! ! </ol> ! ! ! ! </div> ! ! ! </div> Saturday, May 14, 2011
  • 60. ! ! ! ! <div data-role="content"> ! ! ! ! ! ! ! ! ! ! <form id="frmLogin"> ! ! ! ! ! ! <div data-role="fieldcontain"> ! ! ! ! ! ! ! <label for="email"> ! ! ! ! ! ! ! ! <em>* </em> Email: </label> ! ! ! ! ! ! ! <input type="text" id="email" ! ! ! ! ! ! ! name="email" class="required email" /> ! ! ! ! ! ! </div> ! ! ! ! ! ! ! ! ! ! ! ! <div data-role="fieldcontain"> ! ! ! ! ! ! ! <label for="password"> ! ! ! ! ! ! ! ! <em>* </em>Senha: </label> ! ! ! ! ! ! ! <input type="password" id="password" ! ! ! ! ! ! ! name="password" class="required" /> ! ! ! ! ! ! </div> ! ! ! ! ! ! ! ! ! ! ! ! <div class="ui-body ui-body-b"> ! ! ! ! ! ! ! <button class="btnLogin" type="submit" ! ! ! ! ! ! ! ! data-theme="a">Login</button> ! ! ! ! ! ! </div> ! ! ! ! ! </form> ! ! ! ! ! ! ! ! ! </div> Saturday, May 14, 2011
  • 61. ! ! ! ! <div data-role="content"> ! ! ! ! ! ! ! ! ! ! <form id="frmLogin"> ! ! ! ! ! ! <div data-role="fieldcontain"> ! ! ! ! ! ! ! <label for="email"> ! ! ! ! ! ! ! ! <em>* </em> Email: </label> ! ! ! ! ! ! ! <input type="text" id="email" ! ! ! ! ! ! ! name="email" class="required email" /> ! ! ! ! ! ! </div> ! ! ! ! ! ! ! ! ! ! ! ! <div data-role="fieldcontain"> ! ! ! ! ! ! ! <label for="password"> ! ! ! ! ! ! ! ! <em>* </em>Senha: </label> ! ! ! ! ! ! ! <input type="password" id="password" ! ! ! ! ! ! ! name="password" class="required" /> ! ! ! ! ! ! </div> ! ! ! ! ! ! ! ! ! ! ! ! <div class="ui-body ui-body-b"> ! ! ! ! ! ! ! <button class="btnLogin" type="submit" ! ! ! ! ! ! ! ! data-theme="a">Login</button> ! ! ! ! ! ! </div> ! ! ! ! ! </form> ! ! ! ! ! ! ! ! ! </div> Saturday, May 14, 2011
  • 62. ! ! ! ! <div data-role="content"> ! ! ! ! ! ! ! ! ! ! <form id="frmLogin"> ! ! ! ! ! ! <div data-role="fieldcontain"> ! ! ! ! ! ! ! <label for="email"> ! ! ! ! ! ! ! ! <em>* </em> Email: </label> ! ! ! ! ! ! ! <input type="text" id="email" ! ! ! ! ! ! ! name="email" class="required email" /> ! ! ! ! ! ! </div> ! ! ! ! ! ! ! ! ! ! ! ! <div data-role="fieldcontain"> ! ! ! ! ! ! ! <label for="password"> ! ! ! ! ! ! ! ! <em>* </em>Senha: </label> ! ! ! ! ! ! ! <input type="password" id="password" ! ! ! ! ! ! ! name="password" class="required" /> ! ! ! ! ! ! </div> ! ! ! ! ! ! ! ! ! ! ! ! <div class="ui-body ui-body-b"> ! ! ! ! ! ! ! <button class="btnLogin" type="submit" ! ! ! ! ! ! ! ! data-theme="a">Login</button> ! ! ! ! ! ! </div> ! ! ! ! ! </form> ! ! ! ! ! ! ! ! ! </div> Saturday, May 14, 2011
  • 65. Validação $("#formLogin").validate({ ! submitHandler: function(form) { ! ! //Chamada pra alguma action ! } }); Saturday, May 14, 2011
  • 67. <div data-role="fieldcontain"> ! <label for="slider2">Beer mode:</label> ! ! <select name="slider2" id="slider2" data-role="slider"> ! ! <option value="off">Off</option> ! ! <option value="on">On</option> ! </select> </div> <div data-role="fieldcontain"> ! <label for="search">Search beer:</label> ! <input type="search" name="search" id="search" value="" /> </div> <div data-role="fieldcontain"> ! <label for="slider">Grau alcoólico:</label> ! ! <input type="range" name="slider" id="slider" value="0" min="0" max="100" /> </div> Saturday, May 14, 2011
  • 68. <div data-role="fieldcontain"> ! <label for="slider2">Beer mode:</label> ! ! <select name="slider2" id="slider2" data-role="slider"> ! ! <option value="off">Off</option> ! ! <option value="on">On</option> ! </select> </div> <div data-role="fieldcontain"> ! <label for="search">Search beer:</label> ! <input type="search" name="search" id="search" value="" /> </div> <div data-role="fieldcontain"> ! <label for="slider">Grau alcoólico:</label> ! ! <input type="range" name="slider" id="slider" value="0" min="0" max="100" /> </div> Saturday, May 14, 2011
  • 69. <div data-role="fieldcontain"> ! <label for="slider2">Beer mode:</label> ! ! <select name="slider2" id="slider2" data-role="slider"> ! ! <option value="off">Off</option> ! ! <option value="on">On</option> ! </select> </div> <div data-role="fieldcontain"> ! <label for="search">Search beer:</label> ! <input type="search" name="search" id="search" value="" /> </div> <div data-role="fieldcontain"> ! <label for="slider">Grau alcoólico:</label> ! ! <input type="range" name="slider" id="slider" value="0" min="0" max="100" /> </div> Saturday, May 14, 2011
  • 70. Transição de páginas <div data-role="content"> ! ! <a href="transition-success.html" data-role="button" data- rel="dialog" data-transition="slide">slide</a> </div> Saturday, May 14, 2011
  • 72. slidedown slideup fade flip pop Saturday, May 14, 2011
  • 73. Thumbnails <div data-role="content"> ! <ul data-role="listview"> ! ! <li><a href="index.html"> ! ! ! <img src="images/album-bb.jpg" /> ! ! ! <h3>Broken Bells</h3> ! ! ! <p>Broken Bells</p> ! ! </a></li> ! </ul> </div> Saturday, May 14, 2011
  • 74. Thumbnails <div data-role="content"> ! <ul data-role="listview"> ! ! <li><a href="index.html"> ! ! ! <img src="images/album-bb.jpg" /> ! ! ! <h3>Broken Bells</h3> ! ! ! <p>Broken Bells</p> ! ! </a></li> ! </ul> </div> Saturday, May 14, 2011
  • 78. Obrigado! @abstractj http://gitshelf.com Saturday, May 14, 2011