Adósságnyomás-mérőt mindenkinek (ingyen)

Az utóbbi napokban több médiumban is napvilágot látott  hír, miszerint a NGM honlapjára is kitett közel 900 ezer forintba kerülő adósságnyomás-mérő flash alkalmazás egy parányit túl volt árazva. Szakmai szemmel (nemcsak az enyémmel) nézve a magyarázkodások enyhén szólva is sántítottak.  Első körben azt gondoltam majd jól kielemzem az egészet, de őszintén szólva roppant unalmas rizsa lett volna. Ezért egyszerűen leírom hogyan készül egy ilyen program, aztán mindenki döntse el megéri-e az árát.

A cél az volt, hogy ugyanazokkal a funkciókkal rendelkezzen mint az eredeti és  persze ugyanolyan technológiákat használva készüljön el az alkalmazás.  A nehezítés kedvéért a háttérképen kívül minden elem flashben készült el (kicsit előre rohanva itt jegyezném meg, hogy emiatt az egész alkalmazás csak 71kB méretű lett, szemben az eredeti 2,1MB(!)-os méretével). Nem terhelnék senkit a folyamatok részletezésével vagy nehézkes technikai leírással, ezért csak röviden vázolom mi kellett egy ilyen alkalmazás elkészítéséhez.

A készítés folyamata

1. Első körben létre kell hozni egy új projektet a flash szerkesztőben. Nem igényel semmilyen extra beállítást. A canvas méretét beállítjuk, illetve nagyobbra kell venni az alap frame számot.

2. Valami háttérképet keresni kell, külső képszerkesztő programmal kicsit alakítani kell rajta, majd mehet a flashbe. Pár perces meló.

3. Aztán neki lehet látni előkészíteni a programban használt elemeket (graphic, movie, button). Kell egy cím movie, lineális gradient háttér raja a címmel. Kell egy movie, amiben van egy dinamikus szövegmező, ahol szövegesen is megjelenik az adat. Ide készül egy fejléc csakhogy tényleg olyan legyen, mint az eredeti. Aztán jöhet a lényeg:  maga a mérőóra. Persze lehetne képként is beilleszteni, de most inkább megrajzoltam. Nem részletezném, de alap formákból, alap toolok használatával és másolással gyorsan elkészítheti bármilyen, a programban kicsit is jártas személy. Itt több movie elem is van: maga az óraalapja, a mutató és a nyíl, ami a végén megjelenik. Csak arra kell ügyelni, hogy a mutató és a nyíl pivot pontja (ahol elforognak) ugyanoda essen: az óra számlapjának közepére. Ugyanúgy, mint egy valójában működő mérőóránál.
Ezzel készen is van a program grafikai része, ami összesen öt darab movie elem elkészítését jelentette. Mindenféle irónia nélkül mondom, hogy tea ivás, nasizás és Csillagkapu nézés közben 1-1,5 óra alatt bőven elkészült és jelentem: nem kaptam ínhüvelygyulladást.

4. Ezután jöhet a programozás. A lényeg, hogy fel kell dolgozni egy külső adatot (az aktuális érték), ez alapján kiszámolni a változás mértékét, összeállítani a szövegeket, valamint az animációkat megcsinálni. Ennek a legproblémásabb része az animáció lenne, de a programozó ugye lusta egy teremtmény és miért dolgozzon, ha remek fejlesztői animációs kit-ek állnak a rendelkezésére, amelyek ráadásul ingyenesek is. A http://www.mosessupposes.com/Fuse/ oldalról gyorsan letölthető az As2-es Fuse (már készül vagy talán kész is van az AS3 változat is) és előre elkészített animációk tömegei állnak hadrendben, melyek csak paraméterekre várnak, hogy csatába indulhassanak. Szóval egy ujjal kellett pötyögnöm és közben fél szemmel Samantha Carter százados ádáz csatáját is figyelemmel kellett követnem hogy a fél óra összejöjjön.
Persze én már dolgoztam Fuse-al, szóval ha dokumentációt is kell bújni, akkor adok neki szumma 1 órát. Bizonyítékképpen álljon itt (a cikk végén) a kód kommentekkel  és üres sorokkal felbővített kőkemény 45 sora. De a lényeg, hogy végeredményben ugyanazt csinálja, mint az eredeti alkalmazás!
Persze kérdezhetné bárki, hogy hol itt a preloader, miért nincs jobb hibakezelés, miért nem csökkenhet az érték, miért nem AS3, blabla. Ezek egyrészt minimálisan befolyásolták volna a ráfordított időt, valamint  így többet tudott volna a vizsgált alkalmazásnál, ami itt most nem volt cél.

Mi kell még?

Természetesen egy cégnél nem így – egy ölbe rakott laptopon -  zajlik a fejlesztés, ezért a teljes képhez látni kell minden folyamatot, ami például nálunk is végigmegy ilyenkor. Tegyük fel az ajánlatírás, szerződéskötés rögös útján már túl vagyunk (előzetes igényfelmérések, egyeztetések, némi megvalósíthatósági vizsgálat, belső egyeztetés, ajánlatírás, szerződéskötés). Először  pontosan specifikálni kell, hogy mit is kell csinálni, közben már készülhet a látványterv, amit megkap a megrendelő. Ha valami hiba van benne vagy nem tetszik a megrendelőnek (működés, szín, betűtípus, kép, stb) javítás majd újra elfogadtatás.  Jó esetben 1-2 kör után minden rendben lesz, ha képet kell venni jöhet a vásárlás a stockból, majd  kezdődhet a tényleges (fent leírt) munka.

Szumma

Végeredményben akárhogy csavarom a dolgot, közel sem jön ki annyi befektetett munka, ami – akár jókora haszonnal is – ekkora számlát igényel. Persze lehetne hinni annak a véleménynek is, hogy “az adósságmutató alkalmazás két embernek akár 8-10 napi munkájába is telhetett”, de bárki aki szán pár percet arra, hogy saját szemével  belenézzen az eredeti programba tudja, hogy nem így van. Nem is sajnálnám a pénzt, ha lenne mögötte tisztes iparosmunka és ha egy olyan cég zsebébe vándorolt volna, aki valamit már letett az asztalra. Látszólag erről itt szó sincs.

A programunk teljes forráskódja letölthető innen és bárki számára korlátozás nélkül szabadon felhasználható.

stop ();

//ertekek beolvasáasa
var szazalek_kezdo = "81.18";
var szazalek_vege = _root.sz_v;

//default, ha nincs adat
if (szazalek_vege == undefined || Number(szazalek_vege)<50 ) szazalek_vege = "76.1";

//Fuse betoltes
import com.mosesSupposes.fuse.*;
ZigoEngine.register(PennerEasing, Fuse);

//szoveg osszeallitas
magyarazoszoveg._alpha = 0;
magyarazoszoveg.txt.htmlText =
'AZ ÁLLAMADÓSSÁG GDP-HEZ VISZONYÍTOTT ARÁNYA A 2011 FEBRUÁRI '
+ String(szazalek_kezdo).split(".").join(",")
+ '-HOZ KÉPEST<br /><font color="#CC6600">'
+ String(Number(szazalek_kezdo) - Number(szazalek_vege)).split(".").join(",")
+ ' SZÁZALÉKKAL CSÖKKENT.</font>';

//animciok init
rotation_kezdo= Number(szazalek_kezdo) * 2.5;
rotation_vege = Number(szazalek_vege) * 2.5;

var fuseanim_nyito1:Fuse = new Fuse();
var fuseanim_nyito2:Fuse = new Fuse();
var fusaanim_meroora:Fuse = new Fuse();
var fusaanim_nyil:Fuse = new Fuse();
var fusaanim_szoveg:Fuse = new Fuse();

//elemek animacioja
fuseanim_nyito1.push({target: meroora, x: -40, seconds: 1, start_Blur_blurX: 100, ease: "easeOutSine"});
fuseanim_nyito2.push({target: cim,  x: 0, seconds: 1, start_Blur_blurX: 100, ease: "easeOutSine"});
fusaanim_meroora.push({target: meroora.mutato, rotation: rotation_kezdo, delay: 1, seconds: 2, ease: "easeOutBack"}, {target: meroora, width: 900, height: 900, x: -800, y: -300, seconds: 2, ease: "easeOutBack"}, {target: meroora.mutato, start_rotation: rotation_kezdo, rotation: String(rotation_vege - rotation_kezdo), delay: 1, seconds: 2, ease: "easeInSine"});
fusaanim_nyil.push({target: meroora.nyil, start_rotation: rotation_kezdo, rotation: String(rotation_vege - rotation_kezdo), delay: 6, seconds: 2, ease: "easeInSine"});
fusaanim_szoveg.push({target: magyarazoszoveg, alpha: 100, delay: 6, seconds: 1, ease: "linear"});

fuseanim_nyito1.start();
fuseanim_nyito2.start();
fusaanim_meroora.start();
fusaanim_nyil.start();
fusaanim_szoveg.start();

Cikk az indexen:
900 ezerbe került az adósságmérő – Index.hu

One Response to Adósságnyomás-mérőt mindenkinek (ingyen)

  1. j szerint:

    Azért a “kifinomult izlésvilág” visszaköszön mint a sutulás pálinka böffenet.
    http://borg-s.hu/index.html
    Uramatyám.

MINDEN VÉLEMÉNY SZÁMÍT!

Email cím (nem tesszük közzé) A kötelezően kitöltendő mezőket * karakterrel jelöljük


− egy = 6

A következő HTML tag-ek és tulajdonságok használata engedélyezett: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

A bloghelyet a Dunaújváros Online Kft. üzemelteti.
honlapkészítés: DDSWEB