Using Safari to Deliver and Debug a Responsive Web Design



Similar documents
Improving Your App with Instruments

Apple Applications > Safari

Coherent GT Performance Best Practices

Going Social with ReplayKit and Game Center

ios Application Development &

Reach 4 million Unity developers

Sizmek Formats. Collage. Build Guide

Performance Optimization and Debug Tools for mobile games with PlayCanvas

dotmailer for Salesforce Installation Guide Winter 2015 Version

The V8 JavaScript Engine

WATTLE. Adobe Connect 9.4 Upgrade Key Differences. Author: Jo Jo Maung, Business Analyst, ITS Version: 1.3 Date: 16 September 2015.

Retool your HTML/JavaScript to go Mobile

Ocularis Web User Guide

Examining the InDesign Server Solution

Luxriot Broadcast Server Manual

Sizmek Formats. Swell. Build Guide

QML and JavaScript for Native App Development

Continuous Integration with Xcode 6

Continuous Integration and Code Coverage in Xcode

Modern Web Development:

Debugging JavaScript and CSS Using Firebug. Harman Goei CSCI 571 1/27/13

The Commerce Trust Company

Mobile Performance: for excellent User Experience

Reminders. Lab opens from today. Many students want to use the extra I/O pins on

Mobile App Design and Development

Dashboard Skin Tutorial. For ETS2 HTML5 Mobile Dashboard v3.0.2

Android Architecture. Alexandra Harrison & Jake Saxton

Open Source Open Possibilities. Vellamo. System Level Benchmarking October Open Source Open Possibilities PAGE 1

OpenGL Insights. Edited by. Patrick Cozzi and Christophe Riccio

TYLER JUNIOR COLLEGE School of Continuing Studies 1530 SSW Loop 323 Tyler, TX

ANDROID INTRODUCTION TO ANDROID

USING RUST TO BUILD THE NEXT GENERATION WEB BROWSER

Adobe Flash Professional CS6

Advanced Graphics and Animations for ios Apps

Development Techniques for Native/Hybrid Tizen Apps. Presented by Kirill Kruchinkin

Flash MX Image Animation

MySciLEARN System Requirements. For educators and providers using the Fast ForWord and Reading Assistant programs

Web Development with the Eclipse Platform

HTML5 : carrier grade

Informatica Cloud Connector for SharePoint 2010/2013 User Guide

PLAYER DEVELOPER GUIDE

Developing and deploying mobile apps

User Tutorial on Changing Frame Size, Window Size, and Screen Resolution for The Original Version of The Cancer-Rates.Info/NJ Application

Upgrade to Microsoft Web Applications

Cloud Powered Mobile Apps with Azure

Affdex SDK for Android. Developer Guide For SDK version 1.0

Safari Web Inspector Guide

Microsoft Project 2010

Mobile Web Design with HTML5, CSS3, JavaScript and JQuery Mobile Training BSP-2256 Length: 5 days Price: $ 2,895.00

Quick start. A project with SpagoBI 3.x

Getting Started with the new VWO

Evaluation of Xamarin Forms for MultiPlatform Mobile Application Development

Advanced Testing and Continuous Integration

NoSQL web apps. w/ MongoDB, Node.js, AngularJS. Dr. Gerd Jungbluth, NoSQL UG Cologne,

Using the VMRC Plug-In: Startup, Invoking Methods, and Shutdown on page 4

Outline. 1.! Development Platforms for Multimedia Programming!

MICROSOFT WINDOWS NAVIGATION

Programming in HTML5 with JavaScript and CSS3

Introduction to Python

Developing Cross-platform Mobile and Web Apps

Development for Mobile Devices Tools from Intel, Platform of Your Choice!

Lecture 9 Chrome Extensions

Deploying Management and Security Agents to Mobile Devices. Deploying Mgmt and Security Agents

WebView addjavascriptinterface Remote Code Execution 23/09/2013

Internationalizing JavaScript Applications Norbert Lindenberg. Norbert Lindenberg All rights reserved.

Macromedia Dreamweaver 8 Developer Certification Examination Specification

Nikhil s Web Development Helper

MERLIN. The Quick Start Guide to professional project management ProjectWizards GmbH, Melle, Germany. All rights reserved.

How To Develop For A Powergen 2.2 (Tegra) With Nsight) And Gbd (Gbd) On A Quadriplegic (Powergen) Powergen Powergen 3

Safari Web Inspector Guide

This course provides students with the knowledge and skills to develop ASP.NET MVC 4 web applications.

Blueball Design Dynamic Content 2 Stack Readme Manual v1.0

Introduction to NaviGenie SDK Client API for Android

LAMBDA CONSULTING GROUP Legendary Academy of Management & Business Development Advisories

Lecture 1 Introduction to Android

Intel XDK для разработки кросс-платформенных мобильных приложений

Mobile application testing is a process by which application software developed for hand held mobile devices is tested for its functionality,

ivms-4500(iphone) Mobile Client Software User Manual (V1.0)

TEGRA X1 DEVELOPER TOOLS SEBASTIEN DOMINE, SR. DIRECTOR SW ENGINEERING

MySciLEARN System Requirements. For educators and providers using the Fast ForWord and Reading Assistant programs

spring semester course schedule

THE BUSINESS CASE FOR HYBRID HTML5 MOBILE APPS

Getting Started User Guide

Software Development & Education Center PHP 5

Introduction to Android

How To Create A Website In Vablet (For Web) With Html And Html (For Html) On A Pc Or Mac) With A Web Browser (For Mac) On Your Computer Or Ipad Or Ipa (For Pc Or Ip

HYBRID APPLICATION DEVELOPMENT IN PHONEGAP USING UI TOOLKITS

Overview of the Adobe Flash Professional CS6 workspace

slides at goo.gl/kifue

HP LoadRunner. Software Version: Ajax TruClient Tips & Tricks

Utility Software II lab 1 Jacek Wiślicki, jacenty@kis.p.lodz.pl original material by Hubert Kołodziejski

Advanced Web Development SCOPE OF WEB DEVELOPMENT INDUSTRY

Adobe Summit 2015 Lab 712: Building Mobile Apps: A PhoneGap Enterprise Introduction for Developers

Transcription:

Media #WWDC15 Using Safari to Deliver and Debug a Responsive Web Design Session 505 Jono Wells Safari and WebKit Engineer 2015 Apple Inc. All rights reserved. Redistribution or public display not permitted without written permission from Apple.

WebKit Safari

Web Inspector

Web Inspector + Responsive Design Mode

Web Inspector

Great Performance

60fps

16.67ms

Do Without Thinking

var name = "Trevor"; var age = 28; var obj = {};

var String name = "Trevor"; var Integer age = 28; var Object obj = {};

function add(value1, value2) { var result = value1 + value2; return result; } var v1 = 2.3, v2 = "2.7"; add(v1, v2); // => "2.32.7"

function add(value1, value2) { var result = value1 + value2; return result; } var v1 = 2.3, v2 = "2.7"; add(v1, v2); // => "2.32.7"

function add( Double value1, String value2) String { var String result = value1 + value2; return result; } var v1 = 2.3, v2 = "2.7"; add(v1, v2); // => "2.32.7"

function add( Double value1, String value2) String { var String result = value1 + value2; return result; } var v1 = 2.3, v2 = "2.7"; add(v1, v2); // => "2.32.7"

function Person() { } function DeveloperPerson() { Person.call(this); } DeveloperPerson.prototype = Object.create(Person.prototype); DeveloperPerson.prototype.constructor = DeveloperPerson; var employee = new DeveloperPerson();

function Person() { } function DeveloperPerson() { Person.call(this); } DeveloperPerson.prototype = Object.create(Person.prototype); DeveloperPerson.prototype.constructor = DeveloperPerson; var employee = new DeveloperPerson();

function Person() { } function DeveloperPerson() { Person.call(this); } DeveloperPerson.prototype = Object.create(Person.prototype); DeveloperPerson.prototype.constructor = DeveloperPerson; var DeveloperPerson employee = new DeveloperPerson();

function Person() { } function DeveloperPerson() { Person.call(this); } DeveloperPerson.prototype = Object.create(Person.prototype); DeveloperPerson.prototype.constructor = DeveloperPerson; var DeveloperPerson employee = new DeveloperPerson();

class Person { } class DeveloperPerson extends Person { } class ManagerPerson extends Person { } var DeveloperPerson employee = new DeveloperPerson();

class Person { } class DeveloperPerson extends Person { } class ManagerPerson extends Person { } var DeveloperPerson employee = new DeveloperPerson();

function register(person) Object Person DeveloperPerson ManagerPerson

function register(person) Object Person DeveloperPerson ManagerPerson

function register( DeveloperPerson attendee) Object Person DeveloperPerson ManagerPerson register(new DeveloperPerson());

function register( DeveloperPerson attendee) Object Person DeveloperPerson ManagerPerson register(new DeveloperPerson());

function register( ManagerPerson attendee) Object Person DeveloperPerson ManagerPerson register(new ManagerPerson());

function register( ManagerPerson attendee) Object Person DeveloperPerson ManagerPerson register(new ManagerPerson());

function register( Person attendee) Object Person DeveloperPerson ManagerPerson register(new DeveloperPerson()); register(new ManagerPerson());

function register( Person attendee) Object Person DeveloperPerson ManagerPerson register(new DeveloperPerson()); register(new ManagerPerson());

function register( Object attendee) Object Person DeveloperPerson ManagerPerson register(new DeveloperPerson()); register(new ManagerPerson()); register(new Extraterrestrial());

function register( Object attendee) Object Person DeveloperPerson ManagerPerson register(new DeveloperPerson()); register(new ManagerPerson()); register(new Extraterrestrial());

Object String Array Function Null Undefined Boolean Integer Number Double

(many) Undefined Function Boolean Integer Object Number Double String Null Array

Double Null

Double Null

Double? Null

Better Console

$0 Is Still the Currently Selected DOM Element

Great for Native API Exploration!

Number RegExp Boolean Symbol String Element Object Function Null Custom Getter

Demo Web Inspector Andy Estes Safari and WebKit Engineer

Make Your Site Faster

Make Your Site Faster Turn on paint flashing on Run Rendering Frames Timeline Try in ios

Make Your Code Better

Make Your Code Better Use the type profiler on your JavaScript Explore your JS objects in the console Explore the DOM APIs (window, HTMLElement, etc.)

Web Inspector

Web Inspector + Responsive Design Mode

Responsive Design Mode

Responsive Design

Responsive Design

Responsive Design

Responsive Design

Responsive Design

Responsive Design

Responsive Design

Responsive Design

Responsive Design

Responsive Design

Responsive Design @supports @media srcset

Demo Responsive Design Mode Andy Estes Safari and WebKit Engineer

Responsive Design Mode Focus is on layout and resolution Scalable page preview Screen size presets ios Multitasking screen size presets Custom sizes Works alongside Web Inspector New in Safari 9

Responsive Design Mode

Web Inspector + Responsive Design Mode

When You Leave Here

When You Leave Here Get the developer release of OS X El Capitan

When You Leave Here Get the developer release of OS X El Capitan Turn on the develop menu

When You Leave Here Get the developer release of OS X El Capitan Turn on the develop menu Customize Web Inspector tabs

When You Leave Here Get the developer release of OS X El Capitan Turn on the develop menu Customize Web Inspector tabs Use paint flashing and Rendering Frames Timeline

When You Leave Here Get the developer release of OS X El Capitan Turn on the develop menu Customize Web Inspector tabs Use paint flashing and Rendering Frames Timeline Turn on the Type Information Profiler

When You Leave Here Get the developer release of OS X El Capitan Turn on the develop menu Customize Web Inspector tabs Use paint flashing and Rendering Frames Timeline Turn on the Type Information Profiler Play in the console

When You Leave Here Get the developer release of OS X El Capitan Turn on the develop menu Customize Web Inspector tabs Use paint flashing and Rendering Frames Timeline Turn on the Type Information Profiler Play in the console Try Responsive Design Mode

Make Your Content Shine

More Information Technical Support Resources for Safari Developers http://developer.apple.com/safari/ Safari Developer Library http://developer.apple.com/library/safari/ General Inquiries Jon Davis, Web Technologies Evangelist web-evangelist@apple.com

Related Labs Safari and WebKit Lab Safari and WebKit Lab Graphics, Games, and Media Lab A Graphics, Games, and Media Lab A Wednesday 10:00AM Friday 12:00PM