Hirdetés

Alkalmazásfejlesztés badára: IRC kliens UI koncepció

Miután az előző bejegyzésben ismertettem az IRC protokollt, ideje mindezt a badára vetíteni. Most bemutatom, hogy képzeltem el a kliens felhasználói felületét.

A bada fekete-alapon-egyszerű kinézete véleményem szerint megbízhatóságot és robusztusságot sugall. Bár az IRC közel sem felhasználóbarát, mégis törekedni kell ennek egyértelmű és használható prezentálására.

Visio segítségével készítettem pár mockup képet, melyeket a következőkben körüljárok. (Az elkészítés során összevágott képekből készítettem egy stencilt, amennyiben kell valakinek megosztom, csak szóljatok.) Ezek még szigorúan csak vázlatok, de ha minden jól megy, a következő két hét alatt élőben is így fog kinézni.

Az alkalmazás elindítása után, miután a splash screen eltűnt — ez grafikust igényel, úgyhogy nincs kép róla :) — a szerverválasztó űrlap jelenik meg. Az első fázisban az alkalmazás egyszerre csak egy szerverrel kommunikál, melyet előre definiálni kell: az ábrán kettőt vett fel eddig a képzelt felhasználó. Rövid érintéssel megkezdődik a kapcsolódás, míg hosszú nyomvatartással egy helyi menü jelenik meg, benne a Szerkeszt és Töröl parancsokkal. Ezek mindegyikére beépített vezérlőelemeket biztosít a bada, a lista GroupedList, a menü ContextMenu, a softkeyek pedig a Form tartozékai; ez utóbbiak erőforrásként definiáltak.

A bal softkey segítségével lehet új szervert felvenni. A megjelenő űrlap csak a szükséges minimális elemeket tartalmazza, túl sok szót nem érdemel.

A szerverlistáról indított csatlakozás közben egy egyszerű Popup jelzi a folyamatot, ezt nem rajzoltam le. Ha valamilyen hiba lépne fel, akkor a szerverlista marad aktív (persze hibajelzés mellett), sikeres kapcsolat esetén pedig a legfontosabb űrlap jelenik meg: az üzenetközpont.

Ez az űrlap nem véletlenül hasonlít a beépített üzenetkezelő alkalmazásra vagy a prémium IM-re. A felső fülek az aktív beszélgetéseket mutatják, melyek között érintéssel lehet váltani. A középső blokkban jelennek meg a kimenő és bejövő üzenetek az adott személlyel/csatornával kapcsolatban. Végül alul az Üzenetek alkalmazáshoz hasonlóan egy szövegdobozba lehet az új üzenetet írni, megérintésekor előugrik a billentyűzet, elrejtve a fülsávot és feljebb tolva az előzményeket — amik attól még görgethetőek maradnak.

A középső "..." softkey hozza elő a bonyolultabb parancsokat, mint például a lecsatlakozást, új csatornákhoz csatlakozást, kilépést, felhasználólistát. Praktikus lenne egy BitlBee gyorsfunkciókat biztosító almenü is, főleg mivel eddig arra hegyeztem ki a felvezetést — de ez csak a második fázisban.

Egy adott üzeneten hosszú érintésre megjelenik egy menü, amivel az adott felhasználóhoz kapcsolódó műveletek érhetőek el, például privát üzenet küldés, vagy a WHOIS információk lekérdezése. Ezzel csökkenthető azon esetek száma, ahol a felhasználólista szükséges.

Megvalósítás szempontjából valószínűleg az üzeneteket tartalmazó lista lesz a legérdekesebb. A platformban található egy SlidableList osztály, melynek az az extra funkciója, hogy a listaelemeket csak akkor hozza létre, amikor ténylegesen szükség van rájuk. Ez memóriafogyasztás szempontjából és a sebesség miatt is kritikus. Gondolom nem egyedül én tapasztaltam, hogy hogy viselkedik a Fring Symbianon, amikor egy beszélgetés túl hosszúra nyúlik. Nem egy szép látvány, mindenképp el kell kerülni a szaggatást.

Maguk a listaelemek is érdekesek, hiszen sokféleképpen kinézhetnek. Itt van még egy-két ötletem, például időbélyeg elhelyezése, vagy a csatorna különböző tagjainak véletlen, esetleg kézzel állítható színű háttér beállítása, melyek majd a csiszolás közben előkerülhetnek újra. Gondoltam a buborékos megjelenítésre is, de egyrészt annak csak szemtől-szembe beszélgetésnél van értelme (ott talán jobb is), másrészt nem biztos, hogy mindenkinek zsánere.

A maradék ismét gyári komponens (pl. Tab), vagy még nyitott kérdés (felcsúszó billentyűzet). Az API dokumentációt böngészve nem várható igazán nagy meglepetés, remélem így is lesz a gyakorlatban is.

Az alkalmazás nyílt forráskódú lesz, a Google Code-on foglaltam már helyet neki, bár jelen pillanatban a tárhely teljesen üres. Az új BSD licenc alatt álló kód mellett a végeredményt a Samsung Appsban publikálom majd, ingyenes alkalmazásként.

Szeretnék egy olyan alkalmazást készíteni, amit nem csak én egyedül használok. Ennek értelmében nyitott vagyok bármilyen kritikára vagy kívánságra, de kérdésekre is szívesen válaszolok a topikban.

Karma

Azóta történt

Előzmények