Aplikacje internetowe

Aplikacja internetowa to program, który pracuje na serwerze i komunikuje się z użytkownikiem poprzez sieć komputerową z wykorzystaniem przeglądarki internetowej. Przeglądarka internetowa w takim przypadku pełni funkcję interfejsu użytkownika.

W aplikacji internetowej zakłada się interakcję z użytkownikiem, korzystanie z baz danych i innych usług, często rozproszonych, umieszczonych na wielu różnych serwerach.

Istotnymi cechami aplikacji internetowej są łatwość i szybkość dotarcia do informacji (dowolny komputer podłączony do internetu lub sieci LAN i przeglądarka stron internetowych) oraz bezpieczeństwo danych (login i hasło, szyfrowanie połączenia oraz system uprawnień).

Zalety aplikacji internetowych:

dostępność dla wszystkich zainteresowanych bez ograniczeń związanych z czasem i miejscem,

praktycznie brak konieczności instalowania dodatkowego oprogramowania - aby korzystać z aplikacji internetowej wystarczy przeglądarka internetowa (czasem tylko z dodatkowymi pluginami),

brak konieczności zakupu dodatkowego sprzętu komputerowego - aplikacja internetowa może zostać zainstalowana na serwerze dostępnym w internecie,

łatwość utrzymania i modernizacji, ponieważ zmiany i aktualizacje w aplikacji są wykonywane na serwerze bez udziału użytkowników aplikacji,

łatwość integracji aplikacji internetowej z innymi usługami, np. stroną internetową,

niższe koszty wytworzenia, uruchomienia i utrzymania aplikacji internetowej w porównaniu z innymi rozwiązaniami - większość technologii stosowanych do wytworzenia aplikacji internetowych jest bezpłatna.

Narzędzia aplikacji internetowych

Do prawidłowej pracy aplikacji internetowej potrzebne jest:

oprogramowanie zwane serwerem WWW (na przykład Apache, IIS)

(na przykład Apache, IIS) oprogramowanie wspomagające (serwer bazodanowy — na przykład MySQL, MS SQL)

(serwer bazodanowy — na przykład MySQL, MS SQL) środowisko do tworzenia programów (na przykład PHP, Java, C#)

Z serwerem WWW komunikuje się przeglądarka internetowa, a serwer bazodanowy i interpreter umożliwiają udostępnianie dynamicznie tworzonych stron internetowych oraz zarządzanie bazami danych.

Narzędzia stosowane podczas pracy z aplikacją internetową można podzielić na dwie grupy:

Narzędzia po stronie klienta — pozwalają klientowi wykonywać część zadań związanych z obsługą aplikacji. Należą do nich JavaScript, aplety Java, AJAX i inne.

— pozwalają klientowi wykonywać część zadań związanych z obsługą aplikacji. Należą do nich JavaScript, aplety Java, AJAX i inne. Narzędzia po stronie serwera — pozwalają wykonywać na serwerze zadania służące do obsługi żądań klienta. Są to technologie typu: ASP.NET (Active Server Pages), JavaServer Pages (JSP) i języki PHP, Perl, Coldfusion, Ruby on Rails i wiele innych.

Technologie po stronie klienta

JavaScript

Technologie działające po stronie klienta są związane z rodzajem oprogramowania klienckiego, czyli przeglądarki internetowej i zainstalowanych wtyczek. Najczęściej wspomagają one technologie działające po stronie serwera.

Podstawową technologią stosowaną po stronie klienta jest JavaScript. Jest to język skryptowy, którego kod można wstawić w kod strony HTML w celu uzyskania dynamiki strony.

JavaScript jest obecnie wspierany przez wszystkie przeglądarki i nie wymaga instalowania dodatkowego oprogramowania.

Aplety Java

Inną technologią, która może być stosowana po stronie klienta, są aplety Java. Aplety te pisane są w języku Java, a do ich wykonania potrzebne jest zainstalowanie w przeglądarce wtyczki Java Virtual Machine. Aplety Java są coraz rzadziej stosowane ze względu na zajmowanie zbyt wielu zasobów komputera i rozwój innych technologii.

Flash

Technologia Flash to kolejne narzędzie, które może być stosowane po stronie klienta. Dostarcza ono narzędzi do tworzenia animacji i efektów graficznych. Technologia Flash wymaga instalowania w przeglądarce specjalnej wtyczki Adobe Flash Player.

AJAX

AJAX (ang. Asynchronous JavaScript and XML) to technologia uzupełniająca język JavaScript. Oferuje ona te same działania po stronie klienta co JavaScript. Ale w technologii AJAX komunikacja z serwerem jest realizowana w tle, podczas gdy użytkownik pracuje na stronie WWW.

Technologie po stronie serwera

Technologie działające po stronie serwera powodują, że klient otrzymuje gotową stronę internetową wygenerowaną z uwzględnieniem kryteriów określonych przez użytkownika.

CGI

Pierwszą technologią, która zyskała popularność i jest stosowana nadal w niektórych aplikacjach, była technologia CGI (ang. Common Gateway Interface). Umożliwiała ona między innymi dynamiczne generowanie dokumentów przed wysłaniem ich do przeglądarki, tworzenie dokumentów w oparciu o dane znajdujące się w bazie, generowanie i przetwarzanie formularzy. Skrypty CGI mogą być programami kompilowanymi do postaci binarnej lub programami interpretowanymi, pisanymi np. w Perlu lub w języku skryptowym powłoki.

ISAPI

Filtry ISAPI (ang. Internet Server API), których działanie jest sterowane zdarzeniami serwera, a nie żądaniami klienta. Zaletą tej technologii jest szybkość działania oraz większa wydajność w porównaniu z technologią CGI. Jej wadą jest działanie tylko w systemach Windows.

Obecnie popularne stały się technologie, które generują strony WWW poprzez interpretowanie kodu osadzonego wewnątrz strony.

ASP.NET

Jest to bardzo wydajna i nowoczesna technologia opracowana przez firmę Microsoft. Przeznaczona została do tworzenia różnych aplikacji internetowych w formatach HTML, WML oraz XML. Tworzone dokumenty zawierają statyczną treść, ale w ramach kodu statycznego istnieje możliwość dodania kodu dynamicznego.

JSP

JavaServer Pages — wraz z innymi elementami wchodzącymi w skład platformy Java Platform firmy Sun umożliwia tworzenie dynamicznych dokumentów WWW w formatach HTML, XHTML, DHTML oraz XML z wykorzystaniem języka Java. Jest to rozwiązanie podobne do technologii PHP.

PHP

Wraz z serwerem WWW Apache oraz serwerem baz danych MySQL tworzy wydajną i niezależną od systemu platformę do budowania dynamicznych stron WWW. Platforma ta określana jest jako platforma AMP. W systemach Linux znana jest pod nazwą LAMP, a w systemie Windows pod nazwą WAMP. Istnieje również wieloplatformowa wersja, nazywana XAMPP. PHP jest systemem otwartym, dzięki czemu powstają coraz nowsze moduły rozszerzające jego możliwości. PHP jest nie tylko technologią funkcjonującą po stronie serwera. Jest to również język skryptowy, wykorzystywany przy pracy nad aplikacjami uruchamianymi niezależnie od serwera WWW.

Struktura aplikacji internetowej

Podstawowa architektura aplikacji internetowej zakłada, że na komputerze użytkownika funkcjonuje wyłącznie oprogramowanie obsługi interfejsu użytkownika, natomiast oprogramowanie właściwej aplikacji oraz oprogramowanie dostępu do danych znajdują się na oddzielnych, dedykowanych komputerach. Takie rozwiązanie pozwała na współbieżny dostęp do danych i aplikacji oraz obniża wymagania dla komputera użytkownika.

Rozszerzona architektura aplikacji internetowej zakłada, że w jej skład wchodzą trzy programowe warstwy funkcjonalne:

Warstwa klienta — odpowiedzialna za interfejs użytkownika i interakcję z użytkownikiem, oparta na kliencie HTTP.

— odpowiedzialna za interfejs użytkownika i interakcję z użytkownikiem, oparta na kliencie HTTP. Warstwa aplikacji — która w odpowiedzi na żądania klientów tworzy dokumenty dynamiczne. Warstwa ta składa się z serwera HTTP i serwera aplikacji będącego środowiskiem uruchomieniowym dla aplikacji generujących dokumenty dynamiczne.

— która w odpowiedzi na żądania klientów tworzy dokumenty dynamiczne. Warstwa ta składa się z serwera HTTP i serwera aplikacji będącego środowiskiem uruchomieniowym dla aplikacji generujących dokumenty dynamiczne. Warstwa danych — która odpowiada za udostępnianie informacji umieszczanych w dokumentach dynamicznych. Warstwa ta składa się z serwera bazy danych, który odpowiada na żądania w języku SQL

Istotnym elementem tej architektury jest serwer aplikacji. Odpowiada on za obsługę komunikacji z warstwą klienta i warstwą danych. Programista, który tworzy aplikacje internetowe, nie musi tworzyć kodu obsługi protokołu HTTP z klientem ani kodu obsługi komunikacji SQL z serwerem bazy danych. Ponadto serwer aplikacji realizuje inne typowe funkcje, np. obsługę transakcji, rejestrację żądań w plikach dziennika, autoryzację dostępu użytkowników do aplikacji.

Aplikacje internetowe najczęściej buduje się w ten sposób, że poszczególne funkcje systemowe w celu ich separacji są rozdzielone pomiędzy różne komponenty. Stosowane są dwie metody:

architektura 4-warstwowa (4-tier architecture)

(4-tier architecture) architektura Model-View-Controller.

Architektura 4-warstwowa

Nazywa się tak, ponieważ definiuje cztery warstwy aplikacji internetowej. Są to warstwy:

klienta,

logiki prezentacji,

logiki biznesowej

danych.

Składniki aplikacji są podzielone na dwie grupy: składniki logiki prezentacji i składniki logiki biznesowej.

Zadania składników logiki prezentacji to:

przyjmowanie żądań od klientów,

wywoływanie funkcji składników logiki biznesowej,

generowanie dokumentów dynamicznych

wypełnianie ich danymi przekazywanymi przez składniki logiki biznesowej.

Zadania składników logiki biznesowej to:

realizacja procesów biznesowych

komunikacja z bazą danych

Architektura Model-View-Controller (MVC)

Jest dalszym rozwinięciem architektury 4-warstwowej. Składniki aplikacji internetowej są podzielone na trzy grupy:

składniki sterujące — logika sterowania ( controller ) - przyjmują żądania od klientów oraz koordynują ich obsługę (wywoływanie funkcji składników modelu i prezentacji)

— logika sterowania ( ) - przyjmują żądania od klientów oraz koordynują ich obsługę (wywoływanie funkcji składników modelu i prezentacji) składniki prezentacji — logika prezentacji ( view ) - tworzą dokumenty dynamiczne i wypełniają je danymi dostarczanymi przez składniki modelu.

— logika prezentacji ( ) - tworzą dokumenty dynamiczne i wypełniają je danymi dostarczanymi przez składniki modelu. składniki modelu — logika biznesowa (model) - odpowiadają za realizację procesów biznesowych i komunikację z bazą danych.

Zaletą technologii aplikacji internetowych jest to, że użytkownik korzystający z takiej aplikacji może posługiwać się tylko programem klienta HTTP, który zwykle ma małe wymagania sprzętowe. Dzięki temu dostęp do aplikacji internetowych możliwy jest też za pomocą tabletu czy telefonu komórkowego. Inną zaletą jest wygoda administrowania aplikacjami internetowymi. Są one umieszczane na pojedynczym komputerze (serwerze aplikacji), w związku z tym prace administracyjne dotyczą tylko tego komputera.

Wadą technologii aplikacji internetowych są koszty, jakie należy ponieść, aby wdrożyć ten system (np. konieczność zakupu serwera o dużej mocy obliczeniowej czy zakupu komercyjnego oprogramowania serwera aplikacji). Inną niedogodnością są trudności z wytwarzaniem oprogramowania.

Serwerami aplikacji są np.: poss Application Server (serwer aplikacji w Javie na licencji LGPL), IBM WebSphere (serwer aplikacji JEE oferowany przez firmę IBM), platforma .NET Microsoft.

Wzorce projektowe

Wzorce projektowe to sprawdzone w praktyce, uniwersalne rozwiązania często pojawiających się problemów podczas projektowania aplikacji. Wzorce projektowe tworzone są najczęściej w oparciu o programowanie obiektowe. Pokazują powiązania i zależności pomiędzy klasami oraz obiektami i ułatwiają tworzenie i modyfikację kodu źródłowego. Wprowadzają standaryzację kodu oraz zwiększają jego wydajność i niezawodność. Wzorzec projektowy powinien zawierać oprócz rozwiązania problemu także dokumentację, która wyjaśni cel, sposób działania i zalety danego rozwiązania.

Dokumentacja wzorca projektowego powinna zawierać:

unikatową nazwę, która pozwoli odwoływać się do wzorca,

opis celu, czyli czym należy się kierować podczas wyboru wzorca,

opis sytuacji, w których wzorzec można stosować,

graficzną reprezentację wzorca w postaci diagramu klas lub interakcji,

listę klas i obiektów stosowanych we wzorcu,

opis wzajemnej interakcji klas i obiektów wykorzystywanych we wzorcu,

wykaz wyników oraz efektów ubocznych, jakie występują podczas użycia wzorca,

wskazówki dotyczące zastosowania wzorca,

przykładowy kod w jednym z języków programowania pokazujący zastosowanie wzorca.

Wzorzec projektowy nie jest gotową implementacją rozwiązania. Przypomina szablon, który może być zastosowany w wielu różnych sytuacjach. Wzorce oparte są na praktycznych rozwiązaniach, które zostały zaimplementowane w wybranym języku obiektowym. Mogą przyspieszyć proces projektowania aplikacji przez wykorzystanie wypróbowanych rozwiązań dla sformułowanego problemu.

Wzorzec projektowy MVC

MVC (ang. Model-View-Controller) jest jednym z najczęściej stosowanych wzorców projektowych w aplikacjach internetowych. Głównym założeniem tego wzorca jest podzielenie kodu aplikacji na 3 moduły:

Model — reprezentuje dane (np. pobierane z bazy danych).

— reprezentuje dane (np. pobierane z bazy danych). Widok — reprezentuje interfejs użytkownika.

— reprezentuje interfejs użytkownika. Kontroler — reprezentuje logikę sterującą aplikacją.

Model

Model zapewnia zestandaryzowany sposób dostępu do danych. Najczęściej stosowany jest do pobierania i modyfikowania rekordów z bazy danych. Pozostała część aplikacji staje się niezależna od tego skąd i w jaki sposób dane są pobierane. Dane mogą być pobierane z różnych źródeł (np. z bazy lub pliku) i nie jest to istotne z punktu widzenia logiki sterującej aplikacji. Tworząc tę logikę, wywołujemy tylko odpowiednie funkcje modelu i w wyniku dostajemy dane do przetworzenia. Model jest elementem opcjonalnym, gdyż nie zawsze korzystamy z danych pobieranych z bazy czy plików.

Widok

Widok reprezentuje to, co będzie widoczne dla użytkownika. Widok oddzielony od logiki aplikacji pozwała na bezproblemową zmianę oprawy graficznej w dowolnym momencie. Zadaniem kontrolera jest przekazanie danych do widoku. Programista tworzący widok nie musi nic wiedzieć na temat logiki programu. Otrzymuje on tylko dane, które należy sformatować. Widok można zmienić, nie ingerując w kod programu.

Kontroler

Kontroler zawiera najważniejszą część kodu, która steruje aplikacją. Odpowiada m.in. za przetwarzanie danych pobranych za pomocą modelu i przekazanie ich poprzez widok użytkownikowi, a także za wykonywanie odpowiednich akcji w zależności od działań użytkownika.

Zaletą korzystania ze wzorca MVC jest uzyskanie gotowej struktury aplikacji oraz uporządkowanie struktury kodu szczególnie przy tworzeniu dużych aplikacji. Pozwala też na uniknięcie problemów ze znalezieniem określonej funkcjonalności. Umożliwia stosowanie jasnego podziału prac nad projektem. Zmiana bazy danych czy wyglądu strony przestaje być problemem.

Wzorzec MVC często jest traktowany jako wzorzec złożony, który może być rozbijany na prostsze wzorce. Na bazie wzorca MVC powstało również wiele wzorców pochodnych. Obecnie częściej stosowane są wzorce pochodne niż oryginalny wzorzec.

Jedną z pierwszych adaptacji MVC na potrzeby środowiska WWW była platforma Struts przeznaczona dla technologii Java Server Pages.

Firma Microsoft posiada adaptację MVC zbudowaną na bazie technologii ASP.NET w postaci platformy ASP.NET MVC, która umożliwia budowanie aplikacji z uwzględnieniem wyraźnie odseparowanych modeli, kontrolerów oraz widoków. Platforma ta udostępnia dużą liczbę specyficznych rozszerzeń oraz konstrukcji programistycznych.

Istnieje wiele frameworków wspomagających programowanie i udostępniających gotową architekturę opartą na MVC. Należą do nich:

Zend Framework,

Code Igniter,

CakePHP,

Symfony.

Framework - platforma programistyczna

Do tworzenia aplikacji internetowych często wykorzystuje się platformy programistyczne, które definiują strukturę aplikacji, określają mechanizm ich działania oraz dostarczają bibliotek umożliwiających wykonywanie określonych zadań. Framework posiada zdefiniowaną podstawową strukturę aplikacji, czyli elementy, które pozostają niezmienne we wszystkich utworzonych przy jego pomocy aplikacjach. Programista tworzy aplikację, dostosowując poszczególne komponenty do wymagań realizowanego projektu. Ma on również możliwość tworzenia nowych elementów niezbędnych w projektowanej strukturze aplikacji.

Typowe cechy frameworka to:

Odwrócenie sterowania — przepływ sterowania jest narzucany przez framework, a nie przez programistę.

Domyślne zachowanie — framework powinien posiadać domyślną konfigurację, która musi być użyteczna i dawać określony wynik.

Rozszerzalność — programista powinien mieć możliwość rozszerzania poszczególnych komponentów frameworka, jeśli chce je rozbudować o dodatkową funkcjonalność.

Zamknięta struktura wewnętrzna — programista może rozbudowywać framework, ale nie poprzez modyfikację domyślnego kodu.

Tworzenie aplikacji z wykorzystaniem frameworków wymaga od programisty mniejszej ilości kodu do napisania. Aplikacja posiada dobrą wewnętrzną strukturę, jest dobrze zaprojektowana i przetestowana. Ceną za elastyczną budowę jest niższa wydajność tworzonego oprogramowania. Frameworki mogą być stosowane jako szkielety zarówno kompletnych aplikacji, jak i pojedynczych komponentów.

Narzędzia programistyczne

Eclipse IDE

Eclipse to platforma programistyczna przeznaczona do tworzenia i testowania aplikacji internetowych. Sama platforma nie posiada narzędzi do tworzenia aplikacji czy pisania

programu, ale zapewnia obsługę wtyczek realizujących określone zadania. Dostępne są implementacje różnych języków programowania, między innymi w Javie, C/C++ i PHP. Posiada narzędzia do współpracy z serwerami WWW oraz serwerami baz danych. Może pracować z systemami Windows, Linux i Mac OS/X.

Zend Framework

Zend Framework to platforma programistyczna przeznaczona do tworzenia aplikacji internetowych w języku PHP. Zawiera zbiór bibliotek obsługujących podstawowe mechanizmy działania aplikacji oraz biblioteki użytkowe obsługujące np. wysyłanie e-maili, komunikację z innymi aplikacjami internetowymi itp. Posiada również implementację modelu MVC, który może zostać wykorzystany do utworzenia struktury aplikacji.

NetBeans IDE

Jest to kolejny darmowy zestaw narzędzi programistycznych służący do tworzenia aplikacji, w tym również usług Web Services i aplikacji przeznaczonych na urządzenia mobilne. Głównie przeznaczony dla języka Java, ale umożliwia kompilowanie programów napisanych w innych językach, np. JavaScript, C++, Ruby, Python, PHP.

Dedykowane aplikacje webowe / internetowe – tworzenie, projektowanie

Zajmujemy się tworzeniem szeroko rozumianych aplikacji webowych, czyli systemów, które opierają swoje działanie na przeglądarce internetowej. W czasach nieustannego połączenia z Internetem idealnym rozwiązaniem są aplikacje webowe. Dlaczego? Pozwalają one zarządzać firmą przez smartfona, laptopa - możesz to robić, gdziekolwiek jesteś. Potrzebujesz wyłącznie dostępu do Internetu.

Tworzymy aplikacje webowe, które pozwalają na automatyzację procesów w firmie. Jeśli nie jesteś pewny, czy ta oferta jest dla Ciebie, napisz do nas, przeanalizujemy Twoje potrzeby i zaproponujemy odpowiednie rozwiązanie.

Cykl życia tworzenia oprogramowania dla urządzeń przenośnych - Xamarin

Spis treści

Cykl życia tworzenia oprogramowania dla urządzeń przenośnych

Artykuł

05/10/2022

Czas czytania: 14 min

Współautorzy: 6 Czy ta strona jest pomocna? Tak Nie Czy chcesz coś dodać do tej opinii? Opinia zostanie wysłana do firmy Microsoft: po naciśnięciu przycisku Prześlij opinia zostanie użyta do ulepszania produktów i usług firmy Microsoft. Zasady ochrony prywatności. Prześlij Dziękujemy.

W tym artykule

Tworzenie aplikacji mobilnych może być tak proste, jak otwarcie Visual Studio, rzucanie czegoś razem, wykonywanie szybkiego testowania i przesyłanie do App Store — wszystko to zrobiono po południu. Może to być bardzo zaangażowany proces, który obejmuje rygorystyczny projekt z góry, testowanie użyteczności, testowanie jakości na tysiącach urządzeń, pełny cykl życia beta, a następnie wdrażanie wielu różnych sposobów.

W tym dokumencie zapoznamy się z dokładnym wprowadzeniem do tworzenia aplikacji mobilnych, w tym:

Proces — proces tworzenia oprogramowania jest nazywany cyklem życia tworzenia oprogramowania (SDLC). Przeanalizujemy wszystkie fazy sdLC w odniesieniu do tworzenia aplikacji mobilnych, w tym: Inception, Design, Development, Stabilization, Deployment i Maintenance. Uwagi — istnieje wiele zagadnień związanych z tworzeniem aplikacji mobilnych, szczególnie w przeciwieństwie do tradycyjnych aplikacji internetowych lub klasycznych. Przeanalizujemy te zagadnienia i dowiesz się, jak wpływają one na rozwój aplikacji mobilnych.

Ten dokument ma odpowiedzieć na podstawowe pytania dotyczące tworzenia aplikacji mobilnych, zarówno dla nowych, jak i doświadczonych deweloperów aplikacji. Wymaga to dość kompleksowego podejścia do wprowadzenia większości pojęć, które zostaną wprowadzone podczas całego cyklu życia programowania oprogramowania (SDLC). Jednak ten dokument może nie być dla wszystkich, jeśli swędzisz się po prostu rozpocząć tworzenie aplikacji, zalecamy przejście do przewodnika Wprowadzenie do programowania mobilnego , a następnie powrót do tego dokumentu później.

Cykl życia oprogramowania do tworzenia aplikacji mobilnych

Cykl życia tworzenia aplikacji mobilnych nie różni się w dużej mierze od standardu SDLC dla aplikacji internetowych lub klasycznych. Podobnie jak w przypadku tych, zwykle istnieje 5 głównych części procesu:

Inception — wszystkie aplikacje zaczynają się od pomysłu. Ten pomysł jest zwykle uściśliny w solidnej zasadzie dla aplikacji. Projektowanie — faza projektowania składa się z definiowania środowiska użytkownika (UX) aplikacji, takiego jak ogólny układ, jego działanie itp., a także przekształcenie tego środowiska użytkownika w odpowiedni projekt interfejsu użytkownika, zwykle z pomocą projektanta graficznego. Programowanie — zazwyczaj najbardziej intensywnie obciążający zasoby faza, jest to rzeczywista kompilacja aplikacji. Stabilizacja — gdy programowanie jest wystarczająco daleko, kontrola jakości zwykle zaczyna testować aplikację i usterki są naprawione. Często aplikacja przejdzie w ograniczoną fazę beta, w której szersza grupa użytkowników ma szansę na korzystanie z niej i przekaże opinię i poinformuje o zmianach. Wdrożenie

Często wiele z tych elementów nakłada się, na przykład często zdarza się, że programowanie trwa, gdy interfejs użytkownika jest finalizowany, a nawet może poinformować projekt interfejsu użytkownika. Ponadto aplikacja może przejść do fazy stabilizacji w taki sam sposób, że nowe funkcje są dodawane do nowej wersji.

Ponadto te fazy mogą być używane w dowolnej liczbie metodologii SDLC, takich jak Agile, Spiral, Waterfall itp.

Każda z tych faz zostanie szczegółowo wyjaśniona w poniższych sekcjach.

Powstania

Wszechobecność i poziom interakcji, które ludzie mają z urządzeniami przenośnymi, oznacza, że prawie każdy ma pomysł na aplikację mobilną. Urządzenia przenośne otwierają zupełnie nowy sposób interakcji z obliczeniami, internetem, a nawet infrastrukturą firmową.

Etap powstania polega na definiowaniu i udoskonalaniu pomysłu dla aplikacji. Aby utworzyć udaną aplikację, należy zadać kilka podstawowych pytań. Poniżej przedstawiono kilka kwestii, które należy wziąć pod uwagę przed opublikowaniem aplikacji w jednym z publicznych sklepów App Store:

Przewaga konkurencyjna — czy istnieją już podobne aplikacje? Jeśli tak, w jaki sposób ta aplikacja różni się od innych?

W przypadku aplikacji, które będą dystrybuowane w Enterprise:

Integracja infrastruktury — z jaką istniejącą infrastrukturą będzie się integrować lub rozszerzać?

Ponadto aplikacje powinny być oceniane w kontekście formularza mobilnego:

Wartość — jaka wartość zapewnia użytkownikom ta aplikacja? Jak będą z niego korzystać?

— jaka wartość zapewnia użytkownikom ta aplikacja? Jak będą z niego korzystać? Formularz/mobilność — w jaki sposób ta aplikacja będzie działać w formie mobilnej? Jak mogę dodać wartość przy użyciu technologii mobilnych, takich jak rozpoznawanie lokalizacji, aparat itp.?

Aby ułatwić projektowanie funkcji aplikacji, może być przydatne do zdefiniowania aktorów i przypadków użycia. Aktorzy są rolami w aplikacji i często są użytkownikami. Przypadki użycia to zazwyczaj akcje lub intencje.

Na przykład aplikacja do śledzenia zadań może mieć dwa aktorzy: użytkownik i przyjaciel. Użytkownik może utworzyć zadanie i udostępnić zadanie znajomemu. W takim przypadku utworzenie zadania i udostępnienie zadania to dwa odrębne przypadki użycia, które w połączeniu z aktorami będą informować o ekranach potrzebnych do skompilowania, a także o tym, jakie jednostki biznesowe i logika będą musiały zostać opracowane.

Po przechwyceniu odpowiedniej liczby przypadków użycia i aktorów znacznie łatwiej jest rozpocząć projektowanie aplikacji. Następnie programowanie może skupić się na sposobie tworzenia aplikacji, a nie na tym, co ma robić aplikacja.

Projektowanie aplikacji mobilnych

Po określeniu funkcji i funkcjonalności aplikacji następnym krokiem jest próba rozwiązania środowiska użytkownika lub środowiska użytkownika.

Projekt środowiska użytkownika

Środowisko użytkownika jest zwykle wykonywane za pomocą szkieletów lub makiety przy użyciu jednego z wielu zestawów narzędzi do projektowania. Makiety środowiska użytkownika umożliwiają projektowanie środowiska użytkownika bez konieczności martwienia się o rzeczywisty projekt interfejsu użytkownika:

Podczas tworzenia makiety środowiska użytkownika ważne jest, aby wziąć pod uwagę wytyczne dotyczące interfejsu dla różnych platform docelowych przez aplikację. Aplikacja powinna "czuć się w domu" na każdej platformie. Oficjalne wytyczne projektowe dla każdej platformy to:

Na przykład każda aplikacja ma metaforę przełączania między sekcjami w aplikacji. System iOS używa paska tabulatora w dolnej części ekranu, system Android używa paska tabulatora w górnej części ekranu, a platforma UWP używa widoku przestawnego lub karty .

Ponadto sam sprzęt dyktuje również decyzje dotyczące środowiska użytkownika. Na przykład urządzenia z systemem iOS nie mają fizycznego przycisku wstecz i dlatego wprowadzono metaforę kontrolera nawigacji:

Ponadto czynnik form wpływa również na decyzje dotyczące środowiska użytkownika. Tablet ma znacznie więcej nieruchomości, a więc może wyświetlać więcej informacji. Często to, co wymaga wielu ekranów na telefonie, jest skompresowane do jednego dla tabletu:

A ze względu na niezliczone czynniki formy tam, często istnieją czynniki formy średniej wielkości (gdzieś między telefonem a tabletem), które mogą również chcieć kierować.

Projekt interfejsu użytkownika

Po określeniu środowiska użytkownika następnym krokiem jest utworzenie projektu interfejsu użytkownika. Podczas gdy środowisko użytkownika jest zwykle tylko czarno-białe makiety, faza projektowania interfejsu użytkownika to miejsce, w którym są wprowadzane kolory, grafika itp., są wprowadzane i finalizowane. Poświęcanie czasu na dobry projekt interfejsu użytkownika jest ważne i ogólnie rzecz biorąc, najpopularniejsze aplikacje mają profesjonalny projekt.

Podobnie jak w przypadku środowiska użytkownika, ważne jest, aby zrozumieć, że każda platforma ma własny język projektowania, więc dobrze zaprojektowana aplikacja może nadal wyglądać inaczej na każdej platformie:

Opracowywanie zawartości

Faza rozwoju zwykle rozpoczyna się bardzo wcześnie. W rzeczywistości, gdy pomysł ma pewne nasycenie w fazie koncepcyjnej/inspiracji, często opracowywany jest działający prototyp, który weryfikuje funkcjonalność, założenia i pomaga w zrozumieniu zakresu pracy.

W pozostałej części samouczków skupimy się głównie na fazie programowania.

Stabilizacja

Stabilizacja to proces wypracowania usterek w aplikacji. Nie tylko z punktu widzenia funkcjonalnego, np. "Ulega awarii, gdy kliknę ten przycisk", ale także użyteczność i wydajność. Najlepiej jest rozpocząć stabilizację bardzo wcześnie w procesie programowania, aby korekty kursu mogły wystąpić, zanim staną się kosztowne. Zazwyczaj aplikacje przechodzą na etapy Prototyp, Alfa, Beta i Release Candidate . Różne osoby definiują je inaczej, ale zazwyczaj są zgodne z następującym wzorcem:

Prototyp — aplikacja jest nadal w fazie weryfikacji koncepcji i działa tylko podstawowe funkcje lub konkretne części aplikacji. Główne usterki są obecne. Alpha — podstawowa funkcjonalność jest ogólnie kompletna (skompilowana, ale nie w pełni przetestowana). Główne usterki są nadal obecne, funkcje outlying mogą nadal nie być obecne. Beta — większość funkcji jest teraz kompletna i miała co najmniej testy lekkie i naprawianie usterek. Nadal mogą występować poważne znane problemy. Release Candidate — wszystkie funkcje są kompletne i testowane. Zakaz nowych usterek, aplikacja jest kandydatem do wydania na dziko.

Nigdy nie jest zbyt wcześnie, aby rozpocząć testowanie aplikacji. Jeśli na przykład w etapie prototypu zostanie znaleziony poważny problem, środowisko użytkownika aplikacji może być nadal modyfikowane, aby go obsłużyć. Jeśli problem z wydajnością zostanie znaleziony na etapie alfa, wystarczy zmodyfikować architekturę przed utworzeniem dużej ilości kodu na podstawie fałszywych założeń.

Zazwyczaj w miarę jak aplikacja przechodzi dalej w cyklu życia, jest otwarta dla większej liczby osób, aby wypróbować ją, przetestować, przekazać opinię itp. Na przykład prototypowe aplikacje mogą być wyświetlane lub udostępniane kluczowym uczestnikom projektu, natomiast aplikacje kandydatów do wydania mogą być dystrybuowane do klientów, którzy rejestrują się w celu uzyskania wczesnego dostępu.

W przypadku wczesnego testowania i wdrażania na stosunkowo niewielu urządzeniach zwykle wdrażanie z maszyny deweloperskich jest wystarczające. Jednak w miarę rozszerzania publiczności może to szybko stać się uciążliwe. W związku z tym istnieje wiele opcji wdrażania testowego, które ułatwiają ten proces, umożliwiając zapraszanie osób do puli testowej, kompilacje wydania w Internecie i udostępniają narzędzia, które umożliwiają przesyłanie opinii użytkowników.

Do testowania i wdrażania można używać usługi App Center do ciągłego kompilowania, testowania, wydawania i monitorowania aplikacji.

Dystrybucja

Gdy aplikacja zostanie ustabilizowana, nadszedł czas, aby wyjść na wolność. Istnieje wiele różnych opcji dystrybucji, w zależności od platformy.

iOS

Rozszerzenia Xamarin.iOS i Objective-C aplikacje są dystrybuowane w dokładnie taki sam sposób:

App Store firmy Apple — App Store firmy Apple to globalnie dostępne repozytorium aplikacji online wbudowane w system Mac OS X za pośrednictwem programu iTunes. Jest to zdecydowanie najbardziej popularna metoda dystrybucji dla aplikacji i umożliwia deweloperom wprowadzanie na rynek i rozpowszechnianie aplikacji online przy bardzo niewielkim nakładzie pracy. Wdrażanie wewnętrzne — wdrożenie In-House jest przeznaczone dla wewnętrznej dystrybucji aplikacji firmowych, które nie są dostępne publicznie za pośrednictwem App Store. Wdrożenie ad hoc — wdrożenie ad hoc jest przeznaczone głównie do programowania i testowania i umożliwia wdrażanie na ograniczonej liczbie prawidłowo aprowidowanych urządzeń. Wdrożenie na urządzeniu za pośrednictwem środowiska Xcode lub Visual Studio dla komputerów Mac jest nazywane wdrożeniem ad hoc.

Android

Wszystkie aplikacje systemu Android muszą być podpisane przed dystrybucją. Deweloperzy podpisują swoje aplikacje przy użyciu własnego certyfikatu chronionego przez klucz prywatny. Ten certyfikat może zapewnić łańcuch autentyczności, który wiąże dewelopera aplikacji z aplikacjami utworzonymi i wydanymi przez dewelopera. Należy zauważyć, że podczas gdy certyfikat dewelopera dla systemu Android może być podpisany przez uznany urząd certyfikacji, większość deweloperów nie decyduje się na korzystanie z tych usług i podpisywać własne certyfikaty. Głównym celem certyfikatów jest rozróżnienie między różnymi deweloperami i aplikacjami. System Android używa tych informacji w celu ułatwienia wymuszania delegowania uprawnień między aplikacjami i składnikami działającymi w systemie operacyjnym Android.

W przeciwieństwie do innych popularnych platform mobilnych system Android ma bardzo otwarte podejście do dystrybucji aplikacji. Urządzenia nie są zablokowane w jednym zatwierdzonym sklepie z aplikacjami. Zamiast tego każdy może utworzyć sklep z aplikacjami, a większość telefonów z systemem Android zezwala na instalowanie aplikacji ze sklepów innych firm.

Umożliwia to deweloperom potencjalnie większy jeszcze bardziej złożony kanał dystrybucji dla swoich aplikacji. Google Play to oficjalny sklep z aplikacjami Google, ale istnieje wiele innych. Oto kilka popularnych:

Platforma UWP

Aplikacje platformy UNIWERSALNEJ systemu Windows są dystrybuowane do użytkowników za pośrednictwem Microsoft Store. Deweloperzy przesyłają swoje aplikacje do zatwierdzenia, po czym pojawiają się w Sklepie. Aby uzyskać więcej informacji na temat publikowania aplikacji Windows, zobacz dokumentację publikowania platformy UWP.

Zagadnienia dotyczące tworzenia aplikacji mobilnych

Podczas tworzenia aplikacji mobilnych nie różni się zasadniczo od tradycyjnego tworzenia aplikacji internetowych/klasycznych pod względem procesu lub architektury, należy pamiętać o pewnych zagadnieniach.

Typowe zagadnienia

Wielozadaniowość

Istnieją dwa istotne wyzwania związane z wielozadaniowością (posiadanie wielu aplikacji działających jednocześnie) na urządzeniu przenośnym. Po pierwsze, biorąc pod uwagę ograniczoną nieruchomość ekranu, trudno jest wyświetlić wiele aplikacji jednocześnie. W związku z tym na urządzeniach przenośnych tylko jedna aplikacja może znajdować się na pierwszym planie jednocześnie. Po drugie, otwarcie wielu aplikacji i wykonywanie zadań może szybko wykorzystać zasilanie baterii.

Każda platforma obsługuje różne zadania wielozadaniowe, co zajmiemy się nieco.

Faktor

Urządzenia przenośne zazwyczaj należą do dwóch kategorii, telefonów i tabletów, z kilkoma urządzeniami krzyżowymi między nimi. Opracowywanie dla tych czynników jest ogólnie bardzo podobne, jednak projektowanie aplikacji dla nich może być bardzo różne. Telefony mają bardzo ograniczoną przestrzeń na ekranie, a tablety, podczas gdy większe, są nadal urządzeniami przenośnymi z mniejszą ilością miejsca na ekranie niż nawet większość laptopów. W związku z tym kontrolki interfejsu użytkownika platformy mobilnej zostały zaprojektowane specjalnie tak, aby były skuteczne w mniejszych czynnikach formularzy.

Fragmentacja urządzenia i systemu operacyjnego

Ważne jest, aby wziąć pod uwagę różne urządzenia w całym cyklu życia tworzenia oprogramowania:

Koncepcyjnie i planowanie — należy pamiętać, że sprzęt i funkcje różnią się w zależności od urządzenia, aplikacja, która opiera się na niektórych funkcjach, może nie działać prawidłowo na niektórych urządzeniach. Na przykład nie wszystkie urządzenia mają kamery, więc jeśli tworzysz aplikację do obsługi komunikatów wideo, niektóre urządzenia mogą być w stanie odtwarzać filmy wideo, ale nie brać ich. Projektowanie — podczas projektowania środowiska użytkownika aplikacji zwróć uwagę na różne współczynniki i rozmiary ekranu na różnych urządzeniach. Ponadto podczas projektowania interfejsu użytkownika aplikacji należy rozważyć różne rozdzielczości ekranu. Programowanie — w przypadku korzystania z funkcji z kodu obecność tej funkcji powinna być zawsze testowana w pierwszej kolejności. Na przykład przed użyciem funkcji urządzenia, takiej jak aparat fotograficzny, należy zawsze najpierw wysłać zapytanie do systemu operacyjnego o obecność tej funkcji. Następnie podczas inicjowania funkcji/urządzenia upewnij się, że zażądaj obecnie obsługi z systemu operacyjnego o tym urządzeniu, a następnie użyj tych ustawień konfiguracji. Testowanie — bardzo ważne jest wczesne i często testowanie aplikacji na rzeczywistych urządzeniach. Nawet urządzenia z tą samą specyfikacją sprzętu mogą się znacznie różnić w ich zachowaniu.

Ograniczone zasoby

Urządzenia przenośne stają się coraz bardziej wydajne przez cały czas, ale nadal są urządzeniami przenośnymi, które mają ograniczone możliwości w porównaniu z komputerami stacjonarnymi lub notesami. Na przykład deweloperzy aplikacji klasycznych zazwyczaj nie martwią się o pojemności pamięci; Są one używane zarówno do posiadania pamięci fizycznej, jak i wirtualnej w dużych ilościach, podczas gdy na urządzeniach przenośnych można szybko wykorzystać całą dostępną pamięć tylko przez załadowanie kilku obrazów wysokiej jakości.

Ponadto aplikacje intensywnie korzystające z procesora, takie jak gry lub rozpoznawanie tekstu, mogą naprawdę podatkować procesor mobilny i niekorzystnie wpływać na wydajność urządzenia.

Ze względu na takie zagadnienia ważne jest, aby inteligentnie kodować i wdrażać wczesne i często na rzeczywistych urządzeniach w celu zweryfikowania czasu odpowiedzi.

Zagadnienia dotyczące systemu iOS

Wielozadaniowość

Wielozadaniowość jest bardzo ściśle kontrolowana w systemie iOS i istnieje wiele reguł i zachowań, z którymi aplikacja musi być zgodna, gdy inna aplikacja pojawi się na pierwszym planie. W przeciwnym razie aplikacja zostanie zakończona przez system iOS.

Zasoby specyficzne dla urządzenia

W ramach określonego współczynnika formy sprzęt może się znacznie różnić między różnymi modelami. Na przykład niektóre urządzenia mają kamerę z tyłu, niektóre mają również przedni aparat fotograficzny, a niektóre nie mają.

Niektóre starsze urządzenia (iPhone 3G i starsze) nawet nie zezwalają na wielozadaniowość.

Ze względu na te różnice między modelami urządzeń ważne jest sprawdzenie obecności funkcji przed podjęciem próby jej użycia.

Ograniczenia specyficzne dla systemu operacyjnego

Aby upewnić się, że aplikacje reagują i zabezpieczają, system iOS wymusza szereg reguł, które aplikacje muszą przestrzegać. Oprócz reguł dotyczących wielozadaniowości istnieje wiele metod zdarzeń, z których aplikacja musi zwrócić w określonym czasie, w przeciwnym razie zostanie zakończona przez system iOS.

Warto również zauważyć, że aplikacje działają w środowisku znanym jako piaskownica, które wymusza ograniczenia zabezpieczeń ograniczające dostęp do aplikacji. Na przykład aplikacja może odczytywać i zapisywać w swoim własnym katalogu, ale jeśli spróbuje zapisać w innym katalogu aplikacji, zostanie ona zakończona.

Zagadnienia dotyczące systemu Android

Wielozadaniowość

Wielozadaniowość w systemie Android ma dwa składniki; pierwszy to cykl życia działania. Każdy ekran w aplikacji systemu Android jest reprezentowany przez działanie i istnieje określony zestaw zdarzeń, które występują, gdy aplikacja jest umieszczona w tle lub pojawia się na pierwszym planie. Aplikacje muszą być zgodne z tym cyklem życia, aby tworzyć dynamiczne, dobrze zachowywane aplikacje. Aby uzyskać więcej informacji, zobacz Przewodnik dotyczący cyklu życia działania .

Drugim składnikiem do wielozadaniowości w systemie Android jest korzystanie z usług. Usługi to długotrwałe procesy, które istnieją niezależnie od aplikacji i są używane do wykonywania procesów, gdy aplikacja znajduje się w tle. Aby uzyskać więcej informacji, zobacz Przewodnik dotyczący tworzenia usług .

Wiele urządzeń i wiele czynników formularzy

Firma Google nie nakłada żadnych limitów, na które urządzenia mogą uruchamiać system operacyjny Android. Ten otwarty paradygmat powoduje, że środowisko produktu wypełnione przez mnóstwo różnych urządzeń z bardzo różnymi urządzeniami, rozdzielczościami ekranu i współczynnikami, funkcjami urządzeń i możliwościami.

Ze względu na skrajną fragmentację urządzeń z systemem Android większość osób wybiera najpopularniejsze urządzenia z 5 lub 6 do projektowania i testowania oraz nadania priorytetów tym urządzeniom.

Zagadnienia dotyczące bezpieczeństwa

Aplikacje w systemie operacyjnym Android są uruchamiane w ramach odrębnej, izolowanej tożsamości z ograniczonymi uprawnieniami. Domyślnie aplikacje mogą wykonywać bardzo mało. Na przykład bez specjalnych uprawnień aplikacja nie może wysłać wiadomości SMS, określić stan telefonu, a nawet uzyskać dostęp do Internetu! Aby uzyskać dostęp do tych funkcji, aplikacje muszą określić w pliku manifestu aplikacji, które mają uprawnienia i kiedy są instalowane; System operacyjny odczytuje te uprawnienia, powiadamia użytkownika, że aplikacja żąda tych uprawnień, a następnie umożliwia użytkownikowi kontynuowanie lub anulowanie instalacji. Jest to niezbędny krok w modelu dystrybucji systemu Android ze względu na otwarty model sklepu z aplikacjami, ponieważ aplikacje nie są nadzorowane w taki sposób, w jaki są dla systemu iOS, na przykład. Listę uprawnień aplikacji można znaleźć w artykule Dotyczącym uprawnień manifestu w dokumentacji systemu Android.

zagadnienia dotyczące Windows

Wielozadaniowość

Wielozadaniowość na platformie UWP ma dwie części: cykl życia stron i aplikacji oraz procesy w tle. Każdy ekran w aplikacji jest wystąpieniem klasy Page, które ma zdarzenia związane z aktywowaniem lub nieaktywnym (ze specjalnymi regułami obsługi stanu nieaktywnego lub jest "nagrobny").

Druga część polega na udostępnianiu agentów w tle do przetwarzania zadań nawet wtedy, gdy aplikacja nie jest uruchomiona na pierwszym planie.

Możliwości urządzenia

Mimo że sprzęt platformy UWP jest dość jednorodny, nadal istnieją składniki, które są opcjonalne i dlatego wymagają specjalnego rozważenia podczas kodowania. Opcjonalne możliwości sprzętowe obejmują aparat, kompas i żyroskop. Istnieje również specjalna klasa małej ilości pamięci (256 MB), która wymaga szczególnej uwagi, lub deweloperzy mogą zrezygnować z obsługi małej ilości pamięci.

Zagadnienia dotyczące bezpieczeństwa

Aby uzyskać informacje na temat ważnych zagadnień dotyczących zabezpieczeń w programie UWP, zapoznaj się z dokumentacją dotyczącą zabezpieczeń .

Podsumowanie

Ten przewodnik przedstawił wprowadzenie do sdLC w odniesieniu do tworzenia aplikacji mobilnych. Wprowadzono ogólne zagadnienia dotyczące tworzenia aplikacji mobilnych i przeanalizowano szereg zagadnień specyficznych dla platformy, takich jak projektowanie, testowanie i wdrażanie.

Następne kroki

Jarosław Kułak
Jarosław Kułak

Leave a Comment