Technologie mobilne w platformach edukacyjnych. Kosmikus, studium przypadku

62
Technologie mobilne w platformach edukacyjnych KOSMIKUS 1.5 STUDIUM PRZYPADKU Michał Łukaszewski Sławomir Rodak

description

Prezentacja przygotowana na potrzeby cyklu Launch & Learn prowadzonego w Young Digital Planet. Autorzy: Sławek Rodak i Michał Łukaszewski (ja). Prelekcja składała się z dwóch części: 1. Czego technologia oczekuje od biznesu aby przygotować dobry produkt uwzględniający urządzenia mobilne 2. Co technologia musi wiedzieć aby wesprzeć biznes w realizacji dobrego produktu. Kosmikus, produkt YDP, jako studium przypadku - jakie technologie zostały wybrane i dlaczego, gdzie były kompromisy i dlaczego. Przegląd najważniejszych technologii pozwalających zrealizować aplikacje dostępne na szerokim spektrum urządzeń. Mnóstwo linków do źródeł, porównań. Prezentacja do ściągnięcia również stąd: http://sdrv.ms/MtH62k W razie pytań, wątpliwości, chęci podyskutowania - zapraszm do kontaktu :)

Transcript of Technologie mobilne w platformach edukacyjnych. Kosmikus, studium przypadku

Page 1: Technologie mobilne w platformach edukacyjnych. Kosmikus, studium przypadku

Technologie mobilne w platformach edukacyjnychKOSMIKUS 1.5

STUDIUM PRZYPADKU

Michał ŁukaszewskiSławomir Rodak

Page 2: Technologie mobilne w platformach edukacyjnych. Kosmikus, studium przypadku

Część 1BUSINNES CASE

Page 3: Technologie mobilne w platformach edukacyjnych. Kosmikus, studium przypadku

Cel biznesowy

"Mobile są modne" to nie wymaganie

"Mobile" to ogromne spektrum urządzeń, rozdzielczości, wydajności sprzętowej

Mobile-first? Czy - również? Czy - przy okazji?

Android to koszmar, ale ma większość rynku ("i co pan nam zrobisz?")

Wymagania funkcjonalne powinny być uściślone przed rozpoczęciem produkcji tak bardzo jak to możliwe

Wybór technologii zbyt powiązany z wymaganiami

Zmiana wymagań może w najgorszym przypadku zakopać projekt - może wymusić zmianę technologii i kosztowny refaktoring (w zależności od momentu, w którym zmiana nastąpiła)

Page 4: Technologie mobilne w platformach edukacyjnych. Kosmikus, studium przypadku

Ogrom możliwości?

Trudno znaleźć jedną bibliotekę, która może wszystko

Więc balansujemy pomiędzy możliwościami, a oczekiwaniami

To że dany komponent coś może nie oznacza, że możemy go użyć (bo np. wydajność)

Klęska urodzaju?

Dostępne silniki JS: CreateJS, PaperJS, KineticJS, Phaser, Cocos 2D, Jaws, Solpeo Engine, ImpactJS, iio Engine, Farbric JS, PIXI

Biblioteki JS: jQuery, jQuery UI, Zepto, MooTools, Prototype, ExtJS, Dojo, YUI

Frameworki MVC/MVVC: Angular JS, BackBone, Knockout

Frameworki CSS: bootstrap, Foundation, Pure CSS, Cardinal CSS, Compass

Preprocesory: LESS, SASS

RWD: viewport, media-query

Page 5: Technologie mobilne w platformach edukacyjnych. Kosmikus, studium przypadku

Realne możliwości

Praktycznie rzecz biorąc da się zrobić niemalże wszystko: bajeranckie stronki, prezentacje, singlepage, gry (!), animacje.

Ale bardzo rzadko za pomocą jednego komponentu

Mieszanie komponentów utrudnia rozwój i utrzymanie- konieczne wdrożenie programisty w komponent aby wykorzystać go optymalnie- rosną koszty- rośnie ryzyko błędów- konieczne bardzo szerokie kompetencje albo szeroki zespół)

Ale stosowanie jednej wszystkomogącej biblioteki wszędzie jest bez sensu- zazwyczaj jest duża (jako plik)- niekoniecznie najwydajniejsza- strzelanie z armaty do komara

Na co Cię stać?

Page 6: Technologie mobilne w platformach edukacyjnych. Kosmikus, studium przypadku

Sky is the limit?

Nope - the enviroment

Wydajność niektórych bibliotek jest denna (ilość klatek/żądań na sekundę vs. RAM + obciążenie CPU)

Same różnice pomiędzy PC dają w kość

Urządzenia mobilne to koszmar

Tablety z Biedronki

Zetaphony

Page 7: Technologie mobilne w platformach edukacyjnych. Kosmikus, studium przypadku

Przykład - przeglądarki desktop

Minimalne wersje przeglądarek

Chrome +23 (Blink: post-WebKit)

FF +20 (Gecko)

IE +10 z bólem, IE11 bardzo dobrze (IE9 do najprostszych stron, IE8 nie, nie, nie)

Opera 12 (Presto) - śmieć, ale już Opera +15 (WebKit) jest ok

Safari +6 (WebKit) - OK, ale tylko iOS; na Win jest max 5: nie OK.

Win XP to ciągle ok 30% rynku OS na dektopach - więc np. IE8 to max. - i co z tym fantem zrobić?

Page 8: Technologie mobilne w platformach edukacyjnych. Kosmikus, studium przypadku

Urządzenia mobilne

iOS jako referencyjny (jak to powinno wyglądać i działać).

ale - opieranie się na iOS nie jest wystarczające, nawet jeśli ktoś lubi iOS lub klient ma i musi u niego wyglądać .

W przypadku produktu uwzględniającego telefony na rynek PL musimy brać pod uwagę WP (bo ma ok 30% rynku i rośnie). 

W przypadku EU - różnie w zależności od kraju (np. Hiszpania ma duży udział WP, inne kraje mają inny rozkład)

Android najważniejszy, bo ma największy udział globalny i to się w najbliższym czasie nie zmieni.

ale - Android nie może być punktem odniesienia, bo segmentacja jest ogromna. Działanie i wygląd w zależności od wersji mogą być bardzo różne - duże koszty. Ale uwzględniać i testować trzeba - potrzeba też szerokiej palety urządzeń. Nexusy jako punkt odniesienia dla Androida .

Page 9: Technologie mobilne w platformach edukacyjnych. Kosmikus, studium przypadku

Segmentacja wersji Androida

Stan na 2.12.2013, dane za: developer.android.com

Page 10: Technologie mobilne w platformach edukacyjnych. Kosmikus, studium przypadku

Wzrost WP

WP jako nr 2 wśród telefonówIndie, Meksyk, Włochy, Chile, Tajlandia, Wietnam, Malezja, Polska, RPA, Ukraina, Węgry, Finlandia, Czechy, Grecja

WP przewyższył sprzedaż iPhoneChile, Kolumbia, Czechy, Egipt, Egipt, Finlandia, Grecja, Węgry, Indie, Włochy, Kenia, Kuwejt, Malezja, Meksyk, Nigeria, Pakistan, Peru, Polska, Arabia Saudyjska, RPA, Tajlandia, Ukraina, Zjednoczone Emiraty Arabskie, Wietnam

Dane na 4Q2014 za Microsoft i adduplex

ALE

głównie modele budżetowe (Lumia 520, 620, 625)

Page 11: Technologie mobilne w platformach edukacyjnych. Kosmikus, studium przypadku

Backend

Backend ma poślednie znaczenie, o ile są kompetencje w firmie

PHP 5.4 i następne dobrze nadaje się do współpracy z GUI mocno opartym o JS

node.js - jeden język programowania po stronie FE i BE, ale ciągle dość świeże rozwiązanie (też ma swoje limity).

Bazy danych bez znaczenia.

Page 12: Technologie mobilne w platformach edukacyjnych. Kosmikus, studium przypadku

Kosmikus 1.5 - technologie

HTML5

Bootstrap 2 (wersja 3 - wydana w trakcie trwania developingu)

jQuery

Create JS (pozwolił na łatwe przejście programistom ActionScript)

SVG Animations (bezkosztowo, dzięki Google Swiffy; przykład)

RWD w oparciu o viewport (całość) i media-queries (częściowo, per typ widoku)

Korzyści- Wygląda ładnie- Minimalna ilość technologii, wygodna separacja kompetencji

Wady- Niektóre ekrany ciężkie: najcięższy ok 3MB + XHR = ~6MB do ściągnięcia - Canvas by Create JS + ponad 300 elementów do wyboru przez użytkownika.- FF vs niektóre animacje na Canvasach ledwo dyszy (inne przeglądarki lepiej, IE11 najwydajniejszy)- Ułomne technologie (np. wprowadzenie dźwięku do animacji)- Błędy i ograniczenia bibliotek: wprowadzaliśmy autorskie zmiany, które trafiły do oficjalnego wydania z opóźnieniem w stosunku do planu wydawniczego mijając się z naszym . - brak kompatybilności wstecz (bootstrap 3 vs boostrap 2)

Page 13: Technologie mobilne w platformach edukacyjnych. Kosmikus, studium przypadku

Podsumowanie

Inwestowanie w nowe technologie czy stosowanie rozpoznanych rozwiązań?

Kryteria wyboru nowej technologii- "próg wejścia"- reużywalność w ramach organizacji- "próg wyjścia"- zaangażowanie zespołu- popularność- wsparcie producenta

Zakres nowych technologii w projekcie

PoC

Kto nie ryzykuje ten nie ma

Cel biznesowy jest zbieżny z celami technologicznymi

Page 14: Technologie mobilne w platformach edukacyjnych. Kosmikus, studium przypadku

Część 2TECHNOLOGY CASE

Page 15: Technologie mobilne w platformach edukacyjnych. Kosmikus, studium przypadku

Silniki JS

Warstwa kompetencji

Możliwe zastosowania

Page 16: Technologie mobilne w platformach edukacyjnych. Kosmikus, studium przypadku

Silniki JS

CreateJS

Dema

http://www.createjs.com/#!/TweenJS/demos/tweenCircles

http://www.createjs.com/#!/EaselJS/demos/spritesheet

http://www.createjs.com/#!/EaselJS/demos/gamehttp://www.createjs.com/#!/EaselJS/demos/cache

http://www.createjs.com/#!/TweenJS/demos/tweenCircles

http://www.createjs.com/#!/SoundJS/demos/soundGrid

http://www.createjs.com/#!/SoundJS/demos/explosion

http://www.createjs.com/#!/SoundJS/demos/visualizer

Wszystkie potrzebne komponenty (bitmapy,sprites,animacje,dźwięk)

Integracja z Flash

Źródła na GitHub

Niski próg wejścia

Wersja 0.51 (0.4 przy starcie prac)

Wolne działanie

Brak komponentów do formularzy - nie najlepsza integracja z elementami DOM

Page 17: Technologie mobilne w platformach edukacyjnych. Kosmikus, studium przypadku

Silniki JS

Paper JS

Dema

http://paperjs.org/examples/nyan-rainbow/

http://paperjs.org/examples/meta-balls/

http://paperjs.org/showcase/

Obsługa wektorów i bitmap

Matematyczno - wektorowy

Źródła na GitHub

Brak obsługi dźwięków

Page 18: Technologie mobilne w platformach edukacyjnych. Kosmikus, studium przypadku

Silniki JS

Kinetic JS Szeroki wachlarz funkcji (obrazy,sprites,animacje,eventy,warstwy, filtry,selektory)

Źródła na GitHub

Spójny

Brak obsługi dźwięku

Wbrew obietnicom - nie jest szybki

Page 19: Technologie mobilne w platformach edukacyjnych. Kosmikus, studium przypadku

Silniki JS

Phaser

Dema

http://grimpanda.com/games/sandbox/connectme-sfx/

http://www.bbc.co.uk/cbeebies/peter-rabbit/games/peter-rabbit-hide-and-seek/

http://gametest.mobi/phaser/examples/_site/view_full.html?d=filters&f=fire.js&t=fire

Silnik do tworzenia gier

Zawiera wszystko co trzeba (nawet dźwięk)

Renderowanie na CANVAS i WebGL (Pixi.js)

Źródła na GitHub

TypeScript

Kompletny silnik do wytwarzania gier

322kB - po kompresji

Page 20: Technologie mobilne w platformach edukacyjnych. Kosmikus, studium przypadku

Silniki JS

Cocos 2D

Dema

http://www.cocos2d-x.org/games/all?p=15

Kompletny silnik do tworzenia gier

Źródła na GitHub

Wysoki koszt wejścia

Page 21: Technologie mobilne w platformach edukacyjnych. Kosmikus, studium przypadku

Silniki JS

Solpeo Engine

Dema

http://ck.solpeo.com/

Produkt polski

Zwarta dokumentacja

Silnik gier 2D/3D

Nie wiadomo w jakim stadium rozwoju jest produkt

Page 22: Technologie mobilne w platformach edukacyjnych. Kosmikus, studium przypadku

Silniki JS

Impact JS

Dema

http://phoboslab.org/#games

http://impactjs.com/games

Kompletny framework do gier

Edytor poziomów, fizyka, dźwięki

Dokumentacja

Dojrzały projekt

Płatny (99$)

Page 23: Technologie mobilne w platformach edukacyjnych. Kosmikus, studium przypadku

Silniki JS

PIXI

Dema

http://www.pixijs.com/examples/

http://www.goodboydigital.com/pixijs/bunnymark/

https://github.com/GoodBoyDigital/pixi.js/

Silnik graficzny

Bardzo szybki

CANVAS + WebGL

Dokumentacja

Źródła na Github

Silnik graficzny

Page 24: Technologie mobilne w platformach edukacyjnych. Kosmikus, studium przypadku

Biblioteki JS

Warstwa kompetencji

Możliwe zastosowania

Page 25: Technologie mobilne w platformach edukacyjnych. Kosmikus, studium przypadku

Biblioteki JS

jQuery Doskonała obsługa zdarzeń

Świetna obsługa DOM

Doskonała obsługa komunikacji asynchronicznej via Ajax

Powolny (req per sec)

Różna jakość pluginów

Page 26: Technologie mobilne w platformach edukacyjnych. Kosmikus, studium przypadku

Biblioteki JS

jQuery UI Ogromne możliwości

Ogromna baza pluginów

Możliwość customizacji FW

Bardzo ciężki

Customizacja utrudnia kontrolę możliwości

Pluginy różnej jakości

Page 27: Technologie mobilne w platformach edukacyjnych. Kosmikus, studium przypadku

Biblioteki JS

Zepto Leciutki (~9kB skompresowany)

Kompatybilny z jQuery

Zaprojektowany jako alternatywa dla jQuery dla mobilek

Pełne wsparcie tylko dla najnowszych przeglądarek

Relatywnie niewielki zakres możliwości

Brak wsparcia dla IE < 10

Page 28: Technologie mobilne w platformach edukacyjnych. Kosmikus, studium przypadku

Biblioteki JS

Dojo Bardzo rozbudowane środowisko (Dojo Toolkit, od prostych pluginów po kompletne widgety - Dijit, Dojox)

Możliwość dobierania komponentów wg potrzeb, rozszerzeających możliwości core

Używany w dużych projektach komercyjnych

Alternatywny do jQuery wszystkomogący FW

Bardzo złożone środowisko, tylko do dużych, złożonych projektów

Page 29: Technologie mobilne w platformach edukacyjnych. Kosmikus, studium przypadku

Kontrolery widoku

Angular JS Implementuje MVC tam gdzie dotychczas go nie było

MVVM (Model-View-ViewModel)

Upraszcza część back-endową

Obecnie wspierana i firmowana przez Google

Wysoki próg wejścia

Page 30: Technologie mobilne w platformach edukacyjnych. Kosmikus, studium przypadku

Kontrolery widoku

Backbone

Knockout

Page 31: Technologie mobilne w platformach edukacyjnych. Kosmikus, studium przypadku

Frameworki CSS

Warstwa kompetencji

Możliwe zastosowania

Page 32: Technologie mobilne w platformach edukacyjnych. Kosmikus, studium przypadku

Frameworki CSS

Bootstrap Oparty o grid - duża wygoda

Relatywnie łatwo skalowalny

Dostarcza pełny LESS

Opiera się o grid - ograniczenia

Wymusza LESS

Brak kompatybilności wstecz pomiędzy wersjami 2 a 3

Page 33: Technologie mobilne w platformach edukacyjnych. Kosmikus, studium przypadku

Frameworki CSS

Foundation Mobile First (od v.4)

Więcej wbudowanych komponentów

Technologicznie, krok do przodu

Real fluid layout

SASS - więcej możliwości

Znacznie mniej popularny niż Bootstrap

SASS - ciężka składnia

Page 34: Technologie mobilne w platformach edukacyjnych. Kosmikus, studium przypadku

Frameworki CSS

Pure CSS Małe rozmiary

Skin Builder

Brak źródeł: LESS,SASS

Stosunkowo mała popularność

Page 35: Technologie mobilne w platformach edukacyjnych. Kosmikus, studium przypadku

Frameworki CSS

Semantic Idea semantycznego kodu

Ładny na starcie (w przeciwieństwie do Foundation)

LESS

Semantyczność - poprzez nazwy klas :)

Popularność

Page 36: Technologie mobilne w platformach edukacyjnych. Kosmikus, studium przypadku

Preprocesory

Warstwa kompetencji

Możliwe zastosowania

Page 37: Technologie mobilne w platformach edukacyjnych. Kosmikus, studium przypadku

Preprocesory

LESS Bardzo łatwa składnia

Niezła dokumentacja

Bardzo duże możliwości

Bardzo popularny, vide źródła bootstrap

Łatwo spuchnąć wynikowy CSS

Przy dużych, zaawansowanych zestawach trudno zachować kontrolę nad tym co gdzie jest

Przy zaawansowanych układach bywa mało czytelny

Page 38: Technologie mobilne w platformach edukacyjnych. Kosmikus, studium przypadku

Preprocesory

SASS Główne zalety i wady jak w LESS

Trudniejsza składnia, oferująca jednak więcej możliwości

Mniej popularny

Page 39: Technologie mobilne w platformach edukacyjnych. Kosmikus, studium przypadku

Preprocesory

Coffee Script Ułatwia pisanie zaawansowanych, wieloplikowych rozwiązań JS

Specyficzna składnia, teoretycznie dążąc do ECMA, w praktyce własny narzut

Niepomijalny koszt wejścia

Page 40: Technologie mobilne w platformach edukacyjnych. Kosmikus, studium przypadku

RWD

Warstwa kompentencji

Możliwe zastosowania

Page 41: Technologie mobilne w platformach edukacyjnych. Kosmikus, studium przypadku

RWD

viewport Podstawowy mechanizm skalowania

Nie wymaga fw css

Dobra dokumentacja

IE wie lepiej

Page 42: Technologie mobilne w platformach edukacyjnych. Kosmikus, studium przypadku

RWD

media queries Ogromne możliwości manipulowania renderowaniem elementów oraz układem per rozdzielczość

Łatwo zabagnić CSS

W praktyce: konieczność stosowania preprocesorów CSS

Page 43: Technologie mobilne w platformach edukacyjnych. Kosmikus, studium przypadku

SEO/SEF

Ajax vs SEO

FW2 vs SEF

Canvas vs SEF

HTML5

location vs replace

Page 44: Technologie mobilne w platformach edukacyjnych. Kosmikus, studium przypadku

Urządzenia mobilne

iOS i Windows na tabletach są spoko: konkretne rozdzielczości, konkretne przeglądarki, łatwo ogarnąć.

iOS na telefonach i WP wcale nie muszą renderować strony tak samo jak przeglądarki na tabletach (dotyczy też Win RT vs WP)

Android to koszmar: nasz mega kwiatek - różnice w działanie JS  na tej samej przeglądarce pomiędzy 4.0.3 a 4.0.4

Nexusy jako podstawa testów dla Androida albo śmierć przez walenie głową o klawiaturę .

Page 45: Technologie mobilne w platformach edukacyjnych. Kosmikus, studium przypadku

Backend

Backend nie ma krytycznego znaczenia

Jeśli jest kasa i kompetencje można eksperymentować

PHP min. w wersji 5.4, wyższe lepsze (wbudowany OpCache, listy asocjacyjne ) - np. możliwość posługiwania się listami = mniej konwersji w komunikacji z GUI opartym na JS (spójny wygląd kodu po stronie BE i wynikowej - ułatwione debugowanie)

Bazy danych bez znaczenia, ale jeśli aplikacja (i budżet) pozwala można np. rozważyć noSQL posługujący się składnią JSON - ponownie jedna składnia itp.

Można rozważyć node.js - jeden język po stronie BE i FE, ale kwestie wydajnościowe, load balancing: nie wierzyć w foldery reklamowe, kopać mocno pod kątem problemów i wąskich gardeł, które będą zbliżone do tych jakie będziemy mieli w aplikacji.

W praktyce - nie szalej.

Page 46: Technologie mobilne w platformach edukacyjnych. Kosmikus, studium przypadku

Wybór technologii

Inwestowanie w nowe technologie czy stosowanie rozpoznanych rozwiązań?

Kryteria wyboru nowej technologii- "próg wejścia"- reużywalność w ramach organizacji- "próg wyjścia"- zaangażowanie zespołu- popularność- wsparcie producenta

Zakres nowych technologii w projekcie

PoC

Page 47: Technologie mobilne w platformach edukacyjnych. Kosmikus, studium przypadku

Kosmikus 1.5 Bootstrap 2

- wystarczający zakres funkcjonalności- brak możliwości migracji do Bootstrap 3

Create JS- bardzo łatwe wejście dla programistów Action Script- braki lub niedoskonałości w zaskakujących miejscach- nonszalanckie podejście do planu wydawniczego- animacje w zależności od przeglądarki mogą ubić procesor- konieczność stosowania XHR dla mediów

SVG animations - animacja sobie, dźwięk sobie.

jQuery- bardzo wygodny do podstawowej manipulacji DOM- dobrze współpracujący z CSS- eventy - najmocniejsza strona- bardzo wygodna obsługa ajax'a, ale trzeba uważać, żeby pisać zgodnie z bieżącymi zaleceniami obsługę zdarzeń powrotnych- niektóre pluginy (np. Validator) mają słabą wydajność, ale za to działają np. z nietypowymi mailami

LESS- ogromna wygoda w zarządzaniu CSS'ami (których jest sporo)- trzeba mieć dużą samokontrolę bo łatwo niechcący mocno spuchnąć wynikowy CSS (zwłaszcza przy wejściu w media query)- minimalizacja wynikowego CSS by default (konsole dev w przeglądarkach są do sprawdzania i testowania, efekty nanoszone są do LESS, CSS nikt nie rusza)

RWD- viewport jako podstawa - obejście problemu ze skalowaniem Canvasów- media queries - oszczędnie, dla konkretnych elementów gdzie warto było zmienić ich wzajemny układ.

Page 48: Technologie mobilne w platformach edukacyjnych. Kosmikus, studium przypadku

Kosmikus 1.5

Komunikacja backend - frontend

Ustandaryzowane obiekty JS wstrzykiwane w kod strony

Specjalizacja obiektów JS podawanych scenie- obiekt użytkownika- dane "konfiguracyjne"- dane aplikacyjne (np. język)- dane sceny (np. media)- dane o callbackach per akcja na scenie

ajax do walidatorów formularzy rejestracyjnych/profilowych i na niektórych stronach wewnętrznych (tam gdzie to ułatwiało i/lub przyspieszało działanie strony)

dla FW2 konieczność własnego layout.php- oryginalny ma przestarzały układ (CSS, JS, osobny <script> dla każdego addScriptCode; wszystko w head)- powinno być: CSS w head, JS-libs oraz JS-code przed </body> (w tej kolejnosci)

Ścisła (samo)kontrola - JS-code zawsze via addScriptCode, nigdy przez tpl; efektem jest możliwość kontrolowania kolejności kodu na wynikowej stronie, uruchamianie silnika JS once-per-view.

Oznacza to generowanie JS przez PHP - specjalizowane moduły i komponenty do (de)kompozycji jako dobra praktyka.

Page 49: Technologie mobilne w platformach edukacyjnych. Kosmikus, studium przypadku

Kosmikus 1.5

Programowa blokada przeglądarek w zbyt niskich wersjach (oparta o browsecap)

Programowa blokada urządzeń o zbyt niskiej rozdzielczości (min 1024px szerokości, badane przez JS) - bye, bye tablety z Biedronki.

Zasłanianie contentu (Empiria) w orientacji portrait (problemy ze skalowaniem)

Widoki administratorów, sprzedawców, rodziców czy nauczycieli mają RWD w wersji minimum - opierają się na minimalnej szerokości i viewport: niższe koszty, łatwiejsze projekt i realizacja.

Page 50: Technologie mobilne w platformach edukacyjnych. Kosmikus, studium przypadku

Jakość kodu FE

Javascript nie jest już dodatkiem do zabezpieczenia formularzy tylko pełnoprawnym językiem

Dotyczą go wszystkie zasady dobrego programowania jakie znamy z innych języków

Wzorce i antywzorce

CleanCode, SOLID itp, itd

Podział funkcjonalny - warstwy, komponenty, biblioteki

Zależności: DI, promises, overload i override

BDD i testy automatyczne

Jeden duży plik vs szereg mniejszych (require.js)

Page 51: Technologie mobilne w platformach edukacyjnych. Kosmikus, studium przypadku

Wnioski

Technologie mobilne wymuszają nieustanne i sprawne poszerzanie swoich kompetencji

Zawsze będą specjaliści w danym obszarze, ale trzeba rozumieć oczekiwania BE vs FE aby optymalnie dobierać rozwiązania i je implementować

Biznes nie ma szans tego ogarnąć (mają swoje obszary, ten jest nasz)

Rola technicznych w procesie kształtowania wymagań może być krytyczna

Rolą technicznych nie jest rzucanie kłód pod nogi (" sięnieda") tylko kompilowanie dużych obrazków i szukanie rozwiązań, którymi da się je narysować. Lub nie. I co wtedy?

Nie straszymy problemami, tylko szacujemy roboczogodziny

Biznes musi ufać technicznym, techniczni muszą być godni zaufania

Może być tak, że nawet coś trudnego, ale możliwego do zrealizowania będzie ok mimo sporych kosztów: techniczni nie kształtują wartości biznesowej, choć mogą ją podpowiedzieć

Techniczni pilnują też grafików, którzy w trakcie kreacji mogą pominąć aspekt RWD - zawsze jest złoty środek, o ile sygnalizuje się potencjalny problem odpowiednio wcześnie.

Pisz od razu optymalnie; kasy na optymalizację nigdy nie ma, gdy nie ma wartości dodanej dla biznesu.

Page 52: Technologie mobilne w platformach edukacyjnych. Kosmikus, studium przypadku

Literatura i zasobySilniki JS

CreateJShttp://www.createjs.com

PaperJShttp://paperjs.org/

KineticJShttp://kineticjs.com/

Phaserhttp://phaser.io/

Cocos 2Dhttp://cocos2djs.org/

Jawshttp://jawsjs.com/

Solpeo Enginehttp://www.solpeo.com/

Page 53: Technologie mobilne w platformach edukacyjnych. Kosmikus, studium przypadku

Literatura i zasobySilniki JS

Impact JShttp://impactjs.com/

iio Enginehttp://iioengine.com/

Fabric JShttp://fabricjs.com/

PIXIhttp://www.pixijs.com/http://www.goodboydigital.com/pixijs/storm/http://www.goodboydigital.com/pixijs/examples/11/http://www.goodboydigital.com/pixijs/examples/12-3/http://www.goodboydigital.com/to-dom-or-not-to-dom/

Page 54: Technologie mobilne w platformach edukacyjnych. Kosmikus, studium przypadku

Literatura i zasobyZestawienia

http://ntt.cc/2011/01/31/66-open-source-javascript-game-engine-for-serious-developers.html

http://www.backslash.gr/content/blog/webdevelopment/7-10-javascript-canvas-frameworks

Page 55: Technologie mobilne w platformach edukacyjnych. Kosmikus, studium przypadku

Literatura i zasobyBiblioteki

jQuery - (http://jquery.com/)

YUI - (http://yuilibrary.com/)

Dojo - (http://dojotoolkit.org/)

ExtJS - (http://www.sencha.com/products/extjs/)

Prototype - (http://prototypejs.org/)

MooTools - (http://mootools.net/)

Zepto - (http://zeptojs.com/)

jQueryUI - (http://jqueryui.com/)

Page 56: Technologie mobilne w platformach edukacyjnych. Kosmikus, studium przypadku

Literatura i zasobyFrameworki MVC

AngularJS - (http://angularjs.org/)

Knockout -  (http://knockoutjs.com/)

Backbone - (http://backbonejs.org/)

Page 57: Technologie mobilne w platformach edukacyjnych. Kosmikus, studium przypadku

Literatura i zasobyZestawienia

http://jonathanmh.com/best-javascript-mvc-frameworks-2013-2014/

http://www.infoworld.com/d/application-development/the-10-hottest-javascript-framework-projects-228335

http://en.wikipedia.org/wiki/Comparison_of_JavaScript_frameworks

Page 58: Technologie mobilne w platformach edukacyjnych. Kosmikus, studium przypadku

Literatura i zasobyFrameworki CSS

Bootstrap - (http://getbootstrap.com/)http://acc15.kosmikus.pl/http://questrunner.ydp.eu/http://nedu.ydp.pl/http://getbootstrap.com/getting-started/#examples

Foundation - (http://foundation.zurb.com/)

Pure CSS - (http://purecss.io/)

Cardinal CSS -(http://cardinalcss.com/)

Compas - (http://compass-style.org/)

Page 59: Technologie mobilne w platformach edukacyjnych. Kosmikus, studium przypadku

Literatura i zasobyPreprocesory CSS

LESS - (http://lesscss.org/)https://svn.intranet.ydp/ydp/projects/kosmikus/branches/1.5.x/less/kosmikushttp://lesscss.org/#-variableshttp://lesscss.org/#-mixinshttp://lesscss.org/#reference

SASS - (http://sass-lang.com/)

Page 60: Technologie mobilne w platformach edukacyjnych. Kosmikus, studium przypadku

Literatura i zasobyZestawienie

http://www.sitepoint.com/top-10-front-end-development-frameworks/

http://www.sitepoint.com/top-10-front-end-development-frameworks-part-2/

Page 61: Technologie mobilne w platformach edukacyjnych. Kosmikus, studium przypadku

Literatura i zasobyPrzeglądarki vs technologie mobilne

http://caniuse.com/

http://html5test.com/

Page 62: Technologie mobilne w platformach edukacyjnych. Kosmikus, studium przypadku

Literatura i zasobyRWD - kontrola nad ekranem

https://developer.mozilla.org/en-US/docs/Mozilla/Mobile/Viewport_meta_tag

http://css-tricks.com/snippets/css/retina-display-media-query/

http://msdn.microsoft.com/en-us/library/windows/apps/hh453816.aspx

http://blog.kamilbrenk.pl/meta-tag-viewport-kiedy-i-jak-uzywac/