Tworzenie aplikacji mobilnych

26
cze

Korzyści technologii Xamarin: Łatwiejsze utrzymanie aplikacji

Często menedżerowie podejmują decyzję o inwestowaniu w niezależnie opracowane aplikacje na iOS i Androida. Nie uwzględniają jednak zasobów, które pozwolą skutecznie zarządzać tymi osobnymi wersjami w czasie – poprawki błędów, aktualizacje systemu operacyjnego i nowe funkcje wymagają równoległych ścieżek rozwoju.
W artykule tym zajmiemy się jedną z najważniejszych zalet technologii Xamarin: dzięki zastosowaniu jednej podstawy kodu i platformy programistycznej zespoły programistyczne mogą znacznie wydajniej zarządzać i utrzymywać aplikację wieloplatformową przez cały cykl jej „życia”.

Jako zespół programistów Xamarin używamy Xamarin i Xamarin.Forms, aby zaoszczędzić wiele czasu w projektach dla naszych klientów. Tworząc pojedynczą bazę kodu w języku C #, jesteśmy w stanie zaoszczędzić szacunkowo 25% wstępnego czasu rozwoju dla pierwszego wydania. A czas to pieniądz. Krótko mówiąc: Szybsze cykle programowania kolejnych wersji oszczędzają pieniądze naszych klientów.

Ale oszczędność czasu, to nie jedyna zaleta płynąca z wykorzystania technologii Xamarin.

Naprawianie błędów jest prostsze w przypadku technologii Xamarin

xamarin-debugJeśli niezależnie korzystasz z aplikacji na iOS i Androida, zastanów się, co się stanie, gdy zgłoszony zostanie błąd. Tak, błędy pojawiają się nawet w przypadku najlepszych programistów i procesu testowania aplikacji. Jeśli błąd dotyczy zarówno wersji na Androida, jak i iOS, nie jest to jeden błąd, ale dwa. Oznacza to dwa różne działania związane z zapewnieniem stabilności aplikacji oraz co najmniej dwóch programistów, aby znaleźć problem w dwóch bazach kodu. Tworzone są dwie różne poprawki, a następnie dwie nowe wersje są kompilowane, testowane ponownie i testowane pod kątem pełnego zestawu funkcji. Dopiero wtedy aplikacje są publikowane.

Jeśli aplikacja została zbudowana w Xamarinie, jej kod napisany jest jeden raz. Następnie możemy wypuścić nowe wersje na każdą natywną platformę. Oczywiście nawet jeśli korzystamy z Xamarina, w każdym wydaniu należy wykonać pewne zadania specyficzne dla danej platformy. Szacujemy, że podstawowa poprawka w Xamarinie zajmuje około 75% czasu potrzebnego na naprawienie niezależnych błędów w systemie iOS i Android.

W trakcie cyklu życia aplikacji może to przynieść znaczące oszczędności. Jeśli nasz zespół programistów poświęci jeden miesiąc na utrzymanie aplikacji, to biorąc pod uwagę naszą szacunkową oszczędność czasu, możemy zyskać więcej niż cały tydzień – siedem dni cennego czasu, który można poświęcić na tworzenie nowych funkcji.

Nowe funcjonalnosci

Dzięki technologii Xamarin poprawki błędów na różnych platformach można uprościć. Ale co z nowymi funkcjami? Po pierwsze, zastanówmy się, skąd pochodzą nowe pomysły na funkcje. Często wynikają z analizowania wydajności za pomocą narzędzia ‘profilera’ i narzędzi do centralnej analizy UX (User Experience). Jeśli ta analiza może być przeprowadzona w aplikacji wieloplatformowej dla systemu Android i iOS – zamiast oddzielnie – może to być duża oszczędność czasu.

Profilowanie aplikacji w Xamarin

W Akanzie używamy Xamarin Profiler do profilowania aplikacji Xamarin i sprawdzania kodu, który wymaga poprawy z punktu widzenia wydajności. Można także użyć Android Studio lub Xcode Instruments do analizy wydajności aplikacji – ale przewaga Xamarin Profiler pozwala spojrzeć na wydajność w różnych aplikacjach.

User Experience – doświadczenie użytkownika

xamarin-uxPo pierwszym wydaniu aplikacji zespół programistów prawdopodobnie spędza dużo czasu na analizie, której celem jest zrozumieć komfort użytkownika – i to, jak UX aplikacji realizuje pierwotne cele biznesowe. Na przykład, jeśli jest to aplikacja e-commerce, będziemy analizować każdy etap procesu zakupu i określać, gdzie użytkownicy mogą porzucić swoje koszyki.

Podobnie jak w przypadku ‘profilera’, bardziej wydajne jest przeprowadzanie tej analizy na różnych platformach, dzięki czemu możemy zobaczyć trendy UX w aplikacjach na iOS i Androida. Dzięki Xamarin możemy zaimplementować kod dla wielu narzędzi analitycznych (np. Mixpanel, Google Analytics lub AppsFlyer) tylko raz, we współużytkowanej warstwie abstrakcji – zamiast dodawać je natywnie do każdej aplikacji. W zależności od narzędzia analitycznego, możemy wciąż napisać kilka linii kodu na każdej platformie, aby skopiować kod do warstwy współdzielonej. Jednak ogólny wysiłek na rzecz rozwoju jest nadal ograniczony. Zespół marketingu / produktu będzie miał możliwość analizowania UX na różnych platformach w jednym widoku.

Ten sam język – back-end

Podczas pracy z wieloplatformowymi aplikacjami Xamarin koncentrujemy się na ilości kodu współdzielonego między systemem Android i iOS, a w niektórych przypadkach na platformie Universal Windows Platform (UWP).

Jednak większość aplikacji mobilnych pobiera dane z back-endu. W wielu projektach istnieje spora szansa, że back-end używa Microsoft Azure. Jeśli nie wiesz, firma Xamarin została przejęta przez Microsoft w 2016 r. W dość krótkim czasie Xamarin został złożony w Visual Studio i jest również częścią nowego Centrum aplikacji Microsoft Visual Studio. Wszystkie narzędzia w App Center dobrze integrują się z Azure Microsoft.

Tak więc Microsoft ma kompletny zestaw narzędzi do tworzenia aplikacji, starszej platformy dla przedsiębiorstw w .NET i wielu usług w chmurze na platformie Azure – a wszystko to oparte jest na języku programowania C#. Wszystkie te elementy Microsoftu sprawiają, że korzystanie z Xamarin jest efektywnym sposobem na rozwijanie oraz zarządzanie aplikacjami mobilnymi.

Podsumowanie

Xamarin to świetny sposób na zwiększenie wydajności tworzenia aplikacji mobilnych – potencjalnie oszczędzając koszty i czas. Ale nie wszystkie elementy kodu i funkcje można łatwo udostępniać między różnymi platformami. Powiadomienia push to jeden z przykładów funkcji, w której Android i iOS różnią się. Konieczne jest napisanie niestandardowych rozwiązań na platformach natywnych – jednak nadal możemy stosować wspólną logikę w warstwie udostępnionej. Innymi słowy, możliwe jest zarządzanie powiadomieniami push za pośrednictwem Xamarin na wielu platformach, gdy zaimplementujemy natywny kod w odpowiednim miejscu.

Istnieją inne przykłady funkcji, które muszą być obsługiwane w macierzystym systemie operacyjnym – ale wraz z rozwojem systemów Android i iOS stają się one coraz bardziej do siebie podobne. Xamarin, pod kontrolą Microsoftu, nieustannie dodaje nowe możliwości korzystania z funkcji na różnych platformach.

24
mar

Trendy w aplikacjach mobilnych w 2018 roku

Rok 2017 był bardzo dobry dla rozwoju aplikacji mobilnych. Wiele firm zdało sobie sprawę, że aplikacje mobilne nie są już opcjonalną inwestycją a koniecznością. Urządzenia mobilne to obecnie najlepszy sposób dotarcia do klientów i zwiększenia sprzedaży. Rynek aplikacji mobilnych jest zdominowany przez Google Play i iStore. Duże firmy (sprzedawcy detaliczni, banki, hotele itp.) używają aplikacji mobilnych do budowania marki, zwiększania zaangażowania klientów, marketingu bezpośredniego. W ślad za nimi idą małe i średnie firmy, które również obserwują trend mobilny i tworzą własne aplikacje. Poniżej przedstawiamy najnowsze trendy rozwoju aplikacji mobilnych, które określą przyszłość ich rozwoju.

Read more

31
paź

Mobilna aplikacja internetowa czy natywna? A może hybryda?

Pierwszym krokiem w tworzeniu aplikacji mobilnej jest określenie, czy powinna być natywna, czy „internetowa”.

Ta decyzja będzie miała wpływ na każdy kolejny etap rozwoju projektu, od zatrudnienia odpowiednich programistów po określenie na jakich urządzeniach aplikacja będzie dostępna.

Czy nie ma rozwiązań pośrednich?

Obecne technologie pozwalają na tworzenie hybrydowych aplikacji – albo przez pisanie kodu JavaScript i wykonywanie go w aplikacji natywnej, jak Adobe PhoneGap, React Native lub przez kompilowanie kodu C# lub Java na natywny kod, np. Xamarin. Należy jednak pamiętać, że szybkość działania takich aplikacji może być niezadowalająca, szczególnie w przypadku tanich telefonów, które nie mają dużo pamięci lub mocy obliczeniowej.

Niezależnie od wybranej technologii hybrydowej, tylko część aplikacji będzie w rzeczywiście hybrydowa. W niektórych przypadkach będziemy zmuszeni część elementów aplikacji programować natywnie.

Warto wiedzieć, że istnieją rygorystyczne ograniczenia możliwości projektowania aplikacji mobilnych w zależności od wybranego rozwiązania. Ograniczają wynikają z tego iż programiści muszą korzystać z predefiniowanych elementów danej technologii, które mogą być uruchomione na danym systemie operacyjnym (Android/iOS)

Plusy i minusy aplikacji internetowych

Aplikacja htmlGwałtowny rozwój internetu, udowadnia nam, że technologie internetowe mogą być wykorzystywane w wielu sytuacjach gdzie programiści będą dostosowywać się do nowego stanu rzeczy, i w ten sposób mogą tworzyć nowy trend. Aplikacje internetowe są tego przykładem. Są to zasadniczo strony internetowe zaprojektowane w ten sposób by wyglądały jak aplikacje mobilne.

Podczas gdy aplikacje natywne bezpośrednio współdziałają z systemem operacyjnym, aplikacje internetowe współdziałają z przeglądarką. To poszerza grupę potencjalnych odbiorców, pozwalając aplikacji działać na prawie każdym urządzeniu, o ile posiada przeglądarkę internetową.

Odpowiednio zaadaptowany HTML pozwala aplikacjom łatwo dopasować się do dowolnego rozmiar i rozdzielczości ekranu. Jednak te aplikacje pozostawiają wiele do życzenia w odniesieniu do wydajności, zwłaszcza na urządzeniach mobilnych. Wygoda korzystania z aplikacji internetowej zależy od mocy obliczeniowej telefonu użytkownika.

Plusy i minusy aplikacji natywnych

Aplikacje typowo natywne mają znacznie większą wydajność w stosunku do odpowiedników aplikacji internetowych. Dostępność do danych jest dużo szybsza, a sama aplikacja jest w stanie uzyskać pełen dostęp do możliwości urządzenia.

Niestety, natywna aplikacja działa tylko w jednym systemie operacyjnym. Aplikacja opracowana dla systemu Windows musi zostać przebudowana na Androida, iOS a nawet na nowsze wersje systemu Windows, aby zachować zgodność.

Zatrudnienie zespołu programistów dla każdego systemu operacyjnego jest kosztowną decyzją i nie jest to możliwe dla wielu firm (dlatego dużo aplikacji firmowych dostępnych jest tylko dla jednej platformy).

Postawić na aplikację internetową, natywną lub hybrydową?

Wybór między aplikacją internetową, natywną lub hybrydową w dużej mierze zależy od potrzeb Twojego projektu. Koszt i niezawodność to na pewno nie jedyne czynniki, którymi należy się kierować. Oto trzy pytania, które warto sobie zadać zanim dokonamy wyboru:

Czy aplikacja bazuje na funkcjonalnościach urządzenia?
Telefony komórkowe mają wiele czujników, funkcji takich jak akcelerometry, żyroskopy, odbiorniki GPS, kamery i inne. Jeśli projektujesz aplikację, która będzie korzystać z tych funkcji, aplikacja natywna najlepiej spełni Twoje oczekiwania.
Czy aplikacja wymaga zaawansowanych animacji i interakcji?
Gry internetowe mogą działać dobrze na komputerach stacjonarnych, ale na urządzeniach mobilnych są praktycznie bezużyteczne. Gry są jedynymi z najbardziej wymagających procesów które obciążają urządzenie. Pisanie gier natywnie gwarantuje płynność działania.
Czy aplikacja ma jedynie wyświetlać dane?
Projekty, które opierają się na wyświetlaniu informacji z powodzeniem mogą być obsługiwane przez aplikacje internetowe. Dzięki wyborowi tej technologii można w łatwy sposób skalować aplikację na wiele urządzeń przy zachowaniu funkcjonalności i przyzwoitej wydajności.

Aplikacje mobilneNatywne aplikacje bardziej angażują odbiorców, ale aplikacje internetowe są znacznie tańsze i łatwiejsze do wdrożenia w szerokiej gamie urządzeń, o ile cel aplikacji jest prosty. Im bardziej skomplikowany projekt, tym mniej korzystne będą technologie hybrydowe, zwłaszcza jeśli chodzi o Xamarin, który bardzo dobrze sprawdza się przy aplikacjach typowo biznesowych wymagających niezawodnego działania.

Rozwiązania hybrydowe mogą kiedyś być jedynym słusznym wyborem w przypadku tworzenia aplikacji mobilnych, ale obecnie bez dedykowanych programistów dla każdego systemu operacyjnego trudne będzie nam stworzyć wysoce zaawansowaną aplikację o tych samych funkcjonalnościach na każde urządzenie.

Przy projektowaniu nowej aplikacji mobilnej ważne jest, aby pamiętać o tych różnicach.

We use cookies

Our website uses cookies to improve your experience. To find out more about the cookies we use please see our privacy policy.

Simple privacy policy

You can change our and our partners cookie settings below. Our use of analytics cookies requires your consent

  • Analytics

    Analytical cookies are used to understand how users interact with the site website. These cookies help provide information about visitor count metrics, rejection rate, source of traffic, etc. The primary purpose of analytics is to improve the functionality of a site or application.

    accept
  • Necessary cookies

    These cookies are used to provide you with a more personalized experience on our website and to remember choices you make when you use our website. For example, we may use functionality cookies to remember your language preferences or remember your login details.

    required