Praca w IT

Trendy w IT 2022. Przewidywania programistów

klawiatura na biurku programisty

Każdego roku branża IT przechodzi transformację. Na przestrzeni lat, czy nawet ostatniego roku, nastąpiło wiele zmian w dotychczasowych narzędziach i pojawiło się sporo nowych rozwiązań. Na szczęście czasy pandemii nie wpłynęły negatywnie na funkcjonowanie rynku IT. Co więcej, zapoczątkowały one transformację, której rozwój będziemy mogli śledzić także w tym roku. Jakie trendy #mobile, #frontend i #backend zdominują nadchodzące miesiące oraz jak wpłyną one na całą branżę IT? Odpowiedzi znajdziesz w poniższym tekście.

1. Aplikacje mobilne

Obecnie istnieje kilka trendów dla natywnych programistów aplikacji mobilnych. Jest jednak jeden trend, który można zaobserwować zarówno w przypadku Androida, jak i iOS. Mowa o sposobie budowania interfejsów użytkownika, który zmierza w kierunku deklaratywnego i reaktywnego stylu programowania. Google i Apple stworzyły w tym celu nowe narzędzia: Jetpack Compose i SwiftUI.

Android – Maciej Kozłowski, Lead Android Engineer, Espeo Software

Latem 2021 miało miejsce wielkie wydarzenie dla programistów Androida. Jetpack Compose został wypuszczony w wersji stabilnej.

To zupełnie nowy sposób tworzenia widoków na Androidzie. Deweloperzy mogą wreszcie zrezygnować z XML-ów i zastąpić imperatywny sposób myślenia, deklaratywnym. Jetpack Compose napisany jest na bazie Kotlina i ma duże wsparcie od Google, pomimo tego, iż nadal ma pewne ograniczenia przy tworzeniu naprawdę zaawansowanych widoków. Znajdziecie w nim jednak wiele udogodnień, m.in. dla nowej nawigacji, zapisywania stanu w view modelach oraz motywów. Dodatkowo powstało sporo artykułów oraz filmów z tutorialami na temat możliwości jakie daje Jetpack Compose, dlatego uważamy, że już teraz warto zacząć z niego korzystać.

Jeśli chcesz poznać więcej trendów w temacie aplikacji mobilnych na Androidzie, sprawdź ten artykuł.

iOS – Valentino Urbano, Lead iOS Engineer, Espeo Software

Największymi zapowiedziami w trakcie WWDC 2019 były SwiftUI i Combine. SwiftUI umożliwia programistom tworzenie interfejsów użytkownika w łatwym i deklaratywnym formacie, a jednocześnie umożliwia natychmiastowe wyświetlanie zmian w interfejsie użytkownika bez konieczności przebudowy lub ponownego uruchomienia aplikacji. Combine robi to samo dla logiki biznesowej, pozwalając na programowanie w bardziej deklaratywnym i reaktywnym stylu.

Pomimo ekscytacji dużej części społeczności programistycznej, były one trudne do wykorzystania w środowisku produkcyjnym ze względu na konieczność porzucenia wsparcia dla każdej starszej wersji iOS i wspierania jedynie iOS 13+.

Wraz z zeszłoroczną premierą iOS 15, większość zespołów będzie mogła wreszcie korzystać z tych nowych frameworków w swoich aplikacjach produkcyjnych. W związku z tym, zobaczymy coraz mniej aplikacji, które korzystają wyłącznie z UIKit i programowania imperatywnego.

Możemy się również spodziewać, że niektóre nowe funkcje bądź widgety będą dostępne tylko w SwiftUI, podobnie jak to było w przypadku części widżetów dla iOS 14.

2. Backend – Wojtek Ossowski, Senior Node.js Developer, Espeo Software

W świecie backendowym możemy również zauważyć zmiany w obszarach programowania i infrastruktury. Przewidujemy, że w 2022 roku wśród programistów backendowych będą dominować następujące trendy:

Web 3.0

W ostatnich miesiącach zainteresowanie kryptowalutami, DeFI oraz NFT zauważalnie wzrosło. Stoi za tym nie tylko wzrost ceny Bitcoina, ale także dodatkowe możliwości, które oferuje blockchain – decentralizacja, autentyczność i przejrzystość inteligentnych kontraktów. Na przestrzeni kilku ostatnich lat technologia blockchain znalazła zastosowanie w wielu branżach, między innymi w bankowości, zarządzaniu łańcuchami dostaw, administracji publicznej i zarządzaniu cyklem życia dokumentów.

NFT, czyli niewymienialne tokeny w ramach blockchainu, nie muszą być związane jedynie ze sztuką, którą kupuje się za pomocą kryptowalut. Mogą one również być stosowane bardziej ogólnie jako publiczny certyfikat autentyczności. Dodatkowo, NFT pozwala na zbudowanie całego ekosystemu na podstawie takiego kontraktu. Twórcy mogą również przenosić prawo własności zasobów na innych użytkowników. Za każdym razem, kiedy użytkownicy dokonują właśnie takiej transakcji, twórca może zyskać dodatkową premię.

Jeśli jesteś programistą Node.js i chcesz tworzyć aplikacje zorientowane na blockchain oraz używać smart kontraktów na Ethereum, sprawdź następujące paczki:

  • truffle – do budowania i testowania smart kontraktów w lokalnym środowisku,
  • web3 – aby zintegrować swoją aplikację Node.js z blockchainem Ethereum.

Cloud-Native

Wraz z rosnącą popularnością leasingu usług obliczeniowych, powszechnie znanych jako Cloud Computing, możesz zaoszczędzić czas poświęcony na konfigurację infrastruktury i poświęcić go na dewelopment aplikacji. Stawiając na chmurę obliczeniową, możesz skorzystać z dziesiątek rozwiązań, których możesz użyć od razu w swoim projekcie. W ciągu ostatnich lat konteneryzacja przy udziale Dockera zrewolucjonizowała sposób, w jaki obecnie wdrażamy oprogramowanie. Pozwala nam na osiągnięcie jeszcze większego poziomu niezależności prostu zamykając uruchomiony proces w standardową formę – w podobny sposób jak kontenery cargo.

Kontenery są z natury efemeryczne – to znaczy, że przy zamknięciu znika ich stan wewnętrzny. Takie podejście ułatwia zarządzanie cyklem życia instancji aplikacji opartych o mikroserwisy poprzez monitorowanie ich stanu, automatyczny restart i zastosowanie zasad odzyskiwania. Dzięki temu możliwe jest także tworzenie skalowalnych, odpornych na błędy i bardziej niezawodnych aplikacji. Technologie takie jak Kubernetes i Docker są szeroko stosowane przez głównych dostawców chmury. Możesz łatwo wybrać usługę zarządzaną, która spełni Twoje oczekiwania – zarówno dedykowane przez dostawcę z prostym zarządzaniem (jak AWS Fargate) jak i natywne rozwiązania (Google Kubernetes Engine oraz AWS EKS).

Serverless computing

Zamiast utrzymywać całą działającą aplikację, niektóre części projektu mogą zostać przeniesione do usług na żądanie, często ograniczonego do wywołania jednej funkcji. Dzięki takiemu podejściu z łatwością będziesz w stanie obsłużyć szczytowe momenty ruchu w swojej aplikacji – za wszystko zadba Twój Cloud Provider, a Ty jedynie poniesiesz koszty za zużyte zasoby – tylko za wykonanie funkcji. Wielką zaletą Serverless jest delegowanie konfiguracji całego środowiska do dostawcy chmury. Dzięki temu nie musisz martwić się o utrzymanie najnowszej wersji swojego wdrożenia lub nakładanie poprawek. To sprawia, że ​​możesz skupić się na tworzeniu aplikacji.

FaaS (Function as a Service) mają dziesiątki zastosowań. Zaczynając od transformacji danych: przetwarzania strumieniowego i wsadowego, interfejsów API po integrację z innymi usługami w chmurze – takimi jak Machine Learning czy Big Data. FaaS mogą być używane jako dodatkowa warstwa dla Twoich usług i mogą być uruchamiane na różne sposoby: proste wywołanie REST, reakcja na zdarzenia biznesowe lądujące na Message Brokery, reakcje na zdarzenia zgłaszane przez monitoring aplikacji, modyfikacja konkretnych zasobów (np. na Storage’u S3), itp. AWS Lambda, Google Cloud Functions i Azure Functions są coraz szerzej stosowane w istniejących projektach i wszystko wskazuje na to, że ten trend będzie się utrzymywał.

3. Front-end – Łukasz Błaszyński, Senior Frontend Developer, Espeo Software

Front-end ewoluuje bardzo szybko. Niemal codziennie pojawia się nowy framework lub biblioteka. Niektóre z nich zyskują na popularności by w końcu stać się standardem branżowym, jednak większość szybko znika. Z drugiej strony, niektóre rozwiązania są stabilne od lat i nadal są najlepszą opcją dla deweloperów. Przyjrzyjmy się różnym obszarom front-endu i spróbujmy wskazać najlepsze narzędzia i frameworki do wykorzystania w 2022 roku.

Frameworki Single Page Application

Przewidujemy, że sytuacja z frameworkami Single Page Application będzie stabilna. Na rynku wciąż mamy trzech kluczowych graczy: React, Angular i Vue. Silna pozycja Reacta jako lidera raczej nie jest zagrożona dzięki częstym aktualizacjom i dużemu ekosystemowi gotowych komponentów i hooków. Większość ofert pracy dla frontendowców z pewnością nadal będzie dotyczyć Reacta. Angular będzie prawdopodobnie nadal powoli tracił na popularności.

Stylowanie

Podejście CSS in JS będzie zyskiwało na popularności. Style napisane w JavaScript stały się standardem dla aplikacji SPA, pozostawiając daleko w tyle wszelkie rozwiązania wykorzystujące preprocesory, takie jak Sass czy Less. Styled-Components nadal jest liderem, ale ma wielu konkurentów, takich jak całkiem nowy Stylex od Facebooka. W przypadku projektów innych niż SPA, takich jak standardowe strony oparte na CMS z treścią generowaną po stronie serwera, preprocesory będą nadal będą szeroko stosowane. Sass jest dojrzałym rozwiązaniem które nadal najlepiej sprawdza się dla takiego typu projektów.

Aplikacje mobilne w JavaScript

W świecie hybrydowych frameworków mobilnych jest tylko dwóch silnych graczy: React Native oraz Flutter. Podczas tworzenia aplikacji w JavaScript, React Native nadal będzie jedyną rozsądną opcją, pozostawiającą inne alternatywy, takie jak Ionic lub Cordova, które opierają się na Webview, daleko w tyle. Jednak druga opcja – Flutter – staje się naprawdę dobrą alternatywą dla aplikacji crossplatformowych. Google mocno inwestuje w rozwój Fluttera i Darta. Przykładem takiego działania może być wprowadzenie null-safety, stabilnej wersji dla aplikacji webowych, bądź nadchodzące wsparcie dla aplikacji desktopowych.

Coraz więcej standardowych aplikacji webowych stanie się bliższe aplikacjom mobilnym dzięki wykorzystaniu Progressive Web Apps. Sklep Google Play od jakiegoś czasu akceptuje aplikacje webowe napisane w wykorzystaniem PWA. Spodziewamy się dalszego rozwoju PWA oraz tego, że jego popularność wśród programistów również wzrośnie.

Testowanie

Zapraszamy do zapoznania się z najlepszymi frameworkami testowymi do użycia w 2022 roku, które zostały szeroko opisane w artykule na blogu Espeo Software tutaj.

Inne

  • Typescript – nadal będzie standardem branżowym dla typowania w większości nowych projektów związanych z javascriptem.
  • Micro Frontends – architektura mikrofrontendów w przypadku dużych projektów będzie zyskiwała na popularności, dzięki czemu będą one bardziej skalowalne i łatwiejsze w zarządzaniu.
  • GraphQL – procent projektów wykonywanych z wykorzystaniem Graphql wzrośnie. Back-end deweloperzy coraz częściej implementują podejście graphql zamiast standardowego podejścia REST. Frontendowe frameworki do obsługi GraphQLa takie jak Apollo czy Relay będą używane w większej liczbie projektów. Prawdopodobnie na rynku pojawią się nowe frameworki do obsługi GraphQL jako alternatywa dla Apollo/Relay.
  • Globalne zarządzanie stanem – wykorzystanie Redux do zarządzania stanem aplikacji zmniejszy się dzięki zastosowaniu innych prostszych rozwiązań takich jak React Context API, XState, Recoil itp. W przypadku projektów opartych na Redux, najnowszy Redux Toolkit będzie częściej wybierany niż inne middleware.

Co warto zapamiętać po przeczytaniu tego artykułu? Szybki skrót najważniejszych informacji:

  • Aplikacje mobilne:

W przypadku aplikacji mobilnych, najbardziej wybija się trend deklaratywnego i reaktywnego stylu programowania interfejsów. Dla aplikacji na Androidzie warto w tym roku zrezygnować z XML-ów i postawić na Jetpack Compose. Po zeszłorocznej premierze iOS 15 możemy spodziewać się, że w ramach tego systemu operacyjnego SwiftUI będzie najlepszym narzędziem do tworzenia interfejsów.

  • Backend

Po zeszłorocznym wzroście zainteresowania kryptowalutami i możliwościami, jakie daje nam blockchain to właśnie tej technologii wróży się największą popularność w 2022 roku. Dodatkowo warto postawić na wykorzystanie Cloud Computing i Serverless computing w celu usprawnienia pracy.

  • Front-end:

Wśród frameworków single page applications, React niezmiennie będzie liderem, natomiast Angular będzie tracił na popularności.

Kontekst stylowania to nadal wiodąca (aczkolwiek zagrożona) pozycja styled-components dla projektów SPA. W przypadku innych projektów możemy nadal polegać na preprocesorach.

Wśród aplikacji mobilnych w Javascript nadal wskazuje się na silną pozycję tylko dwóch graczy: React Native i Flutter. Spodziewany jest też wzrost popularności Progressive Web Apps.

Szukasz miejsca, w którym będziesz mógł dobrze wykorzystać swoje umiejętności i pracować nad wyjątkowymi projektami w najnowszych technologiach? Dołącz do Espeo Software! U nas sam decydujesz, jakich narzędzi użyć do projektu – Twoje zdanie jest dla nas kluczowe. Dodatkowo pomożemy Ci wyznaczyć jasne cele zawodowe i drogę do ich realizacji. Sprawdź sam tutaj i dołącz do #espeocrew.

teleturniej programista100k

Zdjęcie główne artykułu pochodzi z unsplash.com.

Senior Android Developer with 7 years of experience. Kotlin lover. Tech stack: MVVM, Dagger, Hilt, Coroutines, Flow, RxJava, Android Architecture Components, Jetpack Compose.

Podobne artykuły

[wpdevart_facebook_comment curent_url="https://geek.justjoin.it/trendy-w-it-2022-przewidywania-programistow/" order_type="social" width="100%" count_of_comments="8" ]