Symbiatch - maailma on rikki

iPhone-kehitystä

17.07.2008 08.40 - mobiili ohjelmointi 

Olen parina päivänä naputellut iPhonelle softia kokeeksi ja nyt voi jo kertoa joitain kokemuksia. On löytynyt plussia ja miinuksia kuten aina.

Plussaa (varsinkin verrattuna Symbianiin) on kääntämisen nopeus ja simulaattorin käynnistys. Voitteko kuvitella sekunnissa käynnistyvää simulaattoria? Minä voin. Objective C oli kielenä minulle uusi tuttavuus, mutta eipä se mitenkään kauheaa ole. Totuin siihen aika nopeasti ja homma sujuu. Jonkin verran harjoittelua vaatii GC:n toiminta, .NETissä on tottunut siihen että referenssit ovat automaattisia mutta tämän kanssa joutuu välillä sanomaan retain jotta olio pysyy elossa.

Miinusta saakin sitten XCode ja Interface Builder. XCode jumittaa vähän väliä käännökseen, näyttää virheitä jotka on jo korjattu ja muuta mukavaa. Interface Builder taas on kauhea sotku varsinkin Visual Studion selkeälle ja suoraviivaiselle toiminnalle. Kyllä senkin kanssa toimeen tulee, mutta yhdistettynä debuggauksen olemattomuuteen, yh.

Isoja miinuksia XCoden kanssa on myös debuggauksen toimimattomuus. Suurimman osan ajasta breakpointit näyttävät "ei tätä löydy" eikä luonnollisesti ajo keskeydy niihin. Ja jos tulee poikkeus ajon aikana, tulee vain ilmoitus "no mää nyt keskeytin kun tuli poikkeus jota ei käsitelty" eikä mitään tietoa missä kohtaa jne. Ja jos saa kutsupinon esiin, se sisältää vain Cocoan sisäisiä metodeja. Eli mahdotonta tietää miksi kaatui.

Ihanaa oli myös ihmetellä miksi ihmeessä IB:ssä tehdyt muutokset eivät päivity softaan vaikka mitään virheitä ei tule käännöksessä. Tein tahallani virheen jonka olisi pitänyt kaataa softa, ei vaikutusta. Putsasin käännöstiedostot ja kokeilin uudestaan, ei vaikutusta. Sitten sattumalta kokeilin kääntää sovelluksen itse laitteelle. No hupsista, nyt tulikin ilmoitus ettei NSCalendarDate-luokkaa ole iPhonen kirjastoissa. Ja viittauksen tähän kun poistin niin johan päivittyi käyttöliittymä simulaattorisoftaankin. Ei näin!

Eli paljon olisi Applella vielä tehtävää että kehitys tuonne olisi yhtään järkevää. Intellisensen kopiointi kunnolla, XCoden debuggausominaisuuksien tuonti edes viime vuosikymmenelle jne auttaisi paljon. Mutta näkee nyt miten käy.

Ja niille jotka sanovat että saan aina OS X:n jne rikki: en ole asentanut tuohon koneeseen mitään sovelluksia XCoden ja iPhone SDK:n lisäksi. Enkä tehnyt mitään asetuksia. Joten ei ole minun vikani, niin kerta!

Mutta yksi sovellus on jo kasassa ja odottamassa että saisi devcertin ja muuta sellaista. Ja lisää on työn alla. On tämä silti mukavampaa kehitellä perusjuttuja kuin Symbianilla, näkee miten käy kun alkaa tehdä Oikeita Asioita.

Kommentoi

Kommentit

Manu (anon, 17.07.2008 10.57)

On kyllä vikkelä simulaattorin/emulaattorin käynnistys, mutta epäilen vähän, että jos todella 99% emuloi oikeaa laitetta, niin täytyy sen viedä kauemmin käynnistyä...? Jos käynnistyminen on noin nopeaa, voi vahvasti epäillä, että vähänkin monimutkaisempi sovellus ei sitten raudassa pelaakkaan sinnepäinkään kuin simuiloidessa.

On hyvin paljon mahdollista, että kehitystyökalut ovat hajallaan ja todennäköisesti kestää tovin ennen kuin kunnolla toimivat. Esim. Carbiden (ja CodeWarriorin) oli aluksi todella buginen viritelmä, mutta tänä päivänä täytyy sanoa, että Carbide on kyllä erittäin toimiva IDE.

symbiatch (17.07.2008 11.02)

Se kun on simulaattori niin ei emuloi oikeaa käyttistä. Mutta eipä juuri muutkaan (paitsi MS) emuloi rautaa edes. Tuo simulaattori käyttää kai samoja rajapintoja pääosin kuin OS X normaalistikin niin siksi on pirteä.

Mutta Carbide ja hyvä IDE samassa lauseessa ilman kieltosanaa... Tuo menee jo liian pitkälle. Kunhan se ensin edes osaisi tajuta milloin käännös ei onnistunut (vieläkiin jää virheitä tulematta problems-näkymään), debuggerissa saisi oikeasti ne muuttujien arvot mitä ovat sillä hetkellä, toimisi nopsemmin ja emulaattori ei jumittaisi/kaatuisi vähän väliä (ei sinänsä Carbiden vika) niin ehkä. Mutta en sitä kyllä hyväksi sanoisi.

symbiatch (17.07.2008 11.04)

Anteeksi, se olikin "toimiva IDE", mutta silti kommenttini pysyvät :)

Manu (anon, 22.07.2008 12.34)

Mielummin ajaa raudassa ja loggaa/tracettaa, niin saa oikeita tuloksia. Emulaattorilla näkee toki UI muutokset helpommin.

Siis mikä tekee Carbidesta hyvän, on helppo liikkuminne koodissa, kuten hyppiä luokista toisiin (F3), vaihdella headerin ja sourcen välillä (<ctrl>+<tab>) sekä kaikki pluginit mitä löytyy iso nippu.

Jos ongelmia käännöksessä, <ctrl>+<shift>+'-' on kova sana. :P Menee toki karvan verran kauemmin kun normi käännöksessä, mutta tuskin puolta minsaa kauempaa. Ja kannattaa tuunata ympäristö, niin että käyttää kaikkia prossun ytimiä käännöksessä niin nopeutuu sekin.

Jutut.fi  |  Omat jutut  |  Muiden jutut  |  Kategoriat  |  kirjaudu