BF Summer sales
Pouze tento týden sleva až 80 % na HTML & CSS a JavaScript
80 % bodů zdarma na online výuku díky naší Letní akci!

Lekce 1 - Android programování - Úvod do Android programování

V tomto e-learning kurzu se naučíme vyvíjet mobilní aplikace pro platformu Android. Začneme na úplných základech a postupně se propracujeme k vytváření aplikací a jejich nasazování na Google Play. Jednotlivé lekce na sebe navazují a proto doporučuji prostudovat si je postupně. Je předpokládána alespoň základní znalost programování v jakémkoliv programovacím jazyce.

V dnešní lekci se podíváme na základy Androidu a na principy a zásady vývoje aplikací. Bude se jednat zejména o potřebnou teorii.

Předpoklady

Tento kurz předpokládá, že ovládáte alespoň:

Android

Android

Android je všude. V 2. čtvrtletí roku 2018 obsahoval trh s chytrými telefony neuvěřitelných 88 % zařízení, na kterých běží Android. Toto číslo neustále stoupá na úkor ostatních operačních systémů pro mobilní zařízení (iOS a další). Android je tedy jeden z nejrychleji rostoucích OS, což dokazuje i rychlost, s jakou vychází nové verze tohoto systému.

Pokud se ale bavíme o Android zařízeních, nemusí se vždy jednat o chytrý telefon. Android najdeme i na tabletech, televizích, set-top boxech, Google TV a hodinkách. Dokonce se pracuje i na Android automobilech.

My se ovšem budeme zaměřovat na programování aplikací zejména pro chytré telefony.

Principy a zásady vývoje aplikací

Než se budeme moci pustit do samotného programování, musíme si ujasnit několik základních principů a zásad pro vývoj aplikací, aneb z čeho mít radost a na co si dát pozor.

Obrazovka

Pokud vytváříme aplikaci určenou primárně pro chytré telefony, musíme brát v potaz to, že mají malé obrazovky. I když současné zařízení mají mnohdy krásné HD a full HD rozlišení, na které jsme zvyklí z našich klasických počítačů, jejich fyzická velikost je od 3" "prcků" po ty největší 6" "plácačky". Obecně však platí, že nejpoužívanější velikosti jsou kolem 5" - 6".

Vstupy a výstupy

Fyzická velikost obrazovek přináší několik problémů, jak v uživatelském vstupu, tak v zobrazování výstupů.

Tlačítko s pevným rozlišením v px bude krásně použitelné na 5" zařízení ale na 10" tabletu bude takřka nemožné ho použít. Nemluvě o tom, že někteří uživatelé mají větší prsty než jiní a proto by ovládání příliš malých tlačítek nebylo pro tyto uživatele zrovna pohodlné.

Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!

Dalším problémem je text. Většina telefonů používá virtuální klávesnice, na kterých se sice píše velmi pohodlně, ale zakrývají část obrazovky, v některých případech dokonce celou obrazovku, například při vertikálním přetočení zařízení. Proto bychom se měli co nejvíce vyhnout této události.

Musíme přemýšlet o alternativách. Můžeme použít například tlačítka, které si naprogramujeme podle potřeb tak, abychom co nejvíce usnadnili a zjednodušili uživateli zadávání informací. Pokud budeme například chtít vložit datum, použijeme kalendář, nikoliv "ruční" psaní. Nebo můžeme chtít zadat číslo, pokud to bude v přijatelných jednotkách, sáhneme raději na 2 tlačítka "+" a "-". Jedním budeme hodnotu o 1 zvedat a druhým o 1 snižovat.

Uživatelské rozhraní

Také je potřeba brát v potaz to, jak mobil v rukou držíme, od toho můžeme odvodit nejpohodlnější polohu tlačítek a celkově přizpůsobit uživatelské rozhraní tak, aby bylo co nejpříjemnější nejen vizuálně, ale i tak, aby se příjemně ovládalo. Vykreslenou část aplikace tedy nemůžeme brát jako formulářové okno, které známe z klasického programování pro PC, ale jako interaktivní rozhraní, se kterým je třeba komunikovat fyzickým kontaktem s obrazovkou. Například pokud vytváříme jednoduché menu nějaké aplikace, snažíme se centrovat tlačítka tak, aby první bylo ve středu obrazovky a další pod ním. Tím zabereme plochu od středu dolů, pokud uživatel bude držet mobilní telefon v ruce, nejsnadnější přístup má právě v těchto místech.

Orientace obrazovky

Jak jistě všichni víte, mobilní zařízení obvykle mění orientaci obrazovky buď na výšku, nebo na šířku, podle natočení zařízení. Automatické natáčení můžeme vypnout, pokud tak neučiníme, musíme si pohlídat, aby aplikace vypadala tak jak má i po změně orientace. Nenechme se ale zmást. Ne vždy je dobré používat změny orientace. Například když budeme vytvářet kalkulačku, je zcela zbytečné se zabývat funkcí pro změnu orientace.

Hardware

Výkon

V dnešních dobách není nic neobvyklého mít v kapse dělo s čtyřmi nebo dokonce osmi jádry o taktu klidně 2.8 GHz s výkonným grafickým čipem, který ocení jistě všichni náruživý hráči her s velmi pěknou grafikou a s dokonalými detaily. Navzdory tomu si stále musíme uvědomovat, že aplikaci vytváříme právě pro chytré telefony. Ne všechny jsou tak výkonné, většina zařízení s Androidem je z cenové relace od 2 do 4 tisíc Kč a tím pádem mají mnohem nižší výkon. Uživatelé od obyčejné aplikace vyžadují zejména to, aby po jejím spuštění telefon i nadále fungoval jako telefon.

Může se totiž stát, že aplikace vytěžuje procesor telefonu natolik, že uživatel není schopen přijímat hovory, aplikace nejde minimalizovat na pozadí nebo dokonce zamrzává.

Pokud aplikace špatně uvolňuje alokovanou paměť, může dokonce dojít k vážným problémům. Na toto si musíme dát pozor zejména při používání animací. Je dost častou chybou u nového Android programátora, že se snaží používat animace v příliš velké míře. Více si o tom prozradíme až v následujících lekcích.

V jednoduchých aplikacích, které v těchto textech budeme vytvářet, můžeme narazit na několik problémů. Například na zbytečné používání tzv. old school AnimationDrawable animací, konkrétně jde o snahu nahrát několik snímků do paměti a následně je promítat jako animaci. Tento způsob řešení zbytečně vytěžuje paměť. Další častou chybou je používání textur se zbytečně velkým rozlišením. Všeho moc škodí a v jednoduchosti je síla, v našem případě výkon.

Úložiště

V době kdy píši tyto texty, vlastní zhruba 60% majitelů chytrých telefonů zařízení v hodnotě kolem 4 000 Kč. V současné době je u takového zařízení normální mít k instalaci aplikací interní úložný prostor od 8 do 512 GB.

Android je totiž primárně nastaven tak, aby instaloval aplikace pouze do interní paměti. Podívejme se například na hru The Bard's Tale, ta ve své "dokonalejší" verzi má bezmála 4 GB. Takovou aplikaci si do svého telefonu stáhne jen málo uživatelů a ještě méně uživatelů ji rozchodí bez problémů, týkajících se nedostatečného výkonu.

Pro instalovaní aplikací na SD kartu, tedy externí paměť, sice postupy existují, ale většinou vyžadují zvýšená práva, k tomu je potřeba tzv. "rootnutí" telefonu a tím uživatel v drtivé většině případů ztrácí záruku anebo se jedná o složitější postupy, které nezvládne obyčejný uživatel a ne vždy fungují na všech zařízeních.

Ve výsledku ale stále platí, že čím je aplikace menší, tím je pro uživatele pohodlnější.

Další vybavení chytrých telefonů

Připojení k internetu

Chytré telefony jsou vybaveny k přístupu do sítě pomocí Wi-Fi a 4G sítě. Stále více a více lidí používá svůj mobilní telefon jako přístupový bod k internetu. To nám přináší obrovské možnosti využití internetu.

V aplikaci můžeme použít například vestavěný widget webového prohlížeče nebo ukládání či načítání dat z různých serverů. Můžeme tedy využívat připojení k internetu dle libosti.

Kamera a mikrofon

Chytrý telefon nám umožňuje přehrávat a pořizovat videa, fotografie či hudební soubory. Do aplikace můžeme zahrnout například nahrávání zvukových záznamů nebo fotoaparát. Můžeme pořizovat videa, popř. fotografie, a dále s nimi pracovat.

Gyroskopy a GPS

V současné době je standardem, že chytrý telefon obsahuje gyroskopy, popř. akcelerometry a GPS. Za pomocí GPS nebo triangulace pomocí sítě můžeme zjistit informace o zeměpisné poloze a načítat různé mapy nebo sledovat trasu zařízení. K využití triangulace pomocí sítě je třeba znát polohu vysílačů mobilní sítě anebo sítě Wi-Fi. Databázi, ve které takové informace jsou, vytváří například společnost Google.

Využít by se daly i gyroskopy, pomocí kterých zjistíme informace o náklonu telefonu.

Funkce mobilního telefonu

Pokud vytváříme aplikace pro chytré telefony, je jasné, že máme přístup k provádění hovorů a posílání a přijímání SMS. V jedné z následujících lekcí si vytvoříme aplikaci pro provádění hovorů.

Výhody

Jak už jsem se zmínil, nespornou výhodou je kombinace "Mobilní přenosné zařízení + internet".

Aplikace běžící na telefonu podléhají pevně daným pravidlům, které zajišťují například to, aby nedocházelo ke konfliktům se samotným systémem.

Aplikace jsou psané v poměrně rozšířeném jazyce Java. Jedná se o jazyk, který je multiplatformní. O Javě obecně platí, že programy napsané v tomto jazyce tedy běží na různých zařízeních, ke svému správnému fungování potřebují, aby byl nainstalován balík Java Runtime Environment (JRE), jedná se o balík určený pro koncové uživatele. Další balíček je Java Development Kit (JDK), ten je určený pro vývojáře.

Pokud někdo má strach z přechodu na jazyk Java, není k tomu vůbec důvod. Před tím, než jsem se začal věnovat vývoji pro Android jsem měl tu čest pouze s C++ a C#. Přechod na Javu je tak nenápadný, že si ani nevšimnete, že píšete v jiném jazyce.

V příští lekci, Android programování - Vývojové prostředí, si nainstalujeme vývojové prostředí Android Studio a vytvoříme svůj první Android projekt.


 

Všechny články v sekci
Základy vývoje Android aplikací v Javě
Článek pro vás napsal Jiří Frank
Avatar
Jak se ti líbí článek?
39 hlasů
Autor se věnuje programování v C# a vývoji aplikací pro platformu Android a dalším věcem spojeným s Android OS
Aktivity (6)

 

 

Komentáře
Zobrazit starší komentáře (11)

Avatar
Filip (animátor/programator):25.6.2017 19:48

nevie niekto prečo keď nainštalujem svoju app do mobilu skoro vždi mi avast povie že je to malware?

Editováno 25.6.2017 19:50
Odpovědět
25.6.2017 19:48
Nikdy sa nevzdávaj a choď si za svojim snom.......
Avatar
Zbyněk Šuba:7.11.2017 21:41

Výborný článek!
Znáte někdo nástroj od AppElis, kde se aplikace dá vytvořit snadněji, bez backend programování? Zajímalo by mě, jestli byste ho doporučili pro tvorbu jednodušších aplikací.
Jejich web: https://www.appelis.com

 
Odpovědět
7.11.2017 21:41
Avatar
RadaSed
Člen
Avatar
RadaSed:16.1.2018 14:16

Jako základní seznámení je to celkem podrobné a poučné.

Odpovědět
16.1.2018 14:16
Co tě nezabije, to tě posílí.
Avatar
Alex El Gharred:14.6.2019 19:27

V jiném jazyce než java se tedy pro android programovat nedá?

 
Odpovědět
14.6.2019 19:27
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!
Avatar
Odpovídá na Filip Němeček
Alex El Gharred:18.6.2019 19:29

V C# by to asi nešlo, což?

 
Odpovědět
18.6.2019 19:29
Avatar
Odpovídá na Alex El Gharred
Patrik Valkovič:18.6.2019 19:40

Dá, podívej se na Xamarin.

Odpovědět
18.6.2019 19:40
Nikdy neumíme dost na to, abychom se nemohli něco nového naučit.
Avatar
Jindřich Pšeničný:30.12.2019 17:02

Teprve se rozkoukávám :)

 
Odpovědět
30.12.2019 17:02
Avatar
Odpovídá na Patrik Valkovič
Alex El Gharred:17. března 16:27

Díky :)

Editováno 17. března 16:27
 
Odpovědět
17. března 16:27
Avatar
Petr Kott
Člen
Avatar
Petr Kott:25. března 21:57

Určitě bych mrknl na nějaký článek kde je uveden výčet vybavení nového Android zde: https://peko-studio.cz/…v-android-9/

 
Odpovědět
25. března 21:57
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 10 zpráv z 21. Zobrazit vše