Posted: October 15th, 2010 | Author: plusz | Filed under: Xcode solutions | 1 Comment »
When I created my Pie Chart Creator, I needed a class to display available colors and return clicked color after user selected color.
I created nice library – it may require some adjustments which I will add soon, but I want to share it now with others. Please remember, that it is based on new BSD license, which is explained in a source code and here
http://creativecommons.org/licenses/BSD/
Read the rest of this entry »
Posted: October 4th, 2010 | Author: plusz | Filed under: Xcode solutions | Comments Off on Jak wysłać email z utworzonym obrazkiem lub widokiem?
Bardzo często chcemy zachować efekt pracy naszego programu i umożliwić użytkownikowi wysłanie obrazu jako e-mail lub publikacje na portalach społecznościowych. Wbrew pozorom to znacznie łatwiejsza operacja niż się wydaje. Programiści Apple postarali się i można w łatwy sposób zapisać wybrany widok (UIView) jako obraz, a następnie dołączyć go do wiadomości e-mail.
Poniżej gotowy kod, który wystarczy podpiąć do własnego przycisku lub zdarzenia. Należy oczywiście wskazać odpowiedni widok, który chcemy zachować jako obraz.
Read the rest of this entry »
Posted: September 17th, 2010 | Author: plusz | 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)
Posted: September 14th, 2010 | Author: plusz | 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 »
Posted: September 14th, 2010 | Author: plusz | 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.
Posted: September 10th, 2010 | Author: plusz | 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 »
Posted: September 9th, 2010 | Author: plusz | 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.