Technologie
Tworzenie aplikacji
Front-end
- HTML5, XHTML, HTML4 - przygotowanie struktury dokumentu.
- CSS3, CSS - kaskadowe arkusze stylów.
- JavaScript ( vanillaJS ) - by nie obciążać serwisu zbędnymi skryptami staram się zawsze używać czystego JS. Oczywiście są sytuacje kiedy takie działania nie są opłacalne dopiero wówczas sięgam po zewnętrzne Frameworki.
- WebComponents - zintegrowane z każdą nowoczesną przeglądarką narzędzie do tworzenia własnych uniwersalnych komponentów. Obsługuje komponenty, szablony, reaktywność a obiekty są hermetyczne.
- WebSockets - gdy w aplikacji WEB wymagana będzie stała komunikacja z serwerem,
- WebAudio - nagrywanie obróbka i odtwarzanie audio,
- WebAssembly - jeśli w aplikacji potrzebna będzie duża moc obliczeniowa a JS okaże się zbyt wolny.
Back-end
- PHP - jest moim głównym językiem programowania back-end. Wykorzystuję go zarówno do tworzenia narzędzi typu CMS, strony WWW ale także jako back-end dla aplikacji back-office czy CRM.
- C/C++ - jeśli trzeba napisać coś co jest małe i szybkie.
Aplikacje desktopowe
- Embarcadero C++ Builder / Delphi 10.X - wieloplatformowe środowisko dzięki, któremu można tworzyć natywne aplikacje dla wszystkich popularnych systemów operacyjnych.
- C# - Visual Studio Windows Forms (gdyby zaszła taka konieczność, że trzeba coś w tym napisać),
- Java + Swing - tylko małe aplikacje (bardziej hobbystycznie),
- OpenGL - tworzenie i prezentacja grafiki 3d,
- SDL - uniwersalne wieloplatformowe biblioteki do obsługi grafiki, audio i urządzeń zewnętrznych.
- BASS - biblioteki do efektywnego przetwarzania sygnałów audio oraz ich odtwarzania.
Aplikacje na urządzenia mobilne
- Progressive web apps (PWAs) - doskonałe narzędzie do prostych aplikacji, które nie wymagają dostępu do sprzętu na niższym poziomie ani nie potrzebują zbyt dużej mocy obliczeniowej.
- Embarcadero C++ Builder / Delphi 10.X (FMX) świetna uniwersalna i niezawodna technologia.
Komunikacja pomiędzy systemami
Kiedy pojawi się potrzeba zintegrowania aplikacji z systemem zewnętrznym wówczas można sięgnąć po narzędzia:
- REST-API - prosty sposób komunikacji pomiędzy systemami w sieci. Komunikacja oparta o HTTP/HTTPS, zwykle wykorzystująca format JSON do przesyłania danych,
- SOAP - starszy jednak bardzo formalny i rozbudowany sposób wymiany informacji pomiędzy aplikacjami,
- JSON, CSV, XML, EXCEL, ODT, TXT - jako formaty wymiany danych,
- TCP/IP, UDP - dobre rozwiązanie do szybkiej i ciągłej komunikacji pomiędzy serwerami lub aplikacjami.
- RS232 / RS485 / RS422/ I2C - szeregowa komunikacja zwykle wykorzystywana do komunikacji z urządzeniami peryferyjnymi t.j. drukarki fiskalne, czytniki kart identyfikacyjnych, sterowniki automatyki (także za pośrednictwem WiFi lub Ethernet).
- MT940 - format do wymiany informacji m.in. z wyciągów bankowych.
API, źródła danych, usługi zewnętrzne
- Google Maps API - dostawca systemu obsługi map,
- MapBOX API - dostawca systemu obsługi map,
- Deepl.com - API do automatyzacji tłumaczeń tekstów działające w oparciu sieci neuronowe, bardzo dobre to tekstów specjalistycznych,
- Google Translator API - do tłumaczeń.
- Przelewy24, dotPay - systemy płatności online popularne w Polsce,
- Stripe.com, PayPal.com - uniwersalne systemy płatności o zasięgu międzynarodowym,
- MDSWS - polska baza ofert turystycznych.
Systemy i platformy
Wykonuję aplikacje działające pod kontrolą następujących systemów operacyjnych lub platform:
- Microsoft Windows,
- Linux,
- MacOS / iOS,
- Android,
- AVR - Microchip Studio / KiCad,
- 8051 - Small Device Compiler / SDCC,
- DOS / FreeDos - Assembler / Pascal / C++.
Bazy danych
Aplikacje, które wymagają współpracy z bazą danych buduję wykorzystując:
- MySQL - popularna tania w utrzymaniu baza danych dająca większość niezbędnych funkcjonalności potrzebnych do pracy na dużych zbiorach informacji.
- Oracle - do zastosowania tam gdzie jest to wymagane.
Projektowanie systemu
Podczas projektowania bardziej złożonych aplikacji wspieram się takimi narzędziami jak:
- Visual Paradigm - diagramy UML,
- Swagger - dokumentacja interfejsu API,
- MySQL WorkBench - struktura baza danych / ERD.