Trochę rozmyślań. Programowanie urządzeń mobilnych. Czy Xamarin to jest to ?

0
12

Upłynęło bardzo dużo czasu od ostatniego wpisu na tym blogu. Częściowo z braku pomysłów na kolejne posty, a częściowo z braku czasu.
Ze względu na “branżę”, w której pracuję i dla której tworzę oprogramowanie w zasadzie wszystkie projekty, którymi się zajmuję, to aplikacje które można określić jako desktopowe.
W większości przypadków są to albo aplikacje stricte rejestrująco/wizualizacyjno/sterujące dla różnego rodzaju maszyn i linii produkcyjnych, ale również różnego rodzaju aplikacje “na styku” pomiędzy dużymi systemami ERP i MES związane z przesyłaniem danych i konfiguracją maszyn lub linii. Sporo kodu, który piszę jest więc dużo “bliżej blachy”, niż projekty większości programistów.
Jakiś czas temu usunąłem z goldenline i linkedin informacje o technologiach webowych, o których mam pojęcie. Prawda jest taka (o czym z pewnością wszyscy wiedzą), że w dzisiejszych czasach nie da się już być programistą zupełnie wszechstronnym. Rozwój w poszczególnych technologiach następuje w tak szybkim tempie, że ilość różnych rozwiązań, frameworków itp. jest tak kosmiczna, że mając do dyspozycji 24h dobę (z czego kilka godzin i tak odpada na sen) nie da się za tym nadążyć. Nie mówiąc już o różnych “good development practice”, które są zwykle dla danej technologii charakterystyczne. Kłamstwem było więc wpisywanie w umiejętnościach programowania w PHP i Javascript, skoro nie uskuteczniam już tego od conajmniej kilku lat. Nawet opierając się na jednym rozwiązaniu (w moim przypadku .Net) praktycznie nie ma możliwości ogarnięcia wszystkiego. Szczerze mówiąc o ASP.Net i stricte webowych technologiach .Net mam jedynie blade pojęcie.

Tak naprawdę poza oprogramowaniem dla automatyki (którym się zajmuję) nie bardzo widzę przyszłość przed programowaniem aplikacji desktopowych. No może poza bardzo dedykowanym oprogramowaniem związanym z obróbką dźwięku czy grafiki – ale tutaj też następuje trend przenoszenia wszystkiego w chmurę. Moja biegłość w tworzeniu aplikacji webowych skończyła się tak naprawdę parę lat temu i zatrzymała na etapie PHP i wczesnego AJAX. Jakkolwiek na tamte czasy było to wmiarę dochodowe zajęcia (jak na studenta) to nigdy nie było to coś, co bardzo chciałbym robić a PHP jest tak koszmarnym językiem, że wolałem chyba starego QBasic-a w DOS.
Coraz częściej zastanawiam się nad pewną dyfersyfikacją umiejętności i zainwestowaniem czasu w naukę czegoś, co jest perspektywiczne i być może bardziej skorelowane z tym co potencjalnie w przyszłości będzie bardziej pożądane przez klientów (bo przecież jakby na to nie patrzyć, jako programiści tworzymy produkty które chcemy sprzedać).

Od dłuższego czasu w kręgu moich zainteresować jest programowanie dla urządzeń mobilnych oraz IoT. Przymierzałem się już (bezskutecznie) do różnych technologii, głównie pod kątem Androida.
Android Studio i Java są dla mnie nie do strawienia. Samo środowisko jest koszmarnie “ciężkie” a Gradle, który bez przerwy coś dziwnego robi w tle jest dla mnie nie zrozumiały. Java nigdy nie była moim “language of choice” i szczerze mówiąc po długiej walce z napisaniem pierwszego “pet project” zwyczajnie odpuściłem.
Technologie opierające się na HTML i Javascript a następnie kompilowane do postaci aplikacji mobilnej mnie zdecydowanie nie interesują.
Pewnym objawieniem wydawało się Haxe. Świetny obiektowy, multiplaformowy język, który jednak w przypadku urządzeń mobilnych nadaje się bardziej do pisania gier (co jest świetną zabawą, istnieje wiele doskonałych bibliotek bardzo ułatwiających to zadanie) niż aplikacji, które komunikowały by się np. z innymi urządzeniami za pomocą sieci czy bluetooth.
Bardzo duże nadzieje wiązałem z produktem AnywhereSoftware pod nazwą Basic 4 Android. Świetne IDE, doskonały symulator, bardzo duża prostota kodowania, dodatkowo osobne środowisko z niemal w 100% przenoszalnym kodem dla iOS. Nie mniej jednak to nadal jest konstrukcyjnie i składniowo dialekt VisualBasic z wszystkimi zaletami tego języka dla amatorów i wszystkimi wadami związanymi z brakiem zaawansowanej obiektowości.

Wiadomość ostatniego tygodnia to “uwolnienie” przez Microsoft nabytego niedawno Xamarina. Xamarin podobał mi się bardzo od dawna, ale był zdecydowanie zbyt drogi, żeby kupić sobie prywatną licencję do zabawy. Wersja darmowa zaś była bardzo ograniczona. W tej chwili pełną wersję Xamarin-a można pobrać zupełnie za darmo i doskonale współpracuje ona z Visual Studio Community. Co więcej, w związku z tym, że Xamarin jest w tej chwili open source jest szansa, że ten projekt (pod parasolem Microsoft) będzie się dynamicznie rozwijał.

Od tego momentu, ten blog będę wykorzystywał do dokumentowania mojej nauki tworzenia aplikacji mobilnych z wykorzystaniem Xamarin. Nie zamierzam jednak wrzucać tu postów “jak napisać hello world i odpalić na moim telefonie” ale mam nadzieję rzeczy dużo bardziej ciekawych związanych z explorowaniem tych rozwiązań. Wspomniałem wcześniej nie bez powodu o IoT. Mam pewien pomysł na prościutkie urządzenie (w zasadzie związane z branżą), które chcę zaprojektować na początku na bazie Arduino a współpracujące z aplikacją mobilną. Uczyć się przecież trzeba zawsze w praktyce stawiając sobie możliwie ambitne cele – mając nadzieję, że przyniesie to wymierny skutek.

ZOSTAW ODPOWIEDŹ

Please enter your comment!
Please enter your name here