Flutter for the Web.

Flutter for the Web

Aplikacje Flutter w przeglądarce? Właśnie na Google Developers Days pojawiło się info o tym, że Flutter for the Web znalazło się w głównym repozytorium. Wystarczy zmienić flutter channel ze stable na master aby zgodnie z opisem tutaj odpalić aplikację w przeglądarce.  Drugi brakujący feature: Foreign Function Interface (FFI). Przyznam szczerze – te zmiany robią wrażenie. Kawał ciekawej i przydatnej technologii. Jedno jest pewne – będzie się działo!

Flutter for the Desktop

Dart i Flutter.

Fajny ten Dart. Jakoś wcześniej nie mogłem się do niego przekonać, ale moje ostatnie eksperymenta z ES6 trochę mi to ułatwiły.

Analizator i system typów robi spore wrażenie. OOP w Dart to chyba najlepsze co do tej pory widziałem – dziedziczenie, interfejsy, klasy i metody abstrakcyjne, mixins, overrides, listy inicjalizacyjne konstruktora, prosta inicjalizacja argumentów nazwanych konstruktora, po prostu trzeba to zobaczyć. Flutter to temat na kilka osobnych wpisów ;), a StatefullWidget mnie zachwycił. Poniżej mój pierwszy eksperyment – kolejne wcielenie apki do sterowania esp8266 za pomocą http request.

Kliknij w obrazek powyżej żeby zobaczyć plik źródłowy.Widać w tym przyszłość i to raczej pozytywną, zarówno dla użytkowników, jak i programistów. A i jeszcze jedno – nie sądziłem, że to kiedyś powiem, ale Visual Studio Code to świetny edytor ;).

Aktualizacja: oficjalnie zaliczam Dart i Flutter do grona zjawisk i technologii, które mnie zafascynowały (patrz strip na górze ;)).

Kliknij w obrazek powyżej żeby zobaczyć plik źródłowy.

Stockfish.

Zawsze chciałem zacząć grać w szachy, ale jakoś nie mogłem znaleźć wystarczająco cierpliwego nauczyciela ;). Niedawno odkryłem silnik nie z tego świata Stockfish i dwa programy: Arena dla Linuksa i Droidfish dla Androida (mój ulubiony).

arena

screenshot_2017-02-12-01-41-14

Dalej kiepsko mi idzie, ale chyba mam kolejne hobby…

SIO2BT + AspeQt.

Update: wersja 1.0.39 z obsługą SIO2BT jest już w Google Play.

Kilka tygodni temu dotarły do mnie słuchy, że FJC planuje dodać obsługę większych prędkości (do 57600 bps) SIO2BT w PBI BIOS Ultimate 1MB, pomyślałem – ja się piszę – Marcin „The Montezuma” Sochacki przysłał mi pięknie zmontowanego dongla SIO2BT, a kilka dni później  AspeQt na Androidzie obsługiwał już SIO2BT.

Wersja w Google Play.
Ta sama wersja na Github.

Poza sparowaniem z Androidem wystarczy tylko w ustawieniach podać nazwę modułu, z którym AspeQt będzie się łączył. Standardowo wykorzystuje programową detekcję ramki komendy (SOFT), a prędkość ustawia się narzędziem BTCONFIG z poziomu Atari (jednorazowo). Z najnowszym firmware U1MB działa @57600bps. Jedyne wymaganie to wybranie w Opcjach interfejsu SIO2BT i ustawienie nazwy modułu BT, z którym Android będzie się łączył.

W planach mam utworzenie wspólnego javowego interfejsu dla SIO2BT, usb-serial-for-android i felhr/UsbSerial. Nie powinno mi to zająć dużo czasu…(zrobione).

Zadziała z każdym adapterem zbudowanym wg tego prostego schematu:

bluetooth_03

Moduł BT to koszt ok. 20zł (HC-06 na Allegro).

AspeQt i FT312D.

Montezuma podesłał mi linka ze specyfikacją kabla Digitus:

http://www.morele.net/digitus-adapter-usb-rs232-da-70160-698967/

i myślę, że ma to spore szanse jako alternatywa do FT232 na Androidzie. Tym bardziej, że Open Accessory Mode nie wymaga żadnych sterowników… Zobaczymy co z tego wyjdzie ;).

Mój Samsung nie ma usb-host ale open accessory mode działa ;). Już prawie… Jeszcze tylko dołożyć TTL level shifter 3.3<->5V i powinno działać.

Aktualizacja:

java.io.IOException: write failed: ENODEV (No such device)
at libcore.io.IoBridge.write(IoBridge.java:455)
at java.io.FileOutputStream.write(FileOutputStream.java:187)
at dji.midware.usb.P3.UsbAccessoryService$1.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:841)

Jest problem z open accessory mode, nierozwiązany od kilku lat…

AspeQt na Androidzie i High Speed SIO w MyPicoDos.

Po co posiadaczowi Side AspeQt na Androida? Ano, coraz częściej znajduje jakiś program w necie i aby sobie go odpalić musiałbym iść po laptopa/czytnik kart CF. Nie chce mi się, a nic tak nie cieszy jak odpalenie jakiejś zdobyczy retro, na prawdziwym Atari.

Z AspeQt na Androidzie nie ma tego problemu – tablet albo telefon mam zawsze pod ręką ;). Dodatkowo mogę cieszyć się szybkim SIO (HS index 0) na niezmodyfikowanym Atari 130XE,  którego używam na co dzień:

  • do katalogu z pobranymi z neta skarbami (xex) wrzucamy dwa pliki $boot.bin i picodos.sys stąd.
  • montujemy katalog w AspeQt:

mypicodos-aspeqt

I bootujemy:

pikuc59b1

 

Pikuś załatwia nawet długie nazwy plików 😉 i klawisza Option naduszać nie trzeba.

Android Studio vs IntelliJ IDEA.

Nic z tego nie rozumiem. IntelliJ i Android Studio wyglądają niemal identycznie, wtyczka UI designera jest budowana z tych samych źródeł.. Jednak IntelliJ działa 100 razy sporo szybciej od Android Studio. O co kaman? Jak można tak upośledzić działanie programu?IntelliJNa moim lapku z i5 i 4GB ramu Android Studio jest nieużywalne! A IntelliJ działa szybko i płynnie nawet na nieśmiertelnym Thnikpadzie R61 z 2007 roku.

Update: Nowa wersja IntelliJ nieco zwolniła, a AndroidStudio 2.0 przyspieszyło, tak że teraz ani jednego ani drugiego nie da się komfortowo używać pod Windows na moim laptopie…

Ok, IntelliJ 15.0.2 działa znów bardzo dobrze.

OptionsDialog.

TreeView na Androidzie sprawdza się średnio, zastanawiałem się jak to można by zrobić w Qt5 i przyznam szczerze, łatwo nie jest. QScrollView ma jedną podstawową wadę: póki co nie obsługuje przewijania jednym palcem i trzeba mu zostawić włączony scrollbar, na szczęście udało się go poprawić za pomocą stylów:

O kwestię layoutów mam ochotę zapytać któregoś z developerów, bo niestety są bardzo nieprzewidywalne. Nigdy nie wiadomo gdzie i jak dany widget się wyświetli. Na powyższym zrzucie odległości między obiektami są różne, a powinny być względnie spójne, bo na samym dole kontenera dodałem expander, który powinien wszystko co powyżej niego ładnie do siebie dosunąć…

Mam nadzieję, że kiedyś pojawi się spójne scrollview z obsługą single finger pan. Póki co się nie zanosi. A przecież aplikacji w QtWidgets jest niewspółmiernie więcej na wolności, niż w QtQuick.