iPhone en iPad development

by Roland Beenhakker October 21, 2010 10:47

Onlangs hebben we bij Beensoft iPhone en iPad development toegevoegd aan het dienstenpakket. Met name de iPad is een intressant 'device' daar dit vele zakelijke mogelijkheden biedt.
iPhone en iPad applicaties worden standaard geïnstalleerd via Apple's Appstore, in de Appstore zijn nu reeds meer dan 300.000 iPhone en iPad applicaties te vinden, waarvan ruim een derde gratis is.
Naast uitlevering via de Appstore (publiekelijk) is het ook mogelijk om applicaties rechtstreeks te deployen op uw eigen devices. Dit gaat via het Apple iOS Developer Enterprise Program

De mogelijkheden
Beensoft specialiseert zich op maatwerk iPhone en iPad applicaties, die danwel via de Appstore, of alleen op devices van onze klanten worden geïnstalleerd. Heeft u dus een idee voor een eigen iPhone of iPad applicatie die u wilt verkopen via de Appstore dan kan Beensoft u helpen bij het realiseren daarvan. Wilt u de iPad inzetten binnen uw organisatie dan kan dat dus ook via het enterprise programma van Apple.
Wij hebben de mogelijkheid om complete geïntegreerde oplossingen te bieden. Denk hierbij aan een iPhone/iPad applicatie die communiceert met een webservice of website die op zijn beurt weer communiceert met een webapplicatie of lokale Windows applicatie. Waar het personeel in het veld gegevens via de iPhone of iPad aanlevert kan dit lokaal op uw vestiging worden verwerkt. De mogelijkheden zijn wat dat betreft onbeperkt.

De techniek
Wij bouwen native iPhone en iPad applicaties die voldoen aan de eisen van Apple. Hiervoor gebruiken we Apple's eigen ontwikkelomgeving XCode met als ontwikkeltaal Objective-C.

Wilt u meer informatie over de mogelijkheden? Neem dan contact op met Beensoft.

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags: , , ,

Beensoft | Software

Test Driven Development

by Roland Beenhakker May 04, 2009 17:00

Bij Beensoft zijn we constant bezig met het verbeteren van de kwaliteit van onze software. Een nieuwe trend in software land is Test Driven Development, kortweg TDD. Test Driven Development is een ontwikkel methodiek gebaseerd op vooraf geschreven test-cases. TDD is dus geen methode om te testen.

Testen van geschreven software is iets wat traditioneel aan het eind van het ontwikkelproces wordt uitgevoerd. De ontwikkelaar bouwt zijn software volgens de aangeleverde specificaties en een tester (in het meest luxe geval iemand anders) toetst of de software voldoet aan de specificaties, en of deze geen fouten bevat.
Een luxe vorm van testen is 'automatisch' testen. Bij deze manier van testen, Test_automation genoemd, wordem bepaalde stukken code (een unit of code) getest op de juiste werking. Je moet dan denken aan het testen van bepaalde functies en/of procedures.

Test Driven Development stelt dat deze unit tests geschreven moeten worden voordat de daadwerkelijke code uitgewerkt wordt. Dus niet beginnen met het maken van een functie, en dan een test, maar andersom!

Maar dat kost toch meer tijd?
Gevoelsmatig zou je denken dat het schrijven van de testen meer tijd kost, die er meestal niet is. In de praktijk blijkt dat deze manier van aanpak over het algemeen tijd scheelt omdat de kwaliteit en de onderhoudbaarheid van de software beter is kost het veel minder tijd om de software te onderhouden. De onderhoudsfase is de grootste fase in het software ontwikkelproces. 

Denk aan de volgende voordelen:

  1. Door het schrijven van een test wordt tegelijk de specificaties vastgelegd. Immers een test wordt gemaakt aan de hand van een specificatie.
  2. Wie de uiteindelijke functie ook schrijft, zolang de test faalt voldoet hij niet aan de specificaties.
  3. Nieuwe specificaties, wijzigingen leiden tot het refactoren van de code. Falende testen geven aan dat dit niet correct is gedaan. (Dit kan 'oude' code zijn)
  4. Testen op unit niveau zorgen er voor dat de software meer gelaagd en minder complex wordt (Kleinere functies) , dus beter onderhoudbaar.  (Minder tijd)

Testen worden uitgevoerd op basis van beweringen (Asserts) of verwachtingen.

Een voorbeeld:
Stel we schrijven een Rekenmachine applicatie, die zal functies hebben als Optellen, aftrekken, delen etc.
Als we deze applicatie volgens de TDD methodiek maken dan doorlopen we de volgende stappen:

1. Het schrijven van een test voor Optellen
'Als we de functie twee getallen geven 3 en 2 dan moet het resultaat 5 zijn'
In C# code ziet dit er als volgt uit:
   
    [TestMethod]
   
public void Add()
    {
     
int Int1 = 2;
     
int Int2 = 3;
     
int Result = calculator.Add(Int1, Int2);
      Assert.AreEqual(
5, Result);
    }

In dit geval is de Add functie van calculator de daadwerkelijke functie.

2. Het schrijven van een test voor Delen
'
Als we deze functie twee getallen geven, 6 en 3 dan moet het resultaat 2 zijn'
'Als het tweede getal 0 is dan verwachten we een DivideByZeroException'

    [TestMethod]
    public void Divide()
    {
     
int Int1 = 6;
     
int Int2 = 3;
     
double Result = calculator.Divide(Int1, Int2);
      Assert.AreEqual(
2, Result);
    }

    [TestMethod]
    [ExpectedException(
typeof(DivideByZeroException))]
   
public void DivideByZero()
    {
     
int Int1 = 6;
     
int Int2 = 0;
     
double Result = calculator.Divide(Int1, Int2);
    }

3. Doe een test run
Aangezien we functies nog niet uitgewerkt hebben falen alle drie te testen.

4. Schrijf de daadwerkelijke code
Deze eenvoudige functies worden als volgt uitgewerkt:
    public int Add(int Int1, int Int2)
    {
     
return Int1 + Int2;
    }

   
public double Divide(int Int1, int Int2)
    {
     
return Int1 / Int2;
    }

Merkop dat de ontwikkelaar voor de Divide functie de parameters, met de slechte naamgeving Int1 en Int2, makkelijk verkeerd zou kunnen delen (Int2/Int1 ipv Int1/Int2). De test zal dan echter falen omdat dan niet het verwachte resultaat zal terugkomen. (0,5 ipv 2)

Conclusie
Test Drive Development draagt significant bij aan de kwaliteit van code. Naast het feit dat het automatisch testen fouten in een vroeg stadium onderkent bakt het feitelijk de specificaties in de software. In Microsoft Visual Studio 2008 is het testen volledig geïntegreerd.

Meer informatie in de blogpost op ons .NET Power Unleashed weblog (Engelstalig): Exploring Test Driven Development

Currently rated 4.3 by 3 people

  • Currently 4.333333/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags:

.net | Beensoft | Ontwikkelsoftware

Welkom op het weblog van Beensoft

by Roland Beenhakker November 15, 2008 19:54

Eindelijk is het dan zover, de corporate weblog van Beensoft Software Engineering is een feit. Sedert 4 jaar is Delphi Power Unleashed het technische blog van Beensoft. Deze engelstalige weblog gaat over software ontwikkeling in Delphi en C# en gaat vaak diep op de materie in. 

Met dit nieuwe weblog kunnen we nu ook bloggen over Beensoft als bedrijf en alle aspecten die daar mee te maken hebben. Zo zullen we trachten hier berichten te plaatsen, die niet al te diep op de materie in gaan, maar die wel interessant zijn voor onze klanten en bezoekers.

Ons blog draait op de open source blogengine blogengine.net. Deze open source engine draait op Microsoft IIS Server en kan Beensoft ook voor u implementeren.

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags: ,

Beensoft

Powered by BlogEngine.NET 1.4.5.0
Theme by Mads Kristensen | Modified by Mooglegiant

Welkom

Op dit weblog geven professionals binnen Beensoft hun mening over zaken die hen bezig houden en interessant kunnen zijn voor onze klanten en bezoekers. 

Hamsterkoog 3-L
1822 CD Alkmaar
Website: www.beensoft.nl
E-mail: info [at] beensoft.nl

Reageren?
In verband met veel spam is het niet mogelijk om reacties te plaatsen. Heeft u een interessante reactie om te plaatsen dan kunt u deze, bij wijze van alternatief, mailen naar Beensoft.

Over Beensoft

Beensoft bouwt oplossingen voor het Microsoft platform met Visual Studio voor .NET (C#) en Embarcadero Delphi en bouwt mobiele oplossingen voor Apple iOS voor iPhone en iPad met Apple's XCode (Objective-C).

Beensoft, altijd de beste oplossing voor het desktop, web en mobiele platform. 

Disclaimer

Beensoft heeft de inhoud van deze site met de grootst mogelijke zorg samengesteld. Desondanks aanvaardt Beensoft geen enkele aansprakelijkheid voor de inhoud daarvan, noch voor enige schade, van welke aard ook, welke het directe of indirecte gevolg is van handelen en/of nalaten en/of beslissingen die (mede) gebaseerd zijn op de inhoud van deze site.

Blog post zijn geschreven op persoonlijke titel van de auteurs. Een gegeven mening is de mening van de  auteur, en hoeft niet per se overeen te komen met de mening van Beensoft Software Engineering.