PhoneGap
O que é fácil é melhor!




                          Ildyone Martins
O que é o PhoneGap?


Phonegap é um framework para desenvolvimento
de aplicações mobile (iOS, Android, etc). Open
source e free, mantido por voluntários e
empresas como Adobe, IBM, RIM e Microsoft.
Quais as dificuldades para
            desenvolvimento mobile?
●   Ter que instalar IDEs e SDKs de cada plataforma
●   Aprender a linguagem de programação de cada
    plataforma
    ●   Objective-C (iPhone)
    ●   Java (Android)
●   Hardware de desenvolvimento específico (iPhone somente)
●   Dificuldade em adequar a aplicação a 300 milhões de
    resoluções de telas (Android somente) :(
A solução!!


      PhoneGap!
HTML5 + CSS + Javascript
#comofaz?
Um hello world!
Com o Eclipse instalado e
             configurado.
●   Crie um novo projeto
Defina o nome do projeto como
            “hello”
Escolha a versão do android que a
  aplicação será disponibilizada
Informe o nome do package da app
Alguns passos para configurar o
               projeto
●   Crie a pasta assets/www
●   Crie a pasta libs
●   Crie um arquivo index.html em assets/www
Código do index.html
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script src="phonegap-1.3.0.js"></script>
<title>Hello World</title>
<style type="text/css">
 html, body {
   height: 100%;
 }
 table {
   width: 100%;
   height: 100%;
   text-align: center;
   vertical-align: middle;
 }
 imkg {
   display: block;
   margin: 0 auto;
 }
</style>
</head>
<body>
        <table>
                <tr>
                       <td>
                             <img src="imagens/phonegap.png"><br>
                             <button onclick="alert('Olá Mundo');">Mensagem</button>
                       </td>
                </tr>
        </table>
</body>
</html>
Alguns passos para configurar o
               projeto
●   Crie a pasta assets/www
●   Crie a pasta libs
●   Crie um arquivo index.html em assets/www
●   Salve a imagem exemplo do phonegap no
    www/imagens (disponível no site)
●   Baixe o zip do phonegap (phonegap.com) e
    extraia em algum lugar na sua máquina
●   Do zip do phonegap, copie o arquivo
    Android/phonegap-1.3.0.js para assets/www
Alguns passos para configurar o
                projeto
●   Copie o arquivo Android/phonegap-1.3.0.jar para libs
●   Clique nesse jar, botão direito, Build Path > Add to Build Path
●   Copie a pasta Android/xml para a pasta res do projeto
●   Edite o arquivo Helloactivity.java
●   Mude a classe extendida de Activity para DroidGap
●   Mude a linha 12 para que fique como:
    super.loadUrl("file:///android_asset/www/index.html");
●   Configure os imports para que fique como:
    import android.os.Bundle;
    import com.phonegap.DroidGap;
Edite o arquivo AndroidManifest.xml
     conforme o código abaixo
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
  package="com.hello"
  android:versionCode="1"
  android:versionName="1.0" >

  <supports-screens
    android:anyDensity="true"
    android:largeScreens="true"
    android:normalScreens="true"
    android:resizeable="true"
    android:smallScreens="true" />

  <uses-permission android:name="android.permission.CAMERA" />
  <uses-permission android:name="android.permission.VIBRATE" />
  <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
  <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
  <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
  <uses-permission android:name="android.permission.READ_PHONE_STATE" />
  <uses-permission android:name="android.permission.INTERNET" />
  <uses-permission android:name="android.permission.RECEIVE_SMS" />
  <uses-permission android:name="android.permission.RECORD_AUDIO" />
  <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
  <uses-permission android:name="android.permission.READ_CONTACTS" />
  <uses-permission android:name="android.permission.WRITE_CONTACTS" />
  <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
  <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
  <uses-permission android:name="android.permission.GET_ACCOUNTS" />
Edite o arquivo AndroidManifest.xml
     conforme o código abaixo
<uses-sdk android:minSdkVersion="8" />

  <application
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name" >
    <activity
      android:configChanges="orientation|keyboardHidden"
      android:label="@string/app_name"
      android:name=".HelloActivity" >
      <intent-filter >
         <action android:name="android.intent.action.MAIN" />

          <category android:name="android.intent.category.LAUNCHER" />
      </intent-filter>
    </activity>
    <activity
      android:configChanges="orientation|keyboardHidden"
      android:label="@string/app_name"
      android:name="com.phonegap.DroidGap" >
      <intent-filter >
      </intent-filter>
    </activity>
  </application>

</manifest>
E finalmente, clique no projeto com o botão direito, Run as, Android
Project que o aplicativo será aberto no emulador do Android.
Ao clicar no botão um alert irá aparecer.
Thank you!                 Phonegap.com




                        Ildyone Martins
             @devmartins / devmartins.com

Phonegap - Framework Mobile

  • 1.
    PhoneGap O que éfácil é melhor! Ildyone Martins
  • 2.
    O que éo PhoneGap? Phonegap é um framework para desenvolvimento de aplicações mobile (iOS, Android, etc). Open source e free, mantido por voluntários e empresas como Adobe, IBM, RIM e Microsoft.
  • 3.
    Quais as dificuldadespara desenvolvimento mobile? ● Ter que instalar IDEs e SDKs de cada plataforma ● Aprender a linguagem de programação de cada plataforma ● Objective-C (iPhone) ● Java (Android) ● Hardware de desenvolvimento específico (iPhone somente) ● Dificuldade em adequar a aplicação a 300 milhões de resoluções de telas (Android somente) :(
  • 4.
    A solução!! PhoneGap! HTML5 + CSS + Javascript
  • 5.
  • 6.
  • 7.
    Com o Eclipseinstalado e configurado. ● Crie um novo projeto
  • 8.
    Defina o nomedo projeto como “hello”
  • 9.
    Escolha a versãodo android que a aplicação será disponibilizada
  • 10.
    Informe o nomedo package da app
  • 11.
    Alguns passos paraconfigurar o projeto ● Crie a pasta assets/www ● Crie a pasta libs ● Crie um arquivo index.html em assets/www
  • 12.
    Código do index.html <!DOCTYPEhtml PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <script src="phonegap-1.3.0.js"></script> <title>Hello World</title> <style type="text/css"> html, body { height: 100%; } table { width: 100%; height: 100%; text-align: center; vertical-align: middle; } imkg { display: block; margin: 0 auto; } </style> </head> <body> <table> <tr> <td> <img src="imagens/phonegap.png"><br> <button onclick="alert('Olá Mundo');">Mensagem</button> </td> </tr> </table> </body> </html>
  • 13.
    Alguns passos paraconfigurar o projeto ● Crie a pasta assets/www ● Crie a pasta libs ● Crie um arquivo index.html em assets/www ● Salve a imagem exemplo do phonegap no www/imagens (disponível no site) ● Baixe o zip do phonegap (phonegap.com) e extraia em algum lugar na sua máquina ● Do zip do phonegap, copie o arquivo Android/phonegap-1.3.0.js para assets/www
  • 14.
    Alguns passos paraconfigurar o projeto ● Copie o arquivo Android/phonegap-1.3.0.jar para libs ● Clique nesse jar, botão direito, Build Path > Add to Build Path ● Copie a pasta Android/xml para a pasta res do projeto ● Edite o arquivo Helloactivity.java ● Mude a classe extendida de Activity para DroidGap ● Mude a linha 12 para que fique como: super.loadUrl("file:///android_asset/www/index.html"); ● Configure os imports para que fique como: import android.os.Bundle; import com.phonegap.DroidGap;
  • 15.
    Edite o arquivoAndroidManifest.xml conforme o código abaixo <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.hello" android:versionCode="1" android:versionName="1.0" > <supports-screens android:anyDensity="true" android:largeScreens="true" android:normalScreens="true" android:resizeable="true" android:smallScreens="true" /> <uses-permission android:name="android.permission.CAMERA" /> <uses-permission android:name="android.permission.VIBRATE" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.RECEIVE_SMS" /> <uses-permission android:name="android.permission.RECORD_AUDIO" /> <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" /> <uses-permission android:name="android.permission.READ_CONTACTS" /> <uses-permission android:name="android.permission.WRITE_CONTACTS" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.GET_ACCOUNTS" />
  • 16.
    Edite o arquivoAndroidManifest.xml conforme o código abaixo <uses-sdk android:minSdkVersion="8" /> <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" > <activity android:configChanges="orientation|keyboardHidden" android:label="@string/app_name" android:name=".HelloActivity" > <intent-filter > <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:configChanges="orientation|keyboardHidden" android:label="@string/app_name" android:name="com.phonegap.DroidGap" > <intent-filter > </intent-filter> </activity> </application> </manifest>
  • 17.
    E finalmente, cliqueno projeto com o botão direito, Run as, Android Project que o aplicativo será aberto no emulador do Android.
  • 18.
    Ao clicar nobotão um alert irá aparecer.
  • 19.
    Thank you! Phonegap.com Ildyone Martins @devmartins / devmartins.com