Create Your First "Native" Mobile App with JavaScript + PhoneGap
1. Create Your First "Native" Mobile
App with JavaScript + PhoneGap
Steve Phillips / @elimisteve
SBHX
2013.12.18
2. 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
3. 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)
4. 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
5. 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
6. 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
7. 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