Sivu 1/9

iPhonen ohjelmointi: kysymykset ja vinkit yms

Lähetetty: 1.3.2009 klo 21.10
Kirjoittaja mikko93
En löytäny täältä vielä tämmöstä ketjua joten teinpä uuden. Tässä tulee myös oma ongelmani. Olen siis todella aloittelija joten kertokaa kaikki mikä mättää.

Noh tein erään oppaan mukaan tämmöisen piirto-ohjelman ja nyt tähän pitäisi saada sellainen toiminto, että se quartzin avulla kirjottas isolla tuohon päälle. Eli tämmöstä oon saanu aikaan:

MainView.h

Koodi: Valitse kaikki

#import <UIKit/UIKit.h>

@interface MainView : UIView {
	CGContextRef	_myContext;

}




@end

MainView.m

Koodi: Valitse kaikki

#import "MainView.h"


@implementation MainView


- (id)initWithFrame:(CGRect)frame {
    if (self = [super initWithFrame:frame]) {
        // Initialization code
		
		self.backgroundColor = [UIColor yellowColor];
		CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
		_myContext = CGBitmapContextCreate(NULL, self.frame.size.width, self.frame.size.height, 8, 4 *self.frame.size.width, colorSpace, kCGImageAlphaPremultipliedFirst);
		CGColorSpaceRelease(colorSpace);
		
		CGContextSetLineWidth(_myContext, 10.0);
		CGContextSetLineCap(_myContext, kCGLineCapRound);
		CGContextSetRGBStrokeColor(_myContext, 1.0, 1.0, 1.0, 1.0);
		
    }
    return self;
}


void MyDrawText (CGContextRef myContext, CGRect contextRect) // 1
{
    float w, h;
    w = contextRect.size.width;
    h = contextRect.size.height;
	
//    CGAffineTransform myTextTransform; // 2
    CGContextSelectFont (myContext, // 3
						 "Times-Bold",
						 h/10,
						 kCGEncodingMacRoman);
    CGContextSetCharacterSpacing (myContext, 10); // 4
    CGContextSetTextDrawingMode (myContext, kCGTextFillStroke); // 5
	
    CGContextSetRGBFillColor (myContext, 0, 1, 0, .5); // 6
    CGContextSetRGBStrokeColor (myContext, 0, 0, 1, 1); // 7
//    myTextTransform =  CGAffineTransformMakeRotation  (MyRadians (45)); // 8
//    CGContextSetTextMatrix (myContext, myTextTransform); // 9
    CGContextShowTextAtPoint (myContext, 40, 0, "Quartz 2D", 9); // 10
}





- (void)drawRect:(CGRect)rect {
    // Drawing code
	
	CGContextRef currentContext = UIGraphicsGetCurrentContext();
	
	CGImageRef image = CGBitmapContextCreateImage(_myContext);
	CGContextDrawImage(currentContext, [self bounds], image);
	CGImageRelease(image);

}



- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
	UITouch *touch = [touches anyObject];
	
	CGPoint FirstLocation = [touch previousLocationInView:self];
	CGPoint SecondLocation = [touch locationInView:self];
	CGContextBeginPath(_myContext);
	CGContextMoveToPoint(_myContext, FirstLocation.x, FirstLocation.y);
	CGContextAddLineToPoint(_myContext, SecondLocation.x, SecondLocation.y);
	CGContextStrokePath(_myContext);
	
	MyDrawText(_myContext, [self bounds]);
	[self setNeedsDisplay];
	
}




- (void)dealloc {
    [super dealloc];
}


@end
QuartztestAppDelegate.h

Koodi: Valitse kaikki

#import <UIKit/UIKit.h>

@class MainView;

@interface QuartztestAppDelegate : NSObject <UIApplicationDelegate> {
    UIWindow *window;
	MainView * mainView;
}

@property (nonatomic, retain) UIWindow *window;
@property (nonatomic, retain) MainView *mainView;


@end
QuartztestAppdelegate.m

Koodi: Valitse kaikki

#import "QuartztestAppDelegate.h"
#import "MainView.h"

@implementation QuartztestAppDelegate

@synthesize window;
@synthesize mainView;


- (void)applicationDidFinishLaunching:(UIApplication *)application {    
	
	window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
	mainView = [[MainView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]];


	
	[window addSubview:mainView];
    [window makeKeyAndVisible];
}


- (void)dealloc {
	[mainView release];
    [window release];
    [super dealloc];
}


@end


Eli tuommosta. Tuolla on varmaa jotai ylimäärästäki ku on tullu kokeiltua monenlaista. Mutta mikäs mättää kun tuo "Quartz 2D" teksti ei ilmesty? Piirto siis toimii moitteetta.
Olisi mahtavaa jos joku osaisi/viitsisi jelppiä alottelijaa :)

-Mikko

Re: iPhonen ohjelmointi: kysymykset ja vinkit yms

Lähetetty: 2.3.2009 klo 14.03
Kirjoittaja mike.mcfin
En muista ulkoa mutta mahtaakohan iPhonessa olla Times-Bold -nimistä fonttia?

Kokeile [UIFont familyNames] ja [UIFont fontNamesForFamilyName:family] mitä sieltä löytyy ja valitse joku sellainen. Myös noiden CG-funktioiden paluuarvot kannattaisi dumpata esim. NSLog():lla ulos jotta näkee mihin tyssää.

Re: iPhonen ohjelmointi: kysymykset ja vinkit yms

Lähetetty: 14.4.2009 klo 16.15
Kirjoittaja mikko93
Moro!
Olis kysymys koskien NSData objektia.

Käytän SDK 3.0 beta 2:sta ja löysin netistä ohjeet miten tehdä peer-to-peer lähetysofta.
Ohjeessa lähetetään NSData objekti sisältäen int luvun ja sen pituuden:

Koodi: Valitse kaikki

int luku;
luku = 1;
myData = [[NSData alloc] initWithBytes:&luku length:sizeof(int)];

//Sitten luetaan näin:

[data getBytes:&luku length:sizeof(int)];
Tämä toimii siis ok.
Mutta miten saan NSDataan lisättyä NSString tyyppisen merkkijonon ja sen pituuden?
Näin olen kokeillut:

Koodi: Valitse kaikki

NSString *viesti;
viesti = [[NSString alloc] initWithString:@"Moronta"];
NSData *myData;
myData = [[NSData alloc] initWithBytes:viesti length:[viesti length]];

//Sitte luetaan vastaanottopäässä näin:
[data getBytes:viesti length:[data length]];
Debuggerilla näkyy datan lenght aivan oikein eli 7 bytes. Mutta, kun getBytesillä on haettu tuohon viestiin se arvo niin näkyy "invalid" eikä "Moronta"
Pitääkö tuossa ennen viestiä olla tuo &-merkki? Onkohan tuo ihan päin honkia? :D

Re: iPhonen ohjelmointi: kysymykset ja vinkit yms

Lähetetty: 14.4.2009 klo 17.12
Kirjoittaja mikian
NSStringh length palauttaa merkkijonon merkkien määrän, siis merkkijonon pituuden, ei sen viemää tilaa, mitä tuo getBytes tarvitsisi. Äkkiä katsottuna NSString:ltä löytyy lengthOfBytesUsingEncoding -metodi, jolla voipi toimia.

Toinen moka mikä näkyy on, että luet objektiin data arvoja pituuden length verran, joka luetaan objektista itseään, jota ollaan vasta lukemassa. Eli tuo data objektihan on tyhjä vastaanottopäässä ennen kuin tuo getBytes -operaatio on suoritettu, joten sinun pitää ensiksi lähettää luettavan merkkijonon pituus ja sitten vasta lähettää ja vastaanottaa merkkijono, ellei löydy jotain valmista nättiä tapaa tuohon (joka siis tekee itse tuon operaation).

Re: iPhonen ohjelmointi: kysymykset ja vinkit yms

Lähetetty: 15.4.2009 klo 8.47
Kirjoittaja mike.mcfin
mikko93 kirjoitti:Moro!
Olis kysymys koskien NSData objektia.
....
Debuggerilla näkyy datan lenght aivan oikein eli 7 bytes. Mutta, kun getBytesillä on haettu tuohon viestiin se arvo niin näkyy "invalid" eikä "Moronta"
Pitääkö tuossa ennen viestiä olla tuo &-merkki? Onkohan tuo ihan päin honkia? :D
Onnistuisko:

Koodi: Valitse kaikki

NSString *theMessage = [NSString stringWithString:@"My message here"];
NSData *thePacket = [NSData dataWithData: [theMessage dataUsingEncoding:NSUnicodeStringEncoding]];
Ja purkaminen:

Koodi: Valitse kaikki

NSString *theMessage=[[NSString alloc] initWithData: thePacket  encoding: NSUnicodeStringEncoding];
Huomaa convience-metodien käyttö lähetyspäässä jolloin et tarvitse (etkä saa käyttää) releasea. Vastaanotossa sen sijaan tarvitset [theMessage release] koska se on allokoitu erikseen. Jos lähetät datan asynkronisesti tarvitset myös lähetyspäässä thePacket:lle retainin ja hallitun releasen kun lähetys on ohitse. Jos sen sijaan lähetät synkronisesti funktiossa jossa thePacket luodaan niin et tarvitse retainia tai releasea.

Re: iPhonen ohjelmointi: kysymykset ja vinkit yms

Lähetetty: 16.4.2009 klo 19.34
Kirjoittaja mikko93
mike.mcfin kirjoitti:
mikko93 kirjoitti:Moro!
Olis kysymys koskien NSData objektia.
....
Debuggerilla näkyy datan lenght aivan oikein eli 7 bytes. Mutta, kun getBytesillä on haettu tuohon viestiin se arvo niin näkyy "invalid" eikä "Moronta"
Pitääkö tuossa ennen viestiä olla tuo &-merkki? Onkohan tuo ihan päin honkia? :D
Onnistuisko:

Koodi: Valitse kaikki

NSString *theMessage = [NSString stringWithString:@"My message here"];
NSData *thePacket = [NSData dataWithData: [theMessage dataUsingEncoding:NSUnicodeStringEncoding]];
Ja purkaminen:

Koodi: Valitse kaikki

NSString *theMessage=[[NSString alloc] initWithData: thePacket  encoding: NSUnicodeStringEncoding];
Huomaa convience-metodien käyttö lähetyspäässä jolloin et tarvitse (etkä saa käyttää) releasea. Vastaanotossa sen sijaan tarvitset [theMessage release] koska se on allokoitu erikseen. Jos lähetät datan asynkronisesti tarvitset myös lähetyspäässä thePacket:lle retainin ja hallitun releasen kun lähetys on ohitse. Jos sen sijaan lähetät synkronisesti funktiossa jossa thePacket luodaan niin et tarvitse retainia tai releasea.
Kiitos avusta! Tällä toimii hyvin. :)

Re: iPhonen ohjelmointi: kysymykset ja vinkit yms

Lähetetty: 22.4.2009 klo 21.12
Kirjoittaja mikko93
Semmonen kysymys, että onko kellään täällä kokemusta Online highscore listojen tekemisestä? Mistä pitäis lähtä liikkeelle ja onko mitään siihen tarkoitukseen tarkoitettua palvelua? Itsellä ois kyllä palvelintilaa, mutta ei tee mieli itseä sitoa niin tiukasti sen tilan maksamiseen.
Onlineen lähinnä tarkotus tulla nimimerkki + tulos ( vain yksi luku ) jotka sitte näkyy pelissä automaattisesti.
Pelistä tarkoitus tulla maksullinen.
Toivottavasti joku ymmärsi mitä yritin sanoa [:D]
-Mikko K

Re: iPhonen ohjelmointi: kysymykset ja vinkit yms

Lähetetty: 23.4.2009 klo 17.08
Kirjoittaja Virgo
mikko93 kirjoitti:Semmonen kysymys, että onko kellään täällä kokemusta Online highscore listojen tekemisestä? Mistä pitäis lähtä liikkeelle ja onko mitään siihen tarkoitukseen tarkoitettua palvelua? Itsellä ois kyllä palvelintilaa, mutta ei tee mieli itseä sitoa niin tiukasti sen tilan maksamiseen.
Onlineen lähinnä tarkotus tulla nimimerkki + tulos ( vain yksi luku ) jotka sitte näkyy pelissä automaattisesti.
Pelistä tarkoitus tulla maksullinen.
Toivottavasti joku ymmärsi mitä yritin sanoa [:D]
-Mikko K
Joitakin tuohon tarkoitettuja palveluja näyttäisi olevan, mutta itselläni ei niistä ole kokemuksia.
Pikaisella googletuksella löytyi mm. seuraavaa:
- http://highscores.marigoholdings.com/
- http://www.openfeint.com/
- http://developer.agon-online.com/
- http://geocade.com/

Tosin noin yksinkertaisen toteutuksen voisi varmaan toteuttaa ihan palvelinpään PHP scriptillä ja HTML POSTilla. Salaus/muu suojaus tulee kyllä ottaa huomioon, jotta tuloksia ei pysty lähettää palvelimelle muualta kuin itse pelistä.

Re: iPhonen ohjelmointi: kysymykset ja vinkit yms

Lähetetty: 27.4.2009 klo 9.40
Kirjoittaja jonppa
mikko93 kirjoitti:Semmonen kysymys, että onko kellään täällä kokemusta Online highscore listojen tekemisestä? Mistä pitäis lähtä liikkeelle ja onko mitään siihen tarkoitukseen tarkoitettua palvelua? Itsellä ois kyllä palvelintilaa, mutta ei tee mieli itseä sitoa niin tiukasti sen tilan maksamiseen.
Onlineen lähinnä tarkotus tulla nimimerkki + tulos ( vain yksi luku ) jotka sitte näkyy pelissä automaattisesti.
Pelistä tarkoitus tulla maksullinen.
Toivottavasti joku ymmärsi mitä yritin sanoa [:D]
-Mikko K
Mulla on muutamassa applikaatiossa high-scoret (SurfaceSeizr ja Shake It!) ja olen toteuttanut ne ihan omalle palvelimelle PHP:lla ja MySQL:llä. Oikeastaan tulosten tallentaminen ei ole mitenkään vaikeata, tekee vain HTTP-kutsun jonka parametreina välittää tuloksen tallennettavaksi.

Kaksi asiaa on kuitenkin tärkeämpää, jotka liittyvät tulosten huijaamiseen:

a) tuloksen vääristely laitteella: varmista ettei tulosta voi vääristää jailbreakatulla laitteella tai muulla vippaskonstilla, kiinnitä huomiota esimerkiksi ajan laskemiseen. Vinkki: laita timer joka lisää laskuria aina kerran sekunnissa. Shake It!:iin on tuupattu paljon sellaisia tuloksia missä on jotenkin huijattu laitteen kellonaikaa. Huijaamista yritetään, se on 100% varmaa. Haluatko pilata high-score-listan vai teetkö huijaamisen estämiseksi kaikkesi? :)

b) tuloksen hashaaminen, en tiedä mitä on suomeksi :) Lähes pakollinen, muuten kuka tahansa voi lähettää mitä tahansa tuloksia. Parempi vielä on se, että hashaamisessa käytät palvelimelta erikseen haettavaa avainta joka voi olla yhdistelmä IP:stä ja vaikkapa päivämäärästä (joo, vuorokauden vaihteessa tulee ongelmia, mutta ..). Itse käytän MD5:sta tässä tarkoituksessa. MD5-hash lasketaan siis tuloksesta + jostain salaisesta avaimesta + palvelimelta haetusta avaimesta. Kun tulos saapuu palvelimelle, varmistetaan että käyttäjän antama hash on laskettu oikein, eli se lasketaan uudelleen annetuin tiedoin.

Re: iPhonen ohjelmointi: kysymykset ja vinkit yms

Lähetetty: 10.5.2009 klo 21.03
Kirjoittaja mikko93
Iltaa,
Nyt ilmeni ihan outo ongelma.
Kun softaa buildaa puhelimeen niin tulee tämmöne errori:
iPhone Developer: Pertti Kutilainen:ambiguous (matches "iPhone developer: Pertti Kutilainen" in /Users/perttikutilainen/Library/Keychains/login.keychain and "iPhone Developer: Pertti Kutilainen" in /Library/Keychains/System.keychain)

Command /urs/bin/codesign failed with exit code 1

Ongelma syntyi ilmeisesti sen jälkeen, kun oltiin koneeseen asennettu Kerio mail ja kalenteri palvelimen joku paketti, että kalenteri synkkaa iCalin kanssa.
Mitään muuta ei ole muutettu softasta ei muualta ja sama ongelma toistuu muillakin projekteilla.
Kaikki sertifikaatit ja provisioning profiilit on asennettu uudelleen ja xCodeki asennettu uuelleen.

Käytössä siis 3.0 beta 5 niin puhelimessa kuin sdk:kin.

Toivottavasti jollakin on tietoa asiasta, että pääsee kunnolla tekemään ohjelmaa taas. [:|]

Re: iPhonen ohjelmointi: kysymykset ja vinkit yms

Lähetetty: 11.5.2009 klo 18.08
Kirjoittaja mikko93
mikko93 kirjoitti:Iltaa,
Nyt ilmeni ihan outo ongelma.
Kun softaa buildaa puhelimeen niin tulee tämmöne errori:
iPhone Developer: Pertti Kutilainen:ambiguous (matches "iPhone developer: Pertti Kutilainen" in /Users/perttikutilainen/Library/Keychains/login.keychain and "iPhone Developer: Pertti Kutilainen" in /Library/Keychains/System.keychain)

Command /urs/bin/codesign failed with exit code 1

Ongelma syntyi ilmeisesti sen jälkeen, kun oltiin koneeseen asennettu Kerio mail ja kalenteri palvelimen joku paketti, että kalenteri synkkaa iCalin kanssa.
Mitään muuta ei ole muutettu softasta ei muualta ja sama ongelma toistuu muillakin projekteilla.
Kaikki sertifikaatit ja provisioning profiilit on asennettu uudelleen ja xCodeki asennettu uuelleen.

Käytössä siis 3.0 beta 5 niin puhelimessa kuin sdk:kin.

Toivottavasti jollakin on tietoa asiasta, että pääsee kunnolla tekemään ohjelmaa taas. [:|]
Mystinen ongelma ratkaistu.
Vika lähti, kun poistin xCoden kansiosta kaikki provisioningprofilet ja sitten vasta laitoin ne uuelleen. Samaten tein myös keychainissa oleville sertifikaateilla sun muille.

-Mikko K

Re: iPhonen ohjelmointi: kysymykset ja vinkit yms

Lähetetty: 4.6.2009 klo 21.32
Kirjoittaja Wurthur
Rupesin tässä vähän Kokeilemaan iPhonele ohjelmointia ja huomasin että kun laitoin puhelimen ohjelmoinnin aikana koneeseen kiinni se kysy että haluanko käyttää tätä "kehityspuhelimena". Onko tästä haittaa tulevaisuudessa jos valitsen kyllä? Pystynkö sit siirtämään omia sovelluksia omaan puhelimeen vaikka en ole maksanut kehittäjän maksua?

Re: iPhonen ohjelmointi: kysymykset ja vinkit yms

Lähetetty: 5.6.2009 klo 0.57
Kirjoittaja MLari
Wurthur kirjoitti:Rupesin tässä vähän Kokeilemaan iPhonele ohjelmointia ja huomasin että kun laitoin puhelimen ohjelmoinnin aikana koneeseen kiinni se kysy että haluanko käyttää tätä "kehityspuhelimena". Onko tästä haittaa tulevaisuudessa jos valitsen kyllä? Pystynkö sit siirtämään omia sovelluksia omaan puhelimeen vaikka en ole maksanut kehittäjän maksua?
Jos kehityssofta aiheuttaa puhelimeen jonkun vian, niin ei taida takuusta olla paljoa apua.

Ja jotta omia ohjelmia sais puhelimeen, täytyy siihen olla kehitystä varten asennettuna profiili, jonka saa luotua/ladattua developer program portalin kautta, eli maksu pitää olla maksettuna.

Toki jailbreakkaamalla sais varmaan kierrettyä nuo maksuhommat...

Re: iPhonen ohjelmointi: kysymykset ja vinkit yms

Lähetetty: 18.6.2009 klo 20.52
Kirjoittaja mikko93
Iltaa!
Nyt tuli joku ihan käsittämäntön errori linkitys vaiheessa.
Tein tyhjän projektin ja lisäsin siihen VAIN sen että pitäs kuulua ääniä käyttäen AudioToolbox frameworkkia. Täsmälleen samanlaisella systeemillä kuuluu äänet toisessakin ohjelmassa. Tuntuu että ongelma liittyy jotenki tuohon frameworkin linkitykseen. Ongelma syntyi iha yhtäkkiä eikä todellakaan tietoa minkä seurauksena.
Käytössä SDK 3.0 GM seed.

Tässäpä errori:
Kuva

Lähetetty: 18.6.2009 klo 21.09
Kirjoittaja mikko93
mikko93 kirjoitti:Iltaa!
Nyt tuli joku ihan käsittämäntön errori linkitys vaiheessa.
Tein tyhjän projektin ja lisäsin siihen VAIN sen että pitäs kuulua ääniä käyttäen AudioToolbox frameworkkia. Täsmälleen samanlaisella systeemillä kuuluu äänet toisessakin ohjelmassa. Tuntuu että ongelma liittyy jotenki tuohon frameworkin linkitykseen. Ongelma syntyi iha yhtäkkiä eikä todellakaan tietoa minkä seurauksena.
Käytössä SDK 3.0 GM seed.

Tässäpä errori:
Kuva
Mahtavaa! Ongelma löytyi! Ensinnäkin kääntäessä suoraan iphonelle ongelmaa ei tule, vain simulaattoriin kääntäessa. Ja frameworkin lisäysvaiheessa kun ei ruksaa sitä että se lisää sen sinne projektikansioon niin alko tomiin. (myöskin jos se on sen sinne lisännyt nii käy sen sieltä poistamassa).
Mahtavia bugeja ;D Mutta työt jatkuu... [:)]
t. Mikko K

Re: iPhonen ohjelmointi: kysymykset ja vinkit yms

Lähetetty: 24.6.2009 klo 11.51
Kirjoittaja mikko93
Hello!
Teen tässä eräänlaista ohjelmaa johon tarvitsisin GPSstä nopeuden. No kaikki toimiikin ihan hyvin ja keskinopeus koko matkalta tulee luotettavasti. Kysymys kuuluu, että miten olisi paras tapa saada tänhetkinen nopeus luotettavasti. Olen kokeillut LocateMe esimerkin avulla tehdä niin, että lasken sen nopeuden aina kun uusi paikkatieto on saatavilla. Eli kuljettu matka / aika. Nopeus hyppii kuitenkin ihan miten sattuu eikä järkevää nopeutta saa aikaseksi. Kokeilin myös ottamalla kolme edellistä nopeutta ja niiden keskiarvon, mutta ei riitä.
Onko iphonen gps raudalla mahdollista edes saada tarkkaa nykynopeutta? Nopeudet pitäisi olla kävelystä ja juoksuvauhtiin eli 4- 20 km/h.

Onko LocateMe :n esimerkki hyvä lähtökohta, jos siitä lähtee ohjelmaa rakentamaan? Tosiaankin kun tuosta locatemehen laitan että plussaa aina sen kuljetun matkan edelliseen tietoon nähden niin matkasta tulee 500 metrin matkalla noin viiden metrin tarkkuudella sama tulos ku garminin maastogpsällä eli se tieto on kohtuullisen tarkka, mutta miksi se hetkellinen nopeus heittelee ± 20km/h ja enemmänkin?

edit: Voiko accelerometeriä käyttää apuna? Jostakin luin, että sitäkin ois käytetty? Mahtaako sillä saada minkälaista tarkkuutta?

Hyviä neuvoja tarkan nopeuden saamiseksi kaivattaisiin :)

Re: iPhonen ohjelmointi: kysymykset ja vinkit yms

Lähetetty: 24.6.2009 klo 12.47
Kirjoittaja MLari
Oletko käyttäny tuossa nopeuden laskemisessa ihan CLLocationin speed propertyä, vai laskenu sen ite (pisteiden välinen etäisyys / aika)? En ole ihan varma miten iPhone tuon nopeuden mittaa, kun ainaki joskus on vähän kritisoitu sitä, että se ei hyödyntäis doppler-mittausta, jota suurin osa "oikeista" GPS-laitteista käyttää. Eli tällä tavalla se sais aika tarkan nopeuden GPS-satelliittien signaalissa tapahtuvasta doppler-siirtymästä. Jos nopeus sen sijaan mitataan puhtaasti paikkatietojen pohjalta, niin tarkkuus taitaa olla aivan luokaton alle 50km/h nopeuksilla.

Accelerometeriä vois periaatteessa hyödyntää, jos liike on riittävän tasaista. Mutta jos nopeus tulis olla 4-20km/h, niin olettaisin, että mittaus tapahtuu kun liikutaan jalan.

Olen jonkun verran testaillu app storessa olevia gps-softia lenkillä käydessä, ja aika huonosti ne kaikki tuntuu nopeuden ilmottavan kävely/juoksu-vauhdeilla. Sen sijaan, kun ajaa autolla 100km/h, voi nopeutta pitää jo tarkkana.

Paras tapa on varmaan kerätä mahdollisimman monen pisteen tiedot, ja käyttää sopivia matemaattisia approksimointi-menetelmiä nopeuden laskemiseen. Jos CLLocationin speed property hyppelee pisteiden välillä 0-20km/h, vaikka vauhti olis tasaista, niin kannattaa suosiolla käyttää vain paikkakoordinaatteja, ja laskea nopeus derivoimalla. Veikkaisin, että tästä aiheesta löytyy aika paljon juttua, kun vähän googlettaa.

Re: iPhonen ohjelmointi: kysymykset ja vinkit yms

Lähetetty: 24.6.2009 klo 13.36
Kirjoittaja mikko93
MLari kirjoitti:Oletko käyttäny tuossa nopeuden laskemisessa ihan CLLocationin speed propertyä, vai laskenu sen ite (pisteiden välinen etäisyys / aika)? En ole ihan varma miten iPhone tuon nopeuden mittaa, kun ainaki joskus on vähän kritisoitu sitä, että se ei hyödyntäis doppler-mittausta, jota suurin osa "oikeista" GPS-laitteista käyttää. Eli tällä tavalla se sais aika tarkan nopeuden GPS-satelliittien signaalissa tapahtuvasta doppler-siirtymästä. Jos nopeus sen sijaan mitataan puhtaasti paikkatietojen pohjalta, niin tarkkuus taitaa olla aivan luokaton alle 50km/h nopeuksilla.

Accelerometeriä vois periaatteessa hyödyntää, jos liike on riittävän tasaista. Mutta jos nopeus tulis olla 4-20km/h, niin olettaisin, että mittaus tapahtuu kun liikutaan jalan.

Olen jonkun verran testaillu app storessa olevia gps-softia lenkillä käydessä, ja aika huonosti ne kaikki tuntuu nopeuden ilmottavan kävely/juoksu-vauhdeilla. Sen sijaan, kun ajaa autolla 100km/h, voi nopeutta pitää jo tarkkana.

Paras tapa on varmaan kerätä mahdollisimman monen pisteen tiedot, ja käyttää sopivia matemaattisia approksimointi-menetelmiä nopeuden laskemiseen. Jos CLLocationin speed property hyppelee pisteiden välillä 0-20km/h, vaikka vauhti olis tasaista, niin kannattaa suosiolla käyttää vain paikkakoordinaatteja, ja laskea nopeus derivoimalla. Veikkaisin, että tästä aiheesta löytyy aika paljon juttua, kun vähän googlettaa.
Kokeilin tuota propertyä, mutta se näyttää nollaa jostakin syystä? Olen siis laskenut sen itse.
Google sanoi, että iphonessa ei olisi tuota parempaa systeemiä, mutta voi olla väärinkin.
Autossa kun tuota ohjelmaani kokeilin, niin todellakin sai ihan hyvää nopeutta.
Mitähän nämä approksimointi-menetelmät ovat? :D

Re: iPhonen ohjelmointi: kysymykset ja vinkit yms

Lähetetty: 24.6.2009 klo 17.03
Kirjoittaja MLari
Vaikea mennä mitään sen tarkempaa sanomaan, kun en ite ole aiheeseen sen tarkemmin tutustunu. Lähinnä tulis mieleen pisteiden sovittaminen esim. johonki polynomi-funtioon, mutta tätä ei taidettu edes lukiossa hirveästi opettaa. Eikä noista ole niin hirveästi hyötyä, jos täytyy saada hetkellinen nopeus reaaliajassa. Lähinnä jos haluaa jälkeenpäin piirtää hienoja käyriä. :D

No mutta itellä tulis mieleen kokeilla semmosta, että mittaa nopeuden kahdella pisteellä, ja ottaa jotenki huomioon kiihtyvyyden kolmannen pisteen avulla, ja tavallaan "ennustaa" sen nopeuden sinä aikana, kun ei uutta pistettä ole saatavilla. Ja olis kans kiva nähdä, miten vaikuttaa jos huomioi vielä kiihtyvyyden kiihtyvyyden. :D

Re: iPhonen ohjelmointi: kysymykset ja vinkit yms

Lähetetty: 6.7.2009 klo 17.16
Kirjoittaja jerppi_
Saako jostain ladattu viellä sen "demo" version jolla pystyisi aloittelemaan tuota ohjelmoitia?
Jos olen oikein ymmärtänyt niin sen mukana ei tule sitä iPhone emulaattoria ja sillä tekemiä ohjelmia ei voi julkaista app storessa.
Olisi mukava jos voisi aluksi vähän kokeilla sitä iPhonelle ohjelmointia ennen kun ostaisin tuon 99 dollarin perus developer paketin.
Vai mistä kannattaa aloittaa?
Nyt aluksi ainakin olen opetellut javaa, c, ja active-c kieliä.
Mistä eteenpäin, takoistus olisi joskus(ehkä vuoden päästä) saada jotain omaa softaa aina app storeen asti.
Eli kaikenlaisia neuvoja kaivataan...

Re: iPhonen ohjelmointi: kysymykset ja vinkit yms

Lähetetty: 6.7.2009 klo 20.53
Kirjoittaja pnp
jerppi_ kirjoitti:Saako jostain ladattu viellä sen "demo" version jolla pystyisi aloittelemaan tuota ohjelmoitia?
Jos olen oikein ymmärtänyt niin sen mukana ei tule sitä iPhone emulaattoria ja sillä tekemiä ohjelmia ei voi julkaista app storessa.
Olisi mukava jos voisi aluksi vähän kokeilla sitä iPhonelle ohjelmointia ennen kun ostaisin tuon 99 dollarin perus developer paketin.
Vai mistä kannattaa aloittaa?
Nyt aluksi ainakin olen opetellut javaa, c, ja active-c kieliä.
Mistä eteenpäin, takoistus olisi joskus(ehkä vuoden päästä) saada jotain omaa softaa aina app storeen asti.
Eli kaikenlaisia neuvoja kaivataan...
http://developer.apple.com/iphone/progr ... /register/

Tuolta kun aloitat, ja rekisteröidyt, saat sen SDK:n ladattua ihan ilmaiseksi, ja ainakin aiemmin ainoa mitä sillä ei pystynyt tekemään, oli ohjelmien asennus puhelimeen, mukana tulevalla emulaattorilla ne toimi kyllä.
Eli lienee se mitä haet, ja tuossa rekisteröinnissä ei vielä makseta mitään, en ainakaan itse ole maksanut kun olen tuonne rekisteröitynyt, se on sitten ihan eri juttu.

Juuri koitin äsken, kyllä se SDK ihan hyvin alkoi latautumaan omilla tunnuksillani.

Re: iPhonen ohjelmointi: kysymykset ja vinkit yms

Lähetetty: 6.7.2009 klo 22.18
Kirjoittaja jerppi_
pnp kirjoitti:
jerppi_ kirjoitti:Saako jostain ladattu viellä sen "demo" version jolla pystyisi aloittelemaan tuota ohjelmoitia?
Jos olen oikein ymmärtänyt niin sen mukana ei tule sitä iPhone emulaattoria ja sillä tekemiä ohjelmia ei voi julkaista app storessa.
Olisi mukava jos voisi aluksi vähän kokeilla sitä iPhonelle ohjelmointia ennen kun ostaisin tuon 99 dollarin perus developer paketin.
Vai mistä kannattaa aloittaa?
Nyt aluksi ainakin olen opetellut javaa, c, ja active-c kieliä.
Mistä eteenpäin, takoistus olisi joskus(ehkä vuoden päästä) saada jotain omaa softaa aina app storeen asti.
Eli kaikenlaisia neuvoja kaivataan...
http://developer.apple.com/iphone/progr ... /register/

Tuolta kun aloitat, ja rekisteröidyt, saat sen SDK:n ladattua ihan ilmaiseksi, ja ainakin aiemmin ainoa mitä sillä ei pystynyt tekemään, oli ohjelmien asennus puhelimeen, mukana tulevalla emulaattorilla ne toimi kyllä.
Eli lienee se mitä haet, ja tuossa rekisteröinnissä ei vielä makseta mitään, en ainakaan itse ole maksanut kun olen tuonne rekisteröitynyt, se on sitten ihan eri juttu.

Juuri koitin äsken, kyllä se SDK ihan hyvin alkoi latautumaan omilla tunnuksillani.
Kiitos tuosta, juuri tuota etsin. Jos tarpeeksi opin tuota aikanaan käyttämänään niin voisi ostaa sitten sen perus developer version ja siitä sitten vaan tuotoksia app storeen.
Onhan iPhonelle koodauskielenä active-c?

Re: iPhonen ohjelmointi: kysymykset ja vinkit yms

Lähetetty: 6.7.2009 klo 22.21
Kirjoittaja pnp
jerppi_ kirjoitti: Onhan iPhonelle koodauskielenä active-c?
Siis, Objective-C on kielenä.

Re: iPhonen ohjelmointi: kysymykset ja vinkit yms

Lähetetty: 6.7.2009 klo 23.23
Kirjoittaja jerppi_
Juu, sitä tarkoitin. Mitäköhän ollut mielessä kun tuota kirjoitin [:|] ? [:D]

Re: iPhonen ohjelmointi: kysymykset ja vinkit yms

Lähetetty: 12.8.2009 klo 18.22
Kirjoittaja mikko93
Hei!
Ajatuksena on käyttää UIImagePickerControlleria jolla otetaan kuva iPhonen kameralla.
Kuva pitäisi näyttää fullscreeninä riippumatta onko se otettu pystyssä tai vaakassa.
Nyt ongelmana on kuitenkin se, että kun kuva otetaan vaakatasossa, imagepicker kääntää kuvan jo valmiiksi ja kun se tuodaan imageViewiin niin se näkyy pienenä. Pysykuvissa tämä toimii luonnollisesti ihan oikein.
Eli miten tunnistetaan onko kuva otettu vaakatasossa ja miten se käännetään oikein? Entä jos kuva valitaan kamerarullasta tai valokuvakirjastosta, toimiiko tunnistus/kääntö samalla tavalla?

Seuraava kysymys ois, että mikä on viisain tapa tallentaa kuva jonnekkin muualle, kuin kamerarullaan ja aukaista se sieltä?

-Mikko K