Aplikacje mobilne i urządzenia IoT od autorów bibliotek
Biblioteki Shiny — Bluetooth, zadania w tle, push, lokalizacja i synchronizacja dla .NET — przekroczyły 40 milionów pobrań i znajdują się w plikach projektów aplikacji, o których Państwo słyszeli. To my je napisaliśmy, utrzymujemy je i współpracujemy z zespołem Microsoft .NET MAUI. Gdy Państwa aplikacja musi działać na prawdziwych urządzeniach w terenie, właśnie taką wiedzę Państwo zatrudniają.
Państwa aplikacja Xamarin nie jest już wspierana, a migracja do .NET MAUI ciągle utyka na zależnościach.
Zadania w tle, Bluetooth lub push działają na demo, a zawodzą w terenie.
Mają Państwo sprzęt i potrzebują aplikacji, która niezawodnie komunikuje się z nim na obu platformach.
Państwa aplikacja MAUI wolno się uruchamia lub ulega awariom, których nie da się odtworzyć.
Co budujemy
Urządzeniową stronę Państwa biznesu, w oparciu o fundament, który już działa produkcyjnie.
Aplikacje mobilne i wieloplatformowe
Produkcyjne aplikacje .NET MAUI, iOS i Android oraz migracje Xamarin → MAUI — łącznie z pracą w tle, trybem offline i cyklem życia aplikacji, z którymi większość zespołów sobie nie radzi. Współpracujemy z zespołem Microsoft .NET MAUI od początku istnienia MAUI.
IoT i Bluetooth
BLE w trybie central i peripheral, floty urządzeń i integracja ze sprzętem. To my napisaliśmy biblioteki, z których korzysta w tym zakresie cała branża.
Flota i praca w terenie
Śledzenie lokalizacji, geofencing i telematyka dla pojazdów i ekip pracujących tam, gdzie łączność nie jest gwarantowana.
Urządzenia ubieralne i samochód
Aplikacje na Apple Watch, Wear OS, CarPlay i Android Auto, które przenoszą Państwa aplikację mobilną na nadgarstek i deskę rozdzielczą — zaprojektowane z myślą o szybkim spojrzeniu lub poleceniu głosowym, a nie o pomniejszonym ekranie telefonu. Połączenie telefonu z zegarkiem działa w oparciu o bibliotekę, którą sami napisaliśmy.
Zwrot z inwestycji w prostej arytmetyce
Budżet kupuje miesiące pracy inżynierów. Pytanie brzmi, na co te miesiące zostaną wydane. W produkcie połączonym z urządzeniami — czymkolwiek, co ma urządzenie, proces w tle lub tryb offline — duża część pierwszego roku idzie na infrastrukturę, która nie daje klientowi żadnej widocznej wartości i którą tysiące zespołów pisały już wcześniej.
Fundamenty i infrastrukturaPaństwa produkt
Typowy projekt
Z nami
Proporcje poglądowe — dokładny podział zależy od projektu. Nie zmienia się natomiast to, po której stronie linii płacą Państwo zespołowi inżynierów za budowanie czegoś od nowa.
Szybciej
Przychody i informacje zwrotne pojawiają się wcześniej, bo harmonogram nie zaczyna się od kwartału prac przygotowawczych.
Bezpieczniej
Najbardziej ryzykowne podsystemy — praca w tle, synchronizacja, łączność z urządzeniami — są sprawdzone produkcyjnie, zanim Państwa projekt się rozpocznie.
Taniej w utrzymaniu
Mniej kodu na wyłączność to mniej łatek, portowania i etatów w każdym roku po przekazaniu projektu.
Element, który większość projektów poświęca, my już opłaciliśmy — publicznie, przez 25 lat — i otrzymują go Państwo wraz ze współpracą. Efekt jest prosty: większa część roku trafia w produkt, który chcieli Państwo zbudować, a mniejsza w dotarcie do linii startu.
Migracja do .NET MAUI i z Xamarin
Wszystko, na czym opierała się Państwa aplikacja Xamarin, mamy już u siebie
Migracje z Xamarin do .NET MAUI to jedna z naszych specjalności — podobnie jak sam .NET MAUI. Współpracujemy z zespołem Microsoft .NET MAUI od samego początku MAUI, a nasze biblioteki pomogły ukształtować ekosystem, na którym dziś powstają aplikacje MAUI.
Wsparcie dla Xamarin zakończyło się w maju 2024 roku. W takich migracjach rzadko hamuje konwersja UI — hamuje lista zależności. Każdą porzuconą wtyczkę odpowiedzialną za Bluetooth, zadania w tle, lokalizację, push, przechowywanie danych i synchronizację trzeba zastąpić czymś, czego nikt w zespole nie uruchamiał jeszcze produkcyjnie. To na tej ocenie upływają miesiące i to w niej kryje się ryzyko.
Jak zwykle przebiega migracja
Tygodnie audytu martwych wtyczek i wybierania zamienników w ciemno.
Kompiluje się, działa na demo, a potem zachowanie w tle, offline i Bluetooth po cichu się psuje na prawdziwych urządzeniach w terenie.
Wszystko, czego nie pokrywa żaden zamiennik, staje się autorskim kodem platformowym, który Państwa zespół utrzymuje już na zawsze.
Rozwój funkcji staje na cały czas migracji, bo wszyscy są przy niej zajęci.
Jak to wygląda z nami
Audyt zależności to głównie sprawdzenie w tabeli. Wiemy, co czym zastąpić, bo sami publikujemy i utrzymujemy zamienniki.
Najbardziej ryzykowne podsystemy są już rozwiązane — działają dziś na iOS i Androidzie w produkcyjnych aplikacjach innych firm.
Przeprowadziliśmy tę migrację wystarczająco wiele razy, by wiedzieć, gdzie naprawdę boli, więc wycena opiera się na pracy, a nie na optymizmie.
Lądują Państwo na bibliotekach open source z ponad 40 mln pobrań, a nie na prywatnej nakładce, którą rozumie tylko wykonawca.
Wszystko we własnym zakresie, już działające produkcyjnie
Nie ma takiego obszaru aplikacji mobilnej, przy którym oddalibyśmy Państwu listę opcji do samodzielnego zbadania. Proszę wskazać dowolną część starej aplikacji — odpowiedź już istnieje.
Bluetooth i sprzętBLE w trybie central i peripheral, GATT, L2CAP oraz parowanie i ponowne łączenie, które ujawniają się dopiero na prawdziwych urządzeniach.
Zadania w tlePraca, która działa dalej w ramach systemowych harmonogramów iOS i Androida, zamiast kończyć się razem z aplikacją.
Lokalizacja i geofencingŚledzenie GPS, geofencing i wykrywanie aktywności ruchowej, łącznie z procedurą uprawnień do pracy w tle wymaganą przez oba sklepy.
Powiadomienia pushNatywne APNs i FCM na urządzeniu, Azure Notification Hubs, jeśli Państwo z nich korzystają, oraz część serwerowa, która je wysyła.
Powiadomienia lokalneHarmonogramy, powtórzenia, kanały, plakietki i interaktywne akcje na obu platformach.
Przechowywanie offlineUstawienia i magazyny klucz/wartość oraz dokumentowa baza danych na SQLite wraz z silnikami serwerowymi za nią.
Synchronizacja i transferyDwukierunkowa synchronizacja oraz przesyłanie i pobieranie w tle, które przetrwają martwe strefy, uśpienie aplikacji i tryby oszczędzania baterii.
Mowa i dźwiękSpeech-to-text, text-to-speech, słowo wybudzające i obsługa bez użycia rąk dla osób, które nie mogą trzymać telefonu.
Dane urządzeniaKontakty, dane zdrowotne, biblioteka muzyczna i uprawnienia obsługiwane tak, jak oczekuje tego każda platforma.
Kody kreskowe i skanowanieSkanowanie aparatem i generowanie kodów w symbologiach, na których opierają się aplikacje magazynowe i terenowe.
Kontrolki UIWidoki tabel, widoki drzew, nakładki, czat, edycja obrazów, pickery i plakietki — zestaw kontrolek, na którym opierały się stare aplikacje.
Architektura aplikacjiWstrzykiwanie zależności, hosting, nawigacja, lokalizacja i wzorzec mediator, dzięki którym struktura aplikacji przetrwa przeprowadzkę.
AI w aplikacjiAsystenci, czat i obsługa głosowa wbudowane przy okazji pracy w kodzie — jeśli przebudowa to dobry moment na ten krok.
Jak zaczynamy migrację
Od przeglądu zależności i ryzyk istniejącego rozwiązania — co przenosi się wprost, co nie ma odpowiednika, a co w ogóle nie powinno przetrwać przeprowadzki. Wynikiem jest etapowy plan, który można wycenić, a migracja przebiega platforma po platformie równolegle z Państwa roadmapą, zamiast ją zamrażać.
Już korzystają Państwo z .NET MAUI?
Nie każdy projekt MAUI to migracja. Pomagamy także zespołom, które mają przejście już za sobą — wydajność i czas uruchamiania, zadania w tle, które przestały działać po aktualizacji systemu, handlery i kod platformowy, awarie odtwarzalne tylko na prawdziwych urządzeniach oraz nadążanie za każdym nowym wydaniem .NET. Zapraszamy do współpracy przy przeglądzie, uporczywym problemie lub jako doświadczeni inżynierowie MAUI wspierający Państwa zespół.
Oferty na start o stałym zakresie
Pierwszy krok, który menedżer może zatwierdzić
Każdą współpracę można zacząć od jednej z tych ofert. Każda ma nazwę i zakres spisany przed rozpoczęciem prac, więc pierwsza decyzja jest niewielka — a Państwo widzą, jak pracujemy, zanim zobowiążą się do czegokolwiek większego.
10–20 godzin, realizacja w ciągu 2 tygodni
Przegląd kondycji aplikacji .NET MAUI
Dla aplikacji już działających na .NET MAUI — czas uruchamiania, awarie odtwarzalne tylko na prawdziwych urządzeniach i zadania w tle, które przestały działać po aktualizacji systemu.
Co obejmuje
Profilowanie uruchamiania, pamięci i renderowania na prawdziwych urządzeniach
Analiza raportów o awariach i ANR aż do przyczyny źródłowej
Sprawdzenie działania w tle, powiadomień push i cyklu życia aplikacji
Ścieżka aktualizacji do kolejnego wydania .NET
Co Państwo otrzymują
Uszeregowana lista poprawek, z najpoważniejszymi problemami zdiagnozowanymi co do linii kodu.
Każda wtyczka i zależność platformowa w Państwa aplikacji Xamarin zmapowana na swój zamiennik w .NET MAUI — to etap, na którym utyka większość migracji.
Co obejmuje
Inwentaryzacja wszystkich pakietów NuGet i powiązań platformowych
Zamiennik dla każdego z nich, już działający produkcyjnie gdzie indziej
Co nie ma odpowiednika, a co nie powinno przetrwać przeprowadzki
Etapowy, wyceniony plan migracji
Co Państwo otrzymują
Plan migracji oparty na sprawdzeniu w tabeli, a nie na etapie badań — i realna estymacja.
Państwa sprzęt komunikujący się z prawdziwą aplikacją na iOS i Androidzie — skanowanie, łączenie, ponowne łączenie i synchronizacja w tle, na urządzeniach, a nie w symulatorze.
Co obejmuje
Połączenie BLE, GATT i ponowne łączenie na Państwa urządzeniu
Działanie w tle zgodnie z regułami każdego systemu
Synchronizacja danych z punktem końcowym w chmurze
Wnioski dotyczące firmware’u i protokołu, jeśli wymagają zmian
Co Państwo otrzymują
Dowód, że najtrudniejsza część działa na prawdziwych telefonach, i wyceniona ścieżka do aplikacji produkcyjnej.
Każdą ofertę wyceniamy po stałej cenie po zapoznaniu się z zakresem, a stała cena pozostaje stała — jeśli praca zajmie nam więcej czasu, to nasz problem, nie Państwa.
Pytania, które zadają klienci
Ile trwa migracja z Xamarin do .NET MAUI?
Rzadko decyduje o tym konwersja UI — decyduje lista zależności. Dwutygodniowy audyt zależności mapuje każdą wtyczkę na jej zamiennik i zamienia to w etapową estymację.
Czy musimy korzystać z bibliotek Shiny?
Nie. Zwykle ma to sens, bo są open source, działają już produkcyjnie i utrzymują je ci sami ludzie, którzy wykonują pracę. Nigdy nie zostają Państwo uwiązani do prywatnej nakładki, którą rozumie tylko wykonawca.
Czy mogą Państwo współpracować z naszym zespołem sprzętowym lub dostawcą firmware’u?
Tak. Większość problemów z Bluetooth ujawnia się na styku aplikacji i firmware’u, a my jesteśmy przyzwyczajeni do pracy po obu stronach tej granicy — łącznie z mówieniem dostawcy, co musi zmienić po swojej stronie.
Czy budują Państwo natywne aplikacje w Swift i Kotlin?
Nasza specjalność to .NET MAUI oraz .NET dla iOS i Androida, łącznie z natywnym kodem platformowym pod spodem. Jeśli dla Państwa produktu właściwym wyborem jest aplikacja natywna, powiemy o tym.
Budują Państwo coś, co musi działać w terenie?
Proszę opowiedzieć o aplikacji, urządzeniach i miejscach, w których są używane. Powiemy, gdzie zwykle coś idzie nie tak — i jak byśmy tego uniknęli.
Korzystamy z Google Analytics, aby sprawdzić, o czym warto pisać więcej. Narzędzie pozostaje wyłączone, dopóki nie wyrażą Państwo zgody, a żadna funkcja tej strony od niego nie zależy. Szczegóły w naszej polityce prywatności.