Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Опыт разработки мобильного веб приложения с исп...
Search
fwdays
March 05, 2013
Programming
1.6k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Опыт разработки мобильного веб приложения с использованием Backbone.js, Require.js, Zepto.js
fwdays
March 05, 2013
More Decks by fwdays
See All by fwdays
Symfony best practices и не только Олег Зинченко
fwdays
0
2.2k
Beyond Testing Михаил Боднарчук
fwdays
0
870
Yii2 - на пути от Alpha до GA. Взгляд с практической стороны Александр Бордун
fwdays
0
2k
Laravel 4: простота во всем. Евгений Косинский
fwdays
0
1.1k
Маленькая библиотека для большой компании. Антон Шевчук
fwdays
0
3.9k
Phalcon. Что нового? Александр Торош
fwdays
0
1.2k
Выбираем поисковик умом головы. Андрей Аксенов
fwdays
0
1.5k
Past, Present, and Future: The Evolution of PHP Development. Nate Abele
fwdays
0
880
Функциональный тулчейн Nix
fwdays
1
520
Other Decks in Programming
See All in Programming
【SRE NEXT 2026 Lunch Session】一人目専任SREの立ち上げを加速する ― AIと進めたオンボーディングで2分を0.04秒にした話
pkshadeck
PRO
0
3.4k
変わらないものが、変わるものを決める — 意図駆動開発 × イベントソーシング × イミュータブル | What Doesn't Change Decides What Can — IDD × Event Sourcing × Immutability
tomohisa
0
1k
ドリフトを絶対に許さない(?)CDK運用 / CDK Ops with Zero Tolerance for Drifts (?)
akihisaikeda
1
160
Prismを使った型安全な暗号化_関数型まつり2026
_fhhmm
0
160
PostgreSQL 18で考えるUUID主キー
kazuhiro1982
0
450
地域 SRE コミュニティ最前線 - ホンマでっかSRE勉強会
tk3fftk
0
300
jsmini JavaScript Engine を作ってみた話
yosuke_furukawa
PRO
0
290
Haskell/Servantを通してWebミドルウェアを捉え直す
pizzacat83
1
630
Build-to-own AI: Agentic Development for Humans
inesmontani
PRO
0
160
霧の中の代数的エフェクト
funnyycat
1
450
torikago - Ruby::Boxで照らすモジュラモノリスの実行境界
se4weed
1
320
自動化したのに回らないテスト運用の壁ーAI時代の品質責任と生産性
mfunaki
0
120
Featured
See All Featured
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
920
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
470
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
230
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
650
Art, The Web, and Tiny UX
lynnandtonic
304
22k
For a Future-Friendly Web
brad_frost
183
10k
Bash Introduction
62gerente
615
220k
HDC tutorial
michielstock
2
770
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
600
New Earth Scene 8
popppiees
3
2.4k
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
1.1k
The Cost Of JavaScript in 2023
addyosmani
55
10k
Transcript
Опыт разработки мобильного веб приложения Павел Юрийчук GlobalLogic Skype: pavlo_yuriychuck
Twitter: pavlo_yuriychuk Email:
[email protected]
А поговорить? Мобильные веб приложения Серверная часть
Клиентская часть Инструментарий Книжная полка
Мобильные приложения Native - iOS, Android, Blackberry Hybrid
- PhoneGap, Appcelerator Plugin - AIR, Silverlight Web - HTML5
Пример
Особенности Качество картинок и шрифтов не так важно
Скорость сети Скорость выполнения JavaScript
Сервер CDN GZip/BZip/Deflate HTTP Headers (CORS, E-tags)
JSON
Клиент Application cache Web storage CSS3
Touch events ViewPort: • MDN, Safari Dev Network, More
Клиент SASS/SCSS Underscore -> LoDash Zepto.JS
Require.JS Backbone.JS
Actung, minen! Bootstrapping JSON Assets embedding
Banners Tracking systems Assets - fonts, images, audio, video
Отладка
Отладка Var Logger = (function($){ var messages = []; function
log() { messages.push(Array.prototype.splice.apply(arguments).join(“”)) } setInterval(function(){ $.ajax({ Method:’post’, Url:url, data:messages.join(‘\n’) }); Messages = []; }); return { log:log } })(jQuery)
Templates <section data-type=”related” data-view=”list” data-limit=”1,5”> </section> <section data-type=”credentials”> </section> <section
data-type=”banner” data-url=”super-banner.jpg”> </section> <section data-type=”banner” data-md=”{color:’#35ADFE’,opacity:0.5,rel:{x:5,y:-5}}”> </section>
Builder $(‘section[data-type]’).each(function() { var klass = $(this).attr(‘data-type’), instance; Klass =
Mapper.getClassByAlias(klass); Instance = new Klass({$el : $(this)}); })
WebStorage Var Model = Backbone.Model.extend({ Prefix: “articles”, save: function() {
localStorage.setItem(“articles-” + this.id, this.toJSON().toString()) }, fetch: function() { Var data = localStorage.getItem(“articles-” + this.id); If (_.isString(data)) { Try { Data = JSON.parse(data); } catch (e) { Data = {} } finally { This.set(data) } } } })
WebStorage Var Collection = Backbone.Collection.extend({ Prefix: “articles”, save: function() {
localStorage.setItem(“articles”, this.toJSON().toString()) }, fetch: function() { Var data = localStorage.getItem(“articles-” + this.id); If (_.isString(data)) { Try { Data = JSON.parse(data); } catch (e) { Data = {} } finally { This.reset(data) } } } })
PageView Var PageViewA = PageView.extend({ initialize: function() { PageView.prototype.initialize.apply(this, arguments);
}, CustomMethod: funciton() { // } })
Multi-part response HTTP/1.1 200 OK Date: Thu, 24 Nov 2011
10:03:25 GMT Server: Foo/1.0 Content-Type: multipart/form-data; boundary=xYzZY --xYzZY Content-Type: text/plain; charset=UTF-8 Content-Disposition: form-data; name="name" John Doe --xYzZY Content-Type: text/plain; charset=UTF-8 Content-Disposition: form-data; name="note"
Bootstrapping data <html> <body> <script> //Data setup Window.INITIAL = [];
</script> … <script> If (window.initial) { App.data.reset(window.initial) } else { App.data.fetch() } </script> </body> </html>
Bootstrapping code <html> <body> <script id=”module1”> /*(funciton(){codeGoesHere()})()*/ </script> … <script>
Var el = Document.getElementById(“module1”); eval(strip(el.innerHTML)); </script> </body> </html>
XML, please jQuery selectors SAX http://code.google.com/p/jssaxparser/
https://github.com/isaacs/sax-js XPath DOM API
Книги http://shop.oreilly.com/product/0636920025344.do
Книженции онлайн Patterns for Large-Scale JS apps Backbone
fundamentals Backbone patterns More of backbone
Презентации Оптимизация энергопотребления Оптимизация скорости загрузки Особенности
разработки под мобильные устройства
Ресурсы Mobile safari
Вопросы?