Tensorflow

Wstęp

TensorFlow, to jedna z najpopularniejszych bibliotek do implementacji i korzystania z metod uczenia maszynowego. Pozwala na samodzielne przygotowanie infrastruktury do realizacji konkretnych zadań. Od samodzielnego stworzenia modelu przez trening sieci neuronowej, aż do jej użycia do rozwiązywania problemów takich jak rozpoznawanie obrazów, głosu, przewidywanie cen akcji czy sterowanie robotami.

Dzięki TensorFlow Lite, z biblioteki można korzystać również na Androidzie. W tym wpisie możesz zapoznać się z historią i możliwościami TensorFlow, a ponadto krok po kroku przejść przez proces budowy aplikacji, która wykorzystuje sztuczne sieci neuronowe do rozpoznawania obiektów na zdjęciach.

Czytaj dalej

LibGDX – silnik do tworzenia wieloplatformowych gier w Java

Podstawowe informacje

Kilka słów wstępu

LibGDX to framework open-source bazującym na Javie i wspierający najnowsze wersje OpenGL’a. Pozwala on na budowanie aplikacji na różne platformy korzystając z tej samej bazy kodowej. Ze względu na prostotę w obsłudzę połączoną z szybkim działaniem, niskim zużyciem zasobów i bardzo dokładną dokumentacją, LibGDX znalazł zastosowanie w wielu projektach zarówno hobbystycznych jak i profesjonalnych.

Strona główna projektu: https://libgdx.badlogicgames.com/

Dokumentacja: https://libgdx.badlogicgames.com/documentation/

Przykłady gier : https://itch.io/games/made-with-libgdx

Projekt gry Wąż przygotowany na zaliczenie przedmiotu: https://bitbucket.org/Agred/snake/src/master/

Czytaj dalej

Unity – tworzenie gier mobilnych

Unity jest silnikiem umożliwiającym tworzenie gier (jak i nie tylko; polecam zapoznać się z https://unity.com/madewith) zarówno 2D jak i 3D na wiele platform docelowych w tym komputery, konsole, smartfony, … . Poniższy wpis skupi się na przedstawieniu jak krok po kroku stworzyć grę na system Android, która jest wzorowana na kursie ze strony: edu4java, ale została rozszerzona o obsługę gestów oraz dźwięku.Więcej o samym silniku Unity, jego możliwościach i wspieranych platformach można przeczytać na oficjalnej stronie: https://unity3d.com/unity. W zakładce Learn są dostępne kursy i dokumentacja silnika.

Czytaj dalej

Firebase – Cloud Messaging oraz Analytics

Firebase to platforma deweloperska rozwijana pierwotnie przez firmę Firebase Inc, która została przejęta przez Google w roku 2014. Dostarcza ona na rok 2018 osiemnaście produktów wykorzystywanych łącznie przez 1.5 miliona aplikacji. Produkty Firebase są serwerową implementacją wybranych komponentów aplikacji np. bazy danych, udostępnianych aplikacji mobilnej przez dostarczone SDK. Dzięki temu aplikacja mobilna może wykorzystywać moc obliczeniową, niedostępną w urządzeniu mobilnym oraz funkcjonalności, których wdrożenie po stronie urządzenia byłoby zbyt kosztowne lub bezsensowne.

Produkty Firebase są proste jednak bardzo funkcjonalne dzięki wykorzystywaniu możliwości środowiska rozproszonego. Przykładem może być replikowana baza danych w każdym urządzeniu, system plików udostępniany dla każdego urządzenia, usługa hostingowa służąca jako CDN czy też framework Machine Learning. Wszystkie produkty są tworzone zgodnie z ideą “out of the box” a ich wdrożenie jest niezwykle proste.

Poniższe instrukcje będą bazować na aplikacji demonstracyjnej dostępnej w repozytorium Git opublikowanym w portalu Github oraz Gitlab Politechniki Poznańskiej. Adresy do repozytoriów można stosować zamiennie. Repozytoria zawierają dwa główne branche tut-firebase-cm oraz tut-firebase-et. Od nich powstały kolejne w notacji tut-firebase-cm-2 zawierające zmiany z kolejnych kroków tutoriala np. 2. Branch final-app zawiera finalną wersję aplikacji.

Repozytorium Github: https://github.com/writ3it/android-firebase-tutorial01
Repozytorium PUT Gitlab: https://gitlab.cs.put.poznan.pl/inf117332/android-firebase-tutorial01

Do działania potrzebujesz skonfigurowane środowisko Android Studio w najnowszej wersji oraz aktywne konto Google. Omawiane usługi są bezpłatne. Zakładam, że umiesz pracować z repozytorium Git w podstawowym zakresie (commit, checkout, .gitignore). Prezentowany kod jest zapisany w języku Kotlin. Porównując drzewo plików zwróć uwagę na jego tryb (Android/Project).

Czytaj dalej

Android Game Tutorial

Kurs projektowania gier na Androida (repozytorium można znaleźć tutaj) powstał jako alternatywa dla tutorialu z edu4java, używanego podczas zajęć z PANUM na Politechnice Poznańskiej.

W kursie omówiono tworzenie gry polegającej na unikaniu asteroid, która luźno nawiązuje do produktu z 1979 roku o nazwie Asteroids stworzonego przez firmę Atari (więcej można przeczytać na Wikipedii tutaj).

Czytaj dalej

Firebase Realtime Database

W dzisiejszych czasach tworząc jakąkolwiek aplikację często stawiamy na rozwiązania oparte na chmurze. W szczególności wygodnym dla programisty są udostępniane w ten sposób bazy danych. Zamiast tworzyć własne, drogie serwery, które wymagają mnóstwo konfiguracji lepiej skorzystać z gotowego, wygodnego API, a konfigurację i zarządzanie zostawić innym. A jakby tak jeszcze do tych wszystkich zalet baz danych w chmurze dodać fakt, że baza danych sama będzie informować aplikację, że dane, które widzi użytkownik są nieaktualne? Okazuję się, że takie połączenie jest jak najbardziej możliwe dzięki Firebase Realtime Database! Ale po kolei.

Czytaj dalej

Android Oreo – Notification channel

Wstęp

Wraz z nową wersją Androida Oreo pojawiła się wiele nowych funkcjonalności. Jedną z nich są kanały powiadomień (Notification Channels). Pozwalają one na publikacje powiadomień w kanałach (kategoriach), którymi można w prosty sposób zarządzać z poziomu menedżera aplikacji. Jeśli aplikacja ma wiele kanałów programista ma możliwość pogrupowania ich ze względu na np. tematykę.

Czytaj dalej

Tworzenie raportów w środowisku APEX z wykorzystaniem… MS Word

Podczas budowy do aplikacji webowych w przypadku wielu różnych platform programowych pojawia się problem wyboru rozwiązań pozwalających na generowanie wydruków. Często rozważane i wykorzystywane są takie rozwiązania jak: BIRT, JasperReports, Pentaho Business Analytics, ReportServer.

Wykorzystanie zewnętrznych produktów ma swoje plusy i minusy. Często do minusów zaliczyć można potrzebę integracji dwóch produktów,  problemy z bezpieczeństwem danych itp. Czasami problemem jest po prostu czas i skomplikowanie rozwiązania.

Tymczasem wiele platform do budowy aplikacji webowych udostępnia proste mechanizmy wydruku oparte o XSL-FO, które po prostu wystarczy wykorzystać. Tak dla przykładu jest w przypadku platformy APEX (Oracle Application Express).

Ktoś powie: „XSL-FO? Przecież to jest dopiero horror!”. Na przykładzie poniższego przykładu/tutorialu postaram się pokazać, że wcale tak być nie musi.

Zakładam, że czytelnik zna:

  • platformę APEX,
  • arkusze stylów XSLT oraz
  • format XSL-FO.

Niestety, bez znajomości tych zagadnień zrozumienie czy też wykonanie tego tutorialu może być niemożliwe lub niezrozumiałe.
Czytaj dalej

Integracja aplikacji Android z Firebase Cloud Messaging

Czym jest FCM?

Firebase Cloud Messaging jest darmową usługą Google, która pozwala przesyłać wiadomości między dowolną aplikacją serwerową, a aplikacjami mobilnymi. Dostarcza wsparcie dla Androida, iOS oraz aplikacji internetowych Chrome. FCM jest następcą Google Cloud Messaging (GCM).

firebase_diagram

Firebase Cloud Messaging działa jako pośrednik między serwerem lub konsolą Firebase, a aplikacją mobilną. Powiadomienia wysyłane do chmury Google następnie są kolejkowane i przekierowywane do konkretnych urządzeń. Usługa Google pozwala na przesyłkę wiadomości do konkretnego urządzenia, do wszystkich urządzeń (broadcast) lub do urządzeń subskrybujących dany temat (grupy).

Integracja FCM polega na trzech prostych krokach:

  1. Utworzenie projektu Firebase i powiązanie go z aplikacją klienta
  2. Subskrybowanie do danego kanału oraz obsługa komunikatów w aplikacji mobilnej
  3. Implementacja części serwerowej

W tym artykule skupimy się na dwóch pierwszych punktach, a za aplikację serwerową posłuży nam konsola Firebase, z poziomu której wyślemy wiadomości do klienta.

Czytaj dalej