Matrakci Calculator – my new Windows Phone app


Find this application on Windows Phone Marketplace at this location: http://www.windowsphone.com/s?appid=59680235-b5e2-41a9-b2f5-49eebfc62301

If you want to play online this calculator right now, check this link. It is described all you want to know about Matrakci and Lattice multiplication as well.

about_matrakci

During holidays I was working on a small Windows Phone app. The application simulates how people performed multiplication more than 500 years ago. Before 500 years, people didn’t have devices we have today, so it was pretty complicated to calculate how much is e.g. 2345*6542. Those days, one of the discovered devices was Napier Bones, which could perform multiplication of pretty big numbers (with 2 or more digits). The device uses very clever method for multiplication, discovered 50 years before Napier constructed his Abacus. A recent study of  the book, “Support of arithmetic in propositions of all magnitudes” (org. “Umdet-ul Hisab”) revealed an unknown fact that Matrakci had invented this genuine multiplication method. Nasuh Maktrakci was 16th century Ottoman mathematician, teacher, historian, geographer, cartographer, swordmaster, and miniaturist of Bosniak origin.
Currently application is preparing for sumbiting to marketplace, but there is a web silvelright version of the application which you can taste now. Just go to http://datasoft.ba/demos/matrakci/Matrakci.aspx and taste this very clever method for multiplication.

Advertisements

WPWidgetLibrary presentation at CodeCamp 11(MkNET User Group)


This year too, MkNET UG (Macedonian User group) is organizing CodeCamp 11. This is one of the most popular UG event on Blakan. Very huge number of attendees and speakers. The CodeCamp is organizing in to 5 tracks: Red, Yellow, Green, Blue and Student tracks.

This year I got the invitiation from the  INETA and MkNET to speak at CodeCamp 11.

WPWidgetLibrary – HTML5 Widgets for WP7 Mango will be presentation which I am goint to present at Yellow track. I can say I am very exciting about this event.

As I have written the WPWidgetLibrary is announced at MobilityDay, and published at codeplex month before. We got very positive feedback from the dev community and the Mk Code Camp will also be a chanse to present our open source solution to the Macedonian .NET community.

More information about Code Camp 11 can be found at http://www.codecamp.mkdot.net, and my speach will be at Yellow track from 11:00 to 12:00.

The more information about sessions and agenda can be found here.

Meet you there!

Customization of WPWidgetLibrary


In only 12 days WPWidgetLibrary reach more that 800 page views and over 50 downloads. This is good start of the library since building HTML5 apps in Windows Phone is coming. We have also got several feedbacks and questions about the library, and we can say the WPWidgetLibrary is indeed solution for developing hybrid mobile applications for Windows Phone 7.
One of the question about WPWIdgetLibrary is how to customise some features. For example default library no support avi file format. For that reason we have opened Discussion section of the library and put some answers. Here is one of them Damir has posted:
WpWidgetLibrary installs HTML app by calling:

InstalHTMLContent(string htmlFolder, string[] htmlDirs) ;

where htmlFolder is the folder in solution which contains all required web files. In other words this is the root of web-application which will be executed from isolated storage. Because you are free to use any kind of extension like “myfile.tiff” the framework can either copy any file in your project or specific files. We decided to copy specific files only.
Here is how we do it:

protected virtual bool IsWebExtension(string ext)       {
bool res = false;
switch (ext.ToLower())
{
 case "htm":
 case "html":
 case "js":
 case "jpg":
 case "jpeg":
 case "png":
 case "css":
 res = true;
 break;
 }
return res;
}

If your HTML mobile app requires other file formats eg. “abc.avi”, just derive the WPWIdgetLibrary class and override this method like the following sample.

public class MyWPWidgetLibrary: WPWidgetLibrary{
protected override bool IsWebExtension(string ext){
bool res = false;
 switch (ext.ToLower())
 {
 case "avi":
 return true;
 //break;
 }
 return base.IsWebExtension(ext);
 }
}

Now WPWidgetLibrary supports custom avi files.
On similar way you can implement support of any file format you want.

In only 12 days WPWidgetLibrary reach more that 800 page views and over 50 downloads. This is good start of the library since building HTML5 apps in Windows Phone is coming. We have also got several feedbacks and questions about the library, and we can say the WPWidgetLibrary is indeed solution for developing hybrid mobile applications for Windows Phone 7.

One of the question about WPWIdgetLibrary is how to customise some features. For example default library no support avi file format. For that reason we have opened  Discussion section of the library and put some answers. Here is one of them Damir has posted:

WpWidgetLibrary installs HTML app by calling:


 InstalHTMLContent(string htmlFolder, string[] htmlDirs) ;

where htmlFolder is the folder in solution which contains all required web files. In other words this is the root of web-application which will be executed from isolated storage. Because you are free to use any kind of extension like “myfile.tiff” the framework can either copy any file in your project or specific files. We decided to copy specific files only.

Here is how we do it:


protected virtual bool IsWebExtension(string ext)       {
bool res = false;
switch (ext.ToLower())
{
 case "htm":
 case "html":
 case "js":
 case "jpg":
 case "jpeg":
 case "png":
 case "css":
 res = true;
break;
}
return res;
}

If your HTML mobile app requires other file formats eg. “abc.avi”, just derive the WPWIdgetLibrary class and override this method like the following sample.

public class MyWPWidgetLibrary: WPWidgetLibrary{
protected override bool IsWebExtension(string ext){
bool res = false;
switch (ext.ToLower())
{
 case "avi":
 return true;
 //break;
}
return base.IsWebExtension(ext);
}
}

Now WPWidgetLibrary supports custom avi files.

On similar way you can implement support of any file format you want.

Announcing WpWidgetLibrary – HTML Widgets for Windows Phone


WpWidgetLibrary - HTML Widgets for Windows Phone

-Do you want to implement apps for cross-browser support?
-Do you want to have HTML5 Widget App which can be published through Windows Phone Marketplace, with ability to be updatable?
-Do you want to develop hybrid app in Windwos Phone 7?

Is so and if you are Windows Phone developer this is the right project for you.

Daenet team is proud to announce the first version of the WpWidgetLibrary – HTML Widget for Windows Phone – library for building HTML5 apps on Windows Phone mango.  The latest update for WP 7 enables the usage of HTML5 content via the Marketplace. These Applications always need to be hosted on a webserver so they are not useable offline. Even for Microsoft itself this issue was a problem without solution. With this library you can build HTML 5 Widgets app as a native WP7 app, which you can publish on the windows phone  marketplace and  easily make update for the app. Widgets for WP also tries to solve problems of running HTML page in offline mode on  Windows Phone. Library works so that on the first time installs the HTML5 content in isolated storage by simulating the real hard disk, and paths of the HTML pages, scripts, images etc.

With Widget library you can build cross –platform jQueryMobile HTML5 apps for Windows Phone, and other kind of HTML mobile apps.

More info about this open source project can be found on codeplex site http://wpwidgetlibrary.codeplex.com.

Inspiration about this library and problems handling HTML5 apps in WP7 you can read on Damir’s blog series HTML5 for Windows Phone 7.1+ – Episode I : HTML5 Support and HTML5 for Windows Phone 7.1+ – Episode II : Browsing HTML content.

Feel free to contact us for any problems you may have, or send us feedback about the library.

Pregled razvojne platforme za Windows Phone 7 II DIO


Članak objavljen na www.itpro.ba, Aprila 2011.

U prethodnom dijelu vidjeli smo da se Aplikacijski framework za Windows Phone 7 sastoji iz dva dijela, a jedan od njih je razvoj Silverlight aplikacija. Silverlight za Widnows Phone 7 baziran je na Silverlightu 3, što znači da Silverlight za Windows Phone 7 i Silverlight 3 imaju isti skup baznih klasa odnosno dijele isti BCL. Izmjene koje su urađene da se Silverlight 3 integrira na Widows Phone 7 sastojao se u modifikaciji određenih dijelova čisto da se postignu bolje performanse sistema, bolja integracija sa hradwerskim komponentima, kao i integracija sa operativnim sistemom. Pored ovog bilo je potrebno da se uskladi i skup posebnih API-a, specifičnih samo za telefone kao što su GPRS, GPS, razni akceleratori, flesh i slično.
Gledajući Silverlight 3 i novosti koje su stigle s njim, možemo kazati da je tehonlogija Out-of-browser najznačajnije proširenje. Tehnologija out-of-browser predstavlja mogućnost pokretanja Silverlight aplikacije i izvan web browsera. Ova tehnologija dosta je zainteresirala korisnike, jer pruža mogućnost da se jednom implementacijom omoguće dva načina korištenja aplikacije. Upravo out-of-browser je način na koji se Silverlight aplikacije izvršavaju na Windows Phone 7, te ne postoji Silverlight in-browser modul u Windows Phone 7.

METRO dizajn

Da bi razvijali aplikacije u Silverlightu na Windows Phone 7, nije potrebno posebno znanje osim što je već potrebno pri razvoju običnih Silverlight 3 aplikacija. Međutim, sa Windwos Phone 7 dolazi novi dizajn korisničkog interfacea popularno nazvanog METRO. METRO je skup dizajnerskih normi prilagođenih razvoju korisničkih iskustava na Windows Phone 7 platformi. Inspiracija za naziv METRO nađena je u znakovima koji se nalaze po metroima velikih gradskih četvrti. Znakovi koji se većinom predstavljaju nekom jednostavnom grafikom postavljenom u krug, sa često monohromatskim bojama savršeno se uklapa u novi Windows Phone 7.
Skup kontrola koje se koriste u razvoju Windows Phone 7 aplikacija sa Silverlightom 3, ipak se razlikuju od standardnog skupa kontrola klasičnog Silverlight 3. Neke od kontrola jednostavno ne pristaju ovom operativnom sistemu, poput ScrollBar kontrole koja ima drugčiji smisao na ovoj platformi. Pored navedene kontrole skup kontrola koje nisu podržane u Windows Phone 7 su: Open i Save dijalog, Label kontrola,Kalendar, DataGrid, DatePicker GridSPlitter , Tab i ComboBox kontrola. Obzirom da Windows Phone 7 ne podržava Page i Frame kontrolu, ovaj mobilni operativni sistem uvodi specifične verzije tih kontrola i naziva ih PhoneApplicationFrame te PhoneApplicationPage kontrole. Za svaku kontrolu koja nije podržana sa Windows Phone 7 postoje i praktični razlozi, prvenstveno zbog mobilne platforme, ili se uvode zamjenske kontrole.

Novi koncept korisničkih iskustava Pivot i Pano

METRO uvodi dva nova koncepta korisničkih iskustava i to koncept panoa i pivota. Nova korisnička iskustva daju ovom operativnom sistemu originalan dizajn i jedinstveno korisničko iskustvo. METRO dizajn predviđa da aplikaciju ne treba ograničavati na širinu i dužinu ekrana telefona, nego da se prikazuje u orginalnoj veličini koja je skoro uvijek veća od dimenzija telefona. To znači da se cijeli sadržaj prikaže u memoriji telefona, a dok se dio prikazuje shodno hardwarskim dimenzijama telefona. Pomjerajući kursor lijevo ili desno otkriva se ostatak pregleda.Pivot i pano korisnička iskustva imaju dosta sličnosti i predstavljaju najbolji izbor pri razvoiju aplikacija na Windows Phone7. Oba korisnička iskustva cijepaju podatke u misaone, fizičke i logičke cjeline te ih prikazuju pojedinačno. Na ovakav način moguće je prikazati veću količinu podataka nego uobičajeno, a koja je istovremeno podjeljena na cjeline nad kojim se mogu vršiti interakcije od strane korisnika. Oba korisnička iskustva imaju standardne gesture lijevo, desno, natrag i sl, te su po prirodi ciklični, što znači kada se dođe do kraja s lijeve ili desne strane sadržaj se započinje prikazivati od početka.

Suštinska razlika izmeđi pivota i panela je da je pivot više namijenjen prikazu tabelarnih podataka grupisanih u cjeline kojih maximalno može biti do 7. Pivot korisničko iskustvo može predstavljati aplikacijski ili podatkovni upravljač za prikaz sličnih podataka u pivotu. Primjer pivot korisničkog iskustva može biti prikaz meteroloških podataka o određenoj lokaciji na više načina, sličan prikazu na slici 2. Pivot kontrola u ovom slučaju na različite načine prikazuje podatke o vremenu za određenu lokaciju.Isto tako, pivot može prikazivati u različitim cjelinama različite podatke što sve zavisi od namjene u kojoj upotrebljamo ovu kontrolu.

Panorama predstavlja horizontalni prikaz podataka, raspoređenih u cjeline. Cjeline predstavljaju skupove kontrola s kojim se vrši interakcija s korisnikom. Panorama je većinom ograničena do 4 cjeline, i kod kojih se ne zahtjeva implementacija aplikacijskog bara sa dodatnim opcijama. Panoramom se prikazuju određene radnje koje korisnik može uraditi u jednoj aplikaciji.
Ukoliko bi sumirali prednosti i mane oba korisnička iskustva imali bi sljedeću situaciju. Pivot je više efektivan i štedi memoriju u odnosu na panoramu koja je memorijski zahtjevnija. Ukoliko korisničko iskustvo treba aplikacijski bar sa dodatnim opcijama, tada se preporuča korištenje pivota. U release verziji Developer Tools za Windows Phone ovi koncepti dolaze kao kontrole i moguće ih je koristiti u razvoju aplikacija.

Novi koncept navigacije

Silverlight 3 i Silverlight za Windows Phone 7 definišu novi koncept navigacije u odnosu na prethodne verzije. Naime, u klasičnom modelu Back dugme svojom aktivacijom resetuje cijeli sadržaj stranice, što u Silverlight 3 to nije slučaj. Silverlight 3 uvodi pojam navigacijske aplikacije u kojoj se umjesto kontrole za prikaz sadržaja implementira kontrola Frame, u koji je moguće postaviti stranicu(Page), a Back dugme izmjenjuje prikaz različitih stranica i pritom ne resetuje podatke. Na ovaj način hardwaresko dugme koje mora sadržavati svaki uređaj sa Windows Phone 7 OS sada ima smisla i potpuno se uklapa u koncept Silverlight Navigacijskog tip aplikacija.
Pri razvoju Windows Pone 7 Silverlght aplikacija na raspolaganju su nam kontrole koje imaju vrlo istančan izgleda i prilagođen Windows Phone 7, odnosno dizajnirane su po METRO dizajn standardu. Kontrole predstavljaju originalne Silverlight 3 kontrole koje imaju stil definisan po METRO normama.

Visual Studio, Expression Blend razvojni alati za Windows Phone 7

Kao što smo prethodno naglasili , razvijati Windows Phone 7 aplikacije možemo dodatnim alatom koji se integrira u Visual Studio okruženje. Pri formiranju Silverlight Windows Phone 7 aplikacija kroz Visual Studio 2010 na raspolaganju su nam 5 šablona i to: Windows Phone Application, Windows Pone List Appliction i Windows Phone Class Library, te dva nova šablona koja su se pojavila te u release verziji alata i to: Windows Phone Panorama Application i Windows Phone Pivot Application . Prva dva šablona koristimo za razvoj Silverlight aplikacija, dok treći šablon koristimo za razvoj komponenti koje se mogu iskorištavati u više od jedne Silverlight Window Phone 7 aplikacije. Zadnja dva šablona koristimo pri razvoju aplikacija koje koriste nove koncepte panoa i pivot korisničkih iskustava.
Svaki početni projekat za Windows Phone 7 aplikacije sadrži dodatne dvije reference u odnosu na klasični projekat i to: Microsoft.Phone, te Microsoft.Phone.Interop. Kako Silverlight Windows Phone 7 aplikacije ne podržavaju In-browser modul, to je i izostavljena referenca na System.Windows.Browser, preko koje je upravo omogućen ovaj modul.
Dvije su osnovne datoteke svakog početnog projekta generiranih VS2010 dizajnerom i to: App.xaml datoteka aplikacije u kojoj su deklarisani osnovni događaji aplikacije te podijeljeni resursi, stilovi, šabloni podataka i sl., te MainPage.xaml- datoteka predstavlja implementaciju osnovnog prozora aplikacije odnosno osnovna stranica aplikacije sa jednim okvirom, preko koje se dodaju dodatne stranice po potrebi, odnosno različiti pogledi (Views) podataka koji se korisniku aplikacijom želi prikazati.

Pored osnovnih xaml datoteka pri formiranju novog Windows Phone 7 Silverlight projekata nalaze se još i nekoliko početnih grafičkih biblioteka.
Novi Silverlight za Windows Phone 7 projekat možemo fomirati i iz Exprssion Blend 4 za Windows Phone, dodatak koji dolazi u paketu razvojnog alata. Na gotovo identičan način možemo formirati novi projekat. Kolaboracija između developera i dizajnera i na Windows Phone 7 je također obezbjeđena, te predstavlja nastavak Microsoftove koncepcije razvoja aplikacija sa bogatim korisničkim iskustvima.

Silverlight Demo za Windows Phone 7

Na kraju ovog članka pokazaćemo jednostavnu demo aplikaciju preko koje je moguće pregledavati Twitter račune, jednostavnog naziva TwitterAccounBrowser. U tu svrhu otvorimo VS2010 i formirajmo novu Windows Phone 7 Silverlight aplikaciju, izabirući Windows Phone Application šablon.
Na samom početku potrebno implementirati GUI aplikacije koji se sastoji od: TextBox, Button te ListBox kontrole koja će sadržavati listu statusnih poruka. Raspored kontrola naslova aplikacije prikazana je na narednoj slici. U prostor aplikacije odvucite TextBox, Button kontrolu, te ListBox kontrolu ispod. Krajnji raspored kontrola trebao bi biti sličan kao na narednoj slici.

Nakon definisanja rasporeda slijedi implementacija logike aplikacije. Da bi mogli izlistati statusne poruke određenog korisnika, potrebno je definisati posebnu klasu odnosno tip podataka koja implementira jedan Tweet ili statusnu poruku, odnosno klasu koja u sebi sadrži članove naziva, teksta te datuma objavljivanja teksta odnosno detalja.
Na narednom listingu prikazana je implementacija klase Tweet:

//Klasa za generiranje statusnih poruka twittera
public class Tweet
{
    public string NazivRacuna { get; set; }
    public string Poruka { get; set; }
    public string Avatar { get; set; }
    public string DetaljiPoruke { get; set; }
}

Kada smo definisali klasu Tweet, sada je potrebno implementirati događaj za izlistavanje poruka. Dva puta brzo kliknite na dugme prikaži, VS vas prebacuje u code-behind datoteku. Korištenje Twitter servisa je vrlo jednostavno i više informacija možete dobiti na oficijelnoj stranici twittera. Naredni listing prikazuje implementaciju događaja prikaži.

private void button1_Click(object sender, RoutedEventArgs e)
{
    WebClient twitter = new WebClient();
    twitter.DownloadStringCompleted +=new
        DownloadStringCompletedEventHandler(twitter_DownloadStringCompleted);
    twitter.DownloadStringAsync(
        new Uri("http://api.twitter.com/1/statuses/user_timeline.xml?screen_name=" + textBox1.Text));
}

Implementacija događaja sastoji se od formiranja objekta web klijenta, te prosljedjivanje upit preko web klijenta Twitter servisu. Obzirom da web servis pozivamo asihrono, potrebno se pretplatiti na događaj DownladStringCompleated da bi preuzeli sadržaj koji nam je servis vratio. U tom smislu implementacija se sastoji u tome da se preko LINQ to XML izvuku detalji koji su nam potrebni. Sljedeći listing predstavlja implementaciju popunjavanja liste sa porukama korisnika.

void  twitter_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
{
    try
    {
        XElement element = XElement.Parse(e.Result);
        listBox1.ItemsSource = element.Descendants("status").
                                Select(x=>
                                new Tweet
                                {
                                    NazivRacuna = x.Element("user").Element("screen_name").Value,
                                    Poruka = x.Element("text").Value,
                                    Avatar = x.Element("user").Element("profile_image_url").Value,
                                    DetaljiPoruke = DateFormat(x.Element("source").Value, x.Element("created_at").Value)
                                });
        PageTitle.Text = textBox1.Text;
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message);
    }
}
private string DateFormat(string source,string val)
{
    string format = "ddd MMM dd HH:mm:ss zzzz yyyy";
    DateTime dt = DateTime.ParseExact(val, format, CultureInfo.InvariantCulture);
    return dt.ToString("hh:mm d MMM") + " via " + Regex.Replace(HttpUtility.HtmlDecode(source), @"]*>", "");
}

Ovdje smo kao posebnu metodu izbacili formatiranje detalja poslane poruke, tako da nam listing izgleda kao na klasičnim twitter klijentima. Kako koristiti LINQ to SQL i šablone podataka kao i općenito WPF možete pogledato useriji blog postova o WPF i LINQ to SQL na http://www.bhrnjica.wordpress.com. Na kraju ovog jednostavnog dema potrebno je još implementirati šablon podataka listBox kontrole.
Implementacija šablona podataka list box kontrole dat je na sljedećem listingu:

<ListBox Height="518" 
         HorizontalAlignment="Left" 
         Margin="21,84,0,0" 
         Name="listBox1" 
         VerticalAlignment="Top" Width="444" >
    <ListBox.ItemTemplate>
    <DataTemplate>
        <StackPanel Orientation="Horizontal">
            <Image Source="{Binding Avatar}" 
                   Height="73" Width="73" 
                   VerticalAlignment="Top" Margin="0,10,8,0"/>
            <StackPanel Width="370">
                <TextBlock Text="{Binding NazivRacuna}" 
                           Foreground="#FF2276BB" FontSize="28" />
                <TextBlock Text="{Binding Poruka}" 
                           TextWrapping="Wrap" FontSize="24" />
                <HyperlinkButton Content="{Binding DetaljiPoruke}" 
                                 Height="30" HorizontalAlignment="Left" 
                                 VerticalAlignment="Top" FontSize="18" 
                                 Foreground="#FF999999" />
            </StackPanel>
        </StackPanel>
    </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>

Kada smo sve prethodno implementirali pokrenimo aplikaciju pritiskom na tipku F5, i dobijamo na ekranu windows Phone 7 emulator. U text box kontrolu ukucajmo račun of twittera, te kliknimo na dugme Pretraži. Nakon nekoliko trenutaka pojavljuju se poruke dotičnog korisnika. Naredna slika pokazuje naš demo u akciji.

Šablon podataka list box kontrole mogli smo i dizajnirati preko Expression Blend 4 for Windows Phone aplikacije, te sa pravim dizajnerskim alatom dizajnirati našu aplikaciju, te na taj način osjetiti svu žar u dizajniranju i implementaciji Windows Phone 7 aplikacija.
Izvorni kod za ovaj članak možete skinuti ovdje.

Zaključak

Windows Phone 7 izlazi u periodu kada su iPhone i Android na vrhuncu i usponu. Moglo bi se reći u nezgodno vrijeme, međutim novi mobilni OS ima što ponuditi i zasigurno će zauzeti svoje mjesto na tržištu, te vrlo brzo postati konkurencija i mobilni operativni sistem koji obećava. Izlaskom prve verzije Windows Phone 7 neće imati multitasking, i to će mu biti najveći nedostatak, unatoč drugim prednostima koje ima u odnosu na pomenutu konkurenciju. Ono što Windows Phone 7 stavlja u vodeće mobilne OS-ove, je zasigurno vrlo kvalitetan razvojni alat koji smo pokušali predstaviti u ovoj seriji članaka. Visual Studio 2010 kao primarni razvojni Microsoftov proizvod, predstavlja danas najsofisticiraniji i najpopularniji developerski alat, koji će ovim potezom biti obogaćen novom platformom. Razvijati aplikacije za Windows Phone 7 preko Visual Studia 2010 i Expression Blend 4 znači imati u rukama pravi alat, s kojim je moguće razvijati visokokvalitetna grafička rješenja, sa visokim performansama kako video igara tako i cijeli spektar aplikacija u Silverlightu, od korištenja Cloud servisa do bussiness aplikacija. Windows Phone kao ni jedan mobilni operativni sistem do sada pruža bezbroj mogućnosti, potpuno novi koncept upravljanja i rada sa mobilnim aplikacijama, te inovativna korisniča iskustva. Sa pivot i panel novim konceptom komunikacije korisnika i uređaja otvara se novi spektar razvoja aplikacija, te prikaza podataka. Silverlight tehnologija koja je tehnologija broj 1 korištena u Windows Phone 7 predstavlja još jedan korak naprijed ka unifikaciji i objedinjavanju razvoja aplikacija za različite platforme.

Uvod u Windows Phone 7


Predgovor

U narednih nekoliko postova biće prezentirana mobilna platforma Windows Phone 7, koja pobuđuje dosta pažnje zadnjih mjeseci. Kako ga opisuju: ovo je do sada najorginalniji mobilni operativni sistem trenutno na tržištu sa potpuno novim pristupom ne samo u odnosu na svoju prethodnu verziju Windows Mobile 6.5, nego i svih ostalih mobilnih OS-ova. U narednim postovima govorićemo o razvojnim platformama, alatima, tipovima aplikacija koje se mogu razvijati na ovom OS-u, te MVM tehnikama programiranja koje sve više postaju popularne u programiranju aplikacija u Silverlight i WPF.

Ovaj članak objavljen je u  www.itpro.ba avgusta 2010 godine.

Uvod

Slika1Windows Phone 7 je naredna verzija microsoftovog operativnog sistema za mobilne telefone koji bi trebao da bude objavljen u oktobru 2010. godine. Nakon višegodišnjeg stalnog pada popularnosti Windows Mobile serija operativnog sistema, Microsoft se ovog puta ozbiljno prihvatio posla i počeo iz početka razvijati novi operativni sistem. Marketinški popraćen od samog početka razvoja operativnog sistema slično kao pri razvoju Windows 7 OS, Microsoft je napokon našao čarobnu formulu uspjeha svog proizvoda. Prema reakcijama koje stižu Windows Phone 7 do sada dobija vrlo visoke ocjene, a sudeći po proizvođačima telefona koji su već poptpisali ugovore sa Microsoftom čini se da će ovaj mobilni operativni sistem pobuditi veliku pažnju krajnjim korisnicima. Prema službenim izvještajima proizvođači telefona koji su već poptisali ugovore da će njihovi budući modeli koristiti neke od verzija Windows Phone 7 su: ASUS, Dell,HTC, LG i Samsung.

GUI u obliku šahovske table sa multitouch mogućnostima

Slika2

Windows Phone 7 u odnosu na ranije verzije Windows mobile 6 serija iz temelja je promijenio svoj korisnički interfejs, te najviše sliči Zune HD uređajima. GUI koji je predstavljen u obliku šahovske table sa samoosvježavajućim sadržajem polja predstavljaju inovativan dizajn. Iako sa dosta fleksibilnim dizajnom Microsoft je odlučio da proizvođači mobilnih telefona poštuju stroga pravila u dizajnu, tako da svaki mobilni uređaj koji vrti Windows Phone 7 mora posjedovati centralno dugme Start za pristup glavnom prozoru, dugme Back vraćanje na prethodni sadržaj , i Search za pretraživanje interneta, kontakata i drugih sadržaja. Prepun multimedijalnim interakcijama pri radu Windows Phone 7 postaće jedinstven mobilni operativni sistem. Pretraživanje interneta moći će se vršiti i preko glasovnih naredbi koje su ugrađenje u Windows Phone Search browser koji vrši pretragu sa Bing pretraživačem. Kako malo koji OS vrti na mobilnim uređajima multimedijalni sadržaj napisan u flashu, Microsoft je na ovaj način u samom startu napravio podršku za svoj Silverlight i XNA. Windows Phone 7 će sadržavati sve komponente koje današnji mobilni operativni sistemi posjeduju: od efektivnih klijenata za socijalne mreže do multitouch interakcije nad mobilnim ekranima što predstavlja veliki napredak u odnosu na prethodne verzije.

Windows Phone 7 u 5 cjelina

Slika3

Inovativni dizajn novog operativnog sistema, pored vizualnog dojma i posebne tehnologije za iscrtavanje teksta na ekranima telefona,predstavljen je u sadržajima šahovskih polja koji se grupišu u posebne sadržajno slične cjeline (hubs). Predefinisane cjeline dijele se na:

People“ – u kojem se nalaze informacije o kontaktima, svim informacijama o socijalnim mrežama na koje je korisnik povezan i sl.

Pictures“ – cjelina koja prikuplja informacije o svim grafičkim datotekama te profilima prijatelja sa socijalnih mreža. Poput prethodnog Hub-a opcijom What’s New moguće je pregledati nedavno objavljene slike kao i prijatelja sa socijalnih mreža facebook i sl, te dijeljenje vlastitih slika na socijalnim mrežama.

Office“ – cjelina prilagođena manipulaciji sa dokumentima na mobilnim telefonima. Za to je zadužen set softwerskog paketa Office Mobile 2010 sa OneNote, Word, Excell i Outlook email klijentom.

Games“ – kako Windows Phone 7 dolazi sa XNA gejmerskom platformom postaje suvišno za reći da će se u novom microsoftovom mobilnom operativnom sistemu nalaziti set novih tehnologija za igrice kako one koje se vrte samo na WP7, tako i one koje se već vrte na Xbox-u, te multiplayer vrste igara.

Music and video“ – je cjelina namijenjena svim oblicima muzike i video distribucije, od kupovine preko interneta do sihronizacije sa jukeboxom Zune.

XNA i Silverlight platforme za razvoj WP7 aplikacija

Pored mnogih korisničkih inovacija Microsoft je za Windows Phone 7 obezbijedio već u CTP fazi razvojni alat pomoću kojeg developeri već mogu razvijati aplikacije koje će se vrtiti na WP7. IDE alat za razvoj WP7 aplikacija je Visual Studio 2010 koji je objavljen u aprilu ove godine, a u trenutku pisanja ovog članka objavljena je i beta verzija alata za Visual Studio 2010 za razvoj WP7 aplikacija. Dvije su platforme razvoja Windows Phone 7 aplikacija, pa tako i dva seta šablona za formiranje početnih projekata WP 7 aplikacija u Visual Studiu 2010 i to: XNA Game Studio 4.0, te Silverlight for Windows Phone.

Slika4

U ovoj fazi Expresson Blend dizajnerski alat za razvoj bogatih korisničkih iskustava potpuno je integriran sa razvojem WP7 aplikacija. Pored toga, MVVM patern od nekih autora je već razvijen i moguće ga je primjenjivati za razvoj WP7 aplikacija, koji sada sa Expression Blend i Visual Studio 2010 čini obezbjeđenu cjelokupnu platformu za razvoj.

slika5

Microsoft je do sada sa Windows Phone 7 otkrio sve karte u svom razvoju operativnog sistema, dok drugi poput Google svoju 3 verziju Android OS još drže skrivenu od oka javnosti. I dok je iOS 4 nedavno objavljena verzija Appleovog mobilnog OS, ne nudi skoro nikakva nova proširenja u odnosu na raniju verziju, i pri kojem još uvijek nema podrške za web sadržaje napisane u Flashu, Microsoft će i pored određenih spekulacija ipak imati ovu podršku.

Windows Phone 7 razvojna platforma


Jučer je Microsoft objavio konačnu verziju svog razvojnog alata za Windows Phone 7. Developer Tools za Windows Phone 7 mobilnih aplikacija postao je dio Visual Studio 2010 i Expression Blend 4. Offline ISO datoteka sa instalacijom ovog alata može se skinuti sa ovog linka: http://go.microsoft.com/fwlink/?LinkId=201927.

Kao što je već najavljeno zvanično Windows Phone 7 biće prezentiran na PDC2010, ovogodišnjoj Professional Developer Conference.

Prošlo ljeto proteklo je u upoznavanju sa ovom platformom čiji razvoj aplikacija jednim dijelom vezan za Silverlight 3. U seriji od nekoliko članaka pisao sam o Windows Phone 7 i razvojnoj platformi za novi BH magazin www.itpro.ba. Najava ove serije već je objavljena na stranici i možete je pogledati i prokomentarisati na http://itpro.ba/article/101/prvi-pogled-na-windows-phone-7-platformu. Serija članaka obuhvata razvoj XNA i Silverlight aplikacija na Windows Phone 7, METRO dizajn, nova korisnička iskustva pivot i panel, te popraćeno demo primjerima i tutorijalom. Nadam se da će serija ovih članaka biti zanimljiva svim čitaocima i zaljubljenicima u novu mobilnu platformu koja dolazi iz Redmonda sa ozbiljnim namjerama za uzburka već uzburkano tržište mobilnih rješenja. Biće interesantno pratiti kako će se odvijati ova tržišna borba divova Google, Apple i Microsofta.