1. Dyvertex
  2. Usługi
  3. Development mobilny
  4. Moduły natywne

Moduły natywne

Moduły natywne na wypadek, kiedy nie ma na to biblioteki.

SDK w Swifcie albo Kotlinie z jednej strony, twój JavaScript z drugiej i nic pomiędzy. Piszemy tę część w środku: Turbo Modules, komponenty Fabric i moduły Expo.

  1. commit
  2. build natywny
  3. build testowy
  4. weryfikacja w sklepie
  5. rollout etapowy
  6. czyjś telefon

Brakujący moduł natywny jest problemem builda długo przed tym, nim stanie się problemem produktu.

Pewnie jesteś tu, bo

Jeśli żaden z tych punktów nie brzmi jak twoja aplikacja, bezpłatna rozmowa i tak jest najszybszym sposobem, żeby ustalić, co pasuje.

obie

Dostawca sprzętu daje SDK na iOS i SDK na Androida, a wrappera dla React Native nie ma.

obie

Pakiet społecznościowy, na którym stoisz, nie był ruszany od czasów Nowej Architektury.

ios

Potrzebujesz prawdziwego widoku natywnego w drzewie Reacta, a nie WebView, który go udaje.

android

Wywołanie przez most siedzi na gorącej ścieżce i lista przez to gubi klatki.

Co piszemy

Stały zakres, stała cena, ustalone, zanim ktokolwiek napisze kod. Jeśli okaże się, że coś poza nimi waży więcej, zmieniamy zakres otwarcie, zamiast po cichu doliczać.

Turbo Modules
Moduły oparte o codegen z otypowaną specyfikacją. Strona JavaScriptu wywala się przy buildzie, a nie w runtime na urządzeniu, którego nie masz.
Komponenty Fabric
Widoki natywne renderowane w drzewie Reacta, z prawdziwymi propsami i zdarzeniami. Mapy, odtwarzacze, skanery i podglądy kamery, które zachowują się jak platforma, bo są platformą.
Moduły Expo
Expo Modules API, kiedy aplikacja jest managed, spakowane tak, żeby npx expo prebuild przechodził czysto, a CI nie wymagało ręcznego kroku.
Integracja SDK dostawcy
Płatności, BLE, MDM, skanowanie dokumentów, telematyka i SDK mediów opakowane w API, które reszta zespołu przeczyta bez otwierania Xcode.
Wydajność
JSI tam, gdzie most faktycznie jest wąskim gardłem, zmierzone trace'em przed i po. Jeśli trace pokaże wąskie gardło gdzie indziej, naprawiamy tamto.
Testy i przekazanie
Moduł ląduje w twoim repo albo w prywatnym pakiecie, razem z aplikacją testową, instrukcją builda i notatkami, co zrobić, kiedy dostawca wypuści SDK z łamiącymi zmianami.
Turbo ModulesFabricJSICodegenSwiftKotlinObjective-CExpo Modules API

Cena

Jedna kwota, ustalona przed startem.

Jeden moduł na udokumentowanym SDK zwykle się tu mieści. Zestaw modułów albo SDK bez dokumentacji wyceniamy na rozmowie.

Wypuściliśmy własne produkty do prawdziwych użytkowników: Mira w App Store i ariex.fit w otwartej becie. W portfolio nie ma jeszcze case studies z projektów ratunkowych i nie będziemy twierdzić, że jakieś są pod NDA.

Pytania, które padają najpierw.

Wszystko, na co nie ma tu odpowiedzi, jest warte dwudziestu minut rozmowy.

Czym jest Turbo Module?

To następca starego modułu mostkowego z Nowej Architektury. Interfejs natywny deklarujesz raz w TypeScripcie, kod dla obu platform powstaje z tej specyfikacji, a wywołania idą przez JSI zamiast asynchronicznego mostu JSON. W praktyce: błędy typów wychodzą przy buildzie, a synchroniczne wywołania natywne stają się możliwe.

Czy potrzebujemy Nowej Architektury?

Przy nowej pracy tak. Jest domyślna w aktualnym React Native, a ekosystem się przesunął. W istniejącej aplikacji na starej architekturze migrację warto zaplanować, ale nie ma powodu do paniki. Powiemy, które z twoich zależności są faktycznymi blokerami.

Możecie opakować SDK, którego nie możemy pokazać publicznie?

Tak. Podpisujemy NDA, zanim cokolwiek wyślesz, a moduł trafia do twojego repo albo twojego prywatnego rejestru, nie naszego.

Będziecie utrzymywać moduł po przekazaniu?

Opcjonalnie, w abonamencie miesięcznym. Bez niego dostajesz źródła, instrukcję builda i notatki o częściach SDK dostawcy, które najpewniej się zmienią. Piszemy go tak, żeby utrzymał go ktoś inny niż my.

Ile trwa jeden moduł?

Dobrze udokumentowane SDK o małej powierzchni zwykle mieści się w pięciu dniach. SDK bez dokumentacji albo takie, które wymaga widoku Fabric z obsługą gestów, trwa dłużej i wyceniamy je przed startem, nie po.

Umów audyt

Chcesz prostą odpowiedź w tej sprawie?

Wyślij repo, treść odrzucenia albo sam pomysł. Dwadzieścia minut wystarczy, żeby powiedzieć, czy właściwym krokiem jest ratowanie, przepisanie, czy uczciwe nie.

Wolisz mailem? [email protected]

Czytamy każdą wiadomość i odpisujemy w ciągu jednego dnia roboczego.