REKLAMA

Programista 9/2014 (28) – Android – spis treści

Zapraszamy do zamówienia magazynu w prenumeracie. Magazyn jest dostępny w formie papierowej, .pdf, .ePUB i .mobi.

>>Formularz zamówienia<<

Lista Salonów Empik, gdzie dostępny jest ten numer Programisty: programista28_empiki

BIBLIOTEKI I NARZĘDZIA

Projektowanie komponentów wizualnych
Część 4: Geometria

Po funkcjonalności przewijania – którą oprogramowywaliśmy poprzednim razem – drugim najczęściej spotykanym przekształceniem obszaru roboczego jest jego skalowanie (zoom), natomiast na trzecim miejscu znajdziemy rzadsze, ale również przydatne przekształcenie obrotu. Translacja, skala i obrót są przykładami przekształceń afinicznych, dla których Windows Forms – co miłe – posiada wbudowane wsparcie. Przygotujcie się na sporą dawkę matematyki…

Wojciech Sura

JĘZYKI PROGRAMOWANIA

Scaloid, Macroid, czyli Scala na zielono

Jeśli zadać pytanie o najbardziej zaawansowany język programowania dla maszyny wirtualnej Java (JVM), to, naturalnie, nasuwa się oczywista odpowiedź, że to Java, ale tak nie jest; wbrew pozorom dla JVM istnieje dodatkowa grupa języków programowania poza wymienioną Javą. Języki te oferują wiele możliwości szczególnie w zakresie programowania funkcyjnego oraz obiektowego czy też równoległego, czasem możliwości te wybiegają daleko poza ramy języka Java.

Marek Sawerwain

PROGRAMOWANIE GIER

Wzorce Programowania Gier: Graf Zachowań

W czwartej odsłonie cyklu Wzorce Programowania Gier opiszę koncepcję tzw. Grafu Zachowań: rozwiązania działającego na nieco podobnej zasadzie jak Graf Sceny, tyle że bazującego na węzłach, które reprezentują akcje odpowiedzialne za konkretne elementy sterowania logiką gry. Dzięki hierarchicznej strukturze wzorca, na jego podstawie można łatwo budować złożone przepływy logiki, składając je z elementów atomowych - niczym z klocków Lego. Znacznie łatwiej jest też utrzymywać i modyfikować kod opierający się na tego rodzaju koncepcji architektonicznej. Jeśli chcesz przekonać się, jak wykorzystać Graf Zachowań w projekcie Twojej gry, to poniższy tekst powinieneś potraktować jako lekturę obowiązkową.

Rafał Kocisz

Przewodnik po MonoGame, Część 5: Mieszanie kolorów

Opisany w trzeciej części cyklu model oświetlenia Phonga imituje zjawiska odbijania i rozpraszania światła na powierzchni obiektów znajdujących się na scenie. Są jednak przedmioty, które nie tylko odbijają światło, ale również przepuszczają je. Innymi słowy są częściowo przezroczyste. Z drugiej strony powietrze, którego obecność jest zwykle ignorowana, może przecież nie być doskonale przezroczyste. Przykładem jest mglisty poranek. Zjawisko przezroczystości można w grafice 3D imitować za pomocą techniki nazywanej mieszaniem kolorów (ang. alpha blending), która jest tematem tego artykułu.

Jacek Matulewski

PROGRAMOWANIE URZĄDZEŃ MOBILNYCH

Czujniki w Androidzie

Nowoczesne urządzenia z systemem Android wyposażone są w szereg czujników, które można wykorzystać w celu pozyskania informacji o położeniu oraz otoczeniu smartfona lub tabletu. Interfejs programistyczny jest bardzo prosty w obsłudze, jednak zdobycie w pełni poprawnych danych wymaga niekiedy nieco zachodu i poznania zjawisk fizycznych rządzących działaniem każdego z czujników.

Paweł Wolniewicz

Google Glass. Programowanie urządzeń ubieralnych

Urządzenia ubieralne stanowią nowy rodzaj urządzeń mobilnych i udostępniają funkcjonalności analogiczne do oferowanych przez smartfony. Jednak urządzenia ubieralne są noszone przez użytkownika na jego ciele. Takie rozwiązanie stwarza nowe możliwości interakcji z ich użytkownikiem. W szczególności urządzenia te mogą być sterowane głosowo, bez użycia rąk, a także wyświetlać komunikaty z pominięciem standardowego ekranu. Jednym z najciekawszych, choć budzących dużo kontrowersji, urządzeń ubieralnych są okulary Google Glass. W tym artykule przedstawię interfejs Mirror API, umożliwiający tworzenie aplikacji dla tych okularów.

Dawid Borycki

PROGRAMOWANIE APLIKACJI WEBOWYCH

sinon.js – scyzoryk szwajcarski w testowaniu

Biblioteka sinon.js oferuje całą paletę narzędzi związanych z testowaniem aplikacji javascriptowych: począwszy od asercji, poprzez implementację mechanizmów TDD/BDD, wrappery na obsługę czasu i żądań AJAX, a skończywszy na sandboxach, które spinają poszczególne elementy sinona w danym środowisku, ułatwiając zarządzanie nimi. W niniejszym artykule skupię się na zastosowaniu sinona w pisaniu testów automatycznych oraz zaślepianiu API.

Tomasz Ducin

PROGRAMOWANIE SYSTEMÓW OSADZONYCH

Programowanie układów AVR: Wprowadzenie

Platforma AVR jest popularna zarówno wśród amatorów, jak i profesjonalistów. Niskie koszty początkowe, prostota budowy i uniwersalność sprawiają, że jest to idealny wybór dla zaczynających przygodę z układami elektronicznymi i ich programowaniem. Niniejszy artykuł ma na celu zaprezentowanie przykładowego rozwiązania opartego na AVR oraz wprowadzenia do programowania tego układu.

Marek Klimowicz

PYTHON HAS POWER

Wstęp do warsztatów – PHP vs Python, podstawy

Już w listopadzie startują warsztaty z podstaw Pythona dla programistów PHP w ramach akcji www.PythonHasPower.com. W związku z tą akcją zapraszamy nie tylko na zajęcia, ale także do lektury i praktycznej nauki już teraz. Dziś proponuję porównanie obu języków, czyli PHP oraz Pythona. Pierwszą rzeczą, którą należy zaznaczyć, jest to, że porównanie nie ma na celu wykazania wyższości żadnego z tych języków, jedynie zaciekawienie czytelnika nowymi możliwościami.

Piotr Mazurek

LABORATORIUM BOTTEGA

Przejrzysty i testowalny kod na Androidzie? Spróbujmy z Clean Architecture

Rozdzielenie logiki biznesowej od skomplikowanego technicznego API platformy podczas tworzenia aplikacji na Androida może stanowić spory problem. W niniejszym artykule przedstawiona zostanie architektura Clean Architecture autorstwa Roberta C. Martina, która może być pomocna w ustrukturyzowaniu projektu tak, aby był bardziej przejrzysty, łatwiej testowalny i mniej uzależniony od platformy.

Michał Charmas

BEZPIECZEŃSTWO

Po pierwsze bezpieczeństwo: Goodbye SHA-1 (Secure Hash Algorithm)

SHA-1 – funkcja skrótu uważana od 2005 roku za niebezpieczną, w 2014 roku jest wykorzystywana w 90% do podpisów certyfikatów SSL. Dlaczego dopiero teraz duże korporacje IT oficjalnie rozpoczynają walkę z SHA-1? Czy przyczyniła się do tego afera z ujawnieniem tajnych dokumentów NSA? Jakie zagrożenie jest z tym związane? Kto jest podatny na atak i które funkcje skrótu są bezpieczne?

Kacper Rybczyński

STREFA CTF

Zdobyć flagę… DEF CON CTF 2014 - wdub (v2)

Średnio co około dwa tygodnie gdzieś na świecie odbywają się komputerowe Capture The Flag - zawody, podczas których kilku-, kilkunastoosobowe drużyny starają się rozwiązać jak najwięcej technicznych zadań z różnych dziedzin informatyki: kryptografii, steganografii, programowania, informatyki śledczej, bezpieczeństwa aplikacji internetowych itd. W serii „Zdobyć flagę…” co miesiąc publikujemy wybrane zadanie pochodzące z jednego z minionych CTFów wraz z jego rozwiązaniem.

Mateusz “j00ru” Jurczyk

KLUB LIDERA IT

Jak rozmawiać z biznesem, który nie wie, czego chce? Część 2

Niniejszy odcinek sponsoruje potrzeba biznesowa, którą bierzemy pod lupę i rozkładamy na części pierwsze. Przede wszystkim dowiesz się, w jaki sposób odkryć i nazwać potrzeby, która sprawiają, że biznes chce nowych funkcjonalności. Na podstawie typowej sytuacji z projektu zobaczysz, jak przedstawione techniki działają w praktyce.

Michał Bartyzel, Mariusz Sieraczkiewicz

KLUB DOBREJ KSIĄŻKI

Język C++. Kompendium wiedzy

Rafał Kocisz