Životní cyklus vývoje mobilního softwaru

vytváření mobilních aplikací může být stejně snadné jako otevírání Visual Studio, vyvolávání a provádění rychlého testování a odesílání do App storu – vše hotovo. Nebo se může jednat o extrémně zahrnutý proces, který zahrnuje přísný návrh, testování použitelnosti, testování kvality na tisících zařízení, úplný životní cyklus beta verzí a následné nasazení mnoha různých způsobů.

V tomto dokumentu budeme absolvovat důkladné úvodní testy vytváření mobilních aplikací, včetně:

  1. Proces – proces vývoje softwaru se nazývá životní cyklus vývoje softwaru (softwaru). Podíváme se na všechny fáze softwaru s ohledem na vývoj mobilních aplikací, jako je například zahájení, návrh, vývoj, stabilizace, nasazení a údržba.
  2. Důležité upozornění – při sestavování mobilních aplikací, zejména na rozdíl od tradičních webových nebo desktopových aplikací, je třeba zvážit několik důležitých informací. Tyto předpoklady a způsob, jakým ovlivňují vývoj pro mobilní zařízení, prověříme.

Tento dokument je určený k zodpovězení základních otázek týkajících se vývoje mobilních aplikací, které jsou pro nové a zkušené vývojáře aplikací stejné. Přináší poměrně ucelený přístup k zavedení většiny konceptů, ke kterým budete přibíhat během celého životního cyklu vývoje softwaru (softwaru). Tento dokument ale nemusí být pro všechny, pokud jste itchingi, abyste mohli pouze začít sestavovat aplikace, doporučujeme přejít na průvodce vývojem mobilních aplikací a pak ho později vrátit do tohoto dokumentu.

Životní cyklus vývojového softwaru pro mobilní zařízení

Životní cyklus vývoje pro mobilní zařízení není převážně jiný než softwaru pro webové nebo desktopové aplikace. Stejně jako u těchto verzí je obvykle pět hlavních částí tohoto procesu:

  1. Čas zprovoznění – všechny aplikace začínají nápadem. Tato nápad je obvykle v rámci aplikace zabývající základními.
  2. Návrh – fáze návrhu se skládá z definice uživatelského prostředí aplikace (UX), jako je například hlavní rozložení, jak funguje atd., a také přepnutí uživatelského rozhraní do správného návrhu uživatelského rozhraní (UI), obvykle s využitím grafického návrháře.
  3. Vývoj – většinou je to většina prostředků náročných na prostředky, jedná se o skutečnou sestavování aplikace.
  4. Stabilizace – Pokud je vývoj dostatečně daleko v nástroji, služba QA obvykle začíná testovat aplikaci a chyby se opravily. Často dojde k tomu, že aplikace přejde do fáze omezené beta verze, ve které má širší skupina uživatelů možnost ji použít a poskytnout zpětnou vazbu a informovat o změnách.
  5. Nasazení

Často mnoho z těchto částí je překryto, například je běžné pro vývoj v průběhu finalizace uživatelského rozhraní a může dokonce informovat o návrhu uživatelského rozhraní. Kromě toho může být aplikace do stabilizační fáze stejná, než se nové funkce přidávají do nové verze.

Kromě toho se tyto fáze dají použít v jakémkoli počtu softwaru metodologií, jako je 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řítomnosti výrazně a úroveň interakce uživatelů s mobilními zařízeními znamená, že téměř všichni mají nápad na mobilní aplikaci. Mobilní zařízení otevírají zcela nový způsob práce s výpočetními, webovými a i podnikovými infrastrukturami.

Fáze zahájení je vše o definování a zpřesnění nápadu pro aplikaci. Pokud chcete vytvořit úspěšnou aplikaci, je důležité položit některé základní otázky. Tady je několik věcí, které je potřeba zvážit před publikováním aplikace v jednom z veřejných obchodů s aplikacemi:

  • Konkurenční výhoda – existují podobné aplikace, které už jsou k dispozici? Pokud ano, jak se tato aplikace odlišuje od ostatních?

Pro aplikace, které budou distribuovány v Enterprise:

  • Integrace infrastruktury – jaká stávající infrastruktura bude integrovaná s nebo rozšířena?

Kromě toho by se aplikace měly vyhodnocovat v kontextu mobilního formuláře:

  • Hodnota – jaká hodnota Tato aplikace přinese uživatele? Jak ho budou používat?
  • Forma/mobilita – jak bude tato aplikace fungovat v mobilním faktoru? Jak můžu přidat hodnotu pomocí mobilních technologií, jako je například povědomí o poloze, fotoaparát atd.?

Abychom vám pomohli navrhnout funkčnost aplikace, může být užitečné definovat objekty actor a případy použití. Objekty actor jsou rolemi v rámci aplikace a často se jedná o uživatele. Případy použití jsou obvykle akce nebo záměry.

Například aplikace pro sledování úkolů může mít dva objekty actor: User a Friend. Uživatel může vytvořit úlohua sdílet úkol s přáteli. V takovém případě je vytvoření úlohy a sdílení úkolu dva odlišné případy použití, které se v kombinaci s objekty actor budou informovat o obrazovkách, které budete potřebovat sestavit, a také o tom, jaké obchodní entity a logiku bude nutné vyvinout.

Po zachycení vhodného počtu případů použití a aktérů je mnohem snazší návrh aplikace začít navrhovat. Vývoj se pak může soustředit na to, jak aplikaci vytvořit, a ne na to, co je aplikace nebo by mělo dělat.

Navrhování mobilních aplikací

Po určení funkcí a funkcí aplikace se další krok začne snažit vyřešit uživatelské prostředí nebo uživatelské rozhraní.

Návrh uživatelského rozhraní

UŽIVATELSKÉ rozhraní se obvykle provádí prostřednictvím drátěných modelů nebo mockups pomocí jedné z mnoha různých nástrojů pro návrh. UX mockups umožňují, aby bylo uživatelské prostředí navržené bez obav o skutečný návrh uživatelského rozhraní:

UŽIVATELSKÉ rozhraní se obvykle provádí prostřednictvím drátěných modelů nebo mockups pomocí nástrojů, jako je Balsamiq.

Při vytváření mockups UX je důležité vzít v úvahu pravidla rozhraní pro různé platformy, na které bude aplikace cílit. Aplikace by měla být v jednotlivých platformách "cítit se doma". Oficiální pokyny pro návrh pro jednotlivé platformy:

  1. ApplePokyny pro lidské rozhraní
  2. Androidpokyny pro návrh
  3. UWPZáklady návrhu pro UWP

Každá aplikace má například metafora pro přepínání mezi oddíly v aplikaci. iOS používá v dolní části obrazovky panel karet, Android používá v horní části obrazovky pruh karet a UWP používá zobrazení Pivot nebo TAB .

Kromě toho samotný hardware také určuje rozhodování o uživatelském prostředí. Například zařízení se systémem iOS nemají žádné fyzické tlačítko zpět , takže metafora k navigačnímu kontroleru:

zařízení se systémem iOS nemají žádné fyzické tlačítko zpět, a proto zaveďte metaforau navigačního kontroleru.

Kromě toho ovlivňuje také rozhodování o uživatelském prostředí. Tablet má mnohem větší realitu, takže může zobrazit další informace. Často se v jednom počítači komprimuje více obrazovek na telefonu:

Často se pro tablety komprimují více obrazovek na telefonu.

A v důsledku toho, že existují nesčetnýché faktory, často existují střední faktory velikosti (někde mezi telefonem a tabletem), na které může být vhodné cílit.

Návrh uživatelského rozhraní

Po určení uživatelského prostředí je dalším krokem vytvoření návrhu uživatelského rozhraní. I když je uživatelské prostředí obvykle jen černé a bílé mockups, fáze návrhu uživatelského rozhraní je místo, kde se zavádějí a dokončují barvy, grafiky atd. Čas útraty v dobrém návrhu uživatelského rozhraní je důležitý a obecně nejoblíbenější aplikace mají profesionální návrh.

Stejně jako u uživatelského rozhraní je důležité pochopit, že každá platforma má vlastní návrhový jazyk, takže dobře navržená aplikace může pořád na každé platformě vypadat jinak:

Dobře navržená aplikace může pořád na každé platformě vypadat jinak.

Vývoj

Fáze vývoje obvykle začíná velmi brzy. Fakt, že ve fázi koncepční/inspiraci obsahuje několik maturation, často je vyvíjen pracovní 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 hlavně na vývojovou fázi.

Stabilizaci

Stabilizace je proces práce s chybami ve vaší aplikaci. Nejenom z funkčního hlediska, například: "při kliknutí na toto tlačítko dojde k chybě", ale také použitelnost a výkon. Je nejlepší zahájit stabilizaci velmi brzy v rámci procesu vývoje, aby se opravy kurzu mohly vyskytnout, než budou nákladné. Aplikace obvykle přecházejí do fází prototypů, alfa, betaa Release Candidate . Různí lidé je definují různě, ale obvykle se řídí následujícím vzorem:

  1. Prototyp – aplikace je stále ve fázi zkušebního použití a jenom základní funkce nebo konkrétní části aplikace fungují. K dispozici jsou hlavní chyby.
  2. Alpha – základní funkce jsou obecně dokončovány kódem (sestaveny, ale nejsou plně testovány). Hlavní chyby jsou pořád přítomné, ale nemusí být k dispozici menší funkčnost.
  3. Beta – většina funkcí je teď dokončená a měla aspoň světlé testování a opravu chyb. Stále se můžou vyskytovat závažné známé problémy.
  4. Release Candidate – všechny funkce jsou dokončené a testované. Blokování nových chyb: aplikace je kandidátem na vydanou verzi na volně žijící.

Na začátku testování aplikace není nikdy příliš brzy. Například pokud se ve fázi prototypu najde hlavní problém, uživatelské rozhraní aplikace se bude dál upravovat, aby se mu vešlo. Pokud je ve fázi Alfa zjištěn problém s výkonem, je nejdříve nutné změnit architekturu před tím, než se na základě nepravdivých předpokladů sestaví spousta kódu.

Vzhledem k tomu, že se aplikace v životním cyklu obvykle přesouvá, je otevřená pro větší lidi, že ji můžete vyzkoušet, otestovat ji, poskytnout zpětnou vazbu atd. Například prototypové aplikace mohou být zobrazeny nebo zpřístupněny klíčovým stranám, zatímco Release Candidate aplikace mohou být distribuovány zákazníkům, kteří si zaregistrují přístup k dřívějšímu přístupu.

Pro předčasné testování a nasazení na relativně málo zařízení je obvykle dostatečné nasazení přímo z vývojového počítače. Když se ale skupina rozšíří, může se to rychle stát nenáročnými. V takovém případě je k dispozici řada možností nasazení testu, díky kterým je tento proces mnohem snazší díky tomu, aby bylo možné pozvat lidi k testovacímu fondu, vydávat buildy přes web a poskytovat nástroje, které umožňují zpětnou vazbu uživatelů.

Pro účely testování a nasazení můžete použít App Center pro průběžné sestavování, testování, vydávání a monitorování aplikací.

Distribuce

Po stabilizaci aplikace je čas ji dostat do volné přírody. V závislosti na platformě je k dispozici řada různých možností distribuce.

iOS

Xamarin. iOS a Objective-C aplikace jsou distribuované přesně stejným způsobem:

  1. Apple App Store – App Store společnosti Apple je globálně dostupné online úložiště aplikací, které je integrované v Mac OS X přes iTunes. Jedná se o nejoblíbenější způsob distribuce pro aplikace a umožňuje vývojářům nabízet a distribuovat své aplikace online s velmi malým úsilím.
  2. Interní nasazení – In-House nasazení je určeno pro interní distribuci podnikových aplikací, které nejsou veřejně dostupné prostřednictvím App Storu.
  3. Ad hoc nasazení – ad hoc nasazení je určené hlavně pro vývoj a testování a umožňuje nasazení na omezený počet řádně zřízených zařízení. když nasadíte do zařízení prostřednictvím Xcode nebo Visual Studio pro Mac, je známý jako nasazení ad hoc.

Android

Před distribucí musí být všechny aplikace pro Android 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 poskytovat řetězec pravosti, který spojuje vývojáře aplikace s aplikacemi, které vývojář sestavil a uvolnil. Je nutné poznamenat, že zatímco vývojový certifikát pro Android může být podepsán rozpoznanou certifikační autoritou, většina vývojářů nesouhlasí využívat tyto služby a vlastní podpis svých certifikátů. Hlavním účelem pro certifikáty je rozlišovat mezi různými vývojáři a aplikacemi. Android používá tyto informace k tomu, aby vám pomohl s vynucením delegování oprávnění mezi aplikacemi a komponentami běžícími v operačním systému Android.

Na rozdíl od jiných oblíbených mobilních platforem má Android velmi otevřený přístup k distribuci aplikací. Zařízení nejsou zamčená do jediného schváleného App Storu. Místo toho je možné, že kdokoli je zdarma vytvořit App Store a většina telefonů s Androidem umožňuje instalovat aplikace z těchto obchodů třetích stran.

Díky tomu mohou vývojáři potenciálně větší komplexnější distribuční kanál pro své aplikace. Google Play je oficiálním obchodem s aplikacemi Google, ale existuje mnoho dalších. Několik oblíbených:

  1. AppBrain
  2. Amazon App Store pro Android
  3. Handango
  4. GetJar

UWP

Aplikace pro UWP jsou distribuované uživatelům prostřednictvím Microsoft Store. Vývojáři odesílají své aplikace ke schválení, poté, co se zobrazí ve Storu. další informace o publikování Windowsch aplikací najdete v dokumentaci k publikování UWP.

Požadavky na vývoj pro mobilní zařízení

Při vývoji mobilních aplikací se nejedná o zásadní rozdíl od tradičního vývojového prostředí pro web a Desktop, který je zaměřený na procesy nebo architekturu. je třeba mít na paměti několik důležitých informací.

Běžné požadavky

Multitasking

Existují dva závažné výzvy pro práci s více úlohami (s více aplikacemi spuštěnými najednou) na mobilním zařízení. Za prvé v případě omezeného reálného množství obrazovky je obtížné zobrazit současně více aplikací. Proto na mobilních zařízeních může být v popředí jenom jedna aplikace. Za druhé s tím, že je otevřeno více aplikací a provádění úloh může rychle využít napájení z baterie.

Každá platforma zpracovává více úloh jinak, což prozkoumáme v bitu.

Formulářový faktor

Mobilní zařízení obecně spadají do dvou kategorií, telefonů a tabletů, mezi kterými se nachází několik křížených zařízení. Vývoj pro tyto faktory je obecně velmi podobný, ale navrhování aplikací pro ně může být velmi odlišné. Telefony mají velmi omezené místo na obrazovce a tablety, i když jsou větší, jsou pořád mobilní zařízení s menším místem na obrazovce než na maximum přenosného počítače. Z tohoto důvodu jsou ovládací prvky uživatelského rozhraní mobilních platforem navržené speciálně, aby byly účinné i pro menší faktory.

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:

  1. Koncepční a plánovací – mějte na paměti, že hardware a funkce se budou lišit od zařízení až po zařízení. aplikace, která spoléhá na určité funkce, nemusí na některý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í zpráv pro video, některá zařízení mohou přehrávat videa, ale nebudou je pořizovat.
  2. Návrh – při navrhování uživatelského prostředí aplikace (UX) věnujte pozornost různým poměrům obrazovky a velikostem v různých zařízeních. Kromě toho byste měli při návrhu uživatelského rozhraní (UI) aplikace brát v úvahu různá rozlišení obrazovky.
  3. 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í. Například předtím, než použijete funkci zařízení, jako je třeba fotoaparát, vždy předá dotaz na operační systém pro přítomnost této funkce. Pak při inicializaci funkce nebo zařízení zajistěte, aby se v aktuálně podporovaném operačním systému na tomto zařízení a pak používala tato nastavení konfigurace.
  4. Testování – je neuvěřitelně důležité otestovat aplikaci včas a často na skutečných zařízeních. Zařízení se stejnými technickými údaji se můžou výrazně lišit v jejich chování.

Omezené prostředky

Mobilní zařízení dostanou ještě víc a efektivněji, ale stále jsou mobilní zařízení, která mají v porovnání s počítači nebo notebookem omezené možnosti. Například vývojáři pro stolní počítače všeobecně nepamatují kapacitu paměti; používají se k tomu, aby se Copious množství fyzické i virtuální paměti, zatímco na mobilních zařízeních můžete rychle spotřebovat veškerou dostupnou paměť pouhým načtením několiků vysoce kvalitních obrázků.

Kromě toho aplikace náročné na procesor, jako jsou hry nebo rozpoznávání textu, můžou ve skutečnosti platit jako mobilní procesor a negativně ovlivnit výkon zařízení.

Z důvodu takových důvodů je důležité kód inteligentně a často nasazovat a často na skutečná zařízení a ověřit tak rychlost odezvy.

předpoklady pro iOS

Multitasking

Úlohy s více úlohami se velmi důkladně kontrolují v iOS a existuje několik pravidel a chování, které musí vaše aplikace splňovat, když do popředí přejde jiná aplikace. v opačném případě se vaše aplikace ukončí v iOS.

Prostředky specifické pro zařízení

V rámci určitého faktoru formuláře se může hardware výrazně lišit mezi různými modely. Například některá zařízení mají zadní kameru, některé mají také přední kameru a některé z nich nemají.

některá starší zařízení (iPhone 3g a starší) dokonce neumožňují multitasking.

Z důvodu těchto rozdílů mezi modely zařízení je důležité, abyste před pokusem o její použití kontrolovali přítomnost funkce.

Omezení specifická pro operační systém

Aby bylo zajištěno, že aplikace reagují a jsou zabezpečené, iOS vynutilo řadu pravidel, kterými musí aplikace dodržovat. Kromě pravidel týkajících se multitaskingu existuje několik metod událostí, ze kterých se vaše aplikace musí v určitém čase vracet, jinak bude systém iOS ukončen.

Zaznamenáte také, že aplikace běží v co se říká izolovaný prostor (sandbox), což je prostředí, které vynutilo omezení zabezpečení, které omezuje přístup k aplikaci. Aplikace může například číst a zapisovat do svého vlastního adresáře, ale pokud se pokusí zapisovat do jiného adresáře aplikace, bude ukončena.

Předpoklady pro Android

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 dojde, když je aplikace umístěna na pozadí nebo přichází do popředí. Aplikace musí dodržovat tento životní cyklus, aby mohli vytvářet reagující, dobře fungující aplikace. Další informace najdete v průvodci životního cyklu aktivit .

Druhá součást pro více úloh v Androidu je používání služeb. Služby jsou dlouhodobě běžící procesy, které existují nezávisle na aplikaci a slouží ke spouštění procesů, zatímco aplikace je na pozadí. Další informace najdete v příručce pro vytváření služeb .

Mnoho zařízení a mnoho faktorů pro formy

Google neposkytuje žádná omezení, na která zařízení můžou spouštět Android OS. Tato otevřená paradigma má za následek prostředí produktu naplněné nesčetných různých zařízení s velmi odlišným hardwarem, rozlišením obrazovky a poměry, funkcemi zařízení a možnostmi.

Vzhledem k extrémní fragmentaci zařízení s Androidem většina lidí vybere nejoblíbenějších 5 nebo 6 zařízení pro návrh a testování a stanoví jejich prioritu.

Důležité informace o zabezpečení

Aplikace v operačním systému Android běží v rámci samostatné izolované identity s omezenými oprávněními. Ve výchozím nastavení můžou aplikace dělat moc 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. Chcete-li získat přístup k těmto funkcím, aplikace musí v souboru manifestu aplikace zadat oprávnění, která mají být a při instalaci. operační systém tyto oprávnění přečte, upozorní uživatele, že aplikace požaduje tato oprávnění, a potom umožní uživateli pokračovat nebo instalaci zrušit. Toto je zásadní krok v modelu distribuce Android z důvodu otevřeného modelu úložiště aplikací, protože aplikace nejsou v případě neznámé jako pro iOS. Seznam oprávnění aplikace naleznete v článku o oprávněních k manifestu v dokumentaci k Androidu.

Windows hlediska

Multitasking

Multitasking v UWP má dvě části: životní cyklus pro stránky a aplikace a procesy na pozadí. Každá obrazovka v aplikaci je instancí třídy stránky, která má události přidružené k aktivnímu nebo neaktivnímu (se speciálními pravidly pro zpracování neaktivního stavu nebo označení "označeno").

Druhá část poskytuje agentům na pozadí pro zpracování úloh i v případě, že aplikace není spuštěná v popředí.

Možnosti zařízení

I když je hardware UWP poměrně homogenní, stále existují komponenty, které jsou volitelné, a proto vyžadují, aby při kódování byl zvláštní ohled. K volitelným hardwarovým funkcím patří kamera, kompas a vybavený gyroskopem. K dispozici je také speciální třída s nízkou pamětí (256 MB), která vyžaduje zvláštní pozornost, nebo mohou vývojáři odhlásit podporu nízké paměti.

Důležité informace o zabezpečení

Informace o důležitých faktorech zabezpečení v UWP najdete v dokumentaci k zabezpečení .

Souhrn

V tomto průvodci jsme uvedli Úvod k softwaru, který se týká vývoje mobilních aplikací. Zavedli jsme obecné pokyny pro vytváření mobilních aplikací a zkoumali řadu hledisek specifických pro jednotlivé platformy, včetně návrhu, testování a nasazení.

Další kroky