Jako student každý den cestuji po Praze a vždycky se vztekám, když mi tramvaj nebo autobus ujede o pár sekund. Navíc si nepamatuji jízdní řády a často potřebuji vědět, jestli má cenu jet tudy a čekat 10 minut na autobus, který ujede, nebo jet delší cestou, na které ale spoje budou navazovat. Protože v kapse nosím všude svoje PDA, ale nemám trvalé připojení k Internetu, napsal jsem si na úvodní obrazovku plugin, který mi zobrazí nejbližší odjezdy autobusů a tramvají z mých oblíbených zastávek. Je to velmi rychlé, PDA jen zapnete a vidíte. Výsledek vypadá asi takto:
A jak se tedy takový plugin na úvodní obrazovku píše ve VB.NET? Není to žádný med, ale pokud použijete knihovnu Managed Today Screen, jde to poměrně snadno. Tato knihovna je vlastně hostovací aplikace (část je napsaná v C++), která si načte pluginy a zobrazí je pod sebou. Je bohužel jenom v aplha verzi, takže nečekejte zázraky, ale svůj účel splňuje (až na jeden problém, ale o tom až později). Tuto knihovnu si musíte na PDA nainstalovat, pokud chcete používat nebo vyvíjet pluginy v .NETu.
Plugin již napíšete v C# nebo VB.NET - vytvoříte si projekt Class Library pro Smart Device (mobilní zařízení), vytvoříte do něj třídu poděděnou od UserControl, nareferencujete knihovnu ManagedTodayScreen, kterou jste si stáhli z odkazu v předchozím odstavci a třídě přidáte atribut ChrisTec.WindowsMobile.TodayScreen.TodayScreenItem("název pluginu"). Pak již jen napíšete vše, co má komponenta dělat, a výslednou DLL knihovnu zkopírujete do PDA do složky \Program Files\Managed Today Screen\. V ovládacích panelech v dialogu Today nakonec zaškrtnete modul Managed Items a ten načte a zobrazí příslušné pluginy.
Knihovna opravdu ještě není dodělaná, doufám, že autor ji dokončí, zlobilo mi totiž vykreslování. Pokud otevřete třeba nabídku Start a zase ji zavřete, překreslí se jen část pluginu, která byla schovaná, druhá prostě zmizí a objeví se až při dalším vykreslení. Dá se to obejít, ale není to hezké.