create your first "native" mobile app with javascript + phonegap
TRANSCRIPT
Create Your First "Native" Mobile App with JavaScript + PhoneGap
Steve Phillips / @elimisteveSBHX
2013.12.18
The Plan● Intro to PhoneGap
○ Create native-ish mobile apps using web technologies
● Example app: Encrypted Anti-TODO List○ Store encrypted list on untrusted server, create new list items and
query from phone
● Writing this simple app inspired a more general solution:
CrypTag
Phone Gap● “PhoneGap is a free and open source framework that
allows you to create mobile apps using standardized web APIs for the platforms you care about.”
● Advantages○ Speed of development○ Code reusability○ Use familiar technologies (if you do web dev)
Phone Gap (2)
● Disadvantages○ No native-looking UI elements
■ See Titanium Mobile, Trigger.io, Steroids.js● (Actually, don’t see Titanium Mobile; it sucks)
○ Performance● Installation
○ Out of scope of this brief talk○ See http://phonegap.com/install/
■ Talk to me if you need help or join #sbhackerspace on FreeNode by visiting http://irc.sbhackerspace.com in your browser
Example App: Encrypted Anti-TODO
● Let’s see some code!○ Will post to GitHub soon
● Front end○ PhoneGap (JS)
● Back end○ Python on AppFog using Flask microframework
■ Don’t use AppFog, either■ App does down, doesn’t start back up like
Heroku, GAE, etc
Next Step: CrypTag
● Encrypted, Taggable, Searchable Web Storage● How is it searchable and encrypted?
○ Not full search; can query by tag■ App ideas: notes, bookmarks, more
● “Then the server stores the tags in plaintext?”○ Nope; client stores mapping between tags
(“snowden”) and a random hex string (“b6a27d9”)○ Server only ever sees the random strings
Closing Points
● WebTech Wednesday in 2014○ Nodebots? Docker? Ansible? D3? pandas?
● TA3M: Techno-Activism 3rd Mondays● Google Group
○ http://gg.sbhackerspace.com● SBHX IRC channel
○ #sbhackerspace on FreeNode○ Visit http://irc.sbhackerspace.com
● Exercism.io
Contact
● Email○ [email protected] or○ [email protected]
● GitHub○ github.com/elimisteve
● Twitter○ @elimisteve
● FreeNode○ elimisteve or elimisteve1