Preflight

Webkit
If using Google Chrome, you will likely need the Dev channel to see all of the functionality in this presentation. If you are using Safari, you will likely need a nightly build of WebKit in order to see all of the functionality in this presentation.
Mozilla
You are running a Mozilla browser. While such browsers generally have excellent support for HTML5 features, this presentation has only been tested using WebKit browsers such as Google Chrome or Safari. You should still be able to navigate the slides by using left/right arrow keys, but will currently see display errors with regard to the 3d rendering of the slides and some demo content.
Other browser
You are running a browser that has not been tested with this presentation. You may not be able to run some or all of the samples listed here. While we want to add support for as many browsers as possible, currently we only support WebKit-based browsers such as Google Chrome or Safari.
WebGL: available
WebGL: not supported
You will not be able to see the WebGL demos later in this slide deck.
Notification permission incorrect
You have granted permission for this page to show notifications. If you intended to demo the request permission functionality, you may want to clear this permission by clicking here and removing the permission.
Notification permission correct
No notification
Your browser does not support displaying notifications. Currently, only Google Chrome will support this functionality.
File APIs: available
File APIs are not supported
Your browser does not support one or more of the following APIs: File, FileList, FileReader.
File System API: available
File System API: not supported
Your browser does not support the File System API for reading/writing files and directories.
File System API: partial support
The File System API are available in your browser, but write access is unavailable. Are you running Google Chrome with the --unlimited-quota-for-files flag?
Web Audio API: available
Web Audio API: not supported
Your browser does not support the Web Audio API. If using Google Chrome, you need Mac OSX and to enable the API in about:flags.
If things look good, press → to move on.
Welcome! (This field is for presenter notes and commentary.)
Press:
  • Space or ← / → to move around
  • Ctrl/Command / – or + to zoom in and out if slides don’t fit
  • N to show/hide speaker notes
  • H to highlight important elements in code snippets

Trend Report:
Why we have web at our fingertips

kh5325.kim@samsung.com
Sep 22, 2011
9:00 - 10:30am

Last Modified: 2013-05-07

This slide is authored in HTML5 (Eric Bidelman && Arne Roomann-Kurrik's work in Google I/O)

What I present

To show the trend for Web

I hope you think web
as application platform

Please give WAC IDE team feedback!

All documentation is at Wiki and Website

Today's agenda
* 차인표 형님도 관심있어 하는..
HTML5
Web Technology
JavaScript
Web and IDE

HTML5

History of HTML5

http://www.slideshare.net/Channy/history-and-status-of-html5-1675600

W3C focuses XHTML. But...

Web 2.0, Ajax and REST API *

Web as application platfrom not as document

http://www.archimuse.com/mw2006/papers/lowndes/lowndes-fig2.html
  • REST = HTTP URI + Method ex.)) http://www.javastudy.co.kr/users/bcho (Method: GET)
  • Twitter REST API: GET http://search.twitter.com/search.json?q=pieceoflena&callback=twitterCallback2&rpp=5

W3C spec is so vast and ideal. We must give up HTML :(

Make our working group for Web Application*

W3C는 문서 구조, XML 도구와의 호환성, 그리고 시맨틱 웹에 대한 버너스 리의 비전 같은 이슈를 강조하는 XHTML 제안 표준을 사용해서 문서로서의 웹 페이지라는 초점을 유지해 왔다.

Web Hypertext "Application" Technology WG (문서보다는 어플리케이션에 초점)
http://www.slideshare.net/Channy/history-and-status-of-html5-1675600

Tim Bernes Lee: gg

WHATWG: gg

http://dig.csail.mit.edu/breadcrumbs/node/166

HTML 5.1

the relationship between the WHATWG HTML living standard and the W3C HTML5 specification

Features of HTML5

HTML5

8 technologies


(Connectivity, CSS3 & Styling, Device Access, 3D & Effects, Multimedia, Performance & Integration, Semantics, Offline & Storage)

New features let you:

  • Inter-operability between browsers
  • Compatibility with HTML 4.01
  • Productivity for web developers
  • Rich Web like multimedia and offline storage
Inter-operability

Just use HTML5 doctype

<!DOCTYPE html>

Productivity Structural Markup (1)
Productivity Structural Markup (2)

Semantic Markup

http://www.slideshare.net/yiibu/beyond-themobilewebbyyiibu
Productivity Semantic Markup
 - <t lang="fr">je ne sais quoi</t>
 - <time datetime="2011-09-20">a tuesday</time>
 - <meter min="0" max="100" value="75"></meter>
 - <progress value="33" max="100">
<span id="p">33</span>%
</progress>
 - je ne sais quoi
 - a tuesday
 - 
 - 33%
    
Rich Web Web Forms
function validate(field_name, field_value) {
  // Fill validation codes
  if (field_value == null || field_value == "") {
    document.getElementById("email_status").innerHTML =
        '<div class="field_error">' + email_enter + '</div>';
  }
...

function regIsEmail(field_value) {
var reg = new RegExp(
    "^[0-9a-zA-Z]+@[0-9a-zA-Z]+[\.]{1}[0-9a-zA-Z]+[\.]?[0-9a-zA-Z]+$");
...

// If you want to use calendar, include it
<script src="js/calendar-lib.js"></script>

»It frustrated developers and made myth JavaScript is form validation language

Rich Web Web Forms
  • <input type="number">
  • <input type="range" min="1" max="5" value="3"> *
  • <input type="date">
  • <input type="email" placeholder="1@abc.com" required autofocus>
  • <input pattern="[a-zA-Z]{4,6}">

  • More features... | HTML5 input element

  • Graceful Degradation: advanced form이 지원되지 않는 브라우저에서는 단순히 값이 1로 설정된 텍스트 상자로 표시된다. (보통의 텍스트 상자로 단계적으로 성능 축소)
Rich Web Multimedia
<video src="http://www.tools4movies.com/trailers/1012/Iron%20Man%203.mp4"
     controls>
  <div class="no-html5-video"></div>
</video>

No embedded plugin object like Flash

Rich Web Offline Storage & GeoLocation
  • Application Cache*
    • Offline browsing: Gmail Offline
    • Performance: Twitter’s mobile web app delivers performance
    • Decreasing server load
  • Web Storage (1)
    • localStorage*: Try It!
      localStorage.setItem("name", "Hello World!");
    • sessionStorage
  • HTML5 API 강좌 #1 – Web Storage 와 Application Cache
  • appcache.manifest
  • 리소스 파일이 변경되었는지가 아니라 manifest 파일내용 자체가 변경되었는지를 체크(바이트 단위)한다. 만약 캐쉬된 파일의 내용이 바뀌었다면 manifest 파일 자체를 수정해서 다시 로드되도록 해야 한다. (파일의 코멘트 부분에 수정한 날짜나 버전을 적어놓는 등의 방법 이용)
  • 리소스가 변경되었더라도 2번째 접속 자체는 처음의 캐쉬를 이용하게 된다. 백그라운드에서 캐쉬 업데이트 프로세스가 진행되고 업데이트가 완료되면 Javascript 이벤트가 발생하게 되며, 이때 강제로 캐쉬를 교체(swapCache)해야만 수정된 캐쉬가 화면에 보여지게 된다.
  • 로컬 스토리지는 도메인별로 작동한다. 따라서 브라우저 재기동시에도 그 도메인에 가면 해당 정보를 로컬에서 불러올 수 있다.
  • 최근 모듈 로더에서는 HTML5의 로컬 스토리지(localStorage) 연동을 활용하는 사례가 나타나고 있다. 즉, 기존에 모듈을 원격 서버에서 불러오던 것을 로컬 스토리지를 활용해 성능을 극대화하는 것이다. 물론 버전에 따른 의존성은 모두 모듈 로더가 책임진다.
  • https://github.com/zazl/lsjs
Rich Web Offline Storage & GeoLocation
  • Web Storage (2)
    • Web SQL Database
      var db = window.openDatabase("TestDB", "1.0", "Test DB", "2*1024*1024");
      db.transaction(function (tx) {
        tx.executeSql('CREATE TABLE works(subject, memo)');
        tx.executeSql('INSERT INTO works(subject, memo) VALUES ("Item1", "Memo1")');
      });
    • GeoLocation
      void navigator.geolocation.getCurrentPosition(
          successCb, errorCb, options);
      long navigator.geolocation.watchPosition(
          successCb, errorCb, options);
      void clearWatch(watchID);
      
      function show_position(position) {
        // position.coords.latitude, position.coords.longitude
Rich Web 2D Canvas*
  • Play Galaxy lite!
  • canvas.getContext('2d').drawImage(sprite_image, ...);
Library using canvas
  • RGraph
WebGL
  • 3d context: WebGL
  • My Robot Nation
Rich Web SVG
<textPath method="align" spacing="auto"
          xlink:href="#svgTextPath">
  <tspan>Sometimes I have to put text on a path</tspan>
</textPath>
Sometimes I have to put text on a path

»Visualization library using SVG D3.js

»data to graphics (Bubble, Tree, TreeMap)

Rich Web data-* attributes
  • Configuring behavioral options or associating content enhancements
  • Treated as a storage area for private data (private in the sense that the end user can't see it - it doesn't affect layout or presentation).
  • 하이브리드앱 아키텍쳐 및 개발 사례
    <button><span data-nls="common.back">Back</span></button>
    $.get('locales/'+lang+'/messages.json',function(messages){
            $.each(document.body).find(‘*[data-nls]’).each(function(index,node){
            var key=node.attr(‘data-nls’);
            var message=messages[key];
            node.html(message);
  • jQuery Mobile Data- attribute reference

CSS3

Declare CSS: Too much awesome to cover
text-shadow text-outline box-shadow border-radius gradient transform transition border-image font-face text-overflow
Productivity CSS3
Rounded Corner
  • Table code is complex and required some images
  • CSS3 provides just a simple property!
    <style>
    .rounded {
        border-radius:8px;
    }
    </style>
    
    <div class="rounded" />
        
Declare Tweens
linear
ease-in
ease-out
ease-in-out
cubic-bezier(0.9, 0.1, 0.1, 0.9);
 

LESS

»Variables and Mixins*

Need 3 declarations:
  -webkit-border-radius:15px;
  -moz-border-radius:15px;
  border-radius:15px;
      
Using mixin:
  .border-radius(15px);
      
Rich Web WebSocket
    var socket = new WebSocket('ws://echo.websocket.org/');
    socket.onopen = function(event) {
        socket.send('Hello, WebSocket');
    };
    socket.onmessage = function(event) { alert(event.data); }
    socket.onclose = function(event) { alert('closed'); }

Full-duplex, bi-directional communication over the Web: Both the server and client can send data at any time, or even at the same time. Only the data itself is sent, without the overhead of HTTP headers, dramatically reducing bandwidth.


Location:



Message:

Output:

WebSocket

It enables real-time communication like trading system, remote inspector, hybrid app and chat*

http://demo.kaazing.com/forex/
  • WebSockets: The Current State of the Most Valuable HTML5 API for Java Developers

Remote Debugging using WebSocket

http://demo.kaazing.com/forex/
Rich Web Web Workers
main.js:
var worker = new Worker('task.js');
worker.onmessage = function(event) { alert(event.data); };
worker.postMessage('data');
    
task.js:
self.onmessage = function(event) {
  // Do some work.
  self.postMessage("recv'd: " + event.data);
};
    
Try it!
Rich Web
  • 기존의 리치 웹 기술은 읽을 수 없는 바이너리를 포함하고 있으며, 이는 웹 본질과 일치하지 않는다.
  • 웹은 읽을 수 있고(readable), 저장할 수 있고(indexable), 편집할 수 있어야(editable) 한다.
  • 인덱스 불가능한 정보를 인덱스 가능한 상태로 바꾸려는 노력
    http://chart.apis.google.com/chart?cht=p3&chd=s:FI&chs=200x100&chl=Firefox|IE
    (Try bar chart "bvg")
  • Easy to crack?! ex.)) Angry Birds for Chrome
  • 클라우드와의 결합 HTML5의 파워는 클라우드에서 나온다.

Okay, I got to know HTML5 is good.

But, the final specification will not be available soon!

Do I study HTML5 already?

I definitely think you must know HTML5 right now:
  • Perfect specification is different from implementation
  • Modern browsers
  • It's just not the tags or APIs. It is the platform.
HTML5의 큰 변화 - HTML5 is upgraded to rich client platform from simple document viewer by:
  • Local Storage
  • WebSocket*
  • Multimedia
Before WebSocket: AJAX long polling
- RTCS 실시간 웹 서비스를 위한 도전
- Reverse Ajax

WebSocket: SOA and Enterprise Web Application
- HTML5 웹소켓이 필요한 5가지 경우
      

...Especially in mobile web

May 2010 Mobile Metrics Report
I will present how web technology including HTML5 pervade life in the next chapter

Web Technology

That's not all

Huge device market!

Global Standard

http://bigduck.tistory.com/category/%EC%A0%9C%EB%A9%8B%EB%8C%80%EB%A1%9C%20%EB%A6%AC%EB%B7%B0?page=2
How about big players?

Apple likes HTML5

Flash to Focus on PC Browsing and Mobile Apps; Adobe to More Aggressively Contribute to HTML5

Google likes HTML5, too
Check Google I/O 2009

Even Microsoft likes web!

I will give some images in BUILD

http://www.buildwindows.com/
Windows 8 BUILD

Angry Birds (WebGL + Canvas)

SlideShare Ditches Flash for HTML5*

  • 30% Faster and 40% Smaller
  • Support for Apple iOS
  • Easier to copy & paste in browser
  • Semantic and accessible. Google can parse it and index the documents.
  • Cloud Computing: an army of hundreds of Amazon EC2 instances is crunching away at converting the *millions* and *millions* of presentations and documents (a font extractor, a font generator, etc)

Mozilla B2G(Boot to Gecko) - Mozilla open source operating system project (aka Firefox OS)

»파이어폭스, 내년엔 스마트폰OS…잘 될까

»BrowserQuest

...And Playboy loves HTML5

»Case of Readability

http://i.playboy.com/

Mobile Web

It's like Web 2.0

http://www.slideshare.net/yiibu/beyond-themobilewebbyyiibu
Responsive Web Design (aka N-Screen)
  • Mobile Viewport Declaration
    <meta name="viewport" content="width=device-width" />
  • CSS3 Media Queries
    • Resolution dependent layout
    • Example: html5rocks.com with Safari
  • Optimization
    • Amazon SILK
  • Contextual Data

They leverage HTML5 for extreme multi-platform (over 400 devices)

Cross Platform Leverage
  • native WITH Web
    • 모바일웹 담은 새 '네이버' 앱
    • unscientific research
      dion@laptop $ grep UIWebView *.ipa |wc -l
      205
      dion@laptop $ ls -al *.ipa |wc -l
      415
  • Web deployment model
    • A/B testing
    • Constantly changing UI
I introduced why web using HTML5/CSS3 technology has been so a trend.
And our next is JavaScript.

JavaScript

Brendan Eich, 1995, Netscape

http://bodil.github.com/coffeescript/
The Bad Parts
  • Global variables
  • No block scope
    function test() {
        var1 = "inner";
    }
    
    test();
    alert(var1);
  • The with block
  • Deal with the == operator
    2 === "2"; // false - obviously a number is not a string
    2 == "2";  // true
  • Semicolon
Do you know JavaScript?
  • Douglas Crockford
    • Discovered Good Parts
    • The World's Most Misunderstood Programming Language
      • Myths and Truths
        • It is subset of Java (It's name is Java-)
        • It is not object-oriented (It doesn't have class)
        • Many design errors, Lousy Implementations, Amateurs

But why JavaScript is so popular?

...Again Web 2.0 and Ajax*

http://www.archimuse.com/mw2006/papers/lowndes/lowndes-fig2.html
AJAX = Asynchronous Javascript And XML
JavaScript Framework

jQuery: "The Write Less, Do More" JavaScript Library *

jQuery
  • DOM Scripting, AJAX, UI Effects
    var external_links = document.getElementById('external_links');
    var links = external_links.getElementsByTagName('a');
    for (var i=0;i < links.length;i++) {
        var link = links.item(i);
        link.onclick = function() {
            return confirm('You are going to visit: ' + this.href);
        };
    }
    $('#external_links a').click(function() {
        return confirm('You are going to visit: ' + this.href);
    });
  • Plugin architecture

jQuery plugin for mobile environment

Tizen Web UI Framework is based on jQuery Mobile

Go beyond stereotype

Node.js: evented I/O for v8 javascript

Node.js
  • Why don't use the same language as client?
  • The joys of async programming
    var http = require('http');
    var server = http.createServer(function (req, res) {
        res.writeHead(200, { "Content-Type": "text/plain" })
        res.end("Hello world");
    }).listen(80);
  • Front-end developers can develop network service easily
  • no.de
    • Node.js Cloud Services
    • Virtualization + Server-side JavaScript

JavaScript for Large-Scale applications

jQuery is not enough

Yeah, these are the tools for traditional large-scale server programming!

http://addyosmani.com/toolsforjqueryapparchitecture/
Tools (1)
  • Modulization
    • CommonJS and AMD
  • MVC Pattern
    • SproutCore: Apple iCloud
  • Design Patterns
  • Feature Detection
    • Modernizr
      <script src="js/modernizr-1.0.min.js"></script>
      <html class="no-js">
                  
      <html class="js canvas geolocation no-multiplebgs">
                  
Tools (2)
  • Testing
    • Unit Testing
    • GUI Testing: Sencha EventRecorder
  • Build Process
    • build script
    • Optimization, Minifcation/Concatenation
    • Grunt: a task-based command line build tool for JavaScript projects
  • UI Widgets
    • Dojo Toolkit, Sencha, Kendo UI

Build system

Google I/O 2012: Better Web App Development Through Tooling

Testing

Google I/O 2012: Better Web App Development Through Tooling

Template and Data Source

I introduced HTML5, CSS3 and JavaScript technology.
I will present IDE in context of web using these technology.

Web and IDE

Hybrid App

Hybrid App
Hybrid App > Framework Architecture
Hybrid App > PhoneGap

Web-based IDE

Why Web-based IDE?
  • Already, we use web so much in software development
    • using a web-based bug tracking system
    • monitoring your build
    • reviewing code changes
    • reading documentation and searching for code snippets
    • browsing other people's code repositories
  • Web browser is the best simulator for web technology

Eclipse moved to web from 2008

Web-based workbench

Web-based IDE relates with Cloud

Cloud Computing

PaaS (Platform as a Service)

Model 1: Cloud-based IDE

Cloud9 IDE*

  • Editor for HTML, CSS, JavaScript, Coffeescript, Ruby, PHP
    • Syntax highlighting
    • Themes
    • Search and replace with regular expressions
  • Chat with team members
  • Run, Debug and Test
  • Git Integration
  • Team and Project Management

Model 2: Mobile backend (1)

StackMob*

  • http://stackmob.com/
  • Mobile backend as a service platform (BaaS)
    • Ruby, Java, Scala and Clojure
    • OAuth, social services (Twitter, Facebook, etc)
    • Storage solutions (Joyent now, Amazon coming shortly)
    • Advertising (coming soon)
    • Messaging (including Push)
    • API creation and custom server code (Java interface)
  • If iOS, is it competent to Apple iCloud + iMessaging?
  • If StackMob fails, is it enough to provide just data export feature?
StackMob

Model 2: Mobile backend (2)

Parse* (Acquired by Facebook)

  • http://parse.com/
  • Server-side development backend
    • Data Storage & Sync: Game Server
    • Push Notifications: Cacao Talk?
    • Social Integration
    • User Management

Model 2: Mobile backend (4)

Game Creation Platform: GameSalad*

Google Play game services

  • BaaS에는 Visual 요소만 디자인하면 코딩을 전혀 할 줄 모르는 사람들도 쉽게 게임을 개발할 수 있는 Game Creation Platform도 존재한다. 게임샐러드는 코딩이 필요없는 게임 Creation 플랫폼으로서 비쥬얼 디자인만 하면 iOS, 안드로이드, HTML5 등 게임 앱을 자동으로 만들어 준다. 전세계 30만명의 개발자들이 활용하고 있으며, 6만개의 게임 App.이 출시되었으며 그중 1만개는 iOS App.이다. 미국 App. Store에서 이중 60개가 Top 100에 랭크되었다.
  • http://hompy.info/618

Model 3: Cloud Power > Build (1)

PhoneGap:Build ("Say goodbye to SDKs, compilers and hardware")*

PhoneGap Build: build.phonegap.com, debug.phonegap.com
  • Integration with Dreamweaver
    • 로그인
    • 플랫폼별 빌드 진행 상황 확인
    • 바로 에뮬레이터 실행도 가능
  • Impressed to see that it only took 2-3 minutes to go from a web app to running an Android app on my phone."

Model 3: Cloud Power > Build (2)

PhoneGap XDK*

  • HTML5 mobile development strategies
    • Classic Web Apps - No device interface, no on-device caching (only works online)
    • Mobile Web Apps - HTML5 Caching (works online/offline), some device interface (GPS, Accelerometer)
    • MobiUs Enhanced Web Apps - Caching (works online/offline), full native device interface using appMobi API
    • Hybrid Native Apps - built from HTML5/JS using appMobi's Cloud Build service
  • 웹 배포 모델 (웹앱의 특성에 따라 화면과 화면의 특성에 따라 개발자가 신중하게 선택)
    Mobile Web App의 종류
    • Online Web App (reading contents from server)
    • Offline-enabled Web App: Local Data (syncing data with server)
    • Offline Web App: Local Data ex.)) Game
    • Hybrid Web App

Model 3: Cloud Power (2)

Amazon Silk* (Cloud-based Browser)

  • Amazon SILK
  • More thiner client (Client doesn't need even a browser): 클라우드 브라우저의 탄생
  • vs. Client-based Browser
    • 68G RAM, 8-Core CPU, Optimized Network vs. 1G RAM, 2-Core CPU
    • One compressed packages from the Amazon cloud vs. 50 resources from a variety of web servers
  • Details
    • Optimized for cloud and mobile
    • Stores web pages in cloud storage
    • Prediction to visiting web sites by cache information
    • SPDY
    • EC2 keep permanent connections open to popular sites like Facebook and Google

Model 4: Cloud Authoring ("How did you make this presentation?")

impress.js (Prezi-style using CSS3 3D Transform)

SlideRocket

Reveal.js

Model 5: GaaS, Cloud Game*

웹브라우저도 클라우드 게임 서비스를 이용할 수 있는 좋은 플랫폼

방송·통신업계, ‘클라우드 게임’ 만지작

  • 클라우드 게임 서비스는 게임 화면을 인터넷 망을 통해 받아보는 개념이다. 예를 들어 사용자는 거실 TV에서 게임패드를 통해 서버로 입력 내용을 전달하고, 서버는 게이머가 입력한 내용에 따라 게임 화면을 계산해준다. 게임 서버는 게임 화면을 실시간으로 동영상 형식으로 바꿔 인터넷을 통해 뿌려주는 식이다. 쉽게 말해 게이머가 직접 조작할 수 있는 유튜브 동영상이라고 생각하면 된다. 주문형 게임(GOD), 혹은 서비스로서의 게임(GaaS)인 셈이다.

Model 5: Cloud Game

Multi-play and multi-screen game

PokerFun (TV)

Web GUI Builder

It is run by Eclipse OSGi and you can use it now

Interface Builder

Bootstrap Form Builder, divshot, Jetstrap

Other Development Tools

Emulator in browser

Amazon Test Drive*

  • Architecture
    • TestDrive allows prospective app buyers to run a live preview of an app with an Android device emulator that runs in their browsers.
    • Test Drive is currently not available to customers outside the U.S.
  • Architecture
    • To utilize Main developer Yi Sun confirmed that the Amazon use our android-x86
  • References
    • Android-x86 - Porting Android to x86
    • http://blog.android-x86.org/
Web-based WAC Simulator (based on Ripple-UI)
WEINRE (WEb INspector REmote)

Can we utilize and prototype it?

  • RAD for web application
  • Tizen Web Simulator - separation from Control Panel and Skin/CEF process

Or utilize Node.js?!

  • Alternative to WEINRE: now or dnode
  • Build: Grunt
  • LESS compile: npm install less

More about PC and targets

  • Adobe Shadow (PC to multiple targets)
  • Let's swap the direction...* (target to PC)
    • Use Android device as Control Panel to the web application running in PC
    • Web Slide Control
    • MOVL
구매하기에서 결제할 사람, 배송지에서 받을 사람(소셜네트워크 목록을 활용)을 바꾼 것만으로도 '조르기', '선물하기'라는 개념이 도입된다.
We reached almost to the end.
I will add some comments and wrap up in the next chapter.
My Mini IDE and Sandbox (1)
  • Node.js
    • Express (node web framework)
    • oAuth (Sign in with twitter)
  • UI
    • Template Engine: EJS than Jade
    • Twitter bootstrap
  • DB
    • MongoDB
  • Hosting in no.de Smart Machine
Try it?
My Mini IDE and Sandbox (2)
  • Route and RESTful
    app.get('/documents', loadUser, documents.index);
    app.post('/documents.:format?', loadUser, documents.create);
    
    app.del('/sessions', function(req, res) ...); // ?
            
  • Access control middleware
    function loadUser(req, res, next) {
        if (req.session.user_id) {
            next();
        } else {
            res.redirect('/sessions/new');
        }
    }
            
Now, let's try to remove login facility.
IDE Concept (1)
MVC requires route picker than file picker in a single context.
The future is specific

IDE Concept (2)

>Realtime feedback

Bret Victor - Inventing on Principle

IDE Concept (2)

>Realtime feedback: live recompilation and reload

Google I/O 2012: Better Web App Development Through Tooling
What you saw
Web Technology
  • HTML5, CSS3, JavaScript
  • Hybrid App

Web
  • Mobile Web
Web and IDE
  • Web-based IDE
  • Cloud
  • Development Tools
What I think
Web application is not a cure-all.
  • The risk of exposing core logic
  • The risk of losing local data
  • Low performance: 페이스북 아이폰 앱에서 HTML5 포기
  • The Web is Dead | 폐쇄된 플랫폼의 관성과 대안 OS
What I think
Web application will have a great synergy with cloud service.
Leverage with native technology.
  • Compile C/C++ to Javascript
  • asm.js
What I hope
To discover new opportunity in Web
To study JavaScript

And you have...

BEARD to be a good programmer!

Thanks!

Visit WAC IDE Website written in HTML5/CSS3/JavaScript

References
  • HTML5 Showcase for Web Developers: The Wow and the How
  • CSS3
    • CSS3 소개
  • HTML5
    • History and Status of HTML5
    • No Tears Guide to HTML5 Games
  • JavaScript
    • Tools For jQuery Application Architecture
  • BUILD
  • 크로스플랫폼 앱 프레임워크 선택의 기준