http://slides.com/fingerproof/
polytech-2015/live
@fingerproof - @PhoneGapFR - RyanToslink#2581
sebastien.pittion@viseo.com
VOUS AVEZ
QUATRE HEURES
DIX MINUTES
WOW CETTE BLOOD
MOON EST SPLENDIDE !
Des questions ?
$ pwd
$ cd
$ ls
$ command -?
$ command -h
$ command -H
$ command --help
man command
mkdir, rm, cp, mv, touch, chown, cat
$ npm --version
$ cat ~/.bash_profile
souce ~/.bash_profile
ADT_SDK=~/dev/adt/sdk
export PATH=$PATH:$ADT_SDK/platform-tools:$ADT_SDK/tools
$ java -version &&
javac -version
$ source .bash_profile && java -version &&
javac -version
ADT_SDK=~/dev/adt/sdk
export JAVA_HOME=~/dev/jdk
export PATH=$PATH:$ADT_SDK/platform-tools:$ADT_SDK/tools:$JAVA_HOME/bin
$ ant -version
$ source ~/.bash_profile
ADT_SDK=~/dev/adt/sdk
export ANT_HOME=~/dev/ant
export JAVA_HOME=~/dev/jdk
export PATH=$PATH:$ADT_SDK/platform-tools:$ADT_SDK/tools:$JAVA_HOME/bin:$ANT_HOME/bin
$ android
$ sudo npm install
--global ios-sim
ios-deploy
$ sudo npm install
--global cordova
$ sudo npm install
--global phonegap
$ cordova help
$ codova create
$ cordova platform
$ cordova plugin
$ cordova prepare
$ cordova compile
$ cordova run
$ cordova serve
Gère PhoneGap Build
$ phonegap help
$ phonegap create
$ phonegap build
$ phonegap install
$ phonegap run
$ phonegap platform
$ phonegap plugin
$ phonegap template
$ phonegap serve
$ phonegap local
$ phonegap remote
$ phonegap prepare
$ phonegap compile
$ phonegap emulate
$ phonegap cordova
Hormis la prise en charge de PhoneGap Build, n'apporte
rien de nouveau
En général on utilise la CLI Cordova
Wait a minute, what?!
$ cordova create <name>
$ cordova platform add ios
$ cordova plugin add <id>
$ cordova emulate ios
$ cordova serve
$ cordova prepare
$ chmod +x <script>
$ cordova serve
$ cordova platform add browser
$ sudo npm install --global weinre
$ weinre --boundHost
<ip> --httpPort 8080
http://<ip>:8080/client/#anonymous
<script src="http://<ip>:8080/target/target-script-min.js#anonymous"></script>
LiveReload (Mac), CodeKit (Mac), Prepros (Mac, Windows, Linux) + Extensions
Existe depuis longtemps sur desktop (<3 Workflow)
Délicat dans le cadre de Cordova (pre 3.0) :
phase de compilation
Déploiement simultané sur plusieurs appareils,
simulateurs et plates-formes
$ cordova build ios --release
0836656565
$ cordova build android --release
<gap:platform>
Preferences communes :
phonegap-version
(cli-5.2.0), orientation (default), fullscreen (false)
<?xml version="1.0" encoding="UTF-8"?>
<widget xmlns="http://www/w3.org/ns/widgets"
xmlns:gap="http://phonegap.com/ns/1.0"
xmlns:android="http://schemas.android.com/apk/res/android"
id="com.reverse.domain"
version="1.0.0">
<name>Mon application</name>
<description>Une description</description>
</widget>
<gap:config-file>
<preference name="orientation" value="portrait"/>
Je vous fais les niveaux avec ça ?
<!-- Equivalent Info.plist -->
<key>UISupportedInterfaceOrientations</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
<string>UIInterfaceOrientationPortraitUpsideDown</string>
</array>
<!-- Personnalisation avancée PGB -->
<gap:config-file platform="ios" mode="replace" parent="UISupportedInterfaceOrientations">
<array>
<string>UIInterfaceOrientationPortrait</string>
</array>
</gap:config-file>
<!-- Ou encore -->
<gap:config-file platform="ios" mode="delete" parent="UISupportedInterfaceOrientations">
<array>
<string>UIInterfaceOrientationPortraitUpsideDown</string>
</array>
</gap:config-file>
<!-- Ou même seulement -->
<gap:config-file platform="ios" mode="add" parent="UISupportedInterfaceOrientations">
<array>
<string>UIInterfaceOrientationPortrait</string>
</array>
</gap:config-file>
<gap:config-file platform="android" mode="merge" parent="/manifest/application/">
<activity android:screenOrientation="portrait"/>
</gap:config-file>
<icon src="icon.png"/>
<gap:splash src="splash.png"/>
<gap:url-scheme name="com.acme.myscheme" role="None">
<scheme>myapp</scheme>
</gap:url-scheme>
<gap:plugin/>
<gap:plugin
name="com.phonegap.plugins.example"
version="1.0.2"
source="npm">
<param name="APIKey" value="12345678"/>
<param name="APISecret" value="12345678"/>
</gap:plugin>
<gap:plugin name="cordova-plugin-whitelist" source="npm"/>
Note : Adobe Air, Cordova desktop ?
$ which openssl
$ openssl req -new
-key mykey.key
-out ios.csr -subj "/emailAddress=EMAIL, CN=COMPANY-NAME, C=COUNTRY-CODE"
$ openssl pkcs12 -export
-inkey mykey.key -in developer_identity.pem
-out iphone_dev.p12
Keytool fourni avec Java
$ which keytool
$ keytool -genkey
-v -keystore keystore_name.keystore -alias alias_name
-keyalg RSA -keysize 2048 -validity 10000
Uploader les fichiers
générés précédemment (onglet Signing Keys)
Les clés sont verrouillées par défaut et une heure après saisie des mots de passe (forts) associés
Vous pouvez maintenant déclencher de nouvelles compilations
Enfin ! (J'ai failli attendre !)
Onglet Plugins : vue d'ensemble des plugins installés et leurs versions
Onglet Collaborators :
gestion des droits des intervenants invités
Onglet Settings : présente certaines préférences du
fichier config.xml et l'accès à des fonctionnalités comme Debugging et Hydration
$ phonegap help remote
$ phonegap remote login
$ phonegap remote build <platform>
http://slides.com/
http://slides.com/
https://github.com/