SlideShare une entreprise Scribd logo
1  sur  39
PHP for Android
Prototyping Android apps in php
Cesare D'Amico
cesare@wyrd.it
Cesare D'Amico
freelance php dev
Hi, nice to meet you!
cesare@wyrd.it
Twitter: __ce (double underscore)
http://cesaredami.co/
What happens adding...
+
Genetically modified php :)
We're going to talk about...
+ PFAf
SL4A
Android
Android
• built on top of a linux
kernel
• native libc (Bionic):
0.5 * sizeof(GNU libC)
• runtime (Dalvik VM) +
system libs
• application framework
• Java!
How can we make php run
on Android?
1. static compilation with Glibc (over
7MB)... fat!
2. linked to Bionic: smaller (~2MB), but
tweaks needed
How can we make php run
on Android?
3. SL4A to the rescue!
SL4A – scripting layer for
Android
• Google project, led by
Damon Kohler
• Open Source
• exposes Android API
• quite active
SL4A: installation
As easy as:
1) enable “Unknown
sources” under Applications
settings
2)
PHP for Android project
• led by Iván Mosquera,
software engineer at Irontec
(the people behind IronPython
and other OS projects)
• Open Source
• Started in 2009
• php-for-android on Google
Groups
PFA: installation
The PFA apk just installs
other components:
• php_rX.zip:
– php binary
• php_scripts_rX.zip
– scripts and PFAf
• php_extras_rX.zip
• Android.php + php.ini
Everything's installed!
SL4A: how does it work?
Provides Android facades
Makes the Android API
available through JSON
RPC calls
PFA: let's try it
PFA: let's try it
<?php
require_once('Android.php');
$droid = new Android();
$droid­>vibrate();
PFA: let's try it
SOOOO easy! :-)
PFA: let's try it
Let's try
something
else:
PFA: let's try it
<?php
require_once('Android.php');
$droid = new Android();
$name = $droid­>getInput('Hi!',
  'What is your name?');
$droid­>makeToast('Hello '.
  $name['result']);
PFA: let's try it
PFA: access phone features
PFA: access phone features
<?php
require_once('Android.php');
$droid = new Android();
$droid­>viewContacts();
PFA: access phone features
Many more features
available; API full list:
http://j.mp/9btqUG
Examples: smsSend, sendEmail,
cameraCapturePicture, viewHTML,
bluetoothConnect, contactsGet,
viewMap... (perhaps not *everything*
available yet)
PFA: writing scripts
Directly on the phone!
PFA: writing scripts
SOOOOO
slow and
unusable!
:-(
PFA: writing scripts
Including local files:
<?php
include('/sdcard/proj/...');
?>
PFA: writing scripts
allow_url_fopen
+
allow_url_include
FTW!
PFA: including remote code
<?php
require_once('Android.php');
$droid = new Android();
include('http://www.wyrd.it/
droid.php.txt');
<?php
$droid­>makeToast("There's a 
starman waiting in the sky!");
remote.php
droid.php.txt
PFA: including remote code
PFA: including remote code
include('http://www.wyrd.it/
droid.php.txt');
Secure
Handy
?
This is here for testing purposes ONLY!
PFA: including remote code
Don't forget that PFA,
although yet useable in
many respects, is still
alpha software.
In the future we'll be
able to distribute scripts
in apk format, without
using allow_url_fopen
PFA: internals
Android.php:
<?php
public function __call($name, $args){
  return $this­>rpc($name, $args);
}
public function rpc($method, $args){
  $data = array('id'=>$this­>_id, 'method'=>$method,
                'params'=>$args);
  $request = json_encode($data)."n";
  $sent = socket_write($this­>_socket,$request,
                       strlen($request));
PFA: internals
<?php
public function rpc($method, $args){
  $data = array('id'=>$this­>_id, 'method'=>$method,
                'params'=>$args);
  $request = json_encode($data)."n";
  $sent = socket_write($this­>_socket, $request,
                      strlen($request));
  $response = socket_read($this­>_socket, 1024,
    PHP_NORMAL_READ)or die("Could not read inputn");
  $this­>_id++;
  $result = json_decode($response);
  return array(
    'id'=>$result['id'], 'result'=>$result['result'],
    'error'=>$result['error']
  );
}
PFAf: PFA framework
Base php class: ScriptAbstract; apps
extend this class and implement init()
States-based: put on a stack the next
action you want to execute
function currentAction(){
  ...
  $this­>setNextAction('next');
}
function nextAction() { ... }
Thanks everyone!
?
PFA wants you!
You can help by writing
scripts and sharing
them:
http://www.phpforandroid.net/scripts
...and there are good examples there!
Take a look at the wi-fi scanner and the
web server ;)
12-14 Maggio 2011
http://www.phpday.it/
Please, rate this talk!
Feel like bashing?
Urge saying you fell in love
with this presentation?
Now you can!
http://joind.in/2152

Contenu connexe

Tendances

Pavimentando el Camino con Jakarta EE 9 y Apache TomEE 9.0.0
Pavimentando el Camino con Jakarta EE 9 y Apache TomEE 9.0.0Pavimentando el Camino con Jakarta EE 9 y Apache TomEE 9.0.0
Pavimentando el Camino con Jakarta EE 9 y Apache TomEE 9.0.0César Hernández
 
JavaScript for PHP Developers
JavaScript for PHP DevelopersJavaScript for PHP Developers
JavaScript for PHP Developersfunkatron
 
Flutter beers and pizza
Flutter beers and pizzaFlutter beers and pizza
Flutter beers and pizzaJon Durán
 
Spring-batch Groovy y Gradle
Spring-batch Groovy y GradleSpring-batch Groovy y Gradle
Spring-batch Groovy y GradleAntonio Mas
 
7 recomendaciones para migrar tus aplicaciones a Jakarta EE utilizando Apache...
7 recomendaciones para migrar tus aplicaciones a Jakarta EE utilizando Apache...7 recomendaciones para migrar tus aplicaciones a Jakarta EE utilizando Apache...
7 recomendaciones para migrar tus aplicaciones a Jakarta EE utilizando Apache...César Hernández
 
DBI for Parrot and Perl 6 Lightning Talk 2007
DBI for Parrot and Perl 6 Lightning Talk 2007DBI for Parrot and Perl 6 Lightning Talk 2007
DBI for Parrot and Perl 6 Lightning Talk 2007Tim Bunce
 
Paving the road with Jakarta EE and Apache TomEE - JCON 2021
Paving the road with Jakarta EE  and Apache TomEE - JCON 2021Paving the road with Jakarta EE  and Apache TomEE - JCON 2021
Paving the road with Jakarta EE and Apache TomEE - JCON 2021César Hernández
 
C/C++ Remote Development Overview
C/C++ Remote Development OverviewC/C++ Remote Development Overview
C/C++ Remote Development OverviewThitipong Jampajeen
 
Building Command Line Tools with Golang
Building Command Line Tools with GolangBuilding Command Line Tools with Golang
Building Command Line Tools with GolangTakaaki Mizuno
 
Let the contribution begin
Let the contribution beginLet the contribution begin
Let the contribution beginSeongJae Park
 
Best practices for joomla extensions developers
Best practices for joomla extensions developersBest practices for joomla extensions developers
Best practices for joomla extensions developersFrancesco Abeni
 
用 Go 語言實戰 Push Notification 服務
用 Go 語言實戰 Push Notification 服務用 Go 語言實戰 Push Notification 服務
用 Go 語言實戰 Push Notification 服務Bo-Yi Wu
 
Code analysis for a better future
Code analysis for a better futureCode analysis for a better future
Code analysis for a better futuregilforcada
 
Creating an api from design to security.
Creating an api from design to security.Creating an api from design to security.
Creating an api from design to security.Roan Brasil Monteiro
 
Pavimentando el camino con Jakarta EE 9 y Apache TomEE
Pavimentando el camino con Jakarta EE 9 y Apache TomEE Pavimentando el camino con Jakarta EE 9 y Apache TomEE
Pavimentando el camino con Jakarta EE 9 y Apache TomEE César Hernández
 
[INNOVATUBE] Tech Talk #3: Golang - Takaaki Mizuno
 [INNOVATUBE] Tech Talk #3: Golang - Takaaki Mizuno [INNOVATUBE] Tech Talk #3: Golang - Takaaki Mizuno
[INNOVATUBE] Tech Talk #3: Golang - Takaaki MizunoNexus FrontierTech
 

Tendances (20)

Pavimentando el Camino con Jakarta EE 9 y Apache TomEE 9.0.0
Pavimentando el Camino con Jakarta EE 9 y Apache TomEE 9.0.0Pavimentando el Camino con Jakarta EE 9 y Apache TomEE 9.0.0
Pavimentando el Camino con Jakarta EE 9 y Apache TomEE 9.0.0
 
JavaScript for PHP Developers
JavaScript for PHP DevelopersJavaScript for PHP Developers
JavaScript for PHP Developers
 
Flutter beers and pizza
Flutter beers and pizzaFlutter beers and pizza
Flutter beers and pizza
 
Spring-batch Groovy y Gradle
Spring-batch Groovy y GradleSpring-batch Groovy y Gradle
Spring-batch Groovy y Gradle
 
RxNetty
RxNettyRxNetty
RxNetty
 
7 recomendaciones para migrar tus aplicaciones a Jakarta EE utilizando Apache...
7 recomendaciones para migrar tus aplicaciones a Jakarta EE utilizando Apache...7 recomendaciones para migrar tus aplicaciones a Jakarta EE utilizando Apache...
7 recomendaciones para migrar tus aplicaciones a Jakarta EE utilizando Apache...
 
DBI for Parrot and Perl 6 Lightning Talk 2007
DBI for Parrot and Perl 6 Lightning Talk 2007DBI for Parrot and Perl 6 Lightning Talk 2007
DBI for Parrot and Perl 6 Lightning Talk 2007
 
Paving the road with Jakarta EE and Apache TomEE - JCON 2021
Paving the road with Jakarta EE  and Apache TomEE - JCON 2021Paving the road with Jakarta EE  and Apache TomEE - JCON 2021
Paving the road with Jakarta EE and Apache TomEE - JCON 2021
 
PSR7 - interoperabilità HTTP
PSR7 - interoperabilità HTTPPSR7 - interoperabilità HTTP
PSR7 - interoperabilità HTTP
 
C/C++ Remote Development Overview
C/C++ Remote Development OverviewC/C++ Remote Development Overview
C/C++ Remote Development Overview
 
Building Command Line Tools with Golang
Building Command Line Tools with GolangBuilding Command Line Tools with Golang
Building Command Line Tools with Golang
 
plone.api
plone.apiplone.api
plone.api
 
Beyond QA
Beyond QABeyond QA
Beyond QA
 
Let the contribution begin
Let the contribution beginLet the contribution begin
Let the contribution begin
 
Best practices for joomla extensions developers
Best practices for joomla extensions developersBest practices for joomla extensions developers
Best practices for joomla extensions developers
 
用 Go 語言實戰 Push Notification 服務
用 Go 語言實戰 Push Notification 服務用 Go 語言實戰 Push Notification 服務
用 Go 語言實戰 Push Notification 服務
 
Code analysis for a better future
Code analysis for a better futureCode analysis for a better future
Code analysis for a better future
 
Creating an api from design to security.
Creating an api from design to security.Creating an api from design to security.
Creating an api from design to security.
 
Pavimentando el camino con Jakarta EE 9 y Apache TomEE
Pavimentando el camino con Jakarta EE 9 y Apache TomEE Pavimentando el camino con Jakarta EE 9 y Apache TomEE
Pavimentando el camino con Jakarta EE 9 y Apache TomEE
 
[INNOVATUBE] Tech Talk #3: Golang - Takaaki Mizuno
 [INNOVATUBE] Tech Talk #3: Golang - Takaaki Mizuno [INNOVATUBE] Tech Talk #3: Golang - Takaaki Mizuno
[INNOVATUBE] Tech Talk #3: Golang - Takaaki Mizuno
 

En vedette

OE 35 opening of central institution of sanatanis at sanskar dham, Desalpar
OE 35  opening of central institution of sanatanis at sanskar dham, DesalparOE 35  opening of central institution of sanatanis at sanskar dham, Desalpar
OE 35 opening of central institution of sanatanis at sanskar dham, DesalparSatpanth Dharm
 
Series 39 1935 Bombay high court case on Satpanth Issue
Series 39  1935 Bombay high court case on Satpanth IssueSeries 39  1935 Bombay high court case on Satpanth Issue
Series 39 1935 Bombay high court case on Satpanth IssueSatpanth Dharm
 
Series 30 -Umiya_mataji_unjha_resolution_dt._16-nov-1978
Series 30 -Umiya_mataji_unjha_resolution_dt._16-nov-1978Series 30 -Umiya_mataji_unjha_resolution_dt._16-nov-1978
Series 30 -Umiya_mataji_unjha_resolution_dt._16-nov-1978Satpanth Dharm
 
Series 28 How to counter the threat posed by mavals
Series 28  How to counter the threat posed by mavals Series 28  How to counter the threat posed by mavals
Series 28 How to counter the threat posed by mavals Satpanth Dharm
 
C b-macpherson-the-life-and-times-of-liberal-democracy
C b-macpherson-the-life-and-times-of-liberal-democracyC b-macpherson-the-life-and-times-of-liberal-democracy
C b-macpherson-the-life-and-times-of-liberal-democracyUniversity of Campinas
 
Series 33 - E - History of Pirana Satpanth Part 2 of 3
Series 33 - E - History of Pirana Satpanth  Part 2 of 3Series 33 - E - History of Pirana Satpanth  Part 2 of 3
Series 33 - E - History of Pirana Satpanth Part 2 of 3Satpanth Dharm
 
My strategicplan.strategyhuddle.042810
My strategicplan.strategyhuddle.042810My strategicplan.strategyhuddle.042810
My strategicplan.strategyhuddle.042810M3Planning
 
Likes health project
Likes   health projectLikes   health project
Likes health projectmschlafly
 
GE1 important information -on satpanth and samaj d
GE1  important information -on satpanth and samaj dGE1  important information -on satpanth and samaj d
GE1 important information -on satpanth and samaj dSatpanth Dharm
 
Series 33 - G - PPT - History of Pirana satpanth Part 1 of 3
Series 33 - G - PPT - History of Pirana satpanth  Part 1 of 3Series 33 - G - PPT - History of Pirana satpanth  Part 1 of 3
Series 33 - G - PPT - History of Pirana satpanth Part 1 of 3Satpanth Dharm
 
Civil society initiatives on engaging peace processes
Civil society initiatives on engaging peace processesCivil society initiatives on engaging peace processes
Civil society initiatives on engaging peace processesGenPeace
 
Series 10 pirana satpanth kaka appointment and admin rights agreement -d
Series 10  pirana satpanth kaka appointment and admin rights agreement -dSeries 10  pirana satpanth kaka appointment and admin rights agreement -d
Series 10 pirana satpanth kaka appointment and admin rights agreement -dSatpanth Dharm
 
Series 32 1945 -Umiya Mataji Vandhay Mandir -Inauguration
Series 32  1945 -Umiya Mataji Vandhay Mandir -InaugurationSeries 32  1945 -Umiya Mataji Vandhay Mandir -Inauguration
Series 32 1945 -Umiya Mataji Vandhay Mandir -InaugurationSatpanth Dharm
 
Series 9 attachment -photos of original hindu atharv ved pages
Series 9  attachment -photos of original hindu atharv ved pagesSeries 9  attachment -photos of original hindu atharv ved pages
Series 9 attachment -photos of original hindu atharv ved pagesSatpanth Dharm
 

En vedette (20)

Php and MySQL
Php and MySQLPhp and MySQL
Php and MySQL
 
PurpleSearch screenshots
PurpleSearch screenshotsPurpleSearch screenshots
PurpleSearch screenshots
 
OE 35 opening of central institution of sanatanis at sanskar dham, Desalpar
OE 35  opening of central institution of sanatanis at sanskar dham, DesalparOE 35  opening of central institution of sanatanis at sanskar dham, Desalpar
OE 35 opening of central institution of sanatanis at sanskar dham, Desalpar
 
Series 39 1935 Bombay high court case on Satpanth Issue
Series 39  1935 Bombay high court case on Satpanth IssueSeries 39  1935 Bombay high court case on Satpanth Issue
Series 39 1935 Bombay high court case on Satpanth Issue
 
Series 30 -Umiya_mataji_unjha_resolution_dt._16-nov-1978
Series 30 -Umiya_mataji_unjha_resolution_dt._16-nov-1978Series 30 -Umiya_mataji_unjha_resolution_dt._16-nov-1978
Series 30 -Umiya_mataji_unjha_resolution_dt._16-nov-1978
 
Series 28 How to counter the threat posed by mavals
Series 28  How to counter the threat posed by mavals Series 28  How to counter the threat posed by mavals
Series 28 How to counter the threat posed by mavals
 
C b-macpherson-the-life-and-times-of-liberal-democracy
C b-macpherson-the-life-and-times-of-liberal-democracyC b-macpherson-the-life-and-times-of-liberal-democracy
C b-macpherson-the-life-and-times-of-liberal-democracy
 
Series 33 - E - History of Pirana Satpanth Part 2 of 3
Series 33 - E - History of Pirana Satpanth  Part 2 of 3Series 33 - E - History of Pirana Satpanth  Part 2 of 3
Series 33 - E - History of Pirana Satpanth Part 2 of 3
 
My strategicplan.strategyhuddle.042810
My strategicplan.strategyhuddle.042810My strategicplan.strategyhuddle.042810
My strategicplan.strategyhuddle.042810
 
Likes health project
Likes   health projectLikes   health project
Likes health project
 
GE1 important information -on satpanth and samaj d
GE1  important information -on satpanth and samaj dGE1  important information -on satpanth and samaj d
GE1 important information -on satpanth and samaj d
 
Series 33 - G - PPT - History of Pirana satpanth Part 1 of 3
Series 33 - G - PPT - History of Pirana satpanth  Part 1 of 3Series 33 - G - PPT - History of Pirana satpanth  Part 1 of 3
Series 33 - G - PPT - History of Pirana satpanth Part 1 of 3
 
Civil society initiatives on engaging peace processes
Civil society initiatives on engaging peace processesCivil society initiatives on engaging peace processes
Civil society initiatives on engaging peace processes
 
Series 10 pirana satpanth kaka appointment and admin rights agreement -d
Series 10  pirana satpanth kaka appointment and admin rights agreement -dSeries 10  pirana satpanth kaka appointment and admin rights agreement -d
Series 10 pirana satpanth kaka appointment and admin rights agreement -d
 
Series 32 1945 -Umiya Mataji Vandhay Mandir -Inauguration
Series 32  1945 -Umiya Mataji Vandhay Mandir -InaugurationSeries 32  1945 -Umiya Mataji Vandhay Mandir -Inauguration
Series 32 1945 -Umiya Mataji Vandhay Mandir -Inauguration
 
Coimbatore
CoimbatoreCoimbatore
Coimbatore
 
Effective googling
Effective googlingEffective googling
Effective googling
 
Series 9 attachment -photos of original hindu atharv ved pages
Series 9  attachment -photos of original hindu atharv ved pagesSeries 9  attachment -photos of original hindu atharv ved pages
Series 9 attachment -photos of original hindu atharv ved pages
 
Anag
AnagAnag
Anag
 
Abecedario para niños
Abecedario para niñosAbecedario para niños
Abecedario para niños
 

Similaire à PHP for Android: prototyping Android apps in php

Unleash your Symfony projects with eZ Platform
Unleash your Symfony projects with eZ PlatformUnleash your Symfony projects with eZ Platform
Unleash your Symfony projects with eZ PlatformSébastien Morel
 
NLUUG Spring 2012 - OpenShift Primer
NLUUG Spring 2012 - OpenShift PrimerNLUUG Spring 2012 - OpenShift Primer
NLUUG Spring 2012 - OpenShift PrimerEric D. Schabell
 
An OpenShift Primer for Developers to get your Code into the Cloud (PTJUG)
An OpenShift Primer for Developers to get your Code into the Cloud (PTJUG)An OpenShift Primer for Developers to get your Code into the Cloud (PTJUG)
An OpenShift Primer for Developers to get your Code into the Cloud (PTJUG)Eric D. Schabell
 
Introduction to PHP - SDPHP
Introduction to PHP - SDPHPIntroduction to PHP - SDPHP
Introduction to PHP - SDPHPEric Johnson
 
Building Cross-Platform Mobile Apps
Building Cross-Platform Mobile AppsBuilding Cross-Platform Mobile Apps
Building Cross-Platform Mobile AppsTroy Miles
 
Android Scripting
Android ScriptingAndroid Scripting
Android ScriptingJuan Gomez
 
Php Inside - confoo 2011 - Derick Rethans
Php Inside -  confoo 2011 - Derick RethansPhp Inside -  confoo 2011 - Derick Rethans
Php Inside - confoo 2011 - Derick RethansBachkoutou Toutou
 
Development workflow
Development workflowDevelopment workflow
Development workflowSigsiu.NET
 
Ran Mizrahi - Symfony2 meets Drupal8
Ran Mizrahi - Symfony2 meets Drupal8Ran Mizrahi - Symfony2 meets Drupal8
Ran Mizrahi - Symfony2 meets Drupal8Ran Mizrahi
 
All a flutter about Flutter.io
All a flutter about Flutter.ioAll a flutter about Flutter.io
All a flutter about Flutter.ioSteven Cooper
 
State ofappdevelopment
State ofappdevelopmentState ofappdevelopment
State ofappdevelopmentgillygize
 
OpenShift State of the Union, brought to you by JBoss
OpenShift State of the Union, brought to you by JBossOpenShift State of the Union, brought to you by JBoss
OpenShift State of the Union, brought to you by JBossEric D. Schabell
 
web2py:Web development like a boss
web2py:Web development like a bossweb2py:Web development like a boss
web2py:Web development like a bossFrancisco Ribeiro
 
Software Quality Assurance Tooling - Wintersession 2024
Software Quality Assurance Tooling - Wintersession 2024Software Quality Assurance Tooling - Wintersession 2024
Software Quality Assurance Tooling - Wintersession 2024Henry Schreiner
 
Apps with Apache Cordova and Phonegap
Apps with Apache Cordova and PhonegapApps with Apache Cordova and Phonegap
Apps with Apache Cordova and PhonegapChristian Grobmeier
 
MOBILE PENTESTING Frida.pdf
MOBILE PENTESTING Frida.pdfMOBILE PENTESTING Frida.pdf
MOBILE PENTESTING Frida.pdfAdityamd4
 
OpenShift Primer - get your business into the Cloud today!
OpenShift Primer - get your business into the Cloud today!OpenShift Primer - get your business into the Cloud today!
OpenShift Primer - get your business into the Cloud today!Eric D. Schabell
 

Similaire à PHP for Android: prototyping Android apps in php (20)

Unleash your Symfony projects with eZ Platform
Unleash your Symfony projects with eZ PlatformUnleash your Symfony projects with eZ Platform
Unleash your Symfony projects with eZ Platform
 
NLUUG Spring 2012 - OpenShift Primer
NLUUG Spring 2012 - OpenShift PrimerNLUUG Spring 2012 - OpenShift Primer
NLUUG Spring 2012 - OpenShift Primer
 
An OpenShift Primer for Developers to get your Code into the Cloud (PTJUG)
An OpenShift Primer for Developers to get your Code into the Cloud (PTJUG)An OpenShift Primer for Developers to get your Code into the Cloud (PTJUG)
An OpenShift Primer for Developers to get your Code into the Cloud (PTJUG)
 
Hybrid HTML5 Apps
Hybrid HTML5 AppsHybrid HTML5 Apps
Hybrid HTML5 Apps
 
Introduction to PHP - SDPHP
Introduction to PHP - SDPHPIntroduction to PHP - SDPHP
Introduction to PHP - SDPHP
 
Building Cross-Platform Mobile Apps
Building Cross-Platform Mobile AppsBuilding Cross-Platform Mobile Apps
Building Cross-Platform Mobile Apps
 
Sa
SaSa
Sa
 
Android Scripting
Android ScriptingAndroid Scripting
Android Scripting
 
Php Inside - confoo 2011 - Derick Rethans
Php Inside -  confoo 2011 - Derick RethansPhp Inside -  confoo 2011 - Derick Rethans
Php Inside - confoo 2011 - Derick Rethans
 
Development workflow
Development workflowDevelopment workflow
Development workflow
 
Ran Mizrahi - Symfony2 meets Drupal8
Ran Mizrahi - Symfony2 meets Drupal8Ran Mizrahi - Symfony2 meets Drupal8
Ran Mizrahi - Symfony2 meets Drupal8
 
All a flutter about Flutter.io
All a flutter about Flutter.ioAll a flutter about Flutter.io
All a flutter about Flutter.io
 
State ofappdevelopment
State ofappdevelopmentState ofappdevelopment
State ofappdevelopment
 
OpenShift State of the Union, brought to you by JBoss
OpenShift State of the Union, brought to you by JBossOpenShift State of the Union, brought to you by JBoss
OpenShift State of the Union, brought to you by JBoss
 
web2py:Web development like a boss
web2py:Web development like a bossweb2py:Web development like a boss
web2py:Web development like a boss
 
Software Quality Assurance Tooling - Wintersession 2024
Software Quality Assurance Tooling - Wintersession 2024Software Quality Assurance Tooling - Wintersession 2024
Software Quality Assurance Tooling - Wintersession 2024
 
Apps with Apache Cordova and Phonegap
Apps with Apache Cordova and PhonegapApps with Apache Cordova and Phonegap
Apps with Apache Cordova and Phonegap
 
MOBILE PENTESTING Frida.pdf
MOBILE PENTESTING Frida.pdfMOBILE PENTESTING Frida.pdf
MOBILE PENTESTING Frida.pdf
 
OpenShift Primer - get your business into the Cloud today!
OpenShift Primer - get your business into the Cloud today!OpenShift Primer - get your business into the Cloud today!
OpenShift Primer - get your business into the Cloud today!
 
Current state-of-php
Current state-of-phpCurrent state-of-php
Current state-of-php
 

PHP for Android: prototyping Android apps in php