Podstawy współpracy aplikacji z beaconami

Wstęp

Beacon – to małe i niepozorne urządzenie wysyłające sygnał do wszystkich urządzeń bluetooth w pobliżu. Beacony mimo braku własnej nazwy w języku polskim są w naszym kraju coraz szerzej stosowane i przede wszystkim produkowane. Najpopularniejsze na świecie beacony są pochodzą z polskich firm Estimote i Kontakt, a jedną z większych firm oferujących kompleksowe rozwiązania z beaconami w roli głównej jest -również polska- firma Infinity.

Jak działają beacony można się z łatwością samemu przekonać, wiele muzeów w Polsce ma na nich opartą nawigację po wystawach i wirtualnego przewodnika, który opowiada nam w kontekście miejsca w koło którego jesteśmy  (m. in. Brama Poznania). Można również pobrać na swój telefon np. aplikację Everytap – to startup, który pozwala na zbieranie bonusów za odwiedzanie partnerskich lokali, wysyła również powiadomienia push jak znajdziemy się blisko jakiegoś miejsca (w Poznaniu jest wiele miejsc z współpracujących z tą aplikacją)

Czytaj dalej

Tworzenie aplikacji na Androida w języku Kotlin

O Kotlinie

Idąc za definicją z Wikipedii, Kotlin to statycznie typowany język programowania działający na maszynie wirtualnej Javy (JVM) i zaprojektowany z myślą o pełnej interoperacyjności z językiem Java. Dla nas oznacza to przede wszystkim tyle, że możemy użyć Kotlina wszędzie tam, gdzie dotychczas króluje Java, a to otwiera całkiem dużo możliwości, wliczając tworzenie aplikacji na system Android.
Kotlin jest stosunkowo nowym i ciągle intensywnie rozwijanym językiem – ukazał się w 2011, ale wersja 1.0 jest dostępna dopiero od lutego 2016. Za stworzenie i rozwój Kotlina odpowiada firma JetBrains – twórcy m.in IntellIJ IDE – środowiska, na którym oparte jest Android Studio.

Czytaj dalej

Wi-Fi Direct

Każdy spotkał się z technologią Wi-Fi. Wielu z nas korzysta z niej na co dzień — zazwyczaj w celu uzyskania dostępu do Internetu. Nie zawsze jednak potrzebny jest nam Internet, aby wykonać określoną czynność. Czasem chcemy po prostu połączyć się z innym urządzeniem i przesłać jakieś dane — wysłać plik, wyświetlić coś na telewizorze Smart TV, zagrać w grę z lokalnym multiplayerem, podesłać dokument do druku w drukarce bezprzewodowej.

Podłączanie routera i konfigurowanie sieci nie jest zbyt poręczne i nie zawsze jest możliwe. Na myśl przychodzi technologia Bluetooth, jednak korzystając z niej, ograniczeni jesteśmy do powolnych połączeń i bardzo małego zasięgu.

Na szczęście istnieje alternatywna technologia do użycia właśnie w takich przypadkach. Jest nią Wi-Fi Direct.

Czytaj dalej

Integracja systemu Android z Facebook-iem

Wprowadzenie

W dzisiejszych czasach największą popularnością wśród społeczeństwa cieszą się media społecznościowe, skupiając w jednym miejscu bardzo wielu użytkowników. Najpopularniejsze platformy, jakie możemy aktualnie znaleźć na rynku, to przede wszystkim Facebook, Twitter, LinkedIn, Instagram. Jako, że są to serwisy, które udostępniają użytkownikom cały wachlarz funkcjonalności, są bezkonkurencyjne wśród innych aplikacji. Jedną z ich zalet jest to, że udostępniają możliwość integracji z innymi aplikacjami, poprzez udostępnianie danych użytkowników. Oczywiście, każdy z tych portali bardzo chroni i zapewnia pełne bezpieczeństwo swoim użytkownikom. Jednak każdy z klientów portali społecznościowych, ma możliwość nadania uprawnienia innym aplikacjom, do pobierania swoich danych, do uwierzytelniania.

Wraz z popularyzacją platformy Android na urządzenia mobilne, a tym samym ze wzrostem komercyjnych aplikacji dostępnych na te urządzenia, integracja tych systemów z dostępnymi na rynku portalami społecznościowymi staje się bardzo ważną funkcjonalnością, udostępnianą dla użytkownika. Klienta interesuje przede wszystkim scentralizowanie swoich kont, a nie ich rozdrobnienie. Użytkownik chce dzielić się swoimi osiągnięciami, w aplikacjach sportowych, grach z innymi użytkownikami. Oprócz możliwości integracji z wyżej wymienionymi mediami społecznościowymi, mamy również możliwość łączenia naszych kont, między innymi z Dropbox-em, Paypal-em, Google+.

Czytaj dalej

JQuery Mobile

Czym jest jQuery Mobile?

JQuery Mobile to framework stworzony przez zespół projektowy jQuery, który jest intensywnie rozwijany od 2010 roku. Rozpowszechniany na licencji open source. JQuery Mobile jest biblioteką, która wywodzi się od popularnej biblioteki JavaScript jQuery i służy do projektowania mobilnych aplikacji internetowych, które działają na różnych urządzeniach. Biblioteka ta pozwala w szybki sposób stworzyć aplikację webową, która wygląda podobnie i działa tak samo na różnych urządzeniach. Pod względem implementacji kodu bardzo przypomina jQuery UI, jednak jQuery Mobile koncentruje się na urządzeniach mobilnych, dzięki temu ma o wiele szersze zastosowanie. W jQuery Mobile wykorzystuje się własności HTML5 oraz CSS3, zmodyfikowane znaczniki pozwalają na uzyskanie spójnego efektu na wielu platformach mobilnych.
Czytaj dalej

Optymalizacja i zaciemnianie kodu w Androidzie

WSTĘP

Platforma Androida w ciągu ostatnich 10 lat niewiarygodnie się rozwinęła. W Internecie znajduje się tysiące tutoriali i poradników jak stworzyć aplikację, a entuzjastów Androida każdego dnia przybywa.

Jednak jest pewna dziedzina tej platformy, która mimo tak prężnego rozwoju, jest bardzo zaniedbana – mianowicie zabezpieczenie kodu przed hakerami. O ile przy implementacji drobnych gier internetowych, nic poważnego się nie stanie jak ktoś pozna kod takiej aplikacji, to przy aplikacjach związanych z płatnościami bankowymi lub z ochroną telefonu przed wirusami, sprawa jest poważniejsza. Znajomość kodu może bardzo wspomóc potencjalnych hakerów w znalezieniu luk bezpieczeństwa, a zdekompilowanie pliku .apk z powrotem do źródeł w javie nie jest żadnym problemem, można bez problemu znaleźć w Internecie instrukcje do tego. Wydawałoby się że zaciemnienie kodu w aplikacjach zawierających dane osobiste, jest czymś oczywistym, jednak biorąc pod uwagę badania z listopada 2015 roku, okazało się że wśród 200 najczęściej używanych aplikacji na GoogleStore,  85 % z nich może być zdekompilowane. Więcej informacji na ten temat można doczytać w tym artykule.

Warto zatem zwrócić szczególną uwagę na zaciemnienie kodu i zabezpieczenie przed niechcianymi oczami. Jest to konieczne przy aplikacjach przechowujących prywatne dane, no ale również dla innych aplikacji jest to istotne. Chyba nie chcemy aby ktoś widział kod naszej aplikacji, może to być wykorzystane na różne sposoby, niekoniecznie do ataku hakerskiego.

W tym artykule będą omówione i porównane 2 najpopularniejsze narzędzia  ProGuard i DexGuard, które służą nie tylko do zaciemnienia kodu, ale także i do jego optymalizacji.

Czytaj dalej

Usuwamy boilerplate

Czym jest Boilerplate?
Boilerplate jest to kod, który jest napisany tylko dlatego, bo wymaga tego język. W Androidzie i czystej Javie jest wiele szablonów, które muszą być spełnione by nasz kod działał.

Butter Knife, RetroLambda, Lombok to biblioteki, które skracają nasz kod eliminując zbędny boilerplate. Poniżej przedstawię podstawowe użycie bibliotek, które dobrze radzą sobie z boilerplate w Androidzie.

Czytaj dalej

Metody testowania aplikacji w systemie Android

Wstęp

Aplikacje mobilne, które są dostępne na dzisiejsze urządzenia nie przypominają już aplikacji znanych z dawnych telefonów komórkowych z przed ery smartfonów. Stają się one coraz bardziej złożone, oferują synchronizację w chmurze, stawiają na jak najlepszy user experience przy jednoczesnej optymalizacji pod względem wykorzystania procesora, pamięci oraz zasobów baterii.

Dlatego też jest to bardzo ważne, aby traktować takie aplikacje mobilne jak pełnoprawne aplikacje desktopowe oraz skupiać się na odpowiednim ich przetestowaniu.

Czytaj dalej

Uprawnienia tymczasowe

Wstęp

Dostawcy treści odgrywają bardzo istotną rolę w środowisku systemu Android. Są podstawowym interfejsem udostępnia danych zewnętrznych dla aplikacji. Korzystanie z usług dostawcy treści wymaga posiadania przez aplikację stosownych uprawnień. Zazwyczaj nadawanie uprawnień odbywa się poprzez wyrażenie na to zgody przez użytkownika w czasie instalacji. W niektórych przypadkach aplikacja jedynie sporadycznie korzysta z danego dostawcy treści i nie chcemy, aby miała ona ciągły dostęp do niego. W takim przypadku można wykorzystać mechanizm uprawnień tymczasowych, zwanych również uprawnieniami URI (ang. URI permissions).
Czytaj dalej