Blog

iOS – Offline’owe rozpoznawanie tekstu (OCR) i tłumaczenie z wykorzystaniem ML Kit, Apple Vision i Tesseract

22 października, 2025

W tym artykule przedstawię techniczne szczegóły implementacji demonstracyjnej aplikacji iOS, zaprojektowanej w celu zaprezentowania możliwości offline’owego rozpoznawania tekstu (OCR) w czasie rzeczywistym, tłumaczenia tekstu oraz skanowania kodów kreskowych. Pełny kod źródłowy jest dostępny w repozytorium GitHub: https://github.com/AndreiMaksimovich/ios-live-offline-ocr-and-translation–demo Stack technologiczny Aplikacja została napisana w języku Swift z wykorzystaniem SwiftUI jako frameworka interfejsu użytkownika. OCR Aplikacja integruje kilka bibliotek, aby zapewnić działanie offline’owego OCR w czasie rzeczywistym: ML Kit API Google ML Kit Text Recognition v2 (działające lokalnie/offline) obsługuje rozpoznawanie tekstu w językach wykorzystujących znaki chińskie, dewanagari (północno-indyjski), japońskie, koreańskie oraz alfabet łaciński. Dowiedz się więcej: Apple Vision Framework Apple Vision…

Czytaj więcej: iOS – Offline’owe rozpoznawanie tekstu (OCR) i tłumaczenie z wykorzystaniem ML Kit, Apple Vision i Tesseract

OCR i Tłumaczenie offline na żywo na Androidzie z Google ML Kit i Tesseract

4 października, 2025

Repozytorium: –demo W tym artykule przedstawię kilka szczegółów technicznych dotyczących stworzenia androidowego projektu demonstracyjnego, który pokazuje działanie offline’owego OCR w czasie rzeczywistym oraz tłumaczenia. Projekt wykorzystuje Google ML Kit Text Recognition V2 do OCR oraz Tesseract jako rozwiązanie awaryjne/fallback (gdy język nie jest obsługiwany przez ML Kit). Do tłumaczeń na urządzeniu używa Google ML Kit Translation. Stos technologiczny Aplikacja została zbudowana w języku Kotlin z wykorzystaniem XML Layouts. Integruje kilka komponentów open-source oraz dostarczanych przez Google: Implementacja OCR W tym demo implementacja OCR została oparta na warstwie abstrakcji z fabryką, która dostarcza usługę OCR. Usługa przyjmuje obraz typu Bitmap jako…

Czytaj więcej: OCR i Tłumaczenie offline na żywo na Androidzie z Google ML Kit i Tesseract

Cross-platform mapy w React Native: Android, iOS oraz Web

25 września, 2025

Cały kod źródłowy oraz przykładowy projekt dostępny jest tutaj: –demo Android iOS Web Web demo:  Problem Mapy są jedną z najczęściej spotykanych funkcji we współczesnych aplikacjach. W React Native domyślnym wyborem do obsługi map jest biblioteka react-native-maps. Choć działa dobrze na iOS i Androidzie, nie zapewnia wsparcia dla wersji web. W rzeczywistości żadna z popularnych, ugruntowanych bibliotek mapowych nie oferuje obecnie pełnego wsparcia dla kompilacji webowej. Istnieje biblioteka teovillanueva/react-native-web-maps, jednak od dłuższego czasu nie jest aktywnie rozwijana i wciąż zapewnia jedynie bardzo ograniczoną funkcjonalność. Cel Naszym celem było stworzenie prostego rozszerzenia/wrapper-a dla powszechnie używanej, de facto standardowej biblioteki react-native-maps. Rozszerzenie…

Czytaj więcej: Cross-platform mapy w React Native: Android, iOS oraz Web

Optymalizacja Unity WebGL: Oddzielne buildy dla Mobile Web i Desktop Web

18 września, 2025

Dlaczego warto stosować podwójne buildy w swojej grze Unity 3D Kompatybilność tekstur Jednym z kluczowych powodów jest kompatybilność zasobów. W szczególności wsparcie dla tekstur różni się znacząco pomiędzy Mobile Web (urządzenia Android i iOS) a Desktop Web (macOS, Linux, Windows). Aby lepiej zrozumieć, dlaczego ma to znaczenie, przyjrzyjmy się bliżej danym:   Desktop Browsers iOS and Android browser RGB Compressed ETC2 No Yes RGB Crunched ETC No Yes RGBA Compressed ETC2 No Yes RGBA Crunched ETC2 No Yes RGB Compressed DXT1, also known as BC1 Partial (*) No RGB Crunched DXT1, also known as BC1 Partial (*) No RGBA Compressed…

Czytaj więcej: Optymalizacja Unity WebGL: Oddzielne buildy dla Mobile Web i Desktop Web

Automatyzacja lokalnych buildów React Native Expo EAS dla Androida, iOS i Web

17 września, 2025

W tym artykule chcę podzielić się prostym przykładem automatyzacji lokalnych buildów React Native Expo z wykorzystaniem EAS dla Androida, iOS i Web. Przepływ pracy demonstruje, jak: automatycznie generować buildy specyficzne dla platform, instalować wygenerowany plik .apk na wszystkich podłączonych urządzeniach z Androidem, wdrażać plik .ipa na wszystkich podłączonych urządzeniach z iOS oraz uruchamiać kontener Dockera do obsługi wersji webowej. Głównym celem tego zestawu jest zapewnienie prostej automatyzacji dla testowych buildów podglądowych. Jednak może on być łatwo dostosowany lub rozszerzony do obsługi buildów produkcyjnych, automatycznej dystrybucji oraz dodatkowych przepływów pracy. Wszystkie skrypty, konfiguracje i pliki Dockera można znaleźć w repozytorium GitHub:…

Czytaj więcej: Automatyzacja lokalnych buildów React Native Expo EAS dla Androida, iOS i Web

Konteneryzacja Buildów Unity WebGL/WebGPU

14 września, 2025

Praca nad projektami Unity wspierającymi WebGL/WebGPU szybko staje się wyzwaniem, jeśli chodzi o stworzenie spójnego środowiska do rozwoju, testowania i produkcji. Docker rozwiązuje ten problem, dostarczając lekkie, powtarzalne kontenery, które łączą Twój build Unity Web z całym niezbędnym środowiskiem uruchomieniowym. Programiści mogą uruchamiać identyczne środowisko na lokalnym komputerze, serwerze testowym lub w produkcji – zapewniając spójne działanie w całym pipeline. Dzięki Dockerowi testowanie staje się bardziej niezawodne, wdrożenia są uproszczone, a skalowanie sprowadza się do uruchamiania większej liczby kontenerów. Dodatkowo przejście z usług chmurowych na własne serwery jest tak proste, jak wdrożenie klastra Kubernetes. W tym artykule pokażę, jak hostować…

Czytaj więcej: Konteneryzacja Buildów Unity WebGL/WebGPU

Automatyzacja kompilacji Unity za pomocą CI/CD

12 września, 2025

Kompletny projekt przykładowy – obejmujący projekt Unity, konfigurację Jenkins, szablony konteneryzacji w Dockerze oraz skrypty — dostępny jest tutaj: Dlaczego warto automatyzować buildy? Oszczędność czasu W trakcie pracy nad projektem tworzy się setki, jeśli nie tysiące buildów dla QA, testów wewnętrznych I publikacji. Automatyzacja tych kroków pozwala zaoszczędzić ogromne ilości czasu, znacznie większe niż wymaga stworzenie samego systemu automatyzacji. Zapewnienie spójności Ręczne procesy są obciążone błędami ludzkimi. Pipeline buildów gwarantuje, że każdy build przechodzi przez te same etapy w odpowiedniej kolejności. Automatyzacja kosztownych zadań Pipeline to idealne miejsce, by przenieść procesy czasochłonne lub obciążające zasoby: Przykładowy prosty workflow CI/CD…

Czytaj więcej: Automatyzacja kompilacji Unity za pomocą CI/CD

iOS SwiftUI Apple Maps: Wyświetlanie lokalizacji użytkownika i zapobieganie obracaniu się markerów wraz z mapą

11 września, 2025

Podczas pracy nad aplikacją iOS wykorzystującą Apple Maps byłem zaskoczony, że nie istnieje wbudowana opcja, która zapobiegałaby obracaniu się adnotacji (markerów) wraz z mapą, ani istnieje standardowy sposób na stałe wyświetlanie lokalizacji użytkownika i kierunku urządzenia.Ten krótki wpis pokazuje praktyczne rozwiązanie, jak zawsze prezentować pozycję użytkownika biorąc pod uwagę rotację urządzenia. Jak to działa W tym przykładzie ViewModel wykorzystuje CLLocationManager, aby otrzymywać aktualizacje dotyczące lokalizacji i kierunku urządzenia. Śledzimy także zmiany kamery mapy i zapisujemy kąt jej obrotu. View wyświetla następnie marker użytkownika (w tym przypadku w formie strzałki) i aktualizuje jego obrót, łącząc rotację mapy z kierunkiem urządzenia, aby…

Czytaj więcej: iOS SwiftUI Apple Maps: Wyświetlanie lokalizacji użytkownika i zapobieganie obracaniu się markerów wraz z mapą