Your SlideShare is downloading. ×

PHP in a mobile ecosystem


Published on

Updated version of my PHP in a mobile ecosystem talk. Looks at how PHP plays a role in the mobile world, and explains what php developers need to know about mobile development. …

Updated version of my PHP in a mobile ecosystem talk. Looks at how PHP plays a role in the mobile world, and explains what php developers need to know about mobile development.

Presentation delivered at the PHPBenelux 2011 conference and the PHP UK conference 2011.

Published in: Technology

1 Comment
No Downloads
Total Views
On Slideshare
From Embeds
Number of Embeds
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

No notes for slide


  • 1. PHP in a Mobile EcosystemIvo JanschJanuary 28, 2011 - PHPBenelux Conference
  • 2. About EgeniqStartupMobileTechKnowledgeGeeksDevelopment
  • 3. About Me@ijanschDeveloperAuthorEntreprenerdPHP
  • 4. Part 1Let’s think about mobile for a few minutes
  • 5. The Webis increasingly portable
  • 6. It’s revolutionary Much like when the phone lost its wall socket
  • 7. The Internet Of Thingsivo-imac:~ ivo$ ping fridgePING fridge ( 56 data bytes
  • 8. The Web versus The Internet
  • 9. Usage CharacteristicsOn the goShort attention spanAvoid typingTo the point / ad hocOmnipresentContext Awareness
  • 10. ‘Pocket Essentials’
  • 11. Usage - ‘Couch Computing’RelaxedFreedomConsumptionConvergenceCompanion
  • 12. Mobile TechnologiesObjective-C (iPhone, iPad, iPod Touch, Apple TV)Java (Android, Blackberry, Symbian)HTML5 / Javascript (Any)PHP (Any)
  • 13. The App vs. The Browser
  • 14. Browser based applicationsWrite once, run anywhereOnlineRequires browserPage based‘Stateless’
  • 15. Native AppsOn- and offlineEvent basedNative device experienceConvenient access to device featuresStatefulMonetization through App Stores
  • 16. Some statistics Android Market: 100.000 apps Apple App Store: 300.000 apps Web: 3.000.000 websites optimized for mobile Sources:
  • 17. Predictions
  • 18. Part 2Browser Based Mobile Apps
  • 19. Device DetectionIt’s all in the User AgentMozilla/5.0 (iPhone; U; CPU iPhone OS 4_1 like MacOS X; en-us) AppleWebKit/532.9 (KHTML, like Gecko)Version / 4.0.5 Mobile/8B117 Safari/6531.22.7Mozilla/5.0 (Linux; U; Android 2.1-update1; nl-nl; HTCHero Build/ERE27) AppleWebKit/ 530.17 (KHTML, likeGecko) Version/4.0 Mobile Safari/ 530.17
  • 20. Device Detection
  • 21. Device Detection Downloadable PHP library for device detection Online code generator Donationware Ugly code, well documented
  • 22. Device Detection Database of device properties Available online, as API and downloadable json file Free for development ~99$/year for production
  • 23. Device DetectionConsiderations: Don’t redirect to homepage Offer ‘classic’ option Don’t make assumptions on screen size
  • 24. Zend Framework ExampleTake advantage of ZF’s powerful MVC set up View scripts determine layout of actions Layout script wraps everything into main layout Use Bootstrapper to detect device and setup MVC
  • 25. layouts/scripts/layout_mobile.phtml
  • 26. views_mobile/scripts/index/index.phtml
  • 27. Bootstrap.php
  • 28. ResultTry it at
  • 29. Zend_Http_UserAgentNew in Zend Framework 1.11Can work with WURFL or Device Atlas
  • 30. UI DesignHover = evil‘Finger Friendly Design’‘Touch Driven Development’Screens are getting bigger and (!) smaller
  • 31. Scalable websites
  • 32. HTML5 is easy<!doctype html> - period.<script> or <style> - period.Semantics: header, footer, section, article tags
  • 33. HTML5 is powerfullocalStorage<video><canvas><svg><input type=”number”> and many other form fields navigator.geolocation.getCurrentPosition();
  • 34. Browsers love HTML5Browsers supporting HTML5: Firefox Safari Opera All the mobile browsers IE (sort of, no support for <article> until IE9)
  • 35. Things to consider Don’t just scale the layout, scale content too Consider ‘scenario based content management’
  • 36. jQTouch
  • 37. jQTouchiPhone experience in HTML5 basedMIT LicenseGive it a try:
  • 38. Alternatives jQuery Mobile 1.0 alpha was released at October 16, 2010 Sencha Touch From the makers of jqTouch Tablet support
  • 39. You already know PHPYour PHP skills + HTML5 = easy mobile websites
  • 40. Part 3Native Apps
  • 41. PHP’s role in native apps iPhone Android Blackberry App App App API
  • 42. Optimize APIs for mobile Content optimization Scalability Longevity Security Client/Server considerations
  • 43. Content Optimization Consider CPU and memory constraints Prefer JSON over XML Compress data Keep responses small But not too small (connection / routing overhead)
  • 44. Scalability AppStore featured/top listings Slashdot effect Consider the 80/20 rule of app popularity though
  • 45. LongevityApps have different deployment patterns No ‘quick fix’ in the application as in web appsClient/Server asynchronous updates Backwards compatibility Versioned API URLs:
  • 46. LongevityHow long do you support your APIs? Can’t force people to delete their Apps Provide clean fallback Synchronized instead of real-time dataImplement status check API calls
  • 47. API Security TLS/SSL Basic Auth OAuth? XAuth! PKI / TLSAuth Signed URLs: ?x=1&y=2 &signature=hash(secret, time limit, params)
  • 48. Client/Server considerations Image Processing in the API, instead of App Use Imagick / GD etc. Trade-off between bandwidth and processing power Apps support threading / asynchronisity Fire-and-forget API design Prepare/getResult call duos Push features into PHP APIs for reuse
  • 49. PHP’s role in native apps PHP has native support for: Web services JSON Compression Image manipulation Egeniq’s number 1 choice for App APIs 25-30% of App development time = API
  • 50. Part 4Best of Both Worlds
  • 51. HTML5 in the App StoreHTML5 on the server, supports PHP: IPFaces - on the device, no (or limited) support for PHP: AppCelerator - Phonegap -
  • 52. Cross Compilers = Instant Coffee
  • 53. Part 5Random bits if time permits
  • 54. Running PHP on the deviceFirst: Why??!PHP For Android (PFA) for Symbian
  • 55. Symfony MobileMime-type basedoptimisation
  • 56. ‘Lemon ADE’ AST editor
  • 57. Resources for PHP/Mobile
  • 58. Thank @egeniqPlease leave feedback at:
  • 59. CreditsPictures used in this presentation are creative commons attribution licensed pictures.Here are the owners and the URLS where the originals can be found: ‘Dow says POO’ by Stepleton - ‘The telephone’ by Tylerdurden - ‘Web’ by Kurtxio - ‘Heavy cloud, no rain’ by Robynsnest - ‘Wireless fridge’ from ‘Army iphone app’ by Soldiersmediacenter - ‘Carbon Fibre Wallet’ by Ryan Loos - ‘Keys’ by Jamison Judd - ‘Phone Girl’ by Steffen - ‘Icon_safari_hires’ by Hans Dorsch - ‘Thinking’ by Karola - ‘Jusa web’ by Jusfi - ‘iPad :)’ by Korosirego - ‘Ive got a monkey on my back’ by Keven Law - ‘Add a spoonful of coffee’ by Martyn Wright - ‘Locked steel’ by Darwinbell - ‘4 Biscuits’ by Barnoid -