Multi-touch

25.02.2010 @ 15:12:03 by Rafał Kozik | iPhone

Odką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 Apple

27.01.2010 @ 23:45:48 by Rafał Kozik | iPod iPhone iPad

Muszę 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ą

04.01.2010 @ 23:00:04 by Rafał Kozik | iPhone gamedev

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 noworoczne

01.01.2010 @ 18:34:19 by Rafał Kozik | z życia iPhone iPod gamedev

Z 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ń:

  • Napisać pracę magisterską i skończyć studia. Studiowanie już długo trwa, trochę koliduje z pracą, więc warto zamknąć już ten etap życia ;)
  • Zmienić zwykły telefon na porządnego smartphona -- tutaj wybór jest dość prosty albo kolejna generacja iPhone, albo coś z Androidem. W tym roku, za sprawą mojego iPoda Touch, dopiero doceniłem tego typu sprzęt i mam zamiar rozwijać to zamiłowanie.
  • Do końca czerwca mieć w Apple AppStore co najmniej 3 gry. Głównym celem jest zbadanie platformy (sprzętowej i sprzedaży) na własnej skórze. Z czasem napiszę o tym trochę więcej.
  • Zrobić prawo jazdy. Mając już prawie ćwierćwiecze na karku, wypadałoby w końcu zdobyć ten plastik.
  • Kupić jakiegoś e-book readera. Odkąd usłyszałem o elektronicznym papierze interesowałem się urządzeniami w niego wyposażonymi, mam nadzieję, że stanę się posiadaczem jednego z nich. W tej chwili najbardziej podoba mi się nook.
  • Przeczytać kilka książek. Od kilku lat ilość czytanych przeze mnie książek systematycznie rośnie i mam nadzieję, że w tym roku też uda się to osiągnąć.

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 Touch

01.09.2009 @ 12:29:40 by Rafał Kozik | sprzęt iPod iPhone

Niedawno 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ł.


Obrazek