archive-fi.com » FI » M » MOBIILIKEHITYS.FI

Total: 273

Choose link from "Titles, links and description words view":

Or switch to "Titles and links view".
  • SQL-tietokanta | Mobiilikehitys
    mukaista on että tietokantametodit palauttavat boolean arvon riippuen onnistuiko metodi vai ei Tietokantakyselyt luonnollisesti palauttavat kyselyn tuloksen boolean addProduct Product product boolean result true SQLiteDatabase db this getWritableDatabase ContentValues values values new ContentValues values put ProductTable PRODUCT NAME product getName values put ProductTable PRODUCT DESCRIPTION product getDescription values put ProductTable PRODUCT COUNT product getQuantity long id db insert PRODUCT TABLE NAME null values if id 1 Log e TAG Could not add product result false return result Tiedon hakeminen tietokannasta Tietokannan lukemiseen riittää vain lukemiseen tarkoitettu SQLiteDatabase olio jonka saa getReadableDatabase metodilla Kyselyn voi toteuttaa yhteen tauluun query metodilla joka tarvitsee useanlaisia parametrejä Tietokantaan voi myös suorittaa kyselyitä rawQuery metodilla mille voi argumenttinä antaa sql kyselyn suoraan stringinä Metodeista saadaan paluuarvona Cursor luokan ilmentymä Kursori antaa pääsyn haettuun tietokantatauluun Tässä esimerkissä käymme kursorin jokaisen rivin läpi ja otamme sarakkeiden tiedot getString ja getInt metodeilla missä parametreinä on sarakkeen numero alkaen nollasta Sarakkeet ovat samassa järjestyksessä kuin kyselyssä annetussa argumentissä Kursori tulisi aina muistaa sulkea sen käyttämisen jälkeen List Product getProducts SQLiteDatabase db this getReadableDatabase String colums new String ProductTable PRODUCT NAME ProductTable PRODUCT COUNT ProductTable PRODUCT DESCRIPTION Cursor cursor db query PRODUCT TABLE NAME colums null null ProductTable PRODUCT NAME null null cursor moveToFirst List Product products new ArrayList Product while cursor isAfterLast false String name cursor getString 0 Log v TAG Found product name Product product new Product name product setDescription cursor getString 2 product setQuantity cursor getInt 1 products add product cursor moveToNext cursor close return products Tiedon poistaminen Tiedon poistaminen tietokannasta tapahtuu hyvin samalla tavalla kuin lisääminen Metodin onnistumisen seuraaminen onnistuu helpoiten kun se palauttaa boolean arvon SQLiteDatabase tarjoaa metodin delete taulun nimi where lause where parametrit joka palauttaa poistettujen rivien lukumäärän boolean deleteProduct Product product SQLiteDatabase db this getWritableDatabase String params new String product getName int

    Original URL path: http://mobiilikehitys.fi/category/sovelluskehitys/sql-tietokanta/ (2016-04-30)
    Open archived version from archive


  • Tallentaminen | Mobiilikehitys
    tietokannassa 1 TEXT tämä on rinnastettavissa Javan Stringiin 2 INTEGER sama kuin Javan Long 3 REAL sama kuin Javan Double 4 BLOB tallentaa tietoa bittitaulukkona Muuta tietoa tallennettaessa täytyy se ensin muuntaa johonkin näistä muodoista Suositeltu tapa käyttää SQLite tietokantaa on tehdä luokka mikä jatkaa SQLiteOpenHelper luokkaa Tässä luokassa sinun on toteutettava omat versiot onCreate ja onUpgrade metodeista Käsittelen SQLite tietokannan tekemistä yksityiskohtaisesti ja esimerkkien kanssa seuraavan viikon androidkehitys fi blogissa 4 Preferenssit SharedPreferences luokka Androidissa mahdollistaa avain arvo parien tallentamisen yksinkertaisista tietotyypeistä boolean float int long string Preferenssit ovat joko aktiviteetti tai puhelinkohtaisia Aktiviteettikohtaiset preferenssit saa getPreferences metodilla ja applikaatiokohtaiset preferenssit getSharedPreferences preferenssiNimi moodi missä moodi on joku seuraavista MODE PRIVATE Tämä on oletus moodi ja antaa vain kutsuvalle applikaatiolle oikeuden käsitellä tiedostoa MODE WORLD READABLE Mikä tahansa applikaatio saa lukuoikeuden tiedostoon MODE WORLD WRITABLE Mikä tahansa applikaatio saa kirjoitusoikeuden tiedostoon MODE MULTI PROCESS Tämä moodi automaattisesti päivittää preferenssit vaikka ne olisi jo ladattu prosessille Näin muiden prosessien tekemät muutokset samaan tiedostoon näkyvät heti ja automaattisesti On kuitenkin parempia tapoja siirtää tietoa prosessista toiseen Preferenssien muokkaaminen vaatii Editor olion käyttöä Preferenssejä voi käyttää esimerkiksi seuraavasti private final String PREFERENSSI NIMI preferenssiNimi private final String NIMI nimi SharedPreferences preferenssit getSharedPreferences PREFERENSSI NIMI Context MODE PRIVATE Editor editori preferenssit edit editori putString NIMI username editori commit Preferenssien lukeminen onnistuu helposti tietotyypin get metodilla jossa annetaan preferenssin nimi ja oletusarvo jos preferenssiä ei löydy preferenssit getString NIMI null Android preferenssit serializable SQL Suorituskyky Tallentaminen tarinoita mobiilikehityksen maailmasta Mobiilikehitys fi Mobiilikehitys fi on Qvik Oy n työntekijöiden ylläpitämä blogi jonka kirjoittajilla on vankka mobiilialan asiantuntijuus Blogissa käsitellään kaikkea mobiilikehitykseen liittyvää ja vähän siitä vierestäkin Seuraa Facebookissa Seuraa Twitterissä Blogin RSS syöte Onko yrityksesi vailla mobiiliosaajia Qvik Oy tekee suuret ja pienet mobiiliprojektit ota yhteyttä niin käynnistetään sinun yrityksesi mobiiliprojekti Recent Posts Sijaintipalvelut iOS

    Original URL path: http://mobiilikehitys.fi/category/sovelluskehitys/tallentaminen/ (2016-04-30)
    Open archived version from archive

  • Testaus | Mobiilikehitys
    import java util List import android test ActivityInstrumentationTestCase2 public class RSSTest extends ActivityInstrumentationTestCase2 MyActivity public RSSTest super fi androidkehitys applikaatio MyActivity class Override protected void setUp throws Exception super setUp Testi metodi public void testPotenssiMetodiOne assertTrue Metodi parametrillä 1 palautti väärän arvon potenssiMetodi 1 1 public void testPotenssiMetodiTwo assertTrue Metodi parametrillä 2 palautti väärän arvon potenssiMetodi 2 4 Override protected void tearDown throws Exception getActivity finish super tearDown Testiluokan kaikki julkiset metodit ovat testi tapauksia ja suoritetaan testauksessa Tässä testiluokassa ei tarvitsisi käyttää aktiviteettiä vaan tehdä yksinkertainen TestCase luokan ilmentymä mutta usein Android metodit voivat tarvita kontekstin tai pääsyn resursseihin joten yleisin yleisimmissä testitapauksissa tarvitset aktiviteetin parametrien käyttöön Aktiviteettien testaus on hiukan ongelmallisempaa yksikkötesteissä koska view komponenttejä ei saa käsitellä UI säikeen ulkopuolella Ratkaisu tähän on seuraavassa kappaleessa esiteltävä black box testaus ja Robotium framework Black box testaus Robotiumilla Black box testauksella tarkoitetaan testausta missä ei tarvitse pääsyä koodiin vaan painellaan laatikon nappuloita Robotiumille riittää päästä käsiksi applikaation apk pakettiin Black box testauksella pystyy tekemään monimutkaisiakin käyttötapaustestejä mutta yksinkertaisuus on yleensä parempi tavoite sillä monimutkaiset testit alkavat kaatua pienilläkin muutoksilla Android tarjoaa rasitustestaukseen oman Monkey Runner in joka simuloi satunnaisia mutta toistettavia painalluksia applikaation näyttöön Tällä on kuitenkin mahdotonta testata jotain tiettyä tarkasti määriteltyä ominaisuutta applikaatiossa Robotium on voimakas työkalu Andoridin black box testaukseen Sen käyttö ei vaadi kattavaa tietoa applikaation koodista ja käyttö on hyvin suoraviivaista Robotiumilla voi ActivityInstrumentationTestCase2 luokkaan luoda Solo olion joka käyttää ja testaa käyttöliittymäelementtejä Override protected void setUp throws Exception super setUp solo new Solo getInstrumentation getActivity public void testLogin solo clickOnButton Kirjaudu sisään assertTrue solo waitForText Kirjautuminen epäonnistui 1 120000 Override protected void tearDown throws Exception try solo finalize catch Throwable e e printStackTrace getActivity finish super tearDown Kun Solo lle on annettu Instrumentaatio ja aloitus aktiviteetti voi navigoinnin applikaatiossa hoitaa kokonaan Solo lla

    Original URL path: http://mobiilikehitys.fi/category/sovelluskehitys/testaus/ (2016-04-30)
    Open archived version from archive

  • Ulkoasu | Mobiilikehitys
    käyttöön tarkemmat grafiikat siihen pystyville näytöille media handheld on kiinnostava parametri mutta sen selaintuki on valitettavan rajallinen Esimerkiksi Safari jättää tämän parametrin kokonaan huomiotta joten parametri ei tunnista iPhonea Tätä parametria en siis suosittele käytettävän orientation tarkoittaa puhelimen asentoa eli onko puhelin vaaka vai pystysuunnassa orientation landscape tarkoittaa että puhelinta pidetään vaakasuunnassa kun taas orientation portrait tarkoittaa pystysuuntaa Media query CSS3 n tuoma uusi ominaisuus joka on jo kuitenkin nykyään erittäin laajasti tuettu Ajantasaisen listan tuetuista selaimista löydät caniuse com sivustolta Media Queryt Qvikin kotisivuilla Qvikin kotisivuilla on käytetty media queryjä sovittamaan sivuston ulkoasu näytön koon mukaiseksi Sivustolla käytetään kolmea eri moodia täysileveä portrait ja mobiili Täysileveässä moodissa käytettävät tyylit määritellään niin että sen leveys on vähintään 1024 pikseliä media screen and min device width 1024px Tällä leveydellä sivun kokonaisleveys on 1000 pikseliä Yksi sivuston käyttöliittymäelementeistä on neljän kiinteän leveyden laatikon gridi joka näyttää kokoleveällä näytöllä tältä Jos tämä osuus näytettäisiin tällaisenaan pienemmällä näytöllä boksit joko leikkaantuisivat tai niitä joutuisi skrollaamaan ja zoomaamaan Esimerkiksi tableteille kuten iPad pystymoodissa jonka leveys 768px on tässä tapauksessa käytännöllistä esittää tämä gridi eri tavalla Tyylitiedostossa nämä tyylit määritellään seuraavasti media screen and min device width 321 and max device width 999 Tällä tavalla määritellyt tyylitiedostot näkyvät esimerkiksi iPhonen vaakatilassa ja iPadin pystytilassa Alla kuvankaappaus Qvikin kotisivuilla Laatikot on asetettu 2 2 gridiin jolloin ne ovat luettavia Koska laatikoiden tarkoitus on tässä tapauksessa pysyä tasalevyisenä niin ne eivät vie enää koko ruutua tilaa On kuitenkin täysin mahdollista tehdä niin että kaksi laatikkoa veisivät aina sen 50 ikkunan leveydestä Tällöin niiden leveys määritellään CSS ssä prosenttilukuna sen containerista Qvikin sivut on tehty myös näyttämään käytännölliseltä myös mobiililaitteella eli 320px tai kapeammilla näytöillä Lisätietoa media queryjen käytöstä löytyy englanniksi W3C n sivuilta CSS media queries iOS Navigaatio Ulkoasu UX Mitä voimme oppia Facebook sovelluksen kotinäkymän kehityksestä February 3 2012 matias Leave a comment Applen tarjoama standardiratkaisu iPhone sovelluksen osiosta toiseen liikkumiseen on enimmillään viisipaikkainen tab bar Jos on tarvetta useammalle osiolle viimeiseksi valinnaksi voidaan laittaa kolme pistettä ja sijoittaa tämän taakse listamuodossa lisäkohteita Apple tulee omissa sovelluksissaan toimeen tällä ratkaisulla mutta usein on tarvetta toteuttaa navigaatio jotenkin muuten Tärkeitä kohteita saattaa olla enemmän kuin viisi tai näytön pinta ala haluttaisiin tehokkaammin käyttöön eikä näytön alalaitaa raaskita varata navigointipalkille Facebookin iPhone sovellus käytti alkuaikoinaan myös tätä ratkaisua Ohessa kuvakaappaus versiosta 2 0 cnet com Kuvassa pistää erityisesti silmään vaikeakäyttöinen vieritettävä navigointipalkki välilehtirakenteen alapuolella Muistan ettei sen kanssa ollut mukava näpertää Tab bar välilehdet vieritettävä palkki on siinä hierarkiaa kerrakseen Ei ihme että Facebook päätti panna navigaation uusiksi sovelluksen 3 0 versiossa Versiossa 3 0 esiteltiin sittemmin varsin laajasti käytetty kotinäkymäpatterni jossa päänavigaatio on koko ruudun kokoinen Skaalautuminen hoidetaan samaan tapaan kuin iPhonen kotinäytöllä näyttö kerrallaan vaakasuunnassa vierittämällä kuva Ars Technica Etuna on että kohteita mahtuu näkyviin enemmän kuin tab bariin ja näkymästä saadaan visuaalisempi Valikko ei myöskään haaskaa tilaa muilta näkymiltä Haittapuolena on että valikko täytyy avata erillisellä painalluksella Päädyimme vastaavaan ratkaisuun viime kesänä myös Taloussanomien iPhone version kanssa Ensin toteutetussa iPad versiossa tärkeimmät osiot olivat mahtuneet näkyviin vaakasuuntaiseen palkkiin mutta puhelimen ruudulla olisi tullut ahdasta emmekä halunneet tuoda ylimääräistä palkkia pystysuuntaista tilaa viemään joten toteutimme kotinäkymäratkaisun Facebookiin tapaan sovellus aukeaa ensisijaisesti tärkeimpään uutisnäkymään ja kotinäkymään pääsee erikseen painamalla Käytimme painikkeen symbolina Facebookista poiketen talon kuvaa sillä Facebookin käyttämä kuva toi liikaa mieleen list grid painikkeen Pian saimme huomata että ratkaisu oli juuri mennyt muodista Facebookin nykyinen versio toi mukanaan uuden version kotinäkymästä Se ei enää olekaan erillinen koko ruudun näkymä vaan näytön reunasta aukeava osittain valitun näkymän alle peittoon jäävä lista Vierityssuunnaksi on valittu jälleen Applen standardin more näkymän tapaan pystysuunta Jos vanha kotinappi näytti grid valinnalta uusi näyttää vastaavasti list napilta Raa asti painallusten määrällä analysoiden tämä lähestymistapa ei ole sen tehokkaampi kuin aiempi koko ruudun kotinäkymä Yhtä lailla se vaatii yhden painalluksen aueatakseen ja samaan tapaan se estää nykyisen näkymän käytön valikon ollessa auki Henkinen etäisyys osittain nykyisen näytön takaa aukeavaan valikkoon sen sijaan tuntuu lyhyemmältä Valikon vaikutelma ei ole yhtä visuaalinen kuin koko ruudun kotinäkymän ja mikä yllättävintä listaan ei mahdu sen enempää kohteitatakaan Aiempaan kotinäkymään mahtuu hakuluukku ja yhdeksän kohdetta Uudessa listassa on hakuluukun lisäksi vain kahdeksan kohdetta Niin tai näin uusi patterni on jo osoittautunut suosituksi Google on ottanut sen käyttöönsa iPhonen Gmail sovelluksessa oleellisella parannuksella valikon saa näkyviin ja piiloon valikkonapin lisäksi sormella pyyhkäisemällä Viimeiseen asti hiotusta käyttöliittymästään tunnettu oman elämänsä facebook Path on toteuttanut kenties hienoimman version tästä lähestymistavasta Valikko aukeaa Gmailin tapaan pyyhkäisyeleellä mutta toimii huomattavasti pehmeämmin joustopomppuineen kaikkineen Vastaavasti osiosta toiseen siirryttäessä se animoituu hetkeksi pois näkyvistä ja palaa takasin niin että näkymä on jo valmiiksi piirretty Android Animaatio Sovelluskehitys Ulkoasu Animaatiot Androidissa August 25 2011 tommy Leave a comment Helppo tapa tehdä applikaatiostasi hienompi on lisätä animaatioita Käymme tässä läpi yksinkertaisia animaatioita ja niiden käyttämistä applikaatiossasi Tässä esimerkissä keskitymme elementtien sijainnin muuttamiseen animaatioilla Animaatioita voi tehdä kahdella tavalla Joko suoraan koodissa tai määritellä erikseen xml ssä Jos animaatiossa ei tarvitse laskea suoritusaikana mitään tulisi ne tehdä xml ssä että koodi on selkeämpää Voit ladata esimerkin lähdekoodin täältä Animaatio koodissa Animaation luominen koodissa on hyvin suoraviivaista Uusi animaatio olio luodaan halutunlaisesta animaatiotyypistä Tässä tapauksessa TranslateAnimation int fromXType float fromXValue int toXType float toXValue int fromYType float fromYValue int toYType float toYValue Type attribuutit kertovat onko animoitava matka absoluuttinen vai suhteellinen Suhteellinen matka voi riippua joko itse animoitavasta näkymästä tai sen vanhemmasta Animation ABSOLUTE Animation RELATIVE TO SELF Animation RELATIVE TO PARENT Koodissa olen käyttänyt absoluuttista siirtymätyyppiä sillä haluan animoida valikon liikkumisen vain piiloon jäävältä osiolta jonka olen asettanut 100dp ksi Huomaa että koodissa täytyy ottaa huomioon dp t eli näytön tiheydestä riippumattomat pikselit Näytön tiheyden saat float scale getResources getDisplayMetrics density Koska absoluuttisia siirtoja ei voi ilmoittaa dp nä on annetut dp t kerrottava näytön tiheydellä jotta saat dp n arvon pikseleinä Animaatiolle tulee asettaa kesto minkä aikana animaatio suoriutuu loppuun Kesto annetaan millisekuntteina animation setDuration 500 Animaation loputtua liikutettu näkymä ei suoraan jää sille asetettuun paikkaan vaan sen paikka täytyy asettaa koodissa ja vasta kun animaatio on päättynyt Muuten kuva hyppää asettamaasi paikkaan suoraan Huomaa Huomaa että

    Original URL path: http://mobiilikehitys.fi/category/sovelluskehitys/ulkoasu/ (2016-04-30)
    Open archived version from archive

  • Widget | Mobiilikehitys
    tehda seuraavanlainen kutsu void requestAndLogInput InputDialog dlg InputDialog dialog dlg showModal NSLog Dialog input was dlg getInput Aloitetaan dialogin luomisesta Tähän käytetään normaalia Cocoa Touch boilerplatea InputDialog dialog NSArray nibViews NSBundle mainBundle loadNibNamed InputDialog owner nil options nil InputDialog dlg nibViews objectAtIndex 0 retain autorelease return dlg Määritellään metodi jolla dialogi näytetään modaalisti se asettuu päällimmäiseksi ja blokkaa kunnes dialog on suljettu iOS lla event loop tunnetaan nimellä Run loop ja sitä vastaavat APIt ovat NSRunLoop sekä Core Foundationin CFRunLoop void showModal Lisätään dialogimme keywindow n ylimmän lapsen ylimmäksi lapseksi jolloin dialogi päätyy päällimmäiseksi view stackiin UIWindow keyWindow UIApplication sharedApplication keyWindow UIView topmostView keyWindow subviews objectAtIndex 0 topmostView addSubview self Sijoitetaan dialogi suunnilleen keskelle ruutua CGSize s topmostView bounds size self center CGPointMake s width 2 s height 2 70 Ajetaan nested run loop aktivaatio jolloin showModal kutsu blokkaa CFRunLoopRun Lopuksi määritellään dialogin sulkeva IBAction IBAction okPressed Poistetaan dialogi näkyvistä self removeFromSuperview Pysäytetään sisempi run loop aktivaatio kontrolli palaa ulommalle ja showModal kutsu palaa CFRunLoopStop CFRunLoopGetCurrent Valmista Ja koska kyseessä ovat erilliset run loop aktivaatiot eivätkä erilliset run loopit esimerkiksi timerit jatkavat eloaan ja autorelease pool on jaettu aktivaatioiden välillä Esimerkkiprojekti Xcode 4 5 projektina 40kB zip Android Manifest Widget Widgetit Androidissa October 25 2011 tommy Leave a comment Widgetit näyttävät applikaation kaikkein oleellisimman tiedon nopeasti ja yksinkertaisesti työpöydällä Widgettejä voi myös käyttää käynnistämään applikaatioita tai taustaprosesseja kuten mediasoittimen Tässä artikkelissa toteutamme mahdollisimman yksinkertaisen widgetin jotta saamme idean mitä kaikkea sen toimintaan saamiseen tarvitaan Toteutamme widgetin jossa on tekstikenttä ja nappula nappulaa painamalla kasvatamme tekstikentässä olevaa numeroa yhdellä Erityisesti kiinnitämme huomiota widgetin tilan päivittämiseen sekä manuaalisesti että automaattisesti Esimerkki koodi https github com Androidkehitys Androidkehitys Widget Widget layout Widgetin layout toteutetaan samalla tavalla kuin minkä tahansa aktiviteetin layout On kuitenkin otettava huomioon että widgetti luodaan RemoteViews luokan ilmentymänä ja layoutissa voi näin ollen käyttää vain seuraavia layout elementtejä Layoutit FrameLayout LinearLayout RelativeLayout Widgetit AnalogClock Button Chronometer ImageButton ImageView ProgressBar TextView ViewFlipper AppWidgetProviderInfo Metadata Tämä XML tiedosto määrittää widgetille tarpeelliset tiedot kuten korkeuden ja leveyden päivitysvälin esikatselun layoutin asetukset aktiviteetin sekä widgetin koon muuttamisen vaaka ja tai pystysuunnassa Android 3 1 Androidin kotinäkymä koostuu ruudukosta jossa jokainen ruutu on kooltaan 74dp 74dp Widgetin tulee jättää 2dp tä tilaa leveydessä ja korkeudessa jotta vältetään mahdolliset virheet ajonaikaisessa koon määrityksessä kun dp t muutetaan pikseleiksi Käytä kaavaa solujen määrä 74 2 widgetin koon määrittelemiseen Päivitysväli määrittää ajan jonka välein Android päivittää widgetin tiedot Tämä päivitys herättää laitteen lepotilasta ja suorittaa onUpdate metodin AppWidgetProvider luokassa Ei myöskään ole takuita tapahtuuko päivitys ajallaan Suositeltavampaa on toteuttaa widgetti niin että se päivittää vain silloin kun sen on pakko eikä useammin appwidget provider xmlns android http schemas android com apk res android android minWidth 146dp android minHeight 72dp android updatePeriodMillis 86400000 android initialLayout layout widget layout appwidget provider Widget Manifestissä ja painallukseen reagointi Manifestissä widget määritellään receiver elementin sisälle Tässä elementissä määrittelet oman toteutuksesi AppWidgetProvider luokan ilmentymästä ja määrittelet ne Intent lähetykset broadcast jotka AppWidgetProvider hyväksyy Nämä lähetykset suoritetaan onReceive metodissa receiver android name ExampleWidgetProvider intent filter

    Original URL path: http://mobiilikehitys.fi/category/sovelluskehitys/widget/ (2016-04-30)
    Open archived version from archive

  • Tiedotteet | Mobiilikehitys
    a comment iPhone ja iPad ovat nyt kovassa huudossa Päivittäin voimme lukea lehtijuttuja kuinka suomalaisen Rovion Angry Birds valloittaa maailmaa kuinka Helsingin Sanomat on julkaissut iPad sovelluksensa tai kuinka Vanjoki hyppäsi Apple kelkkaan Näiden tarinoiden taustalla on satojen tuntien iOS kehitystyö joiden tarinat ovat vielä jäännet suomeksi kertomatta Tämän blogin tarkoituksena on kertoa kaikille kiinnostuneille iOS sovelluskehityksestä siinä käytettävistä työkaluista jipoista ja tärkeimmistä alaan liittyvistä uutisista Blogin kirjoittajina toimii Qvik Oy n työntekijät joilta löytyy kokemusta kymmenistä iOS sovellutuksista ja yleisesti mobiilikehityksestä Pyöritämme myös Android kehityksestä kertovaa blogia osoitteessa androidkehitys fi iOS iPad iPhone Qvik Android Tiedotteet Androidkehitys fi avattu January 25 2011 admin Leave a comment Tervehdys kaikki Android sovelluskehityksestä kiinnostuneet Tässä blogissa tullaan jatkossa julkaisemaan teknistä ja vähemmän teknistä asiaa Android sovelluskehitykseen liittyen Pääosa asioista käsittelee natiivisovellusten kehitystä julkaisua jakelua sovellusten dynamiikkaa jne Kehoitamme kaikkia osallistumaan keskusteluun ja ottamaan yhteyttä sivuston ylläpitäjiin mikäli olette kiinnostuneita Android sovelluskehityksestä Stay tuned tarinoita mobiilikehityksen maailmasta Mobiilikehitys fi Mobiilikehitys fi on Qvik Oy n työntekijöiden ylläpitämä blogi jonka kirjoittajilla on vankka mobiilialan asiantuntijuus Blogissa käsitellään kaikkea mobiilikehitykseen liittyvää ja vähän siitä vierestäkin Seuraa Facebookissa Seuraa Twitterissä Blogin RSS syöte Onko yrityksesi vailla mobiiliosaajia Qvik Oy tekee suuret ja pienet mobiiliprojektit ota yhteyttä niin käynnistetään sinun yrityksesi mobiiliprojekti Recent Posts Sijaintipalvelut iOS applikaatioissa 2 Geokoodaus Sijaintipalvelut iOS applikaatioissa OUYA Android konsoli Windows Phone 8 ja parantunut HTML5 tuki Porttautuva koodi mobiilissa Archives November 2013 August 2013 June 2013 April 2013 February 2013 January 2013 December 2012 October 2012 September 2012 August 2012 July 2012 June 2012 May 2012 March 2012 February 2012 January 2012 December 2011 November 2011 October 2011 September 2011 August 2011 July 2011 April 2011 March 2011 February 2011 January 2011 Categories Alustat 63 Android 24 HTML5 7 iOS 30 Windows Phone 12 Julkaisu 5 Käyttöjärjestelmät 4 Laitteet 5 iPad

    Original URL path: http://mobiilikehitys.fi/category/tiedotteet/ (2016-04-30)
    Open archived version from archive

  • Tutoriaalit | Mobiilikehitys
    skitch comiin käy sekin yhdellä klikkauksella Screenshot Journal 1 59 Tietokoneen lisäksi kuvakaappauksia tulee helposti ottaneeksi valtavat määrät puhelimelta Valitettavasti Apple on katsonut viisaaksi näyttää kuvakaappaukset samassa läjässä puhelimella otettujen valokuvien kanssa Apuun tulee Screenshot Journal joka poimii kuvakaappaukset erilleen kuvavirrasta ja tarjoaa keinoja kuvien hallintaan Jos tykkää nahkaefekteistä ja tikkauksista sovellukseen kannattaa tutustua jo niiden vuoksi Ovat keskimääräistä hienommat Kuvansiirtäjä Mac OS X n mukana tuleva kuvansiirtäjä ei ole tainnut saada ainuttakaan päivitystä sitten ensimmäisen Mac OS X version ja käyttöliittymä on muutamilta osin rasittava Jos puhelimelta haluaa noutaa kuvakaappauksia se on kuitenkin kevyempi vaihtoehto kuin iPhoto Jos tiedät Kuvansiirtäjää paremman vaihtoehdon kerro toki kommenteissa iOS Simulator Cropper ilmainen Laitteella kuvakaappauksien ottaminen on kaikesta huolimatta vähän jähmeää Käyttöohjeita promokuvia yms varten on usein kätevämpää ottaa kuvakaappaukset suoraan Xcoden Simulator ohjelmasta iOS Simulator Cropper ottaa kuvakaappauksen pelkästään simulaattorissa pyörivästä ohjelmasta nimeää sen halutulla tavalla ja lisää haluttaessa kuvan ympärille iPhone kuoret kiiltoineen kaikkineen Myös status barin poistaminen kuvan ylälaidasta onnistuu helposti jos vaikka haluaa lisätä kuvakaappaukset App Storeen Applen ohjeiden mukaan ilman palkkia iPhone Configuration Utility ilmainen Sovellusten ja provisiointiprofiilien asentaminen onnistuu periaatteessa iTunesilla mutta sillä on paha tapa synkronoida valtavia datamassoja joka välissä heti kun se löytää koneeseen kytketyn puhelimen Kätevämpi työkalu on Applen tarjoama iPhone Configuration Utilyty Sen avulla voi mm asentaa IPA muotoisia sovelluksia laitteelleen kun sellainen tarve tulee Saatavilla myös Windowsille Quicklook plugin for provisioning profile files ilmainen Provisiointiprofiilien kanssa tappelu on iOS kehityksessä väistämättä vastaantuleva hupi Tuskaa vähentää jos voi kätevästi varmistua että sovelluksen pitäisi teoriassa asentua halutulle laitteelle Tämä kätevä lisäpalikka antaa Finderille kyvyn näyttää suoraan mitkä testilaitteet sovelluksen provisiointiprofiiliin on lisätty UDID ilmainen Jotta voisi varmistua että oma puhelin on tuettu pitäisi tietää puhelimen UDID koodi Sen saa selvitettyä iTunesilla mutta Apple on tehnyt sen siinä määrin hankalaksi että on usein helpompaa neuvoa ihmisiä asentamaan puhelimeen sovellus tätä varten UDID on yksi näistä Parempiakin saattaa olla Picturesque 11 99 Törmäsin Picturesquehun vasta mutta se näyttää lupaavalta iPhone sovelluksia tykätään usein esitellä heijastuksin je perspektiivitempuin kuorrutettuina Picturesque tekee nämä yleisimmät efektit helposti ja antaa tallentaa kuvat myös läpinäkyvällä taustalla Kätevä jos kaipaat vapautusta Photoshopista Aloittelijat HTML5 Ulkoasu Mobiiliselaimen tunnistaminen CSS llä March 20 2012 anton Leave a comment Selainten tunnistaminen tulee monesti kuvioihin silloin kun joko sivun tyylejä logiikkaa tai sisältöä muokataan sopimaan erikokoisille näytöille tai mobiiliselaimelle Tähän on olemassa monenlaisia tekniikoita ja tässä blogipostauksessa esittelen tavan tehdä tämä CSS sääntöjen avustuksella Media Queryn käyttö CSS ssä pystyy määrittämään CSS tyylien säännöt sen perusteella minkä levyinen ikkuna tai laite on Tämä onnistuu CSS n media query ominaisuuden avulla alla kerrotulla tavalla Parametreina voidaan käyttää esimerkiksi laitteen leveyttä ja korkeutta sekä pikselitiheyttä 1 CSS tyylitiedoston aktivoiminen headissa ehtojen perusteella link rel stylesheet media screen and min device width 320px and min device pixel ratio 2 href retina styles css 2 CSS säännön aktivointi ehtojen perusteella media screen and min device width 320px and max device width 480px and min device pixel ratio 2 and webkit min device pixel ratio 2 and moz min device pixel ratio 2 display block 3 CSS tiedoston sisällyttäminen toiseen CSS tiedostoon import url styles retina iphone css screen and min device width 320px and max device width 480px and min device pixel ratio 2 and webkit min device pixel ratio 2 and moz min device pixel ratio 2 Mobiilikehityksen kannalta tärkeimpiä parametrejä ovat min device width ja max device width jotka rajoittavat tyylin käyttöä tietyn levyisille näytöille Näillä saadaan sivuston tyylit mukautumaan mobiilinäytölle min device pixel ratio tarkoittaa näytön pikselitiheyttä Tyypillisen tietokoneen näytön ja peruspuhelimen arvo on 1 mutta esimerkiksi iPhone 4 llä ja iPhone 4S llä tämä arvo on 2 Selitys tälle on ns retina näytössä näytön koko on iPhone 3G ssä ja iPhone 4 ssä on sama mutta näytön leveys ja korkeus on kaksinkertainen Tällöin sivustolla olevat kuvat näkyvät iPhone 4 n tarkemmalla näytöllä pikselöityneenä ja epätarkkoina sillä käytetyn grafiikan resoluutio on liian pieni Tämän säännön avulla voidaankin saada käyttöön tarkemmat grafiikat siihen pystyville näytöille media handheld on kiinnostava parametri mutta sen selaintuki on valitettavan rajallinen Esimerkiksi Safari jättää tämän parametrin kokonaan huomiotta joten parametri ei tunnista iPhonea Tätä parametria en siis suosittele käytettävän orientation tarkoittaa puhelimen asentoa eli onko puhelin vaaka vai pystysuunnassa orientation landscape tarkoittaa että puhelinta pidetään vaakasuunnassa kun taas orientation portrait tarkoittaa pystysuuntaa Media query CSS3 n tuoma uusi ominaisuus joka on jo kuitenkin nykyään erittäin laajasti tuettu Ajantasaisen listan tuetuista selaimista löydät caniuse com sivustolta Media Queryt Qvikin kotisivuilla Qvikin kotisivuilla on käytetty media queryjä sovittamaan sivuston ulkoasu näytön koon mukaiseksi Sivustolla käytetään kolmea eri moodia täysileveä portrait ja mobiili Täysileveässä moodissa käytettävät tyylit määritellään niin että sen leveys on vähintään 1024 pikseliä media screen and min device width 1024px Tällä leveydellä sivun kokonaisleveys on 1000 pikseliä Yksi sivuston käyttöliittymäelementeistä on neljän kiinteän leveyden laatikon gridi joka näyttää kokoleveällä näytöllä tältä Jos tämä osuus näytettäisiin tällaisenaan pienemmällä näytöllä boksit joko leikkaantuisivat tai niitä joutuisi skrollaamaan ja zoomaamaan Esimerkiksi tableteille kuten iPad pystymoodissa jonka leveys 768px on tässä tapauksessa käytännöllistä esittää tämä gridi eri tavalla Tyylitiedostossa nämä tyylit määritellään seuraavasti media screen and min device width 321 and max device width 999 Tällä tavalla määritellyt tyylitiedostot näkyvät esimerkiksi iPhonen vaakatilassa ja iPadin pystytilassa Alla kuvankaappaus Qvikin kotisivuilla Laatikot on asetettu 2 2 gridiin jolloin ne ovat luettavia Koska laatikoiden tarkoitus on tässä tapauksessa pysyä tasalevyisenä niin ne eivät vie enää koko ruutua tilaa On kuitenkin täysin mahdollista tehdä niin että kaksi laatikkoa veisivät aina sen 50 ikkunan leveydestä Tällöin niiden leveys määritellään CSS ssä prosenttilukuna sen containerista Qvikin sivut on tehty myös näyttämään käytännölliseltä myös mobiililaitteella eli 320px tai kapeammilla näytöillä Lisätietoa media queryjen käytöstä löytyy englanniksi W3C n sivuilta CSS media queries Aloittelijat HTML5 Mobiilisovellus web tekniikoilla perusteet March 9 2012 anton Leave a comment Perinteisillä web tekniikoilla on nykyään mahdollista tehdä natiivisovelluksen kaltaisia puhelimen tai tabletin näytöllä paremmin käytettäviä sovelluksia Tällöin sovellus on käytettävissä puhelimen web selaimella tai se voidaan paketoida natiiviapplikaatioksi esimerkiksi PhoneGap kirjaston avulla Web applikaation ero mobiilioptimoituun web sivustoon on natiiviapplikaation kaltaiset komponentit mahdollinen offline tila sekä animoidut siirtymät

    Original URL path: http://mobiilikehitys.fi/category/tutoriaalit/ (2016-04-30)
    Open archived version from archive

  • iOS 5 | Mobiilikehitys
    ja loppuun kyseiset rivit Tämän jälkeen voi rauhassa koodailla metodin sisälle mitä haluaa Yläpuolella olevassa esimerkkitapauksessa metodi laskee miljoonaan ja printtaa konsoliin jokaisen numeron Lisää tietoa säikeistä löytyy Applen sivuilta Esimerkki iOS multithreading Objective C säikeet threads Aloittelijat Alustat iOS iOS 5 Tutoriaalit Manuaalinen muistinhallinta for dummies iOS alustalla Osa 1 January 19 2012 jussi Leave a comment Manuaalinen muistinhallinta voi tuntua alussa haastavalta aloittelevalle ohjelmoijalle Useissa ohjelmointikielissä vastuu muistinhallinnasta on siirretty garbage collectorille joka hoitaa muistinhallintaa automaattisesti Apple lisäsi iOS 5 0 version myötä alustalleen ARC n Automatic Reference Counting joka estää tehokkaasti mm muistivuotoja ja olioiden vapauttamisesta johtuvia kaatumisia ARC ei tuo Objective C lle garbage collectoria vaan se lisää olioille tarvittavat retain ja release kutsut ennen ohjelman kääntämistä Xcode 4 2 tarjoaa työkalun jolla olemassa olevia projekteja voi konvertoida ARC yhteensopiviksi ARC n voi myös kytkeä pois päältä tiedostokohtaisesti Jos et kuitenkaan pysty tai halua käyttää projektissasi ARC tä voit noudattaa muutamaa ohjenuoraa jotka estävät turhia muistivuotoja ja kaatumisia Luokkamuuttujat Kun luot uuden luokkamuuttujan voit yksinkertaistaa muistinhallinnan tekemällä siitä propertyn ja asettamalle propertylle retain parametrin Heti tämän jälkeen kannattaa lisätä luokan dealloc metodin sisälle kutsun jolla vapautetaan muuttuja Sen jälkeen voit unohtaa muistinhallinnan kyseisen muuttujan osalta On vain yksi asia mikä pitää muistaa Aina kun asetat muuttujaan tietoa käytä self notaatiota ja vain autoreleasettuja olioita Käyttämällä self notaatiota autoreleasetulle objektille kutsutaan samalla retain metodia koska propertyyn oli asetettu retain parametri Kun ottaa tavaksi luoda luokan metodien sisällä vain autoreleasattuja objekteja välttyy monilta ikäviltä muistivuodoilta Tällöin ohjelmoijan ei täydy koskaan kutsua manuaalisesti olioiden retain ja release metodeja koska kaikki tarvittava on hoidettu propertyn esittelyssä ja luokan dealloc metodissa Alla havainnollistava esimerkki aiheesta EsimerkkiYksi h interface EsimerkkiYksi NSObject NSString muuttujaYksi property nonatomic retain NSString muuttujaYksi void minunMetodi EsimerkkiYksi m implementation synthesize muuttujaYksi void minunMetodi self muuttujaYksi NSString stringWithString Testi teksti void dealloc muuttujaYksi release super dealloc end Lisää tietoa muistinhallinnasta iOS alustalla löytyy Applen sivuilta ARC Automatic Reference Counting Esimerkki iOS muistinhallinta iOS iOS 5 Tutoriaalit iOS5 uutuus UIPagingViewController December 29 2011 anton Leave a comment iOS5 n mukana tuli uusia mahdollisuuksia muokata valmiiden komponenttien ulkoasua Lisäksi sovelluskehittäjille tuli tarjolle kokonaan uusia komponentteja Vaikka nämä komponentit eivät toimi vanhemmilla versioilla jossakin vaiheessa on perusteltua vaatia käyttäjiltä iOS5 versiota sovelluksen asentamiseksi tai päivittämiseksi Jo nykyäänkin jotkin sovellukset vaativat toimiakseen iOS5 version etunenässä Applen omat sovellukset Esittelenkin nyt teille uuden komponentin nimeltään UIPagingViewController joka lisää samanlaisen sivunvaihtoefektin kuin iBooks applikaatiossa on ollut käytössä alusta asti Kuvankaappaus lopputuloksesta näkyy kuvassa 1 Lopputulos Continue reading iOS5 uutuus UIPagingViewController Aloittelijat iOS iOS 5 Tutoriaalit iOS 5 Projektin luonti storyboardeilla November 3 2011 anton Leave a comment Apple on hiljattain julkaissut odotetun käyttöjärjestelmäpäivityksen eli iOS 5 Mukana tuli läjä uusia API rajapintoja ja ominaisuuksia joista on paljon iloa ohjelmistokehittäjille Yksi tärkeimmistä lisäyksistä on storyboard tiedostot joissa pystyy helposti määrittämään applikaation navigointilogiikan ja transitiot siirtymissä Storyboardeja kannattaa kuitenkin toistaiseksi käyttää vain iOS5 käyttöjärjestelmille suunnitelluissa ohjelmissa sillä storyboardit eivät toimi laitteissa joissa on vanhempi käyttöjärjestelmä iOS 5 laitteiden määrä kasvaa nopeaa tahtia mutta menee vielä aikaa että

    Original URL path: http://mobiilikehitys.fi/category/tutoriaalit/ios-5/ (2016-04-30)
    Open archived version from archive