Multi-touchOdkąd pierwszy raz miałem styczność z multi-touch, polubiłem tę technologię. Moim zdaniem świetnie sprawdza się w urządzeniach mobilnych, gdzie m.in. jest idealna do powiększania i zmniejszania zawartości ekranu.
A jak wygląda to po stronie developera? Sprawdziłem jak to jest w przypadku iPhone SDK -- są co najmniej dwa sposoby na realizację obsługi multi-touch.
Jeżeli interesuje nas obsługa powiększania to do tego celu powinna nadać się kontrolka UIScrollView, która ma już wbudowaną obsługę tego typu interakcji.
Dla osób, które potrzebują większej kontroli nad danymi, możliwy jest bezpośredni dostęp do danych o dotyku. W widoku możemy zaimplementować metody touchesBegan, touchesMoved, touchesEnded. Jako parametr dostajemy listę UITouch*, skąd możemy dowiedzieć się o aktualnym (locationInView) i poprzednim (previousLocationInView) miejscu dotyku.
Wystarczy tego pisania, idę sobie podotykać ;)
Połowiczny fanboy AppleMuszę to przyznać -- zostałem po części fanboyem Apple i nawet nie jest mi z tym źle ;)
Kilka miesięcy temu kupiłem sobie iPoda Touch i od tamtej pory nie rozstaję się z tym sprzętem. Ciężko przekonać do niego kogoś, kto nie miał z nim dłuższej styczności -- to świetne urządzenie do przeglądania sieci, poczty i gier.
Dzisiaj Apple zaprezentowało nowe urządzenie -- iPad. W skrócie: to co iPod Touch tylko większe i więcej ;) Bardzo przypadł mi do gustu ten sprzęt i mam nadzieję, że niedługo stanę się jego posiadaczem.
A dlaczego tylko połowiczny fanboy? Mimo tego, że w ostatnich czasach miałem sporą styczność ze Snow Leopardem, nie mogę się przekonać do tego systemu. Zdecydowanie wolę Windows 7, tak samo jak preferuję mojego Tablet PC niż jakikolwiek komputer od Apple.
Nie takie iPhone SDK straszne jak je malująWspomniałem ostatnio, że będę pisał więcej w związku z projektami nad którymi powoli pracuję. Na razie nie ma co pokazywać, więc postanowiłem napisać kilka słów o tym jak wygląda praca przy pisaniu czegoś na iPhone i ewentualnie dać jakieś drobne wskazówki.
To co może na samym początku przestraszyć to Objective-C. Na szczęście nie jest to problem, bo bardzo łatwo jest łączyć ten język z funkcjami pisanymi w C/C++. Przez to stanowi on tylko spoiwo między aplikacją (a przynajmniej w moim przypadku) a urządzeniem. W tej chwili większość kodu Objective-C w moim projekcie to szkielet aplikacji OpenGL ES dostarczany z xcode -- nie jest tego dużo i w żaden sposób nie przeszkadza w normalnej pracy. Jeżeli potrzebna jest jakaś funkcjonalność z systemu, w sieci można znaleźć gotowe kawałki kodu.
Do uruchomienia swojego kodu na iPhone przygotowywałem się już od jakiegoś czasu -- przeniosłem rendering z Direct3D do OpenGL ES 1.0 i zrobiłem spory refactoring. Gdy położyłem już swoje ręce na odpowiednim sprzęcie, uruchomienie na symulatorze zajęło jeden dzień. Po tym jak zapłaciłem za dostęp do programu developerskiego wystarczył jeden wieczór (spędzony na generowaniu certyfikatów), żeby uruchomić na sprzęcie. Spodziewałem się, że zajmie mi to więcej czasu, ale na szczęście poszło dość sprawnie -- w sumie nic dziwnego, bo na razie nie robiłem nic zaawansowanego.
Aktualnie projekt ściągnięty z repozytorium kompiluje się bez problemów pod xcode jak i w Visual Studio pod Windows. Zdecydowanie wolę pracę z tą drugą platformą i taka przenośność jest bardzo wygodna. Przydaje się implementacja OpenGL ES pod windows, żeby mieć pewność, że obejdzie się bez problemów.
Żeby nie było, że smęcę bez sensu i tylko korzystam z tego co znajdę gotowe w sieci, poniżej zamieszczam dwa kawałki kodu w dziwacznym języku, które mogą się komuś przydać. Nic odkrywczego, ale od czegoś trzeba zacząć ;)
// ukrycie górnej belki aplikacji, do użycia w widoku [[UIApplication sharedApplication] setStatusBarHidden:YES];
// pobranie nazwy katalogu, w którym znajdują się zasoby
const char* getResourcesPath()
{
NSString* path = [[NSBundle mainBundle] resourcePath];
return [path UTF8String];
}
Postanowienia noworoczneZ końcem każdego roku miałem postanowienie, że w kolejnym będzie lepiej. Jakoś nigdy nie miałem konkretnej listy celów, które chcę osiągnąć, więc ciężko oceniać czy rok był udany czy nie.
Żeby mieć się z czego za rok rozliczać, garść postanowień:
Nie jest tego za dużo, ale przynajmniej będzie można łatwo to zrealizować. Mam nadzieję, że taka deklaracja planów choć trochę mnie zmotywuje do ich realizacji ;)
iPod TouchNiedawno stałem się posiadaczem iPoda Touch (pierwsza generacja). Jako, że uznałem, że nowy sprzęt jest zbyt drogi, kupiłem używanego na allegro w bardzo dobrym stanie i atrakcyjnej cenie. Taki sprzęt można już upolować za ~350 zł.
Do niedawna patrzyłem na iPoda Touch jako na drogą zabawkę, która nie ma dużo więcej zastosowań niż przeciętny odtwarzacz, a w wygodę i sensowność grania nie bardzo wierzyłem. Okazuje się, że się myliłem i sprzęt bardzo pozytywnie mnie zaskoczył.
