Meteor
Od zawsze w Czarnym Kodzie staramy się znajdować nowe, inspirujące rozwiązania zarówno od strony designu, jak i technologii. Na całym świecie Rok 2015 zaczął i kończył się bardzo dynamicznym rozwojem technologii. To wszystko po tym jak w 2014 roku pojawiły się takie rozwiązania jak Docker i ReactJs, przez które świat IT szybko przedefiniował sposób tworzenia aplikacji i interakcji z nimi.
Nowe standardy i oczekiwania zainspirowały nas do szukania alternatywnego rozwiązania, dla Railsów, które od wielu lat były naszym sztandarowym narzędziem pracy, a które stanie się dla nas inspiracją i poprawi szybkość developmentu.
Ponad rok temu zaczęliśmy zagłębienie tematu rozwiązań opartych o JavaScript. Tak rozpoczęła się przygoda z NodeJs oraz opartym na nim ExpressJs. Wykonaliśmy kilka wewnętrznych projektów, a bardzo pozytywne doświadczenia jakie zebraliśmy otworzyły przed nami ścieżkę i wzmogła chęci do dalszego rozwoju w tym kierunku. Właśnie wtedy trafiliśmy na Meteora. Na pierwszy rzut oka, skromnie wyglądający, nazwijmy go, framework okazał się „potworem” o możliwościach, o których nawet się nam nie śniło.
No dobra, ale o co tyle szumu?
Historia Meteora sięga roku 2011. Wtedy jeszcze pod nazwą Skybreak, objęty inkubacją w jednym z najlepszych startupowych inkubatorów — YCombinator, szybko zbierał coraz większe grono zwolenników. Obecnie wielomilionowe dofinansowanie, jakie technologia w roku 2015 otrzymała, przyczyniło się do ogromnego skoku rozwojowego, oraz dała pewność, ze przez wiele lat nie zniknie ona z rynku. Nie chcemy wyciągać daleko idących wniosków, ale Meteor ma ogromną szansę stać się bezkonkurencyjnym rozwiązaniem przy tworzeniu serwisów i aplikacji, także tych na telefony komórkowe.
Meteor działa w czasie rzeczywistym, w pełni dynamiczne i prezentuje treść klientom od razu po wprowadzeniu zmian po stronie serwera, czy nowej zawartości.Wszystko to odbywa się bez konieczności przeładowywania po stronie klienta. Meteor pozwala przy tym w dużo łatwiejszy sposób tworzyć najpierw prototypy aplikacji, a potem pełnoprawne projekty. Daje ogromne wsparcie dla procesu tworzenia, a także dalszego rozwoju. Idealnie spisuje się w połączniu z metodyką Customer Development. Do tego dochodzą duża społeczność, ogromna skalowalność, oraz szybkość developmentu.
Pierwszy projekt
Na rodzimym rynku, w Polsce, ciężko było nam znaleźć firmy, które mimo zdobytego już doświadczenia zechciałby się wdrożyć w rozwiązania oparte o nową technologię, dlatego pierwszym klientem, który szybko podchwycił temat takich rozwiązań był klient ze Stanów Zjednoczonych — Tecma, którego dzięki IWW Digital Agency obsługujemy od dawien dawna. Dokładnie w 80h byliśmy w stanie przygotować dla niego w pełni działający prototyp, wewnętrznego portalu do zarządzania relacjami z klientami, system faktur, repozytorium plików, oraz centrum komunikacji. Stworzenie prototypu przyczyniło się zwiększonym zainteresowaniem klientów, co chwilę potem przełożyło się bezpośrednio na wyniki firmy. Nam i naszemu partnerowi biznesowemu IWW dało zielone światło do ciągłego rozwoju aplikacji.
Dalsze prace
Pracując nad portalem wpadliśmy także na pomysł stworzenia własnego startupu — Tap To Speak. Nasza siedziba znajduje się w jednym z najnowocześniejszych budynków w Łodzi jakim jest Technopark. To tutaj rozkwitają młode firmy, oraz prowadzone są prawie w każdym tygodniu ciekawe konferencje, nie tylko naukowe. Natchnęło nas to do pewnego pomysłu. Chcieliśmy zrobić rozwiązanie, aplikację webową, która pomoże ludziom w prowadzeniu konferencji i nawiązaniu kontaktu bezpośrednio z widownią za pomocą ich smartfonów. Chcieliśmy je wykorzystywać jako mikrofony i w taki sposób przesyłać dźwięk bezpośrednio do nagłośnienia na sali. Wszystko w oparciu o rozkwitający WebRTC.
Nad aplikacją pracowały dwie osoby, a łączny czas na stworzenie prototypu, który mogliśmy przetestować w warunkach bojowych zajął niecałe 90h. Dzięki takiej wydajności i jakości udało się nam zdobić od razu pierwsze miejsce na najlepszy łódzki startup, największego akceleratora biznesowego w środkowej Europie — Business Link.
Stworzenie działającego prototypu w tak krótkim czasie, przy jednoczesnym bazowaniu na Railsach, PHP, czy Javie nie byłoby możliwe, szczególnie ze względu na wymaganą reaktywność widoków pomiędzy obsługującym wydarzenie a widownią.
Jak ważne jest doświadczenie
Po kilku innych projektach byliśmy gotowi na komercyjne wykorzystanie technologii. Przekonanie klientów, poprzez rzetelną argumentację i przytoczenie przykładów, także na rodzinnym rynku, nie stanowiło już problemów. Wiele firm i innych agencji rozpoczęło z nami współpracę właśnie ze względu na Meteora. Wszędzie tam gdzie wdrożeniom w innych technologiach groził „fakap” mogliśmy w szybki sposób wkroczyć z rozwiązaniem i wyprowadzić klienta z tarapatów.
Konkluzja
Główne zalety Meteora przy tworzeniu aplikacji webowych jakie należy wymienić to:
- Szybkość tworzenia aplikacji a w tym m.in.:
– niepotrzebny Grunt, Gulp, Bower, czy BrowserSync ,
– wsparcie dla Jade Template — co najmniej czterokrotnie szybsze pisanie kodu HTML,
– wsparcie SASS/LESS,
– CoffeeScript, ES2015 i ES2016 API, - aplikacja domyślnie działa w czasie rzeczywistym,
- łatwość tworzenia testów zautomatyzowanych zarówno po stronie serwera jak i klienta,
- dzięki narzędziom takim jak MupX połączonymi z Dockerem ogromna szybkość umieszczenia aplikacji na produkcji,
- jeden język — zarówno serwer (NodeJS, Underscore) i część dla klienta (jQuery),
- MongoDb i instancja MiniMongo — interfejs i dane dostępne od razu zarówno na serwerze jak i po stronie klienta bez konieczności ciągłej komunikacji,
- wsparcie popularnych IDE,
- przepięknie napisana dokumentacja,
- ogromna społeczność,
- routing,
- bezpieczeństwo,
- programiści go kochają, a tym samym tworzą lepsze rozwiązania.