Your SlideShare is downloading. ×
Web App Prototypes with Google App Engine
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Web App Prototypes with Google App Engine

409
views

Published on

Web App Prototypes with Google App Engine at PyCon Canada 2012

Web App Prototypes with Google App Engine at PyCon Canada 2012

Published in: Technology, Business

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
409
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Web app prototypes with the App Engine Python SDK Vlad Filippov - PyCon Canada 2012
  • 2. @vladikoff github.com/vladikoff
  • 3. The Goals ● Build unique applications and features ● Quickly create experiences ● Well-defined and structured data store ● Epic test coverage The Problem ● Development time ● Repetitive tasks ● User experience, interface and interaction ● Setting up datastores, local development ● Developer teams, different projects
  • 4. Prototype an application - gather.at example From https://gather.at ● Adding Entities ● Layout Views ● Filters ● Refresh UI ● ...
  • 5. What is App Engine? How can it help?
  • 6. Google App Engine and the Python SDK ● Ability to build and host web applications ● Preview in 2008, out of preview 2011 ○ latest release v. 1.7.3 - October 23, 2012 ● Supports Python (2.5, 2.7) ● Usage: ○ Pay for instance hours, bandwidth, storage, etc ○ Free quotas (usage limits per day) ● Over 20 built-in APIs ○ Channel (Sockets), Blobstore, Memcache .... ● Datastore ○ App Engine Datastore - NoSQL schema-less object store ○ Google Cloud SQL - relational SQL DB ○ Google Cloud Storage - storage for large objects
  • 7. Prototyping with App Engine ● Try out application ideas ● Prepare for large projects ● Benefits of App Engine: ○ Datastore ○ Deployment - local test server & deployment server ○ User API - use Google Accounts as login ○ Saves time during setup and development ● Testing - get a head start! ● Give more time and realistic scenarios for UX
  • 8. Basic Datastore db.get([...]) db.delete([...]) db.put_async([...]) db.get_async([...])
  • 9. Things that will help you ● webapp2 ○ routing, controllers, templating ( jinja2 support ) ● appengine-rest-server ● Google Cloud Endpoints ● Import bulk data (CSV, based on your models) ● Use Google Accounts / OAuth2 ● Task Queues (background tasks) ● Appstats ● Development server ○ simulates App Engine ○ development console
  • 10. appengine-rest-server ● Exposes your data model via a REST API ● Supports: ○ JSON (JSONP) & XML ○ individual properties /entity/<key>/property ) ○ basic filtering ○ limits results ○ metadata browsing ( /metadata/entity/ ) ● Open source! ● Great starting point
  • 11. appengine-rest-server
  • 12. Cloud Endpoints ● Allows you to build REST and RPC APIs ● Same infrastructure as Google APIs ○ Translate, Places, goo.gl and other APIs ● Supports OAuth2 ● Includes an API explorer ● * Ability to generate client libraries ○ JavaScript, iOS & Android ● * Tester only preview at the moment
  • 13. Cloud Endpoints - Define an API Server Define API Handlers / URLs (app.yaml)
  • 14. Prototype - Tests
  • 15. Prototype - Sample Data
  • 16. To conclude... ● Invest time into unique features ● Choose a workflow, optimize it ● Record the time you spend on repetitive tasks ● Reuse as much as possible in future projects ● App Engine ○ Easy to setup, great for exploring ideas! ○ Write API & UI tests, re-use ○ Basic data models, populate sample data ○ Gives the front-end team more time ○ * Helps you get into web apps & services
  • 17. Thank you! git.io/dCeP9w @vladikoff github.com/vladikoff