XAMARIN · 2016-06-01 · PROČ PRÁVĚ XAMARIN? Softwarová řešení a mobilní aplikace na míru...

Post on 04-Jun-2020

0 views 0 download

transcript

XAMARIN10 PRAKTICKÝCH ZKUŠENOSTÍRoman Fischerfischer@skeleton.cz

AGENDA

KDO JSMEPROČ JSME ZVOLILI XAMARIN10 PRAKTICKÝCH ZKUŠENOSTÍDISKUZE

Softwarová řešení a mobilní aplikace na míru 2

SOFTWAROVÁ ŘEŠENÍ NA MÍRU

Softwarová řešení a mobilní aplikace na míru 3

PROČ PRÁVĚ XAMARIN?

Softwarová řešení a mobilní aplikace na míru 4

První poptávka na jednoduchou mobilní

aplikaci – Android, iOS a WP

12/2012

• Rozhodnutí pro Xamarin

• Výhody• Známé prostředí

VS + C#• Alternativy

• Nativní vývoj• PhoneGap atd.

01/2013• 3,5 roku zkušeností• Desítky mobilních

aplikací2016

XAMARIN – SPRÁVNÁ VOLBA

18 projektů – 30 mobilních aplikací

Softwarová řešení a mobilní aplikace na míru 5

1. IKONY PRO RŮZNÉ TYPY ZAŘÍZENÍ

Aplikace je spouštěna na různých zařízeních s různými typy displejůPokud je použita jen jedna velikost ikon, pak nevypadají optimálně

Softwarová řešení a mobilní aplikace na míru 6

1. IKONY PRO RŮZNÉ TYPY ZAŘÍZENÍ

Nativní postup

Obrázek vložený v různých velikostechZvětšuje velikost balíčkuNáročné na součinnost grafika

Použití fontů

Jeden soubor obsahující velké množství ikonNa všech zařízeních vypadají stejně

Softwarová řešení a mobilní aplikace na míru 7

1. IKONY PRO RŮZNÉ TYPY ZAŘÍZENÍ

Nativní postup Material Icons Font

Softwarová řešení a mobilní aplikace na míru 8

2. LOKALIZACE TEXTŮ

Častým požadavkem klientů je podpora více jazykůAplikace obvykle detekuje jazyk daného zařízení a případně umožní změnu jazyka

Softwarová řešení a mobilní aplikace na míru 9

2. LOKALIZACE TEXTŮ

Nativní přístup

Náročné na údržbu

RESX

Jeden soubor pro všechny platformyKomplikovanější používání

Softwarová řešení a mobilní aplikace na míru 10

2. LOKALIZACE TEXTŮ

Softwarová řešení a mobilní aplikace na míru 11

Nativní postup -iOS

Nativní postup - Android

RESX

3. RŮZNÉ VELIKOSTI DISPLEJŮ

Obvykle je nutné podporovat širokou škálu koncových zařízeních s různými typy displejů

Softwarová řešení a mobilní aplikace na míru 12

3. RŮZNÉ VELIKOSTI DISPLEJŮ

Vše je relativníAndroid

px = dp * (dpi / 160)Když DP nestačí, lze pro různé displeje definovat jiné hodnoty

iOS – Auto Layout, StackView

Softwarová řešení a mobilní aplikace na míru 13

3. RŮZNÉ VELIKOSTI DISPLEJŮ - ANDROID

Softwarová řešení a mobilní aplikace na míru 14

Definice různých hodnot podle šířky displeje

3. RŮZNÉ VELIKOSTI DISPLEJŮ - iOS

Softwarová řešení a mobilní aplikace na míru 15

Jak funguje Auto Layout

4. VYKRESLOVÁNÍ VLASTNÍCH KOMPONENT

Některé projekty vyžadují specifický design na míru bez využití nativních komponent

Softwarová řešení a mobilní aplikace na míru 16

4. VYKRESLOVÁNÍ VLASTNÍCH KOMPONENT

Stejné možnosti jako při nativním vývojiStačí rozšířit třídu View (u iOS UIView), přepsat její metodu OnDraw a v ní snadno definovat podobu své nové komponenty.

Softwarová řešení a mobilní aplikace na míru 17

5. STAHOVÁNÍ A UKLÁDÁNÍ DAT

Řada mobilních aplikací je integrována s nadřazeným ISAplikace se musí vyrovnat se ztrátou konektivityPřípadně je potřeba minimalizovat datovou náročnost na datovém roamingu

Softwarová řešení a mobilní aplikace na míru 18

5. STAHOVÁNÍ A UKLÁDÁNÍ DAT

Napojení na webové služby (WCF, REST)SQLite databáze

Softwarová řešení a mobilní aplikace na míru 19

6. ASYNCHRONNÍ PROGRAMOVÁNÍ

Žádná dlouhotrvající operace by neměla běžet v hlavním vlákně Pokud budete dlouho blokovat hlavní vlákno OS vaší aplikaci ukončíKdyž probíhá dlouhotrvající operace měli bychom uživateli zobrazit, že se na pozadí něco děje

Softwarová řešení a mobilní aplikace na míru 20

6. ASYNCHRONNÍ PROGRAMOVÁNÍ

Doporučeno používat async/await Je nutné ošetřit co se stane při rotaci a když uživatel opustí aplikaci

Softwarová řešení a mobilní aplikace na míru 21

Spuštění asynchronní operaceZastavení operace

7. KOMUNIKACE PŘES BLUETOOTH

Aplikace pro dálkový odečet energiíPožadavkem byla komunikace přes BT pomocí specifického protokoluŠvýcarský dodavatel HW neposkytoval podporu pro AndroidProblém měl dvě části

Implementace protokoluOdeslání dat přes BT

Softwarová řešení a mobilní aplikace na míru 22

7. KOMUNIKACE PŘES BLUETOOTH

Protokol lze pro všechny platformy implementovat jen jednou

Softwarová řešení a mobilní aplikace na míru 23

7. KOMUNIKACE PŘES BLUETOOTH

Stejné možnosti jako u nativního vývojeUkázka komunikace pro Android:

Softwarová řešení a mobilní aplikace na míru 24

8. OPERACE NA POZADÍ

Cílem bylo vytvořit aplikaci s nonstop sledováním polohy Automatická aktualizace dat na pozadíVše bez zásahu uživatele

Softwarová řešení a mobilní aplikace na míru 25

8. OPERACE NA POZADÍ

Android

Pro všechny akce na pozadí se používají různé druhy třídy Service

iOS

Omezené možnostiOperace na pozadí má od probuzení do skončení omezený časNa pozadí nelze dělat libovolnou činnost v libovolný čas.

Softwarová řešení a mobilní aplikace na míru 26

8. OPERACE NA POZADÍ - ANDROID

Softwarová řešení a mobilní aplikace na míru 27

Naplánování spuštění

Provedení operace na pozadí

8. OPERACE NA POZADÍ – iOS

Softwarová řešení a mobilní aplikace na míru 28

Spuštění standardního sledování polohy

Spuštění significant location

9. PUSH NOTIFIKACE

Cílem je upozornit bezprostředně uživatele na nějakou událostPřípadně aktualizovat data v aplikaci okamžitě po jejich aktualizaci na serveru

Softwarová řešení a mobilní aplikace na míru 29

9. PUSH NOTIFIKACE

Aplikace nic sama nekontroluje notifikaci obdrží od OSDruh operace na pozadí (platí pro ně stejná omezení)Klasické notifikace (zobrazení upozornění uživateli)Skryté notifikace

Softwarová řešení a mobilní aplikace na míru 30

9. PUSH NOTIFIKACE – iOS

Softwarová řešení a mobilní aplikace na míru 31

Princip Implementace push notifikací

9. PUSH NOTIFIKACE – ANDROID

Softwarová řešení a mobilní aplikace na míru 32

Získání tokenu

9. PUSH NOTIFIKACE – ANDROID

Softwarová řešení a mobilní aplikace na míru 33

Aktualizace tokenu

Přijetí zprávy

10. POUŽITÍ KNIHOVEN TŘETÍCH STRAN – iOS

Zadání – mobilní aplikace pro streaming šifrovaného videa, dodavatel streamu podporoval pouze Objective CV případě že potřebujete použít knihovny které nejsou součástí XamarinuBindings Library

Softwarová řešení a mobilní aplikace na míru 34

10. POUŽITÍ KNIHOVEN TŘETÍCH STRAN – iOS

Softwarová řešení a mobilní aplikace na míru 35

Mapování nativní knihovny do C#

10. POUŽITÍ KNIHOVEN TŘETÍCH STRAN – iOS

Softwarová řešení a mobilní aplikace na míru 36

Vytvoření výčtového typu

Softwarová řešení a mobilní aplikace na míru 37

DOTAZY A DISKUZE

DĚKUJI ZA POZORNOST

WWW.SKELETON.CZ

SLEDUJTE NÁS: