Archiwum
- Sierpień 2008 (4)
- Lipiec 2008 (5)
- Czerwiec 2008 (3)
- Maj 2008 (1)
- Kwiecień 2008 (2)
- Marzec 2008 (3)
- Luty 2008 (9)
- Styczeń 2008 (2)
- Grudzień 2007 (2)
- Listopad 2007 (3)
- Październik 2007 (6)
- Wrzesień 2007 (8)
- Sierpień 2007 (5)
- Czerwiec 2007 (1)
- Maj 2007 (10)
- Kwiecień 2007 (5)
- Marzec 2007 (26)
- Luty 2007 (21)
- Styczeń 2007 (11)
- Grudzień 2006 (4)
- Listopad 2006 (9)
- Październik 2006 (6)
- Wrzesień 2006 (2)
- Lipiec 2006 (1)
- Czerwiec 2006 (13)
- Maj 2006 (2)
- Kwiecień 2006 (9)
- Marzec 2006 (1)
- Luty 2006 (2)
- Styczeń 2006 (17)
- Listopad 2005 (5)
- Październik 2005 (1)
- Sierpień 2005 (1)
- Lipiec 2005 (17)
- Czerwiec 2005 (2)
- Maj 2005 (4)
- Kwiecień 2005 (4)
- Marzec 2005 (7)
- Luty 2005 (20)
- Styczeń 2005 (24)
- Grudzień 2004 (21)
- Listopad 2004 (25)
- Październik 2004 (22)
- Wrzesień 2004 (38)
- Sierpień 2004 (5)
Kategorie
- Batalie (23)
- Emigracja (50)
- Komercha (4)
- Ogłoszenia (19)
- Ogólne (229)
- Opowiadacze (13)
- Pieprzenie (29)
- Podróże (23)
- Prasówka (6)
- Programowanie (39)
- Cocoa (14)
- iPhone (2)
- Mac OS X (17)
- Obj-C (12)
- Technikalia (21)
Czytam
Wagary
Kompletnie nic nie ruszyłem wczoraj mojego planu eksperymentowania z Cocoa. Jestem z tego powodu strasznie na siebie zły.
Mam nadzieję, że dziś się poprawię :) W końcu trzeba to ruszyć do przodu, prawda? :)
Z drugiej strony cały czas nurtuje mnie pytanie, czy po zakończeniu jakiegoś etapu projektu będzie można skompilować to na Linuxa? Jakoś sobie nie wyobrażam jak Cocoa miałoby ruszyć pod linem, ale przecież samo Cocoa jest OS (chyba), prawda?
Mini przeglądarka
Jak okazuje się napisanie własnej mini przeglądarki w oparciu o Safari nie jest specjalnym problemem. Owszem, znajdują się one w innych, mniejs podziewanych miejscach. Czyli przykładowo - w jaki sposób link na takiej "stronie" (roster) ma otworzyć okno z inną "stroną" (chat window) i jak je dynamicznie zmieniać, tak, żeby nie mrygały?. Eh, skomplikowane to wszystko. Ale innym się udało, to mnie też się uda. Idę walczyć dalej :D
Pierwsze kroki
Udało mi się stworzyć kilka aplikacji. Na razie bardziej wariancji na temat tutorialowych przykładów, ale w końcu zaczynam jarzyć.
Objective-C jest językiem dość.. hm... egzotycznym.
[1] Sposób wywoływania metod obiektu jest dziwaczny, niemalże zbliżony to mixfixowego Smalltalk'a. Zamykanie obiektu z metodą wywoływaną w nawiasach kwadratowych wyznacza co jest czym. Ciekawe.
[2] Bardzo interesującym rozwiązaniem jest potrzeba tworzenia interfejsu w nagłówku a w pliku z kodem właściwym (w tym wypadku o rozszerzeniu .m) uzupełnienie klasy w oparciu o ten interfejs...
[3] Kosmicznie rozwiązane problemy polimorfizmu.
[4] Zwariowany pomysł na obiekty. Obiekt klasy jest typu ID. I mieszanie obiektów róźnych klas to po prostu mieszanie obiektami. I tak wszystkie są praktycznie tego samego typu :P
[5] Tworzenie GUI jest pomieszaniem pomysłów z MFC i późniejszych. Nadal trzeba zahaczać, jak w MFC zmienne w kontrolkach, źeby uzyskiwać odpowiednie informacje na ich temat. Ale aktualizacja tych zmiennych jest automatyczna (przynajmniej na razie z takim rozwiązaniem się spotkałem jedynie).
[6] Oprócz tego drobnego szczegółu tworzenie GUI pod Cocoa i Interface Builderem to czyste klikadło. Wszystko. Menu, wszelkie okienka, itepe to klikanie. Nie powiem jest to wygodne na razie, ale zobaczymy jak później.
Teraz pora przeczytać kilka tutoriali na temat tworzenie własnego "minibrowsera". Mam zamiar doczytać się tam kilku waźnych dla mnie szczegółów. Szczególnie, że wszystko chcę w ten sposób właśnie oprzeć.
Bardzo pomocny jest ten Mac Developement Center. W sumie pomysł O'Reily'ego. Ale artykuły jak trzeba :)
Zarys idei
Może zacznę od zarysu idei całego projektu. Bez tego może to być całkowicie bezcelowe ;]
Ok. Więc zarys. Dla mnie i dla innych :)
Całość systemu powinna działać dość prymitywnie. Wzornictwo podobne do standardowego komunikatora Mac'a czyli iChata.
- Nowe wiadomości wyskakujące w chmurkach jako pojedyncze. Dopiero po kliknięciu w nie rozwijane w postaci normalnego okna dialogowego.
- Roster tylko z userami. Transporty utrzymywane w innym oknie z podziałem na zarejestrowane i niezarejestrowane.
- Dżwięki. Ciężka sprawa :P
- Może dobrym pomysłem będzie, żeby wszystkie okna (roster, lista transportów, okna dialogowe itp) były konfigurowalne w (x)html'u jak w AdiumX. Wtedy wystarczyłaby odpowiednia biblioteka do tego. Skoro w AdiumX jest, może jest darmowa :P
- Emotki. Również animowane. w przypadku konfigurowalności za pomocą (x)html'a wystarczy je "Wsadzić" do środka
- Biblioteka do komunikacji z serwerem całkowicie osobno. Żeby oddzielić jedno od drugiego. Mam nadzieję, że nie tylko ja to będę tworzyć :P (cichą nadzieję :P)
- Koniecznie opisy stanów (również tych offline) w rosterze i możliwość ustawiania swoich. Najlepiej w ten sam sposób co w iChat'cie.
BTW: Zna ktoś dobrą stronę (oprócz oficjalnej Apple'a) do nauki Cocoa i Objective C pod Mac OS X? :)
Pomysł
Jakiś czas temu zrodził się kosmiczny pomysł. Napisać nowego klienta jabbera pod Mac OS X.
Dlaczego?
Powód jest prosty - nie istnieje nań żaden inny dobry. Wybór jest duży. Jak na wszystkie platformy. Jak na większości króluje Psi. Jednakże nie spełnia on wszystkich wymogów na Macu. Przede wszystkim jest w QT. Problem w tym, że QT nie jest natywne dla tego systemu i zżera ogromne ilości zasobów. Po drugie nie jest za śliczny. Oczywiście jest to subiektywna ocena, gdyż wielu Psi się jak najbardziej podoba. Proszę zatem o nie wszczynanie tutaj wojen ideologicznych. :)
Kolejnym powodem jest brak obsługi całego protokołu. I tutaj akurat też nie mam zamiaru się ścigać. Jednakże chciałbym przynajmniej jeszcze Avatary :)
Kolejną istotną rzeczą jest to, źe opisy ludzi widoczne dopiero po "najechaniu" na usera na liście albo w oknie rozmowy. Nie jest to całkiem funkcjonalne.
I ostatni punkt - skróty klawiaturowe dla pliterek pod Maciem oznaczają również dla Psi inne rzeczy. Np Alt+S -> send albo Alt+C -> cancel. Dlatego właśnie uzupełniam bloga przez stronę www, a nie z komunikatora.
To utopia. Nie jestem super programistą, a środowisk developerskich pod Maciem (devtools) nie znam w ogóle.
Może ogłoszenie wszem i wobec takiej informacji jakoś zmobilizuje mnie do pracy.
Jednocześnie to wołanie o pomoc. Wszystkich tych, którzy chcą pomóc, w jakikolwiek sposób przy tworzeniu tego oprogramowania proszę, a nawet błagam o kontakt na mój JID, albo mail (taki sam jak JID). Grafików, koderów Objective-C czy ludzi, którzy chcą propagować pomysł, pomóc duchowo nawet...
Nazwą roboczą, wymyśloną przez Meak'a jest właśnie Jabbah.
Z pomocą przyszedł również inny projekt Open Source -> właśnie Psi. Dzięki swojej konsoli XML pomógł mi pojąć podstawy protokołu Jabbera. Dzięki Ci za to.
To manifest. Błaganie o pomoc. No i próba zmobilizowania jednego smutasa leniuchowatego (czyli mnie) do pracy o wspólne dobro Macowców.
Trzymajcie kciuki. Takiemu nieukowi i leniowi jak ja na 100% się przyda :)


