Rzwój oprogramowania w Defoldzie na platformę Android

Getting Started - Introduction - Installing Defold - Glossary - Defold for Flash users - Getting help Project Setup - Creating a project - Project settings - Sharing projects Editor - Overview - Custom project templates - Editor scripts - Debugger - Keyboard shortcuts - Preferences - Styling Core Concepts - Building blocks - Addressing - Message passing - Application lifecycle Assets and Resources - Importing assets - Caching assets - Importing 2D graphics - Importing 3D models - Adapting to different screen sizes - Live update - Atlas - Font - Resource management - Tile source - Texture filtering - Texture profiles Animations - Overview - Flipbook Animation - Model animation - Property animation (tweens) - Rive animation - Spine animation Components - Overview - Collection factory - Collection proxy - Collision object - Camera - Factory - Label - Mesh - Model - Particle FX - Rive - Sound - Spine - Sprite - Tilemap GUI - GUI overview - Box nodes - Text nodes - Pie nodes - Spine nodes - ParticleFX nodes - Template nodes - Scripts - Clipping - Layouts Physics - Physics overview - Collision objects - Collision shapes - Collision groups - Collision messages - Resolving collisions - Ray casts - Joints and constraints Sound - Sound - FMOD Input - Overview - Key and text input - Mouse and touch - Gamepads Game logic - Scripts - Properties - Script properties - Lua in Defold - Modules - Debugging - Writing code File I/O - Working with files Network Connections - Overview - HTTP Requests - Socket connections - WebSocket connections - Online services Rendering - Render - Material - Shader - Texture filtering Workflow - Bundling an application - Caching assets - Command line tools - Hot reloading - Refactoring - The mobile dev app - Version control - Writing code - Working offline Debugging - Debugging game logic - Debugging native code - Debugging native code on Android - Debugging native code on iOS - Reading game and system logs Optimization - Optimizing an application - Profiling Monetization - Ads - In-app purchases - Web Monetization Android - Introduction - Advertising Info - AdMob ads - App review and ratings - Camera - Facebook - Firebase Analytics - Firebase Remote Config - Google Play Game Services - Google Play Instant - Inter-app communication - Push notifications - Webview - The mobile dev app iOS - Introduction - Advertising Info - AdMob ads - App review and ratings - Camera - Facebook - Firebase Analytics - Firebase Remote Config - Inter-app communication - Push notifications - Webview - The mobile dev app Nintendo Switch - Nintendo Switch HTML5 - Introduction - Facebook - Facebook Instant Games Desktop - Linux - macOS - Windows Engine extensions - Introduction - Details - Defold SDK - Adding auto-complete definition - Best Practices - Debugging - Build Variants - Manifest Merging

Read this manual in English

Android development

Urządzenia z systemem Android pozwalają na swobodne otwieranie Twoich własnych aplikacji i gier. Jest bardzo łatwo zbudować wersję gry i skopiować ją na takie urządzenie. Instrukcja ta opisuje kroki procesu pakowania aplikacji na system Android. Podczas tworzenia oprogramowania z Defoldem, otwieranie i testowanie Twojej gry poprzez specjalną aplikacją zwaną development app jest często preferowane, ponieważ umożliwia szybkie przeładowanie zawartości nawet podczas działania programu i programowanie urządzenia bezprzewodowo.

Proces podpisywania Android i Google Play

Android wyamaga, aby aplikacje, które chcesz zainstalować na urządzeniu były cyfrowo podpisane. W przeciwieństwie do iOS, gdzie wszystkie certyfikaty są przyznawane przez Apple, Android umożliwia własnoręczne podpisanie aplikacji, więc można swobodnie tworzyć certyfikaty i klucze wymagane do podpisywania.

Proces tworzenia certyfikatów i kluczy może wyglądać na skomplikowany, ale podczas tworzenia oprogramowania Defold go automatyzuje. Kiedy tworzysz aplikację i pakujesz ją do paczki (ang. Android application bundle) możesz podać specyficzny certyfikat i klucz. Jeśli tego nie zrobisz, Defold wygeneruje je za Ciebie i podpisze aplikację automatycznie.

Ważne, aby zaapamiętać, że przy releasowaniu aplikacji na Google Play, będziesz musiał stworzyć certyfikat i klucz, którymi właśnie podpiszesz tę aplikację. Powodem tego jest to, że podczas publikowania zaktualizowanej wersji aplikacji użyć musisz tego samego podpisu jak dotychczasowa wersja. Jeśli podpiszesz aplikację innym kluczem, Google Play odrzuci aktualizację i będziesz musiał opublikować aplikację jako osobna, nowa aplikacja.

Możesz przeczytać więcej na ten temat na stronie Google Play developer console.

Tworzenie certyfikatów i kluczy

Musisz stworzyć certyfikaty w formacie .pem, a klucze w formacie .pk8. Możesz je wygenerować korzystając z narzędzia openssl :

$ openssl genrsa -out key.pem 2048 $ openssl req -new -key key.pem -out request.pem $ openssl x509 -req -days 9999 -in request.pem -signkey key.pem -out certificate.pem $ openssl pkcs8 -topk8 -outform DER -in key.pem -inform PEM -out key.pk8 -nocrypt

Uzyskasz dzięki temu pliki certificate.pem i key.pk8, które użyjesz do podpisania aplikacji.

Upewnij się, że przechowywujesz certyfikaty i klucze w bezpiecznym miejscu. Jeśli je zgubisz, nie będziesz mógł w żaden sposób zaktualizować aplikacji na Google Play.

Tworzenie paczki - Android application bundle

Edytor Defold umożliwia łatwe stworzenie paczki z aplikacją. Przed pakowaniem określasz, których ikon należy używać, wersję produktu itd. w pliku “game.project”. Więcej tutaj: plik konfiguracyjny projektu.

Aby stworzyć paczkę kliknij Project ▸ Bundle... ▸ Android Application... w menu.

Jeśli chcesz, aby Defold automatycznie stworzył certyfikat, zostaw pola Certificate i Private key puste:

Jeśli chcesz podpisać paczkę własnym certyfikatem i kluczem, wskaż odpowiednie pliki .pem i .pk8:

Defold wspiera tworzenie zarówno paczek APK i AAB. Wybierz APK lub AAB z rozwijanej listy “Bundle Format”.

Kliknij Create Bundle po skonfigurowaniu wszystkich ustawień. Będziesz poproszony o wskazanie lokalizacji na Twoim urządzeniu do zapisania zbudowanej paczki.

Instalowanie paczek na Androidzie

Instalowanie APK

Plik .apk może być skopiowany na Twoje urządzenie z systemem Android przy użyciu narzędzia adb (zobacz poniżej) lub załadowane do Google Play poprzez Google Play developer console.

$ adb install Defold examples.apk 4826 KB/s (18774344 bytes in 3.798s) pkg: /data/local/tmp/my_app.apk Success

Instalowanie AAB

Plik .aab może być załadowany do Google Play poprzez Google Play developer console. Jest również możliwe wygenerowanie pliku .apk z pliku .aab, aby zainstalować je lokalnie dzięki Android bundletool.

Pozwolenia

Silnik Defold wymaga niektórych pozwoleń, aby wszystkie jego elementy mogły działać. Pozwolenia są zdefiniowane w pliku AndroidManifest.xml , wybranym w pliku “game.project”: plik konfiguracyjny projektu. Możesz dowiedzieć się więcej na temat pozwoleń w systemie Android w oficjalnej dokumenetacji. Następujące pozwolenia są wymagane przy użyciu domyślnego pliku manifest:

android.permission.INTERNET i android.permission.ACCESS_NETWORK_STATE (Protection level: normal)

Pozwala aplikacji na otwieranie połączeń internetowych i uzyskiwaniu informacji na temat sieci. Potrzebne są przy dostępie do Internetu. (Android official docs) i (Android official docs).

Pozwala aplikacji na zapisywanie do pamięci zewnętrznej. Od poziomu 19 API to pozwolenie nie jest wymagane do zapisu i odczytu plików w lokalizacji przeznaczonej dla Twojej aplikacji (otrzymanej przez Context.getExternalFilesDir(String) i Context.getExternalCacheDir()). To pozwolenie jest wymagane, gdy chcesz zapisywać do lub odczytywać dane z plików z dysku (używając metod z io.* lub sys.save/load) poza lokalizacją wskazaną przez sys.get_save_file() i mając android:minSdkVersion ustawione na mniejsze niż 19 w pliku manifest. (Android official docs).

Pozwala na użwanie PowerManagera, aby powstrzymać procesor przed przyciemnianiem ekranu lub wygaszaniem. Potrzebne jest do tego, by tymczasowo powstrzymać urządzenie przed uśpieniem podczas otrzymywania powiadomień. (Android official docs)

Narzędzie adb - Android Debug Bridge

Narzędzie adb jest łatwym i wszechstronnym programem do interakcji z urządzeniami z systemem Android. Możesz ściągnąć je i zainstalować jako część Android SDK Platform-Tools, dla systemów Mac, Linux czy Windows.

Ściągnij Android SDK Platform-Tools z: Znajdziesz narzędzie adb w /platform-tools/. Alternatywnie, paczki dla konkretnych platform mogą zostać zainstalowane przez odpowiednie managery paczek.

Na Ubuntu Linux:

$ sudo apt-get install android-tools-adb

Na Fedora 18/19:

$ sudo yum install android-tools

Na macOS (Homebrew)

$ brew cask install android-platform-tools

Możesz sprawdzić czy adb działa łącząc Twoje urządzenie z systemem Android do Twojego komputera przez USB i użyć komendy:

$ adb devices List of devices attached 31002535c90ef000 device

Jeśli Twoje urządzenie się nie pojawi, upewnij się najpierw czy zezwolono na USB debugging na urządzeniu mobilnym. Otwórz ustawienia Settings i wyszukaj Developer options (lub Development).

Debugowanie paczki z aplikacją

Paczka zbudowana w trybie Debug silnika (czyli z opcją “Debug” zaznaczoną podczas budowania paczki) będzie wysyłać wszystkie swoje logi do systemu Android. Uzyskaj dostęp do tych logów przez narzędzie adb używając komendy logcat . Prawdopodobnie też będziesz chcieć przefiltrować wynik używając tagu ( -s [tagname] ):

$ adb logcat -s "defold" --------- beginning of /dev/log/system --------- beginning of /dev/log/main I/defold ( 6210): INFO:DLIB: SSDP started (ssdp://192.168.0.97:58089, http://0.0.0.0:38637) I/defold ( 6210): INFO:ENGINE: Defold Engine 1.2.50 (8d1b912) I/defold ( 6210): INFO:ENGINE: Loading data from: I/defold ( 6210): INFO:ENGINE: Initialised sound device 'default' I/defold ( 6210): D/defold ( 6210): DEBUG:SCRIPT: Hello there, log! ...

FAQ

Q: Is it possible to hide the navigation and status bars on Android?

A: Yes, set the immersive_mode setting in the Android section of your game.project file. This lets your app take over the whole screen and capture all touch events on the screen.

Q: Why am I’m getting “Failure [INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES]” when installing a Defold game on device?

A: Android detects that you try to install the app with a new certificate. When bundling debug builds, each build will be signed with a temporary certificate. Uninstall the old app before installing the new version:

Fundacja Wolnego Oprogramowania

Android a wolność użytkowników

Richard Stallman

Pierwotnie opublikowano w The Guardian

W ruchu wolnego oprogramowania rozwijamy oprogramowanie, które respektuje wolność użytkowników, byśmy zarówno my jak i Wy mogli uniknąć oprogramowania, które tego nie robi. W przeciwieństwie do tego, idea „open source” skupia się na tym, jak rozwijać kod; jest to inny sposób myślenia od tego, gdzie wartością nadrzędną jest raczej jakość kodu, nie wolność. Zatem, kwestią tutaj nie jest, czy Android jest „otwarty”, ale czy pozwala użytkownikom na bycie wolnymi.

Android to system operacyjny głównie dla telefonów komórkowych i innych urządzeń, na który składa się Linux (jądro systemu, napisane przez Torvaldsa), trochę bibliotek, platforma Java i nieco aplikacji. Poza Linuksem, oprogramowanie składające się na Androida w wersji 1 i 2 zostało stworzone przez Google i wypuszczone na licencji Apache 2.0, która jest wolną licencją bez copyleft.

Wersja Linuksa zawarta w Androidzie nie jest całkowicie wolnym oprogramowanie ponieważ zawiera „binarne kleksy” (tak jak Linux w wersji Torvalda), z których część jest faktycznie używana w niektórych urządzeniach z Androidem. Używane są też inne niewolne firmware oraz niewolne biblioteki. Poza tymi elementami, kod składający się na Androida w wersji 1 i 2, w formie w jakiej został wypuszczony przez Google, jest wolnym oprogramowaniem – ale on sam nie wystarczy, żeby uruchomić urządzenie. Niektóre aplikacje zwykle dostarczane z Androidem również są niewolne.

Android różni się bardzo od systemu operacyjnego GNU/Linux, ponieważ zawiera bardzo mało GNU. Właściwie jedyny komponent wspólny dla Androida i GNU/Linuksa to samo jądro (Linux). Ludzie, którzy omylnie myślą, że „Linux” odnosi się do całej kombinacji GNU/Linux plączą się z faktami i stawiają paradoksalne stwierdzenia takie jak „Android zawiera Linuksa, ale to nie Linux.”(1) Bez tych pomylonych stwierdzeń, sytuacja jest prosta: Android zawiera Linuksa, ale nie GNU, a zatem Android i GNU/Linux to z grubsza różne rzeczy.

W Androidzie, jądro Linux pozostaje osobnym programem, którego kod źródłowy pozostaje na licencji GNU GPLv2. Połączenie Linuksa z kodem na licencji Apache 2.0 byłoby pogwałceniem praw autorskich, gdyż GPLv2 i Apache 2.0 są niekompatybilne. Wszelkie pogłoski, że Google jakoś przepisał Linuksa na licencję Apache są błędne; Google nie ma prawa zmienić licencji na Linuksie, i nie próbował. Gdyby autorzy Linuksa dozwolili używanie na licencji GPLv3, to można by ten kod połączyć z kodem na licencji Apache, a całość wydać na licencji GPLv3. Ale Linux nie został wydany w ten sposób.

Google spełnił wymogi GNU GPL dla Linuksa, ale licencja Apache, którą jest objęta reszta systemu Android, nie wymaga wydania źródeł. Google oświadczył, że nigdy nie opublikuje kodu źródłowego Androida 3.0 (za wyjątkiem Linuksa). Kod źródłowy Androida 3.1 także był wstrzymany, co czyniło Androida 3, za wyjątkiem Linuksa, po prostu niewolnym oprogramowaniem.

Google mówił, że ukrywał kod źródłowy do 3.0 ponieważ był pełen dziur [ang.: buggy] i powinniśmy czekać na następne wydanie. To może być dobra rada dla tych, którzy po prostu chcą uruchomić system Android, ale to użytkownicy powinni o tym zadecydować. Jeśli programiści i inni lubiący się pobawić by chcieli coś zmienić w swoich wersjach, taki kod by im wystarczał.

Na szczęście, Google później opublikowało kod źródłowy dla Androida 3.*, gdy opublikowana została wersja 4 (także z kodem źródłowym). Problem opisany powyżej okazał się być raczej chwilową aberracją, niż obowiązującą polityką. Jednakże, co się raz wydarzyło, może się jeszcze powtórzyć.

W każdym razie, większość kodu źródłowego różnych wersji Androida została opublikowana jako wolne oprogramowanie. Czy to oznacza, że produkty używające tych wersji Androida respektują wolność użytkowników? Nie, z kilku powodów.

Po pierwsze, większość z nich zawierają niewolne oprogramowanie Google'a, które komunikują się z serwisami jak YouTube czy Google Maps. To nie są oficjalnie częścią Androida, ale to nie oznacza, że to jest w porządku. Wiele wolnych aplikacji dostępnych w poprdzednich wersjach Androida zostało zastąpionych niewolnymi; w 2013 roku pojawił się sprzęt Android, który nie umożliwiał oglądania zdjęć inaczej niż przez niewolną aplikację Google+. W 2014 r. Google ogłosiło, że wersje Androida dla telewizorów, zegarków i samochodów będą w większości niewolne.

Większość urządzeń z Androidem jest sprzedawana z niewolnym oprogramowaniem Google Play software (wcześniej znane jako “Android Market”) Oprogramowanie to zachęca użytkowników posiadających konto Google do instalowania niewolnych aplikacji. (To są przypuszczalnie uniwersalne tylne drzwi, backdoor, choć tego jeszcze nie udowodnionio.) Oficjalnie Google Play nie jest częścią Androida, ale to nie czyni sprawy ani odrobinę mniej złą.

Jeśli cenicie wolność, nie chcecie niewolnych aplikacji z Google Play. Aby instalować wolne aplikacje na Android, nie potrzebujecie w ogóle Google Play, ponieważ są dostępne na

Produktom Androida również towarzyszą niewolne biblioteki. Oficjalnie nie są one częścią Androida, ale ponieważ różne funkcjonalności Androida zależą od nich, są one częścią każdej rzeczywistej instalacji Androida.

Nawet pliki wykonywalne, które są oficjalnie częścią Androida, mogą nie odpowiadać wydawanemu przez Google kodowi źródłowemu. Producenci mogą zmieniać ten kod, i często nie publikują kodu źródłowego dla swoich wersji. GNU GPL wymaga od nich dystrybucji kodu ich wersji Linuksa, jeśli to uszanują. Reszta kodu, na luźnej licencji Apache, nie zobowiązuje ich do publikowania kodu źródłowego, który jest faktycznie używany.

Jeden z użytkowników zauważył, że wiele programów na systemie Android w jego telefonie zostało zmodyfikowane aby wysyłać osobiste dane do Motoroli. Niektórzy producenci dodają ukryty pakiet szpiegujący taki jak Carrier IQ.

Replicant jest wolną wersją Androida. Deweloperzy zastąpili wiele niewolnych bibliotek dla niektórych urządzeń. Te niewolne aplikacje są wyeliminowane, ale zapewne nie chcecie ich używać. Dla kontrastu, CyanogenMod (inna zmodyfikowana wersja Androida) nie jest wolnym oprogramowaniem, ponieważ zawiera niewolne programy.

Niektóre urządzenia Android są „tyranami”: są zaprojektowane tak, aby użytkownicy nie mogli instalować i uruchamiać zmodyfikowanego przez siebie oprogramowania, a jedynie wersje zatwierdzone przez jakieś firmy. W takiej sytuacji, pliki wykonywalne nie są wolne nawet jeśli były zrobione ze źródeł, które są dla Was wolne i dostępne. Jednakże, niektóre urządzenia Androida mogą być „rootowane” aby użytkownicy mogli instalować różne oprogramowanie.

Ważne firmware'y czy sterowniki są generalnie także własnościowe. Te obsługujące nadajnik sieci telefonicznej (obsługa GSM), WiFi, bluetooth, GPS, grafikę 3D, aparat fotograficzny, głośnik, a w niektórych przypadkach także mikrofon. W niektórych modelach, niektóre z nich są wolne, i jest kilka, bez których możecie się obejść – ale nie możecie się obejść bez mikrofonu czy nadajnika sieci telefonicznej.

Firmware do nadajnika sieci telefonicznej jest zainstalowany fabrycznie. Jeśli wszystko co robił to bycie tam i komunikacja z siecią telefoniczną, kiedy sobie tego życzymy, mogliśmy go traktować jako ekwiwalent obwodu elektrycznego. Kiedy nalegamy na to, by oprogramowanie w urządzeniu obliczeniowym było wolne, możemy przymknąć oko na zainstalowany firmware, który nigdy nie będzie aktualizowany, ponieważ nie ma różnicy dla użytkownika, czy jest to program, czy raczej obwód.

Niestety, w tym przypadku byłby to szkodliwy obwód. Szkodliwe cechy są nieakceptowalne, bez znaczenia jak są implementowane.

W większości urządzeń z Androidem, ten firmware ma tak dużą kontrolę, że może zmienić produkt w urządzenie nasłuchujące. W niektórych, kontroluje mikrofon. W niektórych, może przejąć pełną kontrolę nad głównym komputerem poprzez pamięć współdzieloną i w taki sposób nadpisać lub zastąpić jakiekolwiek zainstalowane wolne oprogramowanie. W niektórych modelach, możliwe że wszystkich, jest możliwe aby zdalnie przejąć ten firmware i nadpisać resztę oprogramowania w urządzeniu. Celem wolnego oprogramowania jest, żebyśmy mieli kontrolę nad naszymi obliczeniami, a posiadanie backdoor jest z tym sprzeczne. O ile system obliczeniowy może mieć bugi, te urządzenia mogą być bugami. (Craig Murray, w książce Morderstwo w Samarkand, relacjonuje swoje zaangażowanie w operację wywiadowczą, która zdalnie przerobiła przenośny telefon nie-Androidowy na urządzenie nasłuchujące).

W każdym razie, firmware sieci telefonicznej w telefonach z Androidem nie jest odpowiednikiem obwodu, ponieważ sprzęt pozwala na instalację nowych wersji, i jest to faktycznie robione. Ponieważ jest to firmware własnościowy, w praktyce tylko producent może tworzyć nowe wersje – użytkownicy nie mogą.

Łącząc te punkty, możemy tolerować niewolny firmware sieci telefonicznej pod warunkiem, że nowe jego wersje nie będą wgrywane, nie może ono przejmować kontroli nad głównym komputerem i może tylko komunikować się w czasie i sposób określonym przez wolny system operacyjny. Innymi słowy, musi być ekwiwalentem obwodu, a ten obwód nie może być złośliwy. Nie ma przeszkód technicznych, by budować telefon z Androidem, który posiadałby taką charakterystykę, ale nie wiemy o żadnym.

Android nie jest systemem, który pozwala na rozwijanie go na nim samym; rozwój Androida musi odbywać się na innych systemach. Narzędzia w “software development kit” (SDK) Google wydają się być wolne, ale sprawdzenie tego jest trudne. Pliki z definicjami dla niektórych API Google nie są wolne. Instalacja SDK wymaga podpisania własnościowych licencji na oprogramowanie, których podpisania powinieneś odmówić. Replicant SDK jest wolnym zamieninnikiem.

Ostatnio pisze się o wojnach na patenty. Podczas ostatnich 20 lat kiedy prowadziliśmy kampanię na rzecz likwidacji patentów ostrzegaliśmy, że takie wojny mogłyby wybuchnąć. Patenty na oprogramowanie mogą spowodować usunięcie niektórych możliwości Androida lub uczynić go całkiem niedostępnym. Więcej informacji o tym dlaczego nie powinno być patentów na oprogramowanie znajdziecie na stronie

Jednak ataki patentowe i odpowiedzi Google nie są bezpośrednio związane z tematem tego artykułu: jak produkty Androida częściowo podchodzą etycznie do systemu dystrybucji i jakie mają niedociągnięcia. To także wymaga uwagi mediów.

Android jest dużym krokiem naprzód do etycznego, kontrolowanego przez użytkownika, wolnego, przenośnego telefonu, ale droga jest jeszcze długa a Google podąża w złym kierunku. Hackerzy pracują nad Replicant, ale wsparcie każdego nowego urządzenia to sporo pracy, poza tym pozostaje problem firmware. Mimo, że telefony z Androidem na dziś dzień są o wiele mniej złe niż telefony Apple lub Windows, nie można o nich powiedzieć, że szanują Waszą wolność.

tworzenie oprogramowania, aplikacje webowe i mobilne

O Wilda Software

Formalnie działamy od 2018 roku, jednak nasza wspólna historia sięga nawet kilkunastu lat wcześniej, kiedy niektórzy członkowie zespołu rozpoczęli ze sobą współpracę przy projektach akademickich. Szybko okazało się, że ta kooperacja nie tylko układa się dobrze, ale i przynosi wymierne efekty, więc była utrzymywana, zarówno na polu uczelnianym, ale też komercyjnym. Od tego czasu osoby zarządzające projektami oraz poszczególni członkowie działu technicznego nabierali doświadczenia podczas tworzenia projektów IT dla wielu klientów. Oprogramowanie, które powstawało przez ten czas, miało bardzo zróżnicowany charakter - dotyczyło zarówno dużych aplikacji webowych, wygodnych w użyciu programów na urządzenia mobilne, rozwiązań desktopowych dla systemu Windows czy algorytmów pomagających w optymalizowaniu produkcji. Ponadto, przez ten czas konsultowaliśmy i dokumentowaliśmy wiele systemów IT o różnym rozmiarze, profilu i na odmiennych poziomach zaawansowania, co zahartowało nas i sprawiło, że umiemy zrozumieć technologiczne oczekiwania każdego klienta.

Nasz zespół stanowią specjaliści od zarządzania projektami IT oraz programiści - inżynierowie zajmujący się zarówno tą widoczną stroną aplikacji (tzw. front-end), jak i niewidoczną (back-end). Ściśle współpracujemy również z profesjonalistami zajmującymi się administracją serwerów, przygotowaniem wizji graficznej czy pozycjonowaniem, dzięki czemu możemy zaoferować cały pakiet usług.

W naszym zespole stawiamy na wzajemne podnoszenie poziomu swoich umiejętności - osoby doświadczone w określonych aspektach technicznych chętnie dzielą się swoją wiedzą z innymi członkami załogi, tym samym podnosząc ogólną świadomość dotyczącej różnych technik i czyniąc dział techniczny możliwie elastyczny. Taki rozwój jest możliwy również dzięki temu, iż w skład zespołu wchodzą osoby mające nie tylko wiedzę informatyczną, ale także charakteryzujące się umiejętnościami dydaktycznymi, wykorzystywanymi podczas prowadzenia zajęć i wykładów na różnych uczelniach.

Pieczę nad projektami sprawują doświadczone osoby o dużych umiejętnościach analitycznych, potrafiące zrozumieć i przeformułować wyzwanie stawiane przez klienta, aby z powodzeniem doprowadzić do stworzenia pożądanego systemu IT. Zarządzający projektami potrafią organizować pracę zespołu i swoją, zawsze znajdując przy tym czas i zrozumienie dla zmieniających się potrzeb zleceniodawców.

Rozumiemy, że możesz nie uwierzyć powyższemu opisowi.

Dlatego zapraszamy do kontaktu z nami i wzajemnego poznania się!

Jarosław Kułak
Jarosław Kułak

Leave a Comment