Microsoft .NET

Maak je eigen Android App

Door Rhapsody op maandag 4 juli 2011 17:04 - Reacties (14)
CategorieŽn: .NET, Dev, Views: 7.623

Zo, na een lange radiostilte weer eens een post van mij.

Kort na de introductie van de Tweakers Android App, kwam bij mij de gedachte naar boven borrelen dat veel apps tegenwoordig niet veel meer zijn dan een schilletje om een website heen.

Toegegeven, de Tweakers app (en zo zijn er wel meer) ziet er erg mooi uit, maar in principe is het niet veel meer dan een voor mobile devices geoptimaliseerde view van de website.

Apps zijn helemaal hot. Elk platform moet zijn eigen app-store hebben en erg wordt enorm veel geld mee verdiend. (Angry Birds anyone?)

Customizable app
Maar goed; al denkende kwam ik dus op het idee om een 'customizable app' te maken. Een applicatie die je op een aantal punten kunt aanpassen. Omdat ik niet zo handig ben met Java/Eclipse (geef mij maar .NET en Visual Studio) was het wel even prutsen, maar het is gelukt. Niet helemaal helaas, maar daar kom ik zo nog op terug.

Allereerst heb ik een Android applicatie gemaakt in Eclipse. Dit is eigenlijk niet meer geworden dan een Activity met een WebView. In deze WebView wordt een URL geladen. Deze URL is gedefinieerd in het settings bestand (strings.xml).

Vervolgens heb ik een .NET Windows Applicatie gemaakt die met behulp van apktool de *.apk kan (de)compileren. In de applicatie kun je een aantal dingen invoeren:
  1. Naam van de applicatie
  2. Iconen (72x72px, 48x48px en 36x36px)
  3. Url
Na het klikken op 'create' wordt de base package gedecompileerd en worden de ingevoerde waarden ingevuld. Vervolgens wordt het hele pakketje weer gecompileerd en gesigneerd.

Maar...
Binnen Android worden applicaties geidentificeerd op packagename. Het is mij helaas nog niet gelukt om deze aan te kunnen passen. Dit houdt dus helaas in dat je per telefoon maar 1 'custom app' kunt draaien. Hier heb ik nog geen oplossing voor gevonden helaas. Iemand een idee?

Screenshot
Hieronder een screenshot van de Windows applicatie om een custom app te maken;

Custom Android App Builder
Klik voor volledige grootte.

Download
Het hele pakketje kun je hier downloaden. :-)
De tool is geschreven in C# en .NET 4 full (geen client profile) is vereist.

Disclaimer
Niet aansprakelijk etc etc.
De code stelt niet zoveel voor. Omdat het een pruts-projectje was is de code ook niet netjes en niet echt voorzien van commentaar. Ik heb ook geen idee of er al zoiets bestaat, daar heb ik eerlijk gezegd nooit naar gezocht. Ik vond het gewoon leuk om eens te proberen.

Device emulator debuggen

Door Rhapsody op woensdag 7 oktober 2009 21:48 - Reacties (3)
Categorie: .NET, Views: 4.055

Zoals jullie wellicht hebben gelezen in mijn vorige post pruts ik zo af en toe wat in elkaar voor Windows Mobile m.b.v. .NET Compact Framework.
Nadat ik de Device Emulator dus aan de gang had gekregen liep ik tegen een nieuw 'probleem' aan. Het koppelen van de Visual Studio Debugger wilde niet en ik werd opgescheept met onderstaande foutmelding:

Unable to attach to the process. Attach is not enabled for this process with this debug type.

Na wat zoeken kwam ik op deze blogpost van David Kline terecht.

Het blijkt dat deze functionaliteit standaard uitgeschakeld is op de Device Emulator.
Door een Registry Key toe te voegen kun je dit inschakelen;

Hieronder de uit te voeren stappen;
  • Start de Remote Registry Editor
    Deze kun je vinden in het start menu in de map Visual Studio 2008\Visual Studio Remote Tools
  • Verbind met het gewenste apparaat. In mijn geval dus een emulator.
  • Open de volgende Registry Key: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETCompactFramework\Managed Debugger
  • Als de Managed Debugger niet bestaat, dan moet je deze even aanmaken via het contextmenu New -> key
  • Set de waarde van AttachEnabled op 1. Als deze waarde niet bestaat moet je deze even aanmaken via het contextmenu New->DWord value.
Hieronder de uiteindelijke situatie;
Registry Viewer


Edit: Deze post is uitgebreid met de informatie uit de blogpost van David Kline n.a.v. het advies van RobIII. :)

Windows 7, Virtual PC & Device Emulator

Door Rhapsody op zondag 27 september 2009 19:34 - Reacties (6)
Categorie: .NET, Views: 7.723

Recentelijk ben ik overgestapt op Windows 7. De installatie en configuratie gingen perfect. En tot op heden heb ik dan ook weinig/niets om over te klagen.

Maar bij het ontwikkelen voor Windows Mobile kwam ik erachter dat de Device Emulator binnen Visual Studio niet kan verbinden met het internet. Je krijgt dan een melding dat je Virtual PC 2007 moet installeren. Maar die werkt niet onder Windows 7 icm XP Mode.
Wel is er voor Windows 7 een nieuwe versie beschikbaar, maar dat accepteert de Device Emulator niet.

Na wat zoeken heb ik dan toch een oplossing gevonden. En omdat er hier op Tweakers wellicht nog meer mensen met hetzelfde probleem te maken hebben (of nog niet) vond ik het de moeite van het posten waard.

Een uitgebreide beschrijving van de te ondernemen stappen kun je hier vinden.

Visual Basic 10: new!

Door Rhapsody op zaterdag 6 juni 2009 20:45 - Reacties (6)
Categorie: .NET, Views: 3.031

Op het werk pruts ik met Visual Basic. De komende versie bevat weer een aantal 'verbeteringen'.

Implicit Line Continuation
Oftewel, je hoeft geen _ meer te typen om door te gaan op een nieuwe regel.
Handig, maar ik vraag me wel een beetje af of dit niet ten koste gaat van de leesbaarheid van de code. Wellicht valt dat mee omdat je dat ook kunt zien aan de indents, maar toch.


Auto-implemented Properties
Het is niet meer nodig om de complete get/set property uit te schrijven.
Visual Basic .NET:
1
2
3
4
5
6
7
8
9
10
Private _FirstName As String

Property FirstName() As String
   Get
      Return _FirstName
   End Get
   Set(ByVal value As String)
      _FirstName = value
    End Set
End Property



Hoeft dus niet meer. Onderstaande is voldoende.

Visual Basic .NET:
1
Property FirstName as String


Persoonlijk is dit wel handig. Scheelt weer wat typwerk.


Array Literals
Stukje code uit het document wat ik tegen kwam op CodePlex. (zie onderaan deze post)
Visual Basic .NET:
1
2
3
4
5
6
7
8
Dim a = {1, 2, 3} 'infers Integer()
Dim b = {1, 2, 3.5} 'infers Double()
Dim c = {"1", "2", "3"} 'infers String()
Dim d = {1, "123"} 'infers Object() (warning with Option Strict On)

Nested array literals can be used to produce multidimensional arrays:
Dim e = {{1, 2, 3}, {4, 5, 6}} 'infers Integer(,)
Dim f = {({1, 2, 3}), ({4, 5, 6})} 'infers Integer()() (jagged array)


Bovenstaande code ziet er toch erg foutgevoelig uit. Allemaal leuk en aardig dat de compiler slim dingen detecteert, maar dit is volgens mij vragen om problemen. Wat mij betreft dus geen 'verbetering'.

Lambdas
Hier kan ik helaas niet zoveel over zeggen. Ik gebruik het niet en zie er eerlijk gezegd ook het nut niet van in. Wellicht dat iemand mij dit kan verduidelijken?
Zelf vind ik het warrig om functies in functies te plaatsen.

Hier kun je een document vinden met uitgebreide uitleg over de verbeteringen.

En nu lekker kijken naar het Nederlands elftal.

.NET 4.0 met Windows 7

Door Rhapsody op vrijdag 5 juni 2009 17:17 - Reacties (4)
Categorie: .NET, Views: 2.996

Nou laten we meteen maar wat nuttigs schrijven.

Zoals de meesten wel zullen weten zijn er een aantal nieuwe mogelijkheden bij Windows 7. De taakbalk is onder handen genomen en bevat nu veel meer functionaliteit.

Deze functionaliteit is ook beschikbaar vanuit .NET.
Op het weblog van Sergey Zwezdin kwam ik een aantal handige voorbeelden met uitleg tegen;

Part 1 - Progress Bar
Part 2 - ThumbButtons
Part 3 - OverlayIcon
Part 4 - Custom OverlayIcon
Part 5 - CustomWindowsManager
Part 6 - AppId
Part 7 - ThumbnailClip
Part 8 - IconicThumbnail
Part 9 - PeekBitmap
Part 10 - JumpLists

Helaas heb ik het zelf nog niet geprobeerd. Ik heb de beta van Visual Studio 2010 draaien in een Virtual PC met Windows 7, maar daarop is Visual Studio niet vooruit te branden.