Cześć
Ostatnio przeczytałem że można pisać w Kotlin aplikacje multiplatformowe. Czy ktoś może napisać jak wypada to w porównaniu z Xamarin ?
Jeżeli chodzi Ci o wydajność to generalnie jest mocno zależne, co ta apka ma robić :P
Pytanie tak naprawdę jest co potrzebujesz, co rozumiesz przez "wydajniesze". Jeżeli o to która aplikacja jest "szybsza" to pytanie jest który kompilator do natywnego kodu jest lepszy, a to pewnie też zależy od platformy.
Jeżeli chodzi Ci o to która jest łatwiejszy, i wydajniej się w tym pisze, to pewnie zależy od tego czy Ty jesteś bieglejszy w C# czy w Kotlinie, i który IDE Ci bardziej leży.
Z mojej krótkiej przygody z KMM powiem tyle, że jest całkiem ok , Xamarina używałem ostatni raz 6 lat temu, więc moje informacje mogą być nieaktualne.
Jeżeli chcesz coś do szybkiego klepania prostych apek w stylu pokaż dane z JSON-a z Api to polecam Fluttera
Ja sam porgramowałem 2 lata w Xamarin od 2016-2018 i wiem że od kąd przejął to MS mocno zaczeło się rozwijać. Na codzień pracuje w Javie backend. Chce również rozwujać się od strony mobilnej i zastanwiam się co będzie lepszym wyborem. Apki wykorzystujące, notifikację, żyroskop, gps itp. Więc tez fajnie były jakby to było juz pokryte daną technologią. W Xamrinie początkowo było tak że trzeba czsami przepisać z natynego rozwiązania na c#. W Kotlinie nigdy nie kodowałem ale jak koduje w Javie to chyba dobry kierunek? Głownie własnie chodzi mi o wsparcie i pokrycie kodu natywnego?
z Javy na kotlina luzik , natomiast KMM jeżeli chodzi o wyciaganie np. czujników z urządzenia działa w dosyć specyficzny sposób, bo wtedy piszesz kod na konkretnej platformie, np. implementujesz już konkretnie w Swift na iOS albo w Koltinie na Androida jakiś "interfejs". i klepiesz już sobie zupełnie natywny kod. Dla mnie to jest dobre rozwiązanie bo znam obie platformy, ale jak ktoś miałby się uczyć od 0 to nie wiem czy tak prosto by to było, tutaj masz opis jak się takie rzeczy robi w KMM
https://kotlinlang.org/docs/mobile/connect-to-platform-specific-apis.html#example-send-and-receive-messages-from-a-websocket
I tak zasadniczo jest ze wszystkim , więc jeżeli chodzi o łatwość nauki takich rzeczy to takie Multi nakładki jak Xamarin czy Unity zadziałają pewnie lepiej (czytaj prościej)
wojciechmaciejewski napisał(a):
natomiast KMM jeżeli chodzi o wyciaganie np. czujników z urządzenia działa w dosyć specyficzny sposób, bo wtedy piszesz kod na konkretnej platformie, np. implementujesz już konkretnie w Swift na iOS albo w Koltinie na Androida jakiś "interfejs". i klepiesz już sobie zupełnie natywny kod.
No nie do końca. Główna zaleta KMM jest taka, że piszesz kod w Kotlinie dla każdej z platform. Przy czym możesz pisać na iOSa w Swifcie, jeśli masz taką potrzebę. Czyli kody Kotlin native i Kotlin common są widziane w Swificie jako Swift, kod Swifta jest widziany jako Kotlin native. Analogicznie Obj-C. I dodatkowo do tego, kod Kotlin native, może być widzany we współdzielonym kodzie Kotlina jeśli tego potrzebujesz i współdzielony kod Kotlina jest widzany w Kotlin native i w Swift/Obj-C. Jest bardzo duża dowolność i język nie jest jakimś podzbiorem platformy, tylko można w nim w pełni korzystać platformy.
Czyli taka hybryda ? To jest to lepsze rozwiązanie niż Xamarin czy React bo mogę tak naprawdę napisać wszytskie co się da napisać natywnie?
Nie, aplikacje hybrydowe to są rzeczy typu PWA czy Ionic. Czy jest lepsze, to zależy czego szukasz i czego potrzebujesz. Moim zdaniem jest lepsze, bo nie zamyka platformy, tylko pozwala z niej dowolnie korzystać. Ale jest to bardzo młoda technologia i natrafia się na różnego rodzaju problemy.