Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie

Door , , 65 reacties

Een ontwikkelaar heeft een manier gevonden om een smartphone- en een tabletversie van dezelfde Android-applicatie in één installatiebestand te verpakken. Daardoor zijn 'HD-versies' van apps, zoals onder iOS, voor Android overbodig.

De methode werkt door het toevoegen van enkele regels code, waardoor de applicatie de schermgrootte kan herkennen. De interface van de applicatie wordt daar vervolgens aan aangepast. Op deze manier kunnen meerdere interfacevarianten in hetzelfde apk-bestand worden gezet. Daarmee zijn aparte tabletversies van applicaties onder Android overbodig. Ontwikkelaars kunnen voor iOS ook applicaties uitbrengen die een interface hebben die is aangepast op zowel iPhone als iPad. Onder Apples iOS krijgen applicaties met een iPad-interface echter veelal de toevoeging 'HD' mee.

Het optimaliseren van Android-applicaties voor tablets zal de komende tijd belangrijker worden, omdat er komend jaar naar verwachting veel nieuwe Android-tablets uitkomen, met verschillende schermgroottes en -resoluties. In de sdk van Android 2.3 Gingerbread is dan ook een extra schermgrootte, Extra Large, toegevoegd. De schermgrootte wordt bepaald aan de hand van resolutie en pixeldichtheid.

De code werkt op basis van de schermgroottedefinitie in de Android SDK, legt ontwikkelaar Al Sutton uit. In de directory 'layout' staat de interface voor smartphones, terwijl 'layout-large-land' de interface voor tablets bevat. De standaardinterface heeft een verborgen element; door de applicatie te laten controleren of het verborgen element wordt getoond, weet de applicatie welk scherm de smartphone of tablet heeft.

De ontwikkelaar heeft een demo-applicatie en de achterliggende code online gezet. Het is nog onduidelijk of de methode van Sutton navolging gaat vinden. De methode is pas uitvoerbaar sinds de sdk van Android 2.3 maandag werd vrijgegeven, omdat daarin de 'Extra Large'-screens zijn geïntroduceerd. Alle schermgroottes tot en met 'Large' worden al sinds Android 1.6 ondersteund.

Overigens lijkt het erop dat Google de functie standaard gaat implementeren in Android Honeycomb: daarop wees de presentatie die Rubin deze week gaf tijdens D: Dive Into Mobile, waar hij een tablet met Honeycomb toonde. Voor oudere Android-versies zal deze workaround echter de enige methode blijven om twee verschillende interfaces in een installatiebestand te zetten.

Moderatie-faq Wijzig weergave

Reacties (65)

Dit betekend dus wel, dat als je geen tablet hebt, je een onnodig groot bestand moet downloaden, ivm met grotere plaatjes. Wat dat betreft is het systeem van Apple handiger.

Het handigst zou natuurlijk zijn dat gewoon bij het downloaden word gekeken of je een tablet hebt, zo ja dan word de tablet versie gedownload.

[Reactie gewijzigd door boelensman1 op 8 december 2010 18:08]

Dit betekend dus wel, dat als je geen tablet hebt, je een onnodig groot bestand moet downloaden
downloaden, ja. Maar dat grotere bestand wordt niet je op device gezet. Die haalt de overbodige versie eruit als ik het goed heb begrepen.
bij Apple is het systeem: een ander device dus een andere app, als tussenoplossing een (overigens lelijk) schaalbare iphone/ipod app. Een tablet is een ander device met andere mogelijkheden.
De Twitter app heeft dit anders erg mooi opgelost.. en zo zijn er nog wel meer
De opmerking "een ander device dus een andere app" slaat kant nog wal

[Reactie gewijzigd door Chaser2600 op 8 december 2010 18:15]

oh sorry, 1 appje valideert aan jouw statement, dus mijn comment gaat nergens over.
alle apps waar een plusje staat bij de prijs of het gratis knopje
ga zelf de appstore maar door om ze te tellen.. succes
Allereerst. UI's zijn voor iOS devices ook deelbaar. Dat is niets nieuws, echter...

Het zal in het nadeel van Android werken als apps op deze manier andere resoluties willen ondersteunen. Een telefoon is fundamenteel anders dan een tablet. Dat vraagt om andere interfaces. Het is niet voor niets dat Apple de fundamentele keuze heeft Gemaakt om iPad apps niet binary compatible te maken met iPhone apps. Je merkt het ook meteen als een iPhone app 1 op 1 is geport naar iPad. Dat ziet er meestal niet uit.
Huh? Wat is het verschil dan tussen een iPhone en iPad? De userinterface is identiek, en de hardware is dat ook op een enkel detail na anders. Je maakt apps op een iPad anders omdat je meer scherm hebt en je een iPad voor je hebt liggen ipv in je hand hebt.

Een iPhone app zou zomaar op een iPad kunnen draaien. Andersom weer lastiger omdat je scherm te klein is. Nee, ik vermoed dat er absoluut geen edelmoedige motieven, maar ordinair geld verdienen de ware reden is geweest om deze zo hard te splitsen. Er zijn immers zat apps die op de iPad ineens geld kosten. En waarom schaalt een app die alleen maar tekst heeft niet op? Ik vind dat raar. Windows krijgt ook niet ineens blokletters als ik 'm op 640x480 draai. Plaatjes zien er niet uit, maar de tekst schaalt gewoon op. Een beetje raar dat beide platforms (want volgens mij heeft Android het ook) niet met device independant scaleable lettertypes werken. Of zou dat teveel geheugen/cpu kosten?

Je ziet aan de hele opzet van Apple dat er een serieus verdienmodel achter zit. Daar is niets mis mee, hoor. Ik gun Apple de omzet van harte. Achter Android zit ook een goed verdienmodel, maar een hele andere. Daarom heeft Google meer baat bij gratis apps (dan kan er reklame achter nl) die op alle devices draaien, en Apple meer baat bij betaalde apps die op een beperkt aantal apparaten draaien. Er zijn echter wel een aantal universele apps die je maar 1x hoeft te kopen.

En voordat ik beschuldigd wordt van fanboyïsme: ik het een Android én een iPad. Ik kan dus heel goed vergelijken. Ik vind ze beiden top, maar ik baal wel van het feit dat bijna alles (meer) geld kost tov Android. En de kwaliteit is daarin écht geen bepalende factor kan ik je melden. Ik heb iPad apps die al vaker gecrashed zijn dan alle apps op mijn Android bij elkaar (en ik heb de Android al bijna een jaar).

[Reactie gewijzigd door mphilipp op 9 december 2010 09:42]

Daardoor zijn 'HD-versies' van apps, zoals onder iOS, voor Android overbodig.
Dit gaat bijzonder kort door de bocht, en de kleur aan het artikel is meteen aangegeven.

Mocht er nu daadwerkelijk even gekeken zijn naar de verschillen van apps op een iPhone en "dezelfde" app op een iPad, dan kom je in no-time tot de conclusie dat de apps volledig verschillend zijn. Even een andere schermresolutie is the easy way out.

*edit* ik meen me te herinneren dat de android guru's altijd een argument hadden van "alles schaalt al perfect voor de tablet"

[Reactie gewijzigd door bakman op 8 december 2010 18:08]

Als je nu gewoon even leest dan zie je dat dit niet beperkt is tot het opschalen van apps, dat doen de meeste apps toch al, het gaat hier ook over het kunnen voorzien in een speciale tablet versie, dus specifieke layout.
Wat denk je dat die universal apps van iOS doen dan? 1password bv, icab, goodreader, allemaal universal apps die op een iPhone helemaal anders uitzien dan op een iPad. De gui en controls zijn echt ontworpen voor de juiste apparaat. Terwijl ze dezelfde apps zijn.
Zo hoort het ook.
Deze apps zijn mits er niet extra veel voor gevraagd wordt, het kopen zeker waard.

Ik hoop dat de marktwerking (no pun intended) deze ontwikkeling gaat ondersteunen en de "multi-versie" apps afvalt.
Mocht er nu daadwerkelijk even gekeken zijn naar de verschillen van apps op een iPhone en "dezelfde" app op een iPad, dan kom je in no-time tot de conclusie dat de apps volledig verschillend zijn. Even een schermresolutie is the easy way out.
Maar bij spelletjes zoals Angry Birds is het dan weer voldoende. De iphone versie en de iPad versie zijn in principe gelijk.
Moet ik van die 30.000 ipad apps aangeven welke er totaal anders uitzien dan de iphone versie en hun specifieke functies ?

Dit zijn lapmiddelen.
Wat bakman bedoelde is... hier een voorbeeld:

De iPhone-voorkeuren zien er ongeveer zo uit:
http://www.touchpodium.co...vancedpreferences06a4.jpg

De iPad-voorkeuren ongeveer als dit:
http://km.support.apple.c...-ipad-settings-002-en.png

De iPad-voorkeuren konden er ook gewoon exact zoals de iPhone-voorkeuren hebben uitgezien, enkel met een hogere resolutie. Maar Apple heeft ervoor gekozen om er een aparte layout van te maken, met een extra kolom aan de zijkant.

Trek dit even door naar de andere spellen en applicaties, en je zult zien dat de meeste apps niet zo maar een één op één replica zijn van hun kleinschermdubbelganger (als dat een woord is).
Dat werd ook al aangegeven, code daarvoor dient ook in de "kleine" app te zitten.

Als ik Gmail b.v. op de emulator op de PC zie draaien, gaat het bij een 1024x600 resolutie het scherm in twee delen verdelen: mappen / labels en de email naast elkaar. Zet je de resolutie lager, b.v. het standaard 800x480, dan gaat dit weer weg en heb je weer een klik intensiever menu.

Zo zitten er ook een hoop "show if" en "hide if" in android apks. Het valt zo dus ook wel redelijk mee met de fragmentatie.

Praktijken zoals in de apple market kan ik me dan ook boos over maken en zou voor mij een reden zijn de app voor het device dat ik het laatste erbij heb gekocht, mits werkelijk beter, op onprettigere manier te verkrijgen. Zeker gezien de prijzen die er zo nu en dan gevraagd worden... Maar goed, dergelijke dillema's zal ik niet voor komen te staan.
Volgens mij maak ik er uit op dat je nu kan detecteren binnen 1 applicatie of die op een tablet draait of niet. Dan kan je hierop delen van je interface anders maken zodat de ruimte beter te benutten is.
Dat is op iOS natuurlijk ook mogelijk, maar veel developers grijpen hun kans met een zogenaamde HD versie om meer geld te vangen
Ik verwacht niet dat dat bij Android veel anders zal zijn

[Reactie gewijzigd door Chaser2600 op 8 december 2010 18:06]

Nou ja, ik moet bekennen dat bij de telefoonversies van apps, indien ik ze nuttig vind en ervoor kan betalen (paypal support ontbreekt vooralsnog in de market zelf, enkele apps hebben er specifiek support voor toegevoegd), ik het geld er wel voor over heb, al helemaal omdat veruit de meeste apps heel redelijk geprijsd zijn. Om maar eens een voorbeeld te noemen: de betaalde versie van LauncherPro (een home app) is iets van 3 euro, en het is in mijn opinie 1 van de beste (zo niet de beste) home app die er te vinden is.

Als ontwikkelaars echter massaal dit soort voeg-HD-toe-en-vraag-er-extra-geld-voor praktijken overnemen uit de Apple store wordt de motivatie bij mij althans groter om mijn eigen versie te schrijven, en ik zal vast niet alleen staan in dat sentiment. Vergeet niet dat het een stuk goedkoper is om voor Android te ontwikkelen dan voor Apple.

@ZpAz:
Ik had het voornamelijk over de kosten die aan Apple en Google betaald dienen te worden (99 dollar per jaar respectievelijk eenmalig 25 euro), en dan ook nog in het kader van DIY of eventueel zelfs FOSS.
Daarnaast heb ik de iDevice API's nooit gezien maar ik weet wel hoe makkelijk het is om dingen gedaan te krijgen voor Android, en er is enorm goede developer documentatie te vinden.
Daarnaast valt het hartstikke mee met de fragmentatie in de praktijk: Veruit de meeste Android devices zitten nu op z'n minst op 2.1 of krijgen dat of nieuwer op korte termijn, en laat het nou net zo zijn dat de grootste API wijzigingen die kunnen zorgen voor de fragmentatie waar jij het over hebt in de overgang van 1.6 naar 2.0 voorkomen.
De "fragmentatie" bij games zoals Angry birds is een speciaal geval, en zeker niet Android-specifiek: hier komt het namelijk door verschillen in hardware (net zoals bij pc's) en naar mijn verwachting zal het ook optreden bij het MeeGo platform wanneer daar smartphones voor uitkomen vroeg volgend jaar.

[Reactie gewijzigd door Jeanpaul145 op 8 december 2010 20:06]

Vergeet niet dat het een stuk goedkoper is om voor Android te ontwikkelen dan voor Apple.
Enige bron? Ja, de SDK kost 99 79, maar zijn dat kosten in vergelijking met een uurloon van een developer, en misschien de verkorte tijd die je krijgt met een potentieel betere SDK?

Een uurtje of twee de 'fragmentatie' ondersteunen, en je bent al weer goedkoper bij iOS.

@Hierboven prima, maar 99 euro 79 euro per jaar is natuurlijk een peulenschil. Daarnaast heb ik het niet enkel of 'softwarematige' fragmentatie, maar dat de één een onscreen toetsenbord heeft, de ander niet, de ene een multitouch-screen, de ander niet e.d.

Niet te vergeten de verkopen van je apps mee te rekenen, momenteel wordt er gewoon meer verdient door developers op iOS dan Android.

[Reactie gewijzigd door ZpAz op 8 december 2010 20:25]

Maar bij android moet je met meer dan 3 resoluties rekening houden? daar ben je de " bespaarde" 75 dollar snel weer aan kwijt....
Dat is op iOS natuurlijk ook mogelijk, maar veel developers grijpen hun kans met een zogenaamde HD versie om meer geld te vangen
Ik verwacht niet dat dat bij Android veel anders zal zijn
Sterker nog, onder iOS kun je ze herkennen door het + tekentje bij de prijs. (of het woord gratis). Me dunkt dat dat onder Android net zo makkelijk mogelijk zou moeten zijn.

Ik denk dat het ook meer is omdat er officieel geen tablet versie van Android is dat je dit nog niet in de Android Market terug ziet. Wellicht zodra Android 3.0 er is, dat je dan een soortgelijk mechanisme krijgt als Apple in de Appstore heeft.

Overigens zijn er veel developers die gewoon de 'HD' / iPad versie uitbrengen in een update voor de iPhone/iPod app. Dan hoef je 'm dus niet meer appart te kopen. Flight Tracker Pro is daar een aardig voorbeeld van.

Ik denk dat ook bij Android de developers zo'n systeem zullen hanteren, anders wekt dat weer frustratie en ergenis op bij de klanten.
De applicaties worden op deze manier toch groter in bytes ? Dat is denk ik een van de redenen waarom IOS een HD versie uitbrengt en natuurlijk wat hiervoor al was vermeld dat een HD versie meer op kan brengen.
Het grotere bestand is niet de hoofdreden de meeste apps zijn namelijk niet groter dan een paar mb. Op een Ipad, iPhone of iTouch met minimaal 8 of 16 gb is dat natuurlijk helemaal niks. Die 20mb aan extra code maakt dan niets uit.
mwa ik heb op moment van schrijven 83 aplicaties op mijn iphone staan, 83 x 20 mb is 1660 mb, tien procent van de capaciteit van de iPhone die ik heb, alle kleine beetjes samen wordt toch snel veel.
Wordt een app niet veel groter als je ineens de grafische elementen voor veel grotere resoluties moet includen? Op mijn X10 Mini Pro hoef ik echt geen icoontjes en plaatjes te hebben die je alleen op een tablet gebruikt...
Dat gebeurt toch al.

In android is het mogelijk voor elke resolutie verschillende versies van plaatjes en dergelijke in de build op te nemen. Bij het installeren wordt gekeken welke versie je hebt.
Dit zou ook een uitkomst zijn voor de iphone/ipad. Weet iemand of het mogelijk zou zijn voor iOS developers om dit principe ook te gebruiken?
Dat is er al sinds de iPad released is.. zie bijvoorbeeld de Twitter app
Dus het komt er op neer dat al die HD apps geldklopperij zijn?
Neen, het komt er op neer dat wij als ontwikkelaars graag betaald worden voor ons extra werk dat er in kruipt om de nodige aanpassingen te doen die nodig zijn om een app optimaal te doen werken op een hogere resolutie.

Mensen die er niet in thuis zijn zien het allemaal veel te simplistisch. Ik heb voor één van mijn applicaties een maand werk gehad om alles te optimaliseren voor de iPad.

Een preview waar afbeeldingen in geladen werden om processed te worden was groter, maar de CPU was relatief gezien niet mee geëvolueerd met de schermresolutie dus moest er een efficiëntere manier gezocht worden om alles vlot te laten verlopen.

Het openen van afbeeldingen om in die preview te laden moest via een popover. Er moest een controller geïmplementeerd worden om dat werkende te krijgen en er moest gebruik gemaakt worden van 5 extra views.

Verder moesten er allerhande resources uitvergroot worden en niet zomaar van "Open Photoshop > Size > 200%", maar van "Open Photoshop/illustrator > begin opnieuw".

Verder heb ik tal van extra features in de HD versie gestoken omdat iPad apps ook wat meer maturiteit mogen hebben dan hun iPhone variant.

Dus wat je extra betaald voor de HD versie is een vergoeding voor al dit werk.
Het is je goed recht om meer geld te vragen. Maar: de investering krijg je al terug omdat de markt voor je app groter wordt door dat het een iPad-versie is. Meer vragen omdat je app aanpassen werk kost vind ik daarom een beetje een slecht verhaal.
Veel mensen die een iPad bezitten bezitten ook een iPhone. Dus je markt wordt niet specifiek veel groter of toch niet genoeg om de kosten te dekken.

Let wel ik vind het ook absurd zoals vele "grote" merken doen. De ontwikkelaar van Things bijvoorbeeld, vraagt 5€ voor zijn iPhone app en dan nog eens 15€ voor zijn iPad versie.

Dat vind ik er persoonlijk dan wel over. Ik kan er mij perfect in vinden dat je bvb. voor de iPhone versie 79 cent vroeg en voor de iPad versie 1,59€. Als een gebruiker hierover klaagt dan denk ik niet dat hij veel belang hecht aan je app. Het is dus niet dat je je blauw gaat betalen. Als je een app nuttig vindt dan heb je er wel een 2€ voor over.

Trouwens zoals hierboven gezegd zijn de HD versies er voor mensen die effectief een geoptimaliseerde iPad variant willen van een applicatie. De iPhone versies zijn zonder enig probleem te draaien op een iPad voor mensen die er niet de surplus voor over hebben.

En trouwens voor zover ik weet is het van de meeste bedrijven en dus ook ontwikkelaars nog steeds niet de bedoeling dat ze break even of met verlies draaien en dat de gebruiker een minimum betaalt of niets voor het harde werk van de ontwikkelaars. Ik weet dat het voor de gemiddelde tweaker moeilijk te geloven is, maar ontwikkelaars hebben ook als doel om zoveel mogelijk winst te maken. En als iedereen kwalitatieve producten biedt die door niemands strot geduwd worden of aan absurde prijzen verkocht worden zoals het er op de PC software markt aan toe gaat dan denk ik niet dat er iemand te klagen heeft.

[Reactie gewijzigd door ykrsdn op 9 december 2010 01:29]

Dat jij het een slecht verhaal vind is leuk, maar wij ontwikkelaars verdienen ons geld op deze manier. We willen mee geld verdienen, en het liefste sneller. Als de markt dat toelaat gebeurt dat dan dus ook. Elk beetje werk gewoon in rekening brengen, of als upgrade verkopen. De schoorsteen moet roken!
Er zijn ook mensen die wel tevreden zouden zijn geweest met een simpel vergrote versie van het spel ipv een hd versie. Dus in mijn ogen zouden deze mensen gezien ze al betaald hebben voor die app deze ook gewoon moeten kunnen spelen op hun ipad.

Dus dat de hd versie een ''aparte'' keuze is waarbij ze dus niet per se deze moeten kopen om de originele app te kunnen spelen/gebruiken. Je kunt wel zeggen het is vergoeding voor het gedane werk en dat klopt ook. Maar er zullen zat mensen zijn die zoiets hebben van hier heb ik niet om gevraagd.
Veel (vrijwel alle?) iPhone apps zijn met de 2x functie te gebruiken op de iPad als men niet voor 2 versies wilt betalen. Dus gewoon op de iPad spelen zonder extra te betalen.

[Reactie gewijzigd door BrokenTable op 8 december 2010 22:26]

Nee, als de ontwikkelaar extra in rekening brengt omdat hij tijd heeft moeten stoppen in de HD versie kan hij dat gewoon doorberekenen. Niets te maken met geldklopperij, gewoon geld verdienen.
Die is er al.
Als je werkt met zogeheten Xibs kan je in XCode dat automatisch laten doen.
Ik heb het zelf ook al een aantal keren gedaan, en vervolgens met de hand de interface van de iPad gecorrigeerd :)
Ook zonder xibs. (mijn voorkeur)

Gewoon bij het aanmaken van je project kiezen of die voor iphone, ipad, of beide moet zijn. als je voor beide kiest, krijg je 1 shared appdelegate, en 2 afgeleide classes voor beide devices.
Als je dan je views maakt, met relatieve schermcoordinaten, kan je zelfs je views voor beide apparaten hergebruiken.
Ik denk dat het veel meer werk is voor een developer om met meerdere resoluties te werken voor zowel Smartphone als tablet.
Je werkt toch denk ik met andere verhoudingen, en dubbele bestanden voor meerdere resoluties.

Ik hoop dat in de toekomst gewerkt kan worden met interfacebestanden zoals in iOS, waar je in een poep en een scheet automatisch een interfacebestand voor de iPad kan genereren vanaf een iPhone interfacebestand.
Of iig de app creator die in de toekomst komt :)

Ik ben zowel developer van Andriod apps als iOS apps.
Ik vind dat apple het erg creatief oplost, en daar mag google wat mij betreft wel wat van af kijken.

[Reactie gewijzigd door topaj op 8 december 2010 18:11]

Ik ben een van de weinige die dit een goede functie vind. Dit zou ook moeten werken op smartphones met een lage resolutie. En dit zou voor developers heel veel werk schelen.
Dat is wat Google dus bedoelde met "Android ongeschikt" voor tablets, ze waren de grotere schermen ondersteuning nog aan het toevoegen.

Op dit item kan niet meer gereageerd worden.



Apple iOS 10 Google Pixel Apple iPhone 7 Sony PlayStation VR AMD Radeon RX 480 4GB Battlefield 1 Google Android Nougat Watch Dogs 2

© 1998 - 2016 de Persgroep Online Services B.V. Tweakers vormt samen met o.a. Autotrack en Carsom.nl de Persgroep Online Services B.V. Hosting door True