Links

Windows Phone 8 fejlesztés

In Új kínálat/stratégia on 2012. november 11. vasárnap by Nacsa Sándor Címkézve: , , , , , , , , , , , , , , , , , , , , , , , , , , ,

A Build 2012 (okt. 30 – nov. 2) Windows Phone és Windows Phone Apps vonatkozású előadásai a következők voltak:

image
azaz 18 (1-18) kifejezetten csak a telefonra vonatkozó 1-1 órás előadás és 8 (A-H) szélesebb vonatkozású, szintén 1-1 órás előadás. Ezek videófelvételei megtekinthetők jelen bejegyzés végén található, ugyanilyen struktúrájú linkgyüjtemény segítségével. 

Aki a tartalmi összefoglalókra is kiváncsi azoknak egy kattintható PDF-et is készítettem, amely ráadásul a hozzátartozó PowerPoint diákra is tartalmaz linkeket (néhány kivételtől eltekintve mindegyikre van ilyen). Aki ezt jóval meghaladó, gyakorlatilag minden egyéb megjelent információt magában foglaló tájékoztatót szeretne látni, annak trendkövető blogom Windows Phone 8: getting much closer to a unified development platform with Windows 8 [Nov 8, 2012] bejegyzését tudom ajánlani, melynek címe kifejezi azon központi megállapításomat, hogy a Windows Phone 8 fejlesztési platform az eddigieknél sokkal közelebb került a Windows 8-éhoz, a bejegyzés egyes szekciói pedig ezt taglalják a következő felosztásban:

  1. Windows Phone 8 development platform overview, azaz általános áttekintés 
  2. Native C++ and DirectX brought to the platform, vagyis natív C++ és DirectX 
  3. Partial WinRT support with phone extensions but no WinJS support , tehát a WinRT részleges támogatása, de a WinJS teljes hiánya
  4. Managed (.NET) code with XAML and a number of enhancements, azaz a XAML-lel együttes menedzselt (.NET) kód és számos ehhez kapcsolódó bővítmény
    – Core information, tehát alapinformációk
    – XAML related information, vagyis XAML vonatkozású információk
    – Code sharing between Windows platforms, azaz a Windows platformok közötti közös kód
    – Code sharing with 3d party frameworks, tehát közös kód más keretrendszerek révén
    – Cloud backends made super-easy: Windows Azure Mobile Services, vagyis felhő alapú back-end-ek készítése szuperkönnyű módon: Windows Azure Mobile Services
  5. Web based, HTML5/JavaScript et al, client applications, azaz web alapú, HTML5/JavaScript és társai segítségével készíthető kliens alkalmazások

Már a fentiek is önmagukban jó áttekintését nyújtják az újdonságoknak. Akiknek ez kevés, de incs sokórányi idejük arra, hogy az alaposabb részletekkel megismerkedjenek, azoknak az alábbi összefoglalót tudom ajánlani:

A Microsoft valahogy így ábrázolta a két fejlesztési platform közösségét a BUILD-en:

másrészről azt hangsúlyozta, hogy a Windows Phone 7.x-hez képesti platformfejlesztésben a fejlesztői kérések maximális kielégítésére helyezte a hangsúlyt:


olyannyira, hogy állítása szerint a kérések több, mint 90%-át kielégítette.

Mindebből a következőket fejtette ki a cég egy külön, elég kedvező terjedelmű blogbejegyzésben:

C++ … Introducing Direct3D app … New and expansive Windows 8 aligned APIs … XAML app improvements … XAML control improvements (LongListSelector control, Map control, WebBrowser control, Control performance) Windows Runtime Components … C++ code reuse … XAML and Direct3D (<DrawingSurface/>, <DrawingSurfaceBackgroundGrid/>) … Text improvements … New gesture support … Multi-res support … Networking improvements … App performance (Compile in the cloud, Startup splash screen, Binary XAML, Off-thread input) … Camera and Lenses … Wallet … In-app purchasing … App-to-app communication … Lock notifications, wallpaper and new Live Tile support … Speech (Voice commands, APIs for in-app dialog, Text-to-speech) … VoIP platform … Enterprise app support … Contacts and calendar … Fast application resume … Location aware apps

ld. Windows Phone 8 developer platform highlights [Kevin Gallo on Windows Phone Developer Blog, Nov 5, 2012]

A natív C++ és DirectX platformot így ábrázolja a Microsoft:

Ahhez képest a XAML és menedzselt kódú platformtámogatás így néz ki:

Itt érdemes felfigyelni arra, hogy XAML és menedzselt kódú programok használni tudnak Direct3D és C++ natív kódú “betéteket”, különösképpen hangsúlyozzák azt, hogy a korábban elkészült C++ programok újrafelhasználása mennyire előnyös. Gondoljuk meg, hogy valóban milyen komoly felhalmozott szoftver vagyonról van itt szó. Egyébként a BUILD-ről hazatérő Novák Istvánnak már nagyon jó tapasztalatai vannak ezzel.

A menedzselt kóddal kapcsolatban óriási újdonság a felhőben történő fordítás (Compiler in the Cloud). Nem teljes fordításról van szó, hanem csak a kód érdemi előfordításáról, azaz a bináris kód még tartalmaz bizonyos nem futtatható részeket. Ennek kettős előnye van: egyrészről sokkal gyorsabban elindulnak a programok, másrészről pedig jóval kevésbé kerül igénybevételre a telep.

Számomra meglepő, hogy egy harmadik előny még szinte megemlítésre sem kerül, nevezetesen az, hogy ennek segítségével történik a meglévő kb. 120 ezer (valójában az október 24-ig publikált 126.530-ból még élő 113.170) Windows Phone 7.x alkalmazás automatikus átfordítása a Windows Phone 8 környezetre. Ez pedig sokkal hangsúlyosabban jelent meg a június 20-i Windows Phone 8 előbejelentésben, jómagam pedig még annál is nagyobb hangsúlyt helyeztem erre Windows Phone 8 software architecture vs. that of Windows Phone 7, 7.5 and the upcoming 7.8 [June 22, 2012] c. bejegyzésemben. Most egyedül az Announcing the release of the .NET Framework for Windows Phone 8 [.NET Framework Blog, Oct 30, 2012] blogbejegyzésben szerepel a következő:

Windows Phone 8 is designed to run existing Windows Phone apps unchanged. We’ve put in significant effort into maintaining application compatibility to ensure that your Windows Phone 7.1 app continues to run on the new Windows Phone 8 devices. It is recommended that you test your 7.1 app using the Windows Phone 8 device or emulator to ensure that you are getting a compatible experience.

A valós tapasztalatok is azt mutatják, hogy a dolog működik, egészen odáig menően, hogy az első Windows Phone 8 eszközökön először még nem futott néhány a Windows Phone Store-ban (a korábbi Windows Phone Marketplace-ben) már régóta meglévő alkalmazás, amitt azzal magyaráztak, hogy ezek felhő általi konvertálása némi időbe telik (sajnos a forrást, ahol ezt olvastam, nem tudtam már megtalálni).

Mindezt azért is taglaltam ennyire részletesen, mert—beszélve mással is erről—úgy tűnik ezt tudatosan hallgatja el most a Microsoft, mivel a későbbiekben ez még inkább döntő lehet az új Windows Phone 8 / Windows 8/RT élményrendszer széleskörű piaci “átnyomása” szempontjából, hiszen ezen a technológiai alapon még az eddigieknél is közelebb tudnák hozni a két platformot egymáshoz. Ez pedig azzal a jelentős előnnyel is járna, hogy az alkalmazásokkal már igencsak felruházott Windows Phone platformról ezek az alkalmazok a Windows 8/RT is “automatikusan” átkerülhetnének. NO MAJD MEGLÁTJUK!

XAML szempontból azt tartom most kiemelendőnek, hogy egyrészt egyértelműen kiemelek a különböző XAML változatok különbözőségét, megmagyarázva, hogy ez tulajdonképpen “természetes”. Másrészt a legújabb Blend-et hangsúlyozzák, mint egységes eszközt mindehhez, és amit jórészben beépítettek a Visual Studio 2012-be, egészen az Express változattól kezdődően. Ezzel—véleményük szerint—viszonylag könnyen kezelhető válnak a XAML különbségek.

A fejlesztési platform különbségek ennél teljesebb megoldását jelenti ugyanakkor a Portable Class Library használata (ami egyébként csak Visual Studio 2012 Pro-tól felfele tehető meg), valamint az MVVM (Model View ViewModel) architektúrális minta alkalmazása, amivel megoszthatóvá válik a viewmodel, potenciálisan akár a model is. Lényeges, hogy a Portable Class Library a Windows Runtime API-kat (amelyek egyéként menedzselt kódból is használhatók) nem támogatja.

Menedzselt kódok esetében hangsúlyozzák, hogy a Xamarin eszközeinek segítségével egészen az Android és iOS kliensekig terjedően lehet közös kódot kialakítani, akár felhő háttérrel, kihasználva az Azure service bus lehetőséget is. Itt figyelemre méltónak tartom a Create Cross-platform Apps using Portable Class Libraries [BUILD session, Nov 2, 2012] PPTX előadás záró összegzését:

[00:44:38] In review: what we learned

How to create cross-platform apps that take full advantage of platform-specific features while maximizing code reuse for the rest of your app

  • Share code across platforms with Portable Class Libraries
  • Use the MVVM pattern to write cross-platform apps
  • Put models and view models in portable libraries
  • Create platform-specific views
  • Create portable abstractions for non-portable functionality
  • Implement the abstractions for each platform you target
  • Consider using a service locator or IoC container to hook up implementations

How much of a reduction actually is that? … People generally report from 60% at the low end to 95% at the high-end for the code that can be be shared between the platforms. … Using these patterns you can definitely reduce the work …

http://tinyurl.com/Build2012PCL

Végezetül tudnunk kell, hogy számtalan harmadik féltől származó keretrendszer támogatja még az eddigieknél is alaposabban a platformkülönbségek áthidalását. A Windows Phone 8: getting much closer to a unified development platform with Windows 8 [Nov 8, 2012] bejegyzésben ezt szekciónkénti bontásban szerepeltetem. Itt azonban erre nincsen szükség, mivel—igen szerencsés módon—egyetlen bejegyzésben szerepelteti az összeset a Microsoft: New tools for Windows Phone 8 save developers time and money [Windows Phone Developer Blog, Oct 30, 2012].

A Windows Azure Mobile Services-ről itt nem érdemes külön írnom, mivel korábban már részletesen beszámoltam róla: ld. Az eredeti .NET jövőkép első megvalósulása: .NET Framework 4.5 … Windows Azure Mobile Services Windows 8/RT, Windows Phone, iOS és Android kliensekkel (2012. szept 16.). Megjegyzem, hogy a Xamarin lehetőségről is volt már korábban itt beszámoló: ld. iOS, Android és Windows Phone keresztfejlesztés .NET-ben (2012. szeptember 21.).

Ha ezután valakinek egyes részletek felkeltették az érdeklődését, akkor az említett trendkövető bejegyzésben szvsz könnyen rá tud keresni. Jó ismerkedést!


A Build 2012 (okt. 30 – nov. 2) Windows Phone


és Windows Phone Apps vonatkozású előadásainak linkjei:

1. Windows Phone 8: Application Model

2. Windows Phone 8: Native C/C++ Game Development

A. Building data centric applications for web, desktop and mobile with Entity Framework 5.

3. Windows Phone 8: XAML Application Development

B. How to Leverage your Code across WP8 and Windows 8

C. Designing awesome XAML apps in Visual Studio and Blend for Windows 8 and Windows Phone 8

D. Building Cross-Device Xbox Games

4. Windows Phone 8: In App Purchase & Developer Center

       

5. Windows Phone 8: Critical Developer Practices for Delivering Outstanding Apps
6. Windows Phone 8: Networking, Bluetooth, and NFC Proximity for Developers

7. Windows Phone 8: Making Money with Your Application on Windows Phone

E. Developing Mobile Solutions with Windows Azure Part I

8. Windows Phone 8: HTML5/IE10 for Developers

F. Developing Mobile Solutions with Windows Azure Part II

9. Windows Phone 8: Maps, Location, and Background Execution for Developers
10. Windows Phone 8: Performance & Optimization for Developers
11. Windows Phone 8: Photo and Lens Apps
12. Windows Phone 8: Tiles, Lock Screen, and Notifications

13. Windows Phone 8: Using C++ in your Applications

14. Windows Phone 8: Using the Speech API

G. Deep Dive into the Kernel of .NET on Windows Phone 8

15. Windows Phone 8: Wallet and Deals for Developers

16. Windows Phone 8: App to App Communication

H. Create Cross-platform Apps using Portable Class Libraries

17. Windows Phone 8: Enterprise Development

18. Nokia Music Windows Phone 8 App-to-App APIs

Vélemény, hozzászólás?

Adatok megadása vagy bejelentkezés valamelyik ikonnal:

WordPress.com Logo

Hozzászólhat a WordPress.com felhasználói fiók használatával. Kilépés / Módosítás )

Twitter kép

Hozzászólhat a Twitter felhasználói fiók használatával. Kilépés / Módosítás )

Facebook kép

Hozzászólhat a Facebook felhasználói fiók használatával. Kilépés / Módosítás )

Google+ kép

Hozzászólhat a Google+ felhasználói fiók használatával. Kilépés / Módosítás )

Kapcsolódás: %s

%d blogger ezt kedveli: