SlideShare a Scribd company logo
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

More Related Content

What's hot

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
César Hernández
 
JavaScript for PHP Developers
JavaScript for PHP DevelopersJavaScript for PHP Developers
JavaScript for PHP Developers
funkatron
 
Flutter beers and pizza
Flutter beers and pizzaFlutter beers and pizza
Flutter beers and pizza
Jon Durán
 
Spring-batch Groovy y Gradle
Spring-batch Groovy y GradleSpring-batch Groovy y Gradle
Spring-batch Groovy y Gradle
Antonio Mas
 
RxNetty
RxNettyRxNetty
RxNetty
Diego Pacheco
 
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 2007
Tim 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 2021
César Hernández
 
PSR7 - interoperabilità HTTP
PSR7 - interoperabilità HTTPPSR7 - interoperabilità HTTP
PSR7 - interoperabilità HTTP
Massimiliano Arione
 
C/C++ Remote Development Overview
C/C++ Remote Development OverviewC/C++ Remote Development Overview
C/C++ Remote Development Overview
Thitipong Jampajeen
 
Building Command Line Tools with Golang
Building Command Line Tools with GolangBuilding Command Line Tools with Golang
Building Command Line Tools with Golang
Takaaki Mizuno
 
plone.api
plone.apiplone.api
plone.api
gilforcada
 
Beyond QA
Beyond QABeyond QA
Beyond QA
gilforcada
 
Let the contribution begin
Let the contribution beginLet the contribution begin
Let the contribution begin
SeongJae Park
 
Best practices for joomla extensions developers
Best practices for joomla extensions developersBest practices for joomla extensions developers
Best practices for joomla extensions developers
Francesco 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 future
gilforcada
 
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 Mizuno
Nexus FrontierTech
 

What's hot (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
 

Viewers also liked

Php and MySQL
Php and MySQLPhp and MySQL
Php and MySQL
Tiji Thomas
 
PurpleSearch screenshots
PurpleSearch screenshotsPurpleSearch screenshots
PurpleSearch screenshots
Try PurpleSearch
 
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
Satpanth 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 Issue
Satpanth 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-1978
Satpanth 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-democracy
University 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 3
Satpanth Dharm
 
My strategicplan.strategyhuddle.042810
My strategicplan.strategyhuddle.042810My strategicplan.strategyhuddle.042810
My strategicplan.strategyhuddle.042810
M3Planning
 
Likes health project
Likes   health projectLikes   health project
Likes health project
mschlafly
 
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
Satpanth 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 3
Satpanth 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 processes
GenPeace
 
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
Satpanth 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 -Inauguration
Satpanth Dharm
 
Coimbatore
CoimbatoreCoimbatore
Effective googling
Effective googlingEffective googling
Effective googling
Venkatraman Ananthanarayanan
 
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
Satpanth Dharm
 
Anag
AnagAnag
Anag
GenPeace
 
Abecedario para niños
Abecedario para niñosAbecedario para niños
Abecedario para niños
informaticadealumnos
 

Viewers also liked (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
 

Similar to 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 Platform
Sébastien Morel
 
NLUUG Spring 2012 - OpenShift Primer
NLUUG Spring 2012 - OpenShift PrimerNLUUG Spring 2012 - OpenShift Primer
NLUUG Spring 2012 - OpenShift Primer
Eric 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
 
Hybrid HTML5 Apps
Hybrid HTML5 AppsHybrid HTML5 Apps
Hybrid HTML5 Apps
Hugo Rodrigues
 
Introduction to PHP - SDPHP
Introduction to PHP - SDPHPIntroduction to PHP - SDPHP
Introduction to PHP - SDPHP
Eric Johnson
 
Building Cross-Platform Mobile Apps
Building Cross-Platform Mobile AppsBuilding Cross-Platform Mobile Apps
Building Cross-Platform Mobile Apps
Troy Miles
 
Sa
SaSa
Android Scripting
Android ScriptingAndroid Scripting
Android Scripting
Juan Gomez
 
Php Inside - confoo 2011 - Derick Rethans
Php Inside -  confoo 2011 - Derick RethansPhp Inside -  confoo 2011 - Derick Rethans
Php Inside - confoo 2011 - Derick Rethans
Bachkoutou Toutou
 
Development workflow
Development workflowDevelopment workflow
Development workflow
Sigsiu.NET
 
Ran Mizrahi - Symfony2 meets Drupal8
Ran Mizrahi - Symfony2 meets Drupal8Ran Mizrahi - Symfony2 meets Drupal8
Ran Mizrahi - Symfony2 meets Drupal8
Ran Mizrahi
 
All a flutter about Flutter.io
All a flutter about Flutter.ioAll a flutter about Flutter.io
All a flutter about Flutter.io
Steven Cooper
 
State ofappdevelopment
State ofappdevelopmentState ofappdevelopment
State ofappdevelopment
gillygize
 
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
Eric D. Schabell
 
web2py:Web development like a boss
web2py:Web development like a bossweb2py:Web development like a boss
web2py:Web development like a boss
Francisco Ribeiro
 
Software Quality Assurance Tooling - Wintersession 2024
Software Quality Assurance Tooling - Wintersession 2024Software Quality Assurance Tooling - Wintersession 2024
Software Quality Assurance Tooling - Wintersession 2024
Henry Schreiner
 
Apps with Apache Cordova and Phonegap
Apps with Apache Cordova and PhonegapApps with Apache Cordova and Phonegap
Apps with Apache Cordova and Phonegap
Christian Grobmeier
 
MOBILE PENTESTING Frida.pdf
MOBILE PENTESTING Frida.pdfMOBILE PENTESTING Frida.pdf
MOBILE PENTESTING Frida.pdf
Adityamd4
 
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
 
Current state-of-php
Current state-of-phpCurrent state-of-php
Current state-of-php
Richard McIntyre
 

Similar to 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