Debugowanie mobilnych aplikacji hybrydowych.

Programowanie aplikacji mobilnych jest bardzo ciekawą pracą. Tematyka tworzonych programów jest bardzo szeroka. Zawsze znajdzie się jakiś interesujący i innowacyjny projekt, który przynajmniej w teorii powinień komuś ułatwić pracę, albo dostarczyć rozrywki.

Programowanie jednak nieodzownie wiążę się z debugowaniem. Nie ma programu bez błędów, zwłaszcza w trakcie jego rozwijania. Aplikacje natywne debuguje się bardzo, bardzo prosto, tzn. bardzo prosto korzysta sie z dostępnych narzędzi, bo sam proces może być długi jeśli mamy akurat do czynienia z jakimś ciężkim problemem. Zarówno na platformie iOS jak i Android, wystarczy aplikację uruchomić w trybie debug i z łatwością możemy analizować działanie programu linijka po linijce. Z aplikacjami hybrydowymi nie jest już tak różowo. Dziś kilka słów na temat narzędzi, jakie są do dyspozycji programisty hybrydowych aplikacji mobilnych.

Czytaj dalej Debugowanie mobilnych aplikacji hybrydowych.

SmartStore – Mobilna baza danych na sterydach? Czy ciekawostka informatyczna?

SmartStore? Co to jest?

Baza danych SmartStore została stworzona przez firmę Salesforce i udostępniona w ich Salesforce Mobile SDK. Jest to baza danych typu NoSQL, a jak to firma Salesforce się chwali, jest to jedyna baza typu NoSQL, która jest szyfrowana i która jest dostępna na platformy iOS i Android. Tę bazę danych możemy wykorzystać zarówno w aplikacjach natywnych, jak i tych hybrydowych. Firma Salesforce, zadbała o to, aby wdrożenie i wykorzystanie tego komponentu nie stanowiło większęgo problemu.

Zapytasz co to NoSQL? To grupa baz danych umożliwiająca zapis danych w postaci innej niż tabelaryczna, usystematyzowana struktura (np klucz-wartość, obiekt, dokument), ze sztywnymi relacjami i ograniczeniami. Czy są lepsze niż bazy danych typu SQL? I tak i nie. W pewnych obszarach mają przewagę, a w innych są słabsze. Po prostu do każdego zastosowania, trzeba wybrać to co ma sens.

Dlaczego musisz używać bazy danych typu NoSQL w aplikacjach mobilnych? Nie musisz, ale możesz. Po prostu, analizujesz za i przeciw i wybierasz to co dla Ciebie najlepsze. Oprócz SmartStore’a zapewne masz jeszcze do dyspozycji tradycyjnego SQLite’a. O którym z resztą wspomnę jeszcze za moment.

Uwaga: wszystkie poniższe przykładu zakładają, że pracujemy z aplikacją hybrydową, gdzie większość biznes logiki znajduje się w części HTML5 + JavaScript, natomiast natywna cześć aplikacji, jedynie dostarcza pewnych usług/komponentów dla części webowej. Przykłady są rozpisane w języku JavaScript i poza jawną zależnością od komponentu Cordova (SmartStore wymaga tego w aplikacji), nie ma żadnych innych wymogów. Czyli Twoja aplikacjia hybrydowa może być oparta o jQuery Mobile, Sencha Touch, albo cokolwiek innego z czym czujesz się dobrze.

Czytaj dalej SmartStore — Mobilna baza danych na sterydach? Czy ciekawostka informatyczna?

Sencha Touch – hybrydowe aplikacje mobilne.

W artykule Tworzenie Aplikacji Mobilnych – 3 możliwości:  HTML5, natywna, hybryda opisywałem 3 możliwe podejścia do tematu implementacji aplikacji mobilnych. Dzisiaj napiszę kilka słów o Sencha Touch – frameworku dla języka JavaScript, który może służyć do implementacji nie tylko małych, ale także dużych i bardzo skomplikowanych aplikacji mobilnych. Sam framework Sencha Touch może być też użyty do stworzenia aplikacji HTML5, bez komponentów hybrydowych, jednakże wg mnie sama idea aplikacji stricte HTML5 jest na tyle mało praktyczna, że nie chce poświęcać jej swojej uwagi ani Twojego czasu.

Czytaj dalej Sencha Touch — hybrydowe aplikacje mobilne.

Tworzenie Aplikacji Mobilnych – 3 możliwości: HTML5, natywna, czy hybryda?

Tworząc aplikację mobilną musimy odpowiedzieć na wiele pytań: co ma robić?, jak ma wyglądać?, jak użytkownik ma się w niej poruszać, itp. itd.? Wśród tych pytań są również te związane z technologią. Teoretycznie wszystko niby jest proste Android to Java, iOS to Objective-C. Niestety kilka lat temu powstała idea aplikacji mobilnych opartych o HTML5. Trzeba przyznać, że trochę ta idea namieszała w porządku i nie da się koło tej opcji przejść obojętnie. Powiem więcej, trzeba przeanalizować i przekalkulować, czy jest sens wykorzystać to, co daje nam ta możliwość.

Aplikacja Mobilna: HTML5 czy natywna?

Czytaj dalej Tworzenie Aplikacji Mobilnych — 3 możliwości: HTML5, natywna, czy hybryda?

NARC – jak zapamiętać kiedy robić release na obiekcie?

Zarządzanie pamięcią, to nie jest prosty temat. To obszar w którym należy poruszać się ostrożnie i z dokładną wiedzą. Jakiś czas temy wpadłem na ten wpis na StackOverflow. Zapraszam do przeczytania całego wątku – zajmie chwilę a przy okazji powtórzysz sobie niezwykle ważny obszar programowania. Dla leniwych przytoczę tutaj:

Pamięć w Objective-C należy zwalniać (wywołać metodę release na obiekcie) wtedy, jeśli nasz kod wykonał jedną z operacji NARC na obiekcie. NARC to skrót od metod: New, Alloc, Retain, Copy. Proste. Zapamiętaj i używaj 🙂

Zapraszam także na stronę gdzie zebrałem więcej informacji nt zarządzania pamięcią w Objective-C i nie tylko.

NSPredicate w pigułce.

Dziś notka mega krótka. Po prostu, chcę polecić coś, co wg mnie jest dobrze i treściwie napisane. Dla tych, którzy poszukują zwięzłej informacji na temat NSPredicate i możliwości tej klasy, serdecznie polecam stronę: http://nshipster.com/nspredicate/ Oczywiście nie jest to wszystko co o NSPRedicate wiedzieć trzeba, ale to niezbędne minimum obrazujące możliwości. A jeżeli masz więcej czasu, polecam zapoznanie się z tym wpisem: Filtrowanie tablicy w Objective-C. Porównanie prędkości 4 metod.  Znajdziesz tam informację o tym, jak wydajne jest NSPredicate do przeszukiwania tablicy rekordów w porównaniu do trzech innych metod. Wynik może być zaskakujący i warto być świadomym co i dlaczego i jak długo się wykonuje.

Filtrowanie tablicy w Objective-C. Porównanie prędkości 4 metod.

W wielu aplikacjach mobilnych istnieje potrzeba przeszukania tablicy z danymi i wybrania pewnego zbioru spełniającego zdefiniwoane kryteria. W języku Objective-C na iOS SDK mamy do dyspozycji kilka różnych metod, aby osiągnąć ten cel. Ich rezultat jest identyczny, różnica (zasadnicza) polega na prędkości działania tych metod. Tworząc kod w odpowiedni sposób, możemy osiągnąć wynik ponad 2 razy szybciej niż w przypadku najwolniejszej metody.  Zapraszam do zapoznania się ze szczegółami.

Czytaj dalej Filtrowanie tablicy w Objective-C. Porównanie prędkości 4 metod.