47
Что такое современный фронтенд? Тимофей Чаптыков [email protected] @chaptykov

Как выглядит современный фронтенд

Embed Size (px)

Citation preview

Page 1: Как выглядит современный фронтенд

Что такое современныйфронтенд?Тимофей Чаптыков

[email protected] @chaptykov

Page 2: Как выглядит современный фронтенд
Page 3: Как выглядит современный фронтенд

Начало1

3

Page 4: Как выглядит современный фронтенд

11 лет

4

Page 5: Как выглядит современный фронтенд

Я могу такИ такИ даже так

<!-- Мой первый гипертекстовый документ из 2004 -->

h1< > h1</ >h2< > h2</ >p<> p</>

Page 6: Как выглядит современный фронтенд

Технологии

—  HTML для разметки;

—  CSS для оформления;

—  JavaScript для логики.

6

Page 7: Как выглядит современный фронтенд

JavaScript в 2005

7

Page 8: Как выглядит современный фронтенд

Взрыв2

8

Page 9: Как выглядит современный фронтенд

Взрыв → Организация кода

9

Page 10: Как выглядит современный фронтенд

Фреймворки

—  GWT

—  ExtJS

—  Knockout

—  Backbone

—  Angular

—  React �

10

Page 11: Как выглядит современный фронтенд

Что такое фреймворк?

11

Page 12: Как выглядит современный фронтенд
Page 13: Как выглядит современный фронтенд

Пакетные менеджеры

—  bower

—  npm �

13

Page 14: Как выглядит современный фронтенд

Зачем нужен пакетный менеджер?

14

Page 15: Как выглядит современный фронтенд

// Менеджмент зависимостей в npm

{"name":"Application","dependencies":{"babel":"̂5.8.19","express":"̂4.3.2","superagent":"̂1.3.0"

}}

Page 16: Как выглядит современный фронтенд
Page 17: Как выглядит современный фронтенд

Модульные системы

—  CommonJS �

—  amd

—  ECMAScript 2015 modules �

17

Page 18: Как выглядит современный фронтенд

Системы сборки

—  Grunt

—  Gulp �

—  Browserify

—  Webpack �

18

Page 19: Как выглядит современный фронтенд

Языки и транспиллеры

—  Dart от Google

—  TypeScript от Microsoft

—  flow или JSX от Facebook �

—  ECMAScript 2015 �

—  ECMAScript 2016 �

19

Page 20: Как выглядит современный фронтенд

r length MathPI r s MathPI r r

circle

// Пример кода с использованием ECMAScript 2015

classCircleextendsFigure{constructor(){super();this. =2* . * ;this. = . * * ;

}}

var =newCircle(10);

Page 21: Как выглядит современный фронтенд

_get _x _x2 _x3 _again _function _again object _x property _x2 receiver _x3 _again object object Functionprototype desc Object object property desc undefined parent Object object parent undefined _x parent _x2 property _x3 receiver _again desc parent undefined _function desc descvalue getter desc getter undefined undefined getter receiver

instance Constructor instance

subClass superClass superClass superClass superClass subClassprototype Object superClass superClassprototype constructor value subClass enumerable writable configurable superClass ObjectsetPrototypeOf Object subClass superClass subClass__proto__ superClass

Circle _Figure Circle _Figure

r Circle

Object Circleprototype length MathPI r s MathPI r r

CircleFigure

circle

"use strict";

var =functionget( , , ){var =true;

:while( ){var = ,

= ,= ;

=false;if( ===null) = . ;var = .getOwnPropertyDescriptor( , );if( === ){

var = .getPrototypeOf( );if( ===null){

return ;}else{

= ;= ;= ;=true;

= = ;continue ;

}}elseif("value"in ){

return . ;}else{

var = .get;if( === ){

return ;}return .call( );

}}

};

function_classCallCheck( , ){if(!( instanceofConstructor)){

thrownewTypeError("Cannot call a class as a function");}

}

function_inherits( , ){if(typeof !=="function"&& !==null){

thrownewTypeError("Super expression must either be null or a function, not "+typeof );}

. = .create( && . ,{:{

: ,:false,

:true,:true

}});if( ) . ? .setPrototypeOf( , ): . = ;

}

var =(function( ){_inherits( , );

functionCircle(){_classCallCheck(this, );

_get( .getPrototypeOf( . ),"constructor",this).call(this);this. =2* . * ;this. = . * * ;

}

return ;})( );

var =newCircle(10);

Page 22: Как выглядит современный фронтенд

Взрыв → API

22

Page 23: Как выглядит современный фронтенд

Количество API на ProgrammableWeb

23

32 2005

~3000 8 марта 2011

~4000 8 марта 2011

~14300 2015

Page 24: Как выглядит современный фронтенд

Картографические API

—  API Карт от 2ГИС

—  API Карт от Яндекс

—  Google Maps API

—  OpenStreetMap API

24

Page 25: Как выглядит современный фронтенд
Page 26: Как выглядит современный фронтенд

API социальных сетей

—  vk.com/dev

—  developers.facebook.com

—  dev.twitter.com

—  instagram.com/developer

—  apiok.ru

—  core.telegram.org

—  developer.foursquare.com

26

Page 27: Как выглядит современный фронтенд

Погода

—  Yahoo! Weather

—  Gismeteo �

27

Page 28: Как выглядит современный фронтенд

Поиск

—  Поиск для сайта от Яндекс

—  Custom search от Google

28

Page 29: Как выглядит современный фронтенд

Видео, фото, музыка

—  vk.com/dev

—  API данных Youtube

—  SoundCloud API

—  The App Garden от Flickr

—  Last.fm Web Services

29

Page 30: Как выглядит современный фронтенд

Покупки

—  Product Advertising API от Amazon

—  Ebay API

30

Page 31: Как выглядит современный фронтенд

REST API для единственного клиента

31

Page 32: Как выглядит современный фронтенд

Взрыв → Платформы

32

Page 33: Как выглядит современный фронтенд

Браузер

—  Геолокация

—  Микрофон

—  Камера

—  File API, FileReader API

—  WebRTC

—  Gamepad, MIDI

—  Web Audio и cинтезирование речи

33

Page 34: Как выглядит современный фронтенд

Try Speech Synthesis API

34

Page 35: Как выглядит современный фронтенд

text speech text

speechSynthesis text

var ='London is a capital of Great Britain.';var =newSpeechSynthesisUtterance( );

.speak( );

Page 36: Как выглядит современный фронтенд

Node.js

—  Приложения для Windows, Linux, Mac OS

—  Работа с ресурсами ОС

36

Page 37: Как выглядит современный фронтенд

NW.js и аналоги

Графический интерфейс для приложений

в Windows, Linux и Mac OS.

«Браузер» для одного приложения

37

Page 38: Как выглядит современный фронтенд

Adobe Phonegap

—  iOS

—  Android

—  Windows Phone

—  Blackberry OS

—  Symbian

—  Bada

—  WebOS

38

Page 39: Как выглядит современный фронтенд

React Native

—  iOS

—  Android

Уже не «браузер», а полноценное

управление нативными элементами

из JavaScript.

39

Page 40: Как выглядит современный фронтенд

Сейчас3

40

Page 41: Как выглядит современный фронтенд

JavaScript в 2015

—  На любых платформах;

—  С развитой экосистемой;

—  И, наконец, на JS стало удобно писать.

41

Page 42: Как выглядит современный фронтенд

Самая быстрорастущая экосистема в мире

42

Page 43: Как выглядит современный фронтенд
Page 44: Как выглядит современный фронтенд

А если серьезно…

44

Page 45: Как выглядит современный фронтенд

Так выглядит современный фронтенд.

45

Page 46: Как выглядит современный фронтенд

Так строится будущее сегодня.

46

Page 47: Как выглядит современный фронтенд

Тимофей Чаптыков

[email protected]@chaptykov

47