Zegarek prawie w Electronie

Jest taka bardzo fajna aplikacja zwąca się Zoomit. Pozwala powiększać ekran, rysować po nim, ale też włączać widok z zegarem odmierzającym czas przerwy. Czyli idealne narzędzie do prowadzenia zajęć.

W ramach eksperymentu postanowiłem zrobić własny ekran do odmierzania przerwy a przy okazji nieco go uatrakcyjnić.

Założenia eksperymentu proste. Ma to działać bardzo podobnie do tamtej funkcjonalności, czyli umożliwiać płynne ustawianie czasu za pomocą kółka myszy. Ewentualny boost w postaci graficznej i funkcjonalnej jest dopuszczalny.

Początkowo zrobiłem prostą stronkę z równie prostym skryptem zegarka i podmianą zdjęć w tle. Będzie to odpalane tylko w najnowszych przeglądarkach, więc śmiało mogłem się tutaj pobawić maskami, element.animate i podobnymi rzeczami.

Sama stronka działać działa. Można używać.

Ale zakończeniem eksperymentu miała być aplikacja, nie strona. Dodałem więc do niej Electrona. I dalej działa. Problem tylko z tym, że jak to z Electronem bywa - po zbudowaniu tak prosta aplikacja zajmuje ciut za dużo na dysku (60mb), uruchamia się kilka sekund (ok 5-6), a po odpaleniu zjada prawie połowę procesora (ok 40%). Miejsce nie straszne, odpalanie też da się przeżyć, ale skąd to 40%? Może zastosowanie backdrop-filter? Ale aż tyle? O panie.

Powiem to ponownie - to jest jeden z problemów/nie problemów Electrona. Z jednej strony mamy naprawdę spoko “Developer experience” czyli przyjemność z tworzenia kodu - szczególnie gdy płynnie działasz w JS/CSS/HTML.

Z drugiej strony nie nadaje się to do tworzenia każdego rodzaju aplikacji. Jak masz dobry komputer i nie przeładowane aplikacje w tle to prawdopodobnie tego za bardzo nie odczujesz. Niestety moja aplikacja ma być używana w bardziej spartańskich warunkach. Włączone nagrywanie pulpitu, działający Zoom w tle i najczęściej pootwieranych na szybko kilka programów, które przewijają się podczas zajęć.

Odpalenie w takich warunkach tak prostej apki powodowało wyraźnie słyszalne zwiększenie pracy wiatraków w laptopie.

Postanowiłem więc ruszyć z czymś innym. Za czasów szkoły średniej coś tam działałem w Turbo Pascalu i Assemblerze (bo sam Pascal obsługę grafiki miał tylko z nazwy). Stare czasy.

Szukając wątków o odchudzeniu Electrona natrafiałem tylko na “nie da się”. W jednym z nich człowiek pisał, że sam jednak woli pracować w Lazarus Pascal - darmowym IDE ala Delphi.

Można spróbować. I co? No więc tak. Developer Experience jakiś tam jest, ale setki razy gorszy porównując je do zabaw na froncie. Pewnie kwestia przyzwyczajenia - jak ze wszystkim. Dla mnie zrobienie głupiego obrysowania tekstu to już było mini wyzwanie, nie mówiąc o nawet prostych animacjach, które zwyczajnie musiałem odpuścić. Do tego większość wątków jakie znajdowałem w necie to pierdu dyskusje urywane w połowie zdania. Normalnie gorzej niż w naszym frontendowym świecie.

Ale udało się. Aplikacja działa jak należy, odpala się momentalnie, a po uruchomieniu zajmuje tyle co kot napłakał. Więcej nie potrzeba. Eksperyment zaliczony 🤘.

I w sumie po raz kolejny pojawia się podobna myśl. Już dawno powinna powstać jakaś ujednolicona super bilioteka ala DirectX, która w prosty sposób pozwalała by działać na grafice tak prosto jak robimy to na co dzień w naszym frontendowym świecie. Albo może jakieś narzędzie, które pozwalało by odchudzać Chromium, które jest odpalane w tle Electrona. W powyższej aplikacji nie używałem 99.9% funkcjonalności udostępnianych przez ten silnik więc po co one mają zajmować pamięć?

Omawiane repozytoria:

https://github.com/kartofelek007/break-timer - wersja HTML z możliwością zamiany do aplikacji Electrona

https://github.com/kartofelek007/lazarus-timer - wersja Desktopowa

Dynamicznie wczytywana lista

Dzisiaj zajmiemy się stworzeniem dynamicznie wczytywanej listy na stronie. Omawiana technika może być wykorzystana np do wczytywania postów na stronie wordpressa, dynamicznego pokazywania nowości, produktów itp.

Czytaj więcej

Kolisty wykres

Jakiś czas temu na grupie facebookowej mój były kursant zadał pytanie jak zrobić okrągły wykres, po którym podąża jakaś kropka. Dość ciekawe zadanie, na które od razu wpadło mi kilka pomysłów. A czy uda się je zrealizować? Czas rzucić rękawice i stanąć do walki.

Czytaj więcej
Poprzednia strona