android/Iphone app

Tags:    iphone android

Jeg skal udvikle en app til både Iphone og Android.

Det bliver min første smartphone app.

Er der nogle der kan rådgive omkring hvilken platform jeg først skal udvikle til?

Skal jeg udvikle til android og så "porte" den til Iphone eller omvendt.

Christopher



5 svar postet i denne tråd vises herunder
2 indlæg har modtaget i alt 8 karma
Sorter efter stemmer Sorter efter dato
Der findes nogle værktøjer (fx phonegap) gør at man kan lave én app og deploye den på flere platforme. Jeg har dog hørt delte meninger om kvaliteten af disse apps. Der ud over kan det også være spændende og udfordrende at udvikle to apps, en til iphone og en til android.
Det at udvikle til iPhone og det at udvikle til Android er to meget forskellige ting. iPhone apps er typisk udviklet i Objective C i XCode på en Mac mens til Android udvikler man typisk i Java i Eclipse på en hvilken som helst PC.
Personligt har jeg arbejdet med begge platforme og kan bedst lide at udvikle til Android. Jeg er mere til Java end jeg er til Objective C, men det kan være en smags sag. Der ud over syntes jeg det var nemmere at komme i gang med Androidudviklingen. Google har udgivet meget god dokumentation og nogle gode tutorials/guides/kodestumpr.

Hvis du ikke ved hvilken telefon du skal starte med, vil jeg nok anbefale at udvikle til den telefon du selv bruger mest. På den måde tror jeg, det er nemmere at teste app'en og få en følelse af hvordan hele app'en fungerer.



@Martin, nu koder jeg hverken C# eller Objective-C, men jeg synes din kritik er meget lidt konstruktiv.

De er begge meget inspireret af C - oplagt - og udover at C# kører på .NET og at Objective-C er hoved sproget i Cocoa platformen, så er den største forskel faktisk at C#'s object struktur er inspireret af Java og C++ hvor Objective-C bygger på smalltalk.

Smalltalk er et objectorienteret sprog, som blev udviklet af nogen forskere i slutningen af 70'erne. I første halvdel af 80'erne opstod Objective C så - det udmærkede sig ved at tage de revolutionerende objektorienterede principper OG ved at være kompatibelt med C kode.

Grunden til at Apple valgte Objective-C nu, så mange år efter, er at sproget, blev brugt i NeXTSTEP-OS'et, som Apple opkøbte i slutningen af 90'erne. NeXTSTEP var et POSIX system (en unix variant) og rester af det ses stadig i Darwin.

Det er klart at du som Java programmør vil føle dig mere hjemme i C# end Objective-C. Men at kalde syntaksen for grim og ulogisk er lidt groft. I virkeligheden handler det jo bare om, at det er to sprog, der er meget lig hinanden, som har udvidet C med baggrund i to forskellige paradigmer.

Objective-C's syntax er måske noget anderledes for objekter - men det skyldes jo, at et af målene var, at C kode skulle kunne kompileres af Objective-C compilere og udvides med Objective-C kode, uden konflikter.

Jeg ved godt at du skriver personligt og alt muligt, men dit udsagn er mere religiøst end sagligt.... Så jeg har stadig svært ved at holde kæft. :-)

Nu vil jeg tage professor-hatten af og sætte mig over i offtopic-skamme-krogen. :-)

On topic:
Hvis du vil kode Android apps findes der IDE til de fleste platforme. Det er jo bare Java kode... Til android IDE'en følger der en simulator med.

Men hvis du vil lave native iOS apps kommer du nok ikke uden om Xcode - som kun er til OSX. Xcode kommer selvfølgeligt også med en simulator. (Bonus info: For øvrigt Xcode gratis, og simulatoren er perfekt til at teste websites på forskellige iOS enheder!)

Engang kunne man udvikle iPhone apps i en flash-agtig teknologi. Apple stoppede understøttelsen af det - vidst nok i forbindelse med udgivelsen af iOS4 - og der var en masse ballade om det, men hvad det endte med kan jeg ærligtalt ikke huske. (Jeg googlede det lige - det ser ud til at det faktisk stadig kan lade sig gøre - se mere her: http://www.emanueleferonato.com/2011/09/22/creation-of-an-iphone-app-with-flash-and-without-a-mac-for-all-windows-lovers/ )

Det bedste valg, hvis du skal lave en app til begge platforme, med mindst mulig indsats er, som tidligere nævnt, PhoneGAP eller lignende. I virkeligheden er det bare en wrapper for html5-web-apps, som bliver lagt på telefonen.



Indlæg senest redigeret d. 15.02.2012 14:48 af Bruger #17015
Hvis du skal udvikle til iphone skal du vist benytte en mac,hvor android både kan udvikles på en mac, windows osv. da sproget bl.a. er java. Du kunne også overveje at udvikle til windows phone 7, men det er selvfølgelig op til dig. Som Kim siger findes der noget der hedder phonegap, hvor du ucvikler med HTML 5, css og javascript, hvilket fungerer på alle platforme.



Tak for de hurtige svar.

I mine undersøgelser den sidste uges tid, startede jeg med at læse om de forskellige cross-platform værktøjer såsom PhoneGap, Rhodes og Titanium. Umiddelbart virkede de som den bedste løsning da app'en jo skal produceres til begge platforme.

Jeg er dog nu temmelig sikker på, at jeg vil udvikle "native" apps. Dette skyldes et argument jeg hørte på følgende broadcast: http://5by5.tv/buildanalyze/8.

At begrænse sin afhængighed. Hvis jeg benytter et framework som PhoneGap, så er jeg afhængig af, at PhoneGap opdaterer deres framework så jeg kan tilgå funktionerne på den givne smartphone. Hvis frameworket en dag daler i popularitet eller udviklerne bag mister interessen, så hænger man på den. I må endelig gerne komme med feedback hvis i er uenige.

Derudover har jeg kunne læse mig frem til, at man generelt får et bedre resultat med native udvikling.

Ydermere vil jeg gerne blive mere fortrolig med objektorienteret programmering, hvilket jeg vurderer både java og Objective C giver mig mulighed for.

Jeg udvikler i forvejen på en Mac, så det er ingen hindring mht Xcode etc. Så spørgsmålet går udelukkende på, om det er nemmere at gå den ene eller den anden vej mht at skrive koden.
Java ---> Objective C
eller
Objective C ---> Java.

Jeg fik desuden stjålet min iPhone i sommers og har endnu ikke erhvervet mig en ny smartphone, så nemhed af tests er ikke en faktor for min beslutning.



Du behøver ikke en smartphone, for at teste direkte, da der ofte findes emulatorer du kan kører direkte fra din computer til at teste.

Vil dog sige at jeg personligt syntes at Objective-C syntaksen er utrolig grim og på nogle måder også en smule ulogisk (måske bare min smag), og hælder altså til java. Desuden så syntes jeg at hvis du kan java så vil du samtidig også have mulighed for nemmere at omstille dig til andre teknologier som C# osv. ydermere kan du udvikle både til web o.lign med java, så med hensyn til din prioritering med hvilket sprog du skal starte med, så vil jeg sige Java!



t