iOS programming in 2010

Jak odczytać UUID urządzenia do instalacji w trybie AdHoc

Posted: September 17th, 2010 | Author: | Filed under: Uncategorized | Comments Off on Jak odczytać UUID urządzenia do instalacji w trybie AdHoc

How to get iPad/iPhone UUID required for AdHoc installation?

1) Start iTunes and connect your iPad/iPhone. Click on device name on left navigation.
Uruchom iTUnes i podłącz iPad/iPhone. Kliknij na nazwę urzadzenia w lewym menu

2) On the Summary page for your iPhone, click on the word “Serial Number:” text
Na zakÅ‚adce Podsumowanie, kliknij tekst “Numer Seryjny”

3) The serial number should change to the word “Identifier”, followed by a long string of numbers and digits
Numer seryjny zmieni siÄ™ w Identyfikator (UUID) i 40 znakowy numer

4) When you press CTRL+C (Windows) or Command/AppleKey + C (Mac) and the UUID will be copied to the clipboard and can then be pasted into an YM/Email by Paste command or shortcut CTRL+V (Windows) or Command/AppleKey + V (Mac)

Po naciśnięciu CTRL+C (Windows) lub Command/AppleKey + C (Mac) numer zostanie skopiowany do schowka i może być wklejony na YM lub do wiadomości Email komendą WKLEJ lub klawiszami CTRL+V (Windows) lub Command/AppleKey + V (Mac)


Jak odczytać NSArray z URLa bez blokowania aplikacji

Posted: September 14th, 2010 | Author: | Filed under: Xcode solutions | Comments Off on Jak odczytać NSArray z URLa bez blokowania aplikacji

Tworząc aplikację wyświetlającą dane z sieci bardzo często stajemy przed problemem: jak odczytać dane z pliku zewnętrznego.
Parsowanie XML w Objective-C jest bardzo pracochłonne, więc lepiej przeanalizować, czy łatwiejszym rozwiązaniem nie jest utworzyć .plist file (Property list) na serwerze i taki format pliku pobierać do aplikacji.

Warto zauważyć, że czytanie NSArray lub NSDictionary z pliku to tylko 2 linijki:

NSURL *myUrl=[NSURL URLWithString:@"https://iphone.orpi.pl/someexamplefile.plist"];
NSArray *myChartData=[NSArray arrayWithContentsOfURL:myUrl];

Pojawia się jednak problem, jeśli urządzenie na którym próbujemy odczytać plik nie ma podłączenia do internetu.
W taki przypadku myChartData zwróci nil, ale do czasu otrzymania timeout urzÄ…dzenie bÄ™dzie “wisiaÅ‚o”.
Read the rest of this entry »


Jak wyświetlić lokalizowane nazwy miesięcy?

Posted: September 14th, 2010 | Author: | Filed under: Xcode solutions | Comments Off on Jak wyświetlić lokalizowane nazwy miesięcy?

Problem wydaje się banalny, ale nie mając doświadczenia z Objective-C możemy spędzić dużo czasu szukając odpowiednich obiektów.
Przedstawiam więc gotowe rozwiązanie:

Tworzymy obiekt “Kalendarz”, który na podstawie przesÅ‚anego obiektu NSDictionary zwróci nazwÄ™ miesiÄ…ca:

Kalendarz.h
@interface Kalendarz : NSObject {
}
-(NSString *)jakiMiesiac:(NSDictionary *)rokMiesiacDzien;
@end

Kalendarz.m
@implementation Kalendarz

-(NSString *)jakiMiesiac:(NSDictionary *)rokMiesiacDzien;
{
NSInteger miesiacNumber=[[rokMiesiacDzien valueForKey:@"month"] intValue]; // tutaj odczytujemy wartość Integer miesiąca
return [[self dateCreate:miesiacNumber] autorelease];
}

-(NSString *)dateCreate:(NSInteger)month
{
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"MMMM"];
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *comps = [[NSDateComponents alloc] init];
[comps setMonth:month];

NSDate *yearDate = [gregorian dateFromComponents:comps];
NSString *miesiacName=[dateFormat stringFromDate:yearDate];

[comps release];
[gregorian release];
[dateFormat release];

return [miesiacName autorelease];
}
@end

Wywołanie obiektu i metody w naszej aplikacji:

Kalendarz *newKalendarz=[[Kalendarz alloc] init];
NSDictionary *rokMiesiacDzien=[NSDictionary dictionaryWithObject:[NSNumber numberWithInt:miesiac+1] forKey:@"month"];
NSString *miesiacName=[[NSString alloc] initWithString:[[newKalendarz jakiMiesiac:rokMiesiacDzien] retain]];

...............

[newKalendarz release];
[miesiacName release]; // zwalniamy oczywiście dopiero po przekazaniu obiektu do miejsca gdzie będzie wyświetlany.


Jak przekazać parametr do widoku “rodzica” (parent view)

Posted: September 10th, 2010 | Author: | Filed under: Xcode solutions | Comments Off on Jak przekazać parametr do widoku “rodzica” (parent view)

Passing parameters to parent object in Objective-C Często w aplikacji posiadającej wiele widoków potrzebujemy wyświetlić dodatkowy widok, na którym użytkownik wprowadzi parametry (lub wybierze z tabeli). Chcemy tą informację wykorzystać w naszym nadrzędnym obiekcie.

Przykład:
Wyświetlany ekran kalkulatora (zobacz aplikację Savings Calculator with Tax w App Store).
Po zmianie kapitalizacji lub okresu (czyli wybraniu wartości z tabelki na innym widoku), chcemy wykonać ponownie obliczenia z uwzględnieniem zmienionych wartości.

Możemy zastosować następujące metody:
1. wykorzystujemy subview zamiast widoków i nie tworzymy dodatkowych klas.
2. wykorzystujemy Notification Center
3. Wykorzystujemy delegowanie obiektów i protokół

Omówmy poszczególne metody:
Read the rest of this entry »


Pierwsze kroki

Posted: September 9th, 2010 | Author: | Filed under: Uncategorized | Comments Off on Pierwsze kroki

Warto zacząć “po kolei”. Apple wykonaÅ‚o naprawdÄ™ dobrÄ… pracÄ™ i dostarcza programistÄ… bardzo dobrze napisanÄ… dokumentacjÄ™, podcasty oraz tutoriale. Problemem może być jedynie czas.

Zaczynamy oczywiÅ›cie od zakupu Maca. Niestety, w odróżnieniu od aplikacji na Symbian i Android, tutaj jest tylko jeden dostÄ™pny system – Mac OS X. Zalecane oprogramowanie to Xcode. Zalecany jÄ™zyk to Objective-C.
Warto znać przynajmniej podstawy programowania obiektowego, chociaż Apple również na ten temat dostarcza solidnej porcji wiedzy.

Po pobraniu z sieci i instalacji Xcode wraz SDK możemy zacząć programowanie.

Pierwsze aplikacja to tylko kilka kliknięć. Wybieramy rodzaj aplikacji, klikamy “next”. I aplikacja gotowa.
Niestety kolejny krok wymaga już poczytania tutoriala.

Na stronie http://developer.apple.com znajdziemy link do iOS Dev Center, a nastÄ™pnie kilkanaÅ›cie dokumentów “Getting Started”. Warto zapoznać siÄ™ co najmniej z tymi, które omawiajÄ…:

– Getting Started with iOS
– iOS Overview
– Tools for iOS Development (warto poczytać o Xcode i Instruments)
– iOS Application Programming Guide

następnie możemy przystąpić do specyfiki języka Objective-C i środowiska iOS
– Learning Objective-C: A Primer
– Key-Value Coding Programming Guide
– Table View Programming Guide for iOS
– View Controller Programming Guide for iOS (bardzo ważny dokument)

Dokumentacja w obecnej chwili zawiera ponad 1300 dokumentów, więc ich dokładna analiza z pewnością może być niemożliwa w krótkim czasie. Kolejne dokumenty warto przyswajać po analizie kolejnych przykładów lub po utworzeniu kilku prostych aplikacji. W sieci możemy znaleźć również kilka tysięcy filmów i blogów poświęconych programowaniu i tworzeniu aplikacji.

Po tej porcji informacji, mamy już podstawy do analizowania gotowych aplikacji i przykładów dostarczanych przez Apple.