Dzisiaj post o tym jak sparsować XMLa na iPhonie. Przykład będzie prosty by pokazać zasadę działania ;)  Ale za to będzie gotowa klasa do wykorzystania w dowolnym projekcie.

Wstęp

Ze względu na to, że poniższy post ma być tylko wstępem do parsowania, przykładowy XML jest krótki i ma formę jak poniżej:

<list>
	<link>http://sparhawk.pl</link>
	<link>http://twoja_strona.pl</link>
</list>

Od razu zaznaczam, że osoby które są przyzwyczajone do programowania w innych językach, będą musiały pozbyć się niektórych nawyków. Tu mamy coś co nazywa się Event-Driven XML Programing. Co to jest? To parsowanie XMLa w oparciu o zdarzenia, o których jesteśmy informowani i na nie reagujemy.
Read More

Od dłuższego czasu używam iPhonowej aplikacji SmartTime, która jest jedną z wielu aplikacji „To do” dostępnych w AppStore. Zagościła ona na moim telefonie w chwili, gdy była jeszcze dostępna bezpłatnie (obecnie bezpłatnie jest tylko wersja lite). Gdy kolejny update z nowymi funkcjami okazał się płatny po zastanowieniu się postanowiłem kupić tą aplikację (7,99€).

Dlaczego używam tej aplikacji?

Aplikację zainstalowałem zanim jeszcze obsługiwała synchronizację z Google Calendar (dostępne to było od wersji 2.0). Program ten zdobył moje uznanie poprzez inteligentne podejście do tematu zadań i czasu jakim dysponujemy. A mianowicie definiujemy w nim czas w jakim jesteśmy w domu, a także nasz czas na zadania domowe. Dodając zadanie/zdarzenie definiujemy czy wykonujemy to w czasie pracy czy w domu. Aplikacja łącząc te informację, a także określony „deadline”, czas trwania układa nam zadania w sposób „sprytny”.  Dzięki temu możemy mniej więcej zobaczyć co możemy dzisiaj zrobić, a co nie. Widzę także co mnie czeka. Daje mi to dodatkowe informacje względem zwykłej listy TODO, która jest całkowicie oderwana od rzeczywistego dostępnego czasu. Oczywiście jeśli czegoś nie zrobimy, to przy ponownym uruchomieniu wszystko zostanie przeorganizowane (chyba, że tego nie chcemy).

Są też widoki tradycyjne, takie jak prosta lista zadań czy też kalendarz.

Od chwili wprowadzenia synchronizacji z Google Calendar możliwości programu jeszcze bardziej wzrosły. Mogę teraz edytować, dodawać zadania na komputerze, a następnie zsynchronizować sobie je z iPhonem. Przyspiesza to pracę, gdy nagle mam wiele rzeczy do dodania. Do tego mogę mój bieżący plan skonfrontować z innymi kalendarzami np. świętami, urodzinami. Nowością w wersji 2.0 były też zadania powtarzające się (znane z Google Calendar), a także powiadomienia poprzez Google Calendar – w sam raz na przypomnienia o rachunkach, zmianie soczewek itp.

Z dodatkowych wartych uwagi rzeczy mamy do dyspozycji:

  • filtrowanie/wyszukiwanie zadań
  • tworzenie backupów
  • wybieranie lokalizacji oraz pokazywanie jej na mapie
  • współdzielenie wydarzeń z innymi via e-mail
  • historię zadań

Wady

  • Niestety nie można definiować priorytetów dla zadań. Byłoby to według mnie bardzo przydatna informacja dla „sprytnego” widoku. Mógłbym wartościować zdania ;)
  • synchronizacja troszkę trwa
  • póki co nie przenoszą się do kalendarza (Google) projekty (typy zadań)
  • widok kalendarza nie do końca jest przydatny, ponieważ można obejrzeć tylko kawałek dnia. Co prawda można przesuwać widok, ale nie można obejrzeć zadań z tygodnia lub miesiąca.
  • Edit: Brak integracji z wbudowanym kalendarzem iPhonowym

Może aplikacja te nie jest ideałem, ale spełnia moje oczekiwania i bardzo przydaje mi się. A wy jakich aplikacji używacie do zarządzania czasem?

Po dłuższej przerwie spowodowanej świętami, wyjazdem i lenistwem. Postanowiłem dziś zrobić porządek ze zdjęciami na blogu. Między innymi przeniosłem wszystkie zdjęcia z poprzedniej strony i umieściłem moje podróże na jednej stronie zamiast w menu.

Wrzuciłem też pierwsze zdjęcia z wyprawy w góry na narty. Niedługo umieszczę też resztę zdjęć (z drugiego aparatu). Nocowaliśmy u Pani Staszel www.koscielisko-staszel.pl. Naukę jazdy odbywaliśmy na stoku narciarskim w Witowie, gdzie była szkoła Jagny. To centrum było najtańsze według mieszkańców :) Dzięki godzinnej nauce pod okiem instruktorki udało nam się w ciągu 3 dni nauczyć bezpiecznie (powoli) zjeżdżać z dużego stoku :) Zatem cel na pierwszy wyjazd narciarski został osiągnięty. Muszę też przyznać, że bardziej mnie to wciągnęło niż nurkowanie :)

P.S. Wszystkiego najlepszego w Nowym Roku oby były lepszy od poprzedniego. Już niedługo nowe posty techniczne ;)

W ostatni wtorek firma, w której pracuje miała prezentacje na temat biznesu na iPhonie. Wszystkich zainteresowanych tym tematem zapraszam na bloga firmowego. Nie będzie tam wiele szczegółów technicznych za to ogólny zarys dla początkujących. Jak tylko na stronie www.3camp.pl pojawią się materiały wideo, nie omieszkam o  tym poinformować.

P.S. Ja byłem odpowiedzialny za tą część pseudotechniczną.

Instalacja

Właśnie pisze posta z nowej wersji wordpressa. Trzeba przyznać, że upgrade poszedł prawie bezproblemowo. Jedyne co musiałem dokonać poza rozpakowaniem paczki na serwerze, to zastosować poprawkę w ścieżce do katalogu według zaleceń stąd: http://wordpress.org/support/topic/164462.

Wrażenia

W domu pracuje na panoramicznym ekranie notebooka, dlatego rozmieszczenie elementów w panelu administracyjnym bardziej w poziomie niż pionie bardzo uprzyjemniło mi pisanie :) Wszystkie elementy, których bym oczekiwał są pod ręką,  a nie gdzieś daleko po przewinięciu strony.

Przeniesienie górnego menu na lewo jest moim zdaniem trafnym krokiem, dlatego że może ono  się ładnie skalować o nowe opcje. Poprzednie poziome rozwiązanie przy dużej ilości pluginów dodawało nowe linie, co średnie wyglądało. Tym bardziej stawało się mało przejrzyste. Teraz wszystko jest dostępne w prostszy sposób i to bez przeładowań strony (rozwijane podmenu).

Kolejną cechą, która spodobała mi się, to zestaw ikonek. Są dla mnie jasne klarowne i dobrze dobrane. Mogły by mieć tylko parę kolorów więcej ;) Jedyne takie wrażenie na szybko, które mi delikatnie przeszkadza to ogólnie panująca szarość. Jakoś tak dziwnie, wolałbym raczej biały obszar roboczy.

Zauważyłem też parę małych zmian związanych z usability lub lepszą orientacją. Dla przykładu, przy dodawaniu obrazka, nie ma wszystkich opcji póki nie prześle obrazu. Dotychczasowe rozwiązanie, gdy miałem te opcje dostępne przed uploadem powodowało, że wypełniałem opis po czym go traciłem zaraz po wysłaniu pliku na serwer. Kolejnym krokiem jakiego bym oczekiwał byłaby, możliwość wypełniania opisu obrazka w trakcie wysyłania się pliku na serwer (patrz dodawanie załącznika w GMailu).

Ogólna ocena bardzo pozytywna, oby tak dalej ;)

Postanowiłem umieścić kilka przydatnych funkcji, które dość często wykorzystuje. Są to funkcje pracujące na ciągach znaków lub pozwalające dodać informacje dla użytkownika. Opisane poniżej metody są statyczne. Ja mam je umieszczone w klasie Util, do której dokładam często wykorzystywane metody. Read More

Po przeczytaniu posta na blog.makewww.pl o wtyczce do wordpressa WPtouch nie oparłem się pokusie i zainstalowałem ją. Co prawda nie działa w pełni z wtyczką WPSuperCache, ale uznałem że dostarczenie treści w dostosowanej formie, jest lepsze niż utrata części funkcjonalności. Read More

W internecie napisano już wiele w ciągu kilku/kilkunastu godzin od premiery nowej wersji oprogramowania dla iPhone. Ja wtrącę tylko 3 grosze co mnie osobiście ucieszyło, a co mnie zawiodło.

Read More

Ostatnio pisząc aplikację na iPhona złapałem się na pułapkę początkującego (aż wstyd). Mam tu na myśli zarządzanie pamięcią w języku Objective-C. Pokażę dziś studium przypadku, jak to łatwo się złapać oraz pokażę objawy. Read More

Wstęp

W tej części samouczka postaram się pokazać jak stworzyć aplikację natywną wykonującą proste obliczenia na liczbach. Będę starał się nie pominąć żadnych ważnych elementów. Jeżeli jednak zdarzyłoby się coś niejasnego dajcie znać w komentarzach.

Read More