Archive for december, 2008

Fejlesztői környezet kialakítása

Az alkalmazások fejlesztésének folyamata során fontos szempont, hogy egy hatékony, jól használható fejlesztői környezetet tudjunk kialakítani. Ezzel kapcsolatosan osztanék meg két tippet veletek.

Az első tipp a Google által fejlesztett “OpenSocial Dev App” (OSDA) alkalmazás, mely segítségével könnyen tesztelhetőek kisebb-nagyobb kódrészletek. Használatához látogassuk meg az OSDA weblapját, és töltsük le a 0.8-as OpenSocial-hoz tartozó alkalmazást tárhelyünkre. Az XML fájlon egy kis módosítást kell végeznünk hogy az iWiW Homokozó befogadja, a <ModulePrefs> elem tulajdonságai közé írjuk be, hogy author="Google". Ha ezzel megvagyunk, a Fejlesztői Portálon telepíteni tudjuk az alkalmazást, és ki tudjuk próbálni, hogy hogyan működik.

Az OSDA be is mutatja a saját lehetőségeit, de a lényeg, hogy telepítésével kapunk egy kísérletezést segítő alkalmazást. A Code fülre JavaScript kódokat írhatunk be, majd ezeket le is futtathatjuk azonnal. A Data Viewer fül segítségével a néző és tulajdonos felhasználók, illetve ismerőseik adatait kérdezhetjük le, és nézhetjük át. Számomra ez a két funkció volt a leghasznosabb, de a többi fület is érdemes megnézni.

A második akkor hasznos, ha a tárhelyhez ahova véglegesen fel szeretnénk tenni az alkalmazásunkat, viszonylag körülményesen (értsd: lassan tudunk felrakni fájlokat) férünk hozzá. A tárhelyet nem helyettesíti (mert sokkal rosszabb a rendelkezésre állása), de segítség lehet ha fejlesztés közben a saját számítógépünket használjuk tárhelynek, vagyis egy webszervert, esetleg adatbázis szervert telepítünk a gépünkre, majd elérhetővé tesszük az interneten. Windowsra megoldás lehet a WampServer nevű csomag, Mac OS X-re és Linuxra is vannak hasonlók (illetve vannak már alapból működő szerver megoldások is). A konkrét telepítés menetét nem írom le, de az biztos hogy számos hibalehetőség van, így ezt a megoldást csak azoknak javaslom, akik tudják mit csinálnak. Figyeljünk rá hogy a gépen futó tűzfal ne tegye kívülről láthatatlanná a helyi szerverünket, illetve ha nem közvetlenül kapcsolódunk a netre, akkor az otthoni router kiengedje a 80-as portot a megfelelő gépről a netre, stb. Ha gyarkan változik az IP címünk, akkor egy dinamikus DNS szolgáltatás is segítségünkre lehet (pl. dyndns.com). Végül az alkalmazást másoljuk be a helyi szerverünk könyvtárába, majd az internet felőli elérhetőségét írjuk be az Fejlesztői Portálon. Így egy olyan környezetet kapunk, mely lehetővé teszi hogy ne kelljen a változtatásokat feltöltögetni a távoli szerverre alkalmazásfejlesztés közben (a Fejlesztői Portálon így is frissítenünk kell az alkalmazást a Homokozóban hogy ha változtattunk valamit, és egyből ki szeretnénk próbálni a változásokat).

Mit tehet egy alkalmazás?

Arról már szó esett a tegnapi blogbejegyzésben, hogy hogyan néz ki az iWiW alkalmazások váza, de arról még nem, hogy mit tud csinálni egy alkalmazás, milyen információkhoz fér hozzá, milyen egyéb technikai lehetőségei vannak.

Ha OpenSocial alkalmazást szeretnétek írni az iWiW keretein belül, a legfontosabb az OpenSocial dokumentáció könyvjelzőzése legyen. A jelenlegi aktuális változat melyet az iWiW is megvalósít, a 0.8.1-es verzió, az ehhez kapcsolódó írásokat és referenciákat érdemes az elejétől a végéig kiolvasni ha szeretnénk tisztában lenni a lehetőségekkel. Az iWiW célja a teljes 0.8.1-es verzió megvalósítása, most egy kivonatot szedtem össze a lehetőségekből. A részletekről szó esik majd még, de egy pár példán keresztül már most be szeretném mutatni az OpenSocial API használatát.

A főbb lehetőségek:

  • kapcsolati háló, profil információk lekérdezése
  • adatok tárolása és lekérdezése külső szerver nélkül
  • kommunikáció a külvilággal
  • történések küldése

Egy alkalmazás esetén nagyon fontos információ, hogy ki az OWNER és a VIEWER, vagyis ki a tulajdonos, és ki a néző. A legcélszerűbb az, hogy ha egy olyan példát képzelünk el, amikor egy ismerős/ismeretlen profiloldalán egy alkalmazást nézünk. A tulajdonos mindig az, aki feltelepítette az adott oldalra az alkalmazást, míg a néző az, aki megnézi. Ha a saját profil oldalunkon vagyunk és ott nézegetjük az alkalmazásokat, akkor mind a két szerepet mi vesszük fel, vagyis a tulajdonos és a néző is mi leszünk. Ebből sokminden következik, például lehetőség van arra hogy egy profiloldalra telepített alkalmazás mást mutasson a tulajdonosnak, mint kifele a látogatóknak, és még a látogatóknak is személyre szabhatja az üzenetet. Arra persze érdemes figyelni, hogy érthető legyen a különbség.

Az alkalmazás persze nem csak ezt a két információt éri el, hanem le tudja kérdezni a tulajdonos és a néző profil adatait (nem az összes profiladatot, csak néhányat), és az ő ismerőseiket. Ezek a lekérdezések úgynevezett aszinkron kérések  a szerver felé, avagy egy függvényhívással elindítjuk a lekérdezést, és a válasz majd valamikor megérkezik. Ennek érdekében egy függvényt is át kell adnunk paraméternek ilyenkor, ami az adatok megérkezéskor fut le. Nézzünk erre egy rövid példakódot:

var App = {
 
  // ezt a függvényt hívjuk meg az alkalmazás betöltődésekor
  init: function() {
    // egy adatlekérés objektumot hozunk létre
    var req = opensocial.newDataRequest();
    // a kéréshez hozzáadjuk az alkalmazás tulajdonosának lekérdezését, a választ
    // "owner" néven fogjuk visszakapni
    req.add(req.newFetchPersonRequest("OWNER"), "owner");
    // egy csoportot definiálunk: az alkalmazás tulajdonosának az ismerősei
    var usergroup = opensocial.newIdSpec({"userId": "OWNER", "groupId": "FRIENDS"});
    // a kéréshez hozzáadjuk az előbb definiált csoport lekérdezését, a választ
    // "ownerfriends" néven fogjuk visszakapni
    req.add(req.newFetchPeopleRequest(usergroup, {}), "ownerfriends");
    // elküldjük a lekérdezést, a függvény paramétere egy másik függvény,
    // ami akkor kerül meghívásra, amikor a szervertől megérkezik a válasz
    req.send(App.displayContent);
  },
 
  // ezt a függvényt hívjuk meg, amikor a szerverről megérkeznek az adatok
  displayContent: function(data) {
    var owner = data.get("owner").getData();
    // például owner.getDisplayName()
    var friends = data.get("ownerfriends").getData();
    friends.each(function(friend) {
      // például friend.getDisplayName()
    });
  }
 
};

Az alkalmazások jellemzően futásuk során információkat, adatokat tárolnak el a felhasználók tevékenysége kapcsán. Az OpenSocial API, és az iWiW megvalósítása erre lehetőséget kínál, vagyis nem feltétlenül kell külső szerverhez folyamodnunk ha adatokat szeretnénk letárolni. Az éppen aktuális limitációk Wiki oldalunkon elolvashatóak: kvóták, limitációk, jelenleg az alkalmazás felhasználónként 10 darab kulcs/érték párt tud letárolni, az értékek maximális hossza 500 karakter lehet. Az alkalmazás az éppen aktuális felhasználó (néző) adatait tudja írni, és bármely más felhasználóét melyekhez hozzáfér (tulajdonos és  tulajdonos ismerősei, néző és néző ismerősei) korlátlanul olvasni. Kiemelten figyeljünk rá, hogy érzékeny információt az adatok ilyen jellegű publikussága miatt nem szabad letárolnunk! Az adatok tárolása és lekérdezése a következőképpen működik:

var App = {
 
  // ezt a függvényt hívjuk meg az alkalmazás betöltődésekor
  init: function() {
    // egy adatlekérés objektumot hozunk létre
    var req = opensocial.newDataRequest();
    // a kéréshez hozzáadjuk az alkalmazás tulajdonosának lekérdezését, a választ
    // "owner" néven fogjuk visszakapni
    req.add(req.newFetchPersonRequest("OWNER"), "owner");
    // egy csoportot definiálunk: az alkalmazás tulajdonosát (egyedül)
    var ownergroup = opensocial.newIdSpec({'userId': 'OWNER', 'groupId': 'SELF'});
    // a kéréshez hozzáadjuk a tulajdonos felhasználó utolsó látogatási időpontjának
    // lekérdezését, a választ "ownerData" néven fogjuk visszakapni
    req.add(req.newFetchPersonAppDataRequest(ownergroup, ['lastVisit']), "ownerData");
    // a kéréshez hozzáadjuk a néző felhasználó utolsó látogatási időpontjának mentését
    req.add(req.newUpdatePersonAppDataRequest("VIEWER", "lastVisit", new Date().getTime()));
    // elküldjük a lekérdezést, a függvény paramétere egy másik függvény,
    // ami akkor kerül meghívásra, amikor a szervertől megérkezik a válasz
    req.send(App.responseReady);
  },
 
  // ezt a függvényt hívjuk meg, amikor a szerverről megérkeznek az adatok
  responseReady: function(data) {
    // az "owner"-ből lekérjük az alkalmazás tulajdonos azonosítóját
    var ownerId = data.get("owner").getData().getId();
    // az "ownerData"-ből pedig lekérdezzük az adatait (lastVisit)
    var ownerData = data.get("ownerData").getData();
    // utolsó látogatás időpontja ezután: ownerData[ownerId].lastVisit
  }
 
};
 
// az alkalmazás betöltődésekor meghívandó függvényt adjuk át, hasonlít a
// weblapok onload függvényéhez
gadgets.util.registerOnLoadHandler(App.init);

Könnyen előfordulhat, hogy ez a tíz kulcs/érték pár, vagy az 500 karakteres limitáció nem lesz elég alkalmazásunknak. Ekkor külső szerveren történő adattároláshoz folyamodhatunk, ahol a szerverünk, szervereink korlátozhatják a tárolható mennyiséget. Ugyanígy külső adathoz folyamodhatunk akár saját, akár más szolgáltatások API-jait használva. Erre a gadgets.io.makeRequest függvényhívás szolgál. Az OpenSocial lehetőséget biztosít arra is, hogy a kimenő lekérdezésekkor a külső szerver azonosítani tudja a felhasználót biztonságosan, hiszen nem mindegy, hogy valaki ismerve a külső API elérhetőségét, milyen kéréseket indít az adott szerver felé, megpróbálva lekérdezni adatokat. A kérés indításakor egy paraméter, hogy az alkalmazás által indított lekérdezést az iWiW “aláírja” és átadja a felhasználó azonosítóját is. Ez az úgynevezett oAuth hitelesítés, a szerver oldali feldolgozásáról már írtunk a Wikiben: SignedRequest és oAuth. Az alkalmazásunkból így indíthatunk kéréseket (egyelőre az oAuth lehetőségeket nem bemutatva):

var App = {
 
  // ezt a függvényt hívjuk meg az alkalmazás betöltődésekor
  init: function() {
    gadgets.io.makeRequest("http://feeds.delicious.com/v2/rss/popular/opensocial?count=10", App.responseReady, {
      "CONTENT_TYPE": "FEED",
      "NUM_ENTRIES": 10
    });
  },
 
  // ezt a függvényt hívjuk meg, amikor a szerverről megérkeznek az adatok
  responseReady: function(data) {
    for(var i=0; i<data.data.Entry.length;i++) {
      var item = data.data.Entry[i];
      // például item.Title, item.Link
    }
  }
 
};
 
// az alkalmazás betöltődésekor meghívandó függvényt adjuk át, hasonlít a
// weblapok onload függvényéhez
gadgets.util.registerOnLoadHandler(App.init);

Végül, de nem utolsó sorban a történések küldése amiről szót ejtenék, erre az opensocial.newActivity szolgál. Mind az alkalmazások, mind pedig az iWiW alapszolgáltatásai a jövőben ilyen üzeneteket fognak küldeni, melyek a felhasználó kezdőlapján jelennek meg kivonatos formában, illetve egy külön oldalon részleteikben. A történések limitációit szintén a kvóták, limitációk oldalon lehet olvasni, egy alkalmazás felhasználónként 4 üzenetet tud kiküldeni naponta.

var activity = opensocial.newActivity({
  "title": "Az alkalmazás üzenete"
});
opensocial.requestCreateActivity(activity, opensocial.CreateActivityPriority.HIGH);

Ennél az aktivitások sokkal többet tudnak, például lehet üzenet sablonokat definiálni, és paramétereket átadni, de az iWiW egyelőre a “title” és a “body” mezőket támogatja csak.

Fejlesztői verseny

Ezirányú terveinkről már korábban is említést tettünk, most pedig az iWiW Fejlesztői Portálján be is indítottuk a Fejlesztői Versenyt, melynek keretében izgalmas alkalmazásokat várunk!

iWiW Fejlesztői Verseny

iWiW Fejlesztői Verseny

A verseny során (2009. január 15. és február 15. között) hasznos közösségi, önkifejezést segítő, motiváló, egyszerű, hosszú távon is használt iWiW alkalmazások beküldését várjuk. A legjobb hármat egyenként 500.000 Ft pénznyereménnyel díjazzuk.

A további részleteket és a játékszabályzatot a verseny oldalán tekinthetitek meg.

Az alkalmazás váza

Az iWiW alkalmazások legfontosabb központi eleme egy XML fájl, sőt, adott esetben előfordulhat hogy az alkalmazás csak és kizárólag ebből a fájlból áll. Ez az XML tartalmazza az alkalmazás meta adatait (szerző, alkalmazás ikon, stb.), a hivatkozásokat külső állományokra (pl. CSS, JS fájlok), az alkalmazás JavaScript kódját, és egyebeket. Ezt a vázat mutatom be ebben a blogbejegyzésben.

Az OpenSocial szabvány a Google gadget specifikációra építkezik, érdemes lehet annak a dokumentációját is átolvasni annak figyelembevételével, hogy vannak eltérések. Az OpenSocial féle Gadgets API referencia az, amire érdemes építkezni. Az alkalmazásunk vázát adó XML-t egy weblapon kell elhelyeznünk, innen fogja tudni betölteni az iWiW, és megjeleníteni az egyik saját aldomainjén.

Így néz ki az XML váz, persze ez csak egy nagyon alap alkalmazás:

<?xml version="1.0" encoding="UTF-8" ?>
<Module>
 <ModulePrefs title="Az alkalmazás neve" author="A fejlesztő neve" author_email="dev@example.com">
  <Require feature="opensocial-0.8" />
 </ModulePrefs>
 <Content type="html" view="profile">
 <![CDATA[
   Ide jön a profil oldalra szánt alkalmazáskód
 ]]>
 </Content>
 <Content type="html" view="canvas">
 <![CDATA[
   Ide jön a "teljes képernyős" oldalra szánt alkalmazáskód
 ]]>
 </Content>
</Module>

A <![CDATA[ ... ]]> használata nagyon fontos, máskülönben az XML értelmező a <Content> tartalmát is XML-ként fogja feldolgozni, ami nem várt eredményekhez vezethet. Az így megjelöl tartalom szöveges információként értelmeződik, ami már rendesen feldolgozásra kerül.

Ennyi az alkalmazás vázának a lényege, de egy kicsit még írnék a korábban (Első alkalmazásom) már behivatkozott Hello iWiW alkalmazás tartalmáról is:

<?xml version="1.0" encoding="UTF-8"?>
<Module>
<ModulePrefs title="Hello iWiW" author="DevBlogger" author_email="dev@iwiw.hu">
  <Require feature="opensocial-0.8"/>
</ModulePrefs>
 <Content type="html">
 <![CDATA[
 <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js"></script>
 <script type="text/javascript">
 
 var App = {
   init: function() {
     $('#content').html('Hello iWiW!');
   }
 };
 
 gadgets.util.registerOnLoadHandler(App.init);
 </script>
 <div id="content">
 </div>
 ]]>
 </Content>
</Module>

A fenti kód JavaScript részére egyelőre nem, csak arra térnék ki, hogy mint látható, külső JavaScripteket is be tudunk hívni más oldalakról, értelemszerűen inline JavaScriptet is írhatunk, illetve HTML részleteket is elhelyezhetünk. A példában nem látszik, de CSS-t is behúzhatunk vagy beleírhatunk a kódba.

A forráskódokban az aposztrófok és az idézőjelek nem jók, ezért copy-paste az alkalmazások nem fognak működni, de egyelőre inkább a szemléltetés volt a cél.

Az alkalmazások megjelenése

Az alkalmazások a canvas (”teljes képernyős” alkalmazás nézet), és a profil oldalakon jelennek meg. Hogy az alkalmazásban milyen grafikát használtok az a ti döntésetek, ezt illetően nincsenek kötelezően betartandó irányelveink (kivéve a jogi kérdéseket). Alapvetően két irány képzelhető el: egy alkalmazás iWiWes desingjegyeket próbál használni, vagy pedig teljesen egyedi designt választ.

Az alkalmazások felhasználó interfésze kiemelten fontos része kell legyen az alkalmazásfejlesztésnek. Különböző usability szempontoknak és ízlésnek kell megfelelnetek ha olyan alkalmazást szeretnétek készíteni melyet sokan használnak. Nagyon fontos, hogy az iWiW közönsége (hazánkban mindenképpen) egyedülálló módon nagyon változatos ami a kort, számítástechnikai ismereteket, oldal használati szokásokat illeti. Ha olyan alkalmazás készítése a cél, melynek nem egy jól behatárolható, általatok ismert célcsoportja van, akkor olyan designt kell használni mely jól érthető, átlátható, és egyszerű megjelenést, működést biztosít. Célszerű lehet részletesen, nem eldugott helyen elmagyaráznotok, hogy miről szól az adott fejlesztés, hogy mivel jár a használata. Kezeljétek kiemelten, hogy felhasználók ezreihez, tízezreihez is eljuthat az alkalmazásotok.

Mi úgy gondoljuk hogy a legjobb ha az iWiWen már megszokott designjegyekből alakítjátok ki az alkalmazás kinézetét, mivel ez ismerős a felhasználóknak, tudják hogy hogyan kell használni, és várhatóan nem fog gondot okozni a megértése. Ezzel együtt látjuk és megértjük, hogy az iWiW-en megszokottól történő megjelenés bizonyos alkalmazásoknál célszerű lehet.

Első alkalmazásom

Az iWiW alkalmazások koncepciójának megértésében sokat segíthet, hogy ha végigmegyünk egy telepítési folyamaton és kipróbáljuk hogyan fognak megjelenni, mely oldalakon láthatóak ezek az alkalmazások. Ezt foglaltam most össze a regisztrációtól kezdve az első alkalmazás kipróbálásáig egy screenshot tour keretében. Ami a művelethez kell: egy e-mail cím, egy magyar mobiltelefon és egy webszerver/tárhely (különösebb követelmények nélkül).

A követelmények kapcsán a mobiltelefon a regisztrációhoz szükséges, SMS-ben fogunk aktiváló kódot kapni, ha hozzá szeretnénk férni a Homokozóhoz. A tárhely pedig azért kell, hogy fel tudjuk tölteni az alkalmazásunkat (egy XML fájlt). Az alkalmazás telepítéséhez egy URL-t kell megadni, ahol az elérhető.

De vágjunk bele a telepítésbe! Ehhez a http://dev.iwiw.hu/ oldalt kell meglátogatnunk:

Címlap

Itt válasszuk a regisztrációt, és adjuk meg adatainkat. Minden adat megadása kötelező. A Wiki felhasználói névnél egy olyan azonosítót kell megadnunk, melyet később használni szeretnénk a Wikiben. Az ellenőrző szónál azt a két szót kell megadnunk, amik a képen szerepelnek.

Regisztráció 1.  Regisztráció 2.

Ha mindent jól kitöltöttünk, akkor kapni fogunk egy e-mailt. Kattintsunk a benne levő linkre! Ekkor a rendszer bejelentkeztet minket, és egyből a mobilszám kezelés oldalra jutunk. Itt adjunk meg magyarországi mobilszámunkat! SMS-ben kapni fogunk egy kódot, ezt írjuk be a megfelelő mezőbe! Egyes mobilokon a kis L betű és az 1-es szám összekeverhető, figyeljünk rá hogy jól írjuk be a kódot (de nincs baj ha nem sikerül elsőre, többször is lehet próbálkozni):

SMS aktiválás  SMS aktiválás, siker

Következő lépés lehet a Homokozóban (az iWiW mini klónban) létrehozni a felhasználóinkat. Ehhez egy jelszót kell megadnunk, amivel ott be tudunk lépni majd. A megadás után a saját felhasználónk azonnal létrejön, és elindul még 300 ismerős legenerálása is, mely adott esetben akár pár órát is igénybe vehet (attól függően, hogy éppen mennyi új regisztráció van folyamatban):

SMS aktiválás, siker Teszt felhasználók Teszt felhasználók, siker

Az Alkalmazás fülre kattintva belevághatunk az első alkalmazásunk telepítésébe is. Itt egy webcímet kell megadnunk. Ehhez töltsük le a Hello iWiW alkalmazást, majd töltsük azt fel a szerverünkre. A szerverünkön levő alkalmazás elérhetőségét kell megadnunk (http://szerverneve/utvonal/helloiwiw.xml - értelemszerűen kitöltve), ehhez menjünk az Alkalmazások fülre. Kategóriának egyelőre válasszunk kedvünkre valamit, és egyelőre a felhasználási feltételekkel sem kell törődnünk, beírhatjuk hogy “teszt alkalmazás”:

Alkalmazások Alkalmazások 2.

A felvitel után nem lesz még elérhető az alkalmazás a Homokozóban, ehhez menjünk az alkalmazáshoz tartozó Vezérlőpultra, és nyomjuk meg a Kirakás a Homokozóba gombot. Ekkor pár figyelmeztetést kaptunk, de ez jelenleg figyelmen kívül hagyhatjuk - a jövőben viszont fontos lesz majd. De most kattintsunk az Aktiválás gombra, hogy  alkalmazásunk ténylegesen megjelenjen a Homokozóban! (Az alkalmazás Passzív állapotban nem látható a Homokozóban, tehát se nem telepíthető, se nem használható. Ha már telepített alkalmazást állítunk Passzív állapota, nem történik adatvesztés, csak eltűnik az alkalmazás. Legközelebb amikor visszakapcsoljuk, a felhasználók újra látni fogják alkalmazásaikat. Ha töröljük, akkor a telepítések, beállítások és egyéb információk is elvesznek.)

Vezérlőpult Vezérlőpult Vezérlőpult Vezérlőpult Vezérlőpult Vezérlőpult

Most már kikerült, elérhető a Hello iWiW, nézzük is meg! Jelentkezzünk be az e-mail címünkkel, és az imént megadott Homokozó jelszóval a http://sandbox.iwiw.hu/ címen, majd menjünk a Kiegészítők fülre, itt megjelenik az alkalmazás a listában.

Homokozó

Az alkalmazásra kattintva beindul a telepítése: pipáljuk be a felhasználási feltétel elfogadásokat és már meg is tekinthető az alkalmazásunk!

Alkalmazás felvitel Alkalmazás felvitel

Az alkalmazás a profil oldalunkon is megjelenik.

Így írtok ti

Sok blog és híroldal is beszámolt az indulásunkról, köszönjük nekik, hogy hírt adtak rólunk, és hogy megírták véleményüket.

Blogok, akik írtak rólunk:

Híroldalak:

Köszönjük mindenkinek.

A nyitás óta egyébként mostanáig 669-en regisztráltatok a Fejlesztői Portálon, és 138 alkalmazást telepítettetek fel a Homokozóba.

A Wikiben írtak mellett egy minisorozat keretében hamarosan jön egy részletes OpenSocial bemutató, és igyekszünk olyan témákra is kitérni, melyekről eddig nem esett szó.

Indulunk

A mai nappal megnyílt Fejlesztői Portálunk a nagyközönség előtt is. Van blogunk - ezt olvassátok -, van Wikink és persze a fejlesztők számára a legérdekesebb rész, az iWiW Homokozó is rendelkezésetekre áll.

Az iWiW kiegészítők OpenSocial alapú alkalmazások. Ha neki szeretnél vágni a fejlesztésnek, az iWiW Wikin már most is egy jó bevezetést találsz ehhez, ezt szeretnénk a jövőben is minél több szócikkel bővíteni, továbbá várjuk az általatok írt kiegészítéseket is, hiszen wikiről van szó.

Az iWiW Homokozó lesz az a hely, ahol fejleszteni, tesztelni tudjátok alkalmazásaitokat. Ez tulajdonképpen egy mini iWiW klón, ahol az igazi legtöbb funkciója elérhető. Minden fejlesztő kap 300 véletlenszerűen létrehozott felhasználói hozzáférést is, így a közösségi interakciókat is tesztelni lehet. Itt láthatjátok, ide telepíthetitek a saját alkalmazásaitokat, és tesztelhetitek azok működését.

Figyelmetekbe ajánljuk a Fejlesztői ÁSZF-et és a Fejlesztői útmutatót, melyek a legtöbb kérdésre választ adnak azt illetően, hogy mit lehet az oldalon egy fejlesztőnek, és mit nem. A lehetőségeket és szabályokat igyekeztünk a jogi környezet figyelembevételével úgy megalkotni, hogy azok minél nyitottabb együttműködést tegyenek lehetővé az iWiW és a fejlesztők között.

A Fejlesztői Portál és a Homokozó béta időszakát éli, ez azt jelenti hogy egyes dolgok még változnak, fejlődnek ebben az időszakban.

Használjátok ki a lehetőséget a publikus indulás előtt, ismerkedjetek az OpenSocial szabvánnyal, olvassátok a Wikit, fejlesszetek alkalmazásokat!

Hamarosan fejlesztői versenyt hirdetünk, hogy díjazhassuk a legizgalmasabb, legkreatívabb alkalmazások készítőit. A részletekről itt a Fejlesztői blogon adunk majd további tájékoztatást.