Basic 4 Android

2
1688

Programowanie urządzeń mobilnych interesuje mnie już od dość dawna. W obecnej sytuacji na rynku, o czym chyba każdy doskonale wie, dominują iOS i Android – z czego właśnie ten drugi interesuje mnie zdecydowanie bardziej.
Niestety, z Javą nie lubimy się zbytnio i poza krótkim epizodem na studiach nigdy nie używałem specjalnie tego języka. Przygodę z programowaniem na Androida zacząłem jednak właśnie od Javy i … szybko porzuciłem. I nie chodzi tu o samą składnię i strukturę języka tylko o model programowania proponowany przez Google. Sporo się trzeba nawalczyć, żeby napisać nawet najprostszy program (nie mając wcześniej
doświadczenia w tym temacie) a przyciężkie Eclipse, jeszcze gorszy Android Studio i koszmarnie działający emulator wcale w tym nie pomagają.
Spędziłem trochę czasu wykonując research i przyglądając się rozwiązaniom takim jak Xamarin, Qt dla Androida itp. (aplikacje Javascript + Html5 odrzuciłem w zasadzie od razu, gdyż projekty które chciałbym realizować nie mają w założeniu opierać się jedynie na ładnym GUI i interakcją z usługami webowymi) i tak przypadkiem trafiłem na produktAnywhere Software pod nazwą Basic 4 Android.

Basic 4 Android (b4a) jest swego rodzaju dialektem visual basica, ale nie tego którego znamy obecnie z produktów Microsoft (.Net) ale raczej VB6. Kod napisany w b4a jest następnie konwertowany do Javy i kompilowany. Takie rozwiązanie powoduje, że na urządzeniu docelowym nie potrzebujemy żadnych dodatkowych maszyn wirtualnych czy sporych rozmiarów bibliotek runtime – otrzymujemy rozwiązanie w zasadzie natywne. Dla przykładu – prosta aplikacja w stylu hello world przygotowana za pomocą Xamarina w postaci apk to ok 0,9Mb natomiast identyczna przygotowana za pomocą b4a to niecałe 0,2Mb. O różnicy w wydajności trudno mi się na tę chwilę wypowiedzieć, nie napisałem jeszcze żadnego złożonego softu drenującego zasoby urządzenia.

B4a w wersji testowej możemy pobrać za darmo ze strony Anywhere Software tutaj. W wersji testowej nie mamy możliwości dołączania żadnych dodatkowych bibliotek, w związku z tym poza jakimś bardziej złożonym kalkulatorem i prostą zabawą z GUI nie będziemy w stanie stworzyć niczego ciekawego, można natomiast zaznajomić się z funkcjonalnością IDE, doskonałego Debuggera i filozofią tego softu. Wersja pełna (mówię tu o wersji Enterprise) to na chwilę obecną 119$. W cenę wchodzi soft, dostęp do forum i bibliotek oraz dwuletni support (a więc także download wszystkich nowych wersji, które się przez ten czas pojawią). Bardzo często zdarzają się też różnego rodzaju promocje – mnie udało się kupić pełną wersję za 50% ceny. Kwota jest wręcz śmieszna biorąc pod uwagę cenę innych, mniej lub bardziej podobnych rozwiązań.

Jeżeli czyta to teraz ktoś, kto pisze androidowy soft w javie stuka się pewnie w głowę – po co płacić za coś, co można mieć za darmo ? Postaram się w skrócie opowiedzieć dlaczego uważam, że warto kupić ten soft i wydać na niego (co prawda nie duże, ale zawsze) pieniądze.

1. IDE – jest bardzo proste i lekkie. Daleko mu do ogromnej ilości opcji znanej z Eclipse czy Visual Studio. Dzięki temu działa szybko i wydajnie a czas potrzebny na jego opanowanie jest bardzo krótki. Jest też całkiem fajnie działający odpowiednik IntelliSense.

2. Designer – jest również bardzo prosty. Nie znajdziemy tu renderowanej grafiki a jedynie figury geometryczne reprezentujące komponenty, które możemy rozmieścić na formie i poustawiać im różne parametry. Prawdziwa moc designera objawia się, gdy połączymy się z urządzeniem (za pomocą b4a_bridge – do pobrania z google play) za pomocą bluetooth lub WiFi (tak tak, podłączanie urządzenia kabelkiem USB do kompa jest zbędne zarówno w procesie projektowania jak i debugowania i testowania programu na urządzeniu) – kontrolki na wybranej formie, wyświetlane już natywnie, możemy na urządzeniu dowolnie przesuwać, zmieniać rozmiar itp. Możemy również edytować figurki na ekranie kompa a efekt edycji obserwować na urządzeniu. Nie ma również konieczności przygotowywania ekranów w różnych rozdzielczościach (co jest plagą w świecie Android-a) – uporządkowanie i rozmiary elementów w zależności od rozdzielczości można opisać za pomocą bardzo prostych skryptów definiowanych w designerze.

3. Debugger – jest doskonale rozwiązany. Szczególnie fajna jest opcja rapid debugging. Oczywiście istnieje możliwość podglądania stanu zmiennych, ustawiania breakpointów itp. jednak rapid debugging idzie o krok dalej – możemy zmieniać kod aplikacji „w locie” i obserwować efekty bez konieczności ponownego ładowania całości aplikacji do urządzenia.

4. Biblioteki – są biblioteki praktycznie do każdego z aspektów programowania mobilnego. W większości są to wrappery bibliotek Java ale jest też sporo napisanych już w samym b4a. Ciągle powstaje też coś nowego. Istnieje oczywiście możliwość przygotowania własnej biblioteki czy to napisanej w b4a czy też przygotowania wrappera biblioteki java (temat szeroko dyskutowany i opisywany na forum)

5. Community – bardzo liczne i bardzo aktywne. Ogromna ilość ludzi aktywnie uczestniczy w projekcie przygotowując nowe biblioteki czy chociażby zgłaszając uwagi. Forum jest bardzo żywe i nie ma problemu z uzyskaniem pomocy. W więszkości przypadków prosty search tematów na forum pozwala znaleźć odpowiedź na nurtujące pytanie. Bardzo aktywnie w życiu forum uczestniczy również sam autor projektu i szef Anywhere Software – Erel Uziel

Czy widzę jakieś wady ? Owszem widzę, o nich też napiszę. Projekt jednak cały czas aktywnie się rozwija i być może to o czym napiszę szybko się zdezaktualizuje.

1. Język – VB6 nie jest językiem z którym miałem dużo do czynienia. Na codzień korzystam głównie z C# i czasami VB.Net i niestety ten język różni się od nich. Przede wszystkim brakuje mi zaawansowanej obiektowości. Co prawda mamy klasy, obiekty, mechanizm dziedziczenia itp. ale należy zapomnieć o dobrodziejstwach .Net takich jak chociażby interfejsy i klasy abstrakcyjne (tzn. jest to do obejścia stosując sam zaimplementowany polimorfizm – ale mimo wszystko). Brakuje też np. możliwości prostego utworzenia zdarzeń. Pewnie znalazło by się jeszcze dużo takich braków – ale być może założenie jest takie, że przede wszystkim ma być prosto – a zaawansowany programista jakoś sobie poradzi wymyślając różnego rodzaju workarounds.

2. Testy jednostkowe – po prostu nie istnieją. Nie ma żadnego frameworka ani runnera. Możliwość przygotowania takowych też jest ograniczona, gdyż kod nie jest uruchamiany na komputerze a tzw. wstępna kompilacja to jedynie jakiś tam prosty parser, którego rolą jest sprawdzić składnię i wychwycić najprostsze błędy. Pewną nadzieję budzi mechanizm rapid debugger, gdyż jak mi się wydaje uruchamia on równolegle kod na komputerze i urządzeniu – nie mniej jednak, wydaje się że przygotowanie mechanizmu do przeprowadzania testów jednostkowych nie jest w tej chwili priorytetem autora.

Poza b4a, zupełnie za darmo, możemy ściągnąć sobie inny projekt Anywhere Software, który nazywa się b4j (basic for java) i jak sama nazwa wskazuje – generuje nam aplikację Java na podstawie kodu napisanego w basicu. Możemy również tutaj stworzyć sobie jakieś tam GUI dla swojej aplikacji wykorzystując designer JavaFX.

Nowością ostatniego miesiąca jest także b4i dla iOS, który nie jest jeszcze dostępny w jakiejkolwiek wersji testowej, ale jest rozwijany czego dowodem jest ten film.

Podsumowując. Polecam spróbować. Nawet jeżeli nie jesteś zainteresowany programowaniem mobilnym, nawet jeżeli nie lubisz basic-a. Przygotowanie prostej aplikacji i odpalenie jej na swoim urządzeniu to naprawdę moment i wtedy może (tak jak u mnie) zapali się żarówka – jak duże możliwości ma ten soft i jak stosunkowo (przynajmniej tak mi się na chwilę obecną wydaje) niewielka learn curve jest potrzebna, żeby realizować swoje projekty.

Swoje postępy w nauce b4a (o ile czas na to pozwoli) będę dokumentował w postaci projektów na GitHub. Wszystkich zainteresowanych zapraszam do pobierania i wymiany zdań.

2 KOMENTARZE

    • Wow ! Dzięki za info, to świetna wiadomość.
      Wiedzę, że wersja dla iOS jest nadal płatna ale b4A jest rzeczywiście darmowe. Ciekawe czy to wpłynie jakoś na rozwój tego oprogramowania.

ZOSTAW ODPOWIEDŹ

Please enter your comment!
Please enter your name here