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)