Jak przyśpieszyć CoreData?

Ten post to notatka, aby nie zgubić przydatnego linka do listy 8 rzeczy, których weryfikacja pozwoli nam na upewnienie się, że aplikacja mobilna wykorzystuje CoreData we w miarę optymalny sposób:

http://agilemd.ghost.io/2015/02/02/optimizing-coredata-fetches/

Polecam przeczytać zalinkowany artykuł.

EDIT:

Polecam też zapoznanie się z dokumentacją od Apple, nt wydaności CoreData. Dosyć dobrze opisują pewne zagadnienia i sztuczki jakie można zrobić, żeby coś przyśpieszyć pod tym linkiem.

Kilka słów na temat zgłaszania błędów w iOS SDK w bugreport.apple.com

Jak to w świecie oprogramowania jest: błędy w oprogramowaniu były, są i będą. Wszędzie. Nawet taki Apple – wielka firma z olbrzymimi środkami – boryka się z prozaicznymi rzeczami typu bug w aplikacji lub SDK. Nie dawno znalazłem pewien problem we frameworku EventKit.

Czytaj dalej Kilka słów na temat zgłaszania błędów w iOS SDK w bugreport.apple.com

Wzorce projektowe: Singleton w Objective-C

Dziś kolej na Singleton w Objective-C. Poprzednio (w tym poście) pokazałem sposób na ten wzorzec napisany w języku Swift.

Opis wzorcahttp://pl.wikipedia.org/wiki/Singleton_(wzorzec_projektowy)

Czytaj dalej Wzorce projektowe: Singleton w Objective-C

Wzorce projektowe: Singleton w Swift

Na temat Singletona chyba każdy ma swoje własne zdanie. Dla jednych jest ulubionym wzorcem, a dla innych Singleton jest przez wiele osób uznawany jako antypattern. Prawda jak zwykle leży pewnie gdzieś po środku i jeśli używamy tego wzorca z głową, to architektura aplikacji nie powinna na tym ucierpieć.

Opis wzorcahttp://pl.wikipedia.org/wiki/Singleton_(wzorzec_projektowy)

Czytaj dalej Wzorce projektowe: Singleton w Swift

Wzorce projektowe w Objective-C i Swift.

Ostatnio zastanawiałem się, co dobrego mógłbym napisać, co warte byłoby wrzucenia na tego bloga, co byłoby związane za aplikacjami mobilnymi (najchętniej platformą iOS), a jednocześnie, co dałoby komuś korzyść i ułatwiło naukę lub kodowanie w pracy. Temat wzorców projektowych chodził już za mną jakiś czas. Jednak myślę, że nie do końca najlepszym pomysłem jest tworzyć kolejne teksty na tematy, które wyczerpano już dawno temu bez pokrycia ich w praktyce. Kompletnego materiału po polsku, na temat wzorców obiektowych stworzonych w Objective-C i Swift nie znalazłem. Dlatego zapraszam na cykl artykułów, w którym przedstawię implementację wzorców projektowych w 2 językach: Objective-C oraz Swift.

Startując od przyszłego tygodnia, postaram się, aby posty z wzorcami będą pojawiać się cyklicznie co tydzień lub co dwa tygodnie. Jako podstawę, wykorzystam spis wzorców z Wikipedii. Dla każdego wzorca postaram się przygotować przykład kodu źródłowego, projekt Xcode do ściągnięcia oraz krótkie omówienie. Postaram się nie odkrywać koła na nowo i nie poświęcać opisowi wzorca zbyt wiele miejsca. Przynajmniej takie założenia mam do tej serii postów. Moim celem nie jest w tej serii dogłębne omówienie wzorców, ich poprawne zastosowanie czy też przypadki użycia. Chciałbym jedynie dostarczyć użytecznych przykładów implementacji wzorców projektowych w językach Swift i Objective-C.

Wszystkie posty opisujące wzorce trafią ostatecznie na tę stronę Wzorce projektowe w Objective-C i Swift – Kompendium , która zbierze i pogrupuje je w przejrzysty sposób.

Mam nadzieję, że podany materiał przyda Cię czegoś nauczy lub usystematyzuje to co już wiesz. Jeżeli wiesz więcej niż podałem w postach, to zapraszam do komentowania i rozszerzania podanych informacji. Zapraszam za tydzień na pierwszy post z tej serii.

Życzę udanych projektów i dobrego kodu!

Memory Leaks vs. ARC. Uważaj na retain cycles.

Nie znam osoby, której by nie ucieszyło wprowadzenie ARCa w 2011 roku przez Apple. Ułatwiło to znacząco tworzenie stabilnych pamięciowo aplikacji na iOS. Niestety nie zwolniło z myślenia i nadal można popełnić błędy, które doprowadzą do wycieków pamięci w aplikacji. Dziwne, prawda? A jednak to prawda. W tym poście pokażę na co trzeba uważać.

Czytaj dalej Memory Leaks vs. ARC. Uważaj na retain cycles.

WebStorm i Sublime Text – dobre narzędzia do tworzenia hybrydowych aplikacji mobilnych.

W tym poście postaram się napisać o dwóch dobrych narzędzia, z których korzystałem w czasie tworzenia hybrydowych aplikacji mobilnych: WebStorm i Sublime Text.

WebStorm logo SublimeText Logo

Czytaj dalej WebStorm i Sublime Text — dobre narzędzia do tworzenia hybrydowych aplikacji mobilnych.

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.

Tworzenie Aplikacji Mobilnych – Roadmap

Przed stworzeniem aplikacji mobilnej, należy podjąć szereg decyzji, które niosą ze sobą określone skutki. Na tym blogu starałem się przedstawić nieco informacji na temat tworzenia aplikacji mobilnych w taki sposób, by podjęcie niektórych decyzji było łatwiejsze. Chcąc zapoznać się z tymi artykułami polecam taką oto kolejność.

  1. HTML5, Aplikacja Natywna, czy Hybryda?
    W tym artykule: Tworzenie Aplikacji Mobilnych – 3 możliwości: HTML5, natywna, czy hybryda?, przedstawiam argumenty za i przeciw do każdej z opcji. W zależności od Twoich wymagań, budżetu potrzeb – wybierz właściwą dla siebie technologię.
  2. Sencha Touch to jeden z większych frameworków, który może służyć za podstawę aplikacji HTML5 lub hybrydowej.  W artykule:  Sencha Touch – hybrydowe aplikacje mobilne starałem się pokazać ideę frameworka, jego cechy szczególne i wyróżniające od innych bibliotek. Wspominam także o projekcie Cordova – który jest warstwą pośredniczącą między aplikacją HTML5 a rządzeniem mobilnym.
  3. Baza danych w aplikacji mobilnej jest komponentem wręcz niezbędnym. W tym poście: SmartStore – Mobilna baza danych na sterydach? Czy ciekawostka informatyczna? staram się przedstawić cechy charakterystyczne i możliwości Smartstore’a – czyli bazy danych NoSQL zaprojektowanej specjalnie na potrzeby aplikacji mobilnych biznesowych.
  4. W artykule iBeacons – informacja kontekstowa dla aplikacji mobilnych. opisuję jak naszej aplikacji możemy zapewnić informację na temat jej położenia (sąsiedztwa) przy pomocy iBeaconów. Wyjaśniam po krótce co to jest i jak działa.

Mam nadzieję, że dzięki powyższym artykułom poszerzyłeś swoją wiedzę i uświadomiłeś sobie coś, o czym do tej pory nie miałaś pojęcia. Chciałbym, abyś po lekturze tych tekstów był w stanie świadomie wybrać coś dla siebie, coś co odpowiada potrzebom Twoim  lub Twojego biznesu.

Jeżeli jest coś, czego nie wiesz, zapytaj w komentarzu. Jeśli jestem w stanie, to postaram Ci się jakoś pomóc, a przynajmniej nakierować.

 


A oto przydatne artykuły, które powstały już po publikacji tego posta:

  1. Debugowanie mobilnych aplikacji hybrydowych.

iBeacons – informacja kontekstowa dla aplikacji mobilnych.

Co to jest iBeacon i jak działa?

iBeacon to urządzenie proste. Nie tyle technicznie, ale jeśli chodzi o  zasadę działania. Jego jedynym zadaniem jest wysyłanie swojego UUID (Universally Unique IDentifier), oraz dwóch liczb Major i Minor, co pewien zdefiniowany z góry czas, z pewną zdefiniowaną siłą sygnału (co ma bezpośredni wpływ również na obszar w którym taki sygnał da się wykryć).

iBeacon

 

Jeśli chodzi o elektronikę, to jest to już nieco bardziej skomplikowany temat. Urządzenie na pewno musi posiadać jakieś zasilanie (najczęściej bateria), nadajnik i odbiornik BLE (Bluetooth Low Energy), pewnie jakiś mikroprocesor i pamięć do obsługi mini systemu operacyjnego, który przechowuje konfigurację nadajnika, zarządza nadawaniem sygnału, czy też obsługuje różne inne czujniki wpięte w iBeacona, np czujnik temperatury, żyroskop, itd.

Czytaj dalej iBeacons — informacja kontekstowa dla aplikacji mobilnych.