Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Опыт разработки мобильного веб приложения с исп...
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
910
Yii2 - на пути от Alpha до GA. Взгляд с практической стороны Александр Бордун
fwdays
0
2k
Laravel 4: простота во всем. Евгений Косинский
fwdays
0
1.1k
Маленькая библиотека для большой компании. Антон Шевчук
fwdays
0
3.9k
Phalcon. Что нового? Александр Торош
fwdays
0
1.3k
Выбираем поисковик умом головы. Андрей Аксенов
fwdays
0
1.6k
Past, Present, and Future: The Evolution of PHP Development. Nate Abele
fwdays
0
960
Функциональный тулчейн Nix
fwdays
1
580
Other Decks in Programming
See All in Programming
Herb in Rails 8.2: Your ERB views, now HTML-aware @ Rails World 2026, Austin, Texas
marcoroth
0
220
PumaからFalconに移行したRailsアプリケーションでの実践
falcon8823
0
180
Performance Optimization With LLMs
xleitix
0
150
AWSに止められる覚悟してますか?
morizo_1984
2
540
気持ちぃ〜角丸 Squircle
ryu1013
0
320
Railsバージョンを4倍にした話
optim
0
460
機械に任せるテスト、人が見るテスト ⽣成AIで引き直した、運⽤保守フェーズの線引き
dske104
0
190
パズルゲームの作り方 / how to make puzzle games
kaityo256
PRO
2
300
AI主導のプログラミング学習アプリを作ってみた
econanringo
0
180
UnityでSystem.Net.WebSocketsなWebSocketサーバが動かないのでUnity Monoのコードを覗いてみた / about implementing websocket server with unity mono
drumath2237
1
610
JIS keyboard support in Omarchy
lef237
0
140
iOS 27でニュースアプリはどう変わる!? 〜日経電子版の新機能対応と、開発事例から〜
lynnswap
7
13k
Featured
See All Featured
A better future with KSS
kneath
240
18k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.8k
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
2
540
StorybookのUI Testing Handbookを読んだ
zakiyama
31
7k
The agentic SEO stack - context over prompts
schlessera
0
970
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.4k
Darren the Foodie - Storyboard
khoart
PRO
4
4k
Joys of Absence: A Defence of Solitary Play
codingconduct
1
550
Raft: Consensus for Rubyists
vanstee
142
7.8k
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
1
580
4 Signs Your Business is Dying
shpigford
187
23k
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
1k
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
Вопросы?