Životní cyklus vývoje mobilního softwaru
Vytváření mobilních aplikací může být stejně snadné jako otevření sady Visual Studio, vytvoření něčeho dohromady, rychlé testování a odeslání do App Storu – to vše se provádí odpoledne. Nebo může jít o velmi náročný proces, který zahrnuje důkladný počáteční návrh, testování použitelnosti, testování kvality na tisících zařízeních, úplný životní cyklus beta verze a následné nasazení mnoha různých způsobů.
V tomto dokumentu si probereme důkladnou úvodní kontrolu vytváření mobilních aplikací, včetně těchto:
- Proces – proces vývoje softwaru se nazývá životní cyklus vývoje softwaru (SDLC). Prozkoumáme všechny fáze SDLC s ohledem na vývoj mobilních aplikací, včetně: Inception, Design, Development, Stabilizace, Deployment a Maintenance.
- Důležité informace – Při vytváření mobilních aplikací je potřeba vzít v úvahu řadu aspektů, zejména na rozdíl od tradičních webových nebo desktopových aplikací. Tyto aspekty prozkoumáme a zjistíme, jak ovlivňují vývoj mobilních zařízení.
Tento dokument je určený k zodpovězení základních otázek týkajících se vývoje mobilních aplikací pro nové a zkušené vývojáře aplikací. Představuje poměrně komplexní přístup k zavedení většiny konceptů, na které narazíte během celého životního cyklu vývoje softwaru (SDLC). Tento dokument ale nemusí být určený pro všechny, pokud vás přinutí začít vytvářet aplikace, doporučujeme přejít dopředu na příručku Úvod do vývoje mobilních aplikací a vrátit se k tomuto dokumentu později.
Životní cyklus softwaru pro vývoj mobilních aplikací
Životní cyklus vývoje mobilních aplikací se z velké části neliší od SDLC pro webové nebo desktopové aplikace. Stejně jako u těch je obvykle 5 hlavních částí procesu:
- Inception – Všechny aplikace začínají nápadem. Tato myšlenka se obvykle upřesňuje na pevný základ pro aplikaci.
- Návrh – Fáze návrhu se skládá z definování uživatelského prostředí (UX) aplikace, jako je obecné rozložení, jak funguje atd., a také změna uživatelského rozhraní na správný návrh uživatelského rozhraní (UI), obvykle pomocí grafického návrháře.
- Vývoj – obvykle nejvíce náročná fáze prostředků, jedná se o skutečnou budovu aplikace.
- Stabilizace – Pokud je vývoj dostatečně daleko, qa obvykle začíná testovat aplikaci a chyby jsou opraveny. Aplikace často přejde do omezené beta fáze, ve které širší cílové skupině uživatelů dává možnost ji používat a poskytovat zpětnou vazbu a informovat o změnách.
- Nasazení
Mnoho z těchto částí se často překrývají, například je běžné, že vývoj probíhá, když je uživatelské rozhraní finalizováno, a může dokonce informovat návrh uživatelského rozhraní. Kromě toho může aplikace přejít do fáze stabilizace ve stejné, jako jsou nové funkce přidány do nové verze.
Kromě toho lze tyto fáze použít v libovolném počtu metodologií SDLC, jako jsou agilní, spirála, vodopád atd.
Každá z těchto fází bude podrobněji vysvětlena v následujících částech.
Vzniku
Všudypřítomnost a úroveň interakce lidí s mobilními zařízeními znamená, že téměř všichni mají představu o mobilní aplikaci. Mobilní zařízení otevírají zcela nový způsob interakce s computingem, webem a dokonce i podnikovou infrastrukturou.
Fáze vzniku se týká definování a upřesnění nápadu pro aplikaci. Pokud chcete vytvořit úspěšnou aplikaci, je důležité položit si některé základní otázky. Tady je několik věcí, které byste měli zvážit před publikováním aplikace v některém z veřejných Obchodů s aplikacemi:
- Konkurenční výhoda – Existují už podobné aplikace? Pokud ano, jak se tato aplikace liší od ostatních?
Pro aplikace, které se budou distribuovat v podniku:
- Integrace infrastruktury – s jakou existující infrastrukturou se bude integrovat nebo rozšířit?
Aplikace by se navíc měly vyhodnotit v kontextu faktoru mobilní formy:
- Hodnota – Jakou hodnotu tato aplikace přináší uživatelům? Jak ji bude používat?
- Formulář/Mobilita – Jak bude tato aplikace fungovat v mobilním provedení? Jak můžu přidat hodnotu pomocí mobilních technologií, jako je povědomí o poloze, kamera atd.?
Pokud chcete pomoct s návrhem funkcí aplikace, může být užitečné definovat aktéry a případy použití. Aktéři jsou role v rámci aplikace a často se jedná o uživatele. Případy použití jsou obvykle akce nebo záměry.
Aplikace pro sledování úkolů může mít například dva aktéry: User a Friend. Uživatel může vytvořit úkol a sdílet úkol s přítelem. V tomto případě vytvoření úkolu a sdílení úkolu jsou dva různé případy použití, které společně s aktéry budou informovat, jaké obrazovky budete muset sestavit, a také jaké obchodní entity a logika bude potřeba vyvíjet.
Po zachycení vhodného počtu případů použití a herců je mnohem jednodušší začít navrhovat aplikaci. Vývoj se pak může soustředit na to, jak vytvořit aplikaci, a ne na to, co je nebo co by měla dělat.
Navrhování mobilních aplikací
Jakmile se určí funkce a funkce aplikace, začne se další krok pokoušet vyřešit uživatelské prostředí nebo uživatelské prostředí.
Návrh uživatelského prostředí
UX se obvykle provádí prostřednictvím drátových modelů nebo mockupů pomocí některé z mnoha designových sad nástrojů. UX mockupy umožňují návrh uživatelského rozhraní, aniž by se museli starat o skutečný návrh uživatelského rozhraní:
Při vytváření mockupů uživatelského rozhraní je důležité zvážit pokyny pro rozhraní pro různé platformy, na které bude aplikace cílit. Aplikace by se měla na každé platformě cítit jako doma. Oficiální pokyny k návrhu pro každou platformu jsou:
- Apple - Human Interface Guidelines
- Android – pokyny pro návrh
- UPW – Základy návrhu UPW
Každá aplikace má například metaforu pro přepínání mezi oddíly v aplikaci. iOS používá panel karet v dolní části obrazovky, Android používá panel karet v horní části obrazovky a UPW používá zobrazení kontingenční tabulky nebo karty .
Kromě toho samotný hardware také určuje rozhodnutí o uživatelském rozhraní. Například zařízení s iOSem nemají žádné fyzické tlačítko zpět , a proto zavádí metaforu navigačního kontroleru:
Kromě toho form factor ovlivňuje také rozhodování o uživatelském rozhraní. Tablet má mnohem více nemovitostí, takže může zobrazit více informací. Často je potřeba na telefonu komprimovat několik obrazovek pro tablet:
A vzhledem k množství formových faktorů tam jsou často střední tvarové faktory (někde mezi telefonem a tabletem), které můžete také chtít cílit.
Návrh uživatelského rozhraní
Po určení uživatelského rozhraní je dalším krokem vytvoření návrhu uživatelského rozhraní. I když uživatelské rozhraní je obvykle jenom černobílé mockupy, fáze návrhu uživatelského rozhraní je místo, kde se zavádějí a finalizují barvy, grafika atd.. Strávení času na dobrém návrhu uživatelského rozhraní je důležité a obecně platí, že nejoblíbenější aplikace mají profesionální návrh.
Stejně jako u UX je důležité pochopit, že každá platforma má vlastní jazyk návrhu, takže dobře navržená aplikace může na každé platformě vypadat jinak:
Vývoj
Fáze vývoje obvykle začíná velmi brzy. Ve skutečnosti, jakmile má nápad nějaký nápad v konceptuální/inspirační fázi, často se vyvíjí funkční prototyp, který ověřuje funkčnost, předpoklady a pomáhá porozumět rozsahu práce.
Ve zbývajících kurzech se zaměříme převážně na fázi vývoje.
Stabilizace
Stabilizace je proces, který řeší chyby ve vaší aplikaci. Nejen z funkčního hlediska, například: "Při kliknutí na toto tlačítko dojde k chybovému ukončení", ale také použitelnost a výkon. Nejlepší je začít stabilizaci velmi brzy v rámci procesu vývoje, aby se opravy kurzů mohly objevit dříve, než se stanou nákladným. Aplikace obvykle procházejí fázemi Prototyp, Alfa, Beta a Release Candidate . Různí lidé je definují odlišně, ale obvykle se řídí následujícím vzorem:
- Prototyp – Aplikace je stále ve fázi testování konceptu a funguje jenom základní funkce nebo konkrétní části aplikace. Existují hlavní chyby.
- Alfa – Základní funkce jsou obecně kompletní (sestavené, ale ne plně otestované). Stále existují hlavní chyby, ale funkce odsunutí nemusí být stále k dispozici.
- Beta – Většina funkcí je nyní dokončena a měla alespoň lehké testování a opravu chyb. Stále můžou být přítomny hlavní známé problémy.
- Release Candidate – Všechny funkce jsou dokončené a otestované. Zameřování nových chyb je aplikace kandidátem na vydání do divokého prostředí.
Nikdy není příliš brzy začít testovat aplikaci. Pokud se například v prototypové fázi najde hlavní problém, je možné uživatelské rozhraní aplikace upravit tak, aby ji vyhovovalo. Pokud se v alfa fázi najde problém s výkonem, je dostatečně brzo k úpravě architektury před tím, než je na základě nesprávných předpokladů postaveno velké množství kódu.
Při dalším pohybu aplikace v životním cyklu se obvykle otevírá více lidem, aby si ji vyzkoušeli, otestovali, poskytli zpětnou vazbu atd. Prototypové aplikace se například můžou zobrazovat nebo zpřístupnit jenom klíčovým zúčastněným stranám, zatímco kandidátské aplikace vydané verze se můžou distribuovat zákazníkům, kteří se zaregistrují k dřívějšímu přístupu.
Pro včasné testování a nasazení do relativně málo zařízení obvykle stačí nasazení přímo z vývojového počítače. Jak se ale cílová skupina rozšiřuje, může se to rychle stát těžkopádným. Existuje řada možností testovacího nasazení, které usnadňují tento proces tím, že vám umožní pozvat lidi do testovacího fondu, sestavení vydaných verzí přes web a poskytnout nástroje, které umožňují zpětnou vazbu uživatelů.
K testování a nasazení můžete pomocí App Center průběžně sestavovat, testovat, vydávat a monitorovat aplikace.
Distribuce
Jakmile je aplikace stabilizovaná, je čas ji dostat do divoké přírody. V závislosti na platformě existuje řada různých možností distribuce.
iOS
Xamarin.iOS a Objective-C aplikace se distribuují úplně stejným způsobem:
- Apple App Store – App Store společnosti Apple je globálně dostupné online úložiště aplikací, které je integrované do Mac OS X prostřednictvím iTunes. Je to zdaleka nejoblíbenější distribuční metoda pro aplikace a umožňuje vývojářům nabízet a distribuovat své aplikace online s velmi malým úsilím.
- Interní nasazení – Interní nasazení je určené pro interní distribuci podnikových aplikací, které nejsou veřejně dostupné prostřednictvím App Storu.
- Ad-Hoc nasazení – Ad hoc nasazení je určené především pro vývoj a testování a umožňuje nasazení na omezený počet správně zřízených zařízení. Když nasadíte do zařízení prostřednictvím Xcode nebo Visual Studio pro Mac, označuje se jako ad hoc nasazení.
Android
Všechny aplikace pro Android musí být před distribucí podepsané. Vývojáři podepisují své aplikace pomocí vlastního certifikátu chráněného privátním klíčem. Tento certifikát může poskytnout řetězec pravosti, který spojuje vývojáře aplikací s aplikacemi, které vývojář vytvořil a vydal. Je třeba poznamenat, že zatímco vývojový certifikát pro Android může podepsat rozpoznaná certifikační autorita, většina vývojářů se k těmto službám nepřihlásí a certifikáty podepisuje svým držitelem. Hlavním účelem certifikátů je rozlišovat mezi různými vývojáři a aplikacemi. Android tyto informace používá k tomu, aby pomohl vynucovat delegování oprávnění mezi aplikacemi a komponentami spuštěnými v operačním systému Android.
Na rozdíl od jiných oblíbených mobilních platforem používá Android velmi otevřený přístup k distribuci aplikací. Zařízení nejsou uzamčená do jediného schváleného obchodu s aplikacemi. Místo toho může kdokoli vytvořit obchod s aplikacemi a většina telefonů s Androidem umožňuje instalaci aplikací z těchto obchodů třetích stran.
To umožňuje vývojářům potenciálně větší, ale složitější distribuční kanál pro své aplikace. Google Play je oficiální obchod s aplikacemi Google, ale existuje mnoho dalších. Mezi oblíbené patří:
UWP
Aplikace pro UPW se distribuují uživatelům prostřednictvím Microsoft Storu. Vývojáři odesílají své aplikace ke schválení, po kterých se zobrazí ve Storu. Další informace o publikování aplikací pro Windows najdete v dokumentaci k publikování upW .
Aspekty vývoje mobilních aplikací
Vývoj mobilních aplikací se v podstatě neliší od tradičního vývoje webových a desktopových aplikací z hlediska procesu nebo architektury, ale je potřeba vzít v úvahu některé aspekty.
Běžné aspekty
Multitasking
Existují dva významné výzvy k multitaskingu (s více aplikacemi běžícími najednou) na mobilním zařízení. Za prvé, vzhledem k omezené obrazovce nemovitosti, je obtížné zobrazit více aplikací současně. Proto na mobilních zařízeních může být na popředí jenom jedna aplikace najednou. Za druhé, když máte více aplikací otevřených a provádějících úlohy, může rychle využívat napájení baterie.
Každá platforma zpracovává multitasking jinak, což prozkoumáme trochu.
Provedení faktoru
Mobilní zařízení obecně spadají do dvou kategorií, telefonů a tabletů, mezi kterými je několik křížových zařízení. Vývoj pro tyto faktory formulářů je obecně velmi podobný, ale navrhování aplikací pro ně může být velmi odlišné. Telefon mají velmi omezený prostor na obrazovce a tablety, zatímco větší, jsou stále mobilní zařízení s menším místem na obrazovce než většina notebooků. Z tohoto důvodu byly ovládací prvky uživatelského rozhraní mobilní platformy navrženy speciálně tak, aby byly efektivní na menších formách.
Fragmentace zařízení a operačního systému
Je důležité vzít v úvahu různá zařízení v celém životním cyklu vývoje softwaru:
- Koncepční a plánování – Mějte na paměti, že hardware a funkce se budou lišit od zařízení po zařízení, aplikace, která spoléhá na určité funkce, nemusí na určitých zařízeních správně fungovat. Například ne všechna zařízení mají kamery, takže pokud vytváříte aplikaci pro zasílání video zpráv, některá zařízení můžou přehrávat videa, ale ne vzít je.
- Návrh – Při navrhování uživatelského prostředí aplikace věnujte pozornost různým poměrům a velikostem obrazovky na různých zařízeních. Kromě toho při návrhu uživatelského rozhraní (UI) aplikace je třeba zvážit různá rozlišení obrazovky.
- Vývoj – Při použití funkce z kódu by měla být přítomnost této funkce vždy testována jako první. Před použitím funkce zařízení, například fotoaparátu, se například nejprve dotazujte operačního systému na přítomnost této funkce. Když pak inicializujete funkci nebo zařízení, ujistěte se, že o tomto zařízení v současné době podporuje operační systém, a pak použijte tato nastavení konfigurace.
- Testování – Je neuvěřitelně důležité otestovat aplikaci včas a často na skutečných zařízeních. Dokonce i zařízení se stejnými specifikacemi hardwaru se mohou v jejich chování značně lišit.
Omezené prostředky
Mobilní zařízení jsou stále výkonnější a výkonnější, ale jsou stále mobilní zařízení s omezenými možnostmi oproti stolním nebo poznámkovým počítačům. Vývojáři pro stolní počítače se například obecně nestará o kapacity paměti; Používají se k tomu, aby měla fyzickou i virtuální paměť v objemech, zatímco na mobilních zařízeních můžete rychle využívat veškerou dostupnou paměť jen načtením několika vysoce kvalitních obrázků.
Kromě toho můžou aplikace náročné na procesor, jako jsou hry nebo rozpoznávání textu, skutečně zdanit mobilní procesor a nepříznivě ovlivnit výkon zařízení.
Vzhledem k těmto aspektům je důležité chytře zakódovat a nasazovat včas a často do skutečných zařízení, aby se ověřila rychlost odezvy.
Důležité informace o iOSu
Multitasking
Multitasking je v iOSu velmi úzce řízen a existuje řada pravidel a chování, které vaše aplikace musí splňovat, když se jiná aplikace dostane do popředí, jinak bude aplikace ukončena iOSem.
Prostředky specifické pro zařízení
V rámci konkrétního faktoru formuláře se hardware může výrazně lišit mezi různými modely. Některá zařízení mají například zadní kameru, některá mají také přední kameru a některá nemají žádnou.
Některá starší zařízení (i Telefon 3G a starší) neumožňují ani multitasking.
Vzhledem k těmto rozdílům mezi modely zařízení je důležité před pokusem o jeho použití zkontrolovat přítomnost funkce.
Omezení specifická pro operační systém
Aby bylo zajištěno, že aplikace reagují a jsou zabezpečené, vynucuje iOS řadu pravidel, která musí aplikace dodržovat. Kromě pravidel týkajících se multitaskingu existuje řada metod událostí, ze kterých se vaše aplikace musí v určité době vrátit, jinak se ukončí iOS.
Stojí za zmínku, že aplikace běží v prostředí, které se označuje jako sandbox, což je prostředí, které vynucuje omezení zabezpečení, která omezují, k čemu má vaše aplikace přístup. Aplikace může například číst a zapisovat do vlastního adresáře, ale pokud se pokusí zapisovat do jiného adresáře aplikace, ukončí se.
Důležité informace o Androidu
Multitasking
Multitasking v Androidu má dvě komponenty; první je životní cyklus aktivity. Každá obrazovka v aplikaci pro Android je reprezentována aktivitou a existuje určitá sada událostí, ke kterým dochází, když je aplikace umístěná na pozadí nebo přichází do popředí. Aplikace musí dodržovat tento životní cyklus, aby vytvářely responzivní a dobře se chované aplikace. Další informace najdete v průvodci životním cyklem aktivit.
Druhou součástí multitaskingu v Androidu je použití služeb. Služby jsou dlouhotrvající procesy, které existují nezávisle na aplikaci a používají se ke spouštění procesů v době, kdy je aplikace na pozadí. Další informace najdete v průvodci vytvářením služeb .
Mnoho zařízení a mnoho formových faktorů
Google neukládá žádná omezení, na kterých zařízeních můžou běžet operační systém Android. Výsledkem tohoto otevřeného paradigmatu je produktové prostředí naplněné celou řadu různých zařízení s velmi odlišným hardwarem, rozlišeními a poměry obrazovky, funkcemi zařízení a možnostmi.
Vzhledem k extrémní fragmentaci zařízení s Androidem si většina lidí zvolí nejoblíbenějších 5 nebo 6 zařízení, která budou navrhovat a testovat a určovat jejich prioritu.
Bezpečnostní aspekty
Aplikace v operačním systému Android běží pod odlišnou izolovanou identitou s omezenými oprávněními. Ve výchozím nastavení můžou aplikace dělat velmi málo. Například bez zvláštních oprávnění nemůže aplikace odeslat textovou zprávu, určit stav telefonu nebo dokonce získat přístup k internetu! Pro přístup k těmto funkcím musí aplikace zadat v souboru manifestu aplikace, která mají oprávnění a kdy se mají instalovat; operační systém tato oprávnění přečte, upozorní uživatele, že aplikace požaduje tato oprávnění, a pak uživateli umožní pokračovat nebo zrušit instalaci. Jedná se o zásadní krok v distribučním modelu Androidu, protože otevřený model obchodu s aplikacemi, protože aplikace nejsou kurátorované způsobem, jakým jsou například pro iOS. Seznam oprávnění aplikace najdete v referenčním článku o oprávněních manifestu v dokumentaci k Androidu.
Důležité informace o Windows
Multitasking
Multitasking v UPW má dvě části: životní cyklus pro stránky a aplikace a procesy na pozadí. Každá obrazovka v aplikaci je instance třídy Page, která má události spojené s aktivní nebo neaktivní (se zvláštními pravidly pro zpracování neaktivního stavu nebo "náhrobky").
Druhá část poskytuje agenty na pozadí pro zpracování úloh, i když aplikace není spuštěná v popředí.
Možnosti zařízení
I když hardware UPW je poměrně homogenní, stále existují komponenty, které jsou volitelné, a proto vyžadují zvláštní zvážení při psaní kódu. Volitelné hardwarové možnosti zahrnují kameru, kompas a gyroskop. K dispozici je také speciální třída nedostatku paměti (256 MB), která vyžaduje zvláštní pozornost, nebo vývojáři můžou vyjádřit nesouhlas s nedostatkem paměti.
Bezpečnostní aspekty
Informace o důležitých aspektech zabezpečení v UPW najdete v dokumentaci zabezpečení .
Shrnutí
Tato příručka poskytla úvod do SDLC, protože souvisí s vývojem mobilních zařízení. Zavedla obecné aspekty vytváření mobilních aplikací a prozkoumala řadu aspektů specifických pro platformu, včetně návrhu, testování a nasazení.