SlideShare ist ein Scribd-Unternehmen logo
1 von 94
Downloaden Sie, um offline zu lesen
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 - rst 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
Denition 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
- RMSPushNoticationsBundle
- DABSquaredPushNoticationsBundle
- 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 rst 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,
notications 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

Weitere ähnliche Inhalte

Was ist angesagt?

Docker introduction
Docker introductionDocker introduction
Docker introductiondotCloud
 
Rabbitmq & Kafka Presentation
Rabbitmq & Kafka PresentationRabbitmq & Kafka Presentation
Rabbitmq & Kafka PresentationEmre Gündoğdu
 
Cloud Service Life-cycle Management
Cloud Service Life-cycle ManagementCloud Service Life-cycle Management
Cloud Service Life-cycle ManagementAnimesh Chaturvedi
 
Apache kafka
Apache kafkaApache kafka
Apache kafkaViswanath J
 
Introduction to Apache Kafka
Introduction to Apache KafkaIntroduction to Apache Kafka
Introduction to Apache KafkaJeff Holoman
 
Introduction to Docker - VIT Campus
Introduction to Docker - VIT CampusIntroduction to Docker - VIT Campus
Introduction to Docker - VIT CampusAjeet Singh Raina
 
Market oriented Cloud Computing
Market oriented Cloud ComputingMarket oriented Cloud Computing
Market oriented Cloud ComputingJithin Parakka
 
Intro to WebSockets
Intro to WebSocketsIntro to WebSockets
Intro to WebSocketsGaurav Oberoi
 
Getting started with Docker
Getting started with DockerGetting started with Docker
Getting started with DockerRavindu Fernando
 
Kubernetes for Beginners: An Introductory Guide
Kubernetes for Beginners: An Introductory GuideKubernetes for Beginners: An Introductory Guide
Kubernetes for Beginners: An Introductory GuideBytemark
 
SOAP - Simple Object Access Protocol
SOAP - Simple Object Access ProtocolSOAP - Simple Object Access Protocol
SOAP - Simple Object Access ProtocolAnushka Patil
 
Intelligently collecting data at the edge—intro to Apache MiNiFi
Intelligently collecting data at the edge—intro to Apache MiNiFiIntelligently collecting data at the edge—intro to Apache MiNiFi
Intelligently collecting data at the edge—intro to Apache MiNiFiDataWorks Summit
 
Docker Birthday #3 - Intro to Docker Slides
Docker Birthday #3 - Intro to Docker SlidesDocker Birthday #3 - Intro to Docker Slides
Docker Birthday #3 - Intro to Docker SlidesDocker, Inc.
 
Introduction to docker
Introduction to dockerIntroduction to docker
Introduction to dockerFrederik Mogensen
 
Introduction To RabbitMQ
Introduction To RabbitMQIntroduction To RabbitMQ
Introduction To RabbitMQKnoldus Inc.
 
Containers technologies
Containers technologiesContainers technologies
Containers technologiesJoris Bonnefoy
 
Containerization & Docker - Under the Hood
Containerization & Docker - Under the HoodContainerization & Docker - Under the Hood
Containerization & Docker - Under the HoodImesha Sudasingha
 
RPC: Remote procedure call
RPC: Remote procedure callRPC: Remote procedure call
RPC: Remote procedure callSunita Sahu
 
Comparison between-rpc-rmi-and-webservices-son-1228374226080667-8
Comparison between-rpc-rmi-and-webservices-son-1228374226080667-8Comparison between-rpc-rmi-and-webservices-son-1228374226080667-8
Comparison between-rpc-rmi-and-webservices-son-1228374226080667-8helpsoft01
 
Distributed Tracing with Jaeger
Distributed Tracing with JaegerDistributed Tracing with Jaeger
Distributed Tracing with JaegerInho Kang
 

Was ist angesagt? (20)

Docker introduction
Docker introductionDocker introduction
Docker introduction
 
Rabbitmq & Kafka Presentation
Rabbitmq & Kafka PresentationRabbitmq & Kafka Presentation
Rabbitmq & Kafka Presentation
 
Cloud Service Life-cycle Management
Cloud Service Life-cycle ManagementCloud Service Life-cycle Management
Cloud Service Life-cycle Management
 
Apache kafka
Apache kafkaApache kafka
Apache kafka
 
Introduction to Apache Kafka
Introduction to Apache KafkaIntroduction to Apache Kafka
Introduction to Apache Kafka
 
Introduction to Docker - VIT Campus
Introduction to Docker - VIT CampusIntroduction to Docker - VIT Campus
Introduction to Docker - VIT Campus
 
Market oriented Cloud Computing
Market oriented Cloud ComputingMarket oriented Cloud Computing
Market oriented Cloud Computing
 
Intro to WebSockets
Intro to WebSocketsIntro to WebSockets
Intro to WebSockets
 
Getting started with Docker
Getting started with DockerGetting started with Docker
Getting started with Docker
 
Kubernetes for Beginners: An Introductory Guide
Kubernetes for Beginners: An Introductory GuideKubernetes for Beginners: An Introductory Guide
Kubernetes for Beginners: An Introductory Guide
 
SOAP - Simple Object Access Protocol
SOAP - Simple Object Access ProtocolSOAP - Simple Object Access Protocol
SOAP - Simple Object Access Protocol
 
Intelligently collecting data at the edge—intro to Apache MiNiFi
Intelligently collecting data at the edge—intro to Apache MiNiFiIntelligently collecting data at the edge—intro to Apache MiNiFi
Intelligently collecting data at the edge—intro to Apache MiNiFi
 
Docker Birthday #3 - Intro to Docker Slides
Docker Birthday #3 - Intro to Docker SlidesDocker Birthday #3 - Intro to Docker Slides
Docker Birthday #3 - Intro to Docker Slides
 
Introduction to docker
Introduction to dockerIntroduction to docker
Introduction to docker
 
Introduction To RabbitMQ
Introduction To RabbitMQIntroduction To RabbitMQ
Introduction To RabbitMQ
 
Containers technologies
Containers technologiesContainers technologies
Containers technologies
 
Containerization & Docker - Under the Hood
Containerization & Docker - Under the HoodContainerization & Docker - Under the Hood
Containerization & Docker - Under the Hood
 
RPC: Remote procedure call
RPC: Remote procedure callRPC: Remote procedure call
RPC: Remote procedure call
 
Comparison between-rpc-rmi-and-webservices-son-1228374226080667-8
Comparison between-rpc-rmi-and-webservices-son-1228374226080667-8Comparison between-rpc-rmi-and-webservices-son-1228374226080667-8
Comparison between-rpc-rmi-and-webservices-son-1228374226080667-8
 
Distributed Tracing with Jaeger
Distributed Tracing with JaegerDistributed Tracing with Jaeger
Distributed Tracing with Jaeger
 

Andere mochten auch

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
 
InvestigaciĂłn
InvestigaciĂłnInvestigaciĂłn
InvestigaciĂłncharito ybarra
 
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
 

Andere mochten auch (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
 

Ähnlich wie 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
 

Ähnlich wie 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”
 

Mehr von 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
 

Mehr von 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
 

KĂźrzlich hochgeladen

Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel AraĂşjo
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 

KĂźrzlich hochgeladen (20)

Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 

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 - rst 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. Denition 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 prole 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 - RMSPushNoticationsBundle - DABSquaredPushNoticationsBundle - 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 rst 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, notications 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