SlideShare a Scribd company logo
1 of 94
Download to read offline
Creating Mobile Apps with
PHP & Symfony
Pablo Godel @pgodel
http://joind.in/8159
Tek13, Chicago, May 15 2013
Wednesday, May 15, 13
⁃ Born in Argentina, living in the US since 1999
⁃ PHP & Symfony developer
⁃ Founder of the original PHP mailing list in spanish
⁃ Master of the parrilla
⁃ Co-founder of ServerGrove
Who am I?!
Wednesday, May 15, 13
Wednesday, May 15, 13
Wednesday, May 15, 13
⁃ Founded ServerGrove Networks in 2005
⁃ Provider of web hosting specialized in PHP,
Symfony, ZendFramework, MongoDB and others
⁃ Servers in USA and Europe!
Who am I?!
Wednesday, May 15, 13
⁃ Very active open source supporter through code
contributions and usergroups/conference sponsoring
Community is our Teacher
Wednesday, May 15, 13
Why?
Mobile Apps - Why
Wednesday, May 15, 13
•More & more people have access to Internet through
mobile devices
•Devices are more powerful & versatile
•Internet access is faster and more reliable
•Users demand services and applications at all times &
and the go
•Don’t give advantages in an ultra-competitive market
•Your competition is already using it or implementing it
Mobile Apps - Why
Wednesday, May 15, 13
Some numbers...
Mobile Apps - Why
Wednesday, May 15, 13
•Estimated 6.5 billion mobile subscriptions globally (over
90%)
•1.7 billion mobile phones sold in 2012
•1 billion users in China alone
•321M subscriptions in the US (over 100%)
•Devices range from phone and tablets to door locks,
thermostats, etc.
Mobile Apps - Why
Wednesday, May 15, 13
How did we get here?
Mobile Apps - Why
Wednesday, May 15, 13
Let’s see some history...
Mobile Apps - History
Wednesday, May 15, 13
First commercial cellular network launched in
Japan )1G - first generation(
1979
Mobile Apps - History
Wednesday, May 15, 13
The “mobile” telephone
Motorola DynaTAC -
aka “The Boot”
cost: US$ 3995
weight:793g / 28 ounces
1983 Motorola DynaTAC
Mobile Apps - History
Wednesday, May 15, 13
Common Standard to connect networks and
apps
•WAP client
•Server sends WML (XML)
WAP - Wireless Application Protocol
<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML
1.1//EN"
"http://www.wapforum.org/DTD/wml_1.1.xml" >
<wml>
<card id="main" title="First Card">
<p mode="wrap">This is a sample WML
page.</p>
</card>
</wml>
1997
Mobile Apps - History
Wednesday, May 15, 13
WAP/WML
Mobile Apps - History
Wednesday, May 15, 13
WAP/WML
Mobile Apps - History
Wednesday, May 15, 13
WAP/WML
Mobile Apps - History
Wednesday, May 15, 13
Developer:
WAP/WML
Mobile Apps - History
Wednesday, May 15, 13
User:
WAP/WML
Mobile Apps - History
Wednesday, May 15, 13
2007...
Mobile Apps - History
Wednesday, May 15, 13
•Revolutionized
the market of
mobile telephony
•Safari Web Client
iPhone2007
Mobile Apps - History
Wednesday, May 15, 13
iPhone App Store2007
Mobile Apps - History
Wednesday, May 15, 13
First Android Device2008
Mobile Apps - History
Wednesday, May 15, 13
iPad2010
Mobile Apps - History
Wednesday, May 15, 13
So what does all
this mean?
Mobile Apps - History
Wednesday, May 15, 13
The PC is not dead
Mobile Apps - History
The Mobile Generation
Wednesday, May 15, 13
The PC is not dead, yet?
The Mobile Generation
Mobile Apps - History
Wednesday, May 15, 13
Information is now consumed on phones and tablets
The Mobile Generation
Mobile Apps - History
Wednesday, May 15, 13
And this is just the beginning...
The Mobile Generation
Mobile Apps - History
Wednesday, May 15, 13
Symfony?
Mobile Apps - Symfony
Wednesday, May 15, 13
What is Symfony?
Mobile Apps - Symfony
Wednesday, May 15, 13
Definition by Fabien Potencier:
⁃ Symfony2 is a reusable set of standalone,
decoupled, and cohesive PHP components
that solve common web development
problems.
⁃ Based on these components, Symfony2 is
also a full-stack web framework.
http://fabien.potencier.org/article/49/what-is-symfony2
Mobile Apps - Symfony
Wednesday, May 15, 13
Silex
The PHP/‘Symfony’ micro-framework
http://silex.sensiolabs.org/
Mobile Apps - Symfony
Wednesday, May 15, 13
25 high quality
components
http://symfony.com/doc/current/components/index.html
Mobile Apps - Symfony
Wednesday, May 15, 13
• DependencyInjection
• EventDispatcher
• HttpFoundation
• DomCrawler
• ClassLoader
• CssSelector
• HttpKernel
• BrowserKit
• Templating
• Translation
• Serializer
• Validator
• Security
• Routing
• Console
• Process
• Config
• Finder
• Locale
• Yaml
• Form
Components:
GitHub: http://github.com/symfony
Mobile Apps - Symfony
Wednesday, May 15, 13
Proyects using Symfony2 components:
• Silex: BrowerKit, CssSelector, DomCrawler, EventDispatcher, HttpFoundation,
HttpKernel, Routing, Form, Translation, Validator
• Goutte: BrowserKit, DomCrawler, CssSelector, Process, ClassLoader, Finder
• Behat: Console, DependencyInjection, EventDispatcher, Finder, Yaml, Config,
Translation
• Doctrine2: Console, Yaml Propel2: Console, ClassLoader, Yaml
• PHPUnit: Yaml
• FLOW3: Yaml
• Midguard CMS: most of them in their next version?
• phpBB 4: most of them
• Drupal 8: ClassLoader, HttpFoundation, HttpKernel, and more
• EZ Publish
• Laravel
• Composer
• ...
Mobile Apps - Symfony
Wednesday, May 15, 13
Do you know or used
symfony 1.x?
Mobile Apps - Symfony
Wednesday, May 15, 13
Forget it...
Mobile Apps - Symfony
Wednesday, May 15, 13
The only thing in
common between
symfony 1.x & Symfony2
is the name...
Mobile Apps - Symfony
Wednesday, May 15, 13
OK... the web folder too...
Mobile Apps - Symfony
Wednesday, May 15, 13
Why Symfony?
Mobile Apps - Symfony
Wednesday, May 15, 13
•Provides solid base to build good HTTP &
RESTful APIs
•Twig makes it easy to build templates for
mobile devices
•Re-use code for different devices thanks to
templates, controllers and routing
Mobile Apps - Symfony
Wednesday, May 15, 13
1.Native applications
2.SMS applications & Voice applications
3.Web aplicaciones
4.Hybrid applications (mix native, web, others)
Mobile Apps - Types
Wednesday, May 15, 13
Native Applications
Mobile Apps - Types
Wednesday, May 15, 13
•iPhone - Objective-C
•Android - Java
•Windows Mobile - .NET
•Frameworks multi-platform
⁃ PhoneGap http://phonegap.com
⁃ rhomobile http://rhomobile.com
⁃ Appceledator http://appcelerator.com
⁃ Corona http://anscamobile.com/corona/
Mobile Apps - Native Apps
Wednesday, May 15, 13
Common uses:
•send emails & messages in general
•loading of profile data
•authentication & authorization
•chats
Mobile Apps - Native Apps
PHP does not run in these
devices but native apps need to
retrieve and store data from
servers.
Wednesday, May 15, 13
Some considerations:
•Design API (RESTful, HTTP, XML-RPC) early
on at the development cycle
•An API can be used for other types of clients
(ej. Desktop como Adobe AIR)
•Re-use controllers and use _format to
generate different content types (XML, JSON,
etc)
Mobile Apps - Native Apps
Wednesday, May 15, 13
Build APIs with Symfony2
- FOSRestBundle
https://packagist.org/packages/friendsofsymfony/rest-
bundle
- ApiDocBundle
https://packagist.org/packages/nelmio/api-doc-bundle
Mobile Apps - Native Apps
Build APIs with Silex
- responsible-service-provider
- silex-skeleton-rest
Wednesday, May 15, 13
Push Notifications
Server sends messages to mobile devices
- AppleApnPushBundle
- RMSPushNotificationsBundle
- DABSquaredPushNotificationsBundle
- ZendServiceGoogleGcm
- ZendServiceAppleApns
Mobile Apps - Native Apps
Wednesday, May 15, 13
SMS (and voice) Applications
Mobile Apps - SMS Apps
Wednesday, May 15, 13
Symfony can send/receive text messages
Common uses:
- Alerts
- Chats
- Electronic payments
- Ads
- Two-factor authentication
Mobile Apps - SMS Apps
Wednesday, May 15, 13
Mobile Apps - SMS Apps
Wednesday, May 15, 13
SMS Gateway providers:
•Twilio
•Nexmo
•Clickatell
•BulkSMS
Mobile Apps - SMS Apps
Wednesday, May 15, 13
MMS are multimedia messages with text,
images, video, audio.
Common uses:
- Photo processing
- Sending/scanning 2D barcodes
Mobile Apps - SMS/MMS Apps
https://github.com/endroid/QrCode
https://github.com/endroid/EndroidQrCodeBundle
https://github.com/mkoppanen/php-zbarcode
Wednesday, May 15, 13
Web Applications
Mobile Apps - Web Apps
Wednesday, May 15, 13
Mobile Apps - Web Apps
http://forecast.io
Wednesday, May 15, 13
Frameworks HTML / Javascript
• iui
http://code.google.com/p/iui/ (one of the first ones)
• JQuery Mobile
http://jquerymobile.com/ (Open source)
• JQTouch
http://jqtouch.com/ (Open source)
• DHTMLX Touch
http://dhtmlx.com/touch/ (Open source)
• The M Project
http://www.the-m-project.org/ (Open source)
• Sensa Touch
http://www.sencha.com/products/touch/
Mobile Apps - Web Apps
Wednesday, May 15, 13
Mobile Apps - Web Apps
jQuery Mobile
Wednesday, May 15, 13
Supports:
- IOS (iPhone/iPad)
- Android
- Blackberry
- Windows Phone
- palm webOS
- symbian
jQuery Mobile
Mobile Apps - Web Apps
Wednesday, May 15, 13
jQuery Mobile
Mobile Apps - Web Apps
Wednesday, May 15, 13
•Based on jQuery
•Light (40KB)
•HTML5
•Accesible (works on screen readers)
•Events, plugins, themes
•Lots of documentation
jQuery Mobile - Features
Mobile Apps - Web Apps
Wednesday, May 15, 13
•Page management
•Transitions
•Dialog windows
•Links and buttons
•Navigation bars
•Header / Footer
•Forms
•Lists
Mobile Apps - Web Apps
jQuery Mobile - Features
Wednesday, May 15, 13
jQuery Mobile - Page management
<body>
<!-- Start of first page -->
<div data-role="page" id="foo">
! <div data-role="content">!
! ! <p>I'm first in the source order so I'm shown as the page.
</p>!!
! ! <p>View internal page called <a href="#bar">bar</a></p>!
! </div><!-- /content -->
</div><!-- /page -->
</body>
Mobile Apps - Web Apps
Wednesday, May 15, 13
<body>
<!-- Start of first page -->
<div data-role="page" id="foo">
! <div data-role="content">!
! ! <p>View internal page called <a href="#bar">bar</a></p>!
! </div><!-- /content -->
</div><!-- /page -->
<!-- Start of second page -->
<div data-role="page" id="bar">
! <div data-role="content">!
! ! <p><a href="#foo">Back to foo</a></p>!
! </div><!-- /content -->
</div><!-- /page -->
</body>
Mobile Apps - Web Apps
jQuery Mobile - Page management
Wednesday, May 15, 13
jQuery Mobile - Transitions
<a href="foo.html" data-rel="dialog" data-transition="pop">Open dialog</a>
<a href="foo.html" data-rel="dialog" data-transition="slidedown">Open dialog</a>
<a href="foo.html" data-rel="dialog" data-transition="flip">Open dialog</a>
<a href="foo.html" data-rel="dialog" data-transition="fade">Open dialog</a>
Mobile Apps - Web Apps
Wednesday, May 15, 13
jQuery Mobile - Dialogs
Mobile Apps - Web Apps
Wednesday, May 15, 13
jQuery Mobile - Navigation bars
<div data-role="header" data-position="inline">
! <a href="index.html" data-icon="delete">Cancel</a>
! <h1>Edit Contact</h1>
! <a href="index.html" data-icon="check">Save</a>
</div>
Mobile Apps - Web Apps
Wednesday, May 15, 13
jQuery Mobile - Forms
Mobile Apps - Web Apps
Wednesday, May 15, 13
jQuery Mobile - Forms
Mobile Apps - Web Apps
Wednesday, May 15, 13
jQuery Mobile - Lists
Mobile Apps - Web Apps
Wednesday, May 15, 13
jQuery Mobile & Symfony
Mobile Apps - Web Apps
Wednesday, May 15, 13
Templates
Mobile Apps - Web Apps
Wednesday, May 15, 13
<!DOCTYPE html>
<html>
<head>
	

 <title>Podisum by ServerGrove</title>
	

 <meta name="viewport" content="width=device-width, initial-
scale=1">
</head>
<body>
{% block content %}
{% endblock %}
</body>
</html>
layout.html.twig
Mobile Apps - Web Apps
Wednesday, May 15, 13
{% extends "layout.html.twig" %}
{% block content %}
<div data-role="page" id="home">
<div data-role="header">
<h1>Podisum</h1>
</div>
<div data-role="content">
<1-- ... -->
</div>
</div>
index.html.twig
Mobile Apps - Web Apps
Wednesday, May 15, 13
<div data-role="header" data-theme="b">
<h1>{{title}}</h1>
<a href="#home" data-icon="home" data-iconpos="notext" data-direction="reverse"
class="ui-btn-right jqm-home" data-ajax="false">Home</a>
</div>
header.mhtml.twig
Mobile Apps - Web Apps
Wednesday, May 15, 13
{% extends "layout.html.twig" %}
{% block content %}
{% include “header.html.twig’ %}
<div data-role="content">
<1-- ... -->
</div>
</div>
index.html.twig
Mobile Apps - Web Apps
Wednesday, May 15, 13
Routing
Mobile Apps - Web Apps
Wednesday, May 15, 13
home:
pattern: /
defaults: { _controller: DemoBundle:Default:index }
talks:
pattern: /talks.{_format}
defaults: { _controller: DemoBundle:Talk:index, _format: html }
requirements:
_format: html|xml|ics
talk:
pattern: /talk/{slug}
defaults: { _controller: DemoBundle:Talk:talk }
jQuery Mobile & Symfony / Routing
Mobile Apps - Web Apps
Wednesday, May 15, 13
Mobile Apps - Web Apps
jQuery Mobile & Symfony / Routing
home:
pattern: /m
defaults: { _controller: DemoBundle:Default:index,_format:mhtml }
talks:
pattern: /m/talks
defaults: { _controller: DemoBundle:Talk:index, _format:mhtml }
talk:
pattern: /m/talk/{slug}
defaults: { _controller: DemoBundle:Talk:talk, _format:mhtml }
Wednesday, May 15, 13
Mobile Apps - Web Apps
jQuery Mobile & Symfony / Routing
(option 2)
home:
pattern: /m
defaults: { _controller: DemoBundle:Default:index, mobile:true }
talks:
pattern: /m/talks
defaults: { _controller: DemoBundle:Talk:index, mobile:true }
talk:
pattern: /m/talk/{slug}
defaults: { _controller: DemoBundle:Talk:talk, mobile:true }
Wednesday, May 15, 13
m_home:
pattern: /m
defaults: { _controller: DemoBundle:Mobile:index }
Mobile Apps - Web Apps
jQuery Mobile & Symfony / Routing
(option 3)
Wednesday, May 15, 13
Controllers & Actions
Mobile Apps - Web Apps
Wednesday, May 15, 13
jQuery Mobile & Symfony / Controller & Action
public function indexAction()
{
$em = $this->get('doctrine')->getEntityManager();
// ...
$format = $this->get('request')->getRequestFormat();
return $this->render('DemoBundle:Default:index.'.$format.'.twig', array(
// ...
));
}
Mobile Apps - Web Apps
Wednesday, May 15, 13
Extras
Mobile Apps - Web Apps
•Detect Mobile devices
http://mobiledetect.net/
•Symfony2 + MobileDetectBundle
•Silex + MobileDetectServiceProvider
Wednesday, May 15, 13
Testing
Mobile Apps - Web Apps
Wednesday, May 15, 13
•Symfony2 functional tests for HTML pages
•For AJAX other testing methods may be used:
•Selenium RC
•Behat
Mobile Apps - Web Apps
Wednesday, May 15, 13
DEMOS !
Podisum:
http://github.com/pgodel/podisum
sunshinephp
http://m.sunshinephp.com/
Control Panel:
•https://control.servergrove.com/
•https://control.servergrove.com/m
login: demo@servergrove.com
password: demo
Mobile Apps - Web Apps
Wednesday, May 15, 13
Podisum http://github.com/pgodel/podisum
Generates summaries of Logstash events
Silex app
Twig templates
Mobile version
Mobile Apps - Web Apps
Wednesday, May 15, 13
Podisum
Apache access_log Logstash
Redis
Podisum redis-client
MongoDB
Podisum Silex App
Web Client
Mobile Apps - Web Apps
Wednesday, May 15, 13
Hybrid Applications
Mobile Apps - Hybrid Apps
Wednesday, May 15, 13
Applications that combine web, sms,
voice and native aspects
Framework PhoneGap
- Build apps with HTML & JavaScript
- Integrates with XCode
- Compiles app into native code
- Access to accelerometer, camera, geolocation,
notifications and more
Mobile Apps - Hybrid Apps
Wednesday, May 15, 13
Questions?
Mobile Apps
Wednesday, May 15, 13
Feedback Please:
http://joind.in/8159
Thank you!
Twitter: @pgodel
IRC Freenode: pgodel
Source: https://github.com/pgodel/podisum
Slides: http://slideshare.net/pgodel
Mobile Apps - Thanks!
Wednesday, May 15, 13

More Related Content

What's hot

Introduction to eBPF
Introduction to eBPFIntroduction to eBPF
Introduction to eBPFRogerColl2
 
Quarkus tips, tricks, and techniques
Quarkus tips, tricks, and techniquesQuarkus tips, tricks, and techniques
Quarkus tips, tricks, and techniquesRed Hat Developers
 
Adopting OpenTelemetry
Adopting OpenTelemetryAdopting OpenTelemetry
Adopting OpenTelemetryVincent Behar
 
Cloud Monitoring with Prometheus
Cloud Monitoring with PrometheusCloud Monitoring with Prometheus
Cloud Monitoring with PrometheusQAware GmbH
 
Build Low-Latency Applications in Rust on ScyllaDB
Build Low-Latency Applications in Rust on ScyllaDBBuild Low-Latency Applications in Rust on ScyllaDB
Build Low-Latency Applications in Rust on ScyllaDBScyllaDB
 
Measuring P99 Latency in Event-Driven Architectures with OpenTelemetry
Measuring P99 Latency in Event-Driven Architectures with OpenTelemetryMeasuring P99 Latency in Event-Driven Architectures with OpenTelemetry
Measuring P99 Latency in Event-Driven Architectures with OpenTelemetryScyllaDB
 
Gatekeeper: API gateway
Gatekeeper: API gatewayGatekeeper: API gateway
Gatekeeper: API gatewayChengHui Weng
 
Monitoring Your AWS EKS Environment with Datadog
Monitoring Your AWS EKS Environment with DatadogMonitoring Your AWS EKS Environment with Datadog
Monitoring Your AWS EKS Environment with DatadogDevOps.com
 
PCE 〜MPLSネットワークのSDN化を本気で実現する"唯一の"方法〜
PCE 〜MPLSネットワークのSDN化を本気で実現する"唯一の"方法〜PCE 〜MPLSネットワークのSDN化を本気で実現する"唯一の"方法〜
PCE 〜MPLSネットワークのSDN化を本気で実現する"唯一の"方法〜Takuya Miyasaka
 
Kafka at half the price with JBOD setup
Kafka at half the price with JBOD setupKafka at half the price with JBOD setup
Kafka at half the price with JBOD setupDong Lin
 
AllDayDevOps ZAP automation in CI
AllDayDevOps ZAP automation in CIAllDayDevOps ZAP automation in CI
AllDayDevOps ZAP automation in CISimon Bennetts
 
Observability in Java: Getting Started with OpenTelemetry
Observability in Java: Getting Started with OpenTelemetryObservability in Java: Getting Started with OpenTelemetry
Observability in Java: Getting Started with OpenTelemetryDevOps.com
 
Traffic Control with Envoy Proxy
Traffic Control with Envoy ProxyTraffic Control with Envoy Proxy
Traffic Control with Envoy ProxyMark McBride
 
Battle of the frameworks : Quarkus vs SpringBoot
Battle of the frameworks : Quarkus vs SpringBootBattle of the frameworks : Quarkus vs SpringBoot
Battle of the frameworks : Quarkus vs SpringBootChristos Sotiriou
 
Build and Deploy Cloud Native Camel Quarkus routes with Tekton and Knative
Build and Deploy Cloud Native Camel Quarkus routes with Tekton and KnativeBuild and Deploy Cloud Native Camel Quarkus routes with Tekton and Knative
Build and Deploy Cloud Native Camel Quarkus routes with Tekton and KnativeOmar Al-Safi
 
Quarkus Denmark 2019
Quarkus Denmark 2019Quarkus Denmark 2019
Quarkus Denmark 2019Max Andersen
 
SpringBoot 3 Observability
SpringBoot 3 ObservabilitySpringBoot 3 Observability
SpringBoot 3 ObservabilityKnoldus Inc.
 
Lessons Learned with Unity and WebGL
Lessons Learned with Unity and WebGLLessons Learned with Unity and WebGL
Lessons Learned with Unity and WebGLLior Tal
 

What's hot (20)

Introduction to eBPF
Introduction to eBPFIntroduction to eBPF
Introduction to eBPF
 
Quarkus tips, tricks, and techniques
Quarkus tips, tricks, and techniquesQuarkus tips, tricks, and techniques
Quarkus tips, tricks, and techniques
 
Adopting OpenTelemetry
Adopting OpenTelemetryAdopting OpenTelemetry
Adopting OpenTelemetry
 
Cloud Monitoring with Prometheus
Cloud Monitoring with PrometheusCloud Monitoring with Prometheus
Cloud Monitoring with Prometheus
 
Helidon 概要
Helidon 概要Helidon 概要
Helidon 概要
 
Build Low-Latency Applications in Rust on ScyllaDB
Build Low-Latency Applications in Rust on ScyllaDBBuild Low-Latency Applications in Rust on ScyllaDB
Build Low-Latency Applications in Rust on ScyllaDB
 
Envoy and Kafka
Envoy and KafkaEnvoy and Kafka
Envoy and Kafka
 
Measuring P99 Latency in Event-Driven Architectures with OpenTelemetry
Measuring P99 Latency in Event-Driven Architectures with OpenTelemetryMeasuring P99 Latency in Event-Driven Architectures with OpenTelemetry
Measuring P99 Latency in Event-Driven Architectures with OpenTelemetry
 
Gatekeeper: API gateway
Gatekeeper: API gatewayGatekeeper: API gateway
Gatekeeper: API gateway
 
Monitoring Your AWS EKS Environment with Datadog
Monitoring Your AWS EKS Environment with DatadogMonitoring Your AWS EKS Environment with Datadog
Monitoring Your AWS EKS Environment with Datadog
 
PCE 〜MPLSネットワークのSDN化を本気で実現する"唯一の"方法〜
PCE 〜MPLSネットワークのSDN化を本気で実現する"唯一の"方法〜PCE 〜MPLSネットワークのSDN化を本気で実現する"唯一の"方法〜
PCE 〜MPLSネットワークのSDN化を本気で実現する"唯一の"方法〜
 
Kafka at half the price with JBOD setup
Kafka at half the price with JBOD setupKafka at half the price with JBOD setup
Kafka at half the price with JBOD setup
 
AllDayDevOps ZAP automation in CI
AllDayDevOps ZAP automation in CIAllDayDevOps ZAP automation in CI
AllDayDevOps ZAP automation in CI
 
Observability in Java: Getting Started with OpenTelemetry
Observability in Java: Getting Started with OpenTelemetryObservability in Java: Getting Started with OpenTelemetry
Observability in Java: Getting Started with OpenTelemetry
 
Traffic Control with Envoy Proxy
Traffic Control with Envoy ProxyTraffic Control with Envoy Proxy
Traffic Control with Envoy Proxy
 
Battle of the frameworks : Quarkus vs SpringBoot
Battle of the frameworks : Quarkus vs SpringBootBattle of the frameworks : Quarkus vs SpringBoot
Battle of the frameworks : Quarkus vs SpringBoot
 
Build and Deploy Cloud Native Camel Quarkus routes with Tekton and Knative
Build and Deploy Cloud Native Camel Quarkus routes with Tekton and KnativeBuild and Deploy Cloud Native Camel Quarkus routes with Tekton and Knative
Build and Deploy Cloud Native Camel Quarkus routes with Tekton and Knative
 
Quarkus Denmark 2019
Quarkus Denmark 2019Quarkus Denmark 2019
Quarkus Denmark 2019
 
SpringBoot 3 Observability
SpringBoot 3 ObservabilitySpringBoot 3 Observability
SpringBoot 3 Observability
 
Lessons Learned with Unity and WebGL
Lessons Learned with Unity and WebGLLessons Learned with Unity and WebGL
Lessons Learned with Unity and WebGL
 

Viewers also liked

Creating Mobile Apps With PHP & Symfony2
Creating Mobile Apps With PHP & Symfony2Creating Mobile Apps With PHP & Symfony2
Creating Mobile Apps With PHP & Symfony2Pablo Godel
 
Symfony2 and MongoDB
Symfony2 and MongoDBSymfony2 and MongoDB
Symfony2 and MongoDBPablo Godel
 
Cf06 e74e 6242-4cd1-856eb9ffc6c215fe
Cf06 e74e 6242-4cd1-856eb9ffc6c215feCf06 e74e 6242-4cd1-856eb9ffc6c215fe
Cf06 e74e 6242-4cd1-856eb9ffc6c215feCarlos Carvalho
 
Manjunatha Resume 7+ years Experience
Manjunatha Resume 7+ years ExperienceManjunatha Resume 7+ years Experience
Manjunatha Resume 7+ years Experiencemanjunathasb
 
47553 c52 14fc-4397-89eca7539c013374
47553 c52 14fc-4397-89eca7539c01337447553 c52 14fc-4397-89eca7539c013374
47553 c52 14fc-4397-89eca7539c013374Carlos Carvalho
 
Periodic Table Group Project Day 1
Periodic Table Group Project   Day 1Periodic Table Group Project   Day 1
Periodic Table Group Project Day 1jmori1
 
Sääkslahti: Fyysinen toimintakyky - tärkeää tietoa lasten ja nuorten hyvinvoi...
Sääkslahti: Fyysinen toimintakyky - tärkeää tietoa lasten ja nuorten hyvinvoi...Sääkslahti: Fyysinen toimintakyky - tärkeää tietoa lasten ja nuorten hyvinvoi...
Sääkslahti: Fyysinen toimintakyky - tärkeää tietoa lasten ja nuorten hyvinvoi...Kouluterveyskysely
 
Snake, summer stop motion
Snake, summer stop motionSnake, summer stop motion
Snake, summer stop motionaq101824
 
Latin 1 lesson 10 share
Latin 1 lesson 10 shareLatin 1 lesson 10 share
Latin 1 lesson 10 sharepolaramy
 
Egoera: La economía de Bizkaia - Enero 2016 - nº19
Egoera: La economía de Bizkaia - Enero 2016 - nº19Egoera: La economía de Bizkaia - Enero 2016 - nº19
Egoera: La economía de Bizkaia - Enero 2016 - nº19Cámara de Comercio de Bilbao
 
Hietanen-Peltola: Valtakunnalliset ohjeet ja toimintamallit - apua arjen työhön
Hietanen-Peltola: Valtakunnalliset ohjeet ja toimintamallit - apua arjen työhönHietanen-Peltola: Valtakunnalliset ohjeet ja toimintamallit - apua arjen työhön
Hietanen-Peltola: Valtakunnalliset ohjeet ja toimintamallit - apua arjen työhönKouluterveyskysely
 
2011 FUM Summer Mission Project
2011 FUM Summer Mission Project2011 FUM Summer Mission Project
2011 FUM Summer Mission ProjectKelly Kellum
 
Leiderschap tonen in duurzame ontwikkeling: hoe haalbaar is het? - Jan Beyne ...
Leiderschap tonen in duurzame ontwikkeling: hoe haalbaar is het? - Jan Beyne ...Leiderschap tonen in duurzame ontwikkeling: hoe haalbaar is het? - Jan Beyne ...
Leiderschap tonen in duurzame ontwikkeling: hoe haalbaar is het? - Jan Beyne ...Antwerp Management School
 
Alanne: Yhteisöllisyyteen kannustava vanhempainmalli - nuorten päihteettömyyt...
Alanne: Yhteisöllisyyteen kannustava vanhempainmalli - nuorten päihteettömyyt...Alanne: Yhteisöllisyyteen kannustava vanhempainmalli - nuorten päihteettömyyt...
Alanne: Yhteisöllisyyteen kannustava vanhempainmalli - nuorten päihteettömyyt...Kouluterveyskysely
 

Viewers also liked (20)

Creating Mobile Apps With PHP & Symfony2
Creating Mobile Apps With PHP & Symfony2Creating Mobile Apps With PHP & Symfony2
Creating Mobile Apps With PHP & Symfony2
 
Symfony2 and MongoDB
Symfony2 and MongoDBSymfony2 and MongoDB
Symfony2 and MongoDB
 
Investigación
InvestigaciónInvestigación
Investigación
 
affTA01 - BAB I
affTA01 - BAB IaffTA01 - BAB I
affTA01 - BAB I
 
Cf06 e74e 6242-4cd1-856eb9ffc6c215fe
Cf06 e74e 6242-4cd1-856eb9ffc6c215feCf06 e74e 6242-4cd1-856eb9ffc6c215fe
Cf06 e74e 6242-4cd1-856eb9ffc6c215fe
 
Manjunatha Resume 7+ years Experience
Manjunatha Resume 7+ years ExperienceManjunatha Resume 7+ years Experience
Manjunatha Resume 7+ years Experience
 
47553 c52 14fc-4397-89eca7539c013374
47553 c52 14fc-4397-89eca7539c01337447553 c52 14fc-4397-89eca7539c013374
47553 c52 14fc-4397-89eca7539c013374
 
Periodic Table Group Project Day 1
Periodic Table Group Project   Day 1Periodic Table Group Project   Day 1
Periodic Table Group Project Day 1
 
Praktiskdesign
PraktiskdesignPraktiskdesign
Praktiskdesign
 
Sääkslahti: Fyysinen toimintakyky - tärkeää tietoa lasten ja nuorten hyvinvoi...
Sääkslahti: Fyysinen toimintakyky - tärkeää tietoa lasten ja nuorten hyvinvoi...Sääkslahti: Fyysinen toimintakyky - tärkeää tietoa lasten ja nuorten hyvinvoi...
Sääkslahti: Fyysinen toimintakyky - tärkeää tietoa lasten ja nuorten hyvinvoi...
 
Snake, summer stop motion
Snake, summer stop motionSnake, summer stop motion
Snake, summer stop motion
 
Latin 1 lesson 10 share
Latin 1 lesson 10 shareLatin 1 lesson 10 share
Latin 1 lesson 10 share
 
Egoera: La economía de Bizkaia - Enero 2016 - nº19
Egoera: La economía de Bizkaia - Enero 2016 - nº19Egoera: La economía de Bizkaia - Enero 2016 - nº19
Egoera: La economía de Bizkaia - Enero 2016 - nº19
 
Hietanen-Peltola: Valtakunnalliset ohjeet ja toimintamallit - apua arjen työhön
Hietanen-Peltola: Valtakunnalliset ohjeet ja toimintamallit - apua arjen työhönHietanen-Peltola: Valtakunnalliset ohjeet ja toimintamallit - apua arjen työhön
Hietanen-Peltola: Valtakunnalliset ohjeet ja toimintamallit - apua arjen työhön
 
2011 FUM Summer Mission Project
2011 FUM Summer Mission Project2011 FUM Summer Mission Project
2011 FUM Summer Mission Project
 
Leiderschap tonen in duurzame ontwikkeling: hoe haalbaar is het? - Jan Beyne ...
Leiderschap tonen in duurzame ontwikkeling: hoe haalbaar is het? - Jan Beyne ...Leiderschap tonen in duurzame ontwikkeling: hoe haalbaar is het? - Jan Beyne ...
Leiderschap tonen in duurzame ontwikkeling: hoe haalbaar is het? - Jan Beyne ...
 
SystemsOverview
SystemsOverviewSystemsOverview
SystemsOverview
 
Alanne: Yhteisöllisyyteen kannustava vanhempainmalli - nuorten päihteettömyyt...
Alanne: Yhteisöllisyyteen kannustava vanhempainmalli - nuorten päihteettömyyt...Alanne: Yhteisöllisyyteen kannustava vanhempainmalli - nuorten päihteettömyyt...
Alanne: Yhteisöllisyyteen kannustava vanhempainmalli - nuorten päihteettömyyt...
 
Cerimonia
CerimoniaCerimonia
Cerimonia
 
affTA05 - BAB V
affTA05 - BAB VaffTA05 - BAB V
affTA05 - BAB V
 

Similar to Creating Mobile Apps with PHP & Symfony: A History and Overview

PhoneGap Session at Multi-Mania.be 2013
PhoneGap Session at Multi-Mania.be 2013PhoneGap Session at Multi-Mania.be 2013
PhoneGap Session at Multi-Mania.be 2013Mihai Corlan
 
Dan Appelquist at BBC News Labs : "firefoxOS - the web, mobile, web apps"
Dan Appelquist at BBC News Labs : "firefoxOS - the web, mobile, web apps"Dan Appelquist at BBC News Labs : "firefoxOS - the web, mobile, web apps"
Dan Appelquist at BBC News Labs : "firefoxOS - the web, mobile, web apps"BBC News Labs
 
Best Practices in Mobile Development: Building Your First jQuery Mobile App
Best Practices in Mobile Development: Building Your First jQuery Mobile AppBest Practices in Mobile Development: Building Your First jQuery Mobile App
Best Practices in Mobile Development: Building Your First jQuery Mobile AppSt. Petersburg College
 
Telecoms 2.0: Understanding the Impact of Open Mobile
Telecoms 2.0: Understanding the Impact of Open MobileTelecoms 2.0: Understanding the Impact of Open Mobile
Telecoms 2.0: Understanding the Impact of Open MobileMobileMonday Norway
 
Portfolio - PROGmaatic Developer Network
Portfolio - PROGmaatic Developer NetworkPortfolio - PROGmaatic Developer Network
Portfolio - PROGmaatic Developer NetworkHabib Ullah Bahar
 
HTML5 Can't Do That
HTML5 Can't Do ThatHTML5 Can't Do That
HTML5 Can't Do ThatNathan Smith
 
Mobile applications for SharePoint using HTML5
Mobile applications for SharePoint using HTML5Mobile applications for SharePoint using HTML5
Mobile applications for SharePoint using HTML5Christian Heindel
 
What's New with Windows Phone - FoxCon Talk
What's New with Windows Phone - FoxCon TalkWhat's New with Windows Phone - FoxCon Talk
What's New with Windows Phone - FoxCon TalkSam Basu
 
Google presentation: The Open Web goes mobile
Google presentation: The Open Web goes mobileGoogle presentation: The Open Web goes mobile
Google presentation: The Open Web goes mobilePeter-Paul Koch
 
Mobile App Development and Xamarin as a Complete Mobile Solution
Mobile App Development and Xamarin as a Complete Mobile SolutionMobile App Development and Xamarin as a Complete Mobile Solution
Mobile App Development and Xamarin as a Complete Mobile SolutionMukteswar Patnaik
 
Web Apps and Responsive Design for Libraries
Web Apps and Responsive Design for LibrariesWeb Apps and Responsive Design for Libraries
Web Apps and Responsive Design for LibrariesMatt Machell
 
Hybridmobileapps 130130213844-phpapp02
Hybridmobileapps 130130213844-phpapp02Hybridmobileapps 130130213844-phpapp02
Hybridmobileapps 130130213844-phpapp02weeyee
 
Open Source to the Rescue of Mobile App and Mobile Web Fragmentation
Open Source to the Rescue of Mobile App and Mobile Web FragmentationOpen Source to the Rescue of Mobile App and Mobile Web Fragmentation
Open Source to the Rescue of Mobile App and Mobile Web FragmentationTom Deryckere
 
PhoneGap Talk @ Sencha Con 2010
PhoneGap Talk @ Sencha Con 2010PhoneGap Talk @ Sencha Con 2010
PhoneGap Talk @ Sencha Con 2010alunny
 
I like i phone and android but know .net
I like i phone and android but know .netI like i phone and android but know .net
I like i phone and android but know .netChris Love
 
Sinergija 11 WP7 Mango multitasking and “multitasking”
Sinergija 11   WP7 Mango multitasking and “multitasking”Sinergija 11   WP7 Mango multitasking and “multitasking”
Sinergija 11 WP7 Mango multitasking and “multitasking”Catalin Gheorghiu
 

Similar to Creating Mobile Apps with PHP & Symfony: A History and Overview (20)

PhoneGap Session at Multi-Mania.be 2013
PhoneGap Session at Multi-Mania.be 2013PhoneGap Session at Multi-Mania.be 2013
PhoneGap Session at Multi-Mania.be 2013
 
Dan Appelquist at BBC News Labs : "firefoxOS - the web, mobile, web apps"
Dan Appelquist at BBC News Labs : "firefoxOS - the web, mobile, web apps"Dan Appelquist at BBC News Labs : "firefoxOS - the web, mobile, web apps"
Dan Appelquist at BBC News Labs : "firefoxOS - the web, mobile, web apps"
 
Phone gap
Phone gapPhone gap
Phone gap
 
[IJCT-V3I2P36] Authors: Amarbir Singh
[IJCT-V3I2P36] Authors: Amarbir Singh[IJCT-V3I2P36] Authors: Amarbir Singh
[IJCT-V3I2P36] Authors: Amarbir Singh
 
Best Practices in Mobile Development: Building Your First jQuery Mobile App
Best Practices in Mobile Development: Building Your First jQuery Mobile AppBest Practices in Mobile Development: Building Your First jQuery Mobile App
Best Practices in Mobile Development: Building Your First jQuery Mobile App
 
Telecoms 2.0: Understanding the Impact of Open Mobile
Telecoms 2.0: Understanding the Impact of Open MobileTelecoms 2.0: Understanding the Impact of Open Mobile
Telecoms 2.0: Understanding the Impact of Open Mobile
 
Portfolio - PROGmaatic Developer Network
Portfolio - PROGmaatic Developer NetworkPortfolio - PROGmaatic Developer Network
Portfolio - PROGmaatic Developer Network
 
DDive- Giuseppe Grasso - mobile su Lotus
DDive- Giuseppe Grasso - mobile su LotusDDive- Giuseppe Grasso - mobile su Lotus
DDive- Giuseppe Grasso - mobile su Lotus
 
Firefox OS Presentation
Firefox OS PresentationFirefox OS Presentation
Firefox OS Presentation
 
HTML5 Can't Do That
HTML5 Can't Do ThatHTML5 Can't Do That
HTML5 Can't Do That
 
Mobile applications for SharePoint using HTML5
Mobile applications for SharePoint using HTML5Mobile applications for SharePoint using HTML5
Mobile applications for SharePoint using HTML5
 
What's New with Windows Phone - FoxCon Talk
What's New with Windows Phone - FoxCon TalkWhat's New with Windows Phone - FoxCon Talk
What's New with Windows Phone - FoxCon Talk
 
Google presentation: The Open Web goes mobile
Google presentation: The Open Web goes mobileGoogle presentation: The Open Web goes mobile
Google presentation: The Open Web goes mobile
 
Mobile App Development and Xamarin as a Complete Mobile Solution
Mobile App Development and Xamarin as a Complete Mobile SolutionMobile App Development and Xamarin as a Complete Mobile Solution
Mobile App Development and Xamarin as a Complete Mobile Solution
 
Web Apps and Responsive Design for Libraries
Web Apps and Responsive Design for LibrariesWeb Apps and Responsive Design for Libraries
Web Apps and Responsive Design for Libraries
 
Hybridmobileapps 130130213844-phpapp02
Hybridmobileapps 130130213844-phpapp02Hybridmobileapps 130130213844-phpapp02
Hybridmobileapps 130130213844-phpapp02
 
Open Source to the Rescue of Mobile App and Mobile Web Fragmentation
Open Source to the Rescue of Mobile App and Mobile Web FragmentationOpen Source to the Rescue of Mobile App and Mobile Web Fragmentation
Open Source to the Rescue of Mobile App and Mobile Web Fragmentation
 
PhoneGap Talk @ Sencha Con 2010
PhoneGap Talk @ Sencha Con 2010PhoneGap Talk @ Sencha Con 2010
PhoneGap Talk @ Sencha Con 2010
 
I like i phone and android but know .net
I like i phone and android but know .netI like i phone and android but know .net
I like i phone and android but know .net
 
Sinergija 11 WP7 Mango multitasking and “multitasking”
Sinergija 11   WP7 Mango multitasking and “multitasking”Sinergija 11   WP7 Mango multitasking and “multitasking”
Sinergija 11 WP7 Mango multitasking and “multitasking”
 

More from Pablo Godel

SymfonyCon Cluj 2017 - Symfony at OpenSky
SymfonyCon Cluj 2017 - Symfony at OpenSkySymfonyCon Cluj 2017 - Symfony at OpenSky
SymfonyCon Cluj 2017 - Symfony at OpenSkyPablo Godel
 
Symfony Live San Francisco 2017 - Symfony @ OpenSky
Symfony Live San Francisco 2017 - Symfony @ OpenSkySymfony Live San Francisco 2017 - Symfony @ OpenSky
Symfony Live San Francisco 2017 - Symfony @ OpenSkyPablo Godel
 
DeSymfony 2017 - Symfony en OpenSky
DeSymfony 2017 - Symfony en OpenSkyDeSymfony 2017 - Symfony en OpenSky
DeSymfony 2017 - Symfony en OpenSkyPablo Godel
 
Deploying Symfony | symfony.cat
Deploying Symfony | symfony.catDeploying Symfony | symfony.cat
Deploying Symfony | symfony.catPablo Godel
 
SymfonyCon Madrid 2014 - Rock Solid Deployment of Symfony Apps
SymfonyCon Madrid 2014 - Rock Solid Deployment of Symfony AppsSymfonyCon Madrid 2014 - Rock Solid Deployment of Symfony Apps
SymfonyCon Madrid 2014 - Rock Solid Deployment of Symfony AppsPablo Godel
 
La Caja de Herramientas del Desarrollador Moderno PHPConferenceAR
La Caja de Herramientas del Desarrollador Moderno PHPConferenceARLa Caja de Herramientas del Desarrollador Moderno PHPConferenceAR
La Caja de Herramientas del Desarrollador Moderno PHPConferenceARPablo Godel
 
Symfony Live NYC 2014 - Rock Solid Deployment of Symfony Apps
Symfony Live NYC 2014 -  Rock Solid Deployment of Symfony AppsSymfony Live NYC 2014 -  Rock Solid Deployment of Symfony Apps
Symfony Live NYC 2014 - Rock Solid Deployment of Symfony AppsPablo Godel
 
The Modern Developer Toolbox
The Modern Developer ToolboxThe Modern Developer Toolbox
The Modern Developer ToolboxPablo Godel
 
PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilid...
PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilid...PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilid...
PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilid...Pablo Godel
 
PHP Conference Argentina 2013 - Deployment de aplicaciones PHP a prueba de balas
PHP Conference Argentina 2013 - Deployment de aplicaciones PHP a prueba de balasPHP Conference Argentina 2013 - Deployment de aplicaciones PHP a prueba de balas
PHP Conference Argentina 2013 - Deployment de aplicaciones PHP a prueba de balasPablo Godel
 
php[architect] Summit Series DevOps 2013 - Rock solid deployment of PHP apps
php[architect] Summit Series DevOps 2013 - Rock solid deployment of PHP appsphp[architect] Summit Series DevOps 2013 - Rock solid deployment of PHP apps
php[architect] Summit Series DevOps 2013 - Rock solid deployment of PHP appsPablo Godel
 
Lone Star PHP 2013 - Sysadmin Skills for PHP Developers
Lone Star PHP 2013 - Sysadmin Skills for PHP DevelopersLone Star PHP 2013 - Sysadmin Skills for PHP Developers
Lone Star PHP 2013 - Sysadmin Skills for PHP DevelopersPablo Godel
 
Lone StarPHP 2013 - Building Web Apps from a New Angle
Lone StarPHP 2013 - Building Web Apps from a New AngleLone StarPHP 2013 - Building Web Apps from a New Angle
Lone StarPHP 2013 - Building Web Apps from a New AnglePablo Godel
 
deSymfony 2013 - Creando aplicaciones web desde otro ángulo con Symfony y A...
deSymfony 2013 -  Creando aplicaciones web desde otro ángulo con Symfony y A...deSymfony 2013 -  Creando aplicaciones web desde otro ángulo con Symfony y A...
deSymfony 2013 - Creando aplicaciones web desde otro ángulo con Symfony y A...Pablo Godel
 
Tek 2013 - Building Web Apps from a New Angle with AngularJS
Tek 2013 - Building Web Apps from a New Angle with AngularJSTek 2013 - Building Web Apps from a New Angle with AngularJS
Tek 2013 - Building Web Apps from a New Angle with AngularJSPablo Godel
 
Soflophp 2013 - SysAdmin skills for PHP developers
Soflophp 2013 - SysAdmin skills for PHP developersSoflophp 2013 - SysAdmin skills for PHP developers
Soflophp 2013 - SysAdmin skills for PHP developersPablo Godel
 
Symfony2 and MongoDB - MidwestPHP 2013
Symfony2 and MongoDB - MidwestPHP 2013   Symfony2 and MongoDB - MidwestPHP 2013
Symfony2 and MongoDB - MidwestPHP 2013 Pablo Godel
 
Rock Solid Deployment of Web Applications
Rock Solid Deployment of Web ApplicationsRock Solid Deployment of Web Applications
Rock Solid Deployment of Web ApplicationsPablo Godel
 
Codeworks'12 Rock Solid Deployment of PHP Apps
Codeworks'12 Rock Solid Deployment of PHP AppsCodeworks'12 Rock Solid Deployment of PHP Apps
Codeworks'12 Rock Solid Deployment of PHP AppsPablo Godel
 
PFCongres 2012 - Rock Solid Deployment of PHP Apps
PFCongres 2012 - Rock Solid Deployment of PHP AppsPFCongres 2012 - Rock Solid Deployment of PHP Apps
PFCongres 2012 - Rock Solid Deployment of PHP AppsPablo Godel
 

More from Pablo Godel (20)

SymfonyCon Cluj 2017 - Symfony at OpenSky
SymfonyCon Cluj 2017 - Symfony at OpenSkySymfonyCon Cluj 2017 - Symfony at OpenSky
SymfonyCon Cluj 2017 - Symfony at OpenSky
 
Symfony Live San Francisco 2017 - Symfony @ OpenSky
Symfony Live San Francisco 2017 - Symfony @ OpenSkySymfony Live San Francisco 2017 - Symfony @ OpenSky
Symfony Live San Francisco 2017 - Symfony @ OpenSky
 
DeSymfony 2017 - Symfony en OpenSky
DeSymfony 2017 - Symfony en OpenSkyDeSymfony 2017 - Symfony en OpenSky
DeSymfony 2017 - Symfony en OpenSky
 
Deploying Symfony | symfony.cat
Deploying Symfony | symfony.catDeploying Symfony | symfony.cat
Deploying Symfony | symfony.cat
 
SymfonyCon Madrid 2014 - Rock Solid Deployment of Symfony Apps
SymfonyCon Madrid 2014 - Rock Solid Deployment of Symfony AppsSymfonyCon Madrid 2014 - Rock Solid Deployment of Symfony Apps
SymfonyCon Madrid 2014 - Rock Solid Deployment of Symfony Apps
 
La Caja de Herramientas del Desarrollador Moderno PHPConferenceAR
La Caja de Herramientas del Desarrollador Moderno PHPConferenceARLa Caja de Herramientas del Desarrollador Moderno PHPConferenceAR
La Caja de Herramientas del Desarrollador Moderno PHPConferenceAR
 
Symfony Live NYC 2014 - Rock Solid Deployment of Symfony Apps
Symfony Live NYC 2014 -  Rock Solid Deployment of Symfony AppsSymfony Live NYC 2014 -  Rock Solid Deployment of Symfony Apps
Symfony Live NYC 2014 - Rock Solid Deployment of Symfony Apps
 
The Modern Developer Toolbox
The Modern Developer ToolboxThe Modern Developer Toolbox
The Modern Developer Toolbox
 
PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilid...
PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilid...PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilid...
PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilid...
 
PHP Conference Argentina 2013 - Deployment de aplicaciones PHP a prueba de balas
PHP Conference Argentina 2013 - Deployment de aplicaciones PHP a prueba de balasPHP Conference Argentina 2013 - Deployment de aplicaciones PHP a prueba de balas
PHP Conference Argentina 2013 - Deployment de aplicaciones PHP a prueba de balas
 
php[architect] Summit Series DevOps 2013 - Rock solid deployment of PHP apps
php[architect] Summit Series DevOps 2013 - Rock solid deployment of PHP appsphp[architect] Summit Series DevOps 2013 - Rock solid deployment of PHP apps
php[architect] Summit Series DevOps 2013 - Rock solid deployment of PHP apps
 
Lone Star PHP 2013 - Sysadmin Skills for PHP Developers
Lone Star PHP 2013 - Sysadmin Skills for PHP DevelopersLone Star PHP 2013 - Sysadmin Skills for PHP Developers
Lone Star PHP 2013 - Sysadmin Skills for PHP Developers
 
Lone StarPHP 2013 - Building Web Apps from a New Angle
Lone StarPHP 2013 - Building Web Apps from a New AngleLone StarPHP 2013 - Building Web Apps from a New Angle
Lone StarPHP 2013 - Building Web Apps from a New Angle
 
deSymfony 2013 - Creando aplicaciones web desde otro ángulo con Symfony y A...
deSymfony 2013 -  Creando aplicaciones web desde otro ángulo con Symfony y A...deSymfony 2013 -  Creando aplicaciones web desde otro ángulo con Symfony y A...
deSymfony 2013 - Creando aplicaciones web desde otro ángulo con Symfony y A...
 
Tek 2013 - Building Web Apps from a New Angle with AngularJS
Tek 2013 - Building Web Apps from a New Angle with AngularJSTek 2013 - Building Web Apps from a New Angle with AngularJS
Tek 2013 - Building Web Apps from a New Angle with AngularJS
 
Soflophp 2013 - SysAdmin skills for PHP developers
Soflophp 2013 - SysAdmin skills for PHP developersSoflophp 2013 - SysAdmin skills for PHP developers
Soflophp 2013 - SysAdmin skills for PHP developers
 
Symfony2 and MongoDB - MidwestPHP 2013
Symfony2 and MongoDB - MidwestPHP 2013   Symfony2 and MongoDB - MidwestPHP 2013
Symfony2 and MongoDB - MidwestPHP 2013
 
Rock Solid Deployment of Web Applications
Rock Solid Deployment of Web ApplicationsRock Solid Deployment of Web Applications
Rock Solid Deployment of Web Applications
 
Codeworks'12 Rock Solid Deployment of PHP Apps
Codeworks'12 Rock Solid Deployment of PHP AppsCodeworks'12 Rock Solid Deployment of PHP Apps
Codeworks'12 Rock Solid Deployment of PHP Apps
 
PFCongres 2012 - Rock Solid Deployment of PHP Apps
PFCongres 2012 - Rock Solid Deployment of PHP AppsPFCongres 2012 - Rock Solid Deployment of PHP Apps
PFCongres 2012 - Rock Solid Deployment of PHP Apps
 

Recently uploaded

Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Bluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfBluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfngoud9212
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 

Recently uploaded (20)

Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptxVulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Bluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfBluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdf
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort ServiceHot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 

Creating Mobile Apps with PHP & Symfony: A History and Overview

  • 1. Creating Mobile Apps with PHP & Symfony Pablo Godel @pgodel http://joind.in/8159 Tek13, Chicago, May 15 2013 Wednesday, May 15, 13
  • 2. ⁃ Born in Argentina, living in the US since 1999 ⁃ PHP & Symfony developer ⁃ Founder of the original PHP mailing list in spanish ⁃ Master of the parrilla ⁃ Co-founder of ServerGrove Who am I?! Wednesday, May 15, 13
  • 5. ⁃ Founded ServerGrove Networks in 2005 ⁃ Provider of web hosting specialized in PHP, Symfony, ZendFramework, MongoDB and others ⁃ Servers in USA and Europe! Who am I?! Wednesday, May 15, 13
  • 6. ⁃ Very active open source supporter through code contributions and usergroups/conference sponsoring Community is our Teacher Wednesday, May 15, 13
  • 7. Why? Mobile Apps - Why Wednesday, May 15, 13
  • 8. •More & more people have access to Internet through mobile devices •Devices are more powerful & versatile •Internet access is faster and more reliable •Users demand services and applications at all times & and the go •Don’t give advantages in an ultra-competitive market •Your competition is already using it or implementing it Mobile Apps - Why Wednesday, May 15, 13
  • 9. Some numbers... Mobile Apps - Why Wednesday, May 15, 13
  • 10. •Estimated 6.5 billion mobile subscriptions globally (over 90%) •1.7 billion mobile phones sold in 2012 •1 billion users in China alone •321M subscriptions in the US (over 100%) •Devices range from phone and tablets to door locks, thermostats, etc. Mobile Apps - Why Wednesday, May 15, 13
  • 11. How did we get here? Mobile Apps - Why Wednesday, May 15, 13
  • 12. Let’s see some history... Mobile Apps - History Wednesday, May 15, 13
  • 13. First commercial cellular network launched in Japan )1G - first generation( 1979 Mobile Apps - History Wednesday, May 15, 13
  • 14. The “mobile” telephone Motorola DynaTAC - aka “The Boot” cost: US$ 3995 weight:793g / 28 ounces 1983 Motorola DynaTAC Mobile Apps - History Wednesday, May 15, 13
  • 15. Common Standard to connect networks and apps •WAP client •Server sends WML (XML) WAP - Wireless Application Protocol <?xml version="1.0"?> <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml" > <wml> <card id="main" title="First Card"> <p mode="wrap">This is a sample WML page.</p> </card> </wml> 1997 Mobile Apps - History Wednesday, May 15, 13
  • 16. WAP/WML Mobile Apps - History Wednesday, May 15, 13
  • 17. WAP/WML Mobile Apps - History Wednesday, May 15, 13
  • 18. WAP/WML Mobile Apps - History Wednesday, May 15, 13
  • 19. Developer: WAP/WML Mobile Apps - History Wednesday, May 15, 13
  • 20. User: WAP/WML Mobile Apps - History Wednesday, May 15, 13
  • 21. 2007... Mobile Apps - History Wednesday, May 15, 13
  • 22. •Revolutionized the market of mobile telephony •Safari Web Client iPhone2007 Mobile Apps - History Wednesday, May 15, 13
  • 23. iPhone App Store2007 Mobile Apps - History Wednesday, May 15, 13
  • 24. First Android Device2008 Mobile Apps - History Wednesday, May 15, 13
  • 25. iPad2010 Mobile Apps - History Wednesday, May 15, 13
  • 26. So what does all this mean? Mobile Apps - History Wednesday, May 15, 13
  • 27. The PC is not dead Mobile Apps - History The Mobile Generation Wednesday, May 15, 13
  • 28. The PC is not dead, yet? The Mobile Generation Mobile Apps - History Wednesday, May 15, 13
  • 29. Information is now consumed on phones and tablets The Mobile Generation Mobile Apps - History Wednesday, May 15, 13
  • 30. And this is just the beginning... The Mobile Generation Mobile Apps - History Wednesday, May 15, 13
  • 31. Symfony? Mobile Apps - Symfony Wednesday, May 15, 13
  • 32. What is Symfony? Mobile Apps - Symfony Wednesday, May 15, 13
  • 33. Definition by Fabien Potencier: ⁃ Symfony2 is a reusable set of standalone, decoupled, and cohesive PHP components that solve common web development problems. ⁃ Based on these components, Symfony2 is also a full-stack web framework. http://fabien.potencier.org/article/49/what-is-symfony2 Mobile Apps - Symfony Wednesday, May 15, 13
  • 36. • DependencyInjection • EventDispatcher • HttpFoundation • DomCrawler • ClassLoader • CssSelector • HttpKernel • BrowserKit • Templating • Translation • Serializer • Validator • Security • Routing • Console • Process • Config • Finder • Locale • Yaml • Form Components: GitHub: http://github.com/symfony Mobile Apps - Symfony Wednesday, May 15, 13
  • 37. Proyects using Symfony2 components: • Silex: BrowerKit, CssSelector, DomCrawler, EventDispatcher, HttpFoundation, HttpKernel, Routing, Form, Translation, Validator • Goutte: BrowserKit, DomCrawler, CssSelector, Process, ClassLoader, Finder • Behat: Console, DependencyInjection, EventDispatcher, Finder, Yaml, Config, Translation • Doctrine2: Console, Yaml Propel2: Console, ClassLoader, Yaml • PHPUnit: Yaml • FLOW3: Yaml • Midguard CMS: most of them in their next version? • phpBB 4: most of them • Drupal 8: ClassLoader, HttpFoundation, HttpKernel, and more • EZ Publish • Laravel • Composer • ... Mobile Apps - Symfony Wednesday, May 15, 13
  • 38. Do you know or used symfony 1.x? Mobile Apps - Symfony Wednesday, May 15, 13
  • 39. Forget it... Mobile Apps - Symfony Wednesday, May 15, 13
  • 40. The only thing in common between symfony 1.x & Symfony2 is the name... Mobile Apps - Symfony Wednesday, May 15, 13
  • 41. OK... the web folder too... Mobile Apps - Symfony Wednesday, May 15, 13
  • 42. Why Symfony? Mobile Apps - Symfony Wednesday, May 15, 13
  • 43. •Provides solid base to build good HTTP & RESTful APIs •Twig makes it easy to build templates for mobile devices •Re-use code for different devices thanks to templates, controllers and routing Mobile Apps - Symfony Wednesday, May 15, 13
  • 44. 1.Native applications 2.SMS applications & Voice applications 3.Web aplicaciones 4.Hybrid applications (mix native, web, others) Mobile Apps - Types Wednesday, May 15, 13
  • 45. Native Applications Mobile Apps - Types Wednesday, May 15, 13
  • 46. •iPhone - Objective-C •Android - Java •Windows Mobile - .NET •Frameworks multi-platform ⁃ PhoneGap http://phonegap.com ⁃ rhomobile http://rhomobile.com ⁃ Appceledator http://appcelerator.com ⁃ Corona http://anscamobile.com/corona/ Mobile Apps - Native Apps Wednesday, May 15, 13
  • 47. Common uses: •send emails & messages in general •loading of profile data •authentication & authorization •chats Mobile Apps - Native Apps PHP does not run in these devices but native apps need to retrieve and store data from servers. Wednesday, May 15, 13
  • 48. Some considerations: •Design API (RESTful, HTTP, XML-RPC) early on at the development cycle •An API can be used for other types of clients (ej. Desktop como Adobe AIR) •Re-use controllers and use _format to generate different content types (XML, JSON, etc) Mobile Apps - Native Apps Wednesday, May 15, 13
  • 49. Build APIs with Symfony2 - FOSRestBundle https://packagist.org/packages/friendsofsymfony/rest- bundle - ApiDocBundle https://packagist.org/packages/nelmio/api-doc-bundle Mobile Apps - Native Apps Build APIs with Silex - responsible-service-provider - silex-skeleton-rest Wednesday, May 15, 13
  • 50. Push Notifications Server sends messages to mobile devices - AppleApnPushBundle - RMSPushNotificationsBundle - DABSquaredPushNotificationsBundle - ZendServiceGoogleGcm - ZendServiceAppleApns Mobile Apps - Native Apps Wednesday, May 15, 13
  • 51. SMS (and voice) Applications Mobile Apps - SMS Apps Wednesday, May 15, 13
  • 52. Symfony can send/receive text messages Common uses: - Alerts - Chats - Electronic payments - Ads - Two-factor authentication Mobile Apps - SMS Apps Wednesday, May 15, 13
  • 53. Mobile Apps - SMS Apps Wednesday, May 15, 13
  • 55. MMS are multimedia messages with text, images, video, audio. Common uses: - Photo processing - Sending/scanning 2D barcodes Mobile Apps - SMS/MMS Apps https://github.com/endroid/QrCode https://github.com/endroid/EndroidQrCodeBundle https://github.com/mkoppanen/php-zbarcode Wednesday, May 15, 13
  • 56. Web Applications Mobile Apps - Web Apps Wednesday, May 15, 13
  • 57. Mobile Apps - Web Apps http://forecast.io Wednesday, May 15, 13
  • 58. Frameworks HTML / Javascript • iui http://code.google.com/p/iui/ (one of the first ones) • JQuery Mobile http://jquerymobile.com/ (Open source) • JQTouch http://jqtouch.com/ (Open source) • DHTMLX Touch http://dhtmlx.com/touch/ (Open source) • The M Project http://www.the-m-project.org/ (Open source) • Sensa Touch http://www.sencha.com/products/touch/ Mobile Apps - Web Apps Wednesday, May 15, 13
  • 59. Mobile Apps - Web Apps jQuery Mobile Wednesday, May 15, 13
  • 60. Supports: - IOS (iPhone/iPad) - Android - Blackberry - Windows Phone - palm webOS - symbian jQuery Mobile Mobile Apps - Web Apps Wednesday, May 15, 13
  • 61. jQuery Mobile Mobile Apps - Web Apps Wednesday, May 15, 13
  • 62. •Based on jQuery •Light (40KB) •HTML5 •Accesible (works on screen readers) •Events, plugins, themes •Lots of documentation jQuery Mobile - Features Mobile Apps - Web Apps Wednesday, May 15, 13
  • 63. •Page management •Transitions •Dialog windows •Links and buttons •Navigation bars •Header / Footer •Forms •Lists Mobile Apps - Web Apps jQuery Mobile - Features Wednesday, May 15, 13
  • 64. jQuery Mobile - Page management <body> <!-- Start of first page --> <div data-role="page" id="foo"> ! <div data-role="content">! ! ! <p>I'm first in the source order so I'm shown as the page. </p>!! ! ! <p>View internal page called <a href="#bar">bar</a></p>! ! </div><!-- /content --> </div><!-- /page --> </body> Mobile Apps - Web Apps Wednesday, May 15, 13
  • 65. <body> <!-- Start of first page --> <div data-role="page" id="foo"> ! <div data-role="content">! ! ! <p>View internal page called <a href="#bar">bar</a></p>! ! </div><!-- /content --> </div><!-- /page --> <!-- Start of second page --> <div data-role="page" id="bar"> ! <div data-role="content">! ! ! <p><a href="#foo">Back to foo</a></p>! ! </div><!-- /content --> </div><!-- /page --> </body> Mobile Apps - Web Apps jQuery Mobile - Page management Wednesday, May 15, 13
  • 66. jQuery Mobile - Transitions <a href="foo.html" data-rel="dialog" data-transition="pop">Open dialog</a> <a href="foo.html" data-rel="dialog" data-transition="slidedown">Open dialog</a> <a href="foo.html" data-rel="dialog" data-transition="flip">Open dialog</a> <a href="foo.html" data-rel="dialog" data-transition="fade">Open dialog</a> Mobile Apps - Web Apps Wednesday, May 15, 13
  • 67. jQuery Mobile - Dialogs Mobile Apps - Web Apps Wednesday, May 15, 13
  • 68. jQuery Mobile - Navigation bars <div data-role="header" data-position="inline"> ! <a href="index.html" data-icon="delete">Cancel</a> ! <h1>Edit Contact</h1> ! <a href="index.html" data-icon="check">Save</a> </div> Mobile Apps - Web Apps Wednesday, May 15, 13
  • 69. jQuery Mobile - Forms Mobile Apps - Web Apps Wednesday, May 15, 13
  • 70. jQuery Mobile - Forms Mobile Apps - Web Apps Wednesday, May 15, 13
  • 71. jQuery Mobile - Lists Mobile Apps - Web Apps Wednesday, May 15, 13
  • 72. jQuery Mobile & Symfony Mobile Apps - Web Apps Wednesday, May 15, 13
  • 73. Templates Mobile Apps - Web Apps Wednesday, May 15, 13
  • 74. <!DOCTYPE html> <html> <head> <title>Podisum by ServerGrove</title> <meta name="viewport" content="width=device-width, initial- scale=1"> </head> <body> {% block content %} {% endblock %} </body> </html> layout.html.twig Mobile Apps - Web Apps Wednesday, May 15, 13
  • 75. {% extends "layout.html.twig" %} {% block content %} <div data-role="page" id="home"> <div data-role="header"> <h1>Podisum</h1> </div> <div data-role="content"> <1-- ... --> </div> </div> index.html.twig Mobile Apps - Web Apps Wednesday, May 15, 13
  • 76. <div data-role="header" data-theme="b"> <h1>{{title}}</h1> <a href="#home" data-icon="home" data-iconpos="notext" data-direction="reverse" class="ui-btn-right jqm-home" data-ajax="false">Home</a> </div> header.mhtml.twig Mobile Apps - Web Apps Wednesday, May 15, 13
  • 77. {% extends "layout.html.twig" %} {% block content %} {% include “header.html.twig’ %} <div data-role="content"> <1-- ... --> </div> </div> index.html.twig Mobile Apps - Web Apps Wednesday, May 15, 13
  • 78. Routing Mobile Apps - Web Apps Wednesday, May 15, 13
  • 79. home: pattern: / defaults: { _controller: DemoBundle:Default:index } talks: pattern: /talks.{_format} defaults: { _controller: DemoBundle:Talk:index, _format: html } requirements: _format: html|xml|ics talk: pattern: /talk/{slug} defaults: { _controller: DemoBundle:Talk:talk } jQuery Mobile & Symfony / Routing Mobile Apps - Web Apps Wednesday, May 15, 13
  • 80. Mobile Apps - Web Apps jQuery Mobile & Symfony / Routing home: pattern: /m defaults: { _controller: DemoBundle:Default:index,_format:mhtml } talks: pattern: /m/talks defaults: { _controller: DemoBundle:Talk:index, _format:mhtml } talk: pattern: /m/talk/{slug} defaults: { _controller: DemoBundle:Talk:talk, _format:mhtml } Wednesday, May 15, 13
  • 81. Mobile Apps - Web Apps jQuery Mobile & Symfony / Routing (option 2) home: pattern: /m defaults: { _controller: DemoBundle:Default:index, mobile:true } talks: pattern: /m/talks defaults: { _controller: DemoBundle:Talk:index, mobile:true } talk: pattern: /m/talk/{slug} defaults: { _controller: DemoBundle:Talk:talk, mobile:true } Wednesday, May 15, 13
  • 82. m_home: pattern: /m defaults: { _controller: DemoBundle:Mobile:index } Mobile Apps - Web Apps jQuery Mobile & Symfony / Routing (option 3) Wednesday, May 15, 13
  • 83. Controllers & Actions Mobile Apps - Web Apps Wednesday, May 15, 13
  • 84. jQuery Mobile & Symfony / Controller & Action public function indexAction() { $em = $this->get('doctrine')->getEntityManager(); // ... $format = $this->get('request')->getRequestFormat(); return $this->render('DemoBundle:Default:index.'.$format.'.twig', array( // ... )); } Mobile Apps - Web Apps Wednesday, May 15, 13
  • 85. Extras Mobile Apps - Web Apps •Detect Mobile devices http://mobiledetect.net/ •Symfony2 + MobileDetectBundle •Silex + MobileDetectServiceProvider Wednesday, May 15, 13
  • 86. Testing Mobile Apps - Web Apps Wednesday, May 15, 13
  • 87. •Symfony2 functional tests for HTML pages •For AJAX other testing methods may be used: •Selenium RC •Behat Mobile Apps - Web Apps Wednesday, May 15, 13
  • 89. Podisum http://github.com/pgodel/podisum Generates summaries of Logstash events Silex app Twig templates Mobile version Mobile Apps - Web Apps Wednesday, May 15, 13
  • 90. Podisum Apache access_log Logstash Redis Podisum redis-client MongoDB Podisum Silex App Web Client Mobile Apps - Web Apps Wednesday, May 15, 13
  • 91. Hybrid Applications Mobile Apps - Hybrid Apps Wednesday, May 15, 13
  • 92. Applications that combine web, sms, voice and native aspects Framework PhoneGap - Build apps with HTML & JavaScript - Integrates with XCode - Compiles app into native code - Access to accelerometer, camera, geolocation, notifications and more Mobile Apps - Hybrid Apps Wednesday, May 15, 13
  • 94. Feedback Please: http://joind.in/8159 Thank you! Twitter: @pgodel IRC Freenode: pgodel Source: https://github.com/pgodel/podisum Slides: http://slideshare.net/pgodel Mobile Apps - Thanks! Wednesday, May 15, 13