Untangling the Web
Part Deux... (Tecc102) Building Web Apps!
Tonight: Front end fabulous, CityVibes! and other apps!
Oct 14: [fort!] Iterate: design and prototypes
Oct 21: [UVic!] Hackathon!
Oct 28: [fort!] Showcase!!!
WELCOME!!!
- How was Startup SLAM?
- New Moodle!
- Great work on landscapes!
- Hello WORLD!
- who we all are!
So Far...
-
LANDSCAPES!
- wow, connecting GitHub with Nitrous...
- KILLER overview video of ALL technologies (thank you Christina!)
-
Web Traffic Analytics
- what it is
- how to introduce it to a webpage
- A/B testing... (lots more to do, ad words, SEO)
-
Tools used in Customer Discovery (Erin's toolkit!)
- managing leads (sendwithus)
- connecting apps (zapier)...
-
Agile processes
- SCRUM! prototyping
Tools we have on the go...
- we are attracted to things that are
- "Free"!
- Relevant to industry
- Cloud based (include storage)
- FUN!!!!! :)
- so far, these include
-
Google Analytics
- for monitoring web traffic
-
GitHub (and Git!)
- managing collaboration on digital assets
-
Nitrous.io
- serving up our web pages and backend! :)
- Others?
-
Google Analytics
We are a team!
- small but mighty!
- learning to be agile (http://www.allaboutagile.com/what-is-agile-10-key-principles/)
- over the next 4 weeks we will learn by doing!
- different people will go different paces
- teams of 3-4 (or more!)
- this is going to be nutty...
- but fun!
- in the world of "agile processes" developers work closely with stakeholders and iterate on features...
- CityVibes has Heather and the City to talk to!
- we can do other apps too!!!
- workflows, teams, integration will be similar!
"Front-end"
-
front-end web development
- technologies used by your "browser"
- HTML5, CSS, JavaScript, libraries
- design patterns, user interface techniques and reactive strategies
- Model, View, Controller
- peak at the "MEAN" stack
- modern production environments, tools and mobile friendly technologies
- continuous integration
- GitHub, Nitrous.io (or others!)
- web versus native and hybrid apps
- technologies used by your "browser"
"Back-end"
-
Basically ignoring this for NOW!
- what do we need on the server?
- how is the data managed/integrated?
- how is privacy handled?
- ...
- interesting!
- definitely a whirl wind of technology involved
- cloud computing is a bonus
- CIO of CIA at big cloud conference this month
- AWS set up a "region" for CIA!
- we are going to hit that in Nov! (final module!) :)
Agile!
-
Agile but not Fragile!
- See more at: http://www.allaboutagile.com/agile-principle-4-agile-requirements-are-barely-sufficient/#sthash.4p0vGDcb.dpuf
-
Story boards for user interaction
- think big (for down the road!)
- but also narrow the scope!
- we only have 2 weeks... you have no time! :)
- what features can you "mock up" in the front end?!
- "wireframe" (lots of tools)
Agile and Elephants...
-
traditional software development
-
the (simplified) lifecycle is Analyze, Develop, Test
- first gather requirements for the whole product, then develop all elements of the software, then test that the entire product
-
the (simplified) lifecycle is Analyze, Develop, Test
-
agile software development,
-
the cycle is Analyze, Develop, Test; REPEAT!
- doing each step for each feature
- one feature at a time
- See more at: http://www.allaboutagile.com/agile-principle-5-how-do-you-eat-an-elephant/#sthash.F3qSjbLb.dpuf
-
the cycle is Analyze, Develop, Test; REPEAT!
In the spirit of agile...
- low cost way of getting a landing page up and going!!!
-
wireframing tools can build you a quick front end!
- look and feel are there...
- typically the "smarts" (JavaScript) are not!
Web apps and Angry Birds
back in 2011...
- Web app, Angry Birds for Chrome, was hacked and all levels were unlocked...
- what happened?
- was this backend (server) or frontend (browser)?
back in 2011...
- Wes Bos knew his way around the browser, and looked in "developer tools"...
- made a change to the way the JavaScript code was handling the data
//omy, what is this doing?!?!?!
for (var i = 0; i < = 69; i++) {
localStorage.setItem('level_star_' + i, '3');
}
window.location.reload();
//how about this one?!
for (var i = 0; i < = 69; i++) {
localStorage.setItem('level_star_' + i, '-1');
}
window.location.reload();
//w3 schools example! http://www.w3schools.com/html/tryit.asp?filename=tryhtml5_webstorage_local_clickcount
<!DOCTYPE html>
<html>
<head>
<script>
function clickCounter() {
if(typeof(Storage) !== "undefined") {
if (localStorage.clickcount) {
localStorage.clickcount = Number(localStorage.clickcount)+1;
} else {
localStorage.clickcount = 1;
}
document.getElementById("result").innerHTML = "You have clicked the button " +
localStorage.clickcount + " time(s).";
} else {
document.getElementById("result").innerHTML = "Sorry, your browser does not
support web storage...";
}
}
</script>
</head>
<body>
<p><button onclick="clickCounter()" type="button">Click me!</button></p>
<div id="result"></div>
<p>Click the button to see the counter increase.</p>
<p>Close the browser tab (or window), and try again, and the counter will continue to count (is not reset).</p>
</body>
</html>
Our App: CityVibes!
GitHub and Git!
- social coding
- lots done at the command line...
- we will get there
- some of you already have!
- basic concepts
- clone a repository (from GitHub)
- create branches to make changes for new features
- commit changes to a branch
- pull changes into a branch
- merge content
- push changes to another branch
GitHub and Git!
- the shared repository is on GitHub
- important branches kept up to date here!
- you clone it and work locally, using Git
- create new branches for new features
- merge and throw branches away!
- PUSH from the local copy to the shared server
WORKS SO GREAT FOR TEAMS AND COORDINATION!!!!
IDEs have integration
- there is a button in Nitrous.io to integrate!
- set up access (a few gymnastics!)
- then use the command line to be pulling code into the webserver from GitHub!!!!
UTW: Building Web Apps
By Yvonne
UTW: Building Web Apps
Part DEUX of Untangling the Web!!!
- 1,278