字幕组成品列表(Beta)
  • 写在前面
  • Android 平台
    • Game On! 游戏开发系列 - 031
      • Pie Noon - 1503060393
      • The Death of Base Game Activity - 1504030543
      • Surviving OpenGL Context Loss - 1504030546
      • WebP for Game Devs - 1504030547
      • Saved Games In-Depth (Part 1) - 1504070556
      • Saved Games In-Depth (Part 2) - 1504030548
      • Smaller Flipbook Textures with CRABBY - 1504030544
      • Google Tag Manager - 1504030545
      • Flatbuffers - 1505050794
      • Achievement Point Pointers - 1505050796
      • Frequency Scaling - 1505050797
      • Meet the Management APIs - 1501140367
      • Y U Ship Broken Games - 1505050795
    • Android 性能优化 - 088
      • Garbage Collection in Android - 1503170425
      • Performance Cost of Memory Leaks - 1503170424
      • Rendering Performance 101 - 1501130351
      • Understanding Overdraw - 1501130352
      • Understanding VSYNC - 1501130353
      • Tool - Profile GPU Rendering - 1501130354
      • Why 60fps? - 1501130355
      • Android UI and the GPU - 1501130356
      • Invalidations, Layouts, and Performance - 1501130357
      • Overdraw, Cliprect, QuickReject - 1501130358
      • Tool - Memory Monitor - 1501130363
      • Battery Performance 101 - 1501130364
      • Understanding Battery Drain on Android - 1501130365
      • Battery Drain and WakeLocks - 1501130366
      • Memory Performance 101 - 1504170661
    • I/O 2014 Android 开发专题 - 089
      • Activity Transitions - 1504020505
      • Building Apps For Android TV - 1504020520
      • Building great Android media experiences - 1504020510
      • Building a quality app from start to finish - 1504020515
      • App Indexing API - 1504020507
      • What's new in WebView - 1504010484
      • Bluetooth Low Energy - 1504010486
      • Building impressive Android media experiences - 1504010493
      • The next Generation of Authentication - 1504020497
      • Don't Alpha That Pixel! - 1504020523
      • NFC + HCE Your phone in an interactive world - 1504020509
      • Demystifying encodes and decodes of WebM - 1504020521
      • Google Cloud Messaging - 1504020524
      • Getting your Game on the Big Screen - 1504020518
      • I hear you like realtime memes - 1504020511
      • Offerize your App - 1504020506
      • Using the Android Job Scheduler - 1504020504
      • From Holo to Material - 1504020526
      • Under the Hood of Android Auto - 1504020501
      • Isolation for Android App Developers - 1504020498
      • Android Work - 1504010496
      • ExoPlayer: Adaptive video streaming on Android - 1504010489
      • Sample rates and resampling: Why can't we all just agree? - 1504010488
      • Drive Android API - 1504010485
    • Android Studio - 004
      • Layout Editor (Ep 3, Android Studio) - 1503290479
      • Introducing Gradle (Ep 2, Android Studio) - 1503170426
    • I/O 2014 Android 分发主题 - 091
      • Introduction to Google Play - 1504030534
      • Google Play: building your user community - 1504030535
      • Optimizing Apps for Education - 1504030536
      • Succeeding in Education Technology - 1504030530
      • Subscriptions Made Easy with Google Play - 1504030531
      • The world is your playground - go global with Google - 1504030533
      • Maximizing discoverability on Google Play - 1504030538
    • Android Auto - 003
      • Introduction to Android Auto - 1504130615
      • Android Auto Messaging - 1504130617
      • Android Auto Audio - 1504130616
    • Android Wear - 006
      • Designing for Android Wear - 1503210448
      • How We Customized Google Apps for Android Wear - 1503210450
      • Fullscreen apps for Android Wear - 1503210445
      • New Notification Features for Android Wear - 1503210446
      • Building Cloud-powered wearable Apps - 1503210449
      • An Introduction to Android Wear - 1503190435
      • Google I/O 2014 - Android Wear: The developer's perspective - 1503210442
      • Devoxx 2014 Interviews: Android Wear - 1503210440
      • DevBytes: Watch Faces for Android Wear - 1503210439
    • Android TV - 005
      • Using the Leanback library - 1504080588
      • Beach Buggy Racing Multiplayer with Nearby Connections (Play Services) - 1503060387
    • Android for Work - 106
      • Android for Work for Developers - 1503060390
      • App Configurations, Testing and Launchers - 1504110590
    • IO Bytes 2014 - Android - 066
      • Chrome Apps on Android and iOS - 1501080014
      • Perf Primer CPU, GPU and your Android game - 1501080017
  • Chrome 平台
    • IO Bytes 2014 - Chrome and Web - 067
      • Using the PageSpeed API - 1505070815
      • Fabulous Forms for the multi-device web - 1505070816
      • Testing multi-screen web pages - 1505070817
      • Responsive images today - 1505070819
      • Web Performance Testing at YouTube - 1505070828
      • Building sites for the multi-device web - 1505070820
      • Deep dive: Google Cloud Messaging for Chrome - 1505070827
  • Google 创业者资源
    • Coffee with a Googler - 012
      • Chat with Allen Huang of AndroidTV - 1503040384
      • Chat with Fred Chung about developer advocacy - 1503070395
      • Google Fit platform with Michelle Haq - 1503210443
      • Android Auto Product Manager Andrew Brenner - 1501120027
      • Chat with Francis Ma about Google Play services - 1501120028
    • Root Access For Startups - 077
      • What we learned building plug-ins for Android, with startup Magnet - 1503230453
      • How to use crowdfunding to your advantage, with startup Hale Devices - 1503280462
      • How to overcome customer objections when selling tech, with startup Guesswork - 1503280458
    • First Things First - 029
      • Getting started with Android: A crash-course in developing for Android - 1504120601
      • How to ask a question: conducting research for your startup - 1504120603
      • MVP Design Hacks: transform your hot idea into a validated prototype - 1504120602
      • Build something people want: Solving real problems - 1504120605
    • How I - 061
      • Use BigQuery to find my most valuable customers - 1504070573
      • Manage beta testing communities using Google Play - 1504070572
      • Use paper wireframing to build native prototypes - 1504070570
      • Used social media and $0 marketing to get 68 million users - 1504070568
      • Prep to fundraise with four questions - 1504070564
      • Validated my idea in 2 days (with no code) - 1504070562
      • Build open platforms on Android - 1504120596
      • Get cheap, automatic analytics for my business using BigQuery - 1504070571
      • Write press releases to get international media coverage - 1504070569
      • Test beta-product features using Google Apps - 1504070563
      • Use URL builder to measure ROI on social media - 1504070561
      • Use events to build DeadSocial's brand - 1504070557
      • Use BigQuery to visualize streaming data - 1503220452
      • Find, screen, and hire developers - 1503120406
      • Drive engagement with social challenges - 1504070558
  • 设计
    • DesignBytes - 017
      • Paper and Ink: The Materials that Matter - 1505050793
  • 云计算
    • DevBytes: Google Cloud Platform - 021
      • Powering the next killer app with the Google Cloud Platform - 1504210672
      • Introduction to Google Cloud Endpoints - 1504210675
      • The Beauty of Scale with Google Cloud Platform - 1504210678
    • Google Cloud Platform - Big Data - 105
      • GDELT & BigQuery: Understand the world - 1502200379
    • Uncategorized - 999
      • Introducing Google Cloud Platform Resources - 1501190370
  • Google 应用开发
    • Launchpad Online - 072
      • The Setup: Creating new apps using Google APIs - 1503190428
      • Listing your files in Google Drive - 1503190429
      • Customizing Google Analytics for your startup - 1503290473
      • The Launchpad Online series - 1503190427
      • Getting started with Google Analytics - 1503290472
      • Accessing Google Maps from a spreadsheet?!? - 1502220381
      • Change the world in 10 lines of code - 1503080398
    • Google Play Services - 054
      • Google Play services 6.1 - 1503290481
      • Google Play Services 7.0 - 1503200437
      • Google Play Services 6.5 - 1501080015
    • 谷歌地图 iOS SDK - 053
      • Maps Live: New Features in the Google Maps Mobile APIs for Android and iOS - 1504300777
    • Google 移动搜索开发 - 055
      • Is your app in the Google index? - 1504120598
      • Get more engaged users with Google Search for Developers - 1503070397
    • DevBytes: Google Cast - 020
      • Google Cast SDK for Android - 1504180666
      • Media Router Framework - Part 1 - Media Router API - 1504180667
      • Overview for Google Cast Receivers - 1504180664
      • Google Cast SDK for iOS - 1504180663
    • Getting Started with the Google Maps SDK for iOS - 035
      • Getting started with the Google Maps SDK for iOS, Part 1 - 1504270757
    • IO Bytes 2014 - Wearables - 070
      • Voice Driven GDK Glassware - 1505280836
    • Route 85 - 078
      • Introducing Route 85 - 1501120022
      • Quick Tip: Don't Default that Switch! - 1501190371
      • OpenInChrome on iOS, Part 1 - 1501120023
      • OpenInChrome on iOS, Part 2 - 1501120024
      • OpenInChrome on iOS, Part 3 - 1501120025
      • OpenInChrome on iOS, Part 4 - 1501120026
    • DevBytes 2014 - 019
      • Web Components - Template - 1505040789
      • Wearable DataLayer API - 1505050792
      • Using srcset for responsive images - 1505050790
      • The picture element for art direction - 1505050791
    • Uncategorized - 999
      • Sun Surveyor brings augmented reality to photographers using Google Maps APIs - 1504200668
      • Snappy travels with the Roads API - 1503060392
      • Easy Maps Apps in Java and Python - 1501140030
  • Google 广告平台
  • Polymer
    • Polycasts - 076
      • The Awesome Power of Auto-Binding Templates -- Polycasts #08 - 1502220382
      • Content Switcheroo with Core-Pages -- Polycasts #09 - 1502200380
      • Core Iconset -- Polycasts #02 - 1505040788
  • Web 平台
    • HTTP 203 - 062
      • Gotchas - 1501140368
      • Font Rendering - 1501080016
    • Web Components - 081
      • DevBytes: Web Components - Overview - 1504250709
  • 宣传视频
    • Uncategorized - 999
      • Google Developers - 1501150369
      • I/O Extended 2014 - Join me - 1502220383
  • Google 各类开发者会议
    • 2014 Chrome 开发者高峰会议 - 009
      • Keynote - Chrome Dev Summit 2014 (Darin Fisher) - 1503120407
      • TLS All the Things! - Security with Performance(Chris Palmer) - 1503140412
      • Let’s build some apps with Polymer!(Rob Dodson) - 1503150415
      • Day One Closing Remarks(Sundar Pichai) - 1503150417
      • Chrome Leadership panel - 1503160422
      • Fundamentals of Mobile Web Development(Matt Gaunt) - 1503150416
    • 2015 游戏开发者大会中 - 039
      • FlatBuffers - 1504150640
      • Games for Google Cast - 1504150637
      • Top 10 Things Android Game Developers Should Know v 3.0 - 1504150643
      • Automate Publishing for Google Play APIs - 1504150639
      • 3 Game Design Mistakes You're Making - 1504150636
      • Android TV - 1504150638
      • How to Go Viral Without Really Trying - 1504150641
    • Devoxx 2014 Interviews - 024
      • What's new in Android 5.0 Lollipop - 1504260740
      • Android Tools - 1504260743
      • BigQuery and user-defined functions - 1504260744
    • IO Bytes 2014 - 065
      • Dart in Google Cloud - 1505070810
      • Big genomic data on Google Cloud Platform - 1505070811
      • Easy International Checkout with Chrome - 1505070802
      • Google developer tools and APIs for iOS - 1503190436
      • Whet your appetite with IO Bytes - 1501080021
    • PlayTime@Shanghai - 095
      • 主题演讲 Chris Yerga - 1504060549
      • 如何成功地开发你的应用 Ellie Powers - 1504060550
      • 在Google上营利 Brahim Elbouchikhi - 1504060551
      • Playtime Shanghai event sizzle reel - 1504070552
    • Project Google I/O 2015 - 098
      • Project Tango Mobile 3D tracking and perception - 1506120857
      • Democratizing Education - 1506120868
      • Improve your Android app’s accessibility - 1506120864
      • Google Cloud Messaging 3.0 - 1506120844
      • Developers connecting the world through Google Play - 1506120862
  • 开源开放技术
    • Compressor Head - 013
      • The Trailer, Season 2 - 1503060385
      • Behind the Scenes - 1503210441
      • Arithmetic Compression (Ep 5, Compressor Head) Google - 1503070394
      • Introducing Compressor Head - 1502120372
      • Episode 1 (Variable Length Codes) - 1502120373
      • Episode 2 (The LZ77 Compression Family) - 1502120374
      • Episode 3 (Markov Chain Compression) - 1502120375
Powered by GitBook
On this page
  • 译者信息
  • 解说词中文版:

Was this helpful?

  1. Google 各类开发者会议
  2. 2014 Chrome 开发者高峰会议 - 009

Fundamentals of Mobile Web Development(Matt Gaunt) - 1503150416

PreviousChrome Leadership panel - 1503160422Next2015 游戏开发者大会中 - 039

Last updated 5 years ago

Was this helpful?

视频发布时间

2014年11月20日

视频介绍

Matt gives a whirlwind tour of getting started on Web, from our Web Fundamentals guide to jump-starting with the Web Starter Kit, and also cover some of the stunning advancements in DevTools.

视频推介语

暂无,待补充。

译者信息

翻译

润稿

终审

原始链接

中文字幕

翻译流水号

加入字幕组

Wallace4ever

黄莘

——

1503150416

解说词中文版:

虽然还是很奇怪 但相比于去年Jake对我的介绍来说

不像去年 这次的介绍有了极大的进步

你简直是要将我的信息一股脑吐露给观众朋友们

因此Jake 这次你做得不错

你学到了不少东西

好的 我叫Matt Gaunt

我算是个谷歌团队的拥护者吧

我来自伦敦

因而有这英式口音

我可不是Rob Dodson

我将要谈的是关于移动网站开发的

基本法则

本次我的介绍内容的结构

就是相当概要地看看

我们这些天听说的内容

我们看到了SILK团队带来的性能展现

帧数始终保持在60FPS 还有ServiceWorker这个API

以及它真正离线缓存你的网页的能力

此外还有一些用来实现这些的

后台功能 例如后台同步

推送通知 事实是所有这些都需要TLS安全传输层协议

以及Polymer框架——当下的一种构建你的网页应用的全新方式

这实际上的确是一个开发网站的

激动人心的时刻,不是吗

例如 这些全新的API都棒极了

并且当你将它添加在我们之前已经用

WebRTC, Web Audio, WebGL做出的成果上时候,一切都令人激动

不过如果你还是个web开发的新人

或者假设你已经从事web开发一小段时间了

但是响应式网页设计的理念

或为移动平台进行开发对你来说有些可怕的话

那么这些全新的API可能会让你失去信心

我记得因该是Paul Kennan

做了对Alexis上超过一千个的网站的调查

然而结果是 超过百分之三十的网站没有开发适合移动端的视图

另一个例子是 当你和一些机构 公司和开发者交流时

你会发现 响应式网站设计的概念

对于他们来说还很新颖

他们几乎对此没什么了解

对他们来说 如果你采用了那些新特性

为web进行开发的感觉可能就是这样

想一想你就能明白是为什么

举例来说 当你对这些新特性还不是很熟时

你会觉得自己好像站稳了脚跟

但事实是你完全摸不着头脑

你是个彻底的新人

不过这已经够打击人了

没人会希望这种事会发生在自己身上

这种情况比较有趣 因为我们仍在

用已掌握的这套核心技术进行开发

仍然是 html css和javascript

我们只不过是在不同的方案中用不同的方式使用它们罢了

我的意思是 就算你退一万步

去思考你自己会如何开发新的API

你还是会和大家一样做相同的事

你会去学习移动网站开发

然后你可能会开始去用这些API开发一些东西

然后你很有可能重复做那件事

并修改它以适应你的用例或者其它的任何事情

于是我们团队就开始思考 如果有人真的来找我们

问我们 我们如何构建一个响应式移动网站

我们该朝哪里发展

我该做什么

我该学什么

我如何做这件事

途径是什么

我们想了想

并且认识到我们没有一个好的答案

实际上 你有了使用细则

有相关的博客文章

其中有些紧跟潮流 有些则不会

于是我们认为 事实上

我们可以做点事去帮助他人

因此 在今年年初

我们有了网页基本原理这一概念

这一概念基本上呈现在一套

为应用实例而编写的文档之中

好了 现在再来看看这个例子 你如何创建一个响应式移动网页呢

答案自然是我们基本上会

让某个想学的人参与进来

来尽快学习前人的最佳实践

并且上手使用它

所以今年开始 我们开始做这件事

并且相当快地做完了这些重复性工作

在经历了几个月之后

我们意识到终于可以发布点东西了

我们之所以迫切的做这件事

是因为想要检验我们是不是

能够去解答没人回答的问题

而现在我站在这台上了 是的 我将发布它

刚刚我们的网站上线了

悄无声息 我们不想引起太大关注

因为如果这个

是没人想要的

确实有可能没人喜欢

那么这就算是个实验吧

我们尝试了不过没怎么见着效果 就是这样

同时我们也在和总代理人做相同的工作

他为我们设计并搭建网站

方便我们专注于网站的内容

我想Phil Hawksworth已经总结了

在这方面整个项目进度如何

他说 我发现不是所有的软项目启动都是温和的

那就接受随之而来的众包质量保证要求吧

总的说来 背后的事情是

我们刚启动了网站

这句话就很快就在推特 博客和黑客新闻上被转载

这使我们遇到了不曾想过的拥堵事件

你可能也注意到 我和Kennan

以及Paul Lewis用 你什么意思 这种话来挖苦他

这实际上很好 因为

我们本来在Github上有个链接去

鼓励人们去提出问题

我们发现这使得不少人向我们提意见

抱怨错别字 当然打字错误是很愚蠢的

还有许多人在投诉

我们使用了英式英语而不是美式英语

当然我们也得到了许多

来自专业人士的意见

比如其中一个情况就是我写了一些关于

触控的文档

我写的是指导 我说

如果你要同时支持鼠标和触控

你应该使用鼠标悬停和获取焦点功能

这是个好的实践经验

你应该试试

然后 PPK 通读了我的文档

她做在那儿告诉我

”你说过人们应该使用鼠标悬停

这没有问题

但是你没有提到 如果你触碰了某物

然后当你实际上放手的时候 鼠标悬停的状态仍然保持着“

我第一反应是 这什么鬼

什么还在保持不变

不过另一方面 我的确没注意到这个事实

因为我总是在使用鼠标悬停

所以反馈由于两点原因很便捷

第一 某人在这领域是个专家

他过来说 你需要把这个加进去

这就是最佳实践 你得告诉人们这一点

你得更新文档 使得要点被添加 一切就绪

第二点是 我可以去向

Chrome工程团队抱怨 我们为什么要做这件事

还有什么我们不能做的 因为我们不能在我的

手机上实现鼠标悬停并且用这一事件做点什么

所以网页基本原则的关键点就是寻求最佳实践方法

我们现在还在为其添加文档

但是其中一个重要的地方就在于

做这些文档就是其基本的实践之一

因此如果你使用像ServiceWorker这样的东西的话

它短期内不会被加入网页基本原则

只是因为它是全新的

这就意味着它可能不是最佳的实践方案

我想每一个实际上

在使用ServiceWorker的人都做了些

有些不同的事 一些对他们有用的事

所以老实说 所谓最佳实践的概念

对它的定义 实际上并不存在

可是人们还在试图弄清楚它

但同样重要的是指出 使用的实例是第一位的。

所以 你永远不会真正在网络基本准则上站稳脚跟然后说

啊 有一个关于如何实现ServiceWorker一个文档

它会是怎样的 如何实现离线网络应用程序

所以我认为的主要的原因是

如果有人写了一篇文章像杰克为App Cash做的那样

并有一个新的我们可以真正换出的API

那时候 随着时间推移 API就来来去去

我们可以有相同的文档结构

并更改最佳实践一段时间

主要原因之一是 我们想要这个相当快的

反馈回路 因为我们的所有文档都有些自以为是

如果你看过类似的模具部分

你采取一种典型的热烈讨论

我们可以说 在Web开发社区内

像是Gulp对Grunt 我们只是挑其中一个

我们做出明智的决定了所有可用的工具

我们挑选了一个我们认为是适合大多数的用例

现在 主要的原因是 如果你是一个新的开发者

你不知道什么是Gulp和Grunt

你从未有过自己的构建过程

那么有可能你不想要这一选择

因为你很快就会选择这样

没人能教你明辨两者的优劣

而另一面是 好吧 如果你的使用了这文档

并继续探索 如果我在这里和你意见不同

那就有可能你足够知道自己其实做出一个明智的决定了

所以 你应该这样做下去

但是有一个巨大的问题是

我们所做的与网络基础 而事实是

我们没有帮助建立的东西

这是一组文档

你仍然可以被这一切搞得真正不堪重负

而这正是我们提出网络入门套件的原因

而这背后的想法是 所有的最佳实践

我们其实都可以交给一名开发者 然后从事我们自己的事

和别人交流是有趣的

因为他们得到了一点东西 很难界定

网络入门套件是什么东西 因为我们没必要

做解释它的浩大的工作 因为我们基本上是想

得到的反馈 弄清楚人们想让我们用它做什么

我关于它的想法是 如果你创建一个新的Web项目

有可能有一些你默认需要做的事

对于我来说 我总是最终

用Grunt和Gulp结束某项开发工作

我才刚刚添加它的 因为它只是

为我处理大量的任务

它很好使用

我也只是做些从旧的网站上复制和粘贴东西的事

如页眉和页脚

因为我也懒得记住它

千真万确

但它的另一面是

或许我可能定义了一组风格

只是为了让事情看起来OK 抑或我只是去用些

像Bootstrap或者Foundation的东西 因为最终

我只想要能够激发的外观和感觉的东西

然后我以后会改变它 如果我想的话

因此 这是网络入门套件的目的

因此 我们选择了Gulp

并且用它做了这一套任务

所以对于你的样式 我们有CSS和Sass支持

我们串联起来 这意味着只有两个文件

将它们糅合在一起 这意味着当浏览器去获取

一个CSS文件时 它只需要取一个文件而不是五个

这就让它在让浏览器获取所有需要的东西方面

更方便 更快捷了

经过我们代码格式化的文件实际上更小更快了

实际在设备上就是如此

而且它已经非常有趣 因为我

每一天都使用Sass 大多数人实际上理解了这样的一点

当他们对此还很陌生的时候 他们不希望安装Ruby。

也不想再那基础之上安装Sass

因此 在网络入门套件的下一个版本中

我们要去完全去除对Sass的依赖

我们要使它成为一个可选的东西

所以在默认情况下 没有Sass

但是如果你添加了它 我们将使用node Sass

所以基本上 这是一个NPM模块

没有额外的依赖

JavaScript缩小再拼接 因为它是有效的

其实我们还使用JSON

所以 如果你是一个全新的开发者

我觉得这可能有点吓人

因为你突然上手这个东西 那么实际上在JavaScript中

你需要修复这些一系列问题

但它是非常有用的

它捕获很简单的错误

而且 它鼓励在JavaScript中的最佳实践教育

图片是有趣的一个东西 因为

你们有多少人听说过PageSpeed Insights

好吧 只有一点点

所以PageSpeed Insights监控你的网站

其中很重要的是 基本分析着

你的网页加载时间的表现

它监控的事情之一就是图像压缩

而在谷歌I/O 我们有一个设备实验室

我们得以知道 人们想要

在所有设备上看到我的网站

而我们 我和Pete LePage指的是整个站点

我们达到了一个我们可以说OK的地步

我们会把它放在所有这些设备上

如果你让我们来分析你的网站的每一个组成部分

和一些你可以做得更好的地方

还有图像 还有一大堆

人没有压缩他们的图片

而这些甚至都不是个宠物项目

这些都是正经的公司在他们的网站上

大量花费的时间

这个东西可以在一个图像上为您节省50% 60% 70%的时间

所以 是的

我们只是把它放在那里

这是最好的做法

然后 我们还有一个风格指南

而坦白说 与此的最初的意图是

如果你只是想出发 你会有很好的一套风格

然后 随着时间的推移 我们会希望你深入研究风格指南

自定义它 做你想做的

打开入口 放进东西 它会是你的

开发者们其实真的很喜欢这一点

他们喜欢从风格和内容分开的概念

我不知道它是否是一个温柔的风格指南驱动的

开发 但这就是一般人怎么来参考一下它的

但跟随着这个当前版本的问题是

真正做出改变是可怕的

这是很棒的

很多人会参与进来并使用它

但调整它是一种痛苦 因为我们

都依赖于Sass

它不是那么好

我要说说我们

将在一分钟内就此改变

但首先 还有两个工具

我们也将其加入了web入门套件中

基本上 从你用Gulp服务器启动开发服务器的那一分钟开始

它就增加了在LiveReload上

现在 如果你看过我在过去的任何谈判

我爱LiveReload 爱得要死

我还是偶尔能看到专业的Web开发人员

做出改变 进入浏览器 敲击刷新键

偶尔他也会按下 Ctrl+Shift+刷新组合键

因为缓存正在发挥作用

是啊

这简直让我疯狂

但基本上 实际上发生的是 你在HTML CSS或JavaScript中

做出的变化 然后它会为你立即刷新页面

你得到这个非常好的开发流程

因为你可以专心在你的编辑过程上

同时作出你想要的变化

而且你立即看到它们生效

我们还添加的另一个工具是BrowserSync

现在,BrowserSync是个奇怪的小东西

如果你有一组设备和浏览器

它们指向您的本地开发服务器

你与这些网页之一做出的任何交互

都得以在所有的其他装置同步

所以 这就比如敲击 滚动

您可以输入文本

同时所有的网页都是跨设备匹配

现在这在你有不同平台的设备是

真的是很方便 比如像不同的平台 不同的浏览器

还有你办公桌上面对你的不同尺寸的屏幕

也许就像一个有几个不同的版本平板电脑

有着不同的操作系统

这的确对你很有用

因为你可以只需坐在电脑前 做你需要做的事

然后检查你的页面的所有部分 只是从你的

开发机器上检查就行

所以,你不必在每一点上拘泥

好了 这就是我们今天在网络入门套件中所包涵的

我提到过 我们要取消对Sass的支持

这似乎是人们想要的一个相当大的改变

另一处是在风格指南

而与此最大的问题 IC已经成了一个事实A,

它的超级不友好 并且对于B 我们遇到了一种

它甚至对我来说都是越来越难以管理的地步

因此 我们需要正确地矫正它

我们也刚刚弄清楚

我们需要解决所有这种依赖性

我们已经到了一种我认为 我们应该

重新开始的地步

因为基本上 这是一个我们从网络基础

继承下来的样式风格

到了这个地步,我们认识到实际上

很多使用Web入门套件的人

也有很多围绕浏览器支持的要求

很多这些开发者在一个

需要支持所有的浏览器的地步

然后我们算是意识到

这就是通常在Ploymer里的门控性因素

我们算了一下 如果我们要做一个风格指南

我们可以使用材料设计规范

并把它带到一些旧的浏览器上

因此就算是个我们目前掌握的早起前瞻吧

重要的是 这只是一个从材料设计得到灵感的风格指南

它有平常的你能够想到的事情

当然也有 排版 列表

我真的很喜欢这一点 因为它像一道彩虹

很明显 因为你已经学到了材料设计规范

你必须有所有的涟漪所有按钮

我个人最喜欢的是文本字段

我只是喜欢出下划线的动画

然后当你到下一个时 标签上升

我们基本上都有一组默认样板组件

但在真的很好用的东西在幕后

它是比我们以前容易得多

你可以从字面上深入进来理解

如果你想改变一些这按钮的东西

实际上你可能很清楚地

在这种新的结构里发现它 因为它和字面意思一样

按钮文件夹对应 button.sass

很简单对吧

但它真的很有趣 在这个过程中

我们意识到 材料规格

不一定是面向标准的网页设计

例如 如果你认为一个刻板的网站链接头 设置链接

这几乎是网页设计的必经之路

我保证你们已经就像这样

在你生活中的某一刻实现了一个网站

然而 在材料设计中没什么能

刚好实现这点

所以,我们一直在和材料设计团队的合作 例如问在材料设计中

这图案是什么样

他们一直很好 因为事情就这样简单

我们刚拿到一些变量

所以只在右侧有一种标准的链接栏

还有居中水平的

让内容镶嵌在其中的导航栏

如果你看一下材料设计规范

你也有静态导航栏

它会在移动设备上隐藏起来

但会在桌面环境中保持展现状态

所有的这种想法是

你会看到进入标准的汉堡包

菜单 它有着侧边导航栏

但有趣的是 我们会在不是为展现内容的网站中

遇到这样的问题

所以遇到这种情况是一个有趣的过程

如果我们遇到另外一些问题的话 我也不会感到惊讶

像这样的地方其实我们与材料设计团队紧密合作

去真正实现这些新的设计图案

我们一直很幸运 因为我们

在伦敦有遇到一些的UX设计师

他们碰巧不幸坐在在我们附近

所以我们基本上可以引诱他们来帮助做我们的事情

而他们,汉娜和Ed的确很伟大

因为他们看了一眼我们的风格指南

他们可能纠结于里面一点点

可能说 你在干什么

但汉娜的将这个惊人的模拟放在一起

这基本上是她设想的风格指南将被怎么使用的

像检查框和按钮

就真的应该分成同一种形式

这是它是如何被使用的

我很困难地开始把这放在一起

因为 bacon ipsum

但它是一个有趣的问题

那种风格指南应该得到这个地步

它可以帮助你 鼓励你用一个特定的方式使用它

因此,我们将要包括像刚才复制的东西

到剪贴板 所以你不必担心找不到

藏在别处的一个特定的片段

而这给我们带到了这个迭代的一步

由于Web基础应该帮助你学习

网络入门套件可帮助你构建和启动

一个全新的项目

并且在你做迭代工作的时候

就是开发工具自主奏效的时候

我保证你所有可能已经打开了DevTools

所以DevTools团队一直在作出

许多能够基本上在移动网络发展方面帮助您的变化

也找出了浏览器在执行什么步骤

所以 第一件事是设备模式

这基本上是在左上角这个蓝色移动图标

现在,召唤出的第一件事情是那些

在网页上的栏目

这些基本上是一个关于

你的媒体查询在哪里进行的提示

现在,这个东西真正有用的地方在于

如果你达到了一种

在页面内有一堆媒体查询的地步时

你也许正在用组件来做它

你可能意识到已经让媒体查询间

出现冲突了 一切都变得一团糟

有一个很可能的情况

可能是一些这些补丁中出错

因为你已经有了这么多重叠的东西

你可能已经全部见过的另一部分就是

说得好听些,就是这个设备的选择

其中,基本上选择一个特定的设备

并且,它会设置该特定设备的

宽度和高度 包括屏幕的密度

这是非常好的,因为你达到了一种

如果你使用响应式图像

你能见到其精华的地步

但我特别的最爱之一就是这个新的网络限制

现在 你基本上可以

选择一个特定的网络类型 一个你

想要在浏览器中模拟的类型

然后它使其适应你的需求

所以在这里 如果我选择2G 刷新网页

这是一个非常坚实的指示

对于图像顶部我需要做点改动

因为这对2G用户来说是痛苦的

但好处是它实际上是嵌入在DevTools里的

因此,这是你已经达到

尝试不同事物的程度了

之前,你必须拿出一个不同的应用

这取决于你使用哪种技术

有时它们实际上是对工作来说有点繁琐

其实我曾经做到过把自己锁在

我的机器外面,因为我想它应用到我的

能想到的实际上有最慢的网络连接的所有机器上

在这一点上 我的机器决定锁定

然后还决定它需要打电话回家

以确保我其实还是在这里好好地工作

我不记得我是怎么摆脱出来的

但我可以告诉你 它不是一个愉快的经历

但至少有这一点 它是内置进去的

它真的很容易改变

而在这段时间内的在开发工具里的

另一大改变就是 浏览器时间线

所以,如果我只是刷新页面,我得到了正式

浏览器引擎实时在做什么的情况

并且我们总是得到这个典型的瀑布图

展示着浏览器完成了什么样的事

但第一个新添加的一个是涂料探查

所以在这里我刚选择了在页面上的涂料

它看起来是相当沉重的

但向下看 你所看到的是这种新的涂料事件探查器选项卡

现在 沿着左边 我们有一组绘图命令

这基本上是浏览器

将这些特定的东西渲染到屏幕上所做的事

因此当我向下滚动时 我们应该到了一个

你可以开始真正看到命令如何渲染

画在页面上的东西的地方

沿着这里的顶部,我们也能看到

这些命令中的每一个是如何发生的

他们花了多长时间来实际发生

然后在中心 我们有这个大坏小子

这基本上是浏览器的实渲染的东西

现在,与此相连的非常好的事情是

如果我在渲染上选择小块的指令

我开始擦动

实际上你可以看到浏览器的渲染过程

以及它如何做到的

所以,如果你到一个

需要这个庞大的 长期的渲染过程 那么实际上

它会真正给你带来问题 这是第一次

你可以真的深入看到

浏览器实际上在后台做什么

但无可否认 你有这样的一个问题

就是满足这样的渲染过程

但是 如果浏览器可以告诉你

渲染过程发生在哪里 同时告诉你

到底为什么它实际上这样做

所以,如果我去我们可信赖的Chrome开发者网站

我应该能在上面

找到相似的效果

现在,我真的觉得时间线是令人困惑的

而且我也觉得更加混乱如果要我

要弄清楚当浏览器决定这样做时浏览器在做什么的话

所以 当我看到这样的渲染效果 那里只有

个蓝色块 我有点疑问

为什么它在渲染一个蓝色的块时,它能

一直在那里

因此 在渲染事件探查器里 你能看到所有的这些

但是,如果你看底部的细节 就在按钮那里

我们有这风格和验证

基本上 这告诉你的就是

它的在页面上的这个特定元素

已经被渲染了

以及它被这样渲染的原因是动画

现在 这是非常好的 因为之前 你会运行一个时间表

你必须是像Paul Lewis那样的黑暗艺术的高手

明白这到底是怎么回事

因为你知道浏览器后台在做什么

这是第一次DevTools实际运行 我已经展示出来了

这是为什么我做它的原因

它是一种很好的范例演示

因为我其实可以点击这个 你会看到添加样式

所以 你可以在渲染进行时

看到风格和验证

但还在沿着这些线路想

如果我们回到这个时间线的另一部分

你可以看到,我们已经重新计算了它和此布局

由于不是黑暗艺术时间轴的高手

我真的还不知道为什么会发生

因此 如果我向下滚动到该布局的底部

我们也得到了布局和验证

这是另一种情况,其中DevTools实际上是

告诉我们 这种特殊的事情发生了

这是为什么

所以在这里,我们实际上可以得到一个堆栈跟踪

它告诉我们 CDS.card.coolproperties 是

造成这种特定布局发生的原因

而且它也具有一个被布置为这样的结果

的部件列表

现在 这是真正有用的 因为之前你

真的被到底发生什么搞得焦头烂额

现在,你可以真正得到一点

你的代码在哪里导致

浏览器产生行为的指示

现在 我不知道你怎么想 但是有那么一刻

如果我在看瀑布,它只是

成为了很多漂亮的彩色砖块而已

而那种真正令人困惑的事情是

如果我用像这样的东西

我已经预见到布局和重新计算的风格的发生

而这个黄色块告诉我

我的JavaScript做了这样的东西

但是,这是不是真正的好 没有画面清晰

发生了什么 为什么发生

每段花费了多久

这只是一个彩色砖而已

而这正是新的火焰图查看器的用武之地

基本上 当你放大的时候

得到了更好的对这段时间内

动画框架的理解

你的JavaScript实际上是

花费了大量时间

而且里面的东西 导致浏览器重新计算样式和布局

现在 它是完全相同的信息

但它在以不同的方式显示

但好处与这就是你实际上可以

开始看到多一点的原因和影响

但无可否认,这实际上仍然不能

帮我弄清楚是CDS.min中的什么

造成了这种对样式的计算,随后的布局

所以 如果你能真正弄清楚到底发生了什么

它就感觉上没有方便多少

而这正是JS探查用武之地

所以 如果我回去 并重复同样的事情。

所以在这里 我现在已经启用了JS探查

如果我去 再次发现这个动画框架 你们中的一些

可能已经注意到了 东西看起来忽然

变得很耗时可怕了

但在这里 我们已经让动画框架开动 随后

是我们的JavaScript完全相同的函数调用

但是你会注意到几个进度条

突然 我们就有了这个CDS.card.expand

跟着是CDS.cardcollectproperties

它的这种方法这实际上

导致浏览器重计算样式和布局

所以这是非常有用的 因为现在 你实际上是在一个点上,

在那里 你不具备这个神奇的黑盒子

你做了点什么 现在我也做了点什么

实际上你做了一些东西

这一切都很好

你用这个方法那一刻开始 这就是发生的事

因此 它实际上开始为我们做了很多事

【掌声】

是啊 继续

这是非常好的,因为,通常情况下,你会

到这个地步:你会意识到

也许你测得了顶部补偿或什么的

但是 除非你知道这是一个问题

否则这是非常难以诊断的

这里的东西确实有鬼

而且 至少降低了你的整个搜索

到一个非常非常小的面上 来试图弄明白整件事

所以其他很新很酷的事情之一

再次,仍然是在DevTools的服务信息中

就是你在浏览器火焰注意到的,我们到了一个

我们在顶端遇到这类怪异的

东西的地步 还耗费了一点时间

现在这些东西都代表帧

诚然 我的网站是不行的 因为从外表来看

它肯定达不到60 FPS

但是 我们再来看看以往 仅仅一分钟

但是,当你真正点击这些框架之一时

你就让这个图层面板向下探底

现在 当我说复合材料层的概念时

你们中有多少是开心的呢

哦,哇

于是杰克居然给了惊人的比喻

如果你有一堵墙而且你

让个有画棒男子从左至右移动

你可以用记号笔一棒的人画在墙上

画一次 然后叫出这个男人 再次画一遍

重复,直到你达到你的最终目的

你可以做的是重复覆盖透明塑料

叫出绘制的人一次,然后只需将它附在墙上

复合层的想法就是

基本上都在透明层作画

移过来移过去

它的效率更高

它只是在GPU中加载,你可以做你的事了

所以,这图层面板实际上做的事

告诉你 所有东西都被附在了层上

而在此之前 情况是你会

有可能会被告知一些不知道什么意思的橙色的边框

现在 它是真正的明确清楚

现在另一面是

你可以看到 在右手边 是复合原因

现在,这是伟大的,因为有时候你到一个点

那里的东西会被提升至

一个你本不希望如此的图层

其他时候,你希望它被提升到一个图层

它又会告诉你事实不是这样

但是 如果你有什么事情完全不了解

例如为什么它被提升到一个图层这样的件事

复合材料的原因会告诉你它为什么作出这一决定

所以在这种情况下 “与其他复合重叠的内容不能

被压扁了,因为这层图层被滚动成

挤压层了“ 我没打算让这种情况发生

讽刺的是,这会导致Android上的Chrome浏览器的错误

在那里 当你把它滚动出屏幕

它就不会成为一个层了 而且事情有点古怪

但其实这是第一次

我调试它 因为你可以看到所有的图层

好处是 如果你

通过点击启动每一帧

你应该开始看到图层在移动

但是因为我不是janktastic

你没法看到帧

但是如果这是很好的演示 它会一直工作

但同样 综合原因的好处是

DevTools实际上再次解释它在做什么

为什么它做到了

现在 作为好的演讲者 我有所有这些的备份

因为 当你已经让Polaris告诉你

不更新Canary 它会破坏你的演示

你有备份的视频

所以 是的

这就是我们在Chrome团队正在做的事

网络基础知识可以帮助你学习 网络入门套件

帮你建立新项目 DevTools

加入了大量的新功能以帮助您的移动网络的发展

以及了解什么浏览器在做什么

这样一来 当你遇到

达不到60 FPS的这个问题时 你其实更容易

诊断出问题所在

所以 非常感谢你的聆听

希望这是一些对你有用的东西

谢谢!

[掌声]

Youtube
Youtube
加入 GDG 字幕组
video_screenshot