Een app ontwikkelen; welke startblokken zijn er?

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • TheNephilim
  • Registratie: September 2005
  • Laatst online: 02-07 11:36
Natuurlijk kan ik uren spenderen aan het opzoeken van allerlei manieren om cross platform apps te maken, maar gezien de ervaring hier moet dat niet nodig zijn. Daarnaast ben ik niet geïnteresseerd in alle programma's die maar zo wat genereren en ook niet in tutorials.

Dus vandaar, een topic om eens te kijken welke (spreekwoordelijke) 'startblokken' er zijn voor het ontwikkelen van apps. Natuurlijk voor Android, iOS en Windows Phone. Die laatste is het minst belangrijk, maar toch is het wel handig om te weten wat de mogelijkheden zijn.

Er zijn zoveel verschillende manieren, maar welke is nu de beste? Native ontwikkelen per platform, of één keer ontwikkelen en compilen naar de verschillende platformen? Ook ben ik benieuwd of het de moeite is om (wrapped) HTML5 apps te ontwikkelen, of dat een 'echte' app veel beter is.

Kortom; welke methoden moet ik overwegen zou ik een app willen ontwikkelen?

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 04-07 15:03

NMe

Quia Ego Sic Dico.

Welke methode het beste is is afhankelijk van je eigen wensen en dus zul je per definitie zélf dat onderzoek moeten doen en die uren moeten spenderen. Je wéét dat je native kan ontwikkelen en je wéét blijkbaar ook dat je met (bijvoorbeeld) PhoneGap HTML5-apps kan maken die cross-platform werken. Welke vraag wil je precies dat wij beantwoorden? De voor- en nadelen overwegen kan niemand beter dan jijzelf op basis van de app die je wil maken...

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • Harmsen
  • Registratie: November 2000
  • Laatst online: 04-07 06:28
Het hangt heel erg af van de situatie/context vind ik zelf. Er is niet 1 algemene manier die het beste aansluit bij elke app.

Bijvoorbeeld een app die alleen door een bedrijf gebruik wordt op bedrijfstelefoons. Als dit allemaal Android telefoons zijn, dan hoef je alleen maar een Android app te ontwikkelen.

Een game kan je verder weer beter native doen vanwege de beter performance.

Wat voor app wil je gaan maken? Misschien dat er dan mensen zijn met ervaring in cross platform ontwikkelen hier die je kunnen helpen :)

edit:
Deels ook beantwoord door NMe :)

[ Voor 4% gewijzigd door Harmsen op 28-04-2014 15:37 ]

What a fine day for Science! | Specs


Acties:
  • 0 Henk 'm!

  • TheNephilim
  • Registratie: September 2005
  • Laatst online: 02-07 11:36
NMe schreef op maandag 28 april 2014 @ 15:34:
Welke methode het beste is is afhankelijk van je eigen wensen en dus zul je per definitie zélf dat onderzoek moeten doen en die uren moeten spenderen. Je wéét dat je native kan ontwikkelen en je wéét blijkbaar ook dat je met (bijvoorbeeld) PhoneGap HTML5-apps kan maken die cross-platform werken. Welke vraag wil je precies dat wij beantwoorden? De voor- en nadelen overwegen kan niemand beter dan jijzelf op basis van de app die je wil maken...
PhoneGap is in ieder geval iets wat ik even ga bekijken. Dat was ook meer de insteek, even de meest populaire en bewezen oplossingen in beeld krijgen. Dus geen details of wat nou echt beter performed, maar de mogelijkheden.

Maar goed, anders dan de HTML5 apps in PhoneGap zul je (begrijp ik) dus al snel native apps moeten gaan maken. Of dat de moeite is zal moeten blijken.
Harmsen schreef op maandag 28 april 2014 @ 15:36:
Het hangt heel erg af van de situatie/context vind ik zelf. Er is niet 1 algemene manier die het beste aansluit bij elke app.

Bijvoorbeeld een app die alleen door een bedrijf gebruik wordt op bedrijfstelefoons. Als dit allemaal Android telefoons zijn, dan hoef je alleen maar een Android app te ontwikkelen.

Een game kan je verder weer beter native doen vanwege de beter performance.

Wat voor app wil je gaan maken? Misschien dat er dan mensen zijn met ervaring in cross platform ontwikkelen hier die je kunnen helpen :)

edit:
Deels ook beantwoord door NMe :)
Niet dat ik zozeer een idee heb over de app die ik wil maken, ik wilde vooral even weten welke mogelijkheden er zijn. Maar naast native kun je dus met iets als PhoneGap aan de slag, dat is me nu duidelijk! :D

Acties:
  • 0 Henk 'm!

  • Waster
  • Registratie: September 2006
  • Laatst online: 14-04 17:49
Heb je al naar Xamarin gekeken? Dat is ook de moeite waard om even te bekijken.

Acties:
  • 0 Henk 'm!

  • alex3305
  • Registratie: Januari 2004
  • Laatst online: 04-07 20:56
PhoneGap vind ik persoonlijk geen serieus platform om apps in te ontwikkelen. Het is vooralsnog traag bij zelfs de meest simpele apps en het is nou niet echt dat je er een professionele uitstraling van krijgt. Sterker nog soms zien leken nog wel dat de app 'raar' is door bijvoorbeeld gebrek aan animaties of langzame toestanden.

Xamarin vind ik een serieuzere oplossing, maar ook niet je-van-het. Je moet daarvoor nog steeds een Mac hebben om voor iOS devices te kunnen ontwikkelen, dus voor Windows-only gaat die vlieger niet helemaal op. Verder houd ik niet zo van compatiblity layers, maar goed dat is persoonlijk.

Verder zou ik gewoon native ontwikkelen. Alhoewel je code in een andere taal is geschreven kan deze wel erg overeenkomstig zijn, wanneer de architectuur van een app goed en degelijk in elkaar steekt. Hierbij krijg je de beste performance, kun je het makkelijkste van alle (nieuwe) api's gebruikmaken en denk je (denk ik) beter na over hoe een app nu werkt.

Acties:
  • 0 Henk 'm!

  • Barryvdh
  • Registratie: Juni 2003
  • Laatst online: 04-07 18:20
alex3305 schreef op maandag 28 april 2014 @ 16:49:
PhoneGap vind ik persoonlijk geen serieus platform om apps in te ontwikkelen. Het is vooralsnog traag bij zelfs de meest simpele apps en het is nou niet echt dat je er een professionele uitstraling van krijgt. Sterker nog soms zien leken nog wel dat de app 'raar' is door bijvoorbeeld gebrek aan animaties of langzame toestanden.
Dat is dus afhankelijk van je doelgroep en eisen he. Ik heb meerdere Phonegap/Cordova apps gemaakt en die werken prima. Maar dat zijn apps die voornamelijk op de iPad draaien en niet veel meer doen dan rapportages, offline syncen, foto's/video's maken ed.
Dat zijn interne apps, dus die hoeven geen fancy animaties te hebben, maar gewoon duidelijk werken, en dat gaat prima met Cordova (bijvoorbeeld met Angular)

Acties:
  • 0 Henk 'm!

  • Tieske[82]
  • Registratie: Juli 2001
  • Laatst online: 09-02 22:11
Ik zou ook zeker Titanium Appcelerator (+Alloy) eens bekijken. Daarmee maak je grote delen cross-platform, maar platform-specifieke elementen (zoals de Action Bar in Android, Navigation Window in iOS etc.) kun je wel nog benaderen. De taal is javascript wat erg laagdrempelig is, de layout bouw je op uit html/css-achtige elementen. Voordeel is dat dit - ik denk net als Xamarin - een uniforme toegang biedt tot de mogelijkheden van een native platform en een hogere performance haalt dan een Phonegap-app.

Acties:
  • 0 Henk 'm!

  • BikkelZ
  • Registratie: Januari 2000
  • Laatst online: 21-02 08:50

BikkelZ

CMD+Z

Serieuze apps die echt lekker aanvoelen qua snelheid en platformherkenbaarheid doe je native of in Xamarin. Xamarin heeft een belachelijke licentiestructuur waarbij je echt één developer fulltime het hele jaar door op één platform moet hebben werken om het er een beetje uit te halen aangezien ze $1000 per platform per developer per jaar vragen. Dus dan ziet native er niet eens zo onaantrekkelijk uit als je veel van je logica in een webservice hebt zitten en een groot deel van je code voor de GUI gebruikt.

Alle JS based tussenoplossingen zijn precies dat: tussenoplossingen. Sommige bedrijven hebben lage eisen en dan kan het gewoon. Waarom ze dan niet gewoon een mobiele website gebruiken is mij onduidelijk maar vaak is het gewoon hebben van een app een doel op zich. Ook kunnen sommige frameworks wel telefoon specifieke zaken aanspreken die je met een website niet kunt doen, maar het bewerken van foto's e.d. is natuurlijk een stuk beperkter vergeleken met native of Xamarin.

iOS developer


Acties:
  • 0 Henk 'm!

  • InZane
  • Registratie: Oktober 2000
  • Laatst online: 12:09
Tieske\[82] schreef op maandag 28 april 2014 @ 17:20:
Ik zou ook zeker Titanium Appcelerator (+Alloy) eens bekijken. Daarmee maak je grote delen cross-platform, maar platform-specifieke elementen (zoals de Action Bar in Android, Navigation Window in iOS etc.) kun je wel nog benaderen. De taal is javascript wat erg laagdrempelig is, de layout bouw je op uit html/css-achtige elementen. Voordeel is dat dit - ik denk net als Xamarin - een uniforme toegang biedt tot de mogelijkheden van een native platform en een hogere performance haalt dan een Phonegap-app.
Mijn ervaringen met Titanium + Alloy zijn helaas niet zo positief. De IDE is/was(?) niet zo best. Wat heb ik zitten mopperen op al die glitches, aanpassingen die alleen na een 'clean' werden meegenomen, breakpoints die soms wel en soms niet werden geraakt, enz..

Verder vind ik de performance ver achterblijven ten opzichte van native. Mijn ervaring is dat de apps zelfs behoorlijk laggy zijn, vooral op Android devices.

Andere dingetjes was bestandsgrootte van de apps. Zo had ik een relatief simpele app waar Titanium een .apk van bijna 20MB van bakte. Het native nabouwen resulteerde in een app van slechts 92kB.

[ Voor 3% gewijzigd door InZane op 29-04-2014 09:06 ]


Acties:
  • 0 Henk 'm!

  • TheNephilim
  • Registratie: September 2005
  • Laatst online: 02-07 11:36
Xamarin zal hem dan niet worden, gezien allereerst de licentiekosten en daarnaast Mac OSX only. We zitten hier gewoon op Windows (7), dus dat word hem niet.

PhoneGap is dus niet bijster snel en maakt een snelle start mogelijk, maar de app word al snel log en sloom begrijp ik. Heb gisteren alle tools eens proberen te installeren, maar dat is ook nog niet zo'n succes. Je moet zoveel verschillende dingen installeren, dat ik er niet meer uitkomen welke foutmelding met wat te maken heeft. Java en Ant heb ik geregeld, evenals Cordova en de Android SDK. Ik dacht, even kijken wat PhoneGap dan inhoud.

Maar bedankt mensen, ik begrijp dat native toch zeker een voorkeur heeft. Phonegap is wel een alternatief, maar dat moet ik nog eens bekijken.

Nog één ding; als je native apps wil ontwikkelen voor Android, iOS en Windows Phone. In welke programmeertalen moet je dan aan de slag?

Acties:
  • 0 Henk 'm!

Anoniem: 333139

TheNephilim schreef op dinsdag 29 april 2014 @ 09:40:
Nog één ding; als je native apps wil ontwikkelen voor Android, iOS en Windows Phone. In welke programmeertalen moet je dan aan de slag?
Android = Java, iOS = Objective-C en Windows Phone = C#. Wat Android betreft zou het ook met C en C++ kunnen maar dit wordt doorgaans afgeraden: http://developer.android.com/tools/sdk/ndk/index.html

[ Voor 18% gewijzigd door Anoniem: 333139 op 29-04-2014 09:51 ]


Acties:
  • 0 Henk 'm!

  • ThunderNet
  • Registratie: Juni 2004
  • Laatst online: 04-07 16:53

ThunderNet

Flits!

TheNephilim schreef op dinsdag 29 april 2014 @ 09:40:
Xamarin zal hem dan niet worden, gezien allereerst de licentiekosten en daarnaast Mac OSX only. We zitten hier gewoon op Windows (7), dus dat word hem niet.
Xamarin draait gewoon onder Windows, daarnaast kun je natuurlijk ook nog altijd OSX in een VM draaien, of in een dual-boot config.

Heb je liever vooraf, of achteraf, dat ik zeg dat ik geen flauw idee heb wat ik doe?


Acties:
  • 0 Henk 'm!

  • BikkelZ
  • Registratie: Januari 2000
  • Laatst online: 21-02 08:50

BikkelZ

CMD+Z

TheNephilim schreef op dinsdag 29 april 2014 @ 09:40:
Xamarin zal hem dan niet worden, gezien allereerst de licentiekosten en daarnaast Mac OSX only. We zitten hier gewoon op Windows (7), dus dat word hem niet.
Je moet minimaal één (virtuele) Mac hebben. Gewoon een oude Core 2 Duo Mac Mini van marktplaats is in weze al prima. Verder alles onder Visual Studio ontwikkelen, als je dat wil. Maar goed die licentiekosten daar word ik dus ook niet goed van.

Native ontwikkelen doet wel even pijn in het begin maar je moet niet denken dat als je echt de kracht van het platform wil gebruiken je er onder uit komt dat je met de SDK's inclusief alle rariteiten moet gaan werken, ook met Xamarin.

Objective-C ziet er vreemd uit in het begin en je kúnt er rare dingen mee doen maar je went er vrij snel aan. Werken met de standaard libraries is andere koek. Ik zou eens goed rondneuzen voor Cocoapods zoals Mantle, AFNetworking en andere veel gebruikte libs.

iOS developer


Acties:
  • 0 Henk 'm!

  • TheNephilim
  • Registratie: September 2005
  • Laatst online: 02-07 11:36
Pfoe, misschien eerst maar eens één mini-voor-de-gein-native-app ontwikkelen voor alleen Android, om eens te kijken hoe dat allemaal werkt :o. Dan nog tijd vinden om dat in m'n vrije tijd een beetje op te kunnen pakken. Ik heb er zakelijk wel wat aan, maar dat kost zoveel tijd en dat past niet naast de andere opdrachten denk ik.

Er zijn in ieder geval weer genoeg termen bijgekomen, waar ik eens op moet Googelen! 8)

Acties:
  • 0 Henk 'm!

  • sopsop
  • Registratie: Januari 2002
  • Laatst online: 03-07 07:31

sopsop

[v] [;,,;] [v]

Grappig. Wij zijn hier binnen het bedrijf ook aan het kijken naar welke multi-platform oplossing wij willen gaan gebruiken voor corporate apps. Ondersteuning moet zijn: iOs / Windows Phone / Android.

De shortlist bestaat nu uit Cordova en Xamarin. We zijn er ook echt nog niet uit. Technisch gezien neigen we wel naar Xamarin, maar de learning curve is ontzettend steil, terwijl we de apps die we nu voor ogen hebben prima in Cordova kunnen maken, want relatief veel simpeler is.

Die Mac heb je trouwens altijd nodig om een app voor iOs te kunnen builden. Welke oplossing je ook kiest.

Ga je trouwens voor een corporate oplossing dan is ook de enrollment iets waar je goed naar moet kijken, dat je bijvoorbeeld geen corporate data kunt bemachtigen door alleen een apktje op een willekeurige telefoon te zetten en je wilt ook niet iedere keer de gebruiker lastig vallen met een wachtwoord/pincode.

Acties:
  • 0 Henk 'm!

  • PeterSelie
  • Registratie: December 2002
  • Laatst online: 04-07 11:59
Bij de keuze voor Cordova is het vooral erg belangrijk om voor een goed framework te kiezen. jQuery is vrij log en zwaar, wat je zeker op de wat oudere Android devices gaat merken. jQtouch is voor de jQuery-georiënteerde programmeurs al een veel betere keuze.

Wij zijn intern momenteel bezig met Cordova (PhoneGap) en maken gebruik van ionic in combinatie met AngularJS. Een erg prettige combinatie, alleen een compleet andere benadering van bouwen. Waar je met jQuery heel erg gewend bent om alle wijzigingen middels DOM manipulatie uit te voeren vlieg je met AngularJS een heel andere route aan.

Klopt, ingewikkelde apps kunnen wat slomer aanvoelen op Cordova en een game moet je al helemaal niet aan denken, maar échte applicaties kunnen prima. Animeren van schermen e.d. kan in principe prima middels CSS, de truc zit hem in het weten hoe. Hierbij is hardware acceleratie het toverwoord.

Acties:
  • 0 Henk 'm!

  • BikkelZ
  • Registratie: Januari 2000
  • Laatst online: 21-02 08:50

BikkelZ

CMD+Z

TheNephilim schreef op woensdag 30 april 2014 @ 10:22:
Pfoe, misschien eerst maar eens één mini-voor-de-gein-native-app ontwikkelen voor alleen Android, om eens te kijken hoe dat allemaal werkt :o. Dan nog tijd vinden om dat in m'n vrije tijd een beetje op te kunnen pakken. Ik heb er zakelijk wel wat aan, maar dat kost zoveel tijd en dat past niet naast de andere opdrachten denk ik.

Er zijn in ieder geval weer genoeg termen bijgekomen, waar ik eens op moet Googelen! 8)
Ik denk dat als je je eerste Android 4.x app af hebt je wel even genoeg te doen hebt gehad. Android goed doen is echt wel een uitdaging.
sopsop schreef op woensdag 30 april 2014 @ 13:53:
Grappig. Wij zijn hier binnen het bedrijf ook aan het kijken naar welke multi-platform oplossing wij willen gaan gebruiken voor corporate apps. Ondersteuning moet zijn: iOs / Windows Phone / Android.

De shortlist bestaat nu uit Cordova en Xamarin. We zijn er ook echt nog niet uit. Technisch gezien neigen we wel naar Xamarin, maar de learning curve is ontzettend steil, terwijl we de apps die we nu voor ogen hebben prima in Cordova kunnen maken, want relatief veel simpeler is.

Die Mac heb je trouwens altijd nodig om een app voor iOs te kunnen builden. Welke oplossing je ook kiest.

Ga je trouwens voor een corporate oplossing dan is ook de enrollment iets waar je goed naar moet kijken, dat je bijvoorbeeld geen corporate data kunt bemachtigen door alleen een apktje op een willekeurige telefoon te zetten en je wilt ook niet iedere keer de gebruiker lastig vallen met een wachtwoord/pincode.
Het grote nadeel van Cordova is dus wel dat als je een limiet bereikt en je wil méér dat je dan helemaal opnieuw kunt beginnen. En als Cordova op alle platforms het zelfde werkt betekent dat eigenlijk dat alle verschillen gewoon weggemasseerd zijn door de unieke features te verwijderen, óf dat je toch met leaky abstractions te maken krijgt.

Als je zeker weet dat je klanten niet naar Facebook Paper achtige animaties gaan vragen of andere fancy dingen dan kan het misschien wel. Veel mensen willen gewoon een formuliertje hebben met wat basiszaken zoals locatie van de telefoon. Maar dan ga je je ook weer afvragen of je niet beter gewoon een mobiele website kunt maken.

iOS developer


Acties:
  • 0 Henk 'm!

  • alienfruit
  • Registratie: Maart 2003
  • Nu online

alienfruit

the alien you never expected

Er ook nog een tegenhanger van Xamarin genaamd RemObjects Oxygene. Dit bied de mogelijkheid om je applicatie voor de verschillende platforms te schrijven in je taal naar wens: Java, Prism (/Delphi) of C#. Het grootste verschi met Xamarin is dat daar de IL stap er nog tussen zit. Verder heb je nog steeds een Mac nodig om applicaties aan te melden of je grafische interface te ontwerpen middels Xcode. Ook komt RemObjects met de Visual Studio shell dus als je Visual Studio zelf niet kan je toch al meteen aan de slag. Het idee hierbij is natuurlijk niet om 'write once, run everywhere' te hebben maar dat je in één taal kan schrijven voor de verschillende platforms. Maar goed, dat was nooit een fantastisch goed idee ;)

Als pluspunt is de compiler architect een Nederlander ;)
Q: What is the difference between RemObjects C# and Xamarin?

A: Xamarin is a commercial toolchain that brings the .NET Framework to Android and iOS. RemObjects C# looks at this idea of reusing C# on a different level: It brings the C# Language to the Cocoa and Java/Dalvic platforms, instead.

Acties:
  • 0 Henk 'm!

  • _Erikje_
  • Registratie: Januari 2005
  • Laatst online: 04-07 07:58

_Erikje_

Tweaker in Spanje

TheNephilim schreef op dinsdag 29 april 2014 @ 09:40:
Xamarin zal hem dan niet worden, gezien allereerst de licentiekosten en daarnaast Mac OSX only. We zitten hier gewoon op Windows (7), dus dat word hem niet.

Maar bedankt mensen, ik begrijp dat native toch zeker een voorkeur heeft. Phonegap is wel een alternatief, maar dat moet ik nog eens bekijken.
Hoe zo is 1900 dollar (2*999 -10%) per dev per jaar duur? 3 native apps bouwen, dat is pas duur. Je vergeet dat de meeste kosten bij het bouwen van een app in de development uren gaat zitten.

Met welke taal zijn jullie intern bekend?

Acties:
  • 0 Henk 'm!

Anoniem: 145867

Gekeken naar Node-Webkit?
Soort NodeJS Server + Chromium Webkit in 1. Configureerbaar o.a. borderless en fullscreen.
Een webapp als desktop app zeg maar. Moet je wel full stack kunnen programmeren met Javascript met verschillende frameworks. Maar werkt perfect en is relatief simpel.

Voordelen: Platformafhankelijk en misschien zelfs makkelijk te porten naar o.a. Android/iOS?
Nadeel: Je binary is relatief groot omdat je NodeJS en Webkit bij je programma in zitten.

https://github.com/rogerwang/node-webkit
Lijst met Desktop WebApps gemaakt met Node-Webkit: https://github.com/rogerw...mpanies-using-node-webkit
Met Grunt kan je volgens mij ook in 1 keer voor Windows,Mac en Linux je binaries genereren.


Edit: Oeps.. dacht dat het om desktop apps ging. My bad.

[ Voor 9% gewijzigd door Anoniem: 145867 op 04-05-2014 22:39 ]


Acties:
  • 0 Henk 'm!

  • Biersteker
  • Registratie: Juni 2009
  • Laatst online: 04-07 15:26
Als je snel iets in elkaar wilt draaien is netbeans met cordova wel een leuk punt om te beginnen.
YouTube: Getting Started with Cordova in NetBeans IDE

Originally, a hacker was someone who makes furniture with an axe.


Acties:
  • 0 Henk 'm!

  • BikkelZ
  • Registratie: Januari 2000
  • Laatst online: 21-02 08:50

BikkelZ

CMD+Z

_Erikje_ schreef op zondag 04 mei 2014 @ 16:08:
[...]


Hoe zo is 1900 dollar (2*999 -10%) per dev per jaar duur? 3 native apps bouwen, dat is pas duur. Je vergeet dat de meeste kosten bij het bouwen van een app in de development uren gaat zitten.
Het verhaal zou natuurlijk helemaal op gaan als je write once, run anywhere kunt doen maar dat is met Xamarin niet zo. Je bent gewoon bergen tijd kwijt met de GUI's en die zijn het lastigste generiek te maken. Android bugs will be Android bugs.

iOS developer


Acties:
  • 0 Henk 'm!

  • Martinspire
  • Registratie: Januari 2003
  • Laatst online: 04-07 00:05

Martinspire

Awesomeness

Anoniem: 145867 schreef op zondag 04 mei 2014 @ 22:35:
Gekeken naar Node-Webkit?
Soort NodeJS Server + Chromium Webkit in 1. Configureerbaar o.a. borderless en fullscreen.
Een webapp als desktop app zeg maar. Moet je wel full stack kunnen programmeren met Javascript met verschillende frameworks. Maar werkt perfect en is relatief simpel.

Voordelen: Platformafhankelijk en misschien zelfs makkelijk te porten naar o.a. Android/iOS?
Nadeel: Je binary is relatief groot omdat je NodeJS en Webkit bij je programma in zitten.

https://github.com/rogerwang/node-webkit
Lijst met Desktop WebApps gemaakt met Node-Webkit: https://github.com/rogerw...mpanies-using-node-webkit
Met Grunt kan je volgens mij ook in 1 keer voor Windows,Mac en Linux je binaries genereren.


Edit: Oeps.. dacht dat het om desktop apps ging. My bad.
Dat is niet het enige probleem: je mist daarbij ook ondersteuning voor andere browser-engines zoals IE en mogelijk anderen (Firefox, Ubuntu, etc).


Cordova kan een bitch zijn om mee te werken. Je moet vooral goed weten hoe je een goede performance krijgt en wat je wel en niet kunt doen. Dit vereist dus ook een beetje inzet van de designer om de app niet te complex te maken. De tijd dat je echter alleen simple apps kunt maken met Cordova is toch echt voorbij. Zeker als je iOS7, Android 4+ en WP8.0 (liever 8.1 ivm IE11) gaat ondersteunen. Oude Androids moet je eigenlijk niet doen, tenzij je een voorliefde hebt voor het toevoegen van legacy-support :+ Het kan wel (zeker zaken als navigatie), maar animaties en touch kun je gewoon beter niet doen. Ja het is een substantieel marktaandeel, maar de vraag is of het loont en of die doelgroep nuttig is voor je app (en verdienmodel)

Met frameworks als Angular wordt het toch wel erg makkelijk om een app te maken met prima performance. Want jQueryMobile is gewoon te traag, zeker voor budgettoestellen. Animaties moet je namelijk met Javascript (de goede manier zoals GSAP doet) doen of CSS3 (elementen liever niet via top/left maar via translate3d want dat gaat beter). Volgens de translate3d manier heb ik bijvoorbeeld enkele animaties in onze multiplatform-app op alle ondersteunde platformen (Android 2.x ondersteund het niet) prima gekregen. Ander punt is touch wat toch nog wel wat problemen kan geven. Zo hadden wij HammerJS gebruikt voor het afhandelen van enkele touch-events maar moesten we voor WP8 toch nog een eigen implementatie toevoegen omdat die gewoon niet naar behoren werkte.

Een ander probleem is dat de webviews niet hetzelfde zijn als de browsers die je kunt gebruiken. Daarom werkt een webapp vaak ook beter als browser-pagina dan als hybride app. Dat is iets wat aan de kant van de platformen ligt, niet aan cordova. Wel is het zo dat het enige irritaties kan opleveren als je webview niet het juiste formaat aanleverd of dat je header/footer/sidebar/menu toch niet goed geplaatst wordt. Ik heb wel een paar keer gehad dat je ineens weer kunt scrollen op je interface of dat de pagina net 50px te hoog lijkt te zijn voor de fullscreen weergave. Allemaal zaken waar je naar verloop van tijd wel achter komt maar waar eigenlijk niemand het over heeft. Ook het nabootsen van native elementen of gebruiken van uniform design gaat prima. Meeste opdrachtgevers kiezen juist voor web om 1 codebase met 1 soort interface te krijgen. Mijn ervaring met tools als KendoUI (of andere native interface-naapers) is niet zo best, dan liever een generieke interface (maken je gebruikers minder fouten mee). Ik zou alleen de hoofdlijnen meenemen (algemene navigatie en plaatsing header/footer bv).

Debugging kan ook een uitdaging zijn. Je moet weten wat je wel en niet kunt doen. In zekere zin kun je bv via Chrome Development Tools aardig wat fouten eruit slopen, maar omdat je met een webview werkt ipv browser heb je daar toch wat veel beperkingen mee. Het is 1 van de zaken waar je aan moet wennen dat je beter console.log-jes kunt gebruiken dan willen inspecteren. Op iOS en Android 4.4 valt het vanwege de externe inspectie via browser (Safari -> Develop -> Inspect of Chrome -> About:devices) een stuk makkelijker. Bij WP is het jammer dat je die mogelijkheid niet direct hebt, al kun je wel IE11 gebruiken en in de Development Tools de devices emuleren (al emuleer je daar dus wederom de browser mee en niet de webview).

Toch vind ik het ontwikkelen in Web na verloop van tijd en met het vinden van de juiste tools toch erg fijn om te doen. Het is voor een aantal zaken gewoon veel makkelijker en als je een beetje geoefend hebt, kun je zonder al te veel quirks (css en js overrides e.d.) prima multiplatform hybride apps maken. Een stuk sneller dan native gaan om vervolgens een groot deel van je code weg te gooien. Al moet je je misschien afvragen of je het alleen doet om als app in de store te komen, of omdat je echt de hardware gaat benutten. Want als het eerste het geval is, zul je met een webapp die je aan het startscherm pint, net zo makkelijk uitzijn. Het is alleen jammer dat dit nog niet echt gebruikelijk is, want voor webdevelopment is de echte browser namelijk veel makkelijker dan de webview (zeker ook voor debuggen zijn er meer mogelijkheden en lijkt het meer op wat je in de desktopbrowsers ziet)

Cordova/Phonegap afschrijven op performance is al lang niet meer nodig (dan moet je toch echt je HTML skills bijspijkeren). Zeker met de nieuwe devices en besturingssystemen die werken met de nieuwe browserstandaarden.
iOS is inmiddels met Ionic of Framework 7 redelijk te doen. Het is alleen jammer dat je voor het toevoegen van Android of Windows Phone dan weer aardig wat moet customizen (al is ook dat niet onmogelijk). Kendo UI kan een oplossing zijn, maar prefereer ik zelf niet. Dan liever een eigen look en feel, iets wat toch ook al makkelijker te beheren is. Zeker als je het maakt bovenop Bootstrap, Zurb Foundation of ander modern en framework (bij voorkeur met grote community)

Martinspire - PC, PS5, XSX


Acties:
  • 0 Henk 'm!

  • TheNephilim
  • Registratie: September 2005
  • Laatst online: 02-07 11:36
Dank voor je genereuze bijdrage! :o Goed om te horen dat er wel wat degelijks te maken valt met de Cordova oplossing. Zij het dan dan wat beperkt, maar een nette en goed geschreven applicatie zal dus snel zijn.

Een enkele codebase zal voor veel gemak zorgen lijkt me zo. Als je drie codebases (Android, iOS & WP) zou moeten bijhouden, dan ben je voor nieuwe features echt veel tijd kwijt en dan heb je nog de bugs en quirks pér platform.

Heb het hier overigens nog steeds niet voor elkaar om tenminste een mini-app te maken. Moet nog eens kijken welk van de onderdelen nu een fout veroorzaakt.
Pagina: 1